56,966 blogs · [ { "id": "01a0dcb3-812e-71d7-abf0-5eca78e12da4", "title": "Grieving the loss of details", "url": "https://purplesyringa.moe/blog/./grieving-the-loss-of-details/", "published_at": "2026-09-24T00:00:00+00:00" }, { "id": "01a0bdf0-37cf-7068-84b4-266e05cede10", "title": "Write while learning", "url": "https://purplesyringa.moe/blog/./write-while-learning/", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a0bdf0-37cf-7068-84b4-266e05e343b6", "title": "Don't call yourself an artisanal programmer", "url": "https://purplesyringa.moe/blog/./dont-call-yourself-an-artisanal-programmer/", "published_at": "2026-09-13T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f1310e08", "title": "The NX bit is not just about security", "url": "https://purplesyringa.moe/blog/guest/the-nx-bit-is-not-just-about-security/", "published_at": "2026-09-04T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f214a732", "title": "accept() and socket inheritance", "url": "https://purplesyringa.moe/blog/./accept-and-socket-inheritance/", "published_at": "2026-08-20T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f291e3e2", "title": "DuplicateHandle works on sockets, mostly", "url": "https://purplesyringa.moe/blog/./duplicatehandle-works-on-sockets-mostly/", "published_at": "2026-08-19T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f2ff6634", "title": "Race-free handle inheritance, maybe", "url": "https://purplesyringa.moe/blog/./race-free-handle-inheritance-maybe/", "published_at": "2026-08-18T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f335437c", "title": "std::process::Command is a bad citizen on Windows", "url": "https://purplesyringa.moe/blog/./std-process-command-is-a-bad-citizen-on-windows/", "published_at": "2026-08-16T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f33ba974", "title": "Impressions of Teal", "url": "https://purplesyringa.moe/blog/./impressions-of-teal/", "published_at": "2026-07-26T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f3943c79", "title": "Thoughts on \"SIMD in Pure Python\"", "url": "https://purplesyringa.moe/blog/./thoughts-on-simd-in-pure-python/", "published_at": "2026-07-26T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f394a932", "title": "log is non-monotonic in PHP and Lua", "url": "https://purplesyringa.moe/blog/./log-is-non-monotonic-in-php-and-lua/", "published_at": "2026-07-22T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f45d1bee", "title": "Sorted rank coding", "url": "https://purplesyringa.moe/blog/./sorted-rank-coding/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f5599576", "title": "Quadrupling code performance with a \"useless\" if", "url": "https://purplesyringa.moe/blog/./quadrupling-code-performance-with-a-useless-if/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a087cb-a01d-7058-928f-4aa2f5e9bc82", "title": "Optimal parse with phminposuw", "url": "https://purplesyringa.moe/blog/./optimal-parse-with-phminposuw/", "published_at": "2026-07-11T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c580fabf71", "title": "Does technical blogging spark joy?", "url": "https://purplesyringa.moe/blog/./does-technical-blogging-spark-joy/", "published_at": "2026-07-04T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c581523726", "title": "Suffix BWT vs cyclic shift BWT, and fast computation", "url": "https://purplesyringa.moe/blog/./suffix-bwt-vs-cyclic-shift-bwt-and-fast-computation/", "published_at": "2026-07-03T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c581605858", "title": "Optimizing Lua string literals to save 400 bytes", "url": "https://purplesyringa.moe/blog/guest/optimizing-lua-string-literals-to-save-400-bytes/", "published_at": "2026-07-02T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5816bd891", "title": "This Wasm interpreter fits in a QR code", "url": "https://purplesyringa.moe/blog/./this-wasm-interpreter-fits-in-a-qr-code/", "published_at": "2026-05-03T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c581ad457f", "title": "You might misunderstand arithmetic coding", "url": "https://purplesyringa.moe/blog/./you-might-misunderstand-arithmetic-coding/", "published_at": "2026-05-03T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5823a1f56", "title": "Wasm is not quite a stack machine", "url": "https://purplesyringa.moe/blog/./wasm-is-not-quite-a-stack-machine/", "published_at": "2026-04-27T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c582f03c2d", "title": "Wait, if (flags & O_SYNC) is wrong?", "url": "https://purplesyringa.moe/blog/./wait-if-flags-and-o_sync_is-wrong/", "published_at": "2026-04-23T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c582f3f2ff", "title": "Programming used to be free", "url": "https://purplesyringa.moe/blog/./programming-used-to-be-free/", "published_at": "2026-04-13T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c583ab3d0a", "title": "No one owes you supply-chain security", "url": "https://purplesyringa.moe/blog/./no-one-owes-you-supply-chain-security/", "published_at": "2026-04-11T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58456d6a6", "title": "Simplest hash functions", "url": "https://purplesyringa.moe/blog/./simplest-hash-functions/", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5852a4782", "title": "There is absolutely nothing wrong with Web", "url": "https://purplesyringa.moe/blog/./there-is-absolutely-nothing-wrong-with-web/", "published_at": "2026-03-31T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c586009906", "title": "Optimization lessons from a Minecraft structure locator", "url": "https://purplesyringa.moe/blog/./optimization-lessons-from-a-minecraft-structure-locator/", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c586e530d9", "title": "Reinventing aliasing XOR mutability and lifetimes", "url": "https://purplesyringa.moe/blog/./reinventing-aliasing-xor-mutability-and-lifetimes/", "published_at": "2026-03-17T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c586e917e1", "title": "An ode to bzip", "url": "https://purplesyringa.moe/blog/./an-ode-to-bzip/", "published_at": "2026-03-12T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c587170d6f", "title": "Faster practical modular inversion", "url": "https://purplesyringa.moe/blog/./faster-practical-modular-inversion/", "published_at": "2025-12-20T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5880d16d3", "title": "Rust's v0 mangling scheme in a nutshell", "url": "https://purplesyringa.moe/blog/./rusts-v0-mangling-scheme-in-a-nutshell/", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c588d065a7", "title": "Faster comparison modulo α-equivalence", "url": "https://purplesyringa.moe/blog/./faster-comparison-modulo-alpha-equivalence/", "published_at": "2025-11-30T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c589ab87a9", "title": "A look at Rust from 2012", "url": "https://purplesyringa.moe/blog/./a-look-at-rust-from-2012/", "published_at": "2025-11-25T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58a361c79", "title": "ntoh*/hton* is a bad API", "url": "https://purplesyringa.moe/blog/./ntoh-hton-is-a-bad-api/", "published_at": "2025-11-18T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58a5ff2a3", "title": "Finding duplicated code with tools from your CS course", "url": "https://purplesyringa.moe/blog/./finding-duplicated-code-with-tools-from-your-cs-course/", "published_at": "2025-11-17T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58b5365c7", "title": "JVM exceptions are weird: a decompiler perspective", "url": "https://purplesyringa.moe/blog/./jvm-exceptions-are-weird-a-decompiler-perspective/", "published_at": "2025-11-02T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58b575687", "title": "The expression problem and Rust", "url": "https://purplesyringa.moe/blog/./the-expression-problem-and-rust/", "published_at": "2025-09-30T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58b69cf34", "title": "Fenwick layout for interval trees", "url": "https://purplesyringa.moe/blog/./fenwick-layout-for-interval-trees/", "published_at": "2025-09-10T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58bfb3629", "title": "If I hear \"design pattern\" one more time, I'll go mad", "url": "https://purplesyringa.moe/blog/./if-i-hear-design-pattern-one-more-time-ill-go-mad/", "published_at": "2025-09-04T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58c2e923f", "title": "\"AI discourse\" is a joke", "url": "https://purplesyringa.moe/blog/./ai-discourse-is-a-joke/", "published_at": "2025-07-14T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58c311175", "title": "Hidden complexity in software development", "url": "https://purplesyringa.moe/blog/./hidden-complexity-in-software-development/", "published_at": "2025-07-02T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58cc46ec3", "title": "Splitting independent variables without SSA", "url": "https://purplesyringa.moe/blog/./splitting-independent-variables-without-ssa/", "published_at": "2025-06-15T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58da0a944", "title": "Fast limited-range conversion between ints and floats", "url": "https://purplesyringa.moe/blog/./fast-limited-range-conversion-between-ints-and-floats/", "published_at": "2025-06-07T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58e7111c5", "title": "Recovering control flow structures without CFGs", "url": "https://purplesyringa.moe/blog/./recovering-control-flow-structures-without-cfgs/", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58e72b92f", "title": "Why performance optimization is hard work", "url": "https://purplesyringa.moe/blog/./why-performance-optimization-is-hard-work/", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58ed43ad5", "title": "Falsehoods programmers believe about null pointers", "url": "https://purplesyringa.moe/blog/./falsehoods-programmers-believe-about-null-pointers/", "published_at": "2025-01-30T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58f931a18", "title": "The RAM myth", "url": "https://purplesyringa.moe/blog/./the-ram-myth/", "published_at": "2024-12-19T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c58fcbda45", "title": "Thoughts on Rust hashing", "url": "https://purplesyringa.moe/blog/./thoughts-on-rust-hashing/", "published_at": "2024-12-12T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c590afc988", "title": "Any Python program fits in 24 characters*", "url": "https://purplesyringa.moe/blog/./any-python-program-fits-in-24-characters/", "published_at": "2024-11-17T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c59120aea8", "title": "The Rust Trademark Policy is still harmful", "url": "https://purplesyringa.moe/blog/./the-rust-trademark-policy-is-still-harmful/", "published_at": "2024-11-10T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5918df22c", "title": "Bringing faster exceptions to Rust", "url": "https://purplesyringa.moe/blog/./bringing-faster-exceptions-to-rust/", "published_at": "2024-11-06T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5923e7bd1", "title": "We built the best \"Bad Apple!!\" in Minecraft", "url": "https://purplesyringa.moe/blog/./we-built-the-best-bad-apple-in-minecraft/", "published_at": "2024-10-10T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5929385e3", "title": "Minecraft сравнивает массивы за куб", "url": "https://purplesyringa.moe/blog/ru/minecraft-compares-arrays-in-cubic-time/", "published_at": "2024-09-14T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c5929479e3", "title": "WebP: The WebPage compression format", "url": "https://purplesyringa.moe/blog/./webp-the-webpage-compression-format/", "published_at": "2024-09-07T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c593303bfe", "title": "Division is hard, but it doesn't have to be", "url": "https://purplesyringa.moe/blog/./division-is-hard-but-it-does-not-have-to-be/", "published_at": "2024-08-24T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c593d663a1", "title": "I sped up serde_json strings by 20%", "url": "https://purplesyringa.moe/blog/./i-sped-up-serde-json-strings-by-20-percent/", "published_at": "2024-08-20T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c593e48e82", "title": "The sentinel trick", "url": "https://purplesyringa.moe/blog/./the-sentinel-trick/", "published_at": "2024-08-13T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c59455ce88", "title": "You might want to use panics for error handling", "url": "https://purplesyringa.moe/blog/./you-might-want-to-use-panics-for-error-handling/", "published_at": "2024-08-13T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c594914975", "title": "У base64 есть неподвижная точка", "url": "https://purplesyringa.moe/blog/ru/base64-has-a-fixed-point/", "published_at": "2024-08-03T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c594e2686b", "title": "I thought I was smart enough to play with fire", "url": "https://purplesyringa.moe/blog/./i-thought-i-was-smart-enough-to-play-with-fire/", "published_at": "2024-06-20T00:00:00+00:00" }, { "id": "01a087cb-a01e-7260-a18c-45c595440b5d", "title": "Recovering garbled Bitcoin addresses", "url": "https://purplesyringa.moe/blog/./recovering-garbled-bitcoin-addresses/", "published_at": "2024-04-23T00:00:00+00:00" } ] posts Claim your blog
Back to purplesyringa
Blog · corpus.blog/blogs/purplesyringa.moe/posts

purplesyringa

purplesyringa.moe

2026

2025

2024