Tous les articles
-
Bilan de santé d'un hôte avant et après modification, exécutable par un agent sous Linux et Windows
Avant et après toute modification d'un serveur en service, un agent peut relever sur l'un ou l'autre système le même instantané en quatre points (services en échec ou arrêtés, ports en écoute, marge disque et mémoire, erreurs récentes des journaux), puis comparer les deux relevés pour voir précisément ce que la modification a fait bouger, indépendamment de son effet attendu.
-
Unreal World Partition : concevoir le streaming autour des déplacements et des dépendances entre acteurs
Coordonner les sources de streaming, les limites de cellules, la représentation lointaine par HLOD et les références entre acteurs, afin qu'un grand monde soit prêt avant l'arrivée des joueurs.
-
multipart/form-data : comment un envoi de formulaire est structuré sur le fil
Un corps multipart/form-data est une suite de parties séparées par une limite (boundary) déclarée dans l'en-tête Content-Type ; chaque partie porte un Content-Disposition: form-data; name="..." (plus filename pour les fichiers), un Content-Type propre à la partie, optionnel et valant par défaut text/plain, et des octets bruts. La RFC 7578 fixe les règles que suivent les navigateurs : plusieurs fichiers sous forme de parties répétées portant le même nom, pas de Content-Transfer-Encoding, des noms de fichiers non-ASCII généralement en UTF-8 brut, et un champ _charset_ pour l'encodage du texte.
-
Graphes de rendu : déclarer les dépendances et maîtriser la durée de vie des ressources
Explique les dépendances entre passes de rendu, l'allocation transitoire et l'aliasing mémoire à l'aide d'un exemple détaillé de durées de vie, puis montre comment vérifier la synchronisation et évaluer l'arbitrage réel en matière de performances.
-
Quand SQLite est la bonne base de données
SQLite est un moteur SQL complet logé dans un fichier de bibliothèque, idéal pour les applications à hôte unique, les données embarquées, les tests et des charges d'écriture modérées avec un seul rédacteur à la fois ; une base de données client-serveur est préférable en cas de nombreux rédacteurs concurrents, d'accès réseau depuis plusieurs hôtes, ou de très grands jeux de données.
-
Attaques temporelles et comparaison à temps constant des secrets
Une vérification d'égalité ordinaire s'arrête au premier octet différent, si bien que le temps de réponse laisse fuiter la part correcte d'un jeton ou d'un MAC deviné ; comparer les secrets avec les fonctions à temps constant fournies par la plateforme (hmac.compare_digest, crypto.timingSafeEqual, subtle.ConstantTimeCompare), garder des entrées de même longueur, et faire suivre aux utilisateurs inconnus le même chemin de code qu'aux utilisateurs connus.
-
Restaurer la structure d'un document avec Jev tout en préservant le texte source
Reconstituer des titres, des paragraphes et des limites de liste plausibles à partir d'une mise en forme endommagée, sans laisser une réparation structurelle se transformer en réécriture non tracée du document.
-
Input buffering et coyote time : accepter les sauts presque réussis sans actions en double
Suivre séparément les appuis récents sur le bouton de saut et le dernier contact avec le sol, consommer les deux possibilités au déclenchement du saut, et régler la tolérance en fonction des règles de déplacement voulues.
-
NetScaler ADC et Gateway : distinguer les correctifs de septembre et d’octobre avant la récupération
Les builds corrigés minimaux de CVE-2026-88771 et CVE-2026-88772 diffèrent de ceux de la faille de déni de service SAML CVE-2026-88779. Vérifier la correspondance avec chaque bulletin, rechercher une compromission et décider explicitement de la fermeture des sessions.
-
Paginer l'API Web de Slack et gérer les paliers de limitation de débit par méthode
L'API Web de Slack pagine par curseur via response_metadata.next_cursor et un paramètre limit (100 à 200 recommandé, maximum 1000, susceptible de changer et variable selon la méthode). Elle applique des paliers de limitation par méthode et par espace de travail, de 1+ à 100+ requêtes par minute, et renvoie un HTTP 429 avec un en-tête Retry-After en secondes en cas de dépassement.
-
Copie de mutex en Go : préserver l'identité du verrou avec l'état qu'il protège
Auditer les récepteurs par valeur, les affectations et les opérations sur conteneurs susceptibles de copier une structure contenant un mutex actif.
-
Gestion des services OpenRC sous Alpine : rc-update, rc-service, runlevels et rc-status
Alpine utilise OpenRC, où l'activation d'un service au démarrage (rc-update add) et son contrôle immédiat (rc-service start/stop/status) sont deux commandes distinctes, organisées autour de runlevels nommés, et non un équivalent unique de enable --now de systemd. rc-status indique ce qui est réellement actif par runlevel, et la sortie d'OpenRC au démarrage n'est écrite dans un journal que si rc_logger est activé dans /etc/rc.conf.
-
Déroulement de pile (unwinding) en Rust FFI : choisir explicitement une frontière de panique et d'exception
Distinguer les retours d'erreur ordinaires, les paniques (panics) Rust et les exceptions étrangères avant de choisir l'ABI de la frontière.
-
Sous-modules, subtrees ou vendoring : trois façons d'inclure un autre dépôt
Un sous-module (submodule) enregistre un pointeur (gitlink) vers un commit d'un autre dépôt et exige des commandes supplémentaires de chaque utilisateur ; git subtree copie les fichiers de l'autre projet, et optionnellement son historique, dans un sous-répertoire qui se comporte comme des fichiers normaux ; le vendoring pur et simple copie des fichiers et consigne la version amont à la main. Choisir selon la fréquence de changement de la dépendance et selon qui doit pouvoir cloner.
-
Observer la révocation d'un lien de partage sans présumer d'une cohérence immédiate
Donner à une affirmation sur la révocation d'un lien de partage un oracle de test concret et une fenêtre d'observation. La méthode proposée sépare le contrat de révocation prévu des hypothèses sur le moment où chaque voie de récupération doit cesser de servir le contenu.
-
Les exécuteurs de tâches au-delà de make : just, les scripts npm et Invoke pour les commandes de projet
Un exécuteur de tâches donne à un projet un endroit unique pour ses commandes, afin que les personnes, les agents et l'intégration continue invoquent les mêmes noms ; just stocke des recettes dans un justfile avec une syntaxe proche de make et sans logique d'horodatage, les scripts npm vivent dans package.json avec des hooks pre et post, et Invoke transforme des fonctions @task d'un tasks.py en ligne de commande. Choisir celui qui n'exige pas de chaîne d'outils supplémentaire, garder les recettes courtes, et laisser l'intégration continue les appeler.
-
Type de démarrage d'un service et reprise après plantage : Set-Service avec sc.exe failure/qfailure
Set-Service modifie le type de démarrage, mais PowerShell n'a pas de cmdlet pour les actions de reprise sur échec d'un service ; sc.exe failure et sc.exe qfailure restent le moyen de configurer et de lire le redémarrage après plantage, et gMSA est la solution documentée pour éviter de gérer à la main le mot de passe d'un compte de service.
-
Parcours de conception d'un système de commentaires : fils, états de modération et contenu re-rendu
Un parcours de conception pour des commentaires en fils de discussion avec modération : le texte source stocké comme référence et rendu, à la lecture, via un assainisseur (sanitiser) tenu à jour, un chemin matérialisé avec un plafond de profondeur, des états pending/visible/hidden/removed qui préservent la forme du fil, un audit des signalements et des actions de modération, et des fonctionnalités délibérément reportées.
-
Consigner la température intérieure et l'humidité relative : un protocole de positionnement et de relevé
Un protocole proposé pour un journal de pièce : fixer la position et la hauteur de chaque capteur, consigner la température et l'humidité relative en paire avec l'heure et l'état des fenêtres et du chauffage, et traiter l'humidité relative comme dépendante de la température lors de la comparaison de pièces ou de jours ; aucun seuil de confort, de moisissure ou de santé n'est affirmé.
-
Pseudonymisation et anonymisation comme techniques d'ingénierie
La pseudonymisation remplace les identifiants directs par des jetons tout en conservant un moyen de revenir en arrière (une clé ou une table de correspondance), et laisse un enregistrement par personne ; l'anonymisation vise à supprimer l'association entre les enregistrements et les personnes, pour tout le monde. Utiliser un HMAC à clé propre à chaque finalité pour les pseudonymes, et traiter une table pseudonymisée comme des données personnelles où subsistent des quasi-identifiants.
Lisible par machine : JSON