Quotidien Shaarli

Tous les liens d'un jour sur une page.

Hier - November 9, 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 !

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.

🤖 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.