Bagel est un outil en ligne de commande (CLI) open source développé par BoostSecurity, conçu pour inventorier les métadonnées pertinentes pour la sécurité sur les postes de travail des développeurs. Il analyse les configurations et outils (Git, SSH, npm, environnements cloud, etc.) ainsi que les emplacements potentiels de secrets, sans jamais exfiltrer les valeurs sensibles, se limitant aux métadonnées comme les chemins, permissions ou types de clés.
L’outil propose neuf sondes pour détecter des configurations risquées (comme des clés SSH sans phrase de passe ou des registres npm non sécurisés) et huit détecteurs de secrets, uniquement pour signaler leur présence sans les exposer. Les rapports, générés en JSON, sont locaux et respectueux de la vie privée, évitant toute opération intrusive ou injection de processus.
Bagel permet aux équipes de sécurité d’identifier des vulnérabilités dans la chaîne d’approvisionnement (mauvaise hygiène des clés, fuites de credentials) et d’appliquer des contrôles de posture via des flags comme --strict. Des binaires précompilés sont disponibles pour macOS, Linux et Windows.
Ce billet propose une méthode pour détecter et supprimer les secrets exposés sur les postes de travail des développeurs avant qu’ils ne soient exploités par des acteurs malveillants. L’auteur souligne que les gestionnaires de paquets (PyPI, npm, brew, etc.) et les outils comme VS Code élargissent la surface d’attaque, rendant les postes vulnérables aux vols de données d’identification. La plupart des entreprises se contentent de solutions passives, comme espérer que leurs outils de sécurité endpoint bloquent les menaces.
Pour améliorer cette situation, l’auteur recommande une combinaison d’outils open-source : Bagel, un scanner de secrets configuré pour repérer les clés SSH, les identifiants GitHub ou cloud, et Fleet, une plateforme de gestion et de télémétrie basée sur osquery. Ensemble, ils permettent de surveiller les postes en continu, d’évaluer la conformité via des politiques personnalisables et d’automatiser les notifications ou blocages (via Slack ou des fournisseurs d’identité) en cas de faille critique. L’intégration repose sur des scripts macOS (Fleebag) pour déployer Bagel et centraliser les résultats dans Fleet.
L’approche vise à remplacer les vérifications manuelles par un processus automatisé et scalable, adapté même aux petites structures. Les outils, écrits en Go et conçus pour une intégration fluide, offrent une alternative légère aux solutions commerciales, tout en s’appuyant sur des standards comme JSON pour l’interopérabilité.
Ce dépôt GitHub propose une implémentation de référence pour la détection et la correction autonome de vulnérabilités dans le code, basée sur les modèles Claude d'Anthropic. L'outil, non maintenu et sans contributions acceptées, permet de créer un pipeline personnalisable pour l'analyse de sécurité, incluant la modélisation des menaces, le scan, le triage et le patching. Il s'appuie sur des compétences interactives comme /threat-model ou /patch, ainsi qu'un harnais autonome pour automatiser le processus de recon → find → triage → report → patch.
Le système est conçu pour être sécurisé, avec des exécutions en bac à sable (gVisor) pour les opérations risquées, et des vérifications manuelles requises pour les modifications de code. Bien que fonctionnel pour des cas d'usage spécifiques (comme les vulnérabilités mémoire en C/C++), il nécessite une adaptation pour d'autres langages ou classes de vulnérabilités. Une documentation détaillée et des scripts d'installation sont fournis pour faciliter la configuration.
Anthropic propose en parallèle une solution managée payante, Claude Security, pour une approche plus robuste et scalable. Le dépôt sert ainsi de base technique ouverte pour expérimenter ou s'inspirer, sans garantie de support ou de compatibilité universelle.
docker-mailserver est un serveur mail complet et prêt pour la production, conçu pour être simple à déployer et à maintenir dans un conteneur Docker. Il intègre des services essentiels comme SMTP (Postfix), IMAP/POP3 (Dovecot), ainsi que des outils anti-spam et antivirus (Rspamd, Amavis, SpamAssassin, ClamAV). Le projet mise sur une configuration basée sur des fichiers plutôt qu’une base de données SQL, facilitant ainsi la gestion et la versioning.
Le serveur supporte l’authentification via LDAP ou OAuth2, et propose des fonctionnalités avancées comme DKIM, DMARC et Fail2ban pour renforcer la sécurité. Une documentation détaillée et un script de configuration simplifient la mise en place et la maintenance. Le projet, initialement créé par @tomav, est désormais maintenu par des contributeurs bénévoles depuis 2021.
Avec plus de 18 000 étoiles et une communauté active, ce dépôt GitHub offre une solution clé en main pour héberger un serveur mail autonome, tout en restant flexible et évolutif.
Le billet analyse les échecs récents de délégation à l’IA (chatbot BMW proposant un rachat au centime près, boutique gérée par une IA, inventaire Starbucks) et souligne que le vrai risque ne réside pas dans le code généré, mais dans les couches supérieures : architecture, direction et prise de décision autonome. L’auteur distingue trois niveaux de délégation, du plus contrôlé (vibe coding avec relecture du code) au plus dangereux (décision exécutée sans supervision humaine), où les garde-fous traditionnels (revues de code, CI) deviennent inefficaces.
Les exemples illustrent comment des erreurs d’architecture ou de décision, invisibles dans un diff, peuvent avoir des conséquences graves en production, comme le chatbot BMW qui a engagé la concession sans validation humaine. Les outils de développement, en automatisant davantage, risquent de reproduire ces dérives en descendant eux-mêmes les marches de la délégation, sans filet adapté.
L’auteur plaide pour une refonte des garde-fous, non plus centrés sur la relecture du code, mais sur la supervision des décisions et de l’architecture, là où l’IA agit sans retour possible. La solution passe par une réintroduction systématique de l’humain dans les processus critiques, comme l’a fait BMW après l’incident.
L’UX Research traverse une période de transformation marquée par des contraintes budgétaires, des équipes réduites et une pression accrue pour aller vite, comme l’a illustré le festival UXinsight 2026. L’événement a mis en lumière les défis éthiques et méthodologiques posés par l’IA et le Business Design, interrogeant l’équilibre entre rapidité, productivité et rigueur scientifique. Les discussions ont souligné l’importance de préserver la vérité terrain tout en s’adaptant aux nouvelles technologies.
Un des temps forts a été la présentation de Nidhi Jalwal et Serena Westra (IKEA), qui ont exploré l’articulation entre UX Research et Business Design. Leur approche repose sur la formulation d’hypothèses structurées (« Nous croyons que… ») et leur évaluation via une matrice croisant importance et preuves, permettant de cibler les risques prioritaires. Cette méthode, ancrée dans la stratégie d’entreprise, vise à réduire l’incertitude en validant rapidement des hypothèses clés, parfois avec des données internes existantes.
Par ailleurs, Colman Walsh (UX Design Institute) a abordé les limites de la compréhension de l’IA par les professionnels, insistant sur la nécessité de maîtriser les prompts pour exploiter efficacement ces outils. L’enjeu réside dans l’adaptation des workflows de recherche aux nouvelles technologies, sans sacrifier la qualité ni l’éthique, tout en intégrant des garde-fous face aux biais algorithmiques.
Scott H Young remet en question l’idée que le manque de volonté explique nos échecs à adopter des habitudes bénéfiques, comme l’exercice ou l’épargne. Il souligne que ces comportements, souvent perçus comme des corvées, sont en réalité des opportunités d’amélioration de notre vie, mais que leur mise en œuvre relève davantage d’un problème d’ingénierie comportementale que d’un défaut de caractère. Selon lui, la plupart des gens pourraient en tirer profit en ajustant les systèmes qui soutiennent ces habitudes.
L’auteur critique l’approche négative qui consiste à blâmer la paresse ou le manque de discipline, préférant une vision positive où ces changements sont des leviers pour une vie meilleure. Il compare la construction de bonnes habitudes à celle d’un pont : elle nécessite une structure solide, des fondations stables et une certaine flexibilité pour résister aux aléas. Young suggère que, plutôt que de chercher à devenir une "personne meilleure", il faut optimiser son environnement et ses routines pour faciliter ces comportements.
Enfin, il admet que certaines recommandations peuvent être exagérées ou inadaptées, et que chacun pourrait avoir atteint un équilibre optimal. Cependant, pour la majorité, des ajustements simples pourraient apporter des bénéfices significatifs. L’enjeu n’est donc pas la volonté, mais la conception de systèmes qui rendent ces habitudes naturelles et durables.
Cet article explique la mise en place d’un stockage persistant sur un cluster Kubernetes on-premise en utilisant Longhorn. L’auteur détaille les prérequis nécessaires, comme un cluster kubeadm sous Debian 13 avec trois nœuds équipés chacun d’un disque dédié de 100 Go, ainsi que la stack Traefik, cert-manager et MetalLB pour l’ingress. La préparation des nœuds inclut l’installation de paquets comme open-iscsi et nfs-common, et la configuration du disque dédié via mkfs.ext4 et fstab.
L’installation de Longhorn s’effectue via Helm, avec une configuration par défaut pointant vers le chemin /var/lib/longhorn-disk et une réplication des données sur trois nœuds. L’auteur vérifie ensuite le bon fonctionnement des pods et la création automatique d’une classe de stockage Longhorn. Un test de stockage persistant est réalisé avec un PersistentVolumeClaim, confirmant l’apparition du volume dans l’interface utilisateur de Longhorn avec trois réplicas.
Enfin, l’article couvre l’exposition sécurisée de l’interface utilisateur de Longhorn via HTTPS avec une authentification basique et un certificat Let’s Encrypt. La configuration inclut la création d’un secret pour l’authentification, un Middleware Traefik pour l’authentification basique, et un certificat TLS. La mise à jour de la Gateway Traefik permet d’accéder à l’interface Longhorn de manière sécurisée.
L’article explique comment organiser ses worktrees Git avec Antigravity 2.0, une fonctionnalité permettant de gérer plusieurs branches simultanément dans des répertoires distincts sans conflit. Les worktrees, introduits par Git en 2015, offrent une alternative aux git stash en isolant les modifications dans des copies liées au dépôt principal. L’auteur illustre leur utilisation via des commandes comme git worktree add et souligne leur utilité pour paralléliser les développements, notamment avec des agents IA.
Antigravity 2.0 intègre cette approche en créant des worktrees dédiés pour les modifications générées par des agents, évitant ainsi les conflits lors de contributions multiples. Les worktrees sont accessibles graphiquement dans l’IDE Antigravity, simplifiant leur gestion. Cette fonctionnalité accélère les workflows en permettant une orchestration parallèle des tâches, tout en maintenant une séparation claire entre les branches.
Enfin, l’auteur propose un skill personnalisé pour automatiser la suppression des worktrees après validation, évitant l’accumulation de copies inutiles. Bien qu’Antigravity gère les commits et pushes, il recommande de nettoyer manuellement les worktrees pour conserver un environnement organisé, reflétant une pratique rigoureuse de gestion de code.
Le routage VRF (Virtual Routing and Forwarding) permet de segmenter un équipement réseau (routeur ou switch L3) en plusieurs instances de routage indépendantes, chacune avec sa propre table de routage (RIB) et table de transfert (FIB). Cette technologie, opérant au niveau 3 du modèle OSI, offre une isolation logique des flux, similaire à des couloirs séparés dans un immeuble partagé, ce qui est utile pour des architectures multi-locataires ou des datacenters. L’article explique que chaque VRF agit comme un routeur virtuel autonome, avec ses propres routes statiques, dynamiques ou connectées, tout en partageant le même matériel physique.
L’article détaille ensuite le fonctionnement des deux piliers du VRF : la RIB (Routing Information Base), qui stocke toutes les routes connues pour un VRF donné (directement connectées, statiques ou apprises via des protocoles comme OSPF), et la FIB (Forwarding Information Base), optimisée pour une consultation ultra-rapide lors du transfert des paquets. La RIB sélectionne la meilleure route selon des critères comme la distance administrative, tandis que la FIB, dérivée de la RIB, permet un acheminement efficace des données en temps réel.
Enfin, l’article aborde des cas pratiques, comme le VRF leaking (partage sélectif de routes entre VRF) et propose des exemples de configuration sur des équipements Aruba AOS-CX, soulignant l’utilité du VRF pour des certifications réseau (CCNA) ou des infrastructures complexes nécessitant une segmentation stricte des flux.
L’auteur défend l’importance de prendre des notes manuellement malgré l’automatisation offerte par l’IA, soulignant que cette pratique favorise une meilleure assimilation et une organisation adaptée à sa propre compréhension. Il partage son workflow simple dans Obsidian, centré sur des notes quotidiennes structurées en sections comme un journal d’activités, une liste de tâches et des comptes-rendus de réunions, pour un suivi efficace de ses réalisations et responsabilités. Son approche minimaliste, avec peu de plugins, évite la complexité superflue et repose sur des habitudes comme l’ouverture systématique de sa note du jour.
Le psychiatre Paul Conti, dans un extrait adapté de son livre What’s Going Right, illustre à travers le cas de son patient Teresa comment l’autocritique excessive et les mécanismes de défense inconscients sabotent les efforts personnels. Teresa, malgré sa détermination initiale, abandonne rapidement un programme sportif en raison d’un décalage entre ses ambitions et ses contraintes réelles, puis sombre dans une spirale de pensées négatives ("Je suis trop paresseuse", "Je n’ai aucune discipline"), révélant une dissonance entre la compassion qu’elle témoigne aux autres et la sévérité envers elle-même.
Conti souligne que ces échecs répétés ne reflètent pas un manque de volonté, mais souvent une mauvaise évaluation des capacités ou des objectifs irréalistes. Il propose une approche basée sur l’auto-observation, où identifier les schémas de pensée automatiques et les justifications inconscientes permet de mieux aligner ses actions avec ses possibilités. Son conseil à Teresa – choisir consciemment de ne pas s’engager plutôt que de renoncer après coup – vise à briser ce cycle de culpabilité et de procrastination.
L’article s’inscrit dans une réflexion plus large sur l’optimisation de la santé mentale, où l’introspection et des outils comme les dix questions de Conti (non détaillées ici) aident à transformer les schémas autodestructeurs en stratégies réalistes et bienveillantes.
flip-flip-flip est une app pour aider la mémorisation d'informations grâce à la répétition espacée : création de cartes question / réponse, et l'app reposera les questions où vous vous trompez. L'app fonctionne hors ligne, et elle est auto hébergeable.
L’article explique pourquoi les commandes exécutées via le composant Process de Symfony perdent leur formatage (couleurs, barres de progression) par rapport à un terminal classique. Ce comportement s’explique par l’utilisation par défaut de pipes (tuyaux) plutôt que de terminaux réels, poussant les programmes comme Composer à désactiver les codes ANSI pour éviter des sorties illisibles.
Pour résoudre ce problème, Symfony propose deux méthodes. La première, setTty(true), relie directement le flux du sous-processus au terminal réel, restaurant les couleurs mais empêchant toute capture de la sortie par le script PHP. La seconde, setPty(true), utilise un Pseudo-Terminal (PTY) pour émuler un terminal, offrant l’illusion d’un environnement interactif tout en permettant de récupérer la sortie via getOutput().
Retour d’expérience de la conférence Tech Ready 2026, l’article met en avant une idée centrale : l’IA est désormais utilisée en production mais reste un outil que les développeurs doivent piloter et superviser, la responsabilité du code produit ne pouvant être déléguée au modèle. À travers plusieurs conférences marquantes, il aborde notamment les enjeux d’industrialisation des systèmes d’IA, la montée des architectures agentiques et l’importance de l’observabilité, de la gouvernance et de l’évaluation continue pour déployer des solutions fiables à grande échelle.
L’auteur, Hugo Lassiège, un développeur backend, partage son parcours pour améliorer ses compétences en design malgré ses origines techniques. Il évoque son évolution depuis l’utilisation de Bootstrap en 2012, qui lui a permis de créer des interfaces basiques mais fonctionnelles, jusqu’à l’adoption de méthodes plus structurées comme le design atomique (Atomic Design) et les design systems, inspirés par des frameworks comme React ou Vue.
Il explique comment ces approches ont transformé sa manière de concevoir des interfaces, en passant de simples composants prédéfinis à des systèmes modulaires et réutilisables. Son expérience illustre l’importance de l’organisation et de la cohérence dans la création d’interfaces, même pour des profils initialement peu orientés vers le design.
Enfin, il souligne les défis liés à la surcharge d’outils et de frameworks, tout en reconnaissant que cette accumulation a finalement contribué à affiner sa méthodologie. Son récit met en lumière l’apprentissage continu et l’adaptation nécessaire pour concilier développement backend et design.
Une intelligence artificielle a identifié des failles critiques sur un site web que les tests de qualité (QA) n’avaient pas détectées, révélant que des mécanismes de sécurité présents dans le code ne s’exécutaient pas au moment crucial. L’auteur explique que ces bugs, bien que rares, sont particulièrement insidieux car ils donnent l’illusion d’une protection effective sans en offrir les garanties réelles.
Parmi les exemples cités, une faille dans Symfony (CVE-2026-46640) illustre ce phénomène : un attribut de contrôle d’accès protégeait les requêtes GET mais pas les requêtes HEAD, permettant une exécution non autorisée. L’auteur partage également son propre cas, où un système de changement de mot de passe semblait fonctionnel mais ne modifiait pas le hash en base de données, faute d’un test oublié.
L’article souligne que le vrai danger ne réside pas dans l’absence de code sécurisé, mais dans des protections apparentes qui ne s’activent jamais, rendant les audits humains insuffisants face à des outils comme Fable 5, capables de détecter ces anomalies par analyse statique approfondie.
Le bundle UX DataTables pour Symfony évolue vers une approche plus structurée et typée pour gérer les tableaux de données. Il repose désormais sur une classe dédiée par tableau, étendant AbstractDataTable et décorée avec #[AsDataTable], facilitant la configuration des colonnes (texte, nombre, booléen, date) de manière fortement typée. Le traitement côté serveur est automatisé, avec un contrôleur intégré gérant les requêtes AJAX via des tokens HMAC signés, simplifiant l’intégration sans nécessiter de routes personnalisées.
L’édition en ligne, les actions sur les lignes et les intégrations avec API Platform et Mercure sont désormais natifs. Le frontend, basé sur un module ES et Stimulus, charge dynamiquement les extensions nécessaires de DataTables.net, optimisant les performances. La configuration reste minimaliste : un contrôleur Symfony suffit pour rendre le tableau via Twig avec {{ render_datatable(table) }}, tandis que la logique métier (filtrage, tri) est gérée par le bundle.
Ce bundle s’adresse aux développeurs Symfony 7+/PHP 8.3+ cherchant à standardiser la gestion des tableaux interactifs, réduisant le code boilerplate tout en offrant flexibilité et typage strict.
Un développeur a repensé le système de logs d’activité de son application Symfony pour le rendre compréhensible par des utilisateurs non techniques. Initialement, les logs affichaient des codes d’action comme destination_deleted, incompréhensibles pour les administrateurs. La solution a consisté à ajouter un champ message générant une description claire, comme "Sharon a supprimé la destination 'Port de Douala'", tout en conservant le code technique pour le filtrage. L’interface d’administration a été optimisée pour afficher les logs par ordre chronologique inverse et les rendre non modifiables, garantissant leur intégrité. L’auteur souligne l’importance de concevoir des outils adaptés aux besoins réels des utilisateurs, plutôt que ceux des développeurs.
Symfony 8.1 introduit une fonctionnalité innovante dans sa console : la possibilité de coller directement une image depuis le presse-papiers (via Ctrl+V) dans une commande, sans avoir à spécifier un chemin de fichier. Cette innovation, présentée lors de l'AFUP Day Lyon, simplifie l'interaction en gérant automatiquement la conversion du contenu binaire de l'image en un fichier temporaire accessible dans le processus PHP. L'API publique, illustrée par une commande exemple, est minimaliste : l'argument de type InputFile associé à l'attribut #[Ask] permet de demander à l'utilisateur de fournir une image, que ce soit par collage ou par saisie de chemin.
Sous le capot, cette fonctionnalité repose sur un mécanisme complexe mais transparent pour l'utilisateur. Symfony détecte les capacités du terminal (comme le mode bracketed paste), gère les protocoles d'images, et crée un fichier temporaire si nécessaire. La commande peut ensuite vérifier la validité du fichier, son type MIME, sa taille et ses dimensions, tout en distinguant si l'image provient d'un collage ou d'un chemin classique via la méthode isTempFile(). Cette approche assure une dégradation élégante dans des environnements moins compatibles, comme les connexions SSH ou les CI.
L'élégance de cette solution réside dans sa simplicité apparente : le développeur n'a qu'à déclarer un argument de type InputFile pour bénéficier d'une interaction avancée, tandis que Symfony s'occupe de toute la logique sous-jacente. Cette abstraction réduit considérablement la complexité pour l'utilisateur final, tout en offrant une expérience fluide et intuitive.