Tous les articles
-
Tests automatisés de jeux : combiner vérifications headless et preuves de rendu
Concevoir une suite de tests de jeu pragmatique, avec des tests de logique isolés, des vérifications de scène reproductibles et des comparaisons de captures d'écran maîtrisées, ainsi que des règles claires pour les échecs et les images de référence.
-
« Permission denied (publickey) » avec SSH : l'interpréter grâce à ssh -v
Dans OpenSSH, « Permission denied (publickey) » signifie que toutes les clés proposées par le client ont été rejetées, ou qu'aucune n'a été proposée, sans préciser laquelle. L'article montre comment ssh -v désigne précisément les clés essayées et passe en revue les cas suivants : mauvais nom d'utilisateur, IdentitiesOnly, permissions d'authorized_keys côté serveur et abandon par défaut de ssh-rsa (SHA-1) depuis OpenSSH 8.8.
-
Le trifecta létal : données privées, contenu non fiable et canal sortant dans un même agent
Un agent qui combine l'accès à des données privées, l'exposition à un contenu contrôlé par un attaquant et un quelconque moyen de communiquer vers l'extérieur peut être manipulé pour envoyer ces données à un attaquant. Supprimer l'une des trois composantes est la seule défense structurelle fiable ; l'article recense les canaux sortants faciles à négliger.
-
Comment mesurer la fiabilité d'un agent agissant lorsqu'une exécution peut réussir sa tâche tout en causant un effet de bord indésirable ?
Question ouverte : les benchmarks évaluent si l'état cible a été atteint, et pass^k ajoute la cohérence sur plusieurs essais, mais aucun des deux ne compte une exécution qui a atteint l'objectif tout en supprimant un fichier, en envoyant un message ou en dépensant un budget qu'elle n'aurait pas dû ; quelles mesures les équipes utilisent pour cela, comment elles les collectent, et si elles évoluent avec les changements de prompt et de modèle reste non documenté.
-
HTTP/1.1, HTTP/2 et HTTP/3 : les différences qu'un opérateur remarque
HTTP/1.1 envoie une requête à la fois par connexion TCP, dans un cadrage textuel ; HTTP/2 multiplexe des flux binaires sur une seule connexion TLS avec compression HPACK, mais reste bloqué en cas de perte TCP ; HTTP/3 s'exécute sur QUIC via UDP, élimine le blocage de tête de ligne au niveau transport, et se découvre via Alt-Svc ou des enregistrements DNS HTTPS.
-
Normaliser l'Unicode avant de comparer des identifiants
Choisir une politique de normalisation pour les identifiants lisibles par des humains, sans modifier les jetons opaques ni confondre des caractères visuellement similaires.
-
Les interfaces Go : satisfaction implicite et le nil qui n'en est pas un
Un type Go satisfait une interface simplement en possédant ses méthodes ; rien n'est déclaré. Cela rend les petites interfaces définies au point d'usage peu coûteuses, mais une valeur d'interface est une paire type-valeur, si bien qu'un pointeur nil stocké dans une interface error n'est pas égal à nil.
-
Les agents d'IA récupèrent-ils réellement llms.txt, et ce fichier change-t-il quelque chose à leur comportement ?
Question ouverte : llms.txt est une proposition sans normalisation, et de nombreux sites créent ce fichier sans savoir si un agent le lit. Quels motifs de récupération les journaux serveur montrent-ils pour /llms.txt et les jumeaux Markdown, quels agents ou outils l'interrogent réellement, et peut-on démontrer une différence de qualité de réponse ou de nombre de récupérations par rapport aux sites sans ce fichier ?
-
Journaux d'exécution rejouables pour les agents : enregistrer chaque appel de modèle et d'outil
Une exécution d'agent ne peut être déboguée que si chaque requête de modèle, chaque réponse, chaque appel d'outil et chaque résultat d'outil est enregistré dans l'ordre, avec identifiants et paramètres ; les conventions sémantiques GenAI d'OpenTelemetry nomment ces champs, et un journal rejouable permet de reproduire un échec sans payer pour une nouvelle exécution.
-
Statistiques du planificateur dans PostgreSQL : cibles de statistiques, colonnes corrélées et erreurs d'estimation
Le planificateur estime le nombre de lignes à partir de statistiques par colonne échantillonnées par ANALYZE (valeurs les plus fréquentes, histogrammes, nombres de valeurs distinctes) et suppose les colonnes indépendantes ; les erreurs d'estimation viennent de statistiques périmées, de colonnes asymétriques avec trop peu d'entrées, de colonnes corrélées et d'expressions. Relever la cible de statistiques sur des colonnes précises, créer des statistiques étendues pour les colonnes corrélées ou les expressions, relancer ANALYZE, et comparer les lignes estimées aux lignes réelles.
-
Retargeting d'animation : transférer le mouvement entre des squelettes différents
Avant de transférer une animation, mettez en correspondance les rôles des os et les poses de référence, puis validez ensemble les proportions, le root motion et les trajectoires de contact.
-
Formulaires accessibles : libellés, messages d'erreur et autocomplete
Donner à chaque contrôle un libellé associé via for et id, marquer les champs obligatoires dans le texte et avec l'attribut, utiliser les jetons autocomplete pour que navigateurs et technologies d'assistance connaissent la finalité d'un champ, et signaler les erreurs dans un résumé accompagné de messages par champ reliés via aria-describedby.
-
Choisir entre contexte hérité et contexte neuf pour des sous-agents concurrents
Choisir le contexte initial d’un agent enfant selon les décisions qu’il doit prendre, puis renvoyer un résultat de portée définie, rattaché à la révision de la tâche du parent. Cette procédure proposée distingue l’héritage de la conversation, les pouvoirs accordés et les preuves.
-
Apprentissage actif par pool : échantillonnage par incertitude sans évaluation biaisée
Sélectionner les exemples les plus informatifs à annoter, conserver un jeu d'évaluation indépendant et représentatif, et mesurer le gain par rapport à un échantillonnage aléatoire à budget d'annotation égal.
-
Reconnaître les code smells avant de refactoriser
Les code smells sont des symptômes de surface (méthodes longues, grandes classes, feature envy, shotgun surgery, primitive obsession) qui suggèrent un problème de conception plus profond ; les nommer donne un vocabulaire pour la revue et un déclencheur pour le refactoring.
-
Serveur DHCP sous Linux avec ISC Kea : kea-dhcp4.conf, sous-réseaux, réservations et test de configuration
Configurer le serveur DHCPv4 d'ISC Kea consiste à écrire en JSON les sections subnet4, pools et reservations, à tester le fichier avec kea-dhcp4 -t avant son chargement réel et à savoir où les baux sont enregistrés. Le dhcpd d'ISC est en fin de vie ; Kea est le successeur maintenu pour les nouveaux déploiements.
-
Incident LiteLLM d’octobre 2026 : exposition confirmée d’un jeton et précautions pour les journaux de passerelle
Le bilan ultérieur de LiteLLM a remplacé l’hypothèse initiale d’un vol dans les journaux par des preuves d’exposition d’un jeton via une API d’Agent Platform. L’incident illustre néanmoins pourquoi les identifiants d’agents, les corps de réponse et les automatisations privilégiées doivent avoir des périmètres d’accès distincts.
-
Unités et préfixes SI dans la rédaction technique
Le Système international d'unités définit sept unités de base et des préfixes décimaux de quecto à quetta ; écrire correctement les symboles d'unités (espace entre le nombre et l'unité, pas de pluriel, kB contre KiB) afin que les mesures puissent être comparées.
-
Parcours de conception d'un ordonnanceur de tâches : baux, nouvelles tentatives, clés d'idempotence et table de file
Un parcours de conception pour les tâches de fond et les planifications récurrentes sur une table de base de données : les workers réclament des lignes avec FOR UPDATE SKIP LOCKED sous un bail, les échecs replanifient avec un backoff jusqu'à un maximum, une clé d'idempotence unique transforme les doubles mises en file en no-op, et un broker de messages est différé jusqu'à ce que l'âge de la file dise le contraire.
-
Postmortems sans recherche de coupable : consigner le déroulé, les causes et les actions
Un postmortem décrit ce qui s'est passé pendant un incident, qui a été touché et pendant combien de temps, quelles circonstances l'ont rendu possible, et quelles actions rendent une répétition moins probable. L'absence de recherche de coupable n'est pas une politesse, mais la condition pour que les personnes impliquées rapportent des faits plutôt que de se défendre.
Lisible par machine : JSON