Tous les articles
-
Journaux, métriques et traces : choisir le bon signal
Les journaux enregistrent des événements discrets, les métriques agrègent des mesures numériques dans le temps, et les traces suivent une requête unique à travers les services ; OpenTelemetry normalise les trois afin qu'ils puissent être corrélés.
-
Utilisateurs, rôles et RBAC sous Solaris : pourquoi root est un rôle par défaut et comment pfexec remplace sudo
Oracle Solaris gère l'administration privilégiée au moyen de profils de droits RBAC attribués à des utilisateurs ou à des rôles. Par défaut, root y est configuré comme un rôle et non comme un utilisateur pouvant se connecter directement. La commande native pour exécuter une seule commande privilégiée selon un profil attribué est pfexec, et non sudo.
-
La boucle d'événements de JavaScript : tâches, microtâches et rendu
JavaScript exécute une tâche à la fois ; la boucle d'événements HTML prend une tâche, puis vide entièrement la file des microtâches (réactions de promesses, queueMicrotask) avant la tâche suivante ou une occasion de rendu. Un travail synchrone long et des chaînes de microtâches sans fin bloquent les entrées et l'affichage.
-
Vérifier réellement les sauvegardes de données : l'épreuve de restauration
Une sauvegarde n'en est une que lorsqu'une restauration vers un environnement vierge a réussi et a été vérifiée. La démarche : fixer l'attente, restaurer à partir de la seule sauvegarde, mesurer l'exhaustivité et le fonctionnement, noter la durée, consigner le constat et fixer la date de la prochaine épreuve.
-
Consoles série et hors bande : conserver l'accès à un serveur lorsque le réseau est indisponible
Une console série (`console=ttyS0,115200` avec un getty sur la ligne), la console série d'un fournisseur cloud ou l'IPMI/BMC en Serial-over-LAN permettent chacune d'accéder à un serveur dont la pile réseau ne fonctionne plus, situation qu'un plan d'accès reposant uniquement sur SSH ne peut pas surmonter.
-
Benchmarks CIS et STIG DISA comme référentiel de durcissement : présentation et application sélective
Les CIS Benchmarks et les STIG de la DISA sont deux ensembles de recommandations de configuration maintenus indépendamment, qui proposent des niveaux de profil au choix plutôt qu'une cible unique. Appliquer un profil en bloc sans consigner les exceptions est une manière courante de casser un service de production lors d'un durcissement.
-
Acheminer toutes les interruptions vers une seule personne tournante augmente le temps ininterrompu du reste de l'équipe
Hypothèse : une équipe qui confie les tickets, les questions et les demandes opérationnelles à une seule personne tournante chargée des interruptions, et cesse de les répartir entre tout le monde, augmente la durée médiane des blocs de travail ininterrompu des autres membres, sans allonger les temps de réponse aux interruptions au-delà de l'objectif convenu ; une mesure est proposée.
-
Falsification de requête côté serveur : récupérer des URL fournies par l'utilisateur
Lorsqu'un serveur récupère une URL fournie par l'utilisateur, elle peut être pointée vers des services internes et des points de terminaison de métadonnées ; mettre sur liste blanche les schémas et les hôtes, résoudre et vérifier les adresses, désactiver les redirections vers les plages privées, et préférer ne pas récupérer du tout.
-
Profiler avant d'optimiser
Mesurer avec un profileur où le temps est réellement passé avant de modifier le code pour la rapidité ; la plupart des suppositions sur les points chauds sont fausses, et une optimisation non mesurée ajoute de la complexité sans bénéfice.
-
Débordement arithmétique signé : documenter le contrat du compilateur avant de modifier l'optimisation
Séparer les exigences arithmétiques des options GCC relatives au débordement, lorsqu'une build de release se comporte différemment d'une build de débogage.
-
Seau à jetons, seau percé et fenêtre glissante : en quoi diffèrent les algorithmes de limitation de débit
Les fenêtres fixes sont peu coûteuses mais laissent passer le double de la limite à une frontière ; les journaux glissants sont exacts mais stockent chaque horodatage ; les compteurs à fenêtre glissante approximent en mémoire constante ; les seaux à jetons autorisent des rafales jusqu'à la taille du seau, à un taux de remplissage fixe ; les seaux percés lissent la sortie en retardant. nginx et Envoy documentent ces deux derniers.
-
Ce dont un agent a besoin dans une description d'API
Les agents lisent des descriptions machine plutôt que de la prose : des liens stables depuis un document de découverte unique, des réponses typées, des erreurs documentées et des signaux de nouvelle tentative, l'idempotence, et des énoncés explicites de ce qui n'est pas disponible.
-
Faire porter un identifiant de requête de bout en bout : périphérie, journaux, appels en aval et réponse
Générer un identifiant de requête en périphérie (nginx propose $request_id, 16 octets aléatoires en hexadécimal), le transmettre à l'application dans un en-tête, le conserver dans un contexte propre à la requête afin que chaque ligne de journal et chaque appel sortant le porte, et le renvoyer dans la réponse afin qu'un rapport utilisateur puisse être rapproché des journaux de chaque service qu'il a touché ; là où le traçage existe, l'identifiant de trace W3C tient ce rôle.
-
Les builders de données de test avec valeurs par défaut réduisent la casse des tests lorsqu'un objet du domaine change
Hypothèse : les suites qui construisent leurs objets via des builders, où chaque champ a une valeur par défaut valide et où un test ne définit que les champs sur lesquels porte son assertion, nécessitent moins de modifications de test par changement de schéma ou de constructeur que les suites reposant sur des fixtures partagées ou des Object Mother à instances toutes faites.
-
Valider les adresses e-mail : ce qu'un contrôle de syntaxe peut et ne peut pas dire
La RFC 5321 plafonne la partie locale à 64 octets et un chemin à 256 ; la norme HTML utilise délibérément une grammaire plus simple que la RFC 5322 pour input type=email ; les adresses internationalisées nécessitent SMTPUTF8 de bout en bout. Vérifier la syntaxe et les longueurs, consulter les enregistrements MX à l'inscription, confirmer la possession par un message, et ne jamais « corriger » une adresse automatiquement.
-
Décomposer un jugement composite en questions atomiques pour un modèle de décision augmente l'accord avec les étiquettes humaines, comparé à une seule question à facteurs multiples
Les recommandations du fournisseur pour les modèles de décision préconisent de poser une chose précise par question et de combiner dans le code ; cette hypothèse formule cette prédiction comme une affirmation mesurable : pour des jugements qui pèsent plusieurs facteurs indépendants, la forme décomposée s'accorde plus souvent avec les étiquettes humaines qu'une seule question dont les critères décrivent la combinaison.
-
Consigner la cible d'exécution avant d'interpréter un résultat de diagnostic
Établir quel processus, quelle copie de travail, quelle instance de service ou quelle base de données une commande de diagnostic a effectivement atteint avant d'appliquer son résultat au problème signalé par l'utilisateur.
-
Combiner lightmaps précalculées et sondes d'éclairage pour les objets mobiles
Planifier ensemble les UV des surfaces et les échantillons d'éclairage spatiaux, afin que le décor statique et les objets dynamiques partagent un éclairage précalculé cohérent.
-
Accessibilité : les quatre principes WCAG appliqués concrètement
Les WCAG 2.2 classent tous les critères de succès selon quatre principes : perceptible, utilisable, compréhensible, robuste. Connaître par principe les manquements les plus fréquents (alternatives textuelles absentes, pièges au clavier, contraste insuffisant, champs non étiquetés, cibles trop petites) permet de repérer de nombreux obstacles sans outil spécialisé ; le niveau AA est l'objectif habituel.
-
Branches de dialogue Ren'Py : relier choix, variables d'histoire et chemins de retour
Utilisez les menus pour sélectionner des blocs d'histoire locaux, les labels pour organiser les destinations, et une sémantique call ou jump explicite, afin que les branches conservent leurs conséquences et se rejoignent de façon voulue.
Lisible par machine : JSON