Neueste Posts

Werkbank mit einem Ausdruck einer Felsenküste, einer Messinglupe, einer Folie mit roten und blauen Flecken und durchgestrichenen FormelkartenWerkbank mit einem Ausdruck einer Felsenküste, einer Messinglupe, einer Folie mit roten und blauen Flecken und durchgestrichenen Formelkarten
ki-bildgenerierungopenai16. Okt. 2026· 4 Min. Lesezeit

Wellen-Textur Teil 2: Was das Auge sieht und keine Formel findet

Rund zehn Ansätze und ein Blindtest: Was ich in jedem OpenAI-Bild sofort sehe, findet keine handgebaute Formel. Ein kleiner trainierter Klassifikator schon.

Weiterlesen →
Ölgemälde auf einem diagnostischen Prüfstand mit Texturanalyse-PanelsÖlgemälde auf einem diagnostischen Prüfstand mit Texturanalyse-Panels
ki-bildgenerierungopenai9. Sept. 2026· 4 Min. Lesezeit

Die Wellen-Textur in OpenAIs neuen Bildmodellen

OpenAI hat am 8. September zwei neue Bildmodelle veröffentlicht: Flare und Sunburst. Stilistisch ein Fortschritt, aber beide tragen dieselbe gleichförmige Mikrotextur wie der Vorgänger. Vier automatische Detektionsversuche scheitern, zwei Visualisierungen zeigen das Muster.

Weiterlesen →
Zellenfeld aus 34 Zeilen und 365 Spalten: jede Zeile ein Wasserjahr, jede Spalte ein Tag, die Helligkeit steht für den Anteil der Pegel unter ihrem Niedrigwasser-Schwellenwert. Die hellen Bänder häufen sich in den unteren Zeilen.Zellenfeld aus 34 Zeilen und 365 Spalten: jede Zeile ein Wasserjahr, jede Spalte ein Tag, die Helligkeit steht für den Anteil der Pegel unter ihrem Niedrigwasser-Schwellenwert. Die hellen Bänder häufen sich in den unteren Zeilen.
niedrigwasserklimadaten2. Sept. 2026· 4 Min. Lesezeit

Vom Artikel zum eigenen Index

CORRECTIV hat im August ausgewertet, wie sich das Niedrigwasser an 356 deutschen Pegeln entwickelt hat. Der Befund überzeugte mich, die Karte dazu blieb mir unlesbar. Also habe ich Claude gefragt, was wir mit denselben Daten selbst anfangen können. Herausgekommen ist ein eigener Index über 34 Wasserjahre.

Weiterlesen →
Editorial-Illustration: drei Hände reichen von den Rändern Werkstücke auf eine Werkbank herein — ein Docker-Wal-Fragment, ein Schild-Symbol, ein Rezept-Zettel — während in der Mitte ein unberührtes, beschriftetes Werkstück liegtEditorial-Illustration: drei Hände reichen von den Rändern Werkstücke auf eine Werkbank herein — ein Docker-Wal-Fragment, ein Schild-Symbol, ein Rezept-Zettel — während in der Mitte ein unberührtes, beschriftetes Werkstück liegt
pullmdopen-source5. Aug. 2026· 4 Min. Lesezeit

PullMD Teil 15: Was Fremde besser sehen

Acht Wochen, in denen ein fremder Pull Request, eine Sicherheitsmeldung und zwei Feature-Wünsche das Produkt weiter gebracht haben als jede Innenarbeit desselben Zeitraums. Dazu ein Feature, das perfekt funktionierte und trotzdem nie ausgelöst wurde, weil niemand von außen es gefunden hat.

Weiterlesen →
Editorial-Illustration: zwei alte Registriergeräte auf einem dunklen Holztisch — links ein Trommel-Thermograph mit Messingschild 'EFFECT', rechts ein Gasschreiber mit offenem Uhrwerk und Schild 'DRIVER'. Beide Schreibfedern zeichnen auf denselben laufenden Papierstreifen: die rote Temperaturspur endet an der Feder des Thermographen, die blaue CO₂-Spur an der Feder des Gasschreibers, rechts davon ist das Papier noch leer. Vor der Klebestelle mit der Jahresmarke '1958' ist die blaue Spur gestrichelt, danach kräftig durchgezogen.Editorial-Illustration: zwei alte Registriergeräte auf einem dunklen Holztisch — links ein Trommel-Thermograph mit Messingschild 'EFFECT', rechts ein Gasschreiber mit offenem Uhrwerk und Schild 'DRIVER'. Beide Schreibfedern zeichnen auf denselben laufenden Papierstreifen: die rote Temperaturspur endet an der Feder des Thermographen, die blaue CO₂-Spur an der Feder des Gasschreibers, rechts davon ist das Papier noch leer. Vor der Klebestelle mit der Jahresmarke '1958' ist die blaue Spur gestrichelt, danach kräftig durchgezogen.
klimaspiraleklimadaten26. Juli 2026· 4 Min. Lesezeit

Klimaspirale Teil 4: CO₂, und was unter dem Post stand

Die Spirale zeigt, was passiert ist. Der häufigste Einwand dagegen richtet sich darauf, warum es passiert, und deshalb läuft jetzt eine CO₂-Kurve daneben mit: Eiskern-Luft bis 1958, danach die Messstation auf Hawaii, mit sichtbarer Naht. Dazu der letzte Schliff vor dem Start, ein Datenstand, der zu den Daten gehört, und ein Rückblick auf den Post, mit dem alles anfing.

Weiterlesen →
Editorial-Illustration: Zeichentisch-Szene. Ein Maßband liegt spiralförmig abgerollt auf dunklem Grund — die inneren, kurzen Windungen in Blaugrau, die äußeren, immer längeren in Kupferrot, alle exakt gleich breit. Links daneben ein Stechzirkel und die Maßband-Kapsel, davor ein handgeschriebener Zettel mit der Formel 'r = anomaly + 1.2'.Editorial-Illustration: Zeichentisch-Szene. Ein Maßband liegt spiralförmig abgerollt auf dunklem Grund — die inneren, kurzen Windungen in Blaugrau, die äußeren, immer längeren in Kupferrot, alle exakt gleich breit. Links daneben ein Stechzirkel und die Maßband-Kapsel, davor ein handgeschriebener Zettel mit der Formel 'r = anomaly + 1.2'.
klimaspiraleklimadaten26. Juli 2026· 4 Min. Lesezeit

Klimaspirale Teil 3: Der Einwand, den ich übersehen habe

Bevor die Seite online geht, wollte ich wissen, was an der Spirale falsch ist. Der Review las die Daten selbst und fand einen Kontinent, dessen Reihe fünf Jahre zu früh endet. Der stärkste Fund war ein anderer: die Frage, ob die gewählte Geometrie warme Jahre optisch begünstigt.

Weiterlesen →
Editorial-Illustration: zwei stählerne Messlatten hängen senkrecht nebeneinander an einer dunklen Steinwand, ihre Nullmarken sichtbar gegeneinander versetzt. Ein Messschieber greift zwischen beiden Skalen den Versatz ab und beziffert ihn im Anzeigefenster mit '+0.19 °C'. Links und rechts je eine Messingplakette: 'BASELINE 1951–1980' und 'PARIS 1850–1900'.Editorial-Illustration: zwei stählerne Messlatten hängen senkrecht nebeneinander an einer dunklen Steinwand, ihre Nullmarken sichtbar gegeneinander versetzt. Ein Messschieber greift zwischen beiden Skalen den Versatz ab und beziffert ihn im Anzeigefenster mit '+0.19 °C'. Links und rechts je eine Messingplakette: 'BASELINE 1951–1980' und 'PARIS 1850–1900'.
klimaspiraleklimadaten26. Juli 2026· 4 Min. Lesezeit

Klimaspirale Teil 2: Die Baseline-Falle

Derselbe Monat, dieselbe Messung, zwei verschiedene Zahlen: unsere Skala rechnet gegen 1951 bis 1980, das Pariser Abkommen gegen 1850 bis 1900. Zwischen beiden liegen 0,19 °C, und damit stand der 1,5-Grad-Ring der Spirale an der falschen Stelle. Wie daraus ein Paris-Schalter wurde, warum ein Rekordmonat kein gerissenes Klimaziel bedeutet, und wie die Falle mich in meiner eigenen Anwendung erwischt hat.

Weiterlesen →
Editorial-Illustration: Werkstatt-Szene auf dunklem Schreibtisch. Links ein gerahmtes Filmstreifen-Frame mit einer kleinen Klimaspirale, darunter ein Play-Balken mit der Aufschrift 'ENDS 2021'. Aus dem Rahmen läuft ein Papierband voller monatlicher Anomaliewerte nach rechts durch einen metallenen Prüfstempel-Apparat mit grün leuchtender Anzeige 'SOURCE VERIFIED'; davor eine Lupe und Stecknadeln.Editorial-Illustration: Werkstatt-Szene auf dunklem Schreibtisch. Links ein gerahmtes Filmstreifen-Frame mit einer kleinen Klimaspirale, darunter ein Play-Balken mit der Aufschrift 'ENDS 2021'. Aus dem Rahmen läuft ein Papierband voller monatlicher Anomaliewerte nach rechts durch einen metallenen Prüfstempel-Apparat mit grün leuchtender Anzeige 'SOURCE VERIFIED'; davor eine Lupe und Stecknadeln.
klimaspiraleklimadaten26. Juli 2026· 4 Min. Lesezeit

Klimaspirale Teil 1: Von einem Video zu eigenen Daten

An einem Morgen läuft in einem Subreddit ein alter Clip hoch: die Klimaspirale, aufsteigende Ringe aus Monatswerten, Daten bis 2021. Die Frage, ob man das mit aktuellen Zahlen nachbauen kann, führte erst zu einem Irrtum über das Werkzeug und dann zu der Einsicht, dass die Animation der einfache Teil ist. Wie aus 1752 Monatswerten eine eigene Spirale wurde, und was eine Temperatur-Anomalie überhaupt ist.

Weiterlesen →
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 14: Microsofts MarkItDown integriert — und drei Teile wieder rausgerissen

Microsofts MarkItDown steckt jetzt in PullMD, drei Teile davon habe ich sofort wieder herausgezogen; einer hätte Audio still an Googles API geschickt. Aus einem banalen Juckreiz wurden v3.0.0, ein Security-Review mit einem brandneuen Modell und eine 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 13: Eine alte Regel

Vier Tage lag feat/oauth fertig im Regal, weil ich den Block für ein Plattform-Problem hielt. Dann habe ich doch in die Logs geschaut. Die Ursache war eine eigene WAF-Regel, die ihren Zweck längst überlebt hatte. Danach zwei Releases an einem Tag.

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 12: 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. Am Ende der Suche stand kein Bug in meinem Code, 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 11: 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 und 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 aufgeschnittenes Gebäude mit drei Eingängen, beschriftet API, WEB und PWA. Nur der API-Eingang trägt eine schwere Riegeltür mit Schloss, die beiden anderen stehen offen und führen direkt zu einem Archivschrank mit dem Label HISTORY. Oben legt sich eine gestrichelte Linie AUTH um das ganze Gebäude und führt über OAUTH zu drei Nutzer-Symbolen. Links ein Panel /authorize mit dem roten Befund REVIEW: BLOCKED.Editorial-Diagramm: ein aufgeschnittenes Gebäude mit drei Eingängen, beschriftet API, WEB und PWA. Nur der API-Eingang trägt eine schwere Riegeltür mit Schloss, die beiden anderen stehen offen und führen direkt zu einem Archivschrank mit dem Label HISTORY. Oben legt sich eine gestrichelte Linie AUTH um das ganze Gebäude und führt über OAUTH zu drei Nutzer-Symbolen. Links ein Panel /authorize mit dem roten Befund REVIEW: BLOCKED.
pullmdsecurity7. Mai 2026· 4 Min. Lesezeit

PullMD Teil 10: Absichern, aber richtig

Am Tag des Reddit-Posts habe ich dem Dienst nebenbei eine Authentifizierung verpasst. Am Morgen danach fand der eigene Review, dass sie umgehbar ist, und ich fand die Frage, die alles noch mal aufmachte.

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 9: 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. In den 24 Stunden danach füllte sich der Tracker mit dreizehn 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-source4. Mai 2026· 4 Min. Lesezeit

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

Zwei Gründe, warum der Codename nie der finale Name werden konnte: der eine war Klarheit, der andere Markenrecht. Der Wechsel zu PullMD stand faktisch seit dem 8. März fest, am 25. April folgte die Bereinigung im Source-Tree und der Schritt ins öffentliche Repo unter AGPL. Zwei Tage später kam der Playwright-Sidecar obendrauf.

Weiterlesen →
Editorial-Szene: links liegt ein zugeschnürtes Bündel an einem lokalen Anschluss, der mit einem Kreuz durchgestrichen ist, also der Weg über eine eigene Installation. In der Mitte ein Schrank mit der Leiste REMOTE MCP, drei beleuchteten Werkzeug-Fächern und einer Leiste BASE_URL. Von dort laufen Leitungen über drei Werkzeug-Symbole zu fünf gestapelten Geräten, jedes mit dem Label CLIENT.Editorial-Szene: links liegt ein zugeschnürtes Bündel an einem lokalen Anschluss, der mit einem Kreuz durchgestrichen ist, also der Weg über eine eigene Installation. In der Mitte ein Schrank mit der Leiste REMOTE MCP, drei beleuchteten Werkzeug-Fächern und einer Leiste BASE_URL. Von dort laufen Leitungen über drei Werkzeug-Symbole zu fünf gestapelten Geräten, jedes mit dem Label CLIENT.
pullmdmcp2. Mai 2026· 4 Min. Lesezeit

PullMD Teil 7: Der MCP-Server

Ich wollte meinen eigenen Dienst in Claude Code einrichten und hielt ihn dabei selbst für einen MCP-Server. War er nicht. Eine halbe Stunde später gab es dann einen guten Grund, das zu ändern.

Weiterlesen →
Editorial-Diagramm auf einem Schreibtisch mit Notizbuch und Zirkel: links eine Hilfeseite mit dem Titel /help und den Einträgen CACHE, SHARE LINKS, PARAMETERS und CLIENT, darunter ein Kopierfeld AGENT SETUP und ein Download SKILL.ZIP. Rechts eine kurze Kennung, die über eine Sanduhr mit der Marke > 1H entweder zu REFETCH und FRESH führt oder gestrichelt zu einem Karteikasten STORED COPY als FALLBACK.Editorial-Diagramm auf einem Schreibtisch mit Notizbuch und Zirkel: links eine Hilfeseite mit dem Titel /help und den Einträgen CACHE, SHARE LINKS, PARAMETERS und CLIENT, darunter ein Kopierfeld AGENT SETUP und ein Download SKILL.ZIP. Rechts eine kurze Kennung, die über eine Sanduhr mit der Marke > 1H entweder zu REFETCH und FRESH führt oder gestrichelt zu einem Karteikasten STORED COPY als FALLBACK.
pullmdclaude-code1. Mai 2026· 4 Min. Lesezeit

PullMD Teil 6: Setup für Agenten

Beim Herumprobieren fällt mir auf, dass ein Agent einen Subreddit-Link einfach regelmäßig abrufen könnte. Beim Aufschreiben dieser Idee fällt mir dann auf, dass sie so gar nicht funktioniert.

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-scraping30. Apr. 2026· 4 Min. Lesezeit

PullMD Teil 5: Die falsche Engine gemessen

Ein Vormittag Kleinkram an der Ausgabe, dann eine Runde echter Verbesserungen. Und am Ende die Erkenntnis, dass mein Vergleich zwischen zwei Extraktions-Engines seit Wochen die falsche von beiden gemessen hatte.

Weiterlesen →
Editorial-Diagramm: links eine dicht gefüllte Webseite, in der Mitte ein kupfergerahmtes Tor mit dem Label SKILL und einem Zeiger, der den Weg wählt. Oben führt PULLMD zu einer vollständigen Tabelle mit Zeilennummern, unten FALLBACK durch einen Trichter zu einer ausgedünnten Karte. Unten ein Panel TRACE mit zwei gescheiterten Versuchen und dem Ergebnis .INVALID, RFC 2606.Editorial-Diagramm: links eine dicht gefüllte Webseite, in der Mitte ein kupfergerahmtes Tor mit dem Label SKILL und einem Zeiger, der den Weg wählt. Oben führt PULLMD zu einer vollständigen Tabelle mit Zeilennummern, unten FALLBACK durch einen Trichter zu einer ausgedünnten Karte. Unten ein Panel TRACE mit zwei gescheiterten Versuchen und dem Ergebnis .INVALID, RFC 2606.
pullmdclaude-code12. Apr. 2026· 4 Min. Lesezeit

PullMD Teil 4: Der Skill, und was er wirklich bringt

Ein Werkzeug bereitzustellen ist das eine. Dass der Agent es an der richtigen Stelle benutzt, ist das andere. Dafür gibt es Skills. Ob meiner überhaupt etwas bringt, habe ich dann lieber gemessen, statt es zu glauben.

Weiterlesen →
Editorial-Diagramm: links ein Panel mit einer eingegebenen Adresse, in der Mitte eine kupferbeschlagene Maschine mit der Leiste GET /api. Von dort gehen drei Wege ab: MARKDOWN direkt, .JSON, und HTML durch zwei Trichter mit READABILITY und TURNDOWN. Unter der Maschine ein Karteikasten SQLITE mit requests.db, rechts unten ein rot gezeichneter 502-Fehler.Editorial-Diagramm: links ein Panel mit einer eingegebenen Adresse, in der Mitte eine kupferbeschlagene Maschine mit der Leiste GET /api. Von dort gehen drei Wege ab: MARKDOWN direkt, .JSON, und HTML durch zwei Trichter mit READABILITY und TURNDOWN. Unter der Maschine ein Karteikasten SQLITE mit requests.db, rechts unten ein rot gezeichneter 502-Fehler.
pullmdapi5. Apr. 2026· 4 Min. Lesezeit

PullMD Teil 3: Die API, und wie aus Reddit jede URL wurde

Am Ende von Teil 2 lief ein Container. Was man da eigentlich aufrufen kann, stand aber noch nirgends. Und zwei Tage später war der Dienst schon nicht mehr nur für Reddit da.

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

Ich habe Claude Code die Spezifikation aus Teil 1 gegeben und einen Express-Server erwartet. Das Erste, was entstand, waren vier Tests. Kein Server, keine Reddit-Logik. Kein Zufall, sondern ein Skill-Stack, der genau dieses Verhalten erzwingt.

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

Einen langen Reddit-Thread in den Chat kopieren, und ein großer Teil davon ist Navigation, Cookie-Banner und Werbung. Cloudflares Markdown-Dienst funktioniert nur bei Seiten, die ihn unterstützen, bei Reddit also gerade nicht. Dann baue ich es eben selbst, erst mal nur für Reddit.

Weiterlesen →