41554 blogs · [ { "id": "01a0bb57-9e11-716b-9a8d-666533efadf2", "title": "From code reuse to the impact of generative AI", "url": "https://lemire.me/blog/2025/06/27/from-code-reuse-to-the-impact-of-generative-ai/", "published_at": "2025-06-27T13:33:12+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653445cd70", "title": "Discover C++26’s compile-time reflection", "url": "https://lemire.me/blog/2025/06/22/c26-will-include-compile-time-reflection-why-should-you-care/", "published_at": "2025-06-22T01:55:37+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666534ab325d", "title": "Life expectancy of men in Canadian provinces", "url": "https://lemire.me/blog/2025/06/21/life-expectancy-of-men-in-canadian-provinces/", "published_at": "2025-06-21T00:32:39+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666535a29d55", "title": "Don’t argue: build", "url": "https://lemire.me/blog/2025/06/16/dont-argue-build/", "published_at": "2025-06-16T14:42:38+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666535b800fb", "title": "Metcalfe’s Law against Brooks’ Law", "url": "https://lemire.me/blog/2025/06/15/metcalfes-law-against-brooks-law/", "published_at": "2025-06-15T14:32:49+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-6665368f39c2", "title": "Let us bury the linear model of innovation", "url": "https://lemire.me/blog/2025/06/12/let-us-bury-the-linear-model-of-innovation/", "published_at": "2025-06-12T14:33:00+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653785d5d1", "title": "Fast character classification with z3", "url": "https://lemire.me/blog/2025/06/01/easy-vectorized-classification-with-z3/", "published_at": "2025-06-01T03:32:28+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666537cad935", "title": "Is the job market for software developers collapsing?", "url": "https://lemire.me/blog/2025/05/27/is-the-job-market-for-software-developers-collapsing/", "published_at": "2025-05-27T21:34:49+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666538951fc1", "title": "Models and science", "url": "https://lemire.me/blog/2025/05/23/models-and-science/", "published_at": "2025-05-23T23:38:12+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666538c0ba95", "title": "Dividing an array into fair sized chunks", "url": "https://lemire.me/blog/2025/05/22/dividing-an-array-into-fair-sized-chunks/", "published_at": "2025-05-22T17:40:02+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-6665398c10d3", "title": "Returning several values from a function in C++ (C++23 edition)", "url": "https://lemire.me/blog/2025/05/18/returning-several-values-from-a-function-in-c-c23-edition/", "published_at": "2025-05-18T20:22:16+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653a50856e", "title": "Producing useful commands on the go using C++ and AI", "url": "https://lemire.me/blog/2025/05/10/producing-useful-commands-on-the-go-using-c-and-ai/", "published_at": "2025-05-10T20:54:46+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653ab875f5", "title": "C++20 concepts for nicer compiler errors", "url": "https://lemire.me/blog/2025/05/03/c20-concepts-for-nicer-compiler-errors/", "published_at": "2025-05-03T19:44:26+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653b7b203b", "title": "Streamlined iteration: exploring keys and values in C++20", "url": "https://lemire.me/blog/2025/04/20/iterating-through-keys-and-values-in-c-with-c20-code/", "published_at": "2025-04-20T20:40:40+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653c51be0d", "title": "Detect control characters, quotes and backslashes efficiently using ‘SWAR’", "url": "https://lemire.me/blog/2025/04/13/detect-control-characters-quotes-and-backslashes-efficiently-using-swar/", "published_at": "2025-04-13T22:36:41+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653c7a4f31", "title": "How can really smart people appear totally incompetent?", "url": "https://lemire.me/blog/2025/04/11/how-can-really-smart-people-appear-totally-incompetent/", "published_at": "2025-04-11T18:56:26+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653d2dbf69", "title": "How helpful is AI?", "url": "https://lemire.me/blog/2025/04/07/how-helpful-is-ai/", "published_at": "2025-04-07T19:41:27+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653de77557", "title": "Faster shuffling in Go with batching", "url": "https://lemire.me/blog/2025/04/06/faster-shuffling-in-go-with-batching/", "published_at": "2025-04-06T20:26:56+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653e28b4a1", "title": "Mixing ARM NEON with SVE code for fun and profit", "url": "https://lemire.me/blog/2025/03/29/mixing-arm-neon-with-sve-code-for-fun-and-profit/", "published_at": "2025-03-29T01:44:47+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653ecb537e", "title": "Unsigned comparisons using signed types", "url": "https://lemire.me/blog/2025/03/24/unsigned-comparisons-using-signed-types/", "published_at": "2025-03-24T23:24:50+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653f3bb335", "title": "Speeding up C++ code with template lambdas", "url": "https://lemire.me/blog/2025/03/15/speeding-up-c-code-with-template-lambdas/", "published_at": "2025-03-15T17:29:50+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-66653ff9f194", "title": "An overview of parallel programming (Go edition)", "url": "https://lemire.me/blog/2025/03/09/an-overview-of-parallel-programming-go-edition/", "published_at": "2025-03-09T21:35:41+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-6665402a8352", "title": "How fast can you open 1000 files?", "url": "https://lemire.me/blog/2025/03/01/how-fast-can-you-open-1000-files/", "published_at": "2025-03-01T22:41:04+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666540f819fc", "title": "AVX-512 gotcha: avoid compressing words to memory with AMD Zen 4 processors", "url": "https://lemire.me/blog/2025/02/14/avx-512-gotcha-avoid-compressing-words-to-memory-with-amd-zen-4-processors/", "published_at": "2025-02-14T21:27:29+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-666541a38688", "title": "Thread-safe memory copy", "url": "https://lemire.me/blog/2025/02/07/thread-safe-memory-copy/", "published_at": "2025-02-07T23:12:34+00:00" }, { "id": "01a0bb57-9e11-716b-9a8d-6665424641d9", "title": "Programmer time and the pitfalls of wasteful work", "url": "https://lemire.me/blog/2025/01/30/programmer-time-and-the-pitfalls-of-false-positives/", "published_at": "2025-01-30T03:02:36+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d368073a", "title": "Regular expressions can blow up!", "url": "https://lemire.me/blog/2025/01/25/regular-expressions-can-blow-up/", "published_at": "2025-01-25T03:53:36+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d383220a", "title": "Checking whether an ARM NEON register is zero", "url": "https://lemire.me/blog/2025/01/20/checking-whether-an-arm-neon-register-is-zero/", "published_at": "2025-01-20T01:05:51+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d385f05b", "title": "The ivory tower’s drift: how academia’s preference for theory over empiricism fuels scientific stagnation", "url": "https://lemire.me/blog/2025/01/15/the-ivory-towers-drift-how-academias-preference-for-theory-over-empiricism-fuels-scientific-stagnation/", "published_at": "2025-01-15T20:30:06+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d3db0cee", "title": "JavaScript hashing speed comparison: MD5 versus SHA-256", "url": "https://lemire.me/blog/2025/01/11/javascript-hashing-speed-comparison-md5-versus-sha-256/", "published_at": "2025-01-11T16:21:18+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d4361609", "title": "Counting the digits of 64-bit integers", "url": "https://lemire.me/blog/2025/01/07/counting-the-digits-of-64-bit-integers/", "published_at": "2025-01-07T21:41:57+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d47d540d", "title": "Artificial Intelligence as the Expert’s Lever: Elevating Human Expertise in the Age of AI", "url": "https://lemire.me/blog/2025/01/04/artificial-intelligence-as-the-experts-lever-elevating-human-expertise-in-the-age-of-ai/", "published_at": "2025-01-04T17:37:14+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d53a4aa3", "title": "How does your URL parser handle Unicode?", "url": "https://lemire.me/blog/2025/01/02/how-does-your-url-parser-handle-unicode/", "published_at": "2025-01-02T16:07:31+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d6396ec9", "title": "Efficient In-Place UTF-16 Unicode Correction with ARM NEON", "url": "https://lemire.me/blog/2024/12/29/efficient-in-place-utf-16-unicode-correction-with-arm-neon/", "published_at": "2024-12-29T18:24:33+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d7253755", "title": "Simpler and faster parsing code with std::views::split", "url": "https://lemire.me/blog/2024/12/21/simpler-and-faster-parsing-code-with-stdviewssplit/", "published_at": "2024-12-21T21:35:13+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d8191bb7", "title": "Accessing the attributes of a struct in C++ as array elements?", "url": "https://lemire.me/blog/2024/12/16/accessing-the-attributes-of-a-struct-in-c-as-array-elements/", "published_at": "2024-12-16T00:55:17+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d8443ebd", "title": "Data structures as jigs for programmers (Go edition)", "url": "https://lemire.me/blog/2024/12/08/data-structures-as-jigs-for-programmers-go-edition/", "published_at": "2024-12-08T21:04:01+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d901e16d", "title": "Parsing floats at over a gigabyte per second in C#", "url": "https://lemire.me/blog/2024/11/21/parsing-floats-at-over-a-gigabyte-per-second-in-c/", "published_at": "2024-11-21T23:42:22+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091d9615d3a", "title": "Graduate degrees are overrated", "url": "https://lemire.me/blog/2024/11/12/graduate-degrees-are-overrated/", "published_at": "2024-11-12T17:39:24+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091da1a54cc", "title": "Having fun with modern C++", "url": "https://lemire.me/blog/2024/11/02/having-fun-with-modern-c/", "published_at": "2024-11-02T00:24:09+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dac51bb4", "title": "How fast can you parse a CSV file in C#?", "url": "https://lemire.me/blog/2024/10/17/how-fast-can-you-parse-a-csv-file-in-c/", "published_at": "2024-10-17T23:03:05+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dba5e7e4", "title": "Table lookups are efficient", "url": "https://lemire.me/blog/2024/10/14/table-lookups-are-efficient/", "published_at": "2024-10-14T22:15:42+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dbbc3f31", "title": "From software to reality?", "url": "https://lemire.me/blog/2024/10/09/from-software-to-reality/", "published_at": "2024-10-09T13:21:37+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dc2bca31", "title": "Geoffrey Hinton, the Godfather of Deep Learning, wins Nobel Prize in Physics!", "url": "https://lemire.me/blog/2024/10/08/geoffrey-hinton-the-godfather-of-deep-learning-wins-nobel-prize-in-physics/", "published_at": "2024-10-08T13:29:44+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dcd6e664", "title": "Iterating through matched characters in modern C++", "url": "https://lemire.me/blog/2024/10/06/iterating-through-matched-characters-in-modern-c-viewsfilter-and-coroutine/", "published_at": "2024-10-06T21:52:13+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dcf88063", "title": "It is never too late to write your own C/C++ command-line utilities", "url": "https://lemire.me/blog/2024/09/28/it-is-never-too-later-to-write-your-own-c-c-command-line-utilities/", "published_at": "2024-09-28T04:06:18+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dcf925ed", "title": "The PhD Paradox: A Journey into Academia’s Upside-Down World", "url": "https://lemire.me/blog/2024/09/11/the-phd-paradox-a-journey-into-academias-upside-down-world/", "published_at": "2024-09-11T20:33:28+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091dd26eea6", "title": "Replace strings by views when you can", "url": "https://lemire.me/blog/2024/09/09/replace-stdstring-by-stdstring_view-when-you-can/", "published_at": "2024-09-09T20:26:36+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091ddd95970", "title": "Compressing floating-point numbers quickly by converting them to brain floats", "url": "https://lemire.me/blog/2024/09/02/compressing-floating-point-numbers-quickly-by-converting-them-to-brain-floats/", "published_at": "2024-09-02T22:52:28+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091de6b614a", "title": "Parsing tiny and very large floating-point values: a programming-language comparison", "url": "https://lemire.me/blog/2024/08/26/parsing-tiny-and-very-large-floating-point-values-a-programming-language-comparison/", "published_at": "2024-08-26T15:34:55+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091df01cf38", "title": "Faster random integer generation with batching", "url": "https://lemire.me/blog/2024/08/17/faster-random-integer-generation-with-batching/", "published_at": "2024-08-17T02:11:30+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091df838ee9", "title": "Reflection-based JSON in C++ at Gigabytes per Second", "url": "https://lemire.me/blog/2024/08/13/reflection-based-json-in-c-at-gigabytes-per-second/", "published_at": "2024-08-13T16:12:46+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091df966430", "title": "Converting ASCII strings to lower case at crazy speeds with AVX-512", "url": "https://lemire.me/blog/2024/08/03/converting-ascii-strings-to-lower-case-at-crazy-speeds-with-avx-512/", "published_at": "2024-08-03T23:26:22+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e080f834", "title": "Evolution of iPhone storage capacity", "url": "https://lemire.me/blog/2024/07/28/evolution-of-iphone-storage-capacity/", "published_at": "2024-07-28T15:39:06+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e0d95e45", "title": "Storage costs are plummeting", "url": "https://lemire.me/blog/2024/07/27/storage-costs-are-plummeting/", "published_at": "2024-07-27T21:35:42+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e132d9cb", "title": "How big are your docker images?", "url": "https://lemire.me/blog/2024/07/27/how-big-are-your-docker-images/", "published_at": "2024-07-27T17:31:23+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e22330e1", "title": "How much of your binary executable is just ASCII text?", "url": "https://lemire.me/blog/2024/07/27/how-much-of-your-binary-executable-is-just-ascii-text/", "published_at": "2024-07-27T00:10:07+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e2bd02bc", "title": "Safer code in C++ with lifetime bounds", "url": "https://lemire.me/blog/2024/07/26/safer-code-in-c-with-lifetime-bounds/", "published_at": "2024-07-26T15:25:13+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e2c36b20", "title": "Does C++ allow template specialization by concepts?", "url": "https://lemire.me/blog/2024/07/22/does-c-allow-template-specialization-by-concepts/", "published_at": "2024-07-22T15:13:24+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e3b8eb20", "title": "Scan HTML even faster with SIMD instructions (C++ and C#)", "url": "https://lemire.me/blog/2024/07/20/scan-html-even-faster-with-simd-instructions-c-and-c/", "published_at": "2024-07-20T21:30:43+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e3c43147", "title": "Benchmarking ARM processors: Graviton 4, Graviton 3 and Apple M2", "url": "https://lemire.me/blog/2024/07/10/benchmarking-arm-processors-graviton-4-graviton-3-and-apple-m2/", "published_at": "2024-07-10T20:43:45+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e408697d", "title": "Scan HTML faster with SIMD instructions: .NET/C# Edition", "url": "https://lemire.me/blog/2024/07/05/scan-html-faster-with-simd-instructions-net-c-edition/", "published_at": "2024-07-05T19:44:50+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e44a09aa", "title": "How much memory does a call to ‘malloc’ allocate?", "url": "https://lemire.me/blog/2024/06/27/how-much-memory-does-a-call-to-malloc-allocates/", "published_at": "2024-06-27T20:41:51+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e4e4c373", "title": "Performance tip: avoid unnecessary copies", "url": "https://lemire.me/blog/2024/06/22/performance-tip-avoid-unnecessary-copies/", "published_at": "2024-06-22T19:14:18+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e56cfded", "title": "Validating gigabytes of Unicode strings per second… in C#?", "url": "https://lemire.me/blog/2024/06/20/validating-gigabytes-of-unicode-strings-per-second-in-c/", "published_at": "2024-06-20T17:25:02+00:00" }, { "id": "01a0bb5f-b68d-71b1-b30a-3091e63353a2", "title": "Rolling your own fast matrix multiplication: loop order and vectorization", "url": "https://lemire.me/blog/2024/06/13/rolling-your-own-fast-matrix-multiplication-loop-order-and-vectorization/", "published_at": "2024-06-13T21:11:26+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08672145e45", "title": "Scan HTML faster with SIMD instructions: Chrome edition", "url": "https://lemire.me/blog/2024/06/08/scan-html-faster-with-simd-instructions-chrome-edition/", "published_at": "2024-06-08T04:55:42+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08672dbbf66", "title": "Quickly checking whether a string needs escaping", "url": "https://lemire.me/blog/2024/05/31/quickly-checking-whether-a-string-needs-escaping/", "published_at": "2024-05-31T03:48:21+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867343e38b", "title": "Never reason from the results of a sampling profiler", "url": "https://lemire.me/blog/2024/05/30/never-reason-from-the-results-of-a-sampling-profiler/", "published_at": "2024-05-30T19:33:28+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867364a951", "title": "Science and Technology links (May 25 2024)", "url": "https://lemire.me/blog/2024/05/26/science-and-technology-links-may-25-2024/", "published_at": "2024-05-26T01:09:54+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08673b3a9f0", "title": "Learning from the object-oriented mania", "url": "https://lemire.me/blog/2024/05/14/learning-from-the-object-oriented-mania/", "published_at": "2024-05-14T14:17:42+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08673c5320e", "title": "Forwarding references in C++", "url": "https://lemire.me/blog/2024/05/13/forwarding-references-in-c/", "published_at": "2024-05-13T15:51:51+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08673ee66a6", "title": "Peer review is not the gold standard in science", "url": "https://lemire.me/blog/2024/05/11/peer-review-is-not-the-gold-standard-in-science/", "published_at": "2024-05-11T22:47:16+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b086743fb70e", "title": "How fast can you construct a small list of strings in C for Python?", "url": "https://lemire.me/blog/2024/05/09/how-fast-can-construct-small-list-of-strings-in-c-for-python/", "published_at": "2024-05-09T03:55:45+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08674d7bd13", "title": "Should Node.js be built with ClangCL under Windows?", "url": "https://lemire.me/blog/2024/05/02/should-node-js-be-built-with-clangcl-under-windows/", "published_at": "2024-05-02T19:23:11+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08675b9fa36", "title": "Careful with Pair-of-Registers instructions on Apple Silicon", "url": "https://lemire.me/blog/2024/04/29/careful-with-pair-of-registers-instructions-on-apple-silicon/", "published_at": "2024-04-29T00:32:38+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b086768e4215", "title": "Large language models (e.g., ChatGPT) as research assistants", "url": "https://lemire.me/blog/2024/04/27/large-language-models-e-g-chatgpt-as-research-assistants/", "published_at": "2024-04-27T00:05:24+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b086771ba94a", "title": "How do you recognize an expert?", "url": "https://lemire.me/blog/2024/04/21/how-do-you-recognize-an-expert/", "published_at": "2024-04-21T17:35:28+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08677a8599d", "title": "How quickly can you break a long string into lines?", "url": "https://lemire.me/blog/2024/04/19/how-quickly-can-you-break-a-long-string-into-lines/", "published_at": "2024-04-19T21:25:21+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867856c603", "title": "Science and Technology links (April 13 2024)", "url": "https://lemire.me/blog/2024/04/13/science-and-technology-links-april-13-2024/", "published_at": "2024-04-13T22:31:25+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08678a40b82", "title": "Greatest common divisor, the extended Euclidean algorithm, and speed!", "url": "https://lemire.me/blog/2024/04/13/greatest-common-divisor-the-extended-euclidean-algorithm-and-speed/", "published_at": "2024-04-13T20:56:11+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08678ac8887", "title": "A simple algorithm to compute the square root of an integer, byte by byte", "url": "https://lemire.me/blog/2024/04/11/a-simple-algorithm-to-compute-the-square-root-of-an-integer-byte-by-byte/", "published_at": "2024-04-11T19:39:11+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b086798acbec", "title": "C++ web app with Crow: early scalability results", "url": "https://lemire.me/blog/2024/04/06/c-web-app-with-crow-early-scalability-results/", "published_at": "2024-04-06T22:01:26+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867a132ef4", "title": "Science and Technology links (March 31 2024)", "url": "https://lemire.me/blog/2024/03/31/science-and-technology-links-march-31-2024/", "published_at": "2024-03-31T21:24:30+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867ac6706d", "title": "Fast and concise probabilistic filters in Python", "url": "https://lemire.me/blog/2024/03/31/fast-and-concise-probabilistic-filters-in-python/", "published_at": "2024-03-31T18:00:55+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867b557b74", "title": "Passing recursive C++ lambdas as function pointers", "url": "https://lemire.me/blog/2024/03/22/passing-recursive-c-lambdas-as-function-pointers/", "published_at": "2024-03-22T15:14:36+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867b7e4429", "title": "Measuring your system’s performance using software (Go edition)", "url": "https://lemire.me/blog/2024/03/17/measuring-your-systems-performance-using-software-go-edition/", "published_at": "2024-03-17T21:24:01+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867c064d3d", "title": "How to read files quickly in JavaScript", "url": "https://lemire.me/blog/2024/03/12/how-to-read-files-quickly-in-javascript/", "published_at": "2024-03-12T15:43:09+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867cf1cff4", "title": "How many political parties rule Canada? Fun with statistics", "url": "https://lemire.me/blog/2024/03/08/how-many-political-parties-rule-canada-fun-with-statistics/", "published_at": "2024-03-08T15:59:04+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867d86eca1", "title": "Book review: Theft of Fire by Devon Eriksen", "url": "https://lemire.me/blog/2024/02/24/book-review-theft-of-fire-by-devon-eriksen/", "published_at": "2024-02-24T18:35:03+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867df29a0a", "title": "Measuring energy usage: regular code vs. SIMD code", "url": "https://lemire.me/blog/2024/02/19/measuring-energy-usage-regular-code-vs-simd-code/", "published_at": "2024-02-19T21:39:32+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867e31e24c", "title": "JSON Parsing: Intel Sapphire Rapids versus AMD Zen 4", "url": "https://lemire.me/blog/2024/02/09/json-parsing-intel-sapphire-rapids-versus-amd-zen-4/", "published_at": "2024-02-09T19:57:29+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867e501a00", "title": "How fast is rolling Karp-Rabin hashing?", "url": "https://lemire.me/blog/2024/02/04/how-fast-is-rolling-karp-rabin-hashing/", "published_at": "2024-02-04T20:29:59+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867f23ba14", "title": "C23: a slightly better C", "url": "https://lemire.me/blog/2024/01/21/c23-a-slightly-better-c/", "published_at": "2024-01-21T19:20:10+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b0867f9b38a0", "title": "How much memory bandwidth do large Amazon instances offer?", "url": "https://lemire.me/blog/2024/01/18/how-much-memory-bandwidth-do-large-amazon-instances-offer/", "published_at": "2024-01-18T15:47:12+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b086808e30b1", "title": "Estimating your memory bandwidth", "url": "https://lemire.me/blog/2024/01/13/estimating-your-memory-bandwidth/", "published_at": "2024-01-13T21:00:46+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b086811845e8", "title": "Implementing the missing sign instruction in AVX-512", "url": "https://lemire.me/blog/2024/01/11/implementing-the-missing-sign-instruction-in-avx-512/", "published_at": "2024-01-11T19:53:48+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08681dfeed9", "title": "Science and Technology links (December 30th 2023)", "url": "https://lemire.me/blog/2023/12/30/science-and-technology-links-december-30th-2023/", "published_at": "2023-12-30T20:18:07+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b08681f26062", "title": "Measuring the size of the cache line empirically", "url": "https://lemire.me/blog/2023/12/12/measuring-the-size-of-the-cache-line-empirically/", "published_at": "2023-12-12T18:17:36+00:00" }, { "id": "01a0bb65-0110-72a4-adbd-b086826a260b", "title": "Fast Buffer-to-String conversion in JavaScript with a Lookup Table", "url": "https://lemire.me/blog/2023/12/08/fast-buffer-to-string-conversion-in-javascript-with-a-lookup-table/", "published_at": "2023-12-08T05:40:28+00:00" } ] posts Claim your blog
Back to Daniel Lemire
Blog · corpus.blog/blogs/lemire.me/posts

Daniel Lemire

lemire.me

2025

2024

2023