The Unix Way Episode 17. DTrace as the canonical answer to in-production tracing, designed at Sun by Bryan Cantrill, Mike Shapiro and Adam Leventhal in 2003, generally available in Solaris 10 from January 2005, ported to FreeBSD by John Birrell in 7.1-RELEASE on 6 January 2009. The principle: instrument any kernel or userland probe with zero overhead when disabled and minimal overhead when enabled, with a deliberately Turing-incomplete script language so the compiler can prove every probe terminates within bounded time and memory. The Linux licence wall: DTrace was released under the CDDL, a file-level weak copyleft that accepts coexistence with any other licence; the GPL is strong copyleft and demands that any combined work be relicensed to GPL. The asymmetry is structural; the block was in the GPL's design, not the CDDL's behaviour. The Linux rebuild: BPF was already there (McCanne and Jacobson, Berkeley, 1992); Alexei Starovoitov and Daniel Borkmann generalised it into eBPF, merged in Linux 3.18 on 7 December 2014; BCC by Brenden Blanco at IO Visor arrived in 2015; bpftrace by Alastair Robertson, announced by Brendan Gregg as 'DTrace 2.0 for Linux' in October 2018. The bridge figure is Brendan Gregg himself, co-author of the 2011 DTrace book with Jim Mauro at Sun/Joyent and of the 2019 BPF Performance Tools book at Netflix. The shape was always the same; the journey was a great deal longer.
How Cities: Skylines uses a stock-market analogy to drive almost everything in the game · jkm.dev
I wanted to find out how Cities: Skylines drives the constant motion you see in a growing city - residents looking for jobs, tourists visiting attractions, garbage trucks doing their rounds, even cims looking for love - and I couldn’t find much written up about it. So I decompiled the game and dug in. What I found is that almost every interaction in the game runs through a single, elegant system: a stock-market-style trading market.
Most programming tutorials start with syntax, but the real language starts with data layout, ownership, allocation, and what values actually look like in memory.
Shipping the Dodo Payments CLI: A Terminal-First Workflow for Payments | Dodo Payments
We rebuilt the Dodo Payments CLI from the ground up - an interactive TUI, a local AI assistant over MCP, encrypted credentials, and offline webhook testing. Here's why we built it, and how it works.
The origin story of git-native-issue: an issue tracker built entirely on git's object model. What happens when you take a substrate's primitives seriously and build directly on top of them.
Allowlisting Config Capabilities by Embedding Rye in Go
We will explore how to embed the Rye language into a Go application and why its capability-based model makes it uniquely suited for configuration, despite being a general-purpose language.
Tom likes making games. He has worked professionally as a game developer, but he also likes to make games in his free time, as a hobby. He makes these hobby games in a “from scratch” kind of way. This means that he just has a main procedure and imports some libraries and builds things as needed.
Recently, Tom has found out about a programming language called Odin. He found that it fixed many things he disliked about C++ and C.
man jenkins_hash (9): general kernel hashing functions
man jenkins_hash (9): The Fn hash32 functions are used to give a consistent and general interface to a decent hashing algorithm within the kernel. These functions can be used to hash ASCII NUL terminated strings, as well as blocks of memory. The Fn hash32_buf function is used
Why AI Coding Assistants Misunderstand Your Architecture
AI coding assistants misunderstand your architecture — not because they’re buggy, but because architectural intent was never visible in the code to begin with.In this video I read through and comment on Ian Bull’s article “Sinks, Not Pipes: Software Architecture in the Age of AI”, adding my own perspective from my work on usable software […]
Sinks, Not Pipes: Software Architecture in the Age of AI
Software architecture principles like low coupling, high cohesion, and minimal side effects matter more than ever when AI agents are the ones navigating your codebase.
Replacing a 3 GB SQLite database with a 10 MB FST (finite state transducer) binary
Note for
numberphiles:
all numbers have been rounded to their first significant
digit, because I’m a fan of Rob Eastaway’s
“zequals” method
of getting to the point when it comes to estimation. It’s much
more valuable to walk away with the heuristic “some dude got
a 300x memory reduction by swapping out a database he hacked
together for a tiny, static, specialized data structure that
does exactly what he needs it to and no more.”
Idempotency Is Easy Until the Second Request Is Different | Dochia CLI Blog
Idempotency is not just an HTTP header or a key lookup. This article covers the failure cases that bite real APIs: different requests with the same key, concurrent retries, partial success, downstream uncertainty, response replay, expiry, and duplicate message handling.
Tech under pressure: how betting apps handle real-time demand at scale - The Tech Block
Opening a contemporary app during a major final, you engage in a moment of controlled chaos, where thousands of bets flood the system every second. Therefore, what feels smooth to you is actually a high-speed balancing act. Traffic spikes rise sharply during key plays, so millions react at once as emotions drive rapid decisions, with