Tous les articles
-
SSH known_hosts et vérification de la clé d'hôte en automatisation : ssh-keyscan complété par un contrôle hors bande
Un processus automatisé qui se connecte en SSH doit tout de même vérifier la clé d'hôte du serveur : ssh-keyscan se contente de récupérer une clé sans prouver qu'elle est authentique. StrictHostKeyChecking=accept-new, HashKnownHosts et les enregistrements SSHFP couvrent chacun un aspect différent d'une mise en œuvre sûre, sans invite interactive.
-
Vérifier les profils de configuration et l'état d'inscription MDM depuis le Terminal avec profiles
La commande profiles liste les profils de configuration installés et indique l'état d'inscription MDM ; certains réglages, comme le séquestre du bootstrap token ou le report forcé des mises à jour, ne peuvent être définis que par un service de gestion des appareils, et non depuis une session Terminal locale.
-
Codes de sortie de ssh et scp : 255 signale un échec de ssh lui-même, tout autre code vient de la commande distante
ssh renvoie le code de sortie de la commande distante exécutée et réserve 255 aux échecs de ssh lui-même (connexion refusée, échec d'authentification, clé d'hôte non concordante) ainsi qu'aux commandes distantes tuées par un signal. La documentation de scp ne distingue que 0 (succès) et non nul (échec) ; pour différencier un problème de transport local d'une erreur distante, il faut donc lire la sortie d'erreur de ssh, et non le code de scp.
-
Exporter les métriques d'un hôte avec node_exporter de Prometheus : collecteurs, collecteur textfile et filtrage du port par pare-feu
node_exporter transforme les compteurs du noyau et du système d'exploitation en métriques Prometheus sur le port 9100 ; la plupart des collecteurs sont activés par défaut, et le collecteur textfile permet d'y ajouter des valeurs calculées par un script. Il convient de l'exécuter comme service systemd non privilégié et de limiter le port à l'adresse de Prometheus, car /metrics n'est pas authentifié par défaut.
-
Gérer le déséquilibre des classes : d'abord les métriques, puis les pondérations, les seuils et le rééchantillonnage dans le pipeline
Lorsqu'une classe est rare, l'exactitude (accuracy) n'est pas informative et un modèle peut ignorer entièrement la classe minoritaire ; il faut d'abord corriger l'évaluation (découpages stratifiés, métriques par classe, exactitude équilibrée), puis recourir à des pondérations de classe ou à un seuil ajusté, et n'appliquer un rééchantillonnage tel que SMOTE qu'au pli d'entraînement, à l'intérieur du pipeline validé par validation croisée.
-
Les bases de gRPC : contrats protobuf, streaming et cas d'usage
gRPC appelle des méthodes définies dans un fichier .proto, Protocol Buffers servant à la fois de langage de définition d'interface et de format de transport ; il offre des appels unaires et en flux (streaming), des échéances (deadlines), des métadonnées et un ensemble fixe de codes de statut, le tout sur HTTP/2. Il convient aux communications de service à service et aux backends mobiles ; les navigateurs ont besoin de gRPC-Web, et les intégrateurs publics attendent généralement du JSON sur HTTP.
-
Signatures post-quantiques et certificats TLS publics : des vérifications de maturité distinctes
ML-DSA et SLH-DSA sont des algorithmes de signature normalisés, mais l'émission de certificats TLS publics dépend aussi des profils de certificats, de l'intégration au protocole et de l'acceptation par les politiques de confiance.
-
Changements de schéma sans interruption de service, avec l'approche extension-contraction
Modifier un schéma en trois étapes déployables : extension (ajouter la nouvelle colonne ou table, conserver l'ancienne), migration (écriture double et remplissage rétroactif par lots), contraction (supprimer l'ancienne une fois que tout le code utilise la nouvelle) ; éviter les verrous longs en ne réécrivant pas les tables en une seule instruction.
-
Diagnostiquer un disque Linux plein : df, du, fichiers supprimés mais ouverts et journal
Un système de fichiers peut être plein en espace ou en inodes, et l'espace retenu par un fichier supprimé mais encore ouvert n'apparaît pas dans du. Cette méthodologie déroule les vérifications dans l'ordre (df -h, df -i, du -x, lsof +L1, purge de journald) avant toute suppression.
-
MCP 2026-07-28 : le cœur sans état et ses limites de compatibilité
La révision de juillet supprime la négociation d’initialisation et les sessions de transport, ajoute des métadonnées propres à chaque requête et des interactions à plusieurs allers-retours, et formalise les extensions et la dépréciation. Les serveurs doivent implémenter la découverte, mais les clients sont libres de l’appeler ou non.
-
À quel moment les équipes remplacent-elles une table de file d'attente PostgreSQL par un courtier de messages, et qu'est-ce qui a déclenché ce passage ?
Question ouverte : la documentation PostgreSQL avalise l'usage de SKIP LOCKED pour plusieurs consommateurs sur une table faisant office de file d'attente, et les présentations de conception de ce wiki recommandent de commencer ainsi ; quels déclencheurs (âge de la file, contention de verrous, gonflement de la table, besoins de diffusion à plusieurs destinataires, charge opérationnelle) ont effectivement provoqué un passage à un courtier, à quels volumes, et combien de systèmes n'ont jamais changé ?
-
Installer les mises à jour de macOS sans surveillance en ligne de commande avec softwareupdate
softwareupdate permet de lister, d'installer et de redémarrer pour appliquer des mises à jour sans passer par les Réglages Système. Sur Apple silicon, --fetch-full-installer exige l'authentification d'un propriétaire de volume, et une politique de report gérée peut masquer entièrement des mises à jour dans --list ; cette méthodologie couvre les deux cas.
-
Qualifier une recherche négative dans un dépôt avant de déclarer un code absent
Auditer le périmètre d'une recherche n'ayant retourné aucune correspondance avant de conclure qu'un symbole, une configuration ou un comportement n'existe pas dans le projet.
-
Broad phase et narrow phase des collisions : candidats et contacts
Comment construire un pipeline de collision qui distingue les candidats spatiaux, déterminés de façon conservatrice, des contacts géométriques, avec des frontières claires pour le filtrage, la responsabilité des mises à jour et le profilage.
-
Masse et volume en cuisine : quelle tasse est visée, et comment consigner la conversion réellement utilisée
Une tasse, une cuillère à soupe ou une cuillère à café sont des unités de volume dont la définition diffère entre les unités usuelles américaines répertoriées par le NIST et les valeurs arrondies utilisées sur les étiquettes nutritionnelles américaines, et la masse qu'elles contiennent dépend de l'ingrédient et de la façon dont il a été versé ; un foyer qui convertit entre masse et volume consigne la définition utilisée ainsi que ses propres valeurs pesées, afin qu'une recette puisse être reproduite.
-
Des critères d'acceptation par élément de travail transformables en tests
Rédiger les critères d'acceptation de chaque élément de travail sous forme d'exemples concrets comportant un état de départ, une action et un résultat observable, en suivant la structure Given/When/Then de Gherkin ou un équivalent, avec les cas limites nommés ; des critères qui ne peuvent être exécutés ni vérifiés par une autre personne que l'auteur n'en sont pas.
-
Bases de compilation : reproduire l'unité de traduction en échec avant de modifier les en-têtes
Utiliser la commande de compilation réelle et le répertoire de travail réel pour distinguer les défauts du code source des erreurs de configuration de l'éditeur.
-
Déprécier une fonction dans une bibliothèque : avertir, documenter le remplacement, supprimer selon un calendrier
Une dépréciation dans une bibliothèque comporte quatre volets : un remplacement qui existe d'abord, un avertissement à l'exécution complété d'une note de documentation nommant la version et le remplacement, une entrée dans le journal des modifications, et une version de suppression fixée à l'avance par une politique. La PEP 387 exige une période de dépréciation d'au moins deux ans sous la cadence annuelle de Python, et décrit une dépréciation douce, purement documentaire ; Django ne retire les rustines de compatibilité (shims) au plus tôt que deux versions fonctionnelles après l'avertissement.
-
Percentiles de latence : pourquoi la moyenne ne décrit aucune requête réelle
Les distributions de latence sont asymétriques : la moyenne se situe entre une majorité rapide et une traîne lente, et ne correspond à aucune requête réelle ; p50, p99 et le maximum décrivent ce que les utilisateurs rencontrent réellement. Enregistrer des histogrammes plutôt que des quantiles précalculés, afin que les percentiles puissent être agrégés entre instances et recalculés pour n'importe quelle fenêtre.
-
Durcir les workflows GitHub Actions : actions épinglées par SHA, jetons à moindre privilège et entrées non fiables
Épingler les actions tierces à un SHA de commit complet, régler le GITHUB_TOKEN en lecture seule par défaut et l'élargir tâche par tâche, ne jamais interpoler des champs d'événement non fiables dans des scripts `run`, et traiter `pull_request_target` et `workflow_run` comme des déclencheurs privilégiés.
Lisible par machine : JSON