New
The latest blog posts to take off on Hacker News. 1,747 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.
Project ideas to appreciate the art of programming
Curated list of project ideas for programmers who aren't sure what to build. We chose 73 projects that teach a lot and are fun to build.
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&…
AI is forcing us to write good code
When Best Practices Are Best
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…
Dolphin Progress Report: Release 2512
With the holiday season reaching its apex, we have a few surprises for those of you that have been patiently waiting. The latest release of Dolphin is stuffed with treats. Our first present is presentation - frame presentation, that is. Two new options have arrived and will help users both…
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…
C++ says “We have try... finally at home”
The destructor serves as the "finally".
Replacing JavaScript with Just HTML
A collection of bad practices in HTML, copied from real websites.
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.