41554 blogs · [ { "id": "01a0b68b-4cdc-70ce-a080-0df5c2016e05", "title": "Lesley Lai", "url": "https://lesleylai.info/", "published_at": "2026-09-07T05:20:44+00:00" }, { "id": "01a0879a-10eb-71d5-86ca-5568b06bc4a1", "title": "A Love Letter to Flashcards", "url": "https://lesleylai.info/en/flashcards", "published_at": "2026-05-05T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fab37b649", "title": "Fifty Shades of OOP", "url": "https://lesleylai.info/en/fifty_shades_of_oop", "published_at": "2025-11-24T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fac206839", "title": "Self hosting comments with Comentario", "url": "https://lesleylai.info/en/self-host-comentario", "published_at": "2025-04-25T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fac795486", "title": "Site Update (April 2025)", "url": "https://lesleylai.info/en/site-update-2025", "published_at": "2025-04-21T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fad4a9f86", "title": "Representing an Abstract Syntax Tree in C++: Variants", "url": "https://lesleylai.info/en/ast-in-cpp-part-1-variant", "published_at": "2024-04-22T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fadf0e732", "title": "Online Courses that I Recommend", "url": "https://lesleylai.info/en/moocs", "published_at": "2024-03-17T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fae370b76", "title": "Small Naming Tip: Use \"from\" Instead of \"to\" in Function and Variable Names", "url": "https://lesleylai.info/en/from_vs_to_in_names", "published_at": "2024-02-10T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933faebe2d4d", "title": "What happened to Lesley in the last couple of years", "url": "https://lesleylai.info/en/2023-life-update", "published_at": "2023-12-17T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933faf7ac964", "title": "Use ManuallyDrop in Rust to control drop order of structure fields", "url": "https://lesleylai.info/en/rust-manually-drop", "published_at": "2023-02-06T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fafce73b8", "title": "CMAKE_SOURCE_DIR is probably not what you want", "url": "https://lesleylai.info/en/cmake_src_directory", "published_at": "2022-02-17T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb0bea976", "title": "VK_KHR_dynamic_rendering tutorial", "url": "https://lesleylai.info/en/vk-khr-dynamic-rendering", "published_at": "2022-01-16T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb0c839d0", "title": "How I create bilingual functionality of this blog in plain Typescript", "url": "https://lesleylai.info/en/bilingual-blog", "published_at": "2022-01-01T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb11b1f9d", "title": "Little C++ Standard Library Utility: std::align", "url": "https://lesleylai.info/en/std-align", "published_at": "2021-12-13T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb1bdceef", "title": "Fun with Ternary Search", "url": "https://lesleylai.info/en/ternary-search", "published_at": "2021-12-07T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb236208f", "title": "Don't automatically use auto parameters in C++", "url": "https://lesleylai.info/en/auto-parameters", "published_at": "2021-03-09T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb28146c6", "title": "Using default parameters to circumvent the type system is an anti-pattern", "url": "https://lesleylai.info/en/default-parameter-antipattern", "published_at": "2021-02-26T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb2dd9e15", "title": "What is std::function in C++, and why do we need them?", "url": "https://lesleylai.info/en/std-function", "published_at": "2021-01-18T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb398a0c2", "title": "Resources that help you to delve into C++", "url": "https://lesleylai.info/en/delve_into_cpp", "published_at": "2021-01-15T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb46b77c6", "title": "Factual errors in \"These Modern Programming Languages Will Make You Suffer\", and why it is a suffer to read", "url": "https://lesleylai.info/en/factual-errors-in-modern-language-sucks", "published_at": "2020-12-08T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb4bfe00b", "title": "Improve Rust Link Time with lld", "url": "https://lesleylai.info/en/improve-rust-link-time-with-lld", "published_at": "2020-11-01T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb5a81ec7", "title": "Recursive Modules in OCaml", "url": "https://lesleylai.info/en/recursive_modules_in_ocaml", "published_at": "2020-10-15T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb6474bee", "title": "Beware passing mutable lambda to STL algorithms", "url": "https://lesleylai.info/en/mutable-lambda-in-algorithms", "published_at": "2020-09-30T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb6fdd7de", "title": "The implication of const or reference member variables in C++", "url": "https://lesleylai.info/en/const-and-reference-member-variables", "published_at": "2020-08-18T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb7bb6392", "title": "Zero is the Devil: Common ways to construct bogus proofs", "url": "https://lesleylai.info/en/zero-is-the-devil", "published_at": "2020-05-10T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb7ee6111", "title": "The surprising codegen impact of noexcept", "url": "https://lesleylai.info/en/noexcept-codegen", "published_at": "2020-03-02T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb8303c47", "title": "Concepts in Programming Languages, Part II: Statics", "url": "https://lesleylai.info/en/statics", "published_at": "2020-03-02T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb91619ff", "title": "Concepts in Programming Languages, Part I: Judgements and Inference Rules", "url": "https://lesleylai.info/en/judgement-inference-rules", "published_at": "2020-01-26T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb97c4c0a", "title": "Const Correctness Issue of std::function", "url": "https://lesleylai.info/en/const-correcness-std-function", "published_at": "2019-12-30T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fb98a400f", "title": "Make Impossible State Unrepresentable, in C++", "url": "https://lesleylai.info/en/make-impossible-state-unrepresentable", "published_at": "2019-10-26T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fba28846b", "title": "We are defining assignment operators wrong.", "url": "https://lesleylai.info/en/type-of-assignment-operators", "published_at": "2019-10-14T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbb1567ed", "title": "CppCon 2019 Trip Report", "url": "https://lesleylai.info/en/cppcon2019", "published_at": "2019-09-22T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbb7d65c5", "title": "ACM Siggraph 2019 Trip Report", "url": "https://lesleylai.info/en/siggraph2019", "published_at": "2019-08-07T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbb94755a", "title": "Intuition Behind X86 \"lea\" Instruction", "url": "https://lesleylai.info/en/lea", "published_at": "2019-06-11T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbc813227", "title": "When does a C++ temporary object die?", "url": "https://lesleylai.info/en/temporaries", "published_at": "2019-03-28T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbd611d9c", "title": "C++ Lambda Tutorial", "url": "https://lesleylai.info/en/cpp-lambda", "published_at": "2019-03-25T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbd7d27fd", "title": "Book Review: \"Functional Programming in C++\"", "url": "https://lesleylai.info/en/functional-cpp", "published_at": "2019-03-22T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbe180056", "title": "Tail Recursion Explanation", "url": "https://lesleylai.info/en/tail-recursion", "published_at": "2019-01-22T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbe1bb145", "title": "Book Review: \"Professional CMake: A Practical Guide\"", "url": "https://lesleylai.info/en/professional-cmake", "published_at": "2019-01-15T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbf04e38e", "title": "Resource management and RAII in C++", "url": "https://lesleylai.info/en/raii", "published_at": "2016-10-26T00:00:00+00:00" }, { "id": "01a0879a-10ec-71dc-bc69-933fbfd268a9", "title": "Integrate a unit test framework in cmake", "url": "https://lesleylai.info/en/unit-test-with-cmake", "published_at": "2016-05-13T00:00:00+00:00" } ] posts Claim your blog
Back to lesleylai.info
Blog · corpus.blog/blogs/lesleylai.info/posts

lesleylai.info

lesleylai.info

2026

2025

2024

2023

2022

2021

2020

2019

2016