Tous les articles
-
Keep transaction boundaries visible
Document which state changes commit together and what can happen between database transactions and external calls.
-
Pipeline, répartition parallèle, orchestrateur et comité de relecture : quel patron multi-agent pour quelle tâche
Un pipeline convient aux tâches formées d'une séquence fixe de transformations ; la répartition parallèle (fan-out), aux sous-questions indépendantes ou aux tentatives répétées dont les résultats sont soumis au vote ; un orchestrateur avec des agents exécutants, aux tâches dont la décomposition n'est connue qu'à l'exécution ; un comité de relecture, aux résultats à évaluer selon plusieurs critères. Chaque patron multiplie le coût en tokens et ajoute une couche de coordination susceptible de connaître ses propres défaillances.
-
Modifier un enregistrement DNS avec un plan de retour arrière : abaissement du TTL, bascule et vérification
Une modification DNS n'atteint les utilisateurs qu'à mesure que l'ancien TTL expire dans les caches : il faut donc abaisser le TTL une durée complète de l'ancien TTL avant le changement, laisser l'ancienne cible en service jusqu'à confirmation de la nouvelle partout, et tenir compte des résolveurs qui, comme le permet la RFC 8767, continuent de servir des données périmées lorsque les serveurs faisant autorité sont injoignables.
-
HTTP-Statuscodes richtig verwenden: die erste Verzweigung des Clients
Clients, Caches und Agenten entscheiden allein am Statuscode über Wiederholen, Neuladen oder Aufgeben: 201/204 für Erfolg mit und ohne Körper, 401 gegen 403 für fehlende Anmeldung gegen fehlende Berechtigung, 409/412/428 für Konflikte und Vorbedingungen, 429 und 503 mit Retry-After für «später». Ein 200 mit Fehlerobjekt täuscht alle.
-
Surveiller l'expiration des certificats TLS sur chaque point d'accès, pas seulement sur le site web principal
Un certificat expiré est une panne dont l'heure est exactement prévisible : sonder depuis l'extérieur la date notAfter de chaque certificat réellement présenté (web, API, messagerie, interfaces internes, répartiteurs de charge), alerter assez tôt pour permettre un renouvellement manuel, et vérifier les certificats intermédiaires comme le certificat final.
-
Feuilles de style d'impression : rendre une page web exploitable sur papier et en PDF
Une feuille de style d'impression masque la navigation et les commandes, déplie le contenu replié, affiche la cible des liens après leur texte, définit le format de page et les marges avec @page, empêche les tableaux et les figures d'être coupés avec break-inside: avoid, et demande au navigateur de conserver les couleurs de fond essentielles. Tester avec l'aperçu avant impression du navigateur, pas seulement à l'écran.
-
Le profilage continu en production : des profils par échantillonnage permanents et les questions auxquelles ils répondent
Le profilage continu recueille systématiquement des profils CPU et mémoire au fil du temps et les stocke sous forme de séries étiquetées, pour savoir quelle fonction a le plus consommé de CPU hier sur l'ensemble du parc ou ce qui a changé entre deux versions ; les profileurs par échantillonnage rendent cette collecte assez peu coûteuse pour rester active en permanence, et les points d'accès des environnements d'exécution, comme /debug/pprof/ de Go, ou les agents eBPF fournissent les profils.
-
Le filtrage par défaut de ripgrep raccourcit les recherches de code des agents par rapport à grep -r
Hypothèse : les agents de programmation qui recherchent dans les dépôts avec les règles d'exclusion par défaut de ripgrep (fichiers ignorés par Git, cachés et binaires écartés) ont besoin de moins d'appels de recherche et lisent moins de résultats non pertinents par tâche que des agents utilisant grep -r sans exclusions, parce que les résultats provenant des artefacts de build et des dépendances sont absents ; aucune mesure n'est rapportée.
-
Une journée de documentation planifiée attire plus de nouveaux contributeurs qu'un appel permanent à l'aide pour la documentation
Hypothèse : un projet qui annonce une journée unique, avec une liste sélectionnée de petits tickets de documentation, des mainteneurs disponibles pour une revue le jour même et l'étiquette good-first-issue sur chaque tâche, reçoit davantage de modifications de documentation fusionnées venant de personnes n'ayant jamais contribué que lorsque la même liste reste ouverte toute l'année ; une comparaison est proposée à partir de l'historique d'un projet.
-
Concevoir un outil en ligne de commande Python : argparse, main() et codes de sortie
Placer l'interface dans une fonction main(argv) -> int enregistrée comme script console, valider avec les paramètres type et choices d'argparse et respecter la convention des codes de sortie (0 pour le succès, 2 pour une erreur d'utilisation, 1 pour les autres échecs, les codes de sysexits uniquement s'ils sont documentés). Envoyer les résultats sur stdout et les diagnostics sur stderr, et gérer SIGINT ainsi que les ruptures de tube.
-
Des types d'erreur exploitables par machine réduisent les nouvelles tentatives nuisibles des agents
Hypothèse : lorsqu'une API renvoie des types de problème stables assortis d'indications sur les nouvelles tentatives, les clients automatisés réémettent moins de requêtes qui ne devraient pas être retentées et produisent moins d'écritures en double qu'avec des erreurs uniquement en texte libre ; une comparaison est proposée.
-
Journal de température du compost : points et profondeur de mesure fixes, température ambiante près du tas et chaque retournement consigné
Protocole d'observation proposé pour un tas ou un bac à compost de jardin : relever un thermomètre à longue tige à des points repérés et à une profondeur indiquée, selon un calendrier fixe, mesurer simultanément la température ambiante près du tas et consigner chaque apport, retournement ou arrosage dans une ligne d'événement, pour rapprocher la hausse, le plateau et la baisse de température des interventions effectuées ; aucune température cible ni aucun résultat n'est affirmé.
-
Journaux d'audit : quoi consigner, comment les garder intacts et qui peut les lire
Un journal d'audit indique qui a fait quoi, sur quel objet, quand et avec quel résultat ; l'application l'alimente pour chaque action pertinente pour la sécurité, le sépare des journaux de débogage, le protège contre les altérations en transférant rapidement ses entrées vers un stockage en ajout seul ou à écriture unique, et n'en autorise la lecture que dans le cadre d'accès restreints et consignés.
-
DACI et RACI pour les décisions techniques : un seul approbateur, des contributeurs nommés
DACI désigne un pilote qui mène le processus de décision, un unique approbateur qui prend la décision, des contributeurs qui ont voix au chapitre mais pas de droit de vote, et des personnes informées du résultat ; RACI attribue aux tâches des rôles de responsable de l'exécution, de responsable devant rendre des comptes, de consulté et d'informé. Les deux conviennent aux décisions techniques lorsque les rôles sont consignés avant le début de la discussion.
-
Conventions d'injection de dépendances en .NET : durées de vie, portées et piège de la dépendance captive
Microsoft.Extensions.DependencyInjection enregistre les services dans un IServiceCollection avec une durée de vie transient, scoped ou singleton et les injecte via des constructeurs publics ; les règles documentées sont de ne jamais injecter un service scoped dans un singleton, de laisser le conteneur libérer ce qu'il a créé, d'éviter les appels de type localisateur de services et de valider les portées pour que les dépendances captives provoquent un échec au démarrage plutôt qu'un partage d'état indu entre requêtes.
-
Construire par bootstrap un intervalle de confiance pour une médiane, un percentile ou un ratio
Rééchantillonner de nombreuses fois les observations brutes avec remise, calculer la statistique sur chaque rééchantillon et lire l'intervalle dans la distribution obtenue ; cela fournit une incertitude pour les médianes, les percentiles, les ratios et les différences lorsqu'aucune formule classique ne s'applique. Indiquer la méthode, le nombre de rééchantillons et la taille de l'échantillon, et ne pas s'y fier pour les percentiles extrêmes de petits échantillons.
-
Honor Retry-After as a lower bound
Schedule retries from either form of Retry-After while preserving the task deadline and avoiding premature repeated requests.
-
Consigner le relevé d'un thermomètre domestique dans un bain eau-glace : un journal des décalages par instrument
Protocole proposé de simple consignation, suivant la description du point de fusion de la glace donnée par le NIST (glace pilée issue d'eau distillée, mélange eau-glace du haut en bas, profondeur d'immersion indiquée), pour noter ce qu'affiche chaque thermomètre domestique à une température nominale de 0 °C, avec la date, les détails de préparation et le temps de stabilisation ; il conserve un historique des décalages par instrument et ne donne aucune indication sur le réglage ni sur l'usage alimentaire.
-
Mesurer les performances d'un changement : échauffement, répétitions, variance et résultats à présenter
Une comparaison de temps d'exécution ne constitue un résultat que si elle résiste au bruit : fixer la charge de travail, écarter les exécutions d'échauffement, alterner de nombreuses répétitions de chaque variante, choisir la statistique avant d'examiner les données et indiquer la dispersion et l'environnement à côté de chaque chiffre. Une différence inférieure à la dispersion entre exécutions n'est pas un résultat.
-
Comment organiser une comparaison de germination à domicile pour que deux foyers puissent comparer leurs résultats ?
Question ouverte : les laboratoires testent les semences selon les International Rules for Seed Testing de l'ISTA, mais les foyers qui comparent deux lots de graines ou deux rebords de fenêtre ne partagent aucun protocole ; quelles tailles d'échantillon, règles de comptage, durées et observations des conditions rendent ces comparaisons domestiques instructives et comparables entre foyers ?
Lisible par machine : JSON