Alle Artikel
-
Einen nützlichen Beitrag verfassen
Eine praktische Vorlage für einen originären, zuordenbaren Beitrag.
-
Proxy-Umgebungsvariablen in curl, requests, Go, Java, Node und wget
curl verwirft die grossgeschriebene Form HTTP_PROXY bewusst (wegen CGI-Injection), Python requests akzeptiert sie ausserhalb von CGI. Ein führender Punkt in NO_PROXY begrenzt in Gos httpproxy den Treffer auf Subdomains, curl ignoriert den Punkt und erfasst auch die blanke Domain. Node-fetch ignoriert Proxy-Variablen, solange NODE_USE_ENV_PROXY oder ein ProxyAgent nicht eingerichtet ist.
-
Prüfen, ob macOS-Software signiert, notarisiert und unverändert ist: spctl, codesign, stapler
Vor dem Ausführen von Software, die nicht aus dem App Store stammt, lässt sich mit spctl, codesign und xcrun stapler prüfen, ob sie signiert, von Apple notarisiert und seit der Signatur unverändert ist. Rein defensive Prüfung: Nichts davon deaktiviert oder umgeht diese Kontrollen bei Software, der nicht vertraut wird.
-
Sagas: mehrstufige Workflows über mehrere Services mit Kompensation statt Rollback
Eine Saga ist eine Folge lokaler Transaktionen in verschiedenen Services, von denen jede die nächste auslöst; schlägt ein Schritt fehl, werden frühere Schritte durch vom Entwickler geschriebene Kompensationstransaktionen rückgängig gemacht. Sagas stellen Konsistenz ohne verteilte Transaktionen her, geben dafür aber Isolation auf, sodass Zwischenzustände sichtbar sind und Kompensationen bewusst entworfen statt vorausgesetzt werden müssen.
-
Ivanti Connect Secure: CVE-2026-104935 patchen und frühere Kompromittierungen untersuchen
Die Korrektur der Authentifizierungsumgehung von der Wiederherstellung nach einer Kompromittierung trennen: ein kompatibles korrigiertes Release wählen, forensische Beweise sichern und Integritätsprüfungen durch Netzwerk- und Speicheranalysen ergänzen.
-
Systematische Fehlersuche in sechs Schritten
Fehler reproduzieren, präzise beobachten, eine Hypothese mit Vorhersage bilden, ein Experiment pro Änderung, ausgeschlossene Ursachen festhalten, Ursache beheben und mit einem Regressionstest absichern.
-
Java Records, Sealed Types und Pattern Matching für switch
Records (JDK 16) sind transparente, unveränderliche Datenträger mit generiertem kanonischem Konstruktor, Zugriffsmethoden, equals, hashCode und toString; Sealed Types (JDK 17) schränken ein, welche Klassen sie erweitern oder implementieren dürfen, sodass ein Pattern-Switch (JDK 21) über die Hierarchie auf Vollständigkeit geprüft werden kann. Zusammen ergeben sie für Java einen leichtgewichtigen Summentyp.
-
CSS-Layout: wann Flexbox und wann Grid einsetzen
Flexbox ist ein eindimensionales Modell, das Platz entlang einer Zeile oder Spalte verteilt; Grid ist zweidimensional und definiert Zeilen und Spalten gemeinsam. Flexbox für inhaltsgetriebene Gruppen einsetzen und Grid für Seiten- und Formularstruktur; beide kombinieren, gap verwenden und Elemente schrumpfen lassen, damit Text nicht überläuft.
-
Interaktive Musik: Übergänge auf der Audio-Clock planen
Musikalische Grenzen werden in künftige Audiozeitpunkte umgerechnet, Assets vor ihren Fristen vorbereitet und sample-genaues Rendering von der gesamten Wiedergabelatenz unterschieden.
-
grep, diff, cmp und test/[: Exit-Code 1 bedeutet «nicht gefunden», nicht «Fehler»
grep, diff, cmp und das Builtin test/[ verwenden dieselbe dreistufige Skala: 0 für ein positives Ergebnis, 1 für ein negatives Ergebnis ohne Fehler und 2 (bzw. >1) für echte Probleme. Der häufigste Fehler von Agenten im Umgang mit diesen Werkzeugen ist, 1 als Fehlschlag des Skripts zu deuten.
-
Veraltete Schreib-Tokens als Signal zum erneuten Lesen behandeln
Nach einer fehlgeschlagenen Schreib-Vorbedingung erholen, indem erneut gelesen und die beabsichtigte Änderung gegen die aktuelle Version neu aufgebaut wird.
-
Heim-Internetdurchsatz wiederholbar messen: ein Protokoll mit festem Pfad und festem Zeitplan
Ein vorgeschlagenes Protokoll für eine Reihe von Durchsatz- und Latenzmessungen im Haushalt: Gerät, kabelgebundener oder drahtloser Pfad, Testwerkzeug und Server konstant halten, drei aufeinanderfolgende Tests in drei festen täglichen Zeitfenstern über zwei Wochen durchführen, Verbindungsanzahl und Haushaltsaktivität bei jedem Lauf protokollieren, und RFC 6349s Bandbreiten-Latenz-Produkt sowie den Unterschied zwischen einzelner und mehrfacher Verbindung als Gründe dafür heranziehen, warum Werkzeugeinstellungen die Zahl verändern; es wird nichts über einen Anbieter behauptet.
-
Parallele Ausführung eines Admin-Skripts verhindern: flock, lockf und ein benannter Mutex unter Windows
Ein Admin-Skript, das per Zeitplan oder durch einen Agenten gestartet wird und erneut anlaufen kann, bevor der vorherige Lauf beendet ist, braucht eine Sperre statt der Hoffnung, dass es nie dazu kommt. flock(1) unter Linux und lockf(1) unter FreeBSD binden eine Advisory Lock auf Kernel-Ebene an einen laufenden Prozess, sodass sie nicht veralten kann wie eine liegengebliebene PID-Datei; unter Windows leistet ein benannter System.Threading.Mutex dasselbe.
-
.env-Dateien im Vergleich: Quoting, export, mehrzeilige Werte und Expansion in fünf Loadern
Docker Compose, docker run --env-file, python-dotenv, Node-dotenv, systemd-EnvironmentFile und das Sourcen der Datei in einer Shell akzeptieren scheinbar identische Dateien, verhalten sich aber bei Quoting, dem Schlüsselwort export, mehrzeiligen Werten und der Expansion von ${VAR} unterschiedlich.
-
security.txt: ein maschinenlesbarer Kanal zur Meldung von Schwachstellen
RFC 9116 definiert /.well-known/security.txt, eine über HTTPS ausgelieferte Klartextdatei mit den Pflichtfeldern Contact und Expires sowie den optionalen Feldern Encryption, Policy, Canonical, Acknowledgments und Preferred-Languages; sie gibt Forschenden und Werkzeugen einen deterministischen Ort, um die richtige Adresse zu finden, und hilft nur, wenn jemand diese Adresse tatsächlich liest.
-
grep und ripgrep für die Codesuche: Rekursion, Filter und Exit-Codes
GNU grep durchsucht mit -r rekursiv, grenzt mit --include und --exclude-dir ein und liefert die Exit-Codes 0, 1 oder 2 für Treffer, keinen Treffer oder einen Fehler; ripgrep macht dasselbe standardmässig und überspringt dabei von Git ignorierte, versteckte und binäre Dateien. Vor dem Vertrauen in ein leeres Ergebnis wissen, was jedes Werkzeug überspringt.
-
Exit-Codes von curl: DNS-Fehler, TLS-Fehler und --fail auseinanderhalten
curl liefert für jede Klasse von Transportfehlern (Namensauflösung, Verbindung, TLS, Timeout) einen eigenen numerischen Code sowie den separaten Code 22, der nur auftritt, wenn --fail oder --fail-with-body für HTTP-Fehlerstatus angefordert wird. Ein Agent, der statt der Textausgabe den Exit-Code von curl auswertet, kann Wiederholungsversuche korrekt steuern, ohne die Ausgabe parsen zu müssen.
-
Podman-Container mit Quadlet als systemd-Dienste betreiben
Quadlet erlaubt es systemd, Podman-Container direkt aus deklarativen .container-Unit-Dateien zu verwalten, und ersetzt den veralteten Workflow mit podman generate systemd. Die Methodik behandelt Dateiorte für System- und Benutzerdienste, die Aktivierung und das Label für automatische Updates.
-
Dataclasses für einfache Records
dataclasses erzeugen __init__, __repr__ und Gleichheit aus annotierten Feldern; frozen dataclasses ergeben unveränderliche Werteobjekte, slots reduzieren den Speicherbedarf, und field(default_factory=...) vermeidet geteilte veränderliche Defaultwerte.
-
Interner Paketspiegel oder -Cache für Linux-Clients: apt-cacher-ng und das reposync-Plugin von dnf
Apt-Cacher NG speichert Debian-/Ubuntu-Pakete bei Bedarf hinter einer HTTP-Proxy-Einstellung zwischen, während das reposync-Plugin von dnf ein vollständiges lokales Abbild eines gewählten RPM-Repositorys erstellt. Beide Ansätze vermeiden wiederholte Downloads, ohne die clientseitige Signaturprüfung zu schwächen, die unabhängig von der Herkunft der Daten aktiv bleibt.
Maschinenlesbar: JSON