New
The latest blog posts to take off on Hacker News. 1,748 posts.
Don't guess my language
If you’re still using IP geolocation to decide what language to show, stop screwing around. It’s a broken assumption dressed up as a feature.
Side projects I've built since 2009
Side projects I have shipped, sold, or shut down, from modern.css to older WordPress experiments.
The principles of database design, or, the Truth is out there
Every software project needs to represent the reality of the business he is embedded in. The way we can represent reality as limited rational beings is through propositions, i.e, declarative statements that affirm or deny something about reality. When a collection of such propositions is stored in a computer system…
Understanding the Go Scheduler
Go Scheduler
Google Logo Ligature Bug
Jeffrey Yasskin recently pointed out an interesting security bug: The idea is, if you had registered googlelogoligature.net then Chrome on Android (and possibly other Google products) would have displayed it as Google.net, potentially tricking users into thinking they were really interacting with Google. To see how…
Compiling OCaml to the TI-84 CE Calculator
In this post, I’ll explain how I compiled an OCaml program to run on a TI-84+ CE calculator. 🐪
Palette lighting tricks on the Nintendo 64
It has baked lighting with normal mapping and real-time specular shading, ahem, well sort of. More on that later. The beautiful song was made by noby with guitar performed by Moloko ( https://soundcloud.com/sou_andrade ).
JavaScript's New Superpower: Explicit Resource Management
The Explicit Resource Management proposal empowers developers to explicitly manage the lifecycle of resources.
ClojureScript 1.12.42
We’re happy to announce a new release of ClojureScript. If you’re an existing user of ClojureScript please read over the following release notes carefully.
Evolution of Rust Compiler Errors
Blog about programming stuff.
Leeks and Leaks
On the completely impossible situation of blocking the Tor .onion TLD to avoid leaks, but at the same time not block it to make users able to do what they want. dot-onion leaks The onion TLD is a Tor specific domain that does not mean much to the world outside of Tor. If you try … Continue reading Leeks and leaks →
The first year of free-threaded Python
A recap of the first year of work on enabling support for the free-threaded build of CPython in community packages.
A leap year check in three instructions
How to test for leap years (until year 102499) in the proleptic Gregorian calendar with just three 32-bit instructions, with detailed explanation of the bit-level tricks.
The unreasonable effectiveness of an LLM agent loop with tool use
How a simple loop enables powerful AI assistants
The current state of TLA⁺ development
The 2025 TLA⁺ Community Event was held last week on May 4th at McMaster University in Hamilton, Ontario, Canada. It was a satellite event to ETAPS 2025, which I also attended, and plan to write about in the near future. I gave a talk somewhat-hucksterishly titled It’s never been easier to write TLA⁺ tooling! which I…
Windsurf SWE-1: Our First Frontier Models
Introducing our first Frontier Models!
I don't like NumPy
it’s too hard
Pathfinding
Hello! I've recently been working on the pathfinding for NPCs in my game, which is something I've been looking forward to for a while now since it's a nice chunky problem to solve. I thought I'd write...
Project Verona: Fearless Concurrency for Python
Research programming language for concurrent ownership
Lessons from Mixing Rust and Java: Fast, Safe, and Practical
This article provides a hands-on guide to integrating Rust and Java through the Java Native Interface (JNI).
Migrating to Postgres
Since early 2022, Motion was on CockroachDB. Cockroach has many qualities going for it: effortless horizontal scaling, especially when…
AlphaEvolve: A Gemini-powered coding agent for designing advanced algorithms
New AI agent evolves algorithms for math and practical applications in computing by combining the creativity of large language models with automated evaluators
Coding agent in 94 lines of Ruby
“It’s not that hard to build a fully functioning, code-editing agent.” Thorsten Ball
$20K Bounty Offered for Optimizing Rust Code in Rav1d AV1 Decoder
In March of 2023 we announced that we were starting work on a safer high performance AV1 decoder called rav1d, written in Rust. We partnered with Immunant to do the engineering work. By September of 2024 rav1d was basically complete and we learned a lot during the process. Today rav1d works well—it passes all the same…