Summary of reading: July - September 2026
"Wuthering Heights" by Emily Brontë - good writing, but the protagonists are quite something. There's barely a likable character in the whole story - they are all either crazy, evil, stupid or a...
View ArticleRusty thoughts on "Parse, don't validate"
Like many programmers, I find Alexis King's Parse, don't validate article fascinating, because it gives a name to an idiom that seems familiar and important - one I've observed and used in the past...
View ArticleNotes on discrete-time Fourier series and transform
The following are my notes on discrete-time Fourier series (DTFS), as well as the discrete-time Fourier transform (DTFT). These topics serve as an important theoretical underpinning to the digital...
View ArticleHow big are factorials?
The other day, I found myself wondering how big 52! (52 factorial) is, and that led me to ponder how these could be estimated without a calculator or a computer.It turns out there’s some fairly...
View ArticleConcurrent Servers: Part 8 - Go
This is part 8 in a series of posts on writing concurrent network servers. In this part, we'll switch to Go and see how it tackles the challenges described earlier in the series.All posts in the...
View ArticleConcurrent Servers: Part 7 - Rust
This is part 7 in a series of posts on writing concurrent network servers. In this part, we discuss how the challenges described in earlier parts are tackled in the Rust programming language.All posts...
View ArticleRelative velocity and closing speed
In Physics simulations or game engines it’s sometimes useful to determine the speed with which two objects are approaching each other. This post will discuss the concept of closing speed, which is the...
View ArticleNotes on the Fourier Transform
The Fourier series is a great tool for analyzing periodic functions. But what about functions that don’t repeat? We’ve seen that we can compute Fourier series for a non-periodic function defined on a...
View ArticleDot product: Component vs. Geometric definition
The goal of this post is to answer a simple question: why are the following two definitions of the vector dot product in Euclidean space [1] equivalent for vectors \vec{a} and \vec{b}:Component...
View ArticleSummary of reading: April - June 2026
"The Nuremberg Trial" by John Tusa and Ann Tusa - a detailed, meticulously researched account of the Nuremberg Trials. There's not a whole lot of side questing in this book - it's all focused on the...
View ArticlePlugins case study: Pluggy
Recently I came upon Pluggy, a Python library for developing plugin systems. It was originally developed as part of the pytest project - known for its rich plugin ecosystem - and later extracted into a...
View ArticleThoughts on starting new projects with LLM agents
A few months ago I wrote about using LLM agents to help restructuring one of my Python projects. It's worth beginning by saying that the rewrite has been successful by all reasonable measures; I've...
View ArticleNotes on Fourier series
The trigonometric Fourier series is a beautiful mathematical theory that shows how to decompose a periodic function into an infinite sum of sinusoids. These are my notes on the subject, with some...
View ArticleScaling, stretching and shifting sinusoids
This is a brief and simple [1] explanation of how to adjust the standard sinusoid sin(x) to change its amplitude, frequency and phase shift. More precisely, given the general function:\[s(x)=A\cdot...
View ArticleThoughts on WebAssembly as a stack machine
This week the article Wasm is not quite a stack machine has been making the rounds and has caught my eye. The post claims that WASM is not a pure stack machine because it has locals and is missing some...
View ArticleDebugging WASM in Chrome DevTools
When I was working on the WASM backend for my Scheme compiler, I ran into several tricky situations with debugging generated WASM code. It turned out that Chrome has a very capable WASM debugger in its...
View Articlewatgo - a WebAssembly Toolkit for Go
I'm happy to announce the general availability of watgo - the WebAssembly Toolkit for Go. This project is similar to wabt (C++) or wasm-tools (Rust), but in pure, zero-dependency Go.watgo comes with a...
View ArticleSummary of reading: January - March 2026
"Intellectuals and Society" by Thomas Sowell - a collection of essays in which Sowell criticizes "intellectuals", by which he mostly means left-leaning thinkers and opinions. Interesting, though...
View ArticleNotes on Lagrange Interpolating Polynomials
Polynomial interpolation is a method of finding a polynomial function that fits a given set of data perfectly. More concretely, suppose we have a set of n+1 distinct points [1]:\[(x_0,y_0), (x_1, y_1),...
View ArticleNotes on Linear Algebra for Polynomials
We’ll be working with the set P_n(\mathbb{R}), real polynomials of degree \leq n. Such polynomials can be expressed using n+1 scalar coefficients a_i as follows:\[p(x)=a_0+a_1 x + a_2 x^2 + \cdots +...
View Article