April 14, 2026 | 11:10

Charts in Markdown

“Now he’s completely lost it” is probably what a regular reader might think. After all, I use plain text (Markdown) as the “single source of truth”1 in my document workflow,2 and now I want proper charts for visualization. Not ASCII bars. Actual pie charts. The kind managers and decision-makers expect. That sounds like a fundamental contradiction. I would argue it is not. In fact, I solved it in a clean way. Read more

March 10, 2026 | 18:20

Back from the Rabbit Hole

Over the past few days, I once again disappeared down the proverbial rabbit hole. But let’s start from the beginning. On Saturday, I wrote a blog post to outline an automated and deterministic document workflow.1 To make it easier to follow, I also set up a Codeberg repository.2 The feedback was unexpectedly overwhelming and raised many valid points. The repository itself had been put together quickly rather than thoroughly, so I ended up revising it significantly and renaming it in the process. It is no longer just a demo. It now represents a complete, highly flexible, and at the same time very simple document workflow. Read more

January 17, 2026 | 11:30

Forgejo Update-Script on codeberg.org

In case you need a shell script or Ansible playbook to update your own Forgejo instance, I’ve just uploaded mine to Codeberg.1 The specific reason: There have been a series of updates in quick succession over the past days.2 I noticed some people expressing frustration about having to redo all their updates all over again. This is exactly what automation is for: A clearly defined, reproducible update process saves time, reduces errors and ensures a more relaxed approach. And Forgejo, with its single-file binary, couldn’t be easier to deal with. Read more

October 11, 2025 | 21:00

Automatically Reading PDF Forms

The Portable Document Format (PDF)1 is a great example of how an originally brilliant concept for displaying print documents has been ruined over decades. Initially conceived as successor to PostScript,2 it has degenerated into a universal container format. Text, images, vectors, scripts, fonts, form data, even complete 3D models there’s hardly anything, that can’t end up in a PDF, including Doom.3 The PDF Pseudo-Standard In practice this means: Hardly any two PDFs are alike. A single piece of information can be packaged in a dozen different ways, depending on which program was used to create it.4 And we haven’t even gotten to the topic of signatures yet.5 Read more

October 3, 2025 | 19:36

Nautilus Helper on codeberg.org

Today on public holiday (in Germany) I polished my Nautilus script collection and uploaded it to Codeberg.1 For everyone who enjoys automating recurring tasks such as OCR on PDFs, creating animated WebP images from a selection of pictures, or encoding videos in h.265. The script collection will be updated from time to time. I already have some nice ideas in mind, like posting a graphic directly to Mastodon, more to come. Read more

September 4, 2025 | 16:30

HTTP Limiter on codeberg.org

A Bash script I’ve used for many years got some love recently and I’ve uploaded it to Codeberg.1 The HTTP Limiter is my answer to the bots, scrapers, and pentest tools that constantly hammer on my public facing hosts. Though “hammer” might actually be an understatement. What once seemed like constant background noise has now become the norm with noticeable consequences: Log files grow faster and make you blind to relevant entries. Processing meaningless requests consumes more CPU, RAM, and bandwidth. REST APIs in particular, often implemented in slow frameworks and programming languages with sluggish database connections, are highly vulnerable to DDOS2 attacks. Read more

July 12, 2021 | 07:40

What did you do this weekend?

Over the weekend I have increased security and automatized processes - that’s lame! This can be anything or nothing, too vague and unspecific. Well technically correct and with a touch of cynicism: “I translated bash scripts to YAML.” Okay, let’s agree on: I consolidated numerous bash scripts for automatically renewing certificates, reduced complexity, eliminated potential security risks when transferring certificates from outside reverse proxies to inside hosts, and made everything more transparent with both Ansible and Git. Read more

June 14, 2021 | 11:10

Simple Configcleaner

The simple, unspectacular things in life bring you ahead the curve. This bash script, for instance, removes all comments from a configuration file. In order that no empty lines remain instead, these are subsequently removed afterwards. What remains is the essence: what really counts. The usage is straightforward: Just add the desired config file(s) as parameters and you’re done! #!/bin/bash # Beseitigt alle Kommentar- und Leerzeilen aus einer Configfile # Sichert Datei mit Erweiterung .backup und # erwartet Dateiname oder -liste als Parameter for FILE in "$@" do # Erstellt Sicherungskopie(n) cp --backup=numbered $FILE $FILE.backup # Entfernt alle Kommentarzeilen > Arbeitsdatei sed -e 's/#.*$//' $FILE > $FILE.tmp # Entfernt alle Leerzeilen aus Arbeitsdatei sed -i '/^$/d' $FILE.tmp # Ersetzt Ausgangsdatei mit Arbeitsdatei mv $FILE.tmp $FILE done; This simplifies automation and above all the search in page-long comments within a config file. However, be careful! Behind every line theres much of wisdom: Everything after a # sign is mercilessly removed, really everything! Take the following line as example: Read more

© 2026 Tomas Jakobs - Imprint and Legal Notice

Member of UberBlgr Webring:   < Back > Next >  

Support this blog - Donate a Coffee