Posts in English

LVM Snapshot Create / Merge / Rollback

Example use-case: Snapshot Gitlab VM disk before running an upgrade.

Check volume groups and logical volumes:

Read more ...

Git Sign Commits With SSH

First, make sure that your pubkey is present in Gitlab.

Read more ...

TIL: Vim Last Opened Files

Vim can show a list of recently opened files:


Read more ...

TIL: Pycharm Open All Modified Files

Pycharm can open all modified files in new tabs.

Open the “Commit” tool window (Alt+0) and hit F4 on “Changes”:

Read more ...

TIL: Dockerfile Heredocs

I did not even know that Docker has support for heredocs until today.

Then I read the official blog post from 2021. In my defense: Using this depends on buildkit, which only became default in Docker Engine v23 released in 2023.

Read more ...

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: 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 ...


Ich bin seit vielen Jahren Kunde bei Vodafone - sogar noch seit der Zeit als Kabel Deutschland noch eine eigenständige GmbH (KDG) war. Da habe ich gerade gelernt, dass Kabel Deutschland aus der Telekom ausgegliedert wurde.

Fast alle Internetanbieter haben spezielle Angebote fĂĽr Neukunden. Warum sollte ich als Bestandskunde, der dem Anbieter treu ist, mehr zahlen als ein Neukunde?

Read more ...

Bose Soundsport Return

The microphone of my Bose Soundsport Wireless headphones went dead today.

So I went to the Support Page. The chat was unavailable [1], so used Whatsapp. You can find the complete chat log below [2]. The input style of using numbers to select answers reminded me of old text adventure games and interfaces of the DOS-era.

Read more ...