Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
Don't couple your Go code to GitHub
Iain Cambridge explains why Go import paths that hard-code github.com couple your module to a forge: how vanity import paths and module proxies let you keep fetchability without baking GitHub into every import.
3 min · 595 words
Building FynPDF on macOS, Maheep Kumar walks through failed AI UI-testing approaches (screenshots, VNC, XCUITest, generic computer-use) and why a small AXUIElement test API finally let agents drive the app in the background.
2 min · 443 words
Rusty thoughts on "Parse, don't validate"
Eli Bendersky revisits Alexis King's 'Parse, don't validate' idea through a Rust lens—how types can carry parsed invariants, where validation still sneaks in, and practical patterns for keeping illegal states unrepresentable.
6 min · 1,485 words
Infecting the Steam Link with NixOS
While rummaging through my closet the other day I discovered a [Steam Link](https://en.wikipedia.org/wiki/Steam_Link Hardware_device) I had bought on flash sale way back in 2018 still dutifully humming away all these years later. It occured to me that having an always on low power Arm device with Ethernet, WiFi, Bluetooth, and several USB ports would be handy, so thus began my journey to get NixOS running on the Steam Link.
13 min · 2,996 words
Analyzing Frontier Model Progress with My Favourite Game: Prince of Persia (Apple II, 1989)
Priyan uses Jordan Mechner's Prince of Persia as a living benchmark: asking frontier models to port and reason about the classic Apple II game, and what those runs reveal about coding-agent progress.
8 min · 1,825 words
42x Faster Prompt Lookup Drafting in llama.cpp
Four changes to the n-gram caches of llama.cpp make drafting up to 41.6x faster, load the static cache up to 23.5x faster, and lower peak memory up to 2.65x.
13 min · 2,954 words
Keep if clauses side-effect free
Lawrence Kesteloot argues that if-conditions should not enqueue work, mutate state, or hide control flow—keeping the predicate a pure question makes code easier to read, test, and refactor.
2 min · 494 words
The state of SIMD in Rust in 2026
A lot of progress was made since last year, and I made some of it! After [last year's survey](https://shnatsel.medium.com/the state of simd in rust in 2025 32c263e5f53d) I started contributing to the SIMD library that seemed the most promising. One thing led to another, and now I'm a maintainer of Fearless SIMD. To avoid a conflict of interest, I invited authors of other libraries ( std::simd , wide , pulp , macerator ) to review and provide feedback on a draft of this article.
25 min · 5,668 words
AI Subagents orchestration are now reliable
Rafael explains what changed to make AI subagent orchestration reliable enough for real development workflows, and how he uses task decomposition in practice.
6 min · 1,397 words
Mac Mini M6: Retro PC Emulation with 86Box (600MHz PII?!)
Benchmarking cycle-accurate 86Box on an M6 Mac Mini: why one core matters for retro PC emulation, a stable 600MHz Pentium II clock, and how timing accuracy compares to original hardware.
7 min · 1,678 words
From Thin Air to Bootable Images: The tine Build System
Martin Pitt and Daan De Meyer introduce tine: reproducible builds of RPM, Go, and Rust components into bootable images from minimal host requirements.
21 min · 4,850 words
It is with great sadness that we share the news of the passing of Johannes Doerfert, on September 17, 2026, at the age of 36, after a battle with cancer. Johannes was one of the most prolific and respected contributors to the LLVM compiler project, and his loss will be deeply felt.
5 min · 1,239 words
A Type Stronger than the Sum of its Components
Richard Schneeman walks through a Ruby type design that becomes more powerful than the sum of its parts—how carefully composed types can encode invariants that ad-hoc checks miss.
4 min · 946 words
Every package is already installed
Farid Zakaria introduces omnibin: a FUSE filesystem that puts every binary Nixpkgs ever shipped on your $PATH—nothing installed upfront, 0 bytes on disk until something is actually run.
4 min · 1,001 words
Notes on loading oliveoil22's Casio CZ-101 patch banks into the browser-based CZP-1 synthesizer, with downloadable JSON bank data and step-by-step library import instructions.
2 min · 363 words
Thomas Ptacek digs into VS Code's remote SSH agent flow—why LLM coding forks lean on it, how the protocol actually works, and what's bananas about the design.
3 min · 596 words
Packing Binary Is Fun, Actually
Pranav Desai’s hands-on tour of binary packing: why packing bits can be fun, the techniques that matter, and practical patterns for packing denser structures without losing your mind.
22 min · 5,056 words
Platform-independent SIMD in Go
Go 1.26 and 1.27 include experimental APIs for Single Instruction Multiple Data SIMD operations. SIMD is a native feature of many modern CPUs that allows software to perform uniform operations across vectors of data very quickly, such as adding 8 pairs of float64 values in a single instruction. It can significantly speed up many computationally-intensive tasks, ranging from cryptography to data processing to AI. In fact, Go’s Green Tea garbage collector/blog/greenteagc even makes use of SIMD to accelerate scanning memory for live objects.
15 min · 3,399 words
Ten years of tmux, and the 1,495 lines of zsh it cost me
Yogesh Lonkar measured a tmux status bar burning about 15% of a CPU core, then rewrote a decade of forking shell scripts into a leaner setup—and documents what 1,495 lines of zsh had been doing the whole time.
13 min · 2,974 words
Semantic memory or just Markdown?
Laravel Boost tried embeddings and semantic search for project rules, then deleted them: a generated Markdown index plus grep proved simpler and more reliable for teaching agents existing conventions.
7 min · 1,562 words