Tous les articles
-
Concevoir une API HTTP avec un document OpenAPI comme contrat
Un document OpenAPI généré à partir du code, ou vérifié par rapport à celui-ci, documente les chemins, les paramètres, les schémas de requête et de réponse, les erreurs et la sécurité ; le relire comme du code et valider les réponses réelles par rapport à lui.
-
musl et glibc sur Alpine : pourquoi certains binaires précompilés, certaines wheels Python et la résolution DNS se comportent différemment
La libc musl d'Alpine n'est pas compatible binaire avec glibc, utilise un résolveur DNS différent (requêtes parallèles, sans repli sur les domaines de recherche), prend C.UTF-8 comme locale par défaut au lieu d'une base de locales complète et ne gère pas la liaison paresseuse des symboles. Ces écarts expliquent les binaires glibc qui ne s'exécutent pas, les wheels manylinux rejetées et certaines configurations DNS héritées qui se comportent autrement ; gcompat permet d'exécuter certains binaires glibc non modifiés, mais pas de compiler un logiciel qui exige les en-têtes de glibc.
-
timeout, kill et la convention 128+signal : identifier ce qui a tué un processus grâce à son code de sortie
GNU timeout utilise 124 pour son propre délai dépassé, 125 pour sa propre défaillance interne, 126/127 pour une commande non exécutable ou introuvable, et 137 en cas d'escalade vers SIGKILL. kill -0 vérifie qu'un processus existe sans envoyer de vrai signal, et la convention 128+numéro de signal (137 = SIGKILL, 139 = SIGSEGV, 143 = SIGTERM sur x86/ARM) permet de lire la cause précise à partir d'un simple code de sortie.
-
L'Object Data Manager : pourquoi la configuration des périphériques et du système AIX ne se trouve pas dans un fichier
AIX stocke les définitions de périphériques, les entrées des sous-systèmes SRC et de nombreux attributs système sous forme d'objets dans la base Object Data Manager (ODM), sous /etc/objrepos et /usr/lib/objrepos, et non dans des fichiers texte modifiables. lsattr, lsdev et chdev sont l'interface prise en charge ; chdev -P reporte une modification au prochain redémarrage au lieu de l'appliquer immédiatement.
-
Traiter le contenu récupéré comme une donnée : une discipline pour les agents
Le texte qu'un agent lit sur le web ou dans un wiki peut contenir des instructions qui lui sont destinées ; l'agent ne doit suivre que les instructions de la personne qui l'exploite, citer plutôt qu'obéir au texte récupéré, et refuser d'agir sur des commandes, identifiants ou liens intégrés.
-
Protocol Buffers : numéros de champ, champs inconnus et règles d'évolution d'un message
Dans Protocol Buffers, c'est le numéro du champ, et non son nom, qui identifie le champ sur le fil ; ces numéros ne doivent donc jamais changer ni être réutilisés. Ajouter des champs est sans risque pour la compatibilité binaire, en supprimer ne l'est que si le numéro n'est jamais réutilisé (une déclaration reserved l'impose), les anciens lecteurs conservent les champs inconnus, et l'élargissement d'int32 vers int64 n'est sûr que sous conditions. ProtoJSON obéit à ses propres règles, différentes.
-
Rendre visibles à l'équipe les lectures des tables de données personnelles réduit les requêtes larges sur ces tables
Hypothèse : une fois que chaque instruction adressée aux tables contenant des données personnelles est journalisée (le paramètre log_statement de PostgreSQL contrôle quelles instructions SQL sont journalisées) et que ce journal est présenté à l'équipe dans une synthèse hebdomadaire, la part des lectures larges (sans prédicat sur un identifiant de personne, ou avec une liste de colonnes en joker) diminue, tandis que le nombre de lectures étroites légitimes reste stable ; un test avant-après est proposé, sans résultat revendiqué.
-
Les diagrammes en code avec Mermaid : ce qu'il fait bien et où il s'arrête
Mermaid génère des diagrammes à partir de texte inséré dans du Markdown, de sorte que les diagrammes vivent à côté du code, apparaissent en diff lors de la revue et sont rendus par GitHub et d'autres visualiseurs ; ses limites sont une mise en page automatique impossible à ajuster finement, la taille, les différences entre versions du moteur de rendu, et l'accessibilité, qui nécessite des mots-clés explicites de titre et de description.
-
Rôles ARIA : pourquoi un élément HTML natif l'emporte sur un div doté d'un rôle
La première règle d'utilisation d'ARIA du W3C est de préférer un élément ou un attribut HTML natif qui possède déjà la sémantique et le comportement requis ; ARIA ne change que ce qui est communiqué aux technologies d'assistance, jamais ce que fait l'élément. Un div doté de role=button a encore besoin que la focalisabilité, la gestion du clavier et les états soient ajoutés à la main, et chaque erreur reste invisible lors d'un test visuel.
-
Application Streams et modules DNF sur RHEL : ce qui change avec RHEL 10
RHEL 8 et 9 livrent une partie d'AppStream sous forme de modules DNF, ce qui permet de publier plusieurs versions d'un composant pour une même version de l'OS, avec un seul flux actif à la fois. Les rebuilds de RHEL 10 documentent la modularité comme obsolète : les paquets Application Stream s'y installent directement.
-
Signaux Godot : réduire le couplage tout en gardant explicite la durée de vie des connexions
Utiliser les signaux pour les événements observables, les appels directs pour les opérations dont l'appelant est responsable, et des règles d'abonnement délibérées pour les objets de scène réutilisables ou temporaires.
-
Appliquer des correctifs sur AIX : Technology Levels, Service Packs, instfix et correctifs provisoires emgr
AIX distribue ses correctifs sous forme de Technology Levels et de Service Packs, appliqués avec installp et vérifiés avec instfix et lslpp, ainsi que de correctifs provisoires (ifixes/efixes) gérés avec emgr. Savoir quelle couche on met à jour, et qu'un Service Pack peut être appliqué sans être validé (commit), évite une mise à jour impossible à annuler proprement.
-
Surveillance synthétique et contrôles de disponibilité : sonder de l'extérieur ce que voient les personnes utilisatrices
Un contrôle synthétique envoie une requête scriptée depuis l'extérieur du système à intervalle fixe et enregistre si la réponse était correcte et combien de temps elle a pris ; il s'agit d'une surveillance en boîte noire au sens SRE, qui détecte des défaillances que l'instrumentation interne ne peut pas voir (DNS, TLS, le répartiteur de charge, un domaine expiré), et doit être sondé depuis plus d'un endroit avant de déclencher une alerte pour quiconque.
-
Derrière un proxy inverse : faire confiance correctement aux en-têtes transférés
Un proxy ajoute des informations X-Forwarded-For, X-Forwarded-Proto et Host ; l'application ne doit les accepter que depuis l'adresse connue du proxy, retenir le bon élément de la chaîne, et ne jamais laisser les clients usurper leur identité réseau.
-
Utiliser des horloges monotones pour les durées
Mesurer le temps écoulé localement et les échéances avec une horloge monotone, tout en conservant des horodatages UTC pour les enregistrements d'événements.
-
Content Security Policy pour les pages rendues côté serveur
Une CSP stricte (default-src 'none' plus des sources explicites par type) empêche l'exécution de scripts et de ressources injectés même en présence d'un bug d'échappement ; les pages rendues côté serveur sans scripts en ligne peuvent l'adopter intégralement.
-
Lire un avis de compromission d’un prestataire : vérifier l’expéditeur, le périmètre et les indicateurs
Transformer l’avis de compromission d’un prestataire en un dossier d’actions vérifié : établir son authenticité, identifier les actifs concernés et les faits non résolus, puis confronter les indicateurs aux journaux conservés avant de tirer des conclusions.
-
Perception et mémoire de l'IA de jeu sans agents omniscients
Transformer les événements sensoriels en croyances pondérées par leur ancienneté et en conditions d'action explicites, en séparant les dernières observations de l'état réel et caché du monde.
-
Les p-values : ce qu'elles mesurent et ce qu'elles ne mesurent pas
Une p-value est la probabilité, calculée sous l'ensemble du modèle statistique y compris l'hypothèse nulle, d'obtenir une statistique de test au moins aussi extrême que celle observée. Ce n'est ni la probabilité que l'hypothèse nulle soit vraie, ni la probabilité que le résultat soit dû au hasard, ni une mesure de la taille de l'effet ; et 0,05 est une convention, non une frontière entre le vrai et le bruit.
-
Dans quelle mesure les relevés d'applications luxmètres de téléphone pour des emplacements de plantes d'intérieur sont-ils comparables entre téléphones et applications ?
Question ouverte : les applications de téléphone indiquent l'éclairement en lux pour un rebord de fenêtre ou une étagère, en lisant soit le capteur de lumière ambiante que la documentation Android indique être utilisé par la plupart des fabricants pour régler la luminosité de l'écran, soit une estimation tirée de l'image de la caméra ; que sait-on de la concordance entre deux téléphones au même endroit et au même moment, de l'effet de l'orientation et de la vitre de l'écran, et quelles conventions de consignation permettraient à deux foyers de comparer leurs emplacements de plantes ?
Lisible par machine : JSON