Tech Tales

Welcome to my blog!

Pruning untagged images in Harbor Container Registry

How to configure the deletion of untagged images in Harbor.

December 8, 2025 · 2 min · 392 words · Chris Pratl

Setting the Git default branch name

Setting up the Git default branch name, with or without command line interface.

November 30, 2025 · 1 min · 136 words · Chris Pratl

Debian's Boot partition running full

My Debian update was unsuccessful, I learned why.

November 24, 2025 · 2 min · 231 words · Chris Pratl

Installing the correct linux-headers package with Ansible

On a Debian system, it sometimes makes sense to have the linux-headers-${version} package installed, where ${version} is the kernel version. On command line, the proposal is to run: 1 apt install linux-headers-$(uname -r) which is hard to do when installing things with Ansible. Now there’s two ways around this issue: Explicit As it turns out, Ansible stores the kernel version in the ansible_kernel version. With that, I can do the following: ...

November 18, 2025 · 1 min · 147 words · Chris Pratl

Directory Restoring from Proxmox Backup Server

I lost data and wanted to restore parts of a backup. A post-mortem.

November 12, 2025 · 3 min · 594 words · Chris Pratl

Pylint in Neovim - Find imports correctly

The problem I want to use Pylint in Neovim, and I want to use a standard installation that is directly managed by Neovim. Hence I have installed Mason and used Mason to install Pylint. Now this is a problem when working with virtual environments: Pylint searches the packages in their own virtual environment (which is now managed by Mason and hidden somewhere in nvim’s storage) and does not understand my local imports. ...

November 7, 2025 · 1 min · 121 words · Chris Pratl

Managing (aka. cleaning up) a nested dictionary in Python

We are storing configurations. Let’s assume we are working on a store and we want to save prices for different products. But there are a set of configurations we have to consider1: We are working over multiple countries. Every country has got some locations. Every location has a set of articles. For an article, I might have multiple sizes. Finally, for every size I have got prices. Now let’s say that we want to store all of that in a Python dictionary. Luckily, the set of options is not too large, so that we can easily store it in a nested dictionary, which looks something like that: ...

November 1, 2025 · 5 min · 955 words · Chris Pratl

Removing a node from a Proxmox Cluster

Deleting nodes from my cluster is surprisingly simple.

October 26, 2025 · 1 min · 124 words · Chris Pratl

Removing a password from a PDF - Python version

I transferred a job that now does not run in Node-Red any more, but in Python.

October 20, 2025 · 3 min · 444 words · Chris Pratl

Setting up pyenv for Virtual environment management

I learned about PyEnv and want to write down the most important learnings.

October 12, 2025 · 3 min · 490 words · Chris Pratl

TLS certificates in AVM Fritz products

I checked the TLS certificates used by my AVM Fritz products, and am surprised.

October 6, 2025 · 2 min · 278 words · Chris Pratl

Commercial rounding in Python

As it turns out, Python does not do commercial rounding. What is commercial rounding? For most digits, the direction of rounding is clear. There are some special cases though: Do I round $0.5$ to $0$ or to $1$? In commercial rounding, this “$0.5$” problem is solved by “rounding away from zero”, meaning: For positive numbers, round up; for negative numbers, round down. This makes perfect sense for a mathematician, but others might need examples, so here are some1: ...

September 30, 2025 · 2 min · 356 words · Chris Pratl

Footer Menu

I finally managed to setup a Footer Menu. This was not too complex, for some things one just has to find the time… But I did learn one CSS thing, namely justify-content: center. The remaining work was not too exciting.

September 24, 2025 · 1 min · 40 words · Chris Pratl

A simple Kafka Development Setup in Docker

How I am using Apache Kafka in Docker for simple development.

September 23, 2025 · 4 min · 819 words · Chris Pratl

Fixing a break in PaperMod

During the latest changes on my Blog, I also updated the version of PaperMod. I now discovered a bug that PaperMod introduced, and I wanted to fix it. The problem was: In the Post metadata line, I typically have a part telling “Translations: De”, as I write most post in both german and english. Now with this commit, this part was broken and the “De” part was moved to the next line. ...

September 17, 2025 · 1 min · 119 words · Chris Pratl