La QA (Quality Assurance) désigne à la fois un métier dédié et une discipline outillée visant à prévenir les erreurs logicielles avant leur mise en production. Contrairement à une idée reçue, elle ne garantit pas l’absence totale de bugs, mais permet d’interdire des classes d’erreurs spécifiques, comme l’illustre le principe du typage strict ou des tests de non-régression. L’article compare cette approche à un filet de sécurité composé de plusieurs couches d’outils, chacun bloquant une catégorie de problèmes.
L’auteur illustre l’importance de la QA à travers quatre pannes majeures, dont celle de CrowdStrike en 2024, où un fichier mal validé a provoqué des écrans bleus sur des millions de machines. Ces exemples révèlent des garde-fous manquants, comme une validation insuffisante des données ou des déploiements non progressifs, soulignant que la QA doit s’appliquer autant au code qu’aux configurations.
Enfin, l’article annonce une série dédiée aux outils concrets de QA, en détaillant leur rôle dans la prévention des erreurs. L’objectif est de montrer comment construire un système de défense en couches, adapté même aux petites équipes, pour limiter les risques avant qu’ils n’atteignent les utilisateurs.
La propriété CSS scrollbar-gutter: stable est présentée comme une solution pour éviter les décalages de mise en page causés par l'apparition ou la disparition des barres de défilement. Elle permet de réserver un espace fixe pour ces barres, garantissant ainsi une largeur de page constante. Cette approche remplace les méthodes anciennes et peu élégantes comme overflow-y: scroll.
Cependant, l'auteur découvre un comportement inattendu sur macOS : lorsque l'utilisateur débranche sa souris, le système passe en mode overlay scrollbars, dessinant les barres par-dessus le contenu sans réserver d'espace. Résultat, la mise en page s'élargit soudainement de 15 pixels, malgré l'application de scrollbar-gutter: stable. Ce phénomène est observable dans Safari, Chrome et Firefox, suggérant une conformité à la spécification macOS plutôt qu'un bug des navigateurs.
Le problème réside dans l'interprétation trompeuse du terme stable. La propriété ne garantit une stabilité que si le système utilise des barres de défilement classiques. Dès qu'il bascule en mode overlay (par exemple, en débranchant une souris), l'espace réservé disparaît, invalidant l'effet recherché. La spécification précise que scrollbar-gutter: stable ne fonctionne que lorsque des barres classiques existent, ce qui n'est pas toujours le cas.
L’article de Carson Gross sur htmx explore l’interaction entre le développement logiciel et l’IA à travers un exemple concret lié à hyperscript, un langage de script alternatif pour le web. L’auteur, ambivalent face à l’IA malgré ses avantages, illustre le problème de l’apprenti sorcier : bien que l’IA (ici, Claude) ait rapidement identifié la cause d’un bug dans hyperscript (une régression due à un refactoring malencontreux), elle s’est révélée moins efficace pour proposer des solutions robustes, poussant l’auteur à corriger manuellement le code.
Le bug concernait la syntaxe fetch ... as JSON, où le mot-clé as était interprété comme une conversion d’expression plutôt que comme un modificateur de la commande fetch, en raison d’un changement dans la grammaire. L’IA a aidé à diagnostiquer le problème en quelques minutes, mais ses propositions de correction étaient souvent des solutions temporaires ou mal adaptées, soulignant ses limites face à des cas complexes nécessitant une compréhension fine du contexte.
L’expérience met en lumière les forces et faiblesses de l’IA : un outil puissant pour l’analyse rapide, mais peu fiable pour des solutions créatives ou nuancées. L’auteur évite ainsi de tomber dans le piège de la dépendance excessive, privilégiant une approche équilibrée où l’IA complète, sans remplacer, le travail humain.
Cette page présente des techniques pour améliorer les tests logiciels, applicables aussi bien aux tests manuels qu’automatisés. L’idée principale est d’intégrer des méthodes comme l’aléatoire, les tests basés sur des propriétés ou l’adaptation dynamique pour couvrir davantage de cas et détecter des bugs imprévisibles. Par exemple, la randomisation des entrées ou des séquences de fonctions permet d’explorer des scénarios non couverts par les tests déterministes classiques.
L’article souligne aussi l’importance d’ajuster la distribution des entrées aléatoires pour cibler des bugs spécifiques, tout en évitant de trop restreindre les combinaisons testées. Des outils comme Hypothesis ou AFL++ illustrent ces approches, tandis que des méthodes comme l’Adaptive Random Testing ou Swarm testing optimisent la génération de cas de test.
Enfin, la plateforme Antithesis intègre ces bonnes pratiques pour offrir une solution unifiée, combinant plusieurs techniques avancées en un seul outil. Cela permet aux développeurs de renforcer leurs tests sans avoir à les implémenter manuellement.
L’article explique pourquoi les leaders tech doivent maîtriser la résolution de problèmes, une compétence clé selon le World Economic Forum. Il propose une méthode rigoureuse en 4 étapes (PDCA : Plan, Do, Check, Act) pour transformer les obstacles en opportunités d’apprentissage. L’accent est mis sur l’importance de bien définir le problème (écart entre situation actuelle et souhaitée), d’identifier les causes racines (via la technique des "5 pourquoi"), de tester des contre-mesures, et d’ancrer les apprentissages. L’auteur souligne les pièges à éviter, comme le fingerpointing ou l’attente passive, et encourage à impliquer toute l’équipe pour développer une culture d’amélioration continue. Une approche inspirée du lean management, adaptée au software engineering.
L’auteur, développeur expérimenté, partage son retour sur l’utilisation de la GenAI (Claude Code) au quotidien. Il distingue trois usages principaux : le "vibe coding" (génération complète de scripts ou interfaces simples, gain de temps énorme), le "mode chirurgien" (résolution ciblée de bugs complexes ou manipulation de SDK obscurs), et l’assistance pour du code de production (génération de couches techniques répétitives, reviews, agents automatisés). Selon lui, la GenAI ne remplace pas les développeurs — elle libère du temps pour se concentrer sur la réflexion architecturale, l’intégration système et les bonnes pratiques, domaines où l’expertise humaine reste indispensable. Un outil à adopter pour booster sa productivité, mais sans illusions sur la disparition du métier.
Linear explique dans cet article pourquoi l’entreprise a adopté une politique « zéro bug » : chaque bug signalé est corrigé rapidement (sous 48h pour les priorités hautes, 7 jours pour les autres), sans accumulation dans un backlog. L’idée est née après qu’un bug signalé dans une autre application ait mis cinq ans à être résolu, illustrant l’inutilité de faire attendre les utilisateurs. Pour y parvenir, Linear a d’abord nettoyé son backlog existant (175 bugs en trois semaines), puis mis en place des processus stricts : chaque bug est soit corrigé immédiatement, soit marqué comme « ne sera pas corrigé ». Un tableau de bord permet de suivre les bugs ouverts et de rééquilibrer la charge entre les équipes. Cette approche améliore la qualité du produit, renforce la confiance des utilisateurs (qui voient leurs signalements résolus en un temps record) et influence la culture d’ingénierie, incitant à éviter les bugs dès le développement. Résultat : plus de 2 000 bugs corrigés en un an, et une relation client transformée en collaboration positive. Une politique devenue une valeur centrale, que personne ne souhaite abandonner.
Apache, suite à une mise à jour, est plus strict sur les vérifications SSL. Ça a eu un impact sur les serveurs Plesk qui utilisent nginx en tant que proxy. Voici la commande à exécuter en tant que root
echo -e "proxy_ssl_server_name on;\nproxy_ssl_name \$host;" > /etc/nginx/conf.d/fixssl.conf && service nginx restart
L'article traite des problèmes courants liés au DNS dans Kubernetes, en se concentrant sur trois principaux problèmes :
- Problème des ndots : Kubernetes tente d'être intelligent en essayant plusieurs suffixes DNS pour résoudre les noms, ce qui peut entraîner une charge accrue sur le serveur DNS et une latence plus importante. La solution consiste à utiliser des noms de domaine complets (FQDN) ou à ajuster la valeur de ndots.
- Problème de Lameduck : Lors de la suppression d'un pod, il peut y avoir un délai avant que kube-proxy ne mette à jour les règles iptables, ce qui peut entraîner des erreurs de connexion. La solution consiste à configurer un délai de grâce (lameduck) pour permettre à kube-proxy de se réconcilier.
- Problème de conntrack : Il existe un bug non corrigé dans kube-proxy en mode iptables qui provoque une perte de trafic UDP lors de la suppression d'un pod, affectant particulièrement le DNS. Les solutions partielles incluent l'ajout d'un timeout DNS ou la limitation du redémarrage des pods CoreDNS.
L'article souligne que ces problèmes peuvent avoir un impact significatif sur les performances et la fiabilité des clusters Kubernetes, en particulier ceux hébergés sur des plateformes comme AWS EKS.
En résumé, si les valeurs comparées dans max sont un calcul et qu'un de ces calculs échoue, l'intégralité de max échoue... donc il vaut mieux entourer le calcul par un @supports
Une histoire de volume monté, mais pas trop :-) et la solution est presque énervante de simplicité
La mise à jour de Proxmox vers la version 8.2.5 peut entraîner une régression des backup automatisés - mais un patch existe
Tout est dans le titre
Firefox ne tient pas compte du sélecteur :has après mise à jour du DOM (les autres navigateurs si) Eric Meyer partage une astuce pour que ça fonctionne
Un bug qui sévit sur les noms de domaine du Groenland
Un petit souci lors de la mise à jour d'une Debian sid : un changement de font non désiré... L'auteur montre comment il l'a résolu
Tout est dans le titre (via https://stephaniewalter.design/fr/blog/semaine-pixels-27-janvier-2017/ )
À retenir (via sebsauvage)
"�" : encodé en ISO, affiché en UTF-8.
"é" : encodé en UTF-8, affiché en ISO.
"" : encodé en WINDOWS-1252, affiché en UTF-8 (généralement).
Amusant