Julien Wittouck, architecte freelance et formateur, partage son expérience en passant de direnv à mise pour la gestion des variables d'environnement et des outils de développement. Il explique les limites de direnv et les avantages de mise, qui offre une gestion de packages, de variables d'environnement et d'exécution de tâches, tout en étant extensible via des plugins. Il détaille l'installation sur Linux et la configuration du shell pour une intégration fluide.
L'article explique le pattern CQRS (Command Query Responsibility Segregation), qui sépare les opérations de lecture et d'écriture vers la base de données. Ce pattern permet d'optimiser les performances et la sécurité en utilisant des modèles de données distincts pour les lectures et les écritures. L'article explore différentes implémentations du CQRS et montre comment Debezium peut simplifier sa mise en œuvre, notamment dans les architectures microservices.
Cet article de Sebastian Bergmann explique les différences entre les Data Transfer Objects (DTOs) et les Value Objects, et pourquoi l'immutabilité facilite les tests. Les DTOs, motivés techniquement, servent à transférer des données entre couches ou systèmes, tandis que les Value Objects, motivés par le domaine, représentent des concepts stables du domaine. L'immutabilité réduit la charge cognitive en test, car elle garantit que l'état des objets ne change pas. Les Value Objects, étant immuables, n'ont pas besoin de test doubles, contrairement aux DTOs qui peuvent en nécessiter si ils contiennent de la logique. L'utilisation d'objets immuables simplifie les tests en évitant les effets de bord indirects.
Stan partage son expérience en tant que mainteneur de projets open source (openvpn-install et wireguard-install) et explique comment Claude Code l'a aidé à gérer son backlog important. Grâce à l'IA, il a pu mettre en place des tests automatisés dans Docker, ce qui lui a permis de traiter plus efficacement les bugs et les demandes de fonctionnalités. Il décrit son workflow, les défis rencontrés et les améliorations apportées, comme la gestion des logs et l'ajout de fonctionnalités demandées depuis longtemps. Un témoignage intéressant sur l'impact des outils d'IA sur la maintenance de projets open source.
Ce second article de la série détaille la configuration avancée d’un nœud Proxmox VE sur un serveur dédié Scaleway avec une seule IP publique. L’auteur explique comment exposer plusieurs services (comme Garage S3 et l’interface Proxmox) de manière sécurisée via HTTPS, en utilisant Caddy comme reverse proxy avec gestion automatique des certificats SSL via Let’s Encrypt. Le guide couvre la configuration d’un réseau privé avec NAT, la création de règles de pare-feu Proxmox à trois niveaux (datacenter, nœud, VM/conteneur), et le dépannage des problèmes courants (DNS, ports, certificats, erreurs 502). Une attention particulière est portée sur l’identification des flux réseau internes et l’adaptation des IPSET pour éviter les blocages involontaires. L’objectif est de centraliser et sécuriser l’accès aux services tout en automatisant la gestion des certificats.
L’article détaille l’installation de Proxmox VE sur un serveur dédié Scaleway (modèle Start-2-S-SATA) sous Debian 13 Trixie, motivée par la volonté de remplacer une solution de sauvegarde instable basée sur un VPS Hetzner et un stockage Samba. L’auteur explique chaque étape : choix de Debian 13 pour éviter les versions obsolètes de Proxmox proposées par Scaleway, partitionnement manuel du disque (avec ajustements post-installation pour créer des partitions dédiées à /datastore et /data), configuration réseau en NAT pour permettre à plusieurs VMs/LXC de partager une seule IP publique, et sécurisation du serveur. Le guide inclut aussi la configuration du pare-feu Proxmox, l’activation du routage IPv4, et des astuces pour le dépannage. L’objectif final est de déployer un conteneur LXC avec Garage S3 pour stocker les sauvegardes Proxmox Backup Server de manière fiable et distante. Un tutoriel technique et pratique pour administrer un hyperviseur sur un serveur dédié avec une seule IP publique.
Ce billet explique comment contourner le blocage des lecteurs RSS par Cloudflare, qui les considère comme des bots. L'auteur, Nicolas Simond, détaille la création d'une règle personnalisée dans l'interface Cloudflare pour exclure les flux RSS de la protection anti-bot, permettant ainsi aux lecteurs d'accéder normalement aux flux. Il mentionne aussi une limite : les adresses IP blacklistées ne pourront pas bénéficier de ce contournement.
Andrea Verlicchi, expert en performance web, aborde dans cet article l’optimisation du Cumulative Layout Shift (CLS) pour les pages utilisant le défilement infini ou le bouton « Charger plus ». Il identifie deux causes majeures de CLS : les bannières promotionnelles retardées et le chargement dynamique de contenu (typique des sites e-commerce), qui déplace le pied de page hors de la vue et dégrade l’expérience utilisateur.
Pour le défilement infini, la solution consiste à insérer des squelettes (placeholders) dès le début de la requête, réservant ainsi l’espace nécessaire avant l’affichage du contenu réel, évitant tout saut de mise en page. Pour le bouton « Charger plus », bien qu’un délai de 500 ms après le clic soit toléré, il recommande aussi d’utiliser des squelettes pour garantir une stabilité visuelle, quel que soit le temps de réponse du réseau.
La règle d’or ? Ne jamais déplacer le contenu visible pendant le défilement et toujours réserver l’espace à l’avance, sauf après une interaction utilisateur explicite (clic), en respectant la fenêtre de 500 ms. Une approche simple mais efficace pour améliorer les Core Web Vitals et l’expérience utilisateur. 🎄✨
Le BFG Repo-Cleaner est un outil en Scala, plus rapide et plus simple que git-filter-branch, conçu pour nettoyer les dépôts Git en supprimant les gros fichiers ou les données sensibles comme les mots de passe. Il permet de cloner un dépôt, de le nettoyer avec des commandes spécifiques, puis de pousser les modifications. Exemples d'utilisation : suppression de fichiers spécifiques, suppression de blobs volumineux, remplacement de texte sensible. Le BFG ne modifie pas le dernier commit pour éviter les problèmes de déploiement.
L'article explore l'importance souvent sous-estimée du titre de page (
En octobre 2025, une panne majeure de l'hébergeur AWS a perturbé de nombreux services Internet, relançant la question de la dépendance du Web à ces géants. Bien que la panne soit localisée et logicielle, ses conséquences ont été amplifiées par la complexité et l'interconnexion des services. L'article analyse les réactions médiatiques, souvent sensationnalistes, et souligne la difficulté de gérer des infrastructures aussi vastes. Il invite à une réflexion sur les compromis entre robustesse et diversité des services offerts.
Ce billet de blog explique pourquoi l'auteur a remplacé les Makefiles par Castor, un task runner développé par JoliCode, pour automatiser ses projets PHP. Castor permet d'utiliser du PHP au lieu de scripts shell fragiles, offrant une meilleure expérience développeur avec autocomplétion, documentation et refactoring. L'auteur détaille comment Castor gère le démarrage du projet, en attendant intelligemment que la base de données soit prête, et montre un exemple de code pour illustrer ses propos.
ALTCHA propose une solution de protection contre les bots et le spam, conforme au RGPD et à d'autres réglementations internationales, sans suivi, cookies ou fingerprinting. Leur système, auto-hébergé et open source, utilise une vérification basée sur le Proof-of-Work (PoW) pour une expérience utilisateur fluide, avec une option de défi par code pour les cas à haut risque. ALTCHA Sentinel offre une protection adaptative et discrète, idéale pour les entreprises et les sites web, disponible également sous forme de plugin pour WordPress.
Cordon est un outil open-source qui utilise des embeddings de transformateurs et des scores de densité pour identifier des anomalies sémantiques dans de grands fichiers de logs, réduisant ainsi les logs massifs aux sections les plus anormales pour une analyse plus facile. Il filtre les motifs répétitifs et met en avant les événements inhabituels ou regroupés. Cordon supporte plusieurs backends comme sentence-transformers, llama.cpp, et des APIs distantes (OpenAI, Gemini, etc.). Il peut être installé via PyPI ou depuis la source, et offre une utilisation en ligne de commande ainsi qu'une API Python. Pour une explication détaillée de la méthodologie, un article sur Red Hat Developer est disponible.
Steve Yegge partage six nouvelles astuces pour mieux coder avec des agents, basées sur ses expériences récentes. Parmi celles-ci, il souligne que le logiciel est désormais jetable, avec une durée de vie inférieure à un an, rendant les réécritures plus faciles et intelligentes que les corrections. Cette approche remet en question les conseils traditionnels, comme ceux de Joel Spolsky, et ouvre la voie à des architectures modernes et maintenables, posant un défi aux fournisseurs de SaaS tiers.
L'article explique comment l'auteur a résolu un problème de vitesse lente sur un câble USB-C en découvrant que l'orientation du câble affectait les performances. Il explore ensuite les détails techniques des connecteurs USB-C, qui possèdent 24 broches, chacune ayant une fonction spécifique. L'auteur fournit un diagramme simplifié des broches et explique que certaines broches sont interconnectées à l'intérieur du câble pour permettre la réversibilité. Il mentionne également que tous les câbles et chargeurs n'utilisent pas toutes les broches disponibles.
AGENTS.md est un format ouvert et simple pour guider les agents de codage, utilisé par plus de 60 000 projets open source. Il sert de complément au README.md en fournissant des instructions spécifiques pour les agents, comme les étapes de construction, les tests et les conventions, tout en gardant le README concis et axé sur les contributeurs humains. Le fichier AGENTS.md est compatible avec divers agents de codage et outils, et peut être adopté librement par quiconque trouve cela utile.
Cet article raconte l'expérience d'un développeur qui, après des années de confort dans son travail, se retrouve confronté à un collègue plus expérimenté qui remet en question ses méthodes et ses choix. Initialement frustré, il finit par accepter cette "claque" comme une opportunité d'apprentissage, ce qui lui permet de progresser et d'acquérir une compétence essentielle : se remettre en question sans le vivre comme un échec. L'auteur souligne l'importance d'accepter les critiques et de partager les connaissances pour évoluer dans ce métier.
Cet article met en lumière l'utilisation excessive de JavaScript pour résoudre des problèmes qui pourraient être mieux gérés par CSS. L'auteur, Chizaram Ken, souligne que les lacunes de connaissances poussent souvent les développeurs à sur-ingénieriser des solutions, ce qui impacte négativement les performances. Par exemple, des fonctionnalités CSS comme content-visibility: auto et les unités de vue modernes (dvh, svh, lvh) offrent des solutions efficaces sans JavaScript, mais les développeurs continuent de privilégier des solutions JavaScript par habitude. L'article explore des problèmes spécifiques comme la virtualisation dans React, les requêtes de conteneur et les animations de défilement, en proposant des alternatives CSS et en discutant des cas où JavaScript reste pertinent. Un appel est lancé pour éviter d'utiliser useEffect et useState pour des problèmes de rendu, en insistant sur l'importance de comprendre les capacités natives du navigateur avant de recourir à des bibliothèques JavaScript.
Nicolas Jourdan explique comment combiner trois patterns de conception (Specification, Rule et Chain of Responsibility) pour gérer efficacement les règles métier complexes en PHP. L'article détaille d'abord le pattern Specification, qui transforme les conditions métier en objets réutilisables et testables, évitant ainsi les if imbriqués et le code dupliqué. Il présente ensuite une implémentation moderne de ce pattern avec une interface de base et des classes pour les opérations logiques (AND, OR, NOT). Cette approche permet de construire des conditions métier claires et modulaires, facilitant ainsi la maintenance et l'extensibilité du code.