Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.

Showing 101–120 of 509 articles

  • Your Game Is A Harness

    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.

    Essay · AI Agents · Programming · Developer Tools · Software Engineering

    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.

    Blog post · Programming · Engineering

    12 min · 2,658 words

  • A tale of four theorem provers, or: A (reasonably) opinionated comparison of Isabelle/HOL, Lean, HOL4, and Agda

    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.

    Blog post · Mathematics · Programming · Developer Tools · Research

    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.

    Opinion · Databases · Open Source · Programming · Opinion

    5 min · 1,145 words

  • Programming Isn’t Special

    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.

    Essay · AI · Opinion · Programming

    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.

    Essay · Programming · Functional Programming · Databases · Performance

    7 min · 1,570 words

  • My obituary for programming

    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.

    Essay · Programming · AI · Opinion · Culture

    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.

    Blog post · Programming · C · Open Source · Software Engineering

    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.

    Announcement · Open Source · Infrastructure · Programming · Announcements

    1 min · 291 words

  • Extending Guix

    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.

    Tutorial · Open Source · Linux · Programming

    5 min · 1,143 words

  • Bevy 0.20

    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!

    Changelog · Open Source · Programming · Rust

    23 min · 5,381 words

  • Monte-Carlo simulations

    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.

    Tutorial · Mathematics · Simulation · Programming · Python

    8 min · 1,757 words

  • What's on that Access Port?

    Daniel Mangum digs into the Nordic nRF54LM20 access port and what you can learn when a peripheral writes memory while the CPU is halted.

    Blog post · Hardware · Engineering · Programming

    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.

    Opinion · Programming · LLMs · Functional Programming · AI

    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.

    Blog post · AI · Design · LLMs · Programming

    3 min · 609 words

  • rat's register allocator

    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.

    Blog post · Systems Programming · Programming · Performance

    11 min · 2,427 words

  • On Git Refs

    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.

    Blog post · Programming · Developer Tools · Software Engineering

    5 min · 1,098 words

  • C for Rust Programmers

    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.

    Tutorial · Rust · Programming · Systems Programming

    9 min · 2,046 words

  • Unrolled Code

    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.

    Blog post · Ruby · Programming · 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.

    Guide · Writing · Programming

    8 min · 1,921 words