Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
Kyle Kukshtel writes up his Indie Rodeo talk on making games more legible to AI coding agents: practical ways to structure a game project, tooling and feedback loops so agents like Claude Code can iterate faster and more reliably on game development.
27 min · 6,159 words
When ldaxr Doesn't Work: Exclusive Accesses and Cacheability on AArch64
Joel Siks debugs why spinlocks built on ldaxr/stxr exclusive accesses hung on a real Raspberry Pi 5 while working in QEMU in his hobby AArch64 kernel floss, tracing it to memory cacheability attributes and the differences between QEMU, the Arm architecture manual and the Cortex-A76.
12 min · 2,658 words
An opinionated hands-on comparison of Isabelle/HOL, Lean, HOL4 and Agda, formalizing Euclid's proof of the infinitude of primes in each and judging them on user experience: dependent types versus LCF-style kernels, tooling, libraries and automation, with the full proofs included.
36 min · 8,226 words
The reverts will continue until morale improves
PostgreSQL committer Peter Eisentraut reflects on the unusually large wave of feature reverts after PostgreSQL 19 entered beta, why quality bar and unfinished design led to cutting ~8–10 significant features, and what that means for PostgreSQL 19 and 20.
5 min · 1,145 words
Glyph Lefkowitz contrasts the concerted push against generative AI across writing, art and music with how many programmers keep using it anyway, and argues that programming is art like any other creative medium, so AI encroachment on software development is just as worth resisting.
8 min · 1,807 words
Push Ifs Up and Fors Down: The Idiom, Its Algebra, and Its Limits
Debasish Ghosh examines the 'push ifs up and fors down' heuristic from TigerBeetle's Tiger Style and matklad: what it actually says, how it mirrors predicate pushdown and batching in query optimization, how algebraic laws of functional programs such as filter/map fusion decide which rewrites are legal, and where the analogy stops paying off.
7 min · 1,570 words
A short personal essay on loving to program while watching AI coding agents become addictive: feeling late to agents, mourning craft, and wondering what happens when the fun part of the job is handed to a machine.
3 min · 686 words
How to Fix autoconf-style Config Probing
Boris Kolpackov explains why autoconf/CMake-style configuration probing, which compiles and links test programs to detect features, silently produces wrong results, and proposes fixes tested in build2: control probes that must succeed, stricter error detection and more, with roughly half a second of overhead for 500 probes.
9 min · 2,021 words
Unison Cloud is now open source
Paul Chiusano announces that Unison Cloud, which turns a pool of nodes into a distributed computer programmable in Unison, is now MIT licensed, newly open-sourcing the Nimbus worker node, the Haskell Cloud API server and the Unison Cloud UI alongside the existing client.
1 min · 291 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
Thanks to 227 contributors, 817 pull requests, community reviewers, and our generous donors, we're happy to announce the Bevy 0.20 release on crates.io!
23 min · 5,381 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
Daniel Mangum digs into the Nordic nRF54LM20 access port and what you can learn when a peripheral writes memory while the CPU is halted.
9 min · 1,960 words
Clojure in the Age of Language Models
Yogthos argues that as LLMs make writing code cheap, the valuable skill is high-level reasoning about data and design — and that Clojure's declarative, data-oriented, REPL-driven style fits both agents and humans, with Jolt potentially removing the remaining friction.
6 min · 1,283 words
I gave Opus 5.5 one prompt and six hours to visualize Invisible Cities
Piotr Migdał asks Claude Opus 5.5 to turn Italo Calvino's Invisible Cities into interactive visualizations in a single long session, reflecting on what 'vibe designing' can and cannot do for explorable explanations.
3 min · 609 words
The author of the rat compiler backend explains replacing a 1,392-line linear scan register allocator with a 584-line priority bin-packing allocator that produces better x86-64 code. The post walks through live ranges, fixed registers, coalescing, register picking and spilling, then measures what each feature was worth, finding that cheap techniques like coalescing and hints matter most.
11 min · 2,427 words
matklad explains the mental model that made Git click for him: besides an immutable content-addressed object store, Git is a plain mutable key-value store of refs. Branches, tags, remote-tracking branches and notes are all just refs, and spelling out CLI shorthands like git fetch origin master shows why one command says origin master and another origin/master.
5 min · 1,098 words
A guide to the C programming language written from the perspective of someone who learned Rust first. BD103 walks through the surprising and unexpected parts of C for Rust programmers, including booleans and headers, strings and pointer lengths, integer types like size_t, the arrow operator, and the memory safety pitfalls Rust usually prevents.
9 min · 2,046 words
Starting from grubby, a minimal Ruby static site generator written in a plain unrolled style, this Noteflakes post compares it to how ERB and Papercraft compile templates, then proposes a quote/unquote mechanism for Ruby code generation and discusses walking the line between Rails-style abstraction and machine performance.
17 min · 3,875 words
Anti-Patterns in Software Blogging
Michael Lynch catalogues the most common mistakes he sees from beginner software bloggers: meandering intros, assuming the reader knows everything except one thing, overreliance on links, presenting posts as sequels, excessive formality, and basic rendering problems like mobile overflow and unreadable fonts, with a checklist summary.
8 min · 1,921 words