Neueste Posts

Editorial-Illustration: ein zentrales PDF/A-3-Dokument mit eingebettetem XML-Chip wird von drei unabhängigen Prüfern geprüft, 'veraPDF', 'KoSIT' und 'Mustang', jeder mit grünem 'PASS'; Fußzeile 'PDF/A-3 · EN 16931 · ZUGFeRD'.Editorial-Illustration: ein zentrales PDF/A-3-Dokument mit eingebettetem XML-Chip wird von drei unabhängigen Prüfern geprüft, 'veraPDF', 'KoSIT' und 'Mustang', jeder mit grünem 'PASS'; Fußzeile 'PDF/A-3 · EN 16931 · ZUGFeRD'.
e-rechnungzugferd17. Juli 2026· 4 Min. Lesezeit

E-Rechnung 2028 Teil 4: Woher ich weiß, dass es wirklich konform ist

Von Grund auf konform gebaut zu haben ist eine Behauptung. Bei einer gesetzlichen Pflicht zählt der Beweis. Teil 4 zeigt, woher er kommt: von drei unabhängigen amtlichen Prüfern, nicht von mir. Und am Ende bekommt die Engine einen Namen.

Weiterlesen →
Editorial-Illustration: vier beschriftete Bausteine 'MODEL', 'XML', 'PDF/A-3' und 'MERGE' fließen in ein einzelnes Rechnungsdokument, das durch ein Prüf-Tor 'VALIDATOR: GREEN' läuft; links ein durchgestrichener 'LATE STAMP', rechts eine Kriterienliste bis 'NO GREEN WITHOUT PROOF'.Editorial-Illustration: vier beschriftete Bausteine 'MODEL', 'XML', 'PDF/A-3' und 'MERGE' fließen in ein einzelnes Rechnungsdokument, das durch ein Prüf-Tor 'VALIDATOR: GREEN' läuft; links ein durchgestrichener 'LATE STAMP', rechts eine Kriterienliste bis 'NO GREEN WITHOUT PROOF'.
e-rechnungzugferd10. Juli 2026· 4 Min. Lesezeit

E-Rechnung 2028 Teil 3: Konformität baut man ein, nicht drauf

Selbst bauen war beschlossen. Aber geht das überhaupt, ohne ein halbes Jahr in PDF-Interna zu versinken? Teil 3 zeigt, warum Konformität keine Sache ist, die man am Ende draufstempelt — und wie sich das einschüchternde Problem in vier überschaubare Bausteine zerlegt.

Weiterlesen →
Editorial-Diagramm: ein UCG-Router-Panel mit markierter Critical-Apps-Regel, dahinter ein DPI-Trichter, der den Datenstrom einschnürt; links ONT und Laptop mit PPPoE-Direkttest bei vollen 600 Mbit, rechts zwei Messtafeln mit 300 und 600 Mbit.Editorial-Diagramm: ein UCG-Router-Panel mit markierter Critical-Apps-Regel, dahinter ein DPI-Trichter, der den Datenstrom einschnürt; links ONT und Laptop mit PPPoE-Direkttest bei vollen 600 Mbit, rechts zwei Messtafeln mit 300 und 600 Mbit.
homelabnetzwerk7. Juli 2026· 4 Min. Lesezeit

Wenn der 600er-Glasfaser-Anschluss sich wie 300 anfühlt: eine Detektivgeschichte mit dem UniFi UCG Ultra

Vier Stunden Fehlersuche, ein PPPoE-Stack auf dem Linux-Laptop, ein abgesteckter Switch. Am Ende war es eine einzige QoS-Regel. Warum harmlos aussehende Features auf einem Consumer-Gateway den halben Anschluss kosten können.

Weiterlesen →
Editorial-Illustration: links drei gestapelte 'LIBRARY (BETA)'-Blöcke, die über gestrichelte Pfade zu einem zentralen 'PDF/A-3'-Tor führen; darunter ein eigener Pfad 'OWN LOGIC' über einen 'CONFORMITY CORE' zu einem grünen 'VERIFIED'. Fremde Beta-Bibliothek gegen selbst gebauten, geprüften Kern.Editorial-Illustration: links drei gestapelte 'LIBRARY (BETA)'-Blöcke, die über gestrichelte Pfade zu einem zentralen 'PDF/A-3'-Tor führen; darunter ein eigener Pfad 'OWN LOGIC' über einen 'CONFORMITY CORE' zu einem grünen 'VERIFIED'. Fremde Beta-Bibliothek gegen selbst gebauten, geprüften Kern.
e-rechnungzugferd3. Juli 2026· 4 Min. Lesezeit

E-Rechnung 2028 Teil 2: Fertige Lösung einbauen, oder selbst bauen?

Eine E-Rechnung erzeugen kann man kaufen oder bauen. Die naheliegende Antwort war: nimm eine fertige Bibliothek. Wie ich mich von der KI erst in diese Richtung schubsen und dann von ihr selbst wieder korrigieren ließ — und warum am Ende die unbequemere Entscheidung stand.

Weiterlesen →
Editorial-Illustration, geteilt: links eine offen lesbare Token-Karte unter 'LOCAL STORAGE / PLAIN TEXT'; rechts ein schwerer Tresor mit 'HttpOnly', 'APP-BOUND' und 'VAULT', darunter ein 'TPM'-Chip mit eingelassenem Schlüssel und der Beschriftung 'DEVICE-BOUND'.Editorial-Illustration, geteilt: links eine offen lesbare Token-Karte unter 'LOCAL STORAGE / PLAIN TEXT'; rechts ein schwerer Tresor mit 'HttpOnly', 'APP-BOUND' und 'VAULT', darunter ein 'TPM'-Chip mit eingelassenem Schlüssel und der Beschriftung 'DEVICE-BOUND'.
jwtauth27. Juni 2026· 4 Min. Lesezeit

Klartext und Tresor: warum dein localStorage offen liegt und dein Login nicht

Im letzten Teil tauchten Google und Microsoft im Browser-Scan gar nicht auf, obwohl sie die wertvollsten Sitzungen verwalten. Das eine Token liegt im Klartext, das andere im Tresor. Diese Asymmetrie erklärt beides: warum der Scan fand, was er fand, und warum der eigentliche Fix nicht heißt, besser zu verschlüsseln, sondern das Token ans Gerät zu binden.

Weiterlesen →
Editorial-Illustration: links ein zerfallendes PDF, dessen Pixel sich nach rechts zu einem strukturierten XML-Datensatz ordnen; dahinter die Checkpoints 'RECEIVE 2025' und 'ISSUE 2028', eine EN-16931-Prüfliste und ein Archiv-Tresor '8Y'. Statuszeilen: sichtbares Rechnungsbild optional, maschinenlesbare Daten Pflicht.Editorial-Illustration: links ein zerfallendes PDF, dessen Pixel sich nach rechts zu einem strukturierten XML-Datensatz ordnen; dahinter die Checkpoints 'RECEIVE 2025' und 'ISSUE 2028', eine EN-16931-Prüfliste und ein Archiv-Tresor '8Y'. Statuszeilen: sichtbares Rechnungsbild optional, maschinenlesbare Daten Pflicht.
e-rechnungzugferd26. Juni 2026· 4 Min. Lesezeit

E-Rechnung 2028 Teil 1: Wer muss wann, und warum schon jetzt?

Beim Bau eines Rechnungsportals kam die Frage auf: Müssen wir uns um E-Rechnung kümmern, und ab wann? Teil 1 klärt den rechtlichen Rahmen für KMU und Einzelunternehmer — Fristen, Schwellen, Ausnahmen, und warum sich der frühe Start lohnt.

Weiterlesen →
Editorial-Illustration: eine Schublade voller kleiner Token-Karten (mit 'eyJ…' beschriftet), die meisten verblasst (abgelaufen), wenige kupfern leuchtend (live), darüber eine Lupe; rechts ein versiegeltes, verschlossenes Fach mit 'HttpOnly / SEALED'; Beschriftung 'LOCAL STORAGE'.Editorial-Illustration: eine Schublade voller kleiner Token-Karten (mit 'eyJ…' beschriftet), die meisten verblasst (abgelaufen), wenige kupfern leuchtend (live), darüber eine Lupe; rechts ein versiegeltes, verschlossenes Fach mit 'HttpOnly / SEALED'; Beschriftung 'LOCAL STORAGE'.
jwtauth23. Juni 2026· 4 Min. Lesezeit

Schau in deinen Browser: welche Tokens dort wirklich liegen

Sicherheitsforscher fanden ChatGPT-Logins auf über 100.000 Geräten in den Logs von Schad-Software, ohne dass beim Anbieter eingebrochen wurde. Es waren ausgelesene Browser. Also habe ich nachgesehen, was in meinem eigenen liegt: ein Streifzug durch localStorage, ein selbstgebauter Scanner und die Frage, warum ein gefundenes JWT fast nie das ist, wonach es aussieht.

Weiterlesen →
Editorial-Diagramm in zwei Hälften: links unter 'WHERE' eine Garderobenmarke mit Nummer, ein Server-Ledger und ein 'lookup'-Pfeil; rechts unter 'WHAT' eine dreiteilige Karte HEADER / PAYLOAD / SIGNATURE mit Wachssiegel und ein 'verify'-Pfeil.Editorial-Diagramm in zwei Hälften: links unter 'WHERE' eine Garderobenmarke mit Nummer, ein Server-Ledger und ein 'lookup'-Pfeil; rechts unter 'WHAT' eine dreiteilige Karte HEADER / PAYLOAD / SIGNATURE mit Wachssiegel und ein 'verify'-Pfeil.
jwtauth18. Juni 2026· 4 Min. Lesezeit

Ein JWT ist ein Format, kein Login-System

Letztens lief auf Hacker News mal wieder der Streit, ob man JWTs benutzen soll. Ich wollte das Thema für mich selbst durchdringen: was ein JSON Web Token wirklich ist, wo es das richtige Werkzeug ist, wo es gefährlich wird — und was man stattdessen nimmt.

Weiterlesen →
Editorial-Diagramm: Dokumentformate (PDF, DOCX, PPTX, XLSX, EPUB) fließen in eine MarkItDown-Sidecar-Box, während drei eigene Pfade (Audio, YouTube, Vision) bewusst daran vorbei durch eigene Panels geführt werden; Warnschild 'No silent externals'Editorial-Diagramm: Dokumentformate (PDF, DOCX, PPTX, XLSX, EPUB) fließen in eine MarkItDown-Sidecar-Box, während drei eigene Pfade (Audio, YouTube, Vision) bewusst daran vorbei durch eigene Panels geführt werden; Warnschild 'No silent externals'
pullmdmarkitdown16. Juni 2026· 4 Min. Lesezeit

PullMD Teil 9: Microsofts MarkItDown integriert — und drei Teile wieder rausgerissen

Ich habe Microsofts MarkItDown in PullMD eingesetzt — und drei Teile sofort wieder herausgezogen; einer davon hätte Audio stillschweigend an Googles API geschickt. Was als banaler Juckreiz begann, wurde zu v3.0.0, einem KI-Security-Review und einer Regel fürs Projekt-Memory.

Weiterlesen →
Editorial-Diagramm: eine alte papierne Clipboard-Karte mit 'geo: DE only' und 'rule active' an einer modernen WAF/Edge-Panel-Box festgeklemmt; links eingehende Request-Pfade aus US (rot, host_not_allowed, outbound blocked) und DE (grün); rechts das Origin-Server-Panel mit einem leeren Log ('origin: no request').Editorial-Diagramm: eine alte papierne Clipboard-Karte mit 'geo: DE only' und 'rule active' an einer modernen WAF/Edge-Panel-Box festgeklemmt; links eingehende Request-Pfade aus US (rot, host_not_allowed, outbound blocked) und DE (grün); rechts das Origin-Server-Panel mit einem leeren Log ('origin: no request').
pullmdoauth16. Mai 2026· 4 Min. Lesezeit

PullMD Teil 8: Eine alte Regel

Eine zehntägige Stille, ein Pattern-Mismatch, ein vergessenes Stück Konfiguration — und drei Releases an einem Tag, sobald die Pipeline frei war.

Weiterlesen →
Editorial-Diagramm: ein Client-Panel mit Code links speist eine SPEC-CHECKS-Spalte, in der acht RFC-Items alle grüne Häkchen zeigen; danach folgt ein metallenes HOST-NOT-ALLOWED-Gate mit Vorhängeschloss; rechts steht der MCP SERVER im Leerlauf mit 'LOG · ZERO REQUESTS'.Editorial-Diagramm: ein Client-Panel mit Code links speist eine SPEC-CHECKS-Spalte, in der acht RFC-Items alle grüne Häkchen zeigen; danach folgt ein metallenes HOST-NOT-ALLOWED-Gate mit Vorhängeschloss; rechts steht der MCP SERVER im Leerlauf mit 'LOG · ZERO REQUESTS'.
pullmdoauth13. Mai 2026· 4 Min. Lesezeit

PullMD Teil 7: Spec-Compliant ist nicht genug

v2.1 OAuth lag implementation-complete auf feat/oauth. Beim Hinzufügen in claude.ai-Web kam: ‚Couldn't reach the MCP server'. Server-Logs leer. Acht Spec-Checks alle grün. Was folgt, ist eine zehntägige Spurensuche, an deren Ende nicht ein Bug in meinem Code stand, sondern eine Host-Allowlist auf der anderen Seite.

Weiterlesen →
Editorial-Diagramm: drei Auth-Mode-Karten oben — DISABLED, SINGLE ADMIN, MULTI USER — speisen einen zentralen User-Group-Hub, verbunden mit OAUTH- und CONNECTOR-Modulen; rechts ein Security-Review-Findings-Panel mit Critical/Checked-Items; unten Icons für User, Sessions, API-Keys und Verbindungen, plus ein v1.2 → v2.0 Versionspfeil.Editorial-Diagramm: drei Auth-Mode-Karten oben — DISABLED, SINGLE ADMIN, MULTI USER — speisen einen zentralen User-Group-Hub, verbunden mit OAUTH- und CONNECTOR-Modulen; rechts ein Security-Review-Findings-Panel mit Critical/Checked-Items; unten Icons für User, Sessions, API-Keys und Verbindungen, plus ein v1.2 → v2.0 Versionspfeil.
pullmdmulti-user9. Mai 2026· 4 Min. Lesezeit

PullMD Teil 6: Multi-User-Pivot

Issue #5 hat die Reihenfolge gekippt. Multi-User war für mich Phase 2 oder 3 — jetzt stand es ganz oben. In vier Tagen, dreißig Commits, wurde aus PullMD v1.2 ein Auth-System mit drei Modi, Argon2id-Sessions und einer Security-Review-Datei, die ich bewusst öffentlich mit ins Repo gelegt habe.

Weiterlesen →
Editorial-Diagramm: ein r/ClaudeAI-Panel links fließt über einen leuchtenden Pfeil in einen zentralen OPEN-SOURCE-Knoten; rechts zwei gestapelte Panels mit 13 Issues und einer Architektur-Frage. Untere Zeile: Code-Snippet speist einen Summary-Knoten mit Cache-Hit-Marker, dann Verbatim-Markdown-Output.Editorial-Diagramm: ein r/ClaudeAI-Panel links fließt über einen leuchtenden Pfeil in einen zentralen OPEN-SOURCE-Knoten; rechts zwei gestapelte Panels mit 13 Issues und einer Architektur-Frage. Untere Zeile: Code-Snippet speist einen Summary-Knoten mit Cache-Hit-Marker, dann Verbatim-Markdown-Output.
pullmdreddit6. Mai 2026· 4 Min. Lesezeit

PullMD Teil 5: Reddit-Tag und die ersten Issues

Am 27. April morgens lief gh repo create durch. Über Nacht ein paar Stars, kein einziges Issue. Am 28. April postete ich auf r/ClaudeAI — und in 24 Stunden füllte sich der Tracker mit Issues. Das Feedback brachte mich dazu, Multi-User vorzuziehen, das ich eigentlich für viel später geplant hatte.

Weiterlesen →
Editorial-Diagramm: PRIVATE links, PUBLIC OSS rechts, getrennt durch eine leuchtende Schwelle; AGPL-3.0-Lizenz-Boundary-Card und PullMD/MD-Knoten.Editorial-Diagramm: PRIVATE links, PUBLIC OSS rechts, getrennt durch eine leuchtende Schwelle; AGPL-3.0-Lizenz-Boundary-Card und PullMD/MD-Knoten.
pullmdopen-source30. Apr. 2026· 4 Min. Lesezeit

PullMD Teil 4: Vom Tool für mich zum OSS-Projekt

Zwei Gründe, warum der Codename als finaler Name nie infrage kam. Einer war Marketing-Hygiene. Der andere war, dass ich mich nicht von Konzern-Anwälten anschreiben lassen wollte. Der Brand-Wechsel zu PullMD war faktisch seit dem 8. März entschieden — am 25. April folgte nur die Source-Tree-Bereinigung, plus der Schritt vom nur-bei-mir-Tool zum Public-OSS auf AGPL.

Weiterlesen →
Editorial-Diagramm: URL-Input speist eine zentrale Routing-Gate, die in vier Extraction-Path-Cards verzweigt (Cloudflare MD, Reddit JSON, Readability, Trafilatura); rechts der Quality-Score; unten links ein kleines Log-Panel mit Health-, Signal- und Routed-Status.Editorial-Diagramm: URL-Input speist eine zentrale Routing-Gate, die in vier Extraction-Path-Cards verzweigt (Cloudflare MD, Reddit JSON, Readability, Trafilatura); rechts der Quality-Score; unten links ein kleines Log-Panel mit Health-, Signal- und Routed-Status.
pullmdweb-scraping19. Apr. 2026· 4 Min. Lesezeit

PullMD Teil 3: Mehr als Reddit, mehr als Readability

Drei Wochen lief der Service nur für Reddit. Dann schrieb ich am 20. März einen Satz in die Session, der das Projekt aus seinem Käfig befreit hat. Und einen Monat später, am 25. April, fand ich den Bug, der wochenlang unbemerkt mitgelaufen war.

Weiterlesen →
Editorial-Diagramm: ein leuchtendes SPEC-Portal links, darüber ein 'TESTS FIRST'-Banner über vier gestapelten Test-Cards (NORMALIZE, FETCH, FALLBACK, INTEGRATION), dann ein CONTAINER-Panel rechts mit grünem RUNNING-Indikator; ein kleines Status-Panel unten links zeigt TDD · REVIEW · GREEN.Editorial-Diagramm: ein leuchtendes SPEC-Portal links, darüber ein 'TESTS FIRST'-Banner über vier gestapelten Test-Cards (NORMALIZE, FETCH, FALLBACK, INTEGRATION), dann ein CONTAINER-Panel rechts mit grünem RUNNING-Indikator; ein kleines Status-Panel unten links zeigt TDD · REVIEW · GREEN.
pullmdclaude-code29. März 2026· 4 Min. Lesezeit

PullMD Teil 2: Vom Spec zum laufenden Container

Spec stand am Vormittag. Am Abend desselben Tages fing Claude Code an — und schrieb als allererstes vier Test-Dateien. Kein Server, keine Reddit-Logik, vier Tests. Beim Recherchieren für diesen Artikel ist klar geworden, warum: drei superpowers-Skills haben das Verhalten erzwungen, das aus dem Endergebnis wie magisches Default-Verhalten aussieht.

Weiterlesen →
Editorial-Diagramm: eine hohe Konsole mit der Aufschrift PARSE & FILTER zwischen einem unruhigen Reddit-artigen Input-Panel links und einem aufgeräumten Markdown-Output-Panel rechts; unten die Parser-Pipeline mit strukturierten Daten.Editorial-Diagramm: eine hohe Konsole mit der Aufschrift PARSE & FILTER zwischen einem unruhigen Reddit-artigen Input-Panel links und einem aufgeräumten Markdown-Output-Panel rechts; unten die Parser-Pipeline mit strukturierten Daten.
pullmdweb-scraping8. März 2026· 4 Min. Lesezeit

PullMD Teil 1: Strg+A und der Junk-Kontext

Wer kennt es nicht — eine Webseite in den Chatbot kippen, und der halbe Kontext ist Navigation, Cookie-Banner und Werbung. Cloudflare brachte einen Markdown-Dienst, kurze Hoffnung. Dann die Ernüchterung. Also musste ich was eigenes bauen.

Weiterlesen →