Hebdomadaire Shaarli

Tous les liens d'un semaine sur une page.

Semaine 45 (November 3, 2025)

Rendre son podcast accessible avec l'IA au service de la transcription - Blog Zenika

L’article relate l’expérience de Zenika pour rendre son podcast Zenikast accessible grâce à l’IA, en se concentrant sur la transcription automatique. Initialement testé avec Whisper Transcribe (efficace mais nécessitant des heures de relecture), l’équipe s’est tournée vers Gemini 2.5 Pro via Vertex AI Studio de Google Cloud. Ce modèle, capable de traiter l’audio et de diariser les voix, a permis de générer des transcriptions rapides, fluides et presque exemptes d’erreurs, tout en supprimant les tics de langage pour une lecture plus agréable. L’outil offre aussi une option de grounding pour réduire les hallucinations en s’appuyant sur des sources fiables. Résultat : un gain de temps considérable (de 3-4h à 30 minutes par épisode) et une accessibilité améliorée, avec deux versions disponibles (brute et nettoyée). L’article évoque aussi les perspectives d’automatisation future via des agents IA, soulignant l’importance de l’accessibilité et l’efficacité des solutions basées sur l’IA pour les podcasts.

BDX I/O 2025 - Récap de ma 10ème édition

Ce billet résume la 10ème édition de la conférence BDX I/O, marquée par des keynotes et des talks variés sur l’innovation technologique et ses enjeux sociétaux. L’auteur, après avoir co-organisé l’édition précédente, partage ses impressions en tant que participant, soulignant l’émotion de retrouver l’événement et la communauté tech bordelaise, notamment La Grappe Numérique.

Les temps forts incluent une réflexion sur l’avenir de la tech et l’IA par Ludovic Cinquin (WhereWeGo), qui évoque les défis énergétiques et sociétaux, ainsi que le framework Cynefin pour naviguer la complexité. Florian Toulemont aborde le hacking éthique avec des outils comme OWASP ZAP ou Exegol, tandis que Nicolas Boisseau démontre l’intégration de Kubernetes avec des applications Windows chez Peaksys, malgré des contraintes techniques. Vivien Ramahandry présente Crossplane pour gérer le drift dans l’IaC, et Julien Canon montre comment Kyverno renforce la conformité des clusters Kubernetes. Un live coding ludique sur la génération de labyrinthes et des rencontres enrichissantes complètent cette édition, avec une mention spéciale pour l’esprit communautaire et l’organisation de la conférence. Une édition riche en apprentissages et en partage !

Mon lab - Épisode 1 : Automatiser le socle - Dryusdan.space

Dans ce premier épisode de sa série "Mon lab", l'auteur partage son projet de refonte complète de son infrastructure personnelle, héritée de son ancien PC étudiant transformé en NAS sous Debian. L'objectif est de passer d'une architecture centralisée et vulnérable à une infrastructure automatisée, reproductible et évolutive, inspirée par les principes de l'"infrastructure as code".

Il explore plusieurs outils pour automatiser l'installation du socle de ses serveurs (MaaS, Foreman, Cobbler, Clonezilla, etc.), mais opte finalement pour une solution basée sur PXE et Debian Netboot, en utilisant un fichier Preseed pour automatiser l'installation. Après avoir rencontré des difficultés avec la complexité et le manque de documentation claire de Preseed, il se tourne vers la création d'une image Debian Netboot personnalisée. Cette image, basée sur un mini-système avec debootstrap et squashfs, permet de déployer automatiquement une Debian configurée selon ses besoins, avec un script d'installation intégré.

L'article détaille les étapes de création de cette image, le choix de BTRFS pour le système de fichiers, et l'utilisation d'un script bash pour partitionner et installer le système. L'auteur souligne l'importance de la reproductibilité, de l'évolutivité et de la suppression des configurations fantômes, tout en gardant la porte ouverte à l'ajout futur d'hyperviseurs comme Proxmox. Une lecture technique et inspirante pour quiconque souhaite automatiser son lab perso !

Ce que les couleurs de vos ports USB vous indiquent (et pourquoi ... - Warrior du Dimanche

Bon à savoir... je copie colle sans vergogne :

Blanc = USB 1.0 / 12Mbps
Noir = USB 2.0 / 480Mbps
Jaune = USB 2.0/3.0 + toujours alimentés même sur une machine éteinte
Orange = USB 3.0 + toujours alimentés même sur une machine éteinte
Bleu = USB 3.0 Superspeed / 5Gbps
Turquoise = USB 3.1 / 10 Gbps
Rouge = USB 3.1 Gen 2 / 10-20 Gbps + toujours alimentés même sur une machine éteinte

Il y a une image dans le lien qui résume tout ça

5 Reasons to Start Ugly and Transform Your Life Growth Journey - LifeDev.net

L’article encourage à oser commencer « mal »—c’est-à-dire à se lancer sans attendre la perfection — pour déclencher une véritable transformation personnelle. Il souligne que la quête de la perfection paralyse souvent nos rêves, tandis que l’audace de débuter, malgré les imperfections, construit le courage, favorise l’authenticité et accélère l’apprentissage. Des exemples comme Thomas Edison ou Malala Yousafzai illustrent comment les débuts chaotiques mènent à des réussites exceptionnelles. L’article propose aussi des conseils pratiques : diviser les grands objectifs en petites étapes, accepter l’échec comme une source de feedback, et s’entourer de soutien. En somme, commencer « ugly » est un acte de bravoure qui libère la créativité et ouvre la voie à une croissance continue. Une lecture inspirante pour ceux qui hésitent à franchir le pas par peur de l’imperfection.

Projet R&D ~ Analyse de solutions de bastion d'administration SSH - Aukfood

Aukfood présente une analyse comparative de quatre solutions open source de bastions SSH (Teleport, The Bastion d’OVH, Warpgate, JumpServer) dans le cadre d’un projet R&D visant à sécuriser les accès administratifs exposés sur Internet. L’étude évalue les critères clés : traçabilité des accès, gestion centralisée des utilisateurs, intégration LDAP/SSO/MFA, audit, haute disponibilité, et maintenabilité. Teleport se distingue par sa polyvalence et son adoption par des grands comptes, The Bastion (OVH) par sa conformité ANSSI et sa robustesse SSH pure, Warpgate par sa modernité (Rust) et sa légèreté, et JumpServer par son approche PAM complète et multi-protocole. Une matrice détaillée compare leurs forces (audit, RBAC, durcissement) et limites (complexité, documentation, scalabilité). L’article souligne l’importance d’une approche Zero Trust, du durcissement des infrastructures et de la centralisation des logs pour garantir la sécurité, tout en insistant sur l’adéquation du choix final aux besoins spécifiques (Cloud, souveraineté, mobilité). Une phase de tests virtualisés est prévue avant déploiement.

Déployer son projet Symfony FrankenPHP sur VPS • Lecodeestdanslepre

Ce billet détaille l’expérience de passage à FrankenPHP en production, comparant l’ancienne stack Nginx/PHP-FPM à une technologie dépassée comme le Minitel. L’auteur explique comment il a déployé FrankenPHP sur un VPS à l’aide d’un Makefile optimisé, en abordant la création d’un Dockerfile de production, l’intégration CI/CD, et une astuce de multiplexing SSH pour éviter les blocages par fail2ban. Une lecture utile pour ceux qui veulent moderniser leur infrastructure PHP avec simplicité et efficacité.

À quoi ça sert, des certifs en 2025 ?

Dans ce billet, l’auteur partage une réflexion nuancée sur la valeur des certifications dans le domaine de l’IT, en s’appuyant sur son expérience personnelle et ses observations. Il reconnaît que les certifications peuvent être utiles pour se démarquer, surtout pour les jeunes diplômés ou les profils en reconversion, dans un marché du travail tendu. Cependant, il souligne que leur valeur varie énormément : certaines sont purement formelles, voire trompeuses (comme des QCM où les réponses sont connues à l’avance ou des certifications d’outils propriétaires peu exigeantes), tandis que d’autres, comme celles du CNCF (CKA, CKAD, CKS), demandent un réel effort et une mise en pratique, même si elles restent éloignées des réalités quotidiennes du métier. Pour les profils expérimentés, l’intérêt est plus limité, mais elles peuvent permettre de découvrir des subtilités techniques ou de renforcer la confiance en soi. Enfin, il questionne la pertinence des exigences de certifications par les entreprises, suggérant que celles-ci cherchent souvent à se couvrir plutôt qu’à évaluer des compétences réelles. En résumé, les certifs ne sont ni totalement inutiles ni une garantie de compétence, et leur utilité dépend surtout du contexte et du niveau d’expérience.

Advice for New Principal Tech ICs (i.e., Notes to Myself)

Eugene Yan partage ses conseils pour les nouveaux Principal Engineers (ou ICs - contributeurs individuels - techniques principaux), inspirés de ses observations et de mentors, notamment dans un contexte Amazon. Il souligne que le rôle varie selon les profils : certains excellent dans la technique pure, d’autres dans l’influence transversale ou l’alignement d’équipes. À ce niveau, le codage devient secondaire ; l’impact passe par la vision technique, le mentorat, la connexion des équipes et la résolution de problèmes ambigus que personne d’autre ne traite. Le Principal Engineer doit aussi savoir convaincre, déléguer, et créer de l’espace pour les autres, tout en évitant de devenir un goulot d’étranglement. L’article insiste sur l’importance de rester "hands-on" ponctuellement, de clarifier le "pourquoi" derrière les décisions, et de se préserver des réunions inutiles pour garder du temps de réflexion stratégique. Enfin, il rappelle que ce poste exige une autonomie totale dans le choix des problèmes à résoudre, avec une responsabilité accrue envers l’organisation et soi-même. Une lecture utile pour comprendre les attentes et défis de ce rôle clé en ingénierie.

CSS Animations That Leverage the Parent-Child Relationship | CSS-Tricks

Ce billet de CSS-Tricks explore comment exploiter la relation parent-enfant en CSS pour créer des animations efficaces et simplifiées. L’idée centrale est d’animer le conteneur parent plutôt que chaque enfant individuellement, ce qui réduit la complexité du code et améliore les performances.

L’exemple principal utilise un conteneur <main> contenant quatre cercles positionnés absolument. En appliquant une rotation et une réduction de largeur au parent, les cercles se déplacent et s’animent automatiquement, car leur position dépend de celle du parent. L’article montre aussi comment combiner des transformations (comme skew, rotate, scale) sur le parent et les enfants pour obtenir des effets visuels variés, comme des carrés qui s’échangent ou se séparent.

L’approche est particulièrement utile pour des animations simples et synchronisées, où les transformations du parent influencent directement le comportement des enfants. L’article propose également des variantes avec des éléments <details> pour déclencher les animations via des interactions utilisateur. Une astuce pratique pour des animations fluides et faciles à maintenir !

Your URL Is Your State

L’article explore comment les URLs, souvent sous-estimées, peuvent servir de conteneurs de state puissants et élégants dans les applications web modernes. L’auteur illustre ce concept avec l’exemple de PrismJS, où une URL encode toute la configuration (thème, langages, plugins) de manière partageable et récupérable, sans base de données ni stockage local. Il rappelle que les URLs offrent gratuitement des fonctionnalités clés : partage, marquage, historique, et liens profonds. L’article détaille comment structurer les URLs (segments de chemin, paramètres de requête, fragments) pour y stocker des états comme des filtres, des préférences ou des configurations, tout en évitant les pièges (données sensibles, états temporaires, surcharge). Des exemples concrets (GitHub, Google Maps, Figma) montrent leur utilité, et des bonnes pratiques (utilisation de URLSearchParams, gestion des défauts, debounce) sont proposées pour une implémentation efficace, notamment avec JavaScript ou React. Enfin, l’auteur souligne que les URLs bien conçues agissent comme des contrats clairs entre l’application et ses utilisateurs, améliorant l’expérience et la performance. Une lecture essentielle pour repenser la gestion d’état côté frontend

Database Backup Strategies - automated dumps, point-in-time recovery | Akash Rajpurohit

Ce billet explique comment mettre en place des stratégies de sauvegarde de bases de données, en insistant sur l'importance cruciale des backups pour éviter la perte définitive de données en cas de panne, d'erreur humaine, de ransomware ou de corruption. L'article détaille trois niveaux de sauvegarde :

Niveau 1 : Sauvegardes automatiques basiques avec des scripts shell et pg_dump pour PostgreSQL, idéales pour les petites bases de données où une récupération quotidienne est acceptable. Il montre comment planifier ces sauvegardes via cron et gérer la rétention des fichiers.

Niveau 2 : Archivage WAL (Write-Ahead Logging) pour une récupération à un instant précis (PITR), en configurant PostgreSQL pour archiver les WAL et créer des sauvegardes de base. La procédure de récupération permet de restaurer la base à un moment spécifique, utile pour les bases critiques.

Niveau 3 : Sauvegardes continues avec pgBackRest, une solution robuste pour les environnements de production, permettant des sauvegardes complètes, différentielles et incrémentales, avec gestion automatisée des politiques de rétention.

L'article aborde aussi l'intégration avec des solutions cloud (S3, Hetzner Storage Box) via rclone, la surveillance des sauvegardes avec des alertes en cas d'échec, et l'importance de tester régulièrement les procédures de récupération. Enfin, il souligne les pièges courants (permissions, espace disque, WAL manquants) et propose des solutions pour les éviter. Une lecture essentielle pour sécuriser ses données et dormir sur ses deux oreilles.

#35 a perfectly structured button - HTMHell

Cet article donne un exemple de bouton HTML invalide, et explique comment fixer ses problèmes.

You Should Write An Agent · The Fly Blog

L’article de Fly.io encourage les développeurs à se lancer dans la création de leurs propres agents LLM, non seulement pour comprendre cette technologie de l’intérieur, mais aussi parce que c’est surprenant de simplicité. En quelques lignes de code, on peut créer un agent capable de dialoguer, d’utiliser des outils (comme un ping réseau), et même de simuler des personnalités multiples. L’auteur démontre qu’un agent n’est souvent qu’une boucle autour d’un appel API, avec une gestion de contexte (une liste de messages) et la possibilité d’ajouter des outils via des fonctions. Il souligne que les concepts comme le "Context Engineering" (gestion optimisée du contexte et des outils) sont des problèmes de programmation concrets, et non de la magie.

L’article critique aussi l’utilisation de solutions toutes faites comme MCP (Multi-Context Programming), encourageant plutôt à construire ses propres outils pour maîtriser l’architecture et la sécurité. Enfin, il insiste sur le fait que personne ne sait encore quelles sont les meilleures pratiques : c’est un terrain de jeu ouvert, où même les idées les plus folles peuvent être testées en 30 minutes. Une invitation à expérimenter pour se forger sa propre opinion, que l’on soit sceptique ou enthousiaste.

How Nubank Built an In-house Logging Platform for 1 Trillion Log Entries

Nubank, confrontée à une croissance exponentielle et à des coûts élevés liés à une solution externe de logging, a décidé de construire sa propre plateforme interne pour gérer plus d’1 trillion d’entrées de log par jour. L’ancienne architecture, dépendante d’un fournisseur tiers, souffrait de manque de visibilité, de coûts imprévisibles et de rigidité, rendant difficile la résolution des incidents et l’optimisation des ressources.

La nouvelle plateforme a été conçue en deux phases :

  1. Observability Stream : ingestion et traitement des logs, utilisant Fluent Bit pour la collecte, un service de buffer interne pour lisser les pics de trafic, et un service de filtrage/transformation extensible.
  2. Query and Storage Platform : stockage et requêtage, avec Trino comme moteur SQL distribué (optimisé pour le partitionnement), AWS S3 pour un stockage scalable et économique, et Parquet pour une compression efficace (95 %) et des requêtes rapides.

Résultats :

  • 1 Po de données traitées/jour, 45 Po stockés (rétention 45 jours), 15 000 requêtes/jour.
  • Réduction de 50 % des coûts par rapport à la solution précédente.
  • Fiabilité, scalabilité et contrôle total sur l’infrastructure, permettant une meilleure observabilité et une réponse plus rapide aux incidents.

Cette approche, combinant outils open source et services internes, illustre comment une architecture découplée, modulaire et optimisée pour le cloud peut répondre aux défis de l’échelle tout en maîtrisant les coûts.

How to Write "Garbage Code" (by Linus Torvalds)

Linus Torvalds illustre ici ce qu’il considère comme du « garbage code » : des abstractions inutiles qui alourdissent la compréhension du code, comme une fonction make_u32_from_two_u16(a,b) qui masque la simplicité et la clarté de l’opération (a << 16) + b. Son argument central : le bon code optimise la charge cognitive. Chaque abstraction ou fonction helper impose un coût en termes de contexte (pour les humains comme pour les LLMs), car elle nécessite de « sauter » mentalement vers une autre partie du code, ce qui consomme de l’énergie et augmente le risque d’erreurs. Parfois, la duplication ou l’écriture explicite est préférable à une abstraction prématurée, surtout si celle-ci ne clarifie pas le code ou n’est pas réutilisée massivement. Torvalds rappelle aussi que le coût de la duplication a diminué avec les outils modernes de refactoring. Enfin, l’article souligne l’importance de la bienveillance dans les revues de code, même si le fond du message de Linus reste pertinent : privilégier la lisibilité et la localité du code.

FrankenPHP vs PHP-FPM : remplacer Nginx pour un setup Docker moderne • Lecodeestdanslepre

Le billet explique comment FrankenPHP rend obsolètes les configurations traditionnelles utilisant Nginx et PHP-FPM pour les applications PHP. L'auteur partage son retour d'expérience sur le déploiement d'un projet Symfony avec FrankenPHP sur un VPS, mettant en avant sa simplicité et ses performances, même en production. L'article souligne que FrankenPHP offre une alternative moderne, plus légère et efficace, pour les environnements Docker, tout en évitant les problèmes classiques comme les timeouts SSH. Une solution idéale pour ceux qui cherchent à optimiser leur infrastructure PHP.

Créer une clé USB bootable Linux Mint avec Ventoy - Le Geek Heureux

Ce tutoriel explique comment créer une clé USB bootable pour Linux Mint (ou toute autre distribution) en utilisant Ventoy, un outil pratique qui permet de démarrer depuis plusieurs fichiers ISO sur une seule clé. La procédure est simple : téléchargez Ventoy, installez-le sur la clé USB (attention, cela efface toutes les données), puis copiez-y le fichier ISO de Linux Mint (version Cinnamon recommandée). Ventoy rend la clé multiboot, idéale pour tester ou installer différents systèmes. Prochaine étape : l’installation de Linux Mint depuis cette clé ! #LinuxMint #Ventoy #USB

Désactiver les fonctionnalités IA dans Firefox - ZoneTuto

L'auteur explique la procédure de désactivation complète des fonctions IA dans Firefox. Il explique aussi pourquoi il l'a fait : pour une expérience plus légère et conforme à l'esprit original de Firefox...

Why I Still Use jQuery in 2025 (and When Not to) | Docker

En 2025, jQuery reste largement utilisé, surtout pour la maintenance de projets legacy, où le coût et les risques d’une migration vers des frameworks modernes ne justifient pas les bénéfices. L’article souligne aussi son utilité pour le prototypage rapide, la manipulation DOM complexe dans des environnements multi-navigateurs, ou encore les animations et requêtes AJAX simples. Cependant, pour les applications modernes, et ciblant uniquement les navigateurs récents, jQuery n’est plus pertinent : les API natives (comme fetch, querySelector) et les frameworks (React, Vue) offrent des alternatives plus légères et mieux adaptées. L’auteur conclut que jQuery reste un outil valable pour certains cas d’usage, mais qu’il faut savoir choisir la bonne technologie selon le contexte.

sverweij/dependency-cruiser: Validate and visualize dependencies. Your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.

dependency-cruiser est un outil open source qui permet de valider et visualiser les dépendances dans les projets JavaScript, TypeScript, CoffeeScript ou LiveScript. Il analyse les dépendances selon des règles personnalisables, détecte les violations (comme les dépendances circulaires ou manquantes), et génère des rapports sous forme de texte, graphiques (dot, mermaid, SVG), HTML ou CSV. Idéal pour intégrer dans un pipeline CI/CD, il s’installe via npm/yarn/pnpm et se configure facilement avec npx depcruise --init. Il offre aussi des visualisations claires pour mieux comprendre l’architecture de son code.

🤖 Gemini dans votre terminal avec Gemini CLI - DEV Community

Gemini CLI est un outil open source lancé en juin 2025 par Google, permettant d’intégrer l’IA Gemini directement dans le terminal pour booster la productivité des développeurs. Après installation (via npx ou brew) et configuration d’un projet Google Cloud, il offre des fonctionnalités variées : requêtes contextuelles (avec accès à des données actualisées via GoogleSearch), gestion de commandes personnalisées (fichiers .toml), assistance au codage "agentic" (modification de fichiers, exécution de commandes système), et intégration avec des IDE comme VSCode ou IntelliJ. Il supporte aussi des extensions et des MCP (Model Context Protocol) pour interagir avec des APIs comme GitHub, GitLab ou Jira. L’outil permet de générer du contenu, traduire, auditer du code, ou créer des tickets, le tout depuis la ligne de commande. Idéal pour les tâches rapides, il se révèle pratique pour automatiser des actions courantes sans quitter le terminal. Un atout pour les développeurs aimant travailler en CLI.

10 Smart Performance Hacks For Faster Python Code | The PyCharm Blog

Ce billet de blog de JetBrains présente 10 astuces pour optimiser les performances du code Python, rédigé par Dido Grigorov, ingénieur en deep learning. L’article souligne que, malgré sa simplicité et sa lisibilité, Python peut rencontrer des goulots d’étranglement en termes de performance, surtout lors du traitement de grands jeux de données ou d’applications temps réel.

Parmi les conseils clés :

  • Privilégier les sets pour les tests d’appartenance (O(1) vs O(n) pour les listes).
  • Éviter les copies inutiles de données, en modifiant les objets en place.
  • Utiliser __slots__ pour réduire la consommation mémoire des classes.
  • Préférer les fonctions du module math aux opérateurs pour des calculs numériques plus rapides.
  • Pré-allouer la mémoire pour les listes ou tableaux de taille connue.
  • Limiter l’usage des exceptions dans les boucles critiques.
  • Exploiter itertools et bisect pour des opérations combinatoires ou sur listes triées.
  • Éviter les appels répétés de fonctions dans les boucles en cachetant les résultats.

L’article illustre chaque astuce avec des exemples de code et des mesures de temps, montrant des gains de performance significatifs. Il encourage à adopter ces pratiques pour écrire du code Python à la fois performant et lisible, sans sacrifier la clarté. Une ressource utile pour les développeurs cherchant à optimiser leurs scripts Python.

Comment builder sur Github actions ou Gitlab CI et déployer sur Coolify

L’article explique comment externaliser le build d’une application Nuxt 4—devenu trop gourmand en ressources—vers GitHub Actions, puis déployer automatiquement sur Coolify. L’auteur, confronté à des serveurs Hetzner (4vCPU/8Go) saturés par les builds Nuxt 4, détaille la méthode : créer une nouvelle app Coolify en choisissant l’option « Docker Image », activer les APIs Coolify pour générer un token de déploiement, configurer les secrets GitHub (webhook et token Coolify), et ajouter un workflow GitHub Actions pour builder l’image Docker et déclencher le déploiement via un webhook. Une étape manuelle de login Docker sur le serveur Coolify est nécessaire pour autoriser l’accès au registry GitHub. Résultat : des builds plus légers, moins coûteux, et un déploiement fluide, le tout sans ajouter de serveur dédié.

Smashing Animations Part 6: Magnificent SVGs With <use> And CSS Custom Properties — Smashing Magazine

Andy Clarke explique comment animer des éléments SVG réutilisés via <symbol> et <use>, malgré la barrière du Shadow DOM qui empêche normalement le style et l'animation directe des éléments internes. Sa solution repose sur l'utilisation des CSS Custom Properties (variables CSS), qui peuvent traverser cette barrière. En définissant des animations et des styles via des propriétés personnalisées dans les éléments <symbol>, puis en les appliquant aux instances <use>, il devient possible de créer des animations dynamiques et personnalisées pour chaque instance, tout en gardant un code léger et maintenable. L'article illustre cette technique avec des exemples concrets : un système d'icônes multicolores, des visualisations de données interactives, et des animations ambiantes pour des personnages SVG, le tout sans dupliquer le code SVG. Une approche élégante pour contourner les limitations du Shadow DOM et exploiter pleinement le potentiel des SVGs réutilisables.

Git Notes: git's coolest, most unloved­ feature - Tyler Cipriani

L'auteur explique pourquoi les git notes sont une fonctionnalité sous-estimée de Git, permettant d’ajouter des métadonnées à des commits, des blobs ou des arbres sans modifier les objets eux-mêmes. Par exemple, on peut y stocker des informations de revue de code, des liens vers des discussions, ou des validations automatiques (comme des tests ou des approbations). Malgré leur potentiel — comme l’intégration de systèmes de revue distribués ou le suivi de données externes (tickets, temps passé, etc.) — leur utilisation reste marginale en raison d’une interface peu intuitive et d’un manque de support natif sur les plateformes comme GitHub. Pourtant, des projets comme git-appraise montrent qu’elles pourraient rendre les workflows plus indépendants des forges logicielles, en stockant localement des données habituellement centralisées. Une fonctionnalité puissante, mais trop souvent oubliée.

Naming Things in PHP: A Practical Guide | by Ann R. | Oct, 2025 | Medium

Il s'agit d'un article pratique sur l’art de nommer les éléments en PHP. L’auteure y aborde l’importance des noms clairs dans le code, soulignant qu’ils réduisent la charge cognitive, améliorent la maintenabilité et facilitent l’onboarding des nouveaux développeurs. L’article propose des principes concrets, des conventions compatibles avec les PSR, et des exemples pour éviter les pièges courants liés à la liberté syntaxique de PHP (comme les tableaux dynamiques ou les objets flexibles). L’objectif ? Transformer le choix des noms en un processus réfléchi plutôt qu’en devinette, pour un code plus lisible et une architecture plus robuste.

Article réservé aux membres Medium.

Warpgate - You shall not pass! – À l'encre rouillée

Warpgate est un bastion open source écrit en Rust, conçu pour implémenter une approche Zero Trust en sécurisant l’accès à vos infrastructures (SSH, HTTP/HTTPS, MySQL, PostgreSQL). Contrairement à des solutions comme Teleport ou Boundary, il ne nécessite aucun agent sur les machines cibles et s’installe en quelques minutes. Ses atouts : traçabilité totale des sessions, intégration avec OpenID Connect, et simplicité de déploiement (y compris sur Kubernetes). Cependant, il présente des limites : pas de haute disponibilité native (sessions perdues en cas de crash), protocoles limités (pas de RDP/VNC/Kubernetes), et une API non documentée. Malgré ces compromis, Warpgate séduit par sa transparence, sa robustesse, et son modèle open source sans lock-in. Idéal pour les équipes cherchant une solution légère et auditable, à condition d’accepter ses contraintes.

Hyprnote : l’alternative 100% locale pour résumer vos réunions Zoom, Teams ou Meet

Hyprnote est une solution 100% locale pour transcrire et résumer vos réunions (Zoom, Teams, Meet) sans dépendre du cloud. Elle utilise un modèle STT (comme Whisper) et un micro-LLM (intégré ou externe) pour générer des comptes-rendus automatiques, le tout en respectant votre vie privée. L’interface simple organise réunions, transcripts et synthèses, avec une intégration native à Obsidian pour les utilisateurs de PKM. Open source et en bêta sur macOS (Windows/mobile à venir), Hyprnote se distingue des outils comme Otter.ai en gardant vos données sur votre machine. Un projet prometteur pour ceux qui veulent efficacité et confidentialité.

Cilium's new policy log field: our use case

Ce billet explique une limitation rencontrée avec la nouvelle fonctionnalité de Cilium 1.18, qui permet d’ajouter un champ log aux CiliumNetworkPolicies pour marquer les flux avec des étiquettes personnalisées et ainsi filtrer le trafic bloqué attendu dans les tableaux de bord de monitoring.

L’équipe souhaitait bloquer explicitement le trafic de télémétrie d’une application tierce vers des domaines externes, sans déclencher d’alertes inutiles dans Hubble. La solution idéale aurait été d’utiliser egressDeny combiné à toFQDNs et un champ log personnalisé pour exclure ces flux du monitoring. Cependant, ils ont découvert que Cilium ne supporte pas toFQDNs dans les règles egressDeny, ce qui rend impossible le blocage ciblé par nom de domaine dans ce contexte. De plus, un bug empêche actuellement l’affichage du champ policy_log pour les flux bloqués ou audités, limitant encore l’utilité de cette fonctionnalité.

Les solutions de contournement proposées incluent le blocage au niveau DNS, le blocage par IP (avec la maintenance que cela implique), ou la désactivation directe de la télémétrie dans l’application. L’auteur espère que ces limitations seront corrigées dans de futures versions de Cilium.

The "Most Hated" CSS Feature: tan() | CSS-Tricks

L’article explore l’utilisation de la fonction trigonométrique tan() en CSS, souvent perçue comme la fonction la plus détestée selon le State of CSS 2025. L’auteur démontre son utilité, notamment pour manipuler des formes géométriques comme les triangles et les polygones. Après un rappel mathématique (tan = sin/cos = opposé/adjacent), il montre comment tan() permet de calculer dynamiquement la hauteur de triangles pour créer des polygones réguliers à partir de listes HTML, sans recourir à des valeurs fixes. L’exemple concret illustre la création d’un menu circulaire ou d’une galerie d’images polygonale, en combinant tan() avec clip-path et des rotations CSS. L’article souligne aussi les limites de tan() (valeurs indéfinies à 90° et 270°) et mentionne des cas d’usage inspirants comme des layouts diagonaux ou des puzzles tangram. Une lecture utile pour découvrir des applications pratiques et créatives des fonctions trigonométriques en design web.

🧠 Type-Safe Domain Models: Building Architectural Integrity with PHPStan & Psalm | by mohamad shahkhajeh | Oct, 2025 | Medium

Cet article concerne l’importance des modèles de domaine typés en PHP, renforcés par des outils comme PHPStan et Psalm. L’auteur explique que la sécurité des types permet de préserver l’intégrité architecturale en rendant impossibles les états invalides (ex. : un montant négatif pour une classe Money). Les outils d’analyse statique détectent les violations de contrats, les fuites de nullabilité ou les dépendances architecturales non désirées, là où les tests unitaires peuvent échouer. L’article souligne que modéliser chaque concept métier (comme EmailAddress ou UserId) en tant que type dédié, et utiliser des règles personnalisées dans PHPStan/Psalm, transforme le code en un système fiable et auto-documenté. L’objectif : aligner l’intention des développeurs avec le comportement réel du code, réduisant ainsi la dette technique et les erreurs silencieuses. Une approche progressive est recommandée pour intégrer ces pratiques dans les projets existants.