L’article explique comment créer un extracteur de texte PDF personnalisé en Node.js et TypeScript en partant de zéro et en construisant une API avec Express qui reçoit des fichiers PDF, utilise des bibliothèques comme pdf-parse pour extraire le texte et renvoie ce contenu via des endpoints HTTP, tout en montrant comment gérer les uploads, configurer TypeScript, implémenter des fonctions de parsing (y compris par plage de pages) et gérer les cas d’erreur, avec pour objectif d’offrir plus de contrôle et de flexibilité qu’avec des solutions toutes faites.
Ce billet de blog explore deux méthodes pour évaluer la qualité des suites de tests automatisés, particulièrement dans le contexte de l'écriture de tests par des modèles de langage (LLMs). L'auteur, Mark Seemann, discute d'abord de la couverture de code, souvent critiquée mais potentiellement utile pour les tests générés par des LLMs, car elle peut servir de seuil minimal. Ensuite, il aborde la mutation testing, une technique plus avancée qui modifie le code pour vérifier si les tests détectent ces changements, révélant ainsi des cas non couverts. Bien que ces méthodes aient des limites, elles offrent des pistes pour critiquer et améliorer les tests, surtout dans un contexte où les tests sont générés automatiquement.
Ce guide explique comment sécuriser un serveur personnel Linux sur un MiniPC en installant Fail2ban avant de l'ouvrir à Internet. Fail2ban protège contre les attaques par force brute en bannissant les adresses IP après un nombre défini de tentatives de connexion échouées. Le tutoriel détaille l'installation de Fail2ban, l'ouverture du serveur sur Internet, et l'installation de Docker pour déployer des services comme Adguard. Il souligne l'importance de la sécurité même pour les serveurs personnels, souvent ciblés par des robots malveillants.
Le Spec-Driven Development (SDD) est une approche où la spécification formalisée devient l'artefact central du projet, guidant l'architecture, l'implémentation et les tests. Cette méthode vise à éviter les incompréhensions et la dette technique en clarifiant les comportements attendus avant l'implémentation. La spécification est versionnée avec le code et doit être maintenue à jour, agissant comme un contrat que l'implémentation doit respecter. Le cycle SDD comprend plusieurs phases itératives, dont la rédaction des exigences et des critères d'acceptation, avant de passer à l'implémentation et aux tests. #SpecDrivenDevelopment #DéveloppementLogiciel #GestionDeProjet
Chez Les-Tilleuls.coop, l'IA redéfinit les métiers du développement en passant d'une logique de codage à une approche d'orchestration. Les développeurs supervisent désormais des agents autonomes qui analysent, implémentent, testent et documentent, réduisant ainsi le temps passé à écrire du code. L'utilisation de fichiers Markdown pour structurer la connaissance et la documentation devient cruciale pour optimiser l'efficacité des LLM. L'intégration de l'IA dans les processus Dev/PO vise à centraliser l'information dans le repository Git, facilitant ainsi une collaboration fluide entre développeurs et Product Owners.
Gee explique les mécanismes de l'économie de l'attention, en quoi c'est délétère à tous les niveaux (individuel comme social), et ce qui, selon lui, permettrait d'améliorer notre condition. Comme toujours, c'est plein d'humour et c'est sourcé.
La règle CSS @scope offre une solution native pour isoler finement les styles en limitant l’application des règles à un sous-arbre spécifique du DOM, ce qui évite que les styles d’un composant se propagent ailleurs tout en gardant une spécificité faible et une meilleure maintenabilité du code ; l’article montre comment cibler uniquement certains éléments comme des <h2> dans des .card, explique l’usage des pseudo-classes :scope et de l’esperluette & pour référencer la racine de portée, et souligne des avantages comme la robustesse face aux modifications du DOM par rapport à des sélecteurs classiques.
L’auteur explique qu’à force d’accumuler des besoins de stockage dans son homelab, il a décidé de concevoir et imprimer en 3D son propre NAS plutôt que d’acheter une solution du commerce trop coûteuse ou peu adaptée, en partant d’un micro-PC (Lenovo M720q) et en concevant un boîtier personnalisé avec des caddies et un backplane pour gérer jusqu’à huit disques 2,5″, le tout en RAID pour la sécurité des données, avec plusieurs itérations de conception sous FreeCAD pour optimiser l’assemblage, la ventilation et les connexions avant d’intégrer la machine à son cluster Proxmox.
Cet article détaille trois retours d’expérience marquants. Sellsy a partagé sa migration réussie de 50 000 bases de données d’un monolithe MariaDB vers une architecture distribuée PostgreSQL/Kubernetes, sans interruption de service, en utilisant CloudNativePG et ZFS pour optimiser les performances et réduire les coûts. Ubisoft a expliqué comment rationaliser l’usage de Kubernetes à grande échelle avec Capsule et une Internal Developer Platform, permettant une gestion multi-tenant efficace et scalable. Enfin, l’INSEE a présenté son approche MLOps pour industrialiser l’entraînement et le déploiement de modèles d’IA, en brisant les silos entre data scientists et développeurs, et en automatisant les pipelines avec Argo Workflows. Une journée riche en enseignements techniques et organisationnels !
Le 3 février 2026, Ippon Technologies a participé aux Cloud Native Days France (ex-Kubernetes Community Days), un événement dédié au Cloud Native, au DevOps et à la souveraineté numérique. La journée a débuté par une keynote sur la souveraineté et l’open source, soulignant l’importance de contribuer activement à ces écosystèmes pour réduire la dépendance aux acteurs américains. Plusieurs interventions ont illustré ces enjeux, comme celle du CERN, qui gère des pétaoctets de données grâce à une infrastructure cloud native optimisée, ou celles de la DINUM et de Scaleway, mettant en avant des solutions souveraines basées sur OpenStack et Kubernetes. Une table ronde a également abordé la formation à Kubernetes et les défis du platform engineering. Enfin, la présentation de Kubo, une distribution Kubernetes open source française, a détaillé son architecture multi-tenant sécurisée, utilisant Capsule et Keycloak pour une gestion fine des droits et une authentification moderne. L’événement a marqué un tournant avec son nouveau nom, symbolisant une plus grande liberté éditoriale et une ouverture accrue.
PHP 8.5, sorti le 20 novembre 2025, introduit une fonctionnalité permettant de simplifier la gestion des objets immuables en autorisant la mise à jour de propriétés lors du clonage. Cette amélioration facilite la création de nouvelles instances avec des valeurs modifiées, réduisant ainsi la complexité du code pour les objets immuables. Par exemple, la classe GPSLocation peut maintenant être clonée avec des propriétés spécifiques mises à jour, comme la latitude, la longitude ou l'altitude, sans avoir à recréer manuellement une nouvelle instance. #php #immuable #clone
L’article explique comment préparer et conduire des entretiens analytiques pour recueillir des données utiles à une recherche ou résolution de problème, en soulignant l’importance de définir clairement les objectifs de la recherche et de sélectionner un panel pertinent d’interviewés avant de commencer, ce qui aide à cadrer les questions et obtenir des insights exploitables. Il détaille aussi la construction d’un guide d’entretien (avec un ordre de questions allant du général au spécifique, des questions ouvertes, et une numérotation pour faciliter l’analyse) pour structurer l’échange de manière à réduire les biais et maximiser la qualité des informations recueillies.
L'article se penche sur la théorie farfelue du réacteur nucléaire de Gizeh, popularisée par des figures comme Christopher Dunn et Michel Lasserre. L'auteur critique la crédibilité de ces "experts" autoproclamés, soulignant leurs lacunes scientifiques et leur tendance à recycler des idées complotistes éculées. Il met en lumière les contradictions et les exagérations de leurs arguments, tout en rappelant que ces théories ne résistent pas à un examen rigoureux. Un article qui démystifie avec humour et pertinence les élucubrations autour des pyramides et des technologies anciennes.
L'article propose 10 étapes éprouvées pour gérer efficacement son énergie et atteindre ses objectifs de développement personnel. Contrairement à la gestion du temps, il s'agit de reconnaître les fluctuations de nos ressources physiques, mentales et émotionnelles. Les conseils incluent le suivi de ses cycles d'énergie naturels, l'alignement des tâches avec son type d'énergie, l'optimisation du sommeil et de la nutrition, la protection de son énergie cognitive et émotionnelle, et la mise en place de rituels de récupération. Ces stratégies permettent de travailler plus intelligemment, de récupérer plus rapidement et de maintenir sa clarté durant les périodes exigeantes.
L'auteur de ce blog, initialement sceptique sur l'impact des modèles de langage (LLM) sur les logiciels SaaS, a remplacé un service SaaS coûteux de 120$ par an en seulement 20 minutes grâce à du code généré par un LLM. Il a utilisé Codex pour recréer une fonctionnalité de témoignages sur son site web, en intégrant les témoignaux dans un fichier JSON et en les générant en HTML lors de la compilation. Bien que cette solution soit adaptée à un développeur comme lui, elle pourrait être moins accessible pour des utilisateurs non techniques. L'expérience montre cependant à quel point il est devenu facile de remplacer certains services SaaS avec des outils d'IA, posant des questions sur l'avenir de ces produits et le rôle des ingénieurs logiciels.
Ce billet explique comment implémenter un système de génération automatique de métadonnées SEO (titres, descriptions, mots-clés) dans une administration EasyAdmin avec Symfony, en utilisant l'API Gemini via le bundle Symfony AI et Symfony Messenger pour gérer l'asynchrone. L'auteur détaille la configuration nécessaire, l'utilisation de Redis pour le transport des messages et le rate limiting pour protéger le quota de l'API Gemini. Le système permet aux rédacteurs d'accepter ou d'ignorer les suggestions générées automatiquement.
Ce partage explique l'importance de CORS (Cross-Origin Resource Sharing) pour sécuriser les sessions utilisateur sur les APIs web. Il décrit comment CORS agit comme un garde-fou en contrôlant l'accès aux ressources entre différents domaines, empêchant ainsi le vol de données via des requêtes cross-origin. L'article détaille les mécanismes de CORS, y compris les requêtes simples et les prévols (preflight), et fournit des exemples de configuration pour Symfony utilisant le NelmioCorsBundle, soulignant l'importance de la directive allow_credentials: true pour protéger les sessions utilisateur.
Cet article de Ihor Pal sur Medium explique le flux de traitement d'une requête HTTP dans une architecture propre (Clean Architecture). Il détaille comment une requête traverse les différentes couches (Domain, Use Cases, Interface Adapters, Frameworks) en montrant les structures de données échangées (DTOs, Entités, Value Objects) et l'orientation des dépendances. L'article illustre également la distinction entre les entités ORM et les entités de domaine, et met en lumière deux points clés d'inversion de dépendance. Un diagramme de flux complet et une structure de projet pratique en PHP/Symfony sont fournis pour clarifier le processus. L'objectif est de donner une vision dynamique de l'architecture propre, au-delà de la simple description statique des couches.
Ce billet explique comment construire un système de redirections HTTP complet avec Symfony, incluant des règles exactes et regex, un cache Redis, un suivi analytique asynchrone via Messenger, et une création automatique lors des changements de slugs. L'entité RedirectRule est au cœur du système, avec des validateurs personnalisés pour éviter les boucles et les patterns regex invalides. Des property hooks sont utilisés pour exposer des propriétés calculées sans getter.
Récap du jour 2 de Touraine Tech 2026 : Une journée riche en retours d’expérience techniques et humains. Florian Forestier a partagé une aventure de debugging bas niveau sur du matériel réseau obsolète, révélant comment une vieille version d’Ubuntu a permis de résoudre un bug kernel lié aux pilotes QLogic. Paul Pinault a exploré les failles de sécurité des ampoules connectées, soulignant les défis réglementaires (RED, Cyber Resilience Act) et les vulnérabilités matérielles. Antoine Caron et Mathieu Mure ont rappelé l’impact des images sur les performances web, avec des conseils pratiques pour optimiser leur chargement (AVIF, srcset, Git LFS). Matthias et Sylvain Gougouzian ont présenté un projet maker familial inspirant, mêlant apprentissage technique et communication intergénérationnelle. Enfin, Olivier Poncet a disséqué l’architecture ingénieuse d’Another World (1991), un jeu vidéo révolutionnaire conçu par une seule personne, mettant en lumière des optimisations matérielles et logicielles audacieuses. Une édition marquée par des échanges humains et techniques de qualité, avec une mention spéciale pour l’organisation et l’ambiance conviviale.