Using S3 as a Container Registry
For the last four months I’ve been developing a custom container image builder, collaborating with Outerbounds1. The technical details of the builder itself might be the topic of a future article, but there’s something surprising I wanted to share already: you can use S3 as a container registry! You heard it right…
I accidentally built a meme search engine
I built a magical meme search engine using siglip/CLIP and vector encoding images. It was a fun way to learn about this powerful technology. I'm sharing the …
A 100x speedup with unsafe Python
We're going to speed up some numpy code by 100x using "unsafe Python." Which is not quite the same as unsafe Rust, but it's a bit similar, and I'm not sure what else to call it... you'll see. It's not something you'd use in most Python code, but it's handy on occasion, and I think it shows "the nature of Python” from…
A Real Life Off-by-One Error
The Championnats d’Europe d’Escalade (climbing) in Villars-sur-Ollon has just finished. I couldn’t make it to all the events, but did see the finals of the “Speed” event. It’s a series of head-to-head elimination races up a 15m tall wall, resulting in an eventual victor after enough rounds.
How I Program in 2024
I talk a lot here about using computers freely , how to select programs to use, how to decide if a program is trustworthy infrastructure one can safely depend on in the long term. I also spend my time building such infrastructure, because there isn't a lot of it out there. As I do so, I'm always acutely aware that I'm…
Hyrum’s Law in Golang
Occurrence of Hyrum's law in Golang
Writing a TrueType font renderer
Text is the medium of digital interaction, and text rendering has an outsized impact on the overall fit and finish of any system. It therefore pains me that axle has for years relied on a low-resolution 8x8 bitmap font. Let’s fix it! Take a look at the characters composing this sentence. Note the curves, the negative…
scrapscript.py
Scrapscript is a small, pure, functional, content-addressable, network-first programming language. It’s designed to allow creating small, simply shareable programs. The language was created by Taylor Troesh and the main implementation was created by me and Chris.
Audio Decomposition – open-source seperation of music to constituent instruments
Matthew Bird Portfolio
Long Term Software Development
Recently the Dutch Electoral Board (where I am also a very part time advisor) invited me to do a talk reflecting on their open source Abacus vote tabulation software. Much software is now provided as a service, and is typically deployed continuously (CD, continuous deployment), surrounded by enough automated testing…
Upcoming Hardening in PHP
Personal blog of Julien (jvoisin) Voisin
C++ is an absolute blast
Where I try to explain why I feel like C\+\+ is so much fun, and to correct some misinformation.
TIL: Versions of UUID and when to use them
About a month ago [1] , I was onboarding a friend into one of my side project codebases and she asked me why I was using a particular type of UUID. I'd heard about this type while working on that project, and it's really neat. So instead of hogging that knowledge for just us, here it is: some good uses for different…
Detecting a PS2 Emulator: When 1*X does not equal X
Using an odd floating point error to detect emulators
SIMD-accelerated computer vision on a $2 microcontroller
An accelerated FAST feature detector for the ESP32-S3 leveraging 128-bit SIMD instructions, achieving ~2x the performance of the reference implementation.
Forging signed commits on GitHub
Creating fake signed commits
Coroutines in C (2000)
Structuring a large program is always a difficult job. One of the particular problems that often comes up is this: if you have a piece of code producing data, and another piece of code consuming it, which should be the caller and which should be the callee?
Building a USB SNES Controller
A few years ago on a trip to Tokyo, we took a day to explore Akihabara. We found a shop that was selling retro gaming stuff and when I saw an old SNES controller for sale I had to buy it.
The server chose violence
Hubris's oddest syscall
Understanding the BM25 full text search algorithm
BM25 is a widely used algorithm for full text search. I wanted to understand how it works, so here is my attempt at understanding by re-explaining.
C Macro Reflection in Zig
Zig’s reflection combined with Zig’s ability to import C header files means Zig can be used for C macro reflection.
BB(3, 4) > Ack(14)
Pavel has found a new 3-state 4-symbol Busy Beaver champion which can compute an “Ackermann-level” function and halts with exactly
Cognition: A new antisyntax language redefining metaprogramming
Other languages are inflexible and broken. Let's fix that.
Why isn't the <html> element 100% supported on caniuse.com?
I saw a Mastodon post that made me laugh this morning. It seemed sort of crazy that the html element wouldn’t have 100% support on CanIUse.com. Heck, I’ve been using it since 1994 and it worked just fine back then! This led me down a bit of a rabbit hole.
Ten years of improvements in PostgreSQL's optimizer
Ryan Marcus, assistant professor at the University of Pennsylvania. Using machine learning to build the next generation of data systems.
Seconds Since the Epoch
This is not at all news, but it comes up often enough that I think there should be a concise explanation of the problem. People, myself included, like to say that POSIX time, also known as Unix time, is the number of seconds since the Unix epoch , which was 1970-01-01 at 00:00:00.
My first game with Carimbo, my homemade engine
https://youtu.be/nVRzCstyspQ