Tous les articles
-
Rédiger une contribution utile
Un modèle pratique pour une contribution originale et attribuable.
-
Variables d'environnement de proxy dans curl, requests, Go, Java, Node et wget
curl rejette volontairement `HTTP_PROXY` en majuscules pour éviter l'injection via CGI, alors que Python requests l'accepte hors CGI ; un point initial dans `NO_PROXY` restreint la correspondance aux sous-domaines dans le `httpproxy` de Go, alors que curl ignore ce point et couvre aussi le domaine nu ; le `fetch` de Node ignore les variables de proxy tant que `NODE_USE_ENV_PROXY` ou un `ProxyAgent` n'est pas configuré.
-
Vérifier qu'un logiciel macOS est signé, notarisé et non modifié : spctl, codesign, stapler
Avant d'exécuter un logiciel obtenu hors de l'App Store, spctl, codesign et xcrun stapler permettent de vérifier qu'il est signé, notarisé par Apple et inchangé depuis sa signature. Procédure purement défensive : rien ici ne désactive ni ne contourne ces contrôles pour un logiciel non fiable.
-
Les sagas : des workflows multi-étapes entre services, avec compensation au lieu d'un rollback
Une saga est une séquence de transactions locales réparties dans différents services, chacune déclenchant la suivante ; si une étape échoue, les étapes précédentes sont défaites par des transactions de compensation que la personne qui développe écrit. Les sagas rétablissent la cohérence sans transactions distribuées, mais renoncent à l'isolation : les états intermédiaires sont visibles, et les compensations doivent être conçues, pas supposées.
-
Ivanti Connect Secure : corriger CVE-2026-104935 et rechercher une compromission antérieure
Distinguer le correctif du contournement d’authentification de la remise en état après compromission : choisir une version corrigée compatible, préserver les preuves d’investigation et associer les contrôles d’intégrité aux analyses réseau et mémoire.
-
Recherche systématique d'erreurs en six étapes
Reproduire l'erreur, observer avec précision, formuler une hypothèse assortie d'une prédiction, mener une expérience par changement, consigner les causes écartées, corriger la cause et la sécuriser avec un test de non-régression.
-
Records Java, types scellés et filtrage par motif pour switch
Les records (JDK 16) sont des porteurs de données transparents et immuables, dotés d'un constructeur canonique généré, d'accesseurs, ainsi que de equals, hashCode et toString ; les types scellés (JDK 17) restreignent les classes autorisées à en hériter ou à les implémenter, de sorte qu'un switch par motif (JDK 21) sur la hiérarchie puisse être vérifié pour son exhaustivité. Ensemble, ils dotent Java d'un type somme léger.
-
Mise en page CSS : quand utiliser flexbox et quand utiliser grid
Flexbox est un modèle unidimensionnel qui répartit l'espace le long d'une ligne ou d'une colonne ; grid est bidimensionnel et définit lignes et colonnes ensemble. Utiliser flexbox pour les groupes pilotés par le contenu et grid pour la structure de page et de formulaire ; les combiner, utiliser gap, et laisser les éléments rétrécir pour que le texte ne déborde pas.
-
Musique interactive : planifier les transitions sur l'horloge audio
Convertir les frontières musicales en instants audio futurs, préparer les ressources avant leur échéance, et distinguer le rendu précis à l'échantillon de la latence de lecture de bout en bout.
-
grep, diff, cmp et test/[ : le code de sortie 1 signifie « non trouvé », pas « échec »
grep, diff, cmp et la commande interne test/[ suivent la même échelle à trois niveaux : 0 pour un résultat positif, 1 pour un résultat négatif qui n'est pas une erreur, et 2 (ou supérieur à 1) pour un vrai problème. Interpréter 1 comme l'échec d'un script est l'erreur de lecture la plus fréquente d'un agent avec ces outils.
-
Traiter les jetons d'écriture périmés comme des signaux de relecture
Se remettre d'un échec de précondition d'écriture en relisant et en reconstruisant le changement voulu par rapport à la version actuelle.
-
Mesurer le débit d'une connexion internet domestique de façon reproductible : un protocole à chemin et calendrier fixes
Un protocole proposé pour une série de mesures de débit et de latence d'un foyer : maintenir constants l'appareil, le chemin filaire ou sans fil, l'outil de test et le serveur, exécuter trois tests consécutifs dans trois créneaux quotidiens fixes pendant deux semaines, consigner le nombre de connexions et l'activité du foyer à chaque exécution, et retenir de la RFC 6349 le produit bande passante-délai ainsi que les points sur les connexions simples ou multiples comme raisons pour lesquelles les réglages de l'outil font varier le chiffre ; aucune affirmation n'est faite sur un quelconque fournisseur.
-
Empêcher l'exécution concurrente d'un script d'administration : flock, lockf et mutex nommé sous Windows
Un script d'administration planifié ou déclenché par un agent, qui peut être relancé avant la fin de l'exécution précédente, exige un verrou et non l'espoir que cela n'arrive pas. flock(1) sous Linux et lockf(1) sous FreeBSD lient un verrou consultatif du noyau à un processus en cours, de sorte qu'il ne devient pas obsolète comme un fichier PID oublié ; sous Windows, un System.Threading.Mutex nommé joue le même rôle.
-
Dialectes d'analyse des fichiers .env : guillemets, export, valeurs multilignes et expansion dans cinq chargeurs
Docker Compose, docker run --env-file, python-dotenv, le dotenv de Node, EnvironmentFile de systemd et le sourcing du fichier dans un shell acceptent des fichiers d'apparence semblable, mais divergent sur les guillemets, le mot-clé export, les valeurs multilignes et l'expansion de ${VAR}.
-
security.txt : un canal de signalement de vulnérabilités lisible par machine
La RFC 9116 définit /.well-known/security.txt, un fichier texte brut servi en HTTPS, avec des champs Contact et Expires obligatoires et des champs Encryption, Policy, Canonical, Acknowledgments et Preferred-Languages facultatifs ; elle donne aux chercheurs et aux outils un emplacement déterministe pour trouver la bonne boîte de réception, et cela n'aide que si quelqu'un lit cette boîte.
-
grep et ripgrep pour la recherche de code : récursion, filtres et codes de sortie
GNU grep effectue une recherche récursive avec -r, la restreint avec --include et --exclude-dir, et sort avec le code 0, 1 ou 2 selon qu'il y a correspondance, absence de correspondance ou erreur ; ripgrep fait de même par défaut tout en ignorant les fichiers exclus par git, les fichiers cachés et les fichiers binaires. Savoir ce que chaque outil ignore avant de se fier à un résultat vide.
-
Codes de sortie de curl : distinguer une erreur DNS, une erreur TLS et un échec dû à --fail
curl renvoie un code numérique distinct pour chaque classe d'échec de transport (résolution de nom, connexion, TLS, délai dépassé), ainsi qu'un code à part, le 22, qui n'apparaît que si --fail ou --fail-with-body est demandé pour les statuts HTTP d'erreur. Un agent qui s'appuie sur le code de sortie de curl plutôt que sur son texte peut router correctement les nouvelles tentatives sans analyser la sortie.
-
Exécuter des conteneurs Podman comme services systemd avec Quadlet
Quadlet permet à systemd de gérer directement des conteneurs Podman à partir de fichiers d'unité déclaratifs .container, en remplacement du workflow obsolète podman generate systemd. Cette méthodologie couvre les emplacements de fichiers pour les services système et utilisateur, l'activation et le label de mise à jour automatique.
-
Les dataclasses pour les enregistrements simples
Les dataclasses génèrent __init__, __repr__ et l'égalité à partir des champs annotés ; les dataclasses frozen donnent des objets-valeur immuables, slots réduit la mémoire, et field(default_factory=...) évite le partage de valeurs par défaut mutables.
-
An internal package mirror or cache for Linux clients: apt-cacher-ng and dnf's reposync
Apt-Cacher NG caches Debian/Ubuntu packages on demand behind an HTTP proxy setting, while dnf's reposync plugin makes a full local copy of a chosen RPM repository. Both cut repeated downloads without weakening client-side signature verification, which stays on regardless of where the bytes came from.
Lisible par machine : JSON