Zig’s new plan for asynchronous programs

zig’s-new-plan-for-asynchronous-programs

The designers of the Zig programming language have been working to find a suitable design for asynchronous code for some time. Zig is a carefully minimalist language, and its initial design for asynchronous I/O did not fit well with its other features. Now, the project has announced (in a Zig SHOWTIME video) a new approach […]

A deep dive into QEMU: The Tiny Code Generator (TCG), part 1

This blog post details some internals of the QEMU TCG engine, the machinery responsible for executing target instructions on the host. You should have already read Execution loop and Breakpoints handling blog posts to have some pointers. Be kind rewind The vCPU thread executes instructions through tcg_cpu_exec which finds and/or generates translated blocks. As previously […]

The Absent Silence (2010)

the-absent-silence-(2010)

A year or two ago I was asked to review a novel by José Saramago, and in looking up facts about him on Google I found over and over the same quotation from him — God is the silence of the universe, and man is the cry that gives meaning to that silence. It’s from […]

Python Data Science Handbook

This website contains the full text of the Python Data Science Handbook by Jake VanderPlas; the content is available on GitHub in the form of Jupyter notebooks. The text is released under the CC-BY-NC-ND license, and code is released under the MIT license. If you find this content useful, please consider supporting the work by […]

A series of vignettes from my childhood and early career

A short set of anecdotes, apropos of nothing. When I was younger, I really liked programming! I loved the sense of accomplishment, I loved the problem solving, I loved sharing what I made with the people around me to both amuse and assist. One particularly wise adult (somewhere around 1996) took me aside and said, […]

Addressing the adding situation

addressing-the-adding-situation

Addressing the adding situation Written by me, proof-read by an LLM. Details at end. Yesterday we saw how compilers zero registers efficiently. Today let’s look at something a tiny bit less trivial (though not by much): adding two integers. What do you think a simple x86 function to add two ints would look like? An […]

Advent of Compiler Optimisations 2025

advent-of-compiler-optimisations-2025

Introducing the Advent of Compiler Optimisations 2025 Today I’m announcing a project that’s been in the making for around a year. As my time off draws to a close, I’ve been working on an “Advent of” type project, to be released one a day from the 1st of December until the 25th. This December will […]

Rootless Pings in Rust

Sending a ping by creating an ICMP socket normally requires root: you can’t create a raw socket to send ICMP packets without it. The ping command line tool works without root however, how is that possible? It turns out you can create a UDP socket with a protocol flag, which allows you to send the […]

Why Replicate is joining Cloudflare

why-replicate-is-joining-cloudflare

We’re happy to announce that as of today Replicate is officially part of Cloudflare. When we started Replicate in 2019, OpenAI had just open sourced GPT-2, and few people outside of the machine learning community paid much attention to AI. But for those of us in the field, it felt like something big was about […]