Keeping scrapers out

- 4 mins read

After reading an LWN article on high AI scraper traffic, I also wanted to do something to “protect” the blog. I do not see any continuous load peaks, but I dislike the idea of giant corporations profiting off of my writing without any negotiation.

One solution that stands out currently is anubis. It tries to challenge requests in a way that is hard or resource intensive for scrapers at scale, but easy and resource-light for normal users.

WHY 2025 - Day 0

- 8 mins read

I went to WHY2025, a Dutch hacker camp.

This is the second part of my travel log, covering everything happening on day 0 after arriving on the site.

Optimizing Rust binary size

- 15 mins read

In CCC Berlin, there is a large pixel matrix hanging on the wall that we call “ServicePoint display”. It receives commands from the local network via UDP, which contain things like very basic text rendering and overwriting parts of the pixel buffer. The commands are sent in an efficient binary data structure. I wrote (most of) the Rust library servicepoint, which implements this protocol including serialisation, deserialisation and a bunch of extras for easily crating these packets. There are also bindings for other languages, including C.

Why I do not use flake-utils

- 3 mins read

I have been using Nix for a while now. Around a year ago, I switched everything from the servicepoint library to my machine configuration over to flakes.

For me the biggest advantage flakes bring is not additional functionality. Instead, they are an easier and semi-standardized way to do what you could before.

When learning flakes, you often see flake-utils being used. With it, you can shorten your flakes by not having to specify everything per system.