New
The latest blog posts to take off on Hacker News. 1,260 posts.
Scaffolding to Superhuman: How Curriculum Learning Solved 2048 and Tetris
Training gaming agents is an addictive game. A game of sleepless nights, grinds, explorations, sweeps, and prayers. PufferLib allows anyone with a gaming computer to play the RL game, but getting from “pretty good” to “superhuman” requires tweaking every lever, repeatedly.
The compiler is your best friend
The compiler is a powerful tool, yet many developers have a painful relationship with it. Can we do better?
When square pixels aren't square
When you want to get the dimensions of a video file, you probably want the display aspect ratio. Using the dimensions of a stored frame may result in a stretched or squashed video.
The rise of industrial software
> _**Industrial**_ > > _adj. (sense 3a)_ > > Of or relating to productive work, trade, or manufacture, esp.
A Vulnerability in Libsodium
Libsodium is now 13 years old!
No strcpy either
Some time ago I mentioned that we went through the curl source code and eventually got rid of all strncpy() calls. strncpy() is a weird function with a crappy API. It might not null terminate the destination and it pads the target buffer with zeroes. Quite frankly, most code bases are probably better off completely ……
Go away Python
A blog post written by Lorentz Kinde. It's probably about something technical.
Parsing Advances
I find myself writing yet another toy parser, as one does during a Christmas break. It roughly follows Resilient LL Parsing Tutorial. Not because I need resilience, but mostly because I find producing a syntax tree and a collection of diagnostics a more natural fit for the problem than bailing out on the first error.
The future of software development is software developers
Psst. If your boss won’t invest in training you in Specification By Example (BDD, ATDD), I’m running out-of-hours workshops on May 12 and 16 specifically for self-funding learners. £99 + UK VAT. I&…
A production bug that made me care about undefined behavior
Years ago, I maintained a big C++ codebase at my day job. This product was the bread winner for the company and offered a public HTTP API for online payments. We are talking billions of euros of processed payments a year.
Five Years of Tinygrad
The first commit to tinygrad was October 17, 2020. It’s been almost three years since we raised money. The company is 6 people now. The codebase is 18,935 lines not including tests.
Static Allocation with Zig
Introducing kv, a statically allocated key/value server.
Asking Gemini 3 to generate Brainfuck code results in an infinite loop
Asking Gemini 3 to generate Brainf*ck code results in an infinite loop, akin amost to a DDoS attack:
You can't design software you don't work on
Only the engineers who work on a large software system can meaningfully participate in the design process. That’s because you cannot do good software design…
Huge Binaries
A problem I experienced when pursuing my PhD and submitting academic articles was that I had built solutions to problems that required dramatic scale to be effective and worthwhile. Responses to my publication submissions often claimed such problems did not exist; however, I had observed them during my time within…
Unity's Mono problem: C# code runs slower than it should
Execution of C# code in Unity's Mono runtime is slow by today's standards, much slower than you might expect! Our game runs 2-3x faster on modern .NET compared to Unity's Mono, and in a few small benchmarks I measured speedups of up to 15x. I've spent some time investigating what's going on and in this article I will…
Software engineers should be a little bit cynical
A lot of my readers call me a cynic when I say things like “you should do things that make your manager happy” or “big tech companies get to decide what…
Building a macOS app to know when my Mac is thermal throttling
How I built MacThrottle, a menu bar app that tells me when my Mac is thermal throttling, and the journey to find the right macOS APIs.
Doom in Django: testing the limits of LiveView at 600.000 divs/segundo
Based on the latest tests I've published, Django LiveView appears to be the fastest dynamic frontend (I'm sure more variables can be measured). OK…
Functional programming and reliability: ADTs, safety, critical infrastructure
> In banking, telecom, and payments, reliability is not a nice to have. It is table stakes. The most reliable systems I have worked on reduce entire classes of bugs before the code even runs. Function...
Why is calling my asm function from Rust slower than calling it from C?
This is a follow-up to making the rav1d video decoder 1% faster, where we compared profiler snapshots of rav1d (the Rust implementation) and dav1d (the C …
Pre-commit hooks are broken
use pre-push hooks instead
Developing a Beautiful and Performant Block Editor in Qt C++ and QML
How I developed Daino Notes block editor from scratch.
How uv got so fast
uv’s speed comes from engineering decisions, not just Rust. Static metadata, dropping legacy formats, and standards that didn’t exist five years ago.
Package managers keep using Git as a database, it never works out
Git repositories seem like an elegant solution for package registry data. Pull requests for governance, version history for free, distributed by design. But as registries grow, the cracks appear.
Unix "find" expressions compiled to bytecode
In preparation for a future project, I was thinking about at the unix find utility . It operates a file system hierarchies, with basic operations selected and filtered using a specialized expression language. Users compose operations using unary and binary operators, grouping with parentheses for precedence. find may…
Codex vs. Claude Code (today)
Every AI tool has its strengths and weaknesses, and the only way to discover what they are is by using them.
Building an AI agent inside a 7-year-old Rails monolith
We run a multi-tenant Rails application with sensitive data and layered authorization. In this post, I walk through how I added the first AI agent tool using RubyLLM, Pundit policies, and our existing Algolia search, without introducing a parallel system or loosening constraints.