Blog

Full Text Search Shenanigans

Sep 15, 2025

A great blog post from 2013 describes using bloom filters to build a space-efficient full text search index for small numbers of documents. The algorithm is simple: Per document, create a bloom filter of all its words. To query, simply check each document's bloom filter for the query terms.

With a query time complexity of O(number-of-documents), we can forget about using this on big corpuses, right? In this blog post I propose a way of scaling the technique to large document corpuses (e.g. the web) and discuss why that is a bad idea.

Spex: Swedish Student Theatre

Apr 1, 2024

Oh hey, what is this?! A post about theatre? Why yes it is!

On April fools, but totally serious.

The World's best Snake AI

Jan 4, 2024

Battlesnake is a competitive AI programming platform for a multiplayer variant of the classic game snake. It looks like this.

A random game of Battlesnake

Sweden's most realtime public transit map

Dec 23, 2023

Experience it yourself at transitmap.io (now defunct).

Transitmap lets you watch thousands of buses, metros, commuter trains, and even ferries move across a map in real time. Try it on your phone next time you are waiting for a bus in Sweden. In most cases, the vehicle on transitmap will move only a few seconds behind the real one.