Alle Artikel
-
Range-Requests für fortsetzbare Downloads bedienen
Ein Server, der Accept-Ranges: bytes ankündigt, auf Range: bytes=start-end mit 206 Partial Content und Content-Range antwortet, If-Range gegen ein starkes ETag prüft und bei nicht erfüllbaren Bereichen 416 mit Content-Range: bytes */length zurückgibt, ermöglicht es Clients, unterbrochene Downloads fortzusetzen und Teile grosser Dateien zu lesen. Diese Schritte decken die Serverseite, die Clientseite und die Prüfungen ab.
-
Kontosperre und Passwortqualität unter Linux mit pam_faillock und pwquality
pam_faillock sperrt ein Konto nach wiederholten fehlgeschlagenen Anmeldungen, der Befehl faillock zeigt diesen Zustand an oder setzt ihn zurück; pam_pwquality erzwingt Regeln für die Passwortstärke aus pwquality.conf. Beide werden unter RHEL-Derivaten über authselect und unter Debian/Ubuntu über pam-auth-update in PAM eingebunden, nicht durch direktes Bearbeiten des PAM-Stacks.
-
Warum NTP weiterhin in virtuellen Maschinen läuft, trotz Guest Agents und paravirtualisierter Uhren
Virtuelle Maschinen erhalten auf mehreren Ebenen zeitbezogene Unterstützung (kvm-clock, Guest Agents, Hyper-V Integration Services), doch keine davon ersetzt einen NTP- oder chrony-Client im Gast. Der Artikel erklärt, was jede Ebene tatsächlich leistet und warum die Zeitsynchronisation Aufgabe des Gastbetriebssystems bleibt.
-
Übergabe der Maintainer-Rolle und Bus-Faktor: was eine Nachfolgeperson am ersten Tag können muss
Ein Projekt überlebt seine Maintainer-Person, wenn eine zweite Person bereits jedes Konto und jeden Schlüssel besitzt, ein Release allein anhand der schriftlich festgehaltenen Schritte durchführen kann und weiss, wo Entscheidungen festgehalten sind. PEP 541 zeigt, was sonst auf PyPI geschieht: Ein Projekt gilt erst dann als verlassen, wenn die besitzende Person unerreichbar ist, zwölf Monate lang keine Version erschienen ist und die Startseite keine Aktivität zeigt, und erst dann kann es gemäss der Regel für verlassene Projekte an eine neue besitzende Person übergeben werden. Der Repository-Transfer von GitHub verschiebt Issues, Pull Requests, Sterne und Watcher zusammen mit dem Code.
-
Vorschauumgebungen pro Branch: eine deployte Kopie pro Pull Request, abgebaut beim Merge
Jedem Pull Request eine laufende Kopie der Anwendung unter einer eigenen URL geben, einmal pro Commit gebaut, benannt nach der Pull-Request-Nummer, mit dem lokalen Seed befüllt und mit Sandbox-Versionen von Drittanbietern verbunden; die URL im Pull Request veröffentlichen, die Anzahl gleichzeitiger Umgebungen begrenzen und die Kopie samt Daten beim Merge, Schliessen oder bei Inaktivität löschen.
-
Ein persönliches Entscheidungsjournal: den Eintrag schreiben, bevor das Ergebnis bekannt ist
Ein vorgeschlagenes Format für das persönliche Entscheidungsjournal eines Individuums: ein Eintrag pro nicht trivialer Entscheidung, geschrieben vor dem Handeln, mit den erwogenen Optionen, dem erwarteten Ergebnis, der als Zahl angegebenen Zuversicht und einem Überprüfungsdatum; die spätere Überprüfung vergleicht Erwartung mit Ergebnis und trennt die Qualität der Entscheidung vom Glück des Ausgangs.
-
Eine persönliche Wissensbasis als Klartext-Ordner: Inbox, Notizen, Quellen, Projekte, Archiv
Eine Ordnerstruktur für eine persönliche Wissensbasis, die eine Person oder ein Agent über Jahre führen kann: fünf oberste Ordner mit unterschiedlicher Lebensdauer, eine Notiz pro Datei mit stabiler Kennung und kleinem Kopfbereich, eine von Hand gepflegte Indexdatei sowie eine Archivierungsregel statt Löschen; die Struktur bleibt flach, sodass Suche und Verlinkung nicht davon abhängen, wo eine Datei liegt.
-
Arbeiten in einem grossen Repository mit Sparse Checkout und Partial Clone
Sparse Checkout begrenzt, welche Verzeichnisse im Arbeitsverzeichnis erscheinen (der Cone-Modus listet Verzeichnisse auf), Partial Clone mit --filter=blob:none verschiebt das Herunterladen von Dateiinhalten, bis sie gebraucht werden, und Shallow Clone kürzt die Historie; die drei lösen unterschiedliche Probleme und lassen sich kombinieren, doch Partial Clone braucht den Promisor-Remote online.
-
Zustandsändernde GET-Endpunkte sind die Hauptquelle ungewollter Aktionen automatisierter Clients
Hypothese: In Webanwendungen, die Zustandsänderungen über GET auslösen (Aktionslinks in E-Mails, page?do=delete, Ein-Klick-Genehmigungen), werden die meisten Zustandsänderungen ohne zugehörige Nutzersitzung durch automatisierte Clients verursacht – etwa Link-Prefetcher, E-Mail-Sicherheitsscanner, Crawler und wiederholende HTTP-Bibliotheken –, von denen RFC 9110 ausdrücklich erwartet, dass sie URIs mit sicherer Methode frei abrufen und idempotente Anfragen nach Fehlschlägen wiederholen; werden diese Aktionen hinter POST verschoben, verschwindet diese Klasse fast vollständig.
-
Schädliches Paket installiert: Ausführung eindämmen, bevor Zugangsdaten ersetzt werden
Vorgeschlagene Reihenfolge für die Reaktion auf schädliche npm- oder Python-Pakete: Ausführung und Veröffentlichung stoppen, Beweise sichern, gefährdete Zugangsdaten von einem sauberen System aus widerrufen, Repositories auf dauerhafte Verankerungen prüfen, neu aufbauen und die Wiederherstellung überprüfen.
-
JSON Lines: ein Wert pro Zeile für Logs, Datensätze und gestreamte Antworten
JSON Lines (auch NDJSON genannt) setzt einen vollständigen JSON-Wert pro Zeile, UTF-8 ohne Byte Order Mark und mit Zeilenumbruch abgeschlossen; Dateien lassen sich anhängen, aufteilen, mit grep durchsuchen und komprimieren, und ein abgeschnittener Stream verliert nur seine letzte Zeile. RFC 7464 JSON Text Sequences fügen ein Record-Separator-Byte zur Wiederherstellung hinzu. Beides anstelle eines einzigen grossen JSON-Arrays verwenden, sobald Datensätze einzeln erzeugt oder konsumiert werden.
-
Parallax Occlusion Mapping: Strahlverfolgung im Höhenfeld mit vorhersehbaren Grenzen
Blickrichtungsabhängige Schnittpunkte mit einem Höhenfeld nutzen, um Oberflächendetails zu positionieren, und dabei die Grenzen bei Skalierung, Abtastung und Silhouette ausdrücklich berücksichtigen.
-
Ein Fahrtenprotokoll für Auto oder Fahrrad: Distanz, Dauer und Bedingungen mit angegebenem Messinstrument
Ein vorgeschlagenes Protokoll für eine Aufzeichnung pro Fahrt: das Instrument (Kilometerzähler, Radsensor mit seiner Umfangseinstellung oder eine GPS-App) im Kopfeintrag benennen und nie Instrumente in einer Distanzspalte mischen, Start und Ende im RFC-3339-Format mit Zeitstempel versehen, Route, Halte und Bedingungen protokollieren und die Streuung bei wiederholten Routen als erwartbar behandeln, da gps.gov festhält, dass sich die Smartphone-Genauigkeit in der Nähe von Gebäuden, Brücken und Bäumen verschlechtert.
-
Feature-Flag-Dienst im Detail: Regelwerke, lokale Auswertung und stabile Prozent-Rollouts
Ein Design-Durchgang für einen Flag-Dienst: Flag-Definitionen, ausgeliefert als ein versioniertes Regelwerk pro Umgebung, SDKs, die lokal cachen und auswerten, ein Auswertungskontext fürs Targeting, Bucketing über einen stabilen Hash, damit Nutzer während eines Rollouts nie wechseln, vorab ausgewertete Werte für nicht vertrauenswürdige Clients sowie ein Reporting, das tote Flags findet.
-
Integrierten OpenSSH Server unter Windows Server installieren und absichern
Add-WindowsCapability installiert das Feature OpenSSH Server. Die Datei sshd_config liegt unter %ProgramData%\ssh. Öffentliche Schlüssel von Administratoren gehören in administrators_authorized_keys, deren ACL eingeschränkt sein muss, sonst ignoriert der Server sie. DefaultShell legt fest, was eine SSH-Sitzung tatsächlich ausführt.
-
Snapshot Interpolation: Eine stabile Zeitachse für entfernte Objekte durch Pufferung
Entfernten Zustand zwischen zeitgestempelten Snapshots darstellen, eine Verzögerung wählen, die Netzwerk-Jitter verträgt, und fehlende Samples behandeln, ohne Interpolation mit Prediction zu verwechseln.
-
NuGet-Abhängigkeiten pinnen: PackageReference, zentrale Paketverwaltung und packages.lock.json
NuGet löst beim Restore die niedrigste zutreffende Version jedes Pakets auf, sodass ein Restore driften kann, wenn neue Versionen oder gleitende Bereiche auftauchen; ein wiederholbarer Build deklariert Versionen einmalig in Directory.Packages.props, aktiviert RestorePackagesWithLockFile, damit packages.lock.json den vollständigen Abschluss festhält, committet die Lock-Datei für Anwendungen und restored in CI mit --locked-mode.
-
Annahmen als erstklassige Daten festhalten
Annahmen an die Entscheidungen knüpfen, die von ihnen abhängen, mit einer Prüfmethode und einem Auslöser für eine erneute Überprüfung.
-
__slots__ und slots=True-Dataclasses: kleinere Instanzen mit festen Attributen
Das Deklarieren von __slots__ ersetzt das instanzbezogene __dict__ durch festen Speicher, spart Speicher und weist falsch geschriebene Attribute zurück; @dataclass(slots=True) erzeugt es aus den Feldern, gibt aber eine neue Klasse zurück, was super() ohne Argumente bricht und weakref_slot=True für schwache Referenzen erfordert. Jede Basisklasse muss ebenfalls Slots deklarieren.
-
Build-Caching in CI: Schlüssel, Restore-Fallbacks und Cache-Vergiftung
Ein CI-Cache wird über einen Hash der Lockfile-Datei geschlüsselt, mit geordneten Fallback-Schlüsseln, ist auf Branches begrenzt, wobei der Default-Branch als gemeinsamer Elternteil dient, und wird nach Grösse oder Alter geräumt; Docker-Layer-Caches müssen in CI ausdrücklich exportiert und importiert werden. Caches sind nicht signiert, daher kann alles, was in einen vertrauenswürdigen Scope schreiben kann, Code in spätere Builds einschleusen.
Maschinenlesbar: JSON