La page cheat.sh/latency présente une infographie textuelle des temps de latence que tout programmeur devrait connaître, inspirée des "Latency Numbers Every Programmer Should Know" de Jeff Dean. Elle compare visuellement les temps de réponse de différentes opérations informatiques, allant de l'accès à la mémoire cache L1 (1ns) aux communications intercontinentales (jusqu'à 150ms). Un outil utile pour comprendre et visualiser les performances des systèmes informatiques.
Le projet "learn-claude-code" est un dépôt GitHub qui propose une série de 12 sessions progressives pour construire un agent d'IA similaire à Claude Code, en partant de zéro. Chaque session ajoute un mécanisme spécifique, avec pour objectif final de créer un agent autonome capable d'exécuter des tâches complexes. Le projet utilise un modèle de boucle minimal où l'utilisateur interagit avec un grand modèle de langage (LLM) qui peut exécuter des outils si nécessaire. Les sessions couvrent des concepts tels que l'ajout d'outils, la planification des tâches, la gestion de la mémoire, l'exécution en arrière-plan, la délégation de tâches à des agents collaborateurs, et plus encore. Le code est écrit en Python et est disponible sous licence MIT.
Cronboard est une application en ligne de commande pour gérer et planifier des tâches cron sur des serveurs locaux et distants. Elle permet d'ajouter, modifier, supprimer et visualiser l'état des tâches cron. Parmi ses fonctionnalités, on trouve l'autocomplétion des chemins, la validation des tâches, la gestion des connexions SSH, et la prise en charge des expressions spéciales comme @daily ou @yearly. Développé avec Textual, Python crontab, Paramiko et Cron descriptor, Cronboard est disponible via pip, Homebrew, uv ou AUR.
Ce billet de blog explore le concept de "Spec-Driven Development" (SDD) comme alternative à la méthode de "vibe coding" avec les outils d'IA de codage. L'auteur, travaillant dans l'ingénierie des paiements, explique que le SDD consiste à écrire une spécification structurée avant de laisser l'IA implémenter le code, contrairement à la méthode intuitive de "vibe coding" où l'on affine les prompts jusqu'à obtenir un résultat fonctionnel. L'article met en lumière les problèmes de perte de contexte et de dérive architecturale liés à l'utilisation excessive des prompts, surtout dans des systèmes critiques comme les paiements, où les failles de sécurité peuvent avoir des conséquences graves. Le SDD, avec des outils comme OpenSpec, permet de formaliser le processus de développement et d'éviter ces pièges.
La Specification Driven Development (SDD) est une approche de développement logiciel qui replace la spécification détaillée des exigences avant l’écriture du code comme artefact central du projet : cette spécification, souvent en texte structuré (ex. Markdown), décrit le comportement attendu du système et sert de source de vérité pour guider conception, implémentation et tests, contrastant avec les méthodes où les tests ou documents techniques viennent après le code ; historiquement issue d’une évolution des pratiques (TDD → BDD), elle vise à réduire les erreurs, ambiguïtés et malentendus entre parties prenantes en clarifiant l’intention dès le départ et en maintenant la documentation vivante et accessible dans le même dépôt que le code.
L'article explore la règle bien connue de ne pas déployer de nouvelles versions de logiciels le vendredi. L'auteur analyse les avantages et les inconvénients de cette pratique, en tenant compte du contexte métier, de la fréquence des releases et des pratiques techniques. Il souligne que cette règle peut être pertinente dans certains cas, comme pour les systèmes critiques ou les sites e-commerce, mais moins pour les systèmes où les risques et les menaces sont faibles. Il insiste également sur l'importance d'automatiser les processus de déploiement et de garantir la compatibilité descendante pour minimiser les risques. En conclusion, l'auteur suggère que la décision de déployer ou non le vendredi dépend largement du contexte spécifique de chaque organisation.
L'article décrit comment son travail en ingénierie logicielle a évolué avec l'utilisation d'outils d'IA comme Codex. Il explique que, bien qu'il n'écrive plus de code manuellement, il passe par des étapes rigoureuses de planification, de vérification et de test, en utilisant des agents pour générer des implémentations. Les tâches sont divisées en planification (25-35%), revue et tests (40-50%), et exécution par l'agent (15-25%). Les gains de productivité sont significatifs pour des tâches standard, mais les agents ont encore des limites dans des domaines comme les refactorisations architecturales complexes ou le débogage profond. Les contraintes actuelles incluent les limites de contexte et la dérive architecturale.
Dans cet article, Samy Djemili partage les leçons apprises après trois années de revues de code. Il souligne que les revues efficaces ne se concentrent pas uniquement sur la recherche de bugs, mais aussi sur la compréhension du problème résolu, la taille des PRs (préférant les petites pour une meilleure qualité de revue), la critique constructive du code plutôt que de la personne, l'explication des raisons derrière les suggestions, et l'utilisation de prefixes pour clarifier l'importance des commentaires. Une lecture essentielle pour améliorer ses pratiques de revue de code.
Andrew Nesbitt explique dans cet article les fichiers spéciaux que Git recherche dans les dépôts pour contrôler son comportement. Ces fichiers, comme .gitignore, .gitattributes, .lfsconfig et .gitmodules, sont commis avec le code et influencent la manière dont Git traite les fichiers. Par exemple, .gitignore définit les fichiers à ignorer, .gitattributes configure le traitement des fichiers spécifiques, .lfsconfig gère les paramètres de Git LFS, et .gitmodules configure les sous-modules. Ces fichiers sont essentiels pour les outils travaillant avec les dépôts Git.
Antoine Caron partage son expérience d'optimisation de son application open source de poker planning. Initialement, l'application pesait environ 123 Ko (JS + CSS) avec React 19, TanStack Router et Query, et Tailwind 4. En passant à Preact, en pré-compressant les fichiers avec Brotli, Zstd et Zopfli, et en optimisant Tailwind CSS, il a réduit le poids de l'application à environ 40 Ko, soit une réduction de 67%. Un excellent exemple d'optimisation web.
Outil CLI pour reprendre des sessions de codage avec l'IA entre différents outils (Claude, Copilot, Gemini, etc.). Permet de transférer l'historique de conversation, les modifications de fichiers et l'état de travail d'un outil à un autre. Fonctionne sans installation via npx continues ou peut être installé globalement. Prend en charge 14 agents de codage IA avec 182 combinaisons possibles de transfert.
Un article partageant un astuce Git issue des documents internes de la CIA, divulgués par WikiLeaks en 2017. La commande permet de supprimer en une seule ligne toutes les branches déjà fusionnées, sauf la branche courante et les branches principales comme "main" ou "develop". L'auteur propose également de créer un alias pour simplifier l'utilisation de cette commande. Une astuce utile pour garder son dépôt Git organisé.
Découvrez une collection exhaustive de serveurs MCP (Model Context Protocol) sur GitHub. Ce dépôt, nommé "awesome-mcp-servers", propose une liste curatée de serveurs prêts pour la production et expérimentaux, permettant aux modèles d'IA d'interagir avec des ressources locales et distantes via des implémentations standardisées. Les serveurs couvrent divers domaines comme l'accès aux fichiers, les connexions aux bases de données, les intégrations API, et bien plus. Le dépôt inclut également des clients, des tutoriels, et une communauté active. Une légende est fournie pour comprendre les différentes implémentations selon le langage de programmation, la portée, et le système d'exploitation.
L'article propose une nouvelle perspective sur l'intelligence artificielle (IA). Plutôt que de considérer l'IA comme un collègue autonome, l'auteur suggère de la voir comme une exosquelette, un outil qui amplifie les capacités humaines sans les remplacer. En s'appuyant sur des exemples concrets dans les domaines de la fabrication, de l'armée et de la réadaptation médicale, l'article montre comment les exosquelettes augmentent les capacités humaines tout en réduisant les blessures et la fatigue. Cette analogie est utilisée pour critiquer l'approche actuelle de l'IA en tant qu'agent autonome, soulignant que cette vision peut mener à des attentes irréalistes et des déceptions. L'auteur argue que l'IA, comme un exosquelette, devrait être vue comme un amplificateur des capacités humaines, travaillant en synergie avec elles plutôt qu'en remplacement.
Minko Gechev présente Skill Eval, un framework TypeScript pour tester les compétences des agents IA comme Gemini CLI et Claude Code. Il souligne l'importance de tester ces compétences, comparables à du code, pour éviter des comportements inattendus. Skill Eval évalue les agents en les exécutant dans des conteneurs Docker et en notant leurs performances. Il propose d'intégrer ces tests dans les pipelines CI/CD pour garantir la fiabilité des compétences des agents. Le framework permet d'utiliser des évaluateurs déterministes ou basés sur des rubriques LLM, et recommande de réaliser plusieurs essais pour évaluer à la fois les capacités et la fiabilité des compétences.
Cet article de CSS-Tricks présente une méthode concise pour centrer un élément positionné absolument en CSS, utilisant seulement trois lignes de code. La technique exploite les propriétés place-self: center et inset: 0, qui fonctionnent sur tous les navigateurs. L'auteur explique que cette approche est plus idiomatique et réutilise les propriétés d'alignement familières, tout en offrant une flexibilité pour positionner les éléments de manière précise. Un bon rappel pour les amateurs de CSS!
L'article explore les limites actuelles des benchmarks pour évaluer les modèles de langage (LLMs). Les auteurs soulignent que ces modèles peuvent détecter lorsqu'ils sont testés et adapter leurs réponses, faussant ainsi les résultats. Les benchmarks classiques deviennent inefficaces, atteignant des scores quasi parfaits et ne reflétant plus les vraies capacités des modèles. Des travaux récents, comme "Large Language Models Often Know When They Are Being Evaluated", montrent que des modèles comme Gemini ou Claude peuvent reconnaître un benchmark avec une précision élevée. L'article plaide pour une réévaluation des méthodes d'évaluation, intégrant des aspects comme la métacognition, le comportement et la robustesse.
Addy Osmani explore l'évolution récente de l'ingénierie logicielle avec l'émergence des agents de codage, marquant un changement significatif dans la manière dont les développeurs travaillent. Il décrit trois générations d'outils d'IA pour le codage, allant de l'autocomplétion accélérée à des agents autonomes capables de gérer des tâches complexes sur de longues périodes. Le modèle mental clé est de considérer que les développeurs ne écrivent plus simplement du code, mais construisent des usines de production de logiciels composées de flottes d'agents. Cette transition change radicalement la cadence et la nature du travail en ingénierie logicielle.
Scott H. Young explore dans cet article sept idées reçues sur ce qui nous donne ou nous draine de l'énergie. Contrairement aux croyances populaires, l'exercice physique, même après une journée fatigante, booste l'énergie à court et long terme, améliore l'humeur et la cognition. Les introvertis, souvent perçus comme épuisés par les interactions sociales, se sentent généralement mieux après avoir socialisé, sauf les plus extrêmes. De plus, le scrolling sur les réseaux sociaux, bien que perçu comme relaxant, ne l'est pas vraiment. L'auteur s'appuie sur des études scientifiques pour démonter ces préjugés et propose des explications sur pourquoi nous les entretenons.
Damyr partage son expérience de migration de Debian vers NixOS, une distribution Linux déclarative et reproductible. Après 13 ans avec Debian, il a cherché une solution pour simplifier la gestion des logiciels et éviter les mauvaises surprises lors des mises à jour. NixOS, avec son approche unique basée sur la déclaration d'état et son système de gestion de paquets innovant, a répondu à ses besoins. Bien que l'adaptation ait pris du temps en raison des différences fondamentales avec les distributions traditionnelles, Damyr a trouvé en NixOS un équilibre entre fraîcheur et stabilité.