Without the futex, it's futile
Review: It's a history text, not a CS text
Beginner Guide to VPS Hetzner and Coolify
I set up my own VPS, documented every step, and ended up with a repeatable deployment pipeline. This is both a checklist for my future self and a guide for a...
Psychedelic Graphics 0: Introduction
Articles, projects, podcast by Ulysse Pence
Excitable cells
A demonstration of how reentry tachyarrhythmias can develop in a system of excitable cells.
A single line of code cost $8000
Due to a simple bug, Screen Studio app did generate over 2 petabytes of network traffic
The Steam Deck is software-freedom friendly
in an era where tech giants increasingly control our digital experiences, the Steam Deck stands as a beacon of user freedom
Phrase origin: Why do we "call" functions?
On StackExchange, someone asks why programmers talk about “calling” a function. Several possible allusions spring to mind: Calling a function is like calling on a friend — we go, we stay a while, we come back. Calling a function is like calling for a servant — a summoning to perform a task. Calling a function is like…
Feed the bots
A week ago , I set up a dynamically generated nonsense maze to catch LLM scrapers. Now, requests to it make up 99.9% of my server's traffic, but my total request volume did not increase. The bots didn't come to my site because of the trap.
FBI Agents Visit Anti-ICE Protester: "Your name was brought up."
“Your name was brought up.”
With AI you need to think bigger
I have noticed something in the past 12 months, something a little profound. I have noticed that I am no longer scared that a project will be too big or too complex for me, or that a project will use a technology or programming language I don’t know.
Improving performance of rav1d video decoder
*on macOS with an M3 chip *slightly more than 1%, on a specific benchmark, without any new unsafe code A while ago, memorysafety.org announced a contest for …
The Department of War just shot the accountants and opted for speed
Last week the Department of War finally killed the last vestiges of Robert McNamara’s 1962 Planning, Programming, and Budgeting System (PPBS). The DoW has pivoted from optimizing cost and performa…
GPT-5: Overdue, overhyped and underwhelming. And that's not the worst of it
A new release botched … and a breaking research new paper that spells trouble
URL-Driven State in HTMX
Build stateful HTMX applications using URL parameters as your state store, creating naturally bookmarkable and shareable interfaces
An invalid 68030 instruction accidentally allowed the Mac Classic II to boot
This is the story of how Apple made a mistake in the ROM of the Macintosh Classic II that probably should have prevented it from booting, but instead, miraculously, its Motorola MC68030 CPU accidentally prevented a crash and saved the day by executing an undefined instruction.
Why is the Rust compiler so slow?
I spent a month repeatedly building my website in Docker, and now have horrors to share.
Is an Intel N100 or N150 a better value than a Raspberry Pi?
tl;dr: it depends. About one year ago, I bought an Intel N100 mini PC (specifically the GMKtec N100 NucBox G3) and compared it to the Raspberry Pi 5 8GB. A year later, and we have a newer $159 16GB version of that mini PC with a slightly-faster Intel N150, and a new 16GB Raspberry Pi 5. I re-ran all my benchmarks, and…
The bitter lesson is coming for tokenization
Highlights the desire to replace tokenization with a general method that better leverages compute and data. We'll see tokenization's fragility and review the Byte Latent Transformer arch.
That Time I Recreated Photoshop in C++
As I’m getting older I look back on all the things I’ve done as a creative developer, and I see so many cool projects! But I never wrote down any development
Performance optimization is hard because it's fundamentally a brute-force task
I’m not talking about skill, knowledge, or convincing a world focused on radical acceleration that optimization is necessary. Performance optimization is hard because it’s fundamentally a brute-force task, and there’s nothing you can do about it. This post is a bit of a rant on my frustrations with code optimization…
I fed 24 years of my blog posts to a Markov model
Yesterday I shared a little program called Mark V. Shaney Junior at github.com/susam/mvs . It is a minimal implementation of a Markov text generator inspired by the legendary Mark V. Shaney program from the 1980s. Mark V. Shaney was a synthetic Usenet user that posted messages to various newsgroups using text…
CSRF protection without tokens or hidden form fields
A couple of months ago, I received a request from a random Internet user to add CSRF protection to my little web framework Microdot, and I thought it was a fantastic idea.When I set off to do this…
When the Dotcom Bubble Burst
The hunt for the next Microsoft created an era of excess that wasn't sustainable
.localhost Domains
I’ve found a way to configure private, custom domains for web-apps I have running on my computer. So instead of having to remember and type “localhost:4333”, I can simply navigate to “appname.localhost”. I love it!
NVIDIA frenemy relation with OpenAI and Oracle
I’ve spent the last 48 hours completely falling down the rabbit hole of NVIDIA’s Q3 Fiscal 2026 earnings report . If you just skim the headlines, everything looks perfect: Revenue is up 62% to $57 billion, and Jensen Huang is talking about a "virtuous cycle of AI."
Working on complex systems: What I learned working at Google
This is why recognizing whether a system is complicated or complex is so important: it shapes how we should approach problem-solving.
The Deep Research problem
OpenAI’s Deep Research is built for me, and I can’t use it. It’s another amazing demo, until it breaks. But it breaks in really interesting ways.