Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
writing about pratt parsing so I remember it
A hands-on walkthrough of Pratt parsing for C expressions: why it rarely shows up in standard compiler courses, how binding power handles precedence and associativity, and how prefix, infix and postfix subroutines keep the parser core small, with pointers to Crafting Interpreters.
5 min · 1,260 words
Building Java ME Apps with Modern Tooling
ROllerozxa walks through building Java ME (J2ME) apps for old feature phones with modern tooling: OpenJDK 8, MicroEmulator stub JARs for the CLDC 1.1 and MIDP 2.0 APIs, compiling with javac, packaging the JAR, preverifying with ProGuard, getting it onto a phone, and the platform's limitations.
7 min · 1,668 words
kqr of Entropic Thoughts shows how to use a Nix flake on any Linux distribution to manage a simple script's dependencies, packaging a Python text-to-speech script as a binary and then adapting the approach to other languages.
8 min · 1,907 words
Aaron Allen's 'Hanami, Why?' series covers Hanami's database layer: why it splits persistence into relations, repos and structs instead of Rails-style models, the advantages of the repo pattern, keeping persistence from leaking into the rest of an app, and the rough edges he has found so far.
11 min · 2,581 words
Jim Calabro walks through how bloom filters work, how Bluesky moved from multiple hash functions to double hashing to cut contention, and then explores the one-hash bloom filter from Lu et al., which splits the bit array into partitions with pairwise coprime sizes so a single hash can stand in for k independent ones.
6 min · 1,387 words
Using timers to perform weekly tasks
Marcin Borkowski shows how he runs a weekly Org-mode review with Emacs timers, including sleep-aware scheduling with system-sleep so the review still fires after the machine wakes.
7 min · 1,588 words
Parser CombinatorsBetter than regex!
A hands-on TypeScript introduction to parser combinators: starting from a partial parser type, chaining parsers with sequencing and mapping, and building up a hand-rolled combinator library that parses real ping output into structured data, as a cleaner middle ground between regex and tree-sitter.
7 min · 1,661 words
Handwired: turn your regular JavaScript code into a neural net
Cheng Lou's Handwired transforms ordinary JavaScript control flow into exact, fully differentiable neural nets that run in the browser without a GPU—including demos like a mini desktop, trainable gallery, and parallel JSON search.
18 min · 4,245 words
An Emulator Writer's HOWTO for Static Binary Translation
Graham Toal's technical HOWTO on static binary translation for emulators: analyzing instruction sets, translating guest code to host code offline, handling self-modifying code and indirect jumps, with pointers to the Orion SBT project and Michael Steil's abstract.
36 min · 8,376 words
Chema Guerra walks through his implementation of procedural tree growth based on Palubicki et al.'s self-organizing tree models: buds competing for light season by season, resource distribution down and up the tree, branch shedding, and how the grown trees are turned into renderable foliage, LODs and baked impostors for forests.
4 min · 946 words
Simple Sudoku Solvers SIII, EII: Assembly
The latest entry in Veit Heller's Simple Sudoku Solvers series writes a backtracking Sudoku solver in AArch64 assembly for macOS, walking through registers, memory layout, system calls and the board-checking loops with no type system to help.
13 min · 3,021 words
Types of types: Haskell's Kind system
A practical tour of Haskell’s kind system—values, types, kinds, higher-kinded types and data, and custom kinds—drawn from adding typed configuration to a Redis clone.
15 min · 3,422 words
C++ futures part 1: The mental model
Raymond Chen starts a series on C++ std::promise, std::packaged_task, std::async and std::future by modeling them as a single shared state he calls the source, and sketches how that source produces, stores and hands off a value or exception.
3 min · 688 words
(Post-Quantum) Cryptographic Right Answers
Filippo Valsorda updates the "Cryptographic Right Answers" tradition (Percival, Ptacek, Latacora) for the accelerated post-quantum transition, giving developers concrete recommendations for encryption, key exchange, signatures, hashing, passwords, TLS and more.
17 min · 4,016 words
Writing a Demoscene Intro for the ZX Spectrum
Mark Dastmalchi-Round walks through tools, techniques and challenges of writing a retro ZX Spectrum demoscene crack intro, covering the pipeline from assets to a runnable production.
31 min · 7,074 words
I can't use generic lambdas at compile-time, now what?
Braden Ganetsky follows up his 'Break MSVC and Clang' post with a deep dive into working around a Clang bug that blocks using generic lambdas in constant evaluation, explaining how he got a compile-time C++ technique to work on Clang 16 onward.
16 min · 3,598 words
A practical introduction to arena allocators in C: what they are, why grouping allocations into one region makes memory management faster and less leak-prone, and a step-by-step personal implementation with code, plus the trade-offs of using them.
9 min · 2,184 words
Fetching AMD SEV Reports (With Zig)
A walkthrough of AMD SEV-SNP attestation: what confidential VMs protect against, how to retrieve a signed attestation report on Linux and through Coconut SVSM and OpenHCL, and how to verify its certificate chain and validate it against expected policy using a Zig library.
4 min · 969 words
A GNU Guix blog tutorial on extending Guix with new guix commands: listing available extensions, the existing extension packages and meta-package, and walking through creating an extension's project directories and Scheme module so it can be distributed and used by others.
5 min · 1,143 words
Eli Bendersky introduces Monte Carlo simulations, which apply randomness and the law of large numbers to scientific and engineering problems, through worked examples: estimating pi by throwing darts, a combinatorial simulation of the card game SET, and a retirement portfolio projection, with code.
8 min · 1,757 words