The PhD Metagame: Don't try to reform science – not yet
Don't try to reform science. Not yet. Not in your PhD. In grad school, you'll start complaining about the publishing...
SQL needed structure
The data on the page is presented in a hierarchichal structure. The movie page contains a director, a list of genres, a list of actors, and each actor in the list contains a list of characters they played in the movie. You can't sensibly fit all of this into a single flat structure like a relation.
Modular monolith and microservices: Modularity is what matters
Modularity is a crucial concept when designing and creating software. Independent of whether our chosen architecture style is to have a single unit of deployment - Monolith or multiple units of deployment - Microservices/Services. It is a quality that should be treated completely independent of how many deployable…
Ancient law requires a bale of straw to hang from Charing Cross rail bridge
The scaffolding surrounding the Charing Cross railway bridge has received an addition – two bales of hay/straw – because an ancient law requires it.
Online sports betting: As you do well, they cut you off
A few decades back my teenage son and I approached Las Vegas at night while traveling south on Interstate 15. When the skyline of the city began sparkling into view, the kid said, “Wow. Think…
What Does a Database for SSDs Look Like?
What does a relational database designed specifically for local SSDs look like? Postgres, MySQL, SQLite and many others were invented in the 90s and 00s, the era of spinning disks. A local NVMe SSD has ~1000x improvement in both throughput and latency. Design decisions like write-ahead logs, large page sizes, and…
My Ideal Array Language
The fundamental units of computation available to users today are not the same as they were 20 years ago. When users had at most a few cores on a single CPU, it made complete sense that every program was written with the assumption that it would only run on a single core.
A surprising enum size optimization in the Rust compiler
Enums are one of the most popular features in Rust. An enum is a type whose value is one of a specified set of variants.
The World's 2.75B Buildings
Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...
AI must RTFM: Why tech writers are becoming context curators
I’ve been noticing a trend among developers that use AI: they are increasingly writing and structuring docs in context …
WireGuard topologies for self-hosting at home
I recently migrated my self-hosted services from a VPS (virtual private server) at a remote data center to a physical server at home. This change was motivated by wanting to be in control of the hardware and network where said services run, while trying to keep things as simple as possible. What follows is a…
Rust on the RP2350 (2024)
Today sees the announcement of the latest additions to Raspberry Pi's microcontroller line-up - the RP2350 family. I've had prototype units for a while, and you can run Rust code on it today. To my knowledge this is the first ever microcontroller launch with Rust support out-of-the-box.
A Beginner's Two-Component Crystal-Style Wi-Fi Detector
Crystal radios are famous for doing something almost magical: picking up broadcast signals with nothing more than a diode, an antenna, and a pair of headphones. They’re the simplest RF receivers yo…
Susctl CVE-2024-54507: A particularly 'sus' sysctl in the XNU kernel
A very sus sysctl in the XNU kernel.
Find Your 2%Ers (2023)
then do life with them.
A story about restoring and upgrading a Commodore Amiga 1000
This is a story about restoring and upgrading a Commodore Amiga 1000, the first model of the Amiga series. Many of you might be familiar with the popular Amiga 500 or later models, but the Commodore Amiga 1000 was actually the first model of the Amiga series produced. I consider the A1000 a significant piece of home…
Street address errors in Google Maps
(or actually they do, but they don’t use this knowledge effectively)Update, April 26, 2025: the address fix for W 6th Ave is live, mostly. Going forward I wish that Google Maps would make it harder…
You Are in a Box
your data is trapped inside the box that is your program. you can only see what the program author exposes.
Persistent packages on Steam Deck using Nix
The Steam Deck (and SteamOS) delivers a fantastic console-like experience on a Linux system. However, its immutable filesystem means that installing packages that persist across system upgrades isn’t straightforward. Fortunately, with a little Nix magic, you can work around that limitation.
Understanding Memory Management, Part 5: Fighting with Rust
This is the fifth post in my planned multipart series on memory management. You will probably want to go back and read Part I , which covers C, parts II and III , which cover C++, and part IV , which introduces Rust memory management. In part IV, we got through the basics of Rust memory management up through smart…
The Missing Protocol: Let Me Know
I want a new protocol, tentatively called “Let Me Know” (LMK). The purpose is to provide someone an anonymous way to get notified when a singular, specific event occurs. Here’s a basic use case: Some random blog author has published Parts 1 and 2 of a series. You enjoyed it, and you want to know…
How to draw construction equipment for kids
What makes "Road Builders," written by B.G. Hennessy and illustrated by Simms Taback, so charming
Bricklink suspends Marketplace operations in 35 countries
Bricklink, LEGO’s biggest online marketplace and lifeblood of the LEGO community has made quite an alarming announcement. From 12 December 2025, BrickLink Marketplace will not be available for members in 35 countries around the world, which means that LEGO and Bricklink members will no longer be able to buy or sell on…
Gradients Are the New Intervals
At the New England Symposium on Graphics , James Tompkin compared graphics researchers to magpies: they're easily distracted by shiny objects and pretty renderings.
Recto – A Truly 2D Language
Recto is a 2D programming language that uses nested rectangles as its core syntax, encoding structure and recursion directly in space instead of a linear stream of text. Recto explores new ways to write, parse, and reason about code—and even natural language—spatially.