Blog
Artikel über Datenplattformen, ML im Betrieb und kleine Open-Source-Werkzeuge.
- 13. Nov. 2026 loki-alert-lines: die Logzeilen hinter Loki- und Grafana-Alerts
Ein Proxy zwischen Loki-Ruler oder Grafana-Alerting und Alertmanager, der aus jeder Alert-Regel eine Log-Abfrage ableitet und die passenden Logzeilen an den Alert hängt.
- 12. Nov. 2026 influx-reshape: Tags und Felder in InfluxDB umbenennen und umtypisieren
Ein Kommandozeilenwerkzeug, das Tags, Felder und Measurements in einem laufenden InfluxDB 1.x oder 2.x umbenennt, entfernt und umtypisiert und nach jedem Schritt die Werte zählt.
- 11. Nov. 2026 nc-app-purge: Reste deinstallierter Nextcloud-Apps entfernen
Ein Kommandozeilenwerkzeug, das Tabellen, Einstellungen, Hintergrundjobs und appdata entfernter Nextcloud-Apps findet, sie über die Migrationen der Apps zuordnet und mit einem wiederherstellbaren Backup löscht.
- 10. Nov. 2026 nocodb-transfer: NocoDB-Bases zwischen Installationen kopieren
Ein Kommandozeilenwerkzeug, das eine NocoDB-Base mit Links, Lookups, Rollups, Formeln, Anhängen und Views exportiert, auf einer anderen Installation neu aufbaut und beide Datensatz für Datensatz vergleicht.
- 9. Nov. 2026 es-changefeed: ein Änderungs-Feed für Elasticsearch und OpenSearch
Ein Programm außerhalb des Clusters, das aus Sequenznummern und globalen Checkpoints der Shards einen Strom angelegter, geänderter und gelöschter Dokumente macht.
- 9. Nov. 2026 mimir-rewrite: Serien im Langzeitspeicher von Grafana Mimir löschen
Ein Werkzeug für Betreiber, das Serien in den TSDB-Blöcken von Grafana Mimir löscht, umbenennt oder hasht und die Blöcke in einer Reihenfolge austauscht, mit der Compactor und Store-Gateways zurechtkommen.
- 6. Nov. 2026 k6-fleet: verteilte k6-Tests ohne Kubernetes
Ein Controller und ein Agent, die einen k6-Test über ssh oder Docker auf mehreren Maschinen ausführen und Thresholds, abortOnFail und die Zusammenfassung auf den zusammengeführten Daten auswerten.
- 5. Nov. 2026 pgfederate: ein PostgreSQL-Endpunkt für viele Datenquellen
Ein Gateway, das das PostgreSQL-Protokoll spricht und Joins in einem eingebetteten DuckDB ausführt, sodass Metabase und Grafana über ihren normalen PostgreSQL-Treiber auf PostgreSQL, MySQL, Dateien und REST-APIs zugreifen.
- 4. Nov. 2026 npm-trust-downgrade: npm-Lockfiles auf Provenance-Downgrades prüfen
Ein kleines Werkzeug, das eine package-lock.json samt transitiver Abhängigkeiten liest und Versionen meldet, die mit schwächeren Vertrauensnachweisen veröffentlicht wurden als frühere Releases desselben Pakets.
- 3. Nov. 2026 uv-lock-merge: ein Git-Merge-Driver für uv.lock
Ein kleines Werkzeug, das uv.lock-Dateien bei Git-Merges und Rebases paketweise zusammenführt, sodass die gesperrten Versionen beider Branches erhalten bleiben und das Ergebnis im Format von uv geschrieben wird.
- 2. Nov. 2026 sandbox-shell: eine Shell in der Sandbox eines systemd-Dienstes
Ein kleines Werkzeug, das eine Unit-Datei samt Drop-ins liest und eine Shell oder einen Befehl mit demselben Benutzer, derselben Umgebung und denselben Sandbox-Einstellungen startet, auch wenn der Dienst nicht läuft.
- 1. Nov. 2026 shutdown-blame: systemd-analyze blame für den Shutdown
Ein kleines Werkzeug, das das Journal des vorherigen Boots liest und die beim Herunterfahren gestoppten Units nach Dauer sortiert auflistet.
- 31. Okt. 2026 compose-inline: Compose-Configs und -Secrets auf einem entfernten Docker-Host
Ein Wrapper um docker compose, der lokale Config- und Secret-Dateien als Inhalt übergibt, damit Projekte, die sie nutzen, auf einem entfernten Docker-Host starten.
- 30. Okt. 2026 docker-cpg: docker cp mit Wildcards
Ein Wrapper um docker cp, der Wildcards, mehrere Quellen und Ausschlüsse ergänzt und auch mit gestoppten Containern und Images ohne Shell funktioniert.
- 29. Okt. 2026 ubuntu-latest-check: Workflow-Jobs finden, die auf Ubuntu 26.04 brechen
Ein Prüfwerkzeug, das GitHub-Actions-Workflows liest und die ubuntu-latest-Jobs auflistet, die auf Ubuntu 26.04 an entfernten apt-Paketen, fehlenden setup-python-Builds oder alten Playwright-Versionen scheitern.
- 28. Okt. 2026 galaxy-uninstall: Ansible-Collections entfernen
Ein Befehl, der installierte Ansible-Collections entfernt, anzeigt, welche Kopie Ansible lädt, und Collections nicht löscht, von denen andere noch abhängen.
- 27. Okt. 2026 journalctl-not: NOT-Filter für journalctl
Ein Wrapper um journalctl, der Einträge nach Unit, Identifier, Feldwert oder Nachrichtenmuster ausblendet und die normale journalctl-Ausgabe mit Farben, Pager, -n und -f beibehält.
- 26. Okt. 2026 gh-cache-download: GitHub-Actions-Caches herunterladen
Eine gh-Extension und eine Composite Action, die einen Cache-Eintrag von GitHub Actions per Key herunterladen, damit sich sein Inhalt lokal prüfen lässt.
- 24. Okt. 2026 gitignore-excludes: .gitignore-Regeln für restic und borg
Ein kleines Werkzeug, das Git in jedem Working Tree unterhalb eines Verzeichnisses nach ignorierten Pfaden fragt und sie als Exclude-Datei für restic oder borg schreibt.
- 23. Okt. 2026 yq-keep: yq-Edits ohne Neuformatierung der Datei
Ein kleines Werkzeug, das einen yq-Ausdruck direkt auf YAML-Dateien anwendet und nur die Zeilen ändert, die der Edit betrifft. Leerzeilen, Einrückung und Kommentarabstände bleiben erhalten.
- 22. Okt. 2026 envfile-compat: eine .env-Datei für docker run und Compose
Ein kleines Werkzeug, das zeigt, wo docker run --env-file und Docker Compose dieselbe .env-Datei unterschiedlich lesen, und die Datei in die Form umwandelt, die docker run erwartet.
- 21. Okt. 2026 claude-rc-keep: Remote-Control-Sessions online halten
Ein kleines Werkzeug, das Remote-Control-Sessions von Claude Code nach einem Neustart oder einem beendeten Prozess wieder startet, sodass sich die offene Web-Session mit dem vollständigen Verlauf neu verbindet.
- 21. Okt. 2026 lfs-size-track: Git LFS nach Dateigröße
Ein Pre-Commit-Hook, der jede gestagte Datei über einer Größenschwelle mit dem normalen git-lfs-Client in Git LFS verschiebt.
- 20. Okt. 2026 claude-relocate: Claude-Code-Sessions mit dem Projektordner umziehen
Ein Kommandozeilenwerkzeug, das Claude-Code-Sessions, Projekteinstellungen und Prompt-Verlauf auf den neuen Pfad eines Projekts überträgt, nachdem der Ordner umbenannt, verschoben oder auf einen anderen Rechner kopiert wurde.
- 20. Okt. 2026 pr-rescue: liegengebliebene Pull Requests in fremden Repositories finden
Ein Kommandozeilenwerkzeug, das die eigenen Pull Requests in fremden Repositories danach sortiert, wer als Nächstes handeln muss, und die von einem Stale-Bot geschlossenen findet.
- 19. Okt. 2026 git-leftovers: Arbeit finden, die nur auf einem Rechner liegt
Ein kleines Werkzeug, das jedes Git-Repository unter einem Verzeichnis auf uncommittete Änderungen, ungepushte Commits, Stashes, fehlende Remotes und Zugangsdaten-Dateien in der Historie prüft.
- 18. Okt. 2026 Anki-KaTeX-Markdown: Markdown und KaTeX in Anki-Karten
Ein Anki-Add-on, das ich 2021 geschrieben habe und das einen Basic- und einen Cloze-Notiztyp mit Markdown und KaTeX anlegt: wie die Karten rendern, was Nutzer in den Issues melden und was sich über die Releases geändert hat.
- 18. Okt. 2026 battery-passport-kit: Daten für den EU-Batteriepass prüfen
Ein Kommandozeilenwerkzeug, das CSV-Zeilen in Datensätze für den EU-Batteriepass umwandelt, sie gegen die BatteryPass-Ready-Schemas validiert und fehlende Pflichtelemente pro Datenelementgruppe meldet.
- 18. Okt. 2026 claude-code-gc: alte Claude-Code-Versionen entfernen
Ein kleines Linux-Werkzeug, das die von Updates hinterlassenen Claude-Code-Versionen auflistet, zeigt, welche laufende Prozesse noch nutzen, und den Rest entfernt.
- 18. Okt. 2026 diskdelta: welche Verzeichnisse auf der Platte gewachsen sind
Ein kleines Werkzeug, das bei jedem Lauf Verzeichnisgrößen aufzeichnet und das Wachstum seit dem letzten Lauf und seit einer Woche ausgibt, mit optionalem Alarm bei wenig freiem Platz.
- 1. Okt. 2026 Den Spitzenspeicher sicherer Transformer-Berechnung schrittweise senken
In meiner Masterarbeit habe ich gemessen, wofür kryptographisch gesicherte Transformer-Berechnungen ihren Spitzenspeicher brauchen, und ihn mit einer gemessenen Änderung pro Schritt gesenkt. Messwerkzeug, alle Schritte und die Rohlogs sind öffentlich.
- 1. Juni 2026 Woran ich in llm-d gearbeitet habe
Meine gemergten Pull Requests im Projekt llm-d: überwiegend CI-Härtung, Tests und Observability, dazu eine Konfigurationsoption für Flow Control und einige kleine Bugfixes.
- 1. Juni 2026 Eine Batterie-Analytics-Plattform für 100k+ IoT-Geräte
Als alleiniger Entwickler habe ich eine Batterie-Analytics-Plattform für 100.000+ IoT-Thermostate gebaut: eine getestete Bibliothek zur Kapazitäts- und Laufzeitschätzung im internen PyPI, Dagster-Ingestion, FastAPI-Services, Dashboards und Monitoring.
- 27. Mai 2026 aipreflight: ein CI-Gate für AI-Anwendungen
aipreflight führt Eval-, Kosten-, Latenz-, Observability- und Rollback-Checks gegen eine AI-Anwendung aus und gibt ein Gesamtergebnis und einen Exit Code zurück, auf die ein CI-Schritt oder Deploy-Job reagieren kann.
- 16. Mai 2026 Ein Readiness Gate für LLM-Endpoints: das Inferenz-Profil von aipreflight
Das Inferenz-Profil von aipreflight misst einen OpenAI-kompatiblen Endpoint mit llmprobe aus Client-Sicht, prüft die Ergebnisse gegen SLA-Schwellen und kann sie mit vLLM-Metriken aus Prometheus vergleichen.
- 8. Mai 2026 Geschätzte LLM-API-Kosten des OpenAI-Cookbooks aus einem statischen tokentoll-Scan
Ein statischer Scan von openai-cookbook mit tokentoll hat 24 LLM-API-Aufrufstellen gefunden. Bei angenommenen 1.000 Aufrufen pro Aufrufstelle und Monat liegt die Schätzung bei $1.884 pro Monat, davon 68% aus vier gpt-5-Aufrufstellen.
- 8. Mai 2026 Median der Time to First Token von 15 LLM-APIs in einem frühen Snapshot eines stündlichen Benchmarks
Stündliche Messungen an 15 Modellen von OpenAI, Anthropic, Google, DeepSeek und xAI über OpenRouter. In diesem Snapshot reichte der Median-TTFT von 321ms bis 4.226ms. Die Rohdaten sind öffentlich.
- 7. Mai 2026 Eine Datenplattform mit dbt, Dagster und ArgoCD bauen
Wie ich eine ELT-Analytics-Plattform für eine IoT-Thermostatflotte gebaut habe: Dagster für Extraktion und Laden, dbt für Transformationen, Sqitch für Schema-Migrationen, ArgoCD für das Deployment und eine Allowlist für personenbezogene Daten.
- 7. Mai 2026 Batterie-Vorhersagealgorithmen vor dem Fleet-Rollout auf Felddaten evaluieren
Eine Evaluierungspipeline für Batterie-Vorhersagealgorithmen auf 100k+ IoT-Geräten: monatliche Datensätze aus Felddaten mit Dagster, manuelles Review der Samples, ein isoliertes Virtual Environment pro Algorithmusversion, MLflow-Tracking und ein separater Service für den Rollout auf die gesamte Flotte.
- 5. Mai 2026 Latenz von sechs LLM-APIs über sieben Tage, gemessen mit llmprobe
60.480 Probes an GPT-4o-mini, Claude 3.5 Haiku, Gemini 2.0 Flash, Llama 3.3 70B, DeepSeek Chat und Mistral Small über OpenRouter. Time to First Token, Gesamtlatenz, Durchsatz und Fehler, clientseitig einmal pro Minute gemessen.
- 3. Mai 2026 tokentoll: Kostenänderungen von LLM-API-Aufrufen im Code-Review
Aufbau der ersten Version von tokentoll, das die monatlichen Kosten von LLM-API-Aufrufen aus dem Quellcode schätzt und zeigt, wie ein Git-Diff sie verändert.