Posted in 2023

git bisect

Given that HEAD is a bad commit and v2.6.13-rc2 is good, start the bisect process:

Next, choose either one of:

Read more ...

OpenWrt on Linksys EA7300 V2

OpenWrt Table of Hardware Record

Linksys firmware download

Read more ...

Neovim Spell Checking for Multiple Languages


To enable spelling globally, run

Read more ...

Brooks’ Law

There is an image in The Bluffer’s Guide to The Mythical Man-Month that fits my mental model of one aspect of Brooks’ Law perfectly.

By increasing the number of people you increase the number of communication channels exponentially.

Read more ...

Static Sites as Gitlab Review Apps with Caddy

For our book’s page at Grundkurs agiles Software-Engineering we use Sphinx with myst-parser as a static site generator and Gitlab CI to build and deploy.

We use GitLab Review apps to deploy the site on a subdomain, e.g.

Read more ...


Allow writing to a directory for an unprivileged user using linux acl (setfacl).

Allow the user gitlab-runner to write to /var/www/

Read more ...

Words Written This Year

The year is coming to an end. I promised myself to write more, so now would be a good time to count things, that is: words. Let’s count words!

I tried a top-down approach a while ago, but it did not work out, because I got side-tracked with technicalities. Let’s try a bottom-up approach this time.

Read more ...

TIL: Postgres Replication Slots

Replica liest WAL-Segmente. Primary räumt WAL-Segmente auf:

the server might recycle old WAL segments before the standby has received them [1]

Read more ...

TIL: Monitoring Docker Memory with Limits on Prometheus

One of our CI jobs failed seemingly without any reason. When a Celery job established a new HTTP connection, then its container stopped working. Later on I noticed the following message from docker-compose:

The exit code 137 means that a process was out of memory (OOM). In this case, the celery container had a limit of 2GiB and docker killed it when it went over that. Here is how we define the memory limit in our docker-compose.yml:

Read more ...

TIL: Thunderbird Keyboard Shortcuts


Thunderbird > Addons: Search “tbkeys”

Read more ...


A window switcher, application launcher and dmenu replacement

I am still on Ubuntu 20.04, so I only get version 1.5.4

Read more ...

TIL: vim docker-compose.yml completion using vim-coc


Read more ...

TIL: Systemd Journald Cannot Clear the Logs of a Specific Unit

Some logs of my Docker containers got out of hand, so I tried Docker’s Journald logging driver. It did not take long for the log of the service to grow again, but no problem. Here’s the plan:

reconfigure service to be less verbose

Read more ...

Tuxedo Akku Aufgebläht

Stolz habe ich von meinem Tuxedo InfinityBook S 14 - Gen6 berichtet, nachdem wir es vor knapp 1,5 Jahren am 20.09.2021 gekauft hatten.

Vorgestern ist mir dann aufgefallen, dass sich der Akku aufgebläht hat:

Read more ...

Letsencrypt Wildcard With Hetzner DNS

Example domain:

Read more ...

TIL: Grafana Dashboard Link Time Range

If you want to link from one dashboard to another, simply use

For example:

Read more ...

Python Ellipsis

You can use the ellipsis literal ... to show the general structure of some code while keeping it valid Python, e.g.:


Read more ...

TIL: Loki LogQL Pattern Matching for uWSGI Logs

Suppose you have log lines like this as uWSGI generates them:

First, let’s show the logs in a “Logs” view and filter them:

Read more ...

TIL: Prometheus file_sd_configs to Organize Static Scrape Configs

Changes to all defined files are detected via disk watches and applied immediately.

Read more ...

TIL: git restore by “meh”


Read more ...