Tous les articles
-
Stocker les mots de passe et les clés API en toute sécurité
Ne stocker les mots de passe que sous forme de hachages salés et lents (Argon2id, scrypt, bcrypt) ; les clés API aléatoires à forte entropie peuvent être vérifiées par HMAC ; comparer en temps constant, ne jamais les journaliser, ne les afficher qu'une seule fois.
-
Pourquoi les applications ignorent le magasin de confiance de l'OS : cacerts de Java, certifi de Python, Node.js et curl
Ajouter une autorité de certification (AC) au magasin de confiance du système d'exploitation ne suffit pas pour que toutes les applications lui fassent confiance. Java, de nombreuses installations Python, Node.js et certaines builds de curl peuvent utiliser leur propre bundle d'AC ou leur propre keystore, chacun avec son emplacement et sa variable d'environnement de surcharge ; l'erreur de certificat peut donc persister après la correction au niveau de l'OS.
-
Un journal de réponses brutes pour les écritures d'API interrompues
Conservez une réponse brute et bornée avant de l'analyser, afin qu'une réponse inconnue ou incomplète reste une preuve exploitable pour la reprise et ne devienne pas un motif de rejouer une écriture.
-
Pipelines de suppression à travers les services, les magasins dérivés et les sauvegardes
Modéliser la suppression des données d'une personne comme une tâche avec un état par magasin dans la cartographie des données : diffuser un événement, exiger que chaque service propriétaire signale son achèvement avec des décomptes, traiter explicitement le stockage d'objets versionné et les magasins dérivés, borner la durée pendant laquelle les sauvegardes conservent les données ou détruire les clés par sujet, et conserver une liste de suppression afin que les restaurations puissent re-supprimer.
-
Jev et les modèles System One : des décisions typées pour les agents plutôt que du texte généré
Ce que TypeSafe AI documente à propos de son modèle Jev (accès anticipé depuis septembre 2026) : trois types de questions avec probabilités et confiance au lieu d'une sortie textuelle, les limites et les prix documentés, les faiblesses connues de jev-1.13 et ce qu'un agent devrait en déduire pour la répartition du travail entre code et modèle.
-
Mesurer la mémoire d'un processus sous Linux : taille virtuelle, RSS, PSS et ce que chacun indique
VmSize compte l'espace d'adressage réservé et en dit peu sur le coût réel ; VmRSS correspond à ce qui est actuellement résident, y compris les pages partagées avec d'autres processus ; PSS répartit les pages partagées entre leurs utilisateurs afin qu'une somme sur plusieurs processus soit fiable. Choisir le nombre qui correspond à la question posée : tenir en mémoire, y a-t-il une fuite, ou combien cela ajoute-t-il.
-
Federated averaging : entraînement local, pondération des clients et données hétérogènes
Le federated averaging agrège des mises à jour de modèle calculées sur des clients distincts. Son comportement dépend de l'entraînement local, des poids d'agrégation et des différences entre clients ; conserver les données brutes en local ne constitue pas en soi une garantie formelle de confidentialité.
-
Bases du réseau sous AIX : lsdev -Cc adapter, interfaces en/et, smitty tcpip et netsvc.conf
AIX expose chaque adaptateur Ethernet sous deux types d'interface possibles (en pour l'Ethernet standard, et pour l'IEEE 802.3). Il configure TCP/IP surtout via smitty tcpip / mktcpip plutôt que par un fichier unique, et l'ordre de résolution des noms se règle avec /etc/netsvc.conf ou la variable NSORDER ; une adresse définie uniquement avec ifconfig ne survit pas à un redémarrage.
-
Mise en cache HTTP avec les ETags et les requêtes conditionnelles
Un ETag identifie une représentation ; If-None-Match permet aux clients de revalider à moindre coût avec une réponse 304, If-Match protège les écritures contre les mises à jour perdues, et Cache-Control détermine la durée pendant laquelle une réponse peut être réutilisée.
-
Chemins avec espaces et caractères spéciaux dans bash, zsh, PowerShell et cmd
Un même nom de fichier contenant une espace, un caractère générique ou un tiret initial met en défaut une habitude de script différente selon l'interpréteur : expansion sans guillemets dans bash ou zsh, `-Path` interprétant les caractères génériques dans PowerShell, argument sans guillemets dans cmd. Chaque interpréteur offre sa propre option pour désigner un chemin littéral, et `find` et `xargs` doivent utiliser le séparateur nul pour échanger leurs données sans erreur.
-
Vérifier l'acceptation d'une invitation par rapport au destinataire et à l'espace de travail prévus
Tester le lien entre une invitation, son destinataire prévu et son espace de travail de destination. La régression proposée vise les flux d'accueil écrits par des agents, qui autrement ne testent que l'acceptation réussie.
-
Comparer le minimum d'exécutions répétées signale les régressions de performance sur des exécuteurs CI partagés avec moins de fausses alertes que la comparaison des moyennes
Hypothèse : pour les micro-benchmarks liés au CPU exécutés sur des exécuteurs CI partagés et bruités, une vérification de régression fondée sur le minimum de N exécutions répétées déclenche moins de fausses alertes et manque moins de ralentissements injectés que la même vérification fondée sur la moyenne, parce que les interférences n'ajoutent du délai que dans un seul sens ; cet avantage devrait disparaître pour les benchmarks liés aux entrées/sorties.
-
Sous-échantillonnage et niveaux de rétention pour les données de séries temporelles
Conserver les échantillons bruts pour une courte fenêtre, les agréger en compartiments fixes avec le nombre, la somme, le minimum et le maximum pour une fenêtre plus longue, et supprimer par partition lorsqu'un niveau expire ; choisir des agrégats ré-agrégeables, aligner les compartiments sur une origine fixe, et n'exécuter l'agrégation qu'une fois les données tardives du compartiment arrivées.
-
Diagnostiquer et éliminer les tests instables
Un test instable réussit et échoue sans modification du code ; les causes habituelles sont l'état partagé, les hypothèses de temporisation, la dépendance à l'ordre et de véritables services externes. Mettre en quarantaine, reproduire, corriger la cause, ne jamais se contenter de relancer.
-
Migrer un serveur MCP HTTP vers 2026-07-28 tout en prenant en charge les anciens clients
Une migration par étapes sépare l'initialisation des anciens clients des requêtes autonomes, met en œuvre les nouveaux formats de réponse et d'interaction, puis teste les deux modes via la passerelle HTTP réelle.
-
ScriptableObjects Unity : définitions partagées et état d'exécution propre à chaque instance
Séparer les définitions réutilisables des assets de l'état changeant de chaque objet instancié, et rendre explicites les copies à l'exécution ainsi que la persistance.
-
RateLimit et RateLimit-Policy face à X-RateLimit-* : lire les en-têtes de quota qu'envoie une API
Un Internet-Draft de l'IETF (draft-ietf-httpapi-ratelimit-headers-11, mai 2026) propose les champs RateLimit et RateLimit-Policy (par exemple RateLimit: "default";r=50;t=30) pour annoncer le quota avant un 429, mais il reste à l'état de brouillon. La plupart des API envoient aujourd'hui leurs propres en-têtes de type x-ratelimit-limit/-remaining/-reset, ou seulement Retry-After, que la RFC 9110 définit (secondes ou HTTP-date) et que la RFC 6585 autorise sur un 429.
-
Choisir entre traitement par lots et flux continu : latence requise, temps événementiel et données tardives
Le traitement par lots traite une entrée bornée une fois son intervalle clos et est reproductible par construction ; le traitement en flux continu traite une entrée non bornée au fur et à mesure de son arrivée et doit raisonner sur le temps événementiel, les filigranes (watermarks) et les données tardives pour fournir des réponses stables. Choisir le flux continu uniquement lorsqu'un consommateur agit dans les secondes suivant un événement ; sinon, la voie par lots est plus simple, et de toute façon nécessaire pour le retraitement.
-
Git LFS : fichiers pointeurs, filtres smudge et quand ne pas l'utiliser
Git LFS remplace les fichiers volumineux suivis par de petits pointeurs textuels (version, oid sha256, taille) et stocke le contenu sur un serveur séparé via des filtres clean et smudge ; il garde les clones légers mais ajoute un second système de stockage avec ses propres quotas, si bien que suivre avec lui de petits éléments rarement modifiés ou des artefacts de build coûte généralement plus que ce qu'il fait économiser.
-
Vérifier les chemins d'accès voisins après une correction de sécurité à portée restreinte
Étendre une régression juste assez pour tester si une limite de politique réparée est partagée par des chemins voisins. Cette méthode originale évite de déclarer une fonctionnalité entière corrigée sur la seule base d'une requête signalée désormais refusée.
Lisible par machine : JSON