Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
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
Go concurrency distilled This mini book provides a brief overview of many concurrency topics in Go. Each topic comes with interactive examples — feel free to experiment with them by changing the code and clicking Run . There's also a [PDF version](https://github.com/nalgeon/go conc distilled) with static examples. This is a quick refresher on Go concurrency, not a beginner's guide.
28 min · 6,445 words
C's Flexible Integer Sizes Were Not a Design Mistake
Gustavo Pezzi defends C’s platform-sized integers: how 12–60-bit machines shaped int, why minimum ranges beat fixed widths, and what Lua’s portable C still teaches.
2 min · 486 words
NetBSD: Playing with disklabels
A hands-on walkthrough of NetBSD disklabels for someone coming from Linux/DOS: how labels are structured, how to inspect and edit them safely, and the gotchas when partitioning disks the BSD way.
7 min · 1,633 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
Crazy as it sounds to say this, since it’s all anybody’s been able to talk about for over a year, but the impact of AI on computing hasn’t yet sunk in.
6 min · 1,349 words
CVE-2025-13032: Entering and Breaking the Avast Antivirus Sandbox Part 2
SAFA’s second part turns Avast’s CVE-2025-13032 double-fetch into a local privilege escalation to SYSTEM on Windows 11 via paged pool overflow and RegBuffers corruption for arbitrary kernel R/W.
13 min · 3,096 words
One CPU Atomic Instruction, One Packaging Infinite Loop: The Story of the Lost Update on LA664
Jie Ge documents a Loongson LA664 erratum where an atomic instruction can lose updates, how it surfaced as an infinite packaging loop, the root cause analysis, and what it means for correctness on that CPU.
14 min · 3,163 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
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard)
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard) Interrupts Interrupts are easily one of my favorite topics.
11 min · 2,612 words
Blinking a Blue Pill LED with Rust, from scratch
A from-scratch Blue Pill walkthrough in Rust without a HAL: wiring and flashing, the reset vector, volatile GPIO writes, delay loops, and the assumptions a working blink can hide.
22 min · 5,155 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
Why Buran Had Four Computers, Not Three — and What a Lean Proof Adds
**Date:** September 24, 2026 · **Author:** Dmitrii Zatona - Buran’s flight computer was four identical Biser-4 machines running the same programs synchronously. A comparison scheme blocked a failed one, and the design had to survive any two failures (Section 1). - Four is what two failures cost if a failed channel is found by comparing outputs alone. It is not the 3f + 1 of Byzantine agreement, which is a different problem (Sections 2 and 3).
33 min · 7,503 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
Topcoat is pushing the boundary of server applications with Rust
Two monthshttps://tokio.rs/blog/2026-07-22-announcing-topcoat ago, we Julienhttps://github.com/pikaju and Ihttps://github.com/carllerche announced Topcoathttps://github.com/tokio-rs/topcoat, a batteries-included full-stack Rust framework. It includes views, components, mailers, an ORM Toastyhttps://github.com/tokio-rs/toasty, and more. Topcoat aims to make building web apps with Rust as productive as any other language. We have been hard at work shipping features, so it is a good time to talk about what is new.
9 min · 1,958 words
Bugpocalypse, or reporting bugs in an AI age
QEMU maintainers on bug reporting in the AI age: flood of AI-generated reports, what still helps triage, and how to file bugs that maintainers can actually use.
6 min · 1,492 words
Syncing Rust GCC backend or how to test Murphy's law
Thanks! This blog post is about the Rust GCC backend (not to be confused with gccrs which is a Rust front-end for the GCC compiler), how we synchronize its repository with Rust's and how everything went so wrong that it took us 2 months to be able to finally make it.
7 min · 1,507 words
Understanding NvPCRs in systemd v262
systemd answers TPM PCR scarcity with additional PCR-like registers allocated in the TPM’s NV memory, with an anchoring design that was reworked in v262.
29 min · 6,748 words
Microsoft killed FoxPro in 2007. Anyway, here's FoxPro revived
FoxDev Studio rebuilds Visual FoxPro as a modern 64-bit runtime and IDE in Rust/WebAssembly: open old projects in place, keep .dbf data, bridge 32-bit libraries, and add FoxScript lambdas and HTTP routes.
3 min · 645 words
Textbook review: Is Parallel Programming Hard, And, If So, What Can You Do About It?
Andrew Helwer reviews McKenney’s parallel programming textbook: what it covers well, where it frustrates, and who should actually read it.
7 min · 1,715 words