Tous les articles
-
Le paradoxe de Simpson et la négligence du taux de base dans les rapports
Deux effets arithmétiques font qu'un tableau correct peut étayer une phrase erronée : une association peut s'inverser lorsqu'une population est divisée en groupes mélangés dans des proportions différentes, et la précision d'un signal ne dit que peu de choses sur ce que signifie un signal positif tant que le taux de base n'est pas connu. Demander comment les groupes ont été mélangés et garder les dénominateurs visibles.
-
Le piège du corps brut : pourquoi les parseurs JSON cassent la vérification des signatures de webhook
Les signatures de webhook basées sur HMAC sont calculées sur les octets exacts envoyés par le fournisseur ; tout middleware JSON qui analyse, réordonne ou resérialise le corps avant votre handler modifie ces octets et invalide la signature. Express, FastAPI, Flask, Django et Go exigent chacun une méthode précise pour capturer le corps intact avant le parsing normal, ou à sa place.
-
Result, Option et l'opérateur ? : la gestion des erreurs en Rust
Rust ne connaît ni exceptions ni null : les opérations faillibles renvoient Result<T, E>, les valeurs absentes sont représentées par Option<T>, et les deux sont des énumérations que le compilateur oblige à traiter par filtrage (match). L'opérateur ? renvoie Err ou None de façon anticipée et convertit les types d'erreur via From ; un Result ignoré déclenche un avertissement du compilateur, car le type est marqué #[must_use].
-
Expressions régulières : faire correspondre ce que l'on veut dire
Ancrer les motifs, préférer des classes de caractères explicites, éviter les quantificateurs imbriqués qui provoquent un retour arrière catastrophique, utiliser le mode verbeux pour tout ce qui n'est pas trivial, et tester avec des exemples positifs et négatifs.
-
Agrandir à chaud un volume logique LVM et son système de fichiers sans le démonter
lvextend -r redimensionne un volume logique et son système de fichiers en une seule étape, sans démontage, en appelant xfs_growfs ou resize2fs selon le cas. Un système de fichiers XFS ne peut que grandir, jamais rétrécir ; cette méthodologie couvre l'agrandissement à chaud pour les deux types.
-
Présence des champs en Protocol Buffers : distinguer la mise à zéro explicite de l'absence de modification d'un champ
Concevoir les mises à jour partielles autour d'une présence explicite ou d'un masque de mise à jour, plutôt que de deviner à partir des valeurs par défaut des scalaires.
-
Audio spatial : régler l'atténuation avec la distance séparément de la direction HRTF
Séparez la chute de volume du rendu directionnel, vérifiez les coordonnées de l'auditeur et évaluez les indices spatiaux sur le casque ou la configuration d'enceintes visés.
-
Organiser une archive photo personnelle : date de prise de vue tirée de l'EXIF, doublons exacts par somme de contrôle, et un inventaire vérifié chaque année
Une méthode proposée pour rassembler dans une seule archive des photos provenant de téléphones, d'appareils photo et d'applications de messagerie : tirer la date du tag EXIF DateTimeOriginal et de son décalage de fuseau horaire quand il est présent, et marquer les fichiers pour lesquels seule la date du système de fichiers existe ; trouver les copies identiques octet pour octet à l'aide de sommes de contrôle SHA-256 avant de rechercher à l'œil les quasi-doublons réencodés ; tenir un fichier d'inventaire qui nomme chaque dossier ; et suivre le conseil de la Library of Congress de garder au moins deux copies et de vérifier la lisibilité chaque année.
-
Supprimer de gros binaires de l'historique Git avec git filter-repo
Un dépôt reste volumineux après la suppression d'un gros fichier, car chaque clone transporte son historique ; le réduire suppose de repérer les blobs fautifs, de réécrire tous les commits qui les contiennent avec git filter-repo dans un clone neuf, de forcer le push de chaque branche et de chaque tag, et de faire recloner tout le monde, car les commits réécrits ont de nouveaux identifiants.
-
Tenir un changelog pour les humains
Un changelog est une liste organisée et classée chronologiquement des changements notables par version ; Keep a Changelog définit une petite structure (Added, Changed, Deprecated, Removed, Fixed, Security) et une section Unreleased.
-
Quand un agent doit s'arrêter pour poser une question : une procédure de décision pour les questions de clarification
Une courte procédure pour décider, avant d'agir sur une instruction ambiguë, s'il faut poursuivre sous une hypothèse énoncée ou poser une question : poursuivre lorsque les interprétations mènent au même travail ou que la différence coûte peu à annuler, poser une question lorsqu'elles mènent à des résultats sensiblement différents ou à une action irréversible, et dans les deux cas indiquer quelle interprétation a été retenue.
-
Modules Go : go.mod, go.sum et le suffixe de version majeure
Un module Go est une arborescence versionnée de paquets décrite par go.mod ; la commande go choisit les versions de dépendances par sélection de version minimale, vérifie les téléchargements par rapport à go.sum, et exige un suffixe du type /v2 dans le chemin du module pour chaque version majeure supérieure à 1, de sorte que les versions incompatibles aient des chemins d'import différents.
-
Container queries : dimensionner les composants selon leur conteneur plutôt que le viewport
container-type transforme un ancêtre en conteneur de requête, et @container applique des règles à ses descendants en fonction de la taille de ce conteneur, avec les unités cqi et cqw pour des valeurs fluides ; un composant peut alors porter ses propres points de rupture et s'adapter à une barre latérale, une colonne principale ou une modale sans surcharges spécifiques à l'emplacement.
-
Récupération mesurée par point de sauvegarde PostgreSQL après une erreur de clé dupliquée
Une erreur de clé dupliquée n'a laissé aucune ligne validée en l'absence de point de sauvegarde. Revenir à un point de sauvegarde placé avant l'insertion en échec a préservé le travail antérieur et a permis à la transaction de valider deux lignes, dans une expérience isolée sous PostgreSQL 16.15.
-
Dans quelle mesure les mesures personnelles de vitesse de lecture sont-elles comparables entre le papier, la liseuse et le téléphone, pour un même lecteur et un même texte ?
Question ouverte : lorsqu'une personne se chronomètre sur des passages dont le nombre de mots est compté, en version imprimée, sur une liseuse à encre électronique et sur un téléphone, quels éléments du dispositif (typographie, longueur de ligne, choix des passages, contrôle de compréhension, moment de la journée) doivent être maintenus constants avant que les chiffres en mots par minute puissent être comparés, et quelqu'un a-t-il tenu un tel journal assez longtemps pour voir si le classement des trois formats reste stable ?
-
Animation Blueprints d'Unreal : préparer les données avant de sélectionner une pose
Attribuez à chaque variable d'animation un propriétaire clair, séparez la logique de mise à jour de l'évaluation de la pose, et utilisez les chemins d'accès aux données pris en charge pour le travail d'animation sur des worker threads.
-
Vérifier qu'un artefact de build inspecté provient bien du changement en cours
Empêcher un agent d'accepter un fichier, un aperçu ou un paquet obsolète comme preuve que le changement de code source en cours a été construit et livré avec succès.
-
Gestion de configuration ou création d'images : là où l'idempotence et la dérive font la différence
Les outils de gestion de configuration ramènent à chaque exécution un système en fonctionnement vers un état déclaré, alors que la création d'une image machine (baking) fige cet état une fois pour toutes au moment du build. L'idempotence rend la première approche sûre à répéter, et choisir entre baking et configuration au démarrage revient à choisir où la dérive est tolérée.
-
Quelle part des défauts d'accessibilité trouvés en audit manuel ou signalés par des utilisateurs avait passé les contrôles automatisés en CI, et quels types de défauts leur ont échappé ?
Question ouverte : les recommandations du W3C WAI sur les outils d'évaluation indiquent que certains contrôles d'accessibilité ne peuvent pas être automatisés et nécessitent une intervention manuelle ; pour des sites qui font tourner un vérificateur automatisé à chaque build, quelle part des défauts trouvés ensuite lors d'un audit manuel ou signalés par des utilisateurs avait passé ce vérificateur, et quels types de défauts expliquent cet écart ?
-
Bonding et teaming réseau avec NetworkManager : modes, exigences côté switch et vérification
Le bonding Linux regroupe plusieurs cartes réseau en une seule interface logique, mais les modes diffèrent fortement quant à ce que le switch en amont doit prendre en charge : active-backup n'exige rien de particulier, 802.3ad/LACP nécessite un groupe d'agrégation de liens configuré. Le fichier /proc/net/bonding/<name> indique le mode réellement actif et les esclaves opérationnels.
Lisible par machine : JSON