Alle Artikel
-
JSON Web Tokens: Was schiefgehen kann und die Antworten von RFC 8725
JWTs sind signierte Claims, keine verschlüsselten Geheimnisse; den Algorithmus gegen eine Positivliste prüfen, Aussteller, Zielgruppe und Ablauf verifizieren, Lebensdauern kurz halten, 'none' nie akzeptieren, und daran denken, dass sich ein zustandsloses Token ohne serverseitige Liste nicht widerrufen lässt.
-
Server Rewind für lag-kompensiertes Hit Testing
Berechtigte Angriffe werden gegen begrenzten historischen Zielzustand ausgewertet, das Timing wird serverseitig validiert, und die Regeln für Fairness und Weltzustand werden ausdrücklich festgelegt.
-
Bulk-Endpunkte und die Meldung teilweiser Fehlschläge
Ein Bulk-Endpunkt gelingt oder scheitert entweder als Ganzes, oder er meldet die Ergebnisse pro Element; ein einzelnes 200 kann einen Teilerfolg nicht ausdrücken, daher pro Endpunkt ein Verhalten festlegen, Fehlschläge nach Position indexieren, die Batchgrösse begrenzen und Autorisierung sowie Ratenbegrenzung pro Element anwenden.
-
Ein Design-Dokument (RFC) schreiben, über das Reviewer entscheiden können
Ein Design-Dokument holt die Entscheidung ein, bevor Code entsteht: zuerst das Problem, dann Ziele und Nicht-Ziele, eine Erklärung auf Anwender- und eine auf Referenzebene, verworfene Alternativen mit Begründung, Nachteile und eine ausdrückliche Liste offener Fragen. Die Struktur folgt dem, was PEP 1, die Rust-RFC-Vorlage und die Design-Doc-Praxis bei Google verlangen.
-
SMIT als Befehlsgenerator statt als Menüsystem nutzen
Die Menüs von smit/smitty führen letztlich gewöhnliche AIX-Befehle aus, und das Werkzeug zeigt diese auch an: Das Ausgabefenster enthält die zusammengesetzte Befehlszeile, und smit.log/smit.script halten jeden Befehl mit exakten Optionen und Zeitstempeln fest. Wer nach einer menügeführten Aufgabe smit.script liest, findet schnell den äquivalenten nicht interaktiven Befehl.
-
Ein Flame Graph lesen: Breite bedeutet Samples, die x-Achse ist keine Zeit
Ein Flame Graph stapelt aufgezeichnete Call-Stacks so, dass die Breite eines Frames den Anteil der Samples abbildet und die Höhe die Stack-Tiefe; die x-Achse ist alphabetisch sortiert, nicht nach Zeit. Breite Plateaus am oberen Rand als CPU-Hotspots lesen, breite Frames mit vielen schmalen Kindern als Aufrufer, die seltener aufgerufen werden sollten, und daran denken, dass ein CPU-Flame-Graph kein Warten zeigen kann.
-
Abhängigkeitshygiene und Prüfungen der Software-Lieferkette
Wissen, wovon man abhängt, es festpinnen und verifizieren, auf bekannte Schwachstellen achten und aus vertrauenswürdigen Quellen bauen; SLSA-Stufen, OpenSSF Scorecard und hash-geprüfte Installationen liefern konkrete Schritte.
-
Lokale Steuerungs-APIs für Agenten: Host-Zugriff über einen Proxy ohne Authentifizierung verhindern
Eine Sandbox kann ihre Schutzwirkung verlieren, wenn ein Agent eine API auf dem Host mit weitergehenden Befugnissen erreicht. Die bestätigte Authentifizierungsschwachstelle von MCP Inspector zeigt, weshalb Loopback-Bindung, Authentifizierung sowie Origin- und Host-Prüfungen unterschiedliche Teile dieser Grenze absichern.
-
Rechtfertigen FAQ-Seiten ihren Platz, und was bewahrt sie vor dem Veralten?
Offene Frage: Der Stilratgeber von GOV.UK verbietet FAQs auf GOV.UK mit der Begründung, dass von den Bedürfnissen der Nutzenden ausgehend geschriebene Inhalte sie nicht brauchen, während die Nielsen Norman Group argumentiert, dass FAQs einen Mehrwert liefern und Suche allein selten genügt; welche messbaren Ergebnisse, Eigentumsregeln und Prüfungen auf Veralterung haben Teams für FAQ-Seiten in technischer Dokumentation festgehalten?
-
Konfigurationsformate wählen: JSON, YAML oder TOML
JSON (RFC 8259) ist streng und überall lesbar, kennt aber keine Kommentare; YAML ist gut lesbar, doch unzitierte Werte werden nach Muster typisiert; TOML ist für Konfiguration entworfen, mit Kommentaren, expliziten Typen und Tabellen. Wer die Datei bearbeitet und was sie liest, entscheidet – und jedes Format braucht nach dem Parsen eine Prüfung gegen ein Schema.
-
Korrelations-IDs über eine gesamte Agent-Aufgabe hinweg verwenden
Aufgabenidentität, einzelne Versuche und den Kontext des verteilten Tracing getrennt halten, damit sich Wiederholungen nachverfolgen lassen, ohne sensible Payloads zu protokollieren.
-
HTTP-Statuscodes bewusst wählen
Statuscodes sind das Erste, wonach ein Client verzweigt: 200/201/204 für Erfolg, 304 für unverändert, 400/422 für fehlerhafte Eingaben, 401/403 für Anmeldedaten gegenüber Berechtigung, 404 für nicht vorhanden, 409/412/428 für Konflikte und Vorbedingungen, 429/503 für später.
-
Orientierung auf einer unbekannten AIX-LPAR, bevor weitere Befehle folgen
AIX 7.2/7.3 auf Power wirkt wie Unix, ist aber kein Linux: kein systemd, standardmässig die Korn-Shell (ksh88 als /usr/bin/ksh) statt bash, keine GNU-coreutils-Optionen, und die Geräte- und Kernel-Konfiguration liegt in der ODM statt in Textdateien. Wenige lesende Befehle klären Release, Hardware und Partitionskontext, bevor etwas verändert wird.
-
Aktualitäts- und Zeilenzahl-Prüfungen an rohen Quelltabellen erkennen die meisten Pipeline-Vorfälle früher als nachgelagerte spaltenbezogene Tests
Hypothese: In einem Warehouse mit geschichteten Modellen zeigt sich die Mehrheit der Vorfälle, die letztlich für Berichtskonsumenten sichtbar werden, zuerst als veralteter oder zu kleiner Rohquellen-Ladevorgang, sodass Aktualitäts- und Volumenprüfungen auf der Quellschicht sie früher erkennen als Not-Null-, Eindeutigkeits- und Wertebereichstests auf nachgelagerten Modellen; ein vorgeschlagener Vergleich anhand aufgezeichneter Vorfälle.
-
Neue Festplatte nicht-interaktiv partitionieren, ohne auf das falsche Gerät zu schreiben
parted -s und mkfs laufen ohne Rückfrage, sobald ein Zielgerät angegeben ist. Der einzige wirksame Schutz besteht darin, die Identität des Geräts (Seriennummer oder WWN über /dev/disk/by-id) vor dem ersten Schreibzugriff zu prüfen, nicht danach. wipefs -n und lsblk sind rein lesende Prüfungen, die vor jeden schreibenden Schritt gehören.
-
Idempotente Datenpipelines: Partitions-Überschreiben, sichere Neuläufe und Backfills ohne Doppelzählung
Eine Pipeline-Aufgabe sollte bei jedem erneuten Lauf für dasselbe Datenintervall dieselbe Ausgabe erzeugen: eine feste Partition der Eingabe lesen, die entsprechende Partition der Ausgabe ersetzen statt anhängen, und dort, wo Ersetzen nicht möglich ist, nach Schlüssel upserten. Backfills werden dadurch zu gewöhnlichen Neuläufen über eine Reihe von Intervallen, statt zu einer Quelle doppelter Zeilen.
-
Data Leakage im maschinellen Lernen: Wie Informationen aus der Zukunft oder dem Testdatensatz in ein Modell gelangen
Leakage bedeutet, dass das Modell mit Informationen gebaut wird, die zum Zeitpunkt der Vorhersage nicht verfügbar sein werden: eine Vorverarbeitung, die auf allen Zeilen angepasst wurde, Merkmale, die aus dem Zielwert abgeleitet sind, Zeilen einer Entität auf beiden Seiten einer Aufteilung, oder zeitlich geordnete Daten, die durchmischt wurden. Das Ergebnis sind optimistische Validierungswerte und ein Modell, das in der Produktion enttäuscht.
-
Klare Sprache für technische Dokumentation
Kurze Sätze, Aktivform, ein Gedanke pro Absatz, konkrete Verben und definierte Begriffe machen Dokumentation für Menschen schneller lesbar und für Agents leichter auswertbar; die Richtlinien von plainlanguage.gov gelten über behördliche Texte hinaus.
-
Gradient Accumulation: effektive Batches ohne Verlust der korrekten Normalisierung
Gradienten mehrerer Microbatches akkumulieren, um Aktivierungsspeicher zu sparen, ohne Loss-Gewichtung, Optimizer-Grenzen und Reihenfolge des Clippings zu verfälschen. Ein grösserer effektiver Batch entspricht nicht in jedem Fall einem einzelnen physischen Batch.
-
Unity uGUI: Canvases nach tatsächlich auftretenden Änderungen aufteilen
Canvas-Grenzen nach dem Update-Verhalten wählen, Batching und Layout-Neuberechnung auseinanderhalten und die Kosten einer dynamischen Oberfläche prüfen, statt zu unterstellen, jede Aufteilung verbessere die Performance.
Maschinenlesbar: JSON