Ideen & Einblicke

AI-First-Entwicklung, Coding-Leitplanken und die Architektur der Entsorgbarkeit erkunden.

Sie können Code mit einem Model Checker verifizieren, ohne Temporal Logic zu lernen

Bounded Model Checker wie Kani und relationale Model Finder wie Alloy ermöglichen die Verifikation von Eigenschaften mit gewöhnlichen Assertions und Constraints. Sie geben Liveness-Beweise auf, dafür ist die Lernkurve auf Stunden statt Wochen gemessen.

Sie müssen keine lineare temporale Logik lernen, um einen Model Checker zu verwenden. Tools wie Kani, CBMC und Alloy ermöglichen die Verifikation von…

Man kann Rust-Code korrekt beweisen, ohne einen einzigen Beweis zu schreiben – aber der Zustandsraum ist die Rechnung

Model-Checking-Tools wie Kani erlauben es, Rust-Eigenschaften mit Assertions statt formaler Beweise zu verifizieren. Das Problem ist, was passiert, wenn deine Schleifen keine kleinen Grenzen haben.

Man kann Rust-Code korrekt beweisen, ohne einen einzigen Beweis zu schreiben. Das Tool, das das macht, heißt Model Checker, und für Rust ist der praktischste…

Grammar-constrained decoding: Wie man LLMs zwingt, bei jedem Token valide Syntax auszugeben

LLMs halluzinieren Syntax, weil sie Tokens probabilistisch sampeln. Grammar-constrained decoding filtert das Vokabular in jedem Schritt, sodass nur Tokens emittiert werden, die die syntaktische Gültigkeit erhalten.

Bitten Sie einen LLM, ein JSON-Objekt zu generieren, und er wird irgendwann ein abschließendes Komma ausgeben, einen nicht escapten Zeilenumbruch innerhalb…

Vom Englischen ins Theme zu übersetzen ist einfach. Es deterministisch zu machen, ist das eigentliche Problem.

Du kannst Design-Tokens aus einfachen englischen Beschreibungen generieren, aber nur, wenn du die Beschreibung als DSL mit begrenztem Kontext, Schema-Vertrag und Snapshot-Tests behandelst.

Ja, du kannst ein Theme auf Englisch beschreiben und ein funktionierendes Design-System erhalten. Der Haken ist, dass die englische Beschreibung kein Prompt…

Weg mit der Grammatikdatei: Schreib deinen DSL-Parser in plain TypeScript

Parser-Generatoren sind für die meisten Bounded-Context-DSLs overkill. Parser-Kombinatoren erlauben es dir, einen funktionierenden Parser in derselben Sprache wie deine Anwendung zu bauen – ohne generierten Code und ohne Build-Schritte.

Wenn du jemals eine Yacc-Grammatikdatei geöffnet und dich gefragt hast, warum das Bauen einer Sprache das Erlernen einer zweiten Sprache erfordert, bist du…

Deine dependencies können deine Umgebungsvariablen lesen. JavaScript lässt sie.

Ambient Authority bedeutet, dass jeder Code in deinem Node.js-Prozess auf das Dateisystem, das Netzwerk und die Umgebung zugreifen kann. Hier erfährst du, wie du sie mit Lockdown, Compartments und expliziter Capability-Übergabe entziehst.

Eine einzelne kompromittierte transitive dependency kann deine exfiltrieren, auf dein Dateisystem schreiben und ausgehende Verbindungen öffnen. Sie braucht…

Netzwerknähe ist keine Identität: Wie Services sich ohne Ambient Authority authentifizieren

Das meiste Service-zu-Service-Vertrauen basiert auf dem Netzwerkstandort, nicht auf kryptographischem Beweis. Hier erfährst du, wie Capabilities, mTLS und SPIFFE Services die Authentifizierung ohne Ambient Authority ermöglichen – und warum es schwieriger ist als es sein sollte.

Deine Microservices teilen sich ein VPC, deshalb vertrauen sie einander. Dieses Vertrauen ist Ambient Authority: Die Berechtigung, einen Service aufzurufen,…