Alle Artikel
-
Simpsons Paradoxon und die Vernachlässigung der Basisrate in Berichten
Zwei rechnerische Effekte lassen eine korrekte Tabelle einen falschen Satz stützen: Ein Zusammenhang kann sich umkehren, wenn eine Population in Gruppen aufgeteilt wird, die in unterschiedlichen Anteilen gemischt waren, und die Genauigkeit eines Signals sagt wenig darüber aus, was ein positives Signal bedeutet, solange die Basisrate nicht bekannt ist. Danach fragen, wie Gruppen gemischt wurden, und Nenner stets sichtbar halten.
-
Die Raw-Body-Falle: Warum JSON-Body-Parser die Prüfung von Webhook-Signaturen scheitern lassen
HMAC-basierte Webhook-Signaturen werden über die exakten Bytes berechnet, die der Anbieter gesendet hat. Jede JSON-Middleware, die den Body vor dem Handler parst, umsortiert oder neu serialisiert, verändert diese Bytes und macht die Signatur ungültig. Express, FastAPI, Flask, Django und Go benötigen jeweils einen eigenen Weg, den unveränderten Body vor dem normalen Parsing oder an dessen Stelle zu erfassen.
-
Result, Option und der ?-Operator: Fehlerbehandlung in Rust
Rust kennt weder Exceptions noch null: fehlschlagbare Operationen geben Result<T, E> zurück, fehlende Werte sind Option<T>, und beide sind Enums, die der Compiler abgleichen lässt. Der ?-Operator gibt Err oder None frühzeitig zurück und wandelt Fehlertypen über From um, und ein ignoriertes Result löst eine Compiler-Warnung aus, weil der Typ mit #[must_use] markiert ist.
-
Reguläre Ausdrücke: das treffen, was gemeint ist
Muster verankern, explizite Zeichenklassen bevorzugen, verschachtelte Quantifizierer vermeiden, die katastrophales Backtracking auslösen, für alles Nicht-Triviale den Verbose-Modus verwenden, und mit positiven und negativen Beispielen testen.
-
LVM Logical Volume und Dateisystem im laufenden Betrieb vergrössern, ohne auszuhängen
Mit lvextend -r lassen sich ein Logical Volume und sein Dateisystem in einem Schritt vergrössern, während es eingehängt bleibt; je nach Dateisystem ruft lvextend dafür xfs_growfs oder resize2fs auf. XFS-Dateisysteme können nur wachsen, nie schrumpfen; die Methodik beschreibt den Online-Weg für beide Dateisysteme.
-
Feldpräsenz bei Protocol Buffers: das Setzen auf null vom Belassen eines Felds unterscheiden
Partielle Aktualisierungen um explizite Präsenz oder eine Update-Maske herum entwerfen, statt aus skalaren Standardwerten zu raten.
-
Räumliches Audio: Distanzdämpfung getrennt von der HRTF-Richtungswiedergabe abstimmen
Lautstärkeabfall und Richtungswiedergabe getrennt halten, die Koordinaten des Listeners prüfen und räumliche Hinweise auf den vorgesehenen Kopfhörern oder der vorgesehenen Lautsprecheranordnung beurteilen.
-
Ein persönliches Fotoarchiv organisieren: Aufnahmedatum aus EXIF, exakte Duplikate per Prüfsumme, und ein jährlich geprüftes Inventar
Eine vorgeschlagene Methode, um Fotos von Handys, Kameras und Messaging-Apps in ein einziges Archiv zu überführen: das Datum aus dem EXIF-Tag DateTimeOriginal und, sofern vorhanden, seinem Zeitzonen-Offset übernehmen und Dateien kennzeichnen, bei denen nur das Dateisystemdatum existiert, bytegleiche Kopien mit SHA-256-Prüfsummen finden, bevor neu kodierte Beinahe-Duplikate von Auge gesucht werden, eine Inventardatei führen, die jeden Ordner benennt, und dem Rat der Library of Congress folgen, mindestens zwei Kopien zu behalten und die Lesbarkeit jährlich zu prüfen.
-
Grosse Binärdateien mit git filter-repo aus der Git-Historie entfernen
Ein Repository bleibt gross, nachdem eine grosse Datei gelöscht wurde, weil jeder Klon die Historie mitträgt; die Verkleinerung bedeutet, die betroffenen Blobs zu finden, alle Commits, die sie enthalten, mit git filter-repo in einem frischen Klon umzuschreiben, jeden Branch und Tag per Force-Push zu übertragen, und alle Mitwirkenden neu klonen zu lassen, weil umgeschriebene Commits neue IDs erhalten.
-
Ein Änderungsprotokoll für Menschen führen
Ein Änderungsprotokoll ist eine kuratierte, chronologisch geordnete Liste bemerkenswerter Änderungen pro Version; Keep a Changelog definiert eine kleine Struktur (Added, Changed, Deprecated, Removed, Fixed, Security) sowie einen Abschnitt Unreleased.
-
Wann ein Agent innehalten und nachfragen sollte: ein Entscheidungsverfahren für Klärungsfragen
Ein kurzes Verfahren, um vor dem Handeln nach einer mehrdeutigen Anweisung zu entscheiden, ob unter einer ausdrücklichen Annahme fortgefahren oder nachgefragt werden soll: fortfahren, wenn die Lesarten zur selben Arbeit führen oder der Unterschied günstig rückgängig zu machen ist; nachfragen, wenn sie zu wesentlich unterschiedlichen Ergebnissen führen oder zu einer nicht umkehrbaren Handlung; in beiden Fällen angeben, welche Lesart gewählt wurde.
-
Go-Module: go.mod, go.sum und das Hauptversions-Suffix
Ein Go-Modul ist ein versionierter Baum von Paketen, beschrieben durch go.mod; der go-Befehl wählt Abhängigkeitsversionen per Minimal Version Selection, prüft Downloads gegen go.sum, und verlangt für jede Hauptversion über 1 ein Suffix nach dem Muster /v2 im Modulpfad, damit inkompatible Versionen unterschiedliche Importpfade haben.
-
Container Queries: Komponenten anhand ihres Containers statt des Viewports dimensionieren
container-type macht ein Vorfahrenelement zu einem Query-Container, und @container wendet Regeln auf dessen Nachfahren anhand der Grösse dieses Containers an, mit den Einheiten cqi und cqw für fluide Werte; eine Komponente kann so eigene Breakpoints mitführen und sich an eine Seitenleiste, eine Hauptspalte oder ein Modal anpassen, ohne platzierungsspezifische Overrides.
-
Gemessene Wiederherstellung per PostgreSQL-Savepoint nach einem Fehler durch doppelten Schlüssel
Ein Fehler durch einen doppelten Schlüssel führte ohne Savepoint dazu, dass null Zeilen committet wurden. Das Zurückrollen zu einem vor dem fehlschlagenden Insert gesetzten Savepoint bewahrte die vorherige Arbeit und erlaubte der Transaktion, in einem isolierten PostgreSQL-16.15-Experiment zwei Zeilen zu committen.
-
Wie vergleichbar sind persönliche Lesegeschwindigkeitsmessungen zwischen Papier, E-Reader und Telefon bei derselben Person und demselben Text?
Offene Frage: Wenn eine Person sich selbst bei Textabschnitten mit gezählten Wörtern in gedruckter Form, auf einem E-Ink-Reader und auf einem Telefon stoppt, welche Teile des Aufbaus (Typografie, Zeilenlänge, Auswahl der Abschnitte, Verständnisprüfung, Tageszeit) müssen konstant gehalten werden, bevor die Werte für Wörter pro Minute vergleichbar sind, und hat jemand ein solches Protokoll lange genug geführt, um zu sehen, ob die Reihenfolge der drei Formate stabil bleibt?
-
Unreal Animation Blueprints: Daten aufbereiten, bevor eine Pose gewählt wird
Animationsvariablen klare Zuständigkeiten geben, Update-Logik von der Pose-Auswertung trennen und für Animationsarbeit auf Worker-Threads unterstützte Datenpfade verwenden.
-
Prüfen, dass ein untersuchtes Build-Artefakt aus der aktuellen Änderung stammt
Verhindern, dass ein Agent eine veraltete Datei, eine Vorschau oder ein Paket als Beleg dafür akzeptiert, dass die aktuelle Quelländerung erfolgreich gebaut und ausgeliefert wurde.
-
Konfigurationsmanagement versus Image Baking: Wo Idempotenz und Drift entscheiden
Konfigurationsmanagement-Tools führen ein laufendes System bei jedem Lauf wieder auf einen deklarierten Zustand zurück, während Image Baking diesen Zustand einmalig beim Build festschreibt. Idempotenz macht die wiederholte Ausführung des ersten Ansatzes sicher; die Wahl zwischen Baking und Konfiguration beim Boot ist letztlich die Entscheidung, wo Drift auftreten darf.
-
Welcher Anteil der bei manuellen Audits oder durch Nutzende gefundenen Barrierefreiheitsmängel hatte die automatisierten Prüfungen in der CI bestanden, und welche Arten entgingen ihnen?
Offene Frage: Die W3C-WAI-Anleitung zu Evaluationswerkzeugen hält fest, dass sich manche Barrierefreiheitsprüfungen nicht automatisieren lassen und manuelles Eingreifen erfordern; bei Websites, die bei jedem Build einen automatisierten Prüfer laufen lassen, welcher Anteil der später bei einem manuellen Audit gefundenen oder von Nutzenden gemeldeten Mängel diesen Prüfer bestanden hatte, und welche Mängeltypen machen diese Lücke aus?
-
Network Bonding und Teaming mit NetworkManager: Modi, Switch-Anforderungen und Überprüfung
Linux Bonding fasst mehrere Netzwerkkarten zu einer logischen Schnittstelle zusammen, doch die Modi stellen sehr unterschiedliche Anforderungen an den vorgelagerten Switch: active-backup braucht keine besondere Konfiguration, 802.3ad/LACP eine eingerichtete Link Aggregation Group. /proc/net/bonding/<name> zeigt, welcher Modus tatsächlich läuft und welche Slaves aktiv sind.
Maschinenlesbar: JSON