Curated river of news
Reader
Latest posts from blogs I follow
Crimson Desert might be an open world jumble of loose ends, but I can't resist its sexy towers and ghost trains(opens in new tab)
Phwoar, look at that striking steeple on the horizon, I thought after arriving in Crimson Desert’s first town. I was playing a man I was fairly sure I couldn’t give a toss about, embroiled in a conflict I also couldn’t ...
One hundred weirdo emails(opens in new tab)
I hope I don’t have to spell it out but I will do it anyway: in these cases I don’t know anything about their products and I cannot help them. Quite often I first need to search around only to ...
Building pentest devices with Rust and ESP32-C6 microcontrollers(opens in new tab)
Growing up with James Bond, Alex Rider and Inspector gadget, I've naturally always been fascinated by gadgets that enable the hero to spy and fight the badies. Fast forward a
A history of styling choices leading to native CSS(opens in new tab)
How I switched from Less to Sass to CSS Modules to PostCSS nested and nesting to finally, at last, using pure CSS.
Build a Single-File Rust Web API with SQLite(opens in new tab)
In this post we'll continue our series of building web APIs with Rust. In the last post we built a single-file web API with Rust and Axum using in-memory storage. Now we're going to add a database as ...
cliamp(opens in new tab)
A terminal music player inspired by winamp.
Coding on Vacation(opens in new tab)
The question I asked myself (and the private Slack channel): is ensuring that I have a phone based approach to agentic coding while I’m on vacation healthy because I’m ensuring that I’m not on the computer, a phone is less ...
Ask the LLM to write code for it(opens in new tab)
This article covers a useful LLM pattern where you ask the LLM to write code to solve a problem instead of asking it to solve the problem directly. The problem of merging two transcripts I had two files that contained ...
When (not) to break rules(opens in new tab)
“You’ve got to think about big things while you’re doing small things, so that all the small things go in the right direction. — Alvin Toffler” A rule (or boundary)...
The End(opens in new tab)
“In my experience, React (et al) is almost always the wrong solution. React has its place, I’m sure, but it has turned into the proverbial hammer that makes everything look like a nail. I also know that React can be ...
Denmark desperately needs more inequality(opens in new tab)
Top ten Figma betrayals(opens in new tab)
Figma is the industry standard for painting pretty pictures of websites. It’s where designers spend my designated dev time pushing pixels around one too many artboards. Figma promises to remove the proverbial fence between design and development. […]
#474: Astral to join OpenAI(opens in new tab)
Topics covered in this episode: Starlette 1.0.0 Astral to join OpenAI uv audit Fire and forget (or never) with Python’s asyncio Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk ...
Announcing DuckDB 1.5.1(opens in new tab)
We are releasing DuckDB version 1.5.1, a patch release with bugfixes, performance improvements and support for the Lance lakehouse format.
I should build a game(opens in new tab)
I should build a game! I feel like that’s a common dream, right? Game development is what got me interested in design and programming to begin with. I learnt ECMAScript via Flash ActionScript many moons ago. Some time later “Thoughts ...
NTLM and SMB go opt-in(opens in new tab)
The NTLM authentication method was always a beast. It is a proprietary protocol designed by Microsoft which was reverse engineered a long time ago. That effort resulted in the online documentation that I based the curl implementation on back in ...
RPS Verdict: Anime racer Screamer slides sideways into success with its colourful, characterful driving(opens in new tab)
Ed (RPS in peace) has, finally, posthumously, got his wish: another Screamer. This one’s gone all cyberpunk and/or anime-styled, with a heavy focus on story – it follows multiple, multinational merc-drivers entering a lightly murderous racing tournament – but can ...
The Sunday Papers(opens in new tab)
Sundays are for waking up in a Holiday Inn and finding that the breakfast buffet hash browns are glued to the bottom of the serving pan. Tarnation! I bellow like an enraged thunder god, like Vesuvius at full bloom, and ...
The absolute beginners guide to databasemaxxing(opens in new tab)
So, you are interested in getting started learning databases? I get a lot of emails from people asking me how they can begin to learn the vast world of databases, and whether they are far enough along on their programming ...
bye bye RTMP(opens in new tab)
In May 2010 we merged support for the RTMP protocol suite into curl, in our desire to support the world’s internet transfer protocols. RTMP The protocol is an example of the spirit of an earlier web: back when we still ...
The Shape of Friction(opens in new tab)
Dave Rupert just wrote a piece called People are not friction and I just had to write a short reaction blog post, because Dave names something I’ve been thinking about for a while now. His main argument: the AI marketing ...
What are we all playing this weekend?(opens in new tab)
I truly hope the sun has got his hat on this weekend as I'm cycling out to family in the countryside and I'd rather not arrive soaked through by rain. Granted, I will be arriving soaked through with sweat, but ...
Announcing Ingress2Gateway 1.0: Your Path to Gateway API(opens in new tab)
With the Ingress-NGINX retirement scheduled for March 2026, the Kubernetes networking landscape is at a turning point. For most organizations, the question isn't whether to migrate to Gateway API, but how to do so safely. Migrating from Ingress to Gateway ...
🎙️ Breaking Change podcast v53 - Pod Freeze(opens in new tab)
The promise of Breaking Change is that with every major version (this being the 60th episode of the program, but only the 53rd such release), I will break something. Well, I finally did it. I think I broke the show. ...
Running Agents on Kubernetes with Agent Sandbox(opens in new tab)
The landscape of artificial intelligence is undergoing a massive architectural shift. In the early days of generative AI, interacting with a model was often treated as a transient, stateless function call: a request that spun up, executed for perhaps 50 ...
People are not friction(opens in new tab)
The Gell-Mann Amnesia Effect of AI is a pretty well documented phenomenon: The Gell-Mann amnesia effect is a cognitive bias describing the tendency of individuals to critically assess media reports in a domain they are knowledgeable about, yet continue to ...
Self-Host Weekly (20 March 2026) (opens in new tab)
These are not the pull requests you're looking for...
Hack: claude -p(opens in new tab)
claude -p is a quick hack that I find myself using more.
Training The Future with Mark Russinovich(opens in new tab)
Sponsor FAFOFMDon't FAFO with cloud disaster recovery. Do it right with Arpio.Have a podcast you need help with? Reach out to HumblePod.Mark is the CTO of Azure and has decades of experience exploring the internals of systems. As a developer ...
DuckDB.ExtensionKit: Building DuckDB Extensions in C#(opens in new tab)
DuckDB.ExtensionKit brings DuckDB extension development to the .NET ecosystem. By building on DuckDB's stable C Extension API and leveraging .NET Native AOT compilation, it lets C# developers define scalar and table functions, which can be shipped as native DuckDB extensions.
Claude Code Hacking Skills Video(opens in new tab)
Hey y’all,
The State of Immutable Linux(opens in new tab)
Lies, damn lies, and read only filesystems
Some Things Just Take Time(opens in new tab)
Trees take quite a while to grow. If someone 50 years ago planted a row of oaks or a chestnut tree on your plot of land, you have something that no amount of money or effort can replicate. The only ...
DjangoCon US Talks I'd Like to See 2026 Edition(opens in new tab)
This is my annual list of DjangoCon US talks I’d like to see. I have been doing this since 2015, and it’s one of my favorite traditions. DjangoCon US 2026 is in Chicago this year, August 24-28. The CFP is ...
Monty - Python in Rust for AI(opens in new tab)
When LLMs write code to accomplish a task, that code has to actually run somewhere. And right now, the options aren't great. Spin up a sandboxed container and you're paying a full second of cold start overhead plus the complexity ...
🔥 Update on using MacBook Neo for dev tasks: this…(opens in new tab)
Update on using MacBook Neo for dev tasks: this is definitely a device you should to reboot daily, even without Chrome or any Electron apps. This morning, Zed (a native Rust app) was 500% CPU without a single window open, ...
Notes for my future self on how to set up a camera for streaming(opens in new tab)
I had to set up my Sony a6400 fresh, and here's all the settings I used!
Case Statement: Building a Harness(opens in new tab)
I codified my job as a DX engineer into a system that dispatches agents, enforces conventions mechanically, and learns from its own failures. Here's how case works and why I think every developer should build something like it.
The associations people make(opens in new tab)
A silly story is easier to remember .octo-canvas-wrap { width: 100%; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; margin: 2rem 0; } .octopus-graph { width: 600px; height: 460px; position: relative; margin: 0 auto; border: 2px solid #000; background: #fff; overflow: hidden; ...
Concussion Symptoms Update (March)(opens in new tab)
Documenting how the head injury incurred on January 16, 2026 continues to affect me two months later.
Exactly Why and How AI Will Replace Knowledge Work(opens in new tab)
https://youtu.be/g3SrYIUv-OE There's a common narrative right now that you don't need to worry about AI if you're a knowledge worker. Humans are special. Humans are unique in the way they approach work. AI is just a text generator—just an LLM ...
Securing Production Debugging in Kubernetes(opens in new tab)
During production debugging, the fastest route is often broad access such as cluster-admin (a ClusterRole that grants administrator-level access), shared bastions/jump boxes, or long-lived SSH keys. It works in the moment, but it comes with two common problems: auditing becomes ...
Meets Style Sheets(opens in new tab)
I’ve accepted an invitation to speak at Smashing’s (Online) Conference Meets Style Sheets. It’s free on Wednesday, May 6th. I named my talk In-N-Out Styling. Long time CSS evangelist Chris Coyier will talk about how you can style things on ...
🔥 Using MacBook Neo for "real" development work…(opens in new tab)
Using MacBook Neo for "real" development work and it's simultaneously juggling: • Running Claude Code in three tabs at once • Compiling multi-package Xcode builds • Automating two iOS Simulators and a Mac build of my app Hasn't missed a ...
2 Ways to Correct the Financial Times at AWS (So Far)(opens in new tab)
2 Ways to Correct the Financial Times at AWS (So Far) Amazon's Fastest-Shipping Product Is Now Blog Posts Correcting the Financial Times I've been watching AWS long enough to develop a feel for when a company's communications shift from "informing" ...
Building small and secure Docker images for Rust: scratch vs alpine vs debian(opens in new tab)
While Docker is now the main way to distribute backend software and CLI tools, you may be wondering how to build minimal and secure Docker images for your Rust projects.
Build a Simple Single-File Rust Web API(opens in new tab)
I've spent the last few months learning Rust as part of my 12 week programming retreat at Recurse Center. I came to Rust because it scored well in my missing programming language analysis and I heard ...
gittop(opens in new tab)
A TUI for visualizing Git repository statistics.
🔥 Claude sure goes down a lot for being a product…(opens in new tab)
Claude sure goes down a lot for being a product targeting businesses. Maybe Anthropic is just doing humanity a solid by helping us understand how much it will suck when the era of subsidized pricing for LLM-based products ends.