Python numbers every programmer should know
A cheat sheet of real-world timing and memory numbers to guide performance-sensitive decisions.
The latest blog posts to take off on Hacker News. 21,817 posts.
A cheat sheet of real-world timing and memory numbers to guide performance-sensitive decisions.
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 a powerful tool, yet many developers have a painful relationship with it. Can we do better?
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.
> _**Industrial**_ > > _adj. (sense 3a)_ > > Of or relating to productive work, trade, or manufacture, esp.
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.
Libsodium is now 13 years old!
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 ……
A blog post written by Lorentz Kinde. It's probably about something technical.
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.
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&…
When Best Practices Are Best
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.
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.
Introducing kv, a statically allocated key/value server.
Asking Gemini 3 to generate Brainf*ck code results in an infinite loop, akin amost to a DDoS attack:
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…
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…
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…
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…
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…
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.
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…
The destructor serves as the "finally".
A collection of bad practices in HTML, copied from real websites.
> 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...
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 …
use pre-push hooks instead