Quotidien Shaarli
August 29, 2025
L'auteur présente Go-PHP-Parser, un outil permettant de parser du code PHP en Go sans dépendre de l’installation de PHP, dans le cadre de son projet AstMetrics (analyse de code via l’AST). Après avoir abandonné l’idée d’écrire un parser maison (trop complexe à maintenir face à l’évolution de PHP), il a opté pour l’intégration du moteur PHP officiel via la SAPI Embed et l’extension ext-ast, qui expose l’AST de manière stable et toujours à jour. Grâce à un bridge C/Go et à des binaires précompilés (via static-php-cli), l’outil est simple à utiliser et performant (4 000 à 8 000 fichiers/s). L’approche évite la maintenance d’une grammaire manuelle et ouvre la porte à des analyses avancées (métriques, refactoring, CI/CD, etc.). Le projet est open source et disponible sur GitHub.
Un projet astucieux pour qui veut analyser du PHP depuis Go sans dépendances externes !
L’authorization (autorisation) intervient après l’authentification pour déterminer ce qu’un utilisateur est autorisé à faire dans un système. Trois modèles principaux structurent cette gestion des permissions : le RBAC (Role-Based Access Control), où les utilisateurs se voient attribuer des rôles (admin, éditeur, lecteur) avec des droits prédéfinis, idéal pour sa simplicité et son évolutivité (ex. : Stripe, GitHub) ; l’ABAC (Attribute-Based Access Control), qui base l’accès sur des attributs utilisateurs ou contextuels (département, heure, localisation), offrant une grande flexibilité mais une complexité accrue ; et les ACL (Access Control Lists), où chaque ressource possède sa propre liste de permissions (ex. : Google Drive), précises mais difficiles à gérer à grande échelle. En pratique, les applications combinent souvent ces modèles (comme Firebase avec des règles hybrides RBAC/ABAC). Des outils comme OAuth2 (délégation sécurisée d’accès) et les JWT (jetons transportant identités et rôles) permettent d’appliquer ces règles de manière sécurisée et distribuée. L’autorisation repose ainsi sur un équilibre entre granularité, performance et sécurité, mêlant modèles et mécanismes pour répondre aux besoins spécifiques des systèmes modernes.
CSS Elevator est un projet ingénieux démontrant comment créer une machine à états interactive (un ascenseur) en CSS pur, sans JavaScript. L’auteur utilise des variables CSS personnalisées (via @property
), des compteurs, la pseudo-classe :has()
, et des transitions pour simuler le déplacement entre les étages, calculer la durée des trajets, afficher la direction, et même gérer l’accessibilité avec aria-live
. Les boutons radio servent de déclencheurs d’état, tandis que des astuces comme le délai de mise à jour des variables permettent de mémoriser l’état précédent. Le résultat est une animation fluide, réactive et accessible, prouvant que le CSS moderne peut gérer des logiques complexes, idéal pour des prototypes ou des environnements sans JavaScript.
L’article explique comment CSS Anchor Positioning révolutionne le positionnement des éléments en permettant de lier un élément cible à un ancrage précis, indépendamment de leur relation parent-enfant dans le DOM. Contrairement à position: absolute
, qui nécessite souvent une restructuration du HTML ou des calculs fragiles, cette nouvelle API permet de définir un ancrage (anchor-name
) sur un élément et de positionner un autre élément (position-anchor
) par rapport à ses bords (top, right, bottom, left) ou à une grille 3x3 (position-area
). Elle offre aussi des mécanismes de repli intelligents (position-try-fallbacks
) pour éviter les débordements hors de la viewport, comme basculer automatiquement un popup du haut vers le bas si l’espace manque. Idéal pour des composants dynamiques et responsives, cette technique simplifie des cas d’usage complexes (tooltips, badges, menus contextuels) sans JavaScript, même si son support reste limité aux navigateurs basés sur Chromium pour l’instant.
L’article explique comment récupérer les logs d’audit du control-plane des clusters Managed Kubernetes Service (MKS) d’OVHCloud, normalement accessibles uniquement via leur Logs Data Platform (LDP). L’auteur utilise Vector (v0.49.0), qui introduit un nouveau plugin websocket
, pour capter ces logs en temps réel depuis l’URL WebSocket fournie par OVHCloud. Après une configuration locale simple (fichier YAML définissant une source websocket
et un sink console
), les logs sont récupérés, nettoyés via des transformations (remap
), puis formatés en JSON. Cette méthode permet d’exporter les logs vers sa propre stack d’observabilité (Loki, ELK, etc.) ou vers d’autres environnements, offrant ainsi plus de flexibilité pour l’archivage ou l’analyse. Une solution efficace et légère, idéale pour compléter une stack d’observabilité existante.
Ce dépôt propose des implémentations de référence et une liste exhaustive de serveurs (officiels et communautaires) pour le Model Context Protocol (MCP), un standard open source permettant aux LLMs d’interagir de manière sécurisée avec des outils, APIs, bases de données et services externes. On y trouve des serveurs prêts à l’emploi pour GitHub, AWS, Slack, PostgreSQL, Notion, Stripe, et bien d’autres, ainsi que des frameworks (FastMCP, Spring AI) pour en développer facilement. Idéal pour automatiser des workflows, connecter des agents IA à des services SaaS, ou étendre les capacités des modèles comme Claude avec des actions concrètes (requêtes SQL, gestion de fichiers, appels API, etc.). Les serveurs s’intègrent directement avec des clients comme Claude Desktop ou Cursor via une simple configuration.