Quotidien Shaarli
Hier - November 8, 2026
Tutoriel pratique pour intégrer les passkeys WebAuthn dans Symfony 8.1 en modifiant 17 fichiers. L’authentification hybride permet de conserver les mots de passe tout en proposant une connexion par passkey, y compris via l’autocomplétion du navigateur. L’implémentation utilise web-auth/webauthn-symfony-bundle et mattleads/passkeys-bundle pour gérer l’enregistrement des clés, leur dernière utilisation, leur révocation et les codes de récupération à usage unique. L’article détaille la configuration de sécurité, Doctrine, Stimulus et les erreurs courantes, notamment les problèmes d’origine WebAuthn et de persistance des identifiants.
OpenObserve est une plateforme open source d’observabilité qui centralise journaux, métriques, traces, supervision des applications web et mobiles, relecture de sessions et suivi des applications utilisant des LLM. Écrite en Rust, elle prend en charge OpenTelemetry, SQL et PromQL et peut être déployée avec un seul binaire ou via Docker. Son architecture fondée sur Parquet et le stockage compatible S3 vise à réduire fortement les coûts par rapport à Elasticsearch. Elle propose également tableaux de bord, alertes et pipelines de traitement.
L’auteur recommande de créer des repositories Doctrine par composition plutôt que d’hériter de ServiceEntityRepository ou EntityRepository. En injectant EntityManagerInterface et en encapsulant le repository natif, on expose uniquement des méthodes métier explicites, sans laisser les contrôleurs utiliser librement findBy(). Cette approche centralise les règles de filtrage, clarifie les contrats de retour (get() lève une exception, find() peut retourner null) et évite les complications liées à l’instanciation des repositories par Doctrine. L’article illustre aussi une séparation entre opérations de lecture et d’écriture, avec PHP 8.4.
ffmpeg-skill permet aux agents de développement comme Claude Code, Cursor et Codex de monter des vidéos localement avec FFmpeg, sans cloud ni clé API. Le projet fournit 42 outils pour découper et assembler des séquences, générer des sous-titres, recadrer, nettoyer et normaliser l’audio, puis exporter vers différentes plateformes. Un serveur MCP et un contrat lisible par machine exposent ces opérations aux agents. Le flux de travail prévoit l’analyse des médias, l’exécution des modifications et la vérification des résultats, avec prévisualisation et mode simulation.
L’accessibilité numérique n’est pas seulement une obligation ou un enjeu d’inclusion : elle améliore aussi le référencement naturel, l’expérience utilisateur et la compréhension des sites par les agents IA. L’auteur souligne le rôle central du HTML sémantique, des libellés explicites et de la navigation au clavier, utiles aux humains comme aux machines. Il rappelle également les nouvelles obligations issues de l’European Accessibility Act et défend l’accessibilité comme un investissement transversal plutôt qu’un coût ajouté en fin de projet.
Jordan Chapuy explique comment automatiser les correctifs de sécurité sur Debian avec unattended-upgrades, sans appliquer systématiquement les autres mises à jour. Il détaille la sélection des dépôts autorisés, la planification quotidienne, les redémarrages nécessaires après certaines mises à jour du noyau et la vérification de la configuration avec un dry-run. Pour plusieurs serveurs, il utilise Ansible afin de centraliser le déploiement. Il rappelle enfin que cet outil ne met pas à jour les images Docker et ne remplace pas une maintenance régulière.
Pele est une bibliothèque open source qui transforme la syntaxe Mermaid en diagrammes SVG personnalisables avec des variables CSS. Les couleurs et polices peuvent être modifiées sans recalculer le rendu. Conçue notamment pour Obsidian, elle s’intègre aux applications JavaScript via une API simple et prend en charge les types de diagrammes de Mermaid 12.1.0. Le projet annonce zéro dépendance directe, un bundle compressé de 230 Ko et des performances de rendu nettement supérieures à Mermaid.js, ainsi qu’une adaptation des diagrammes aux petits écrans.