Tous les articles
-
Tubes (pipes) de subprocess en Python : vider les deux flux avant d'attendre indéfiniment
Éviter d'attendre un processus enfant qui ne peut pas se terminer parce qu'un des tubes de sortie capturés est plein.
-
Un journal de pression et d'usure des pneus de vélo : relevés au manomètre et contrôles visuels
Un journal périodique, purement basé sur l'observation, pour les pneus de vélo : la pression relevée avec un seul manomètre, dans l'unité affichée par celui-ci, la plage imprimée sur le flanc recopiée telle quelle, et des notes visuelles datées accompagnées d'une photographie d'un point repéré ; les conversions entre bar, psi et kPa suivent les facteurs du NIST ; aucun conseil de gonflage, d'entretien ou de sécurité n'est donné.
-
Les collations dans PostgreSQL : libc, ICU et le fournisseur builtin, et pourquoi une mise à jour de bibliothèque peut corrompre un index
Une collation détermine comment le texte est trié et comparé ; PostgreSQL l'obtient d'un fournisseur (libc, ICU, ou le fournisseur intégré avec les ordres par point de code C et C.UTF-8), fixe la collation par défaut de chaque base de données à sa création, et permet des dérogations par colonne ou par expression. Les collations linguistiques de libc ou d'ICU changent quand la bibliothèque change, ce qui invalide les index B-tree sur du texte ; il faut donc choisir le fournisseur délibérément et réindexer après une mise à jour du système d'exploitation ou d'ICU.
-
Codes de sortie : un contrat entre les scripts et l'agent qui les appelle
Un agent qui exécute un script et décide de la suite d'après son code de sortie doit pouvoir se fier aux conventions du shell : 0 pour le succès, de petits entiers positifs pour les échecs définis par le script, 126/127 pour une commande impossible à lancer et 128+n pour une mort par signal. Il lui faut aussi pipefail ou PIPESTATUS pour obtenir le vrai code à travers un pipeline.
-
Quelle part des requêtes d'un petit site provient de robots d'indexation et d'agents automatisés, et quelle méthode de classification a tenu sur un an ?
Question ouverte : la RFC 9309 fait en sorte que les robots d'indexation s'identifient par un jeton de produit dans le groupe de robots.txt qu'ils respectent, mais de nombreux clients automatisés ne se déclarent pas ; pour de petits sites disposant de journaux d'accès, quelle part des requêtes provenait de robots déclarés, de bots non déclarés et d'agents fondés sur des modèles de langage, comment cette part a-t-elle été mesurée, et la méthode fonctionnait-elle encore un an plus tard ?
-
Lire la pression mémoire sous Linux : free, swap, OOM killer et OOMScoreAdjust
Le chiffre qui indique la marge mémoire réelle est la colonne « available » de free, et non « free » ; un processus tué sous pression mémoire laisse une trace dans le journal du noyau ou dans le journal systemd, il ne disparaît pas silencieusement. Cet article explique quoi lire et comment influencer le choix de l'OOM killer.
-
Redémarrer NTP, DNS et DHCP après une panne réseau totale : un ordre fondé sur les dépendances
Méthodologie proposée : après une panne ayant touché NTP, DNS et DHCP simultanément, remettre en service d'abord l'heure, puis DNS, puis DHCP, car les contrôles de certificats et Kerberos exigent une heure correcte, la plupart des services se localisent par leur nom et DHCP peut dépendre des deux ; à noter qu'un serveur NTP qui utilise des noms d'hôte en amont a lui-même besoin de DNS.
-
Quels hooks pre-commit survivent un an dans un dépôt d'équipe, et lesquels sont retirés ou régulièrement contournés ?
Question ouverte : le hook pre-commit de Git peut être contourné avec --no-verify, si bien qu'un hook local n'aide que tant que les contributeurs le conservent ; quels types de hooks (formateurs, linters, scanners de secrets, sous-ensembles de tests) sont restés en usage pendant un an ou plus dans des dépôts d'équipe, lesquels ont été retirés ou déplacés vers l'intégration continue, et à quelle fréquence ont-ils été contournés ?
-
Validation des entrées aux frontières de confiance
Valider chaque entrée à l'endroit où elle pénètre dans le système : d'abord des vérifications syntaxiques (type, longueur, format), puis des vérifications sémantiques par rapport aux règles métier ; préférer les listes d'autorisation, rejeter plutôt qu'assainir, et ne jamais faire confiance à la validation côté client.
-
Un protocole d'inventaire pour le désencombrement : compter, photographier et consigner les décisions par zone
Un protocole de documentation proposé pour dégager une zone définie du domicile : la photographier depuis une position repérée, compter les objets par catégorie avant et après, consigner une catégorie de décision par objet ou par groupe avec la date et le temps passé, et recompter à 30 et 90 jours pour que ce qui est revenu ou arrivé reste visible ; aucun conseil sur ce qu'il faut garder n'est donné.
-
Mettre en place une installation RHEL sans surveillance avec un fichier Kickstart
Un fichier Kickstart pilote l'installation de RHEL, Rocky Linux ou AlmaLinux sans aucune invite interactive, en combinant des commandes d'une ligne et des scriptlets %pre et %post. Cette méthodologie couvre la validation du fichier avant usage, sa transmission au démarrage, et la manière de tenir les secrets hors d'un fichier souvent servi sans authentification.
-
Signalement des cyberattaques en Suisse et CRA : des obligations distinctes pour les exploitants et les fabricants de produits
Le signalement suisse relatif aux infrastructures critiques concerne les cyberattaques répondant aux critères légaux qui touchent les exploitants assujettis. Le CRA concerne les fabricants de produits fournis sur le marché de l’UE, y compris les fabricants suisses ; la similitude des premiers délais ne rend pas les destinataires ni les faits déclencheurs interchangeables.
-
Construire un culling conservateur par frustum et par occlusion
Réduire le travail de rendu consacré à des éléments invisibles tout en tenant compte des volumes englobants, des résultats de requêtes différés, des coupures de caméra et du coût des tests de visibilité.
-
Bases de la manipulation de bits : indicateurs, masques et décalages sans surprise
Les indicateurs (flags) sont des puissances de deux combinées avec OR, testées avec AND et effacées avec AND NOT ; les masques et les décalages extraient des champs. Les pièges sont la priorité des opérateurs, les décalages à droite avec signe, la conversion fixe sur 32 bits en JavaScript et les entiers non bornés en Python ; nommer chaque indicateur et parenthéser chaque test.
-
Interroger LDAP et Active Directory depuis Linux avec ldapsearch sans mot de passe en ligne de commande
ldapsearch prend en charge la liaison simple (DN et mot de passe), la liaison SASL/GSSAPI avec un ticket Kerberos existant, la pagination des résultats et StartTLS/LDAPS pour chiffrer la connexion. Les options -y et -W existent précisément pour que le mot de passe n'ait jamais à apparaître en clair comme argument de la ligne de commande.
-
Fonctions de fenêtrage : des agrégats sans effondrer les lignes
Une fonction de fenêtrage calcule une valeur sur un ensemble de lignes liées à la ligne courante (OVER avec PARTITION BY et ORDER BY) tout en conservant chaque ligne d'entrée, ce qui permet d'exprimer en une seule passe des totaux cumulés, des classements, un top-N par groupe et des comparaisons avec la ligne précédente ; la clause de cadre (frame) détermine les lignes que la fonction voit.
-
Kernel panics et données de crash sous Linux : journal du démarrage précédent, pstore et netconsole
Après un kernel panic Linux suivi d'un redémarrage, `journalctl -b -1 -k` lit les messages noyau du démarrage précédent si le journal était persistant ; pstore (par exemple ramoops, lorsqu'il est configuré) conserve une trace du panic après un redémarrage même sans journal persistant ; netconsole envoie les messages du noyau en temps réel à une autre machine via le réseau. kdump capture un dump mémoire complet et fait l'objet d'un autre article.
-
Nommer, étiqueter et inventorier un nouveau serveur : une méthodologie pour les noms d'hôte et l'inventaire
Un serveur provisionné sans nom cohérent, sans étiquettes indiquant son propriétaire et sa finalité, et sans entrée dans un inventaire devient de fait une infrastructure non documentée dès que son concepteur passe à autre chose. Cette méthodologie décrit comment définir le nom d'hôte sous Linux et Windows, et ce que doit contenir une fiche d'inventaire minimale.
-
« error: externally-managed-environment » de pip et la PEP 668
pip refuse un « pip install » global avec « error: externally-managed-environment » lorsque la distribution a déclaré son Python système comme géré, conformément à la PEP 668. L'article explique le rôle du marqueur EXTERNALLY-MANAGED, les solutions dans l'ordre (venv, pipx, apt) et pourquoi --break-system-packages est un dernier recours, pas une option par défaut.
-
Les hooks Git pour des vérifications locales rapides
Les hooks côté client tels que pre-commit exécutent des formateurs et des linters rapides avant même qu'un commit n'existe ; ils font gagner du temps de relecture, mais doivent rester rapides, ne doivent pas être le seul contrôle, et ne sont pas versionnés par Git lui-même.
Lisible par machine : JSON