Alle Artikel
-
Ressourcenzuständigkeit bei Rust-FFI: den fremden Konstruktor mit seinem tatsächlichen Destruktor paaren
Allokation, Freigabe und Callback-Lebensdauer in einem engen Rust-Wrapper um fremde Ressourcen explizit machen.
-
Bulk-Operationen statt Schleifen pro Zeile: Roundtrips, Transaktionen und COPY
Eine Schleife, die pro Zeile ein Statement sendet, zahlt pro Zeile einen Roundtrip, ein Parsing und oft einen Commit; eine Bulk-Operation sendet die gesamte Menge in einem Statement, einem Stream oder einer Transaktion. PostgreSQLs eigene Anleitung rät, nur einmal zu committen, COPY für das Laden zu verwenden und Indizes erst nach dem Laden aufzubauen; Client-Bibliotheken bieten aus demselben Grund executemany und copy an.
-
Netzwerkdurchsatz und Retransmits unter Linux: ss -ti, nstat und iperf3
ss -ti zeigt die Retransmission- und RTT-Werte einer einzelnen Verbindung, nstat liefert vergleichbare Zähler hostweit aus den SNMP- und erweiterten TCP-Statistiken des Kernels, und iperf3 misst den erreichbaren Durchsatz direkt, wenn die Retransmits niedrig sind, der Durchsatz aber trotzdem enttäuscht.
-
Ein erster Game Day: ein Chaos-Experiment mit Hypothese, Blast Radius und Abbruchregel
Eine erste Fehlerinjektionsübung als geplantes, angekündigtes Experiment durchführen: den stabilen Zustand als messbare Grösse definieren, die Hypothese aufstellen, dass er unter einem bestimmten Fehler bestehen bleibt, den Blast Radius begrenzen, eine Abbruchbedingung festlegen, injizieren und festhalten, was das System und die Menschen getan haben; die Principles of Chaos Engineering geben die vier Schritte vor, und das Google-SRE-Buch beschreibt Katastrophen-Rollenspiele als wöchentliches Ritual.
-
Über Komplexität nachdenken, bevor optimiert wird
Asymptotische Komplexität sagt voraus, wie die Laufzeit mit der Eingabegrösse wächst; quadratische Schleifen, wiederholte lineare Suchen und unbeschränkte Rekursion im Code-Review zu erkennen, verhindert die meisten Performance-Vorfälle, bevor ein Profiling nötig wird.
-
HDR-Beleuchtung, Belichtung, Tone Mapping und Display-Ausgabe getrennt behandeln
Mit klar getrennten Stufen bleiben helle Szeneninformationen erhalten, die Belichtung lässt sich vorhersagbar festlegen, und es entsteht ein Signal, das zum Zieldisplay passt.
-
Ein Schrittzähler am Handgelenk und ein Telefon in der Hosentasche weichen an Tagen mit vielen kurzen Gehphasen und belegten Händen stärker voneinander ab
Hypothese: Zwei von einer Person getragene Consumer-Schrittzähler, einer am Handgelenk und einer in der Hosentasche, weichen an Tagen, die das Tagebuch als «viele kurze Gänge» oder «Hände belegt» (Kinderwagen, Taschen, Einkaufswagen) markiert, um einen grösseren Anteil voneinander ab als an Tagen mit wenigen langen Gängen, weil die beiden Geräte unterschiedliche Körperbewegungen erfassen; als Test wird ein Tageslog mit Angaben zu beiden Geräten vorgeschlagen, und es wird keine Messung berichtet.
-
Deterministische Serialisierung von Protocol Buffers ist keine kanonische Nachrichtenidentität
Vermeiden, beliebige Protobuf-Bytes als stabilen semantischen Fingerabdruck über Laufzeitumgebungen und Versionen hinweg zu verwenden.
-
Den ausführenden Dienst von der vertretenen Person in Delegationstests trennen
Eine delegierte Aktion so testen, dass sowohl die Identität des ausführenden Dienstes als auch die vertretene Person im Testorakel sichtbar sind. Diese vorgeschlagene Methode vermeidet, eine erfolgreiche Dienst-Authentifizierung als ausreichenden Beleg für die Befugnis der vertretenen Person zu behandeln.
-
HTTP-Keep-Alive und Verbindungswiederverwendung: Pools, Idle-Timeouts und das Wettrennen um die veraltete Verbindung
HTTP/1.1 hält eine Verbindung für weitere Anfragen offen, sofern kein Connection: close gesendet wird, was ab der zweiten Anfrage jeweils einen TCP- und TLS-Handshake einspart; der Client muss über die Lebensdauer des Prozesses einen Pool führen, jeden Antwort-Body lesen und sein Idle-Timeout unter dem des Servers ansetzen, damit er keine bereits vom Server geschlossene Verbindung wiederverwendet.
-
APT-Pinning: ein Paket mit Preferences-Dateien auf einer bestimmten Version oder Quelle halten
Mit APT-Pinning lässt sich ein einzelnes Paket zurückhalten, gezielt aus einer Nicht-Standard-Suite beziehen oder vor künftigen Änderungen durch apt upgrade schützen. Die Konfiguration erfolgt in einzelnen Dateien unter /etc/apt/preferences.d statt in einer gemeinsamen Datei; geprüft wird mit apt-cache policy.
-
AdamW: Warum sich entkoppelter Weight Decay von einem L2-Strafterm unterscheidet
AdamW verkleinert die Parameter getrennt vom adaptiven Gradientenschritt, sodass der Decay-Term nicht in Adams Momentschätzungen einfliesst. Lernrate, Anzahl der Updates und die Wahl der Parametergruppen beeinflussen die Regularisierung dennoch.
-
NTFS-Berechtigungen mit icacls und Get-Acl/Set-Acl lesen, vergeben und sichern
icacls liest und vergibt NTFS-Berechtigungen und kodiert die Vererbung über die Flags (OI)(CI); mit icacls /save und /restore lässt sich vor einer Änderung ein ganzer ACL-Baum sichern und wieder einspielen. Get-Acl/Set-Acl liefern dieselben Informationen als PowerShell-Objekte.
-
Nach Fokussierung auf die schlechtesten Fälle gemessene Verbesserungen sind teilweise Regression zur Mitte
Hypothese: Wenn ein technisches Vorhaben anhand einer verrauschten Kennzahl die am schlechtesten bewerteten Endpunkte, Tests, Hosts oder Mandanten auswählt und deren Verbesserung nach einer Intervention berichtet, wäre ein erheblicher Teil des berichteten Gewinns auch ohne die Intervention eingetreten, weil auf extreme Messwerte tendenziell weniger extreme folgen. Ein vorgeschlagener Test mit einer unberührten Kontrollgruppe wird beschrieben.
-
Shader-Ableitungen: gültige Gradienten über Verzweigungen und UV-Nähte hinweg erhalten
Anleitung zur Diagnose instabiler Textur-Footprints: Unterschieden wird zwischen kontinuierlichen Koordinaten, expliziten Gradienten und Ableitungsoperationen in divergentem Kontrollfluss von Fragment-Shadern.
-
Service Level Objectives und Error Budgets
Ein SLO ist ein Zielwert für einen Service-Level-Indikator wie Verfügbarkeit oder Latenz; die Differenz zwischen dem Zielwert und 100% ist ein Error Budget, das bestimmt, wie viel Risiko Releases eingehen dürfen.
-
Ein selbstprüfendes Ersttags-Setup-Skript: Bootstrap, Doctor, Smoke-Test
Ein Befehl nach dem Klonen erzeugt entweder eine funktionierende Umgebung oder eine präzise Liste dessen, was fehlt und wie es behoben wird: Ein nur lesendes Doctor-Skript prüft jede Voraussetzung, ein idempotentes Bootstrap installiert nur das, was die Prüfungen als fehlend melden, und ein Smoke-Test entscheidet über den Exit-Status; die CI führt es auf einer sauberen Maschine aus, damit es zwischen Neueinsteigenden nicht veraltet.
-
Datenqualitätsprüfungen: Aktualität, Menge, Nullwerte und Eindeutigkeit als Mindestsatz
Vier billige Prüfungen fangen die meisten kaputten Ladeläufe: Ist die Quelle frisch genug, kam eine plausible Zeilenzahl, sind Schlüssel und Kennzahlen gefüllt, ist die erklärte Körnung eindeutig? Jede Prüfung als Abfrage formulieren, die fehlerhafte Zeilen liefert, nach dem Laden und vor dem Veröffentlichen ausführen, Warnung und Blockade trennen.
-
Konfidenzintervalle im Überblick: Was das Intervall aussagt und was nicht
Ein 95%-Konfidenzintervall stammt aus einem Verfahren, das bei wiederholten Stichproben in 95% der Fälle den wahren Wert einschliesst; ein bestimmtes Intervall enthält ihn entweder oder nicht. Seine Breite schrumpft mit der Wurzel aus dem Stichprobenumfang und wächst mit der Streuung. Es als den Bereich der mit den Daten verträglichen Werte lesen, es neben jeder Schätzung angeben und beim Vergleichen das Intervall einer Differenz berechnen.
-
Sichere Archivextraktion: Path Traversal bei zip und tar
Archiveinträge können Namen wie ../../etc/passwd oder absolute Pfade und Symlinks tragen; erst extrahieren, nachdem der jeweilige Zielpfad aufgelöst und geprüft wurde, dass er innerhalb des Zielverzeichnisses bleibt, Links, die nach aussen zeigen, ablehnen und Gesamtgrösse sowie Anzahl der Einträge begrenzen.
Maschinenlesbar: JSON