Quotidien Shaarli
Hier - May 5, 2026
Les fonctions CSS natives avec la règle @function permettent de créer des outils de calcul personnalisés directement dans le navigateur, évitant ainsi l'usage de préprocesseurs comme SASS ou de JavaScript pour des opérations complexes. Leur principal avantage réside dans la performance : les calculs sont exécutés nativement par le moteur du navigateur (en C++), ce qui améliore la vitesse de rendu et réduit les dépendances externes. Par exemple, une fonction peut encapsuler des calculs répétitifs, comme des espacements ou des tailles, pour un code plus maintenable.
La syntaxe des @function repose sur des règles strictes, notamment un typage explicite pour garantir la cohérence des données. Les types (<number>, <length>, <color>, etc.) permettent au navigateur de valider les entrées et d'optimiser les calculs. Le polymorphisme, via l'opérateur |, offre une flexibilité supplémentaire en autorisant une fonction à accepter plusieurs types de données, comme une taille absolue ou un pourcentage, pour des designs plus adaptables.
Enfin, ces fonctions simplifient la création de designs fluides en combinant des calculs mathématiques (comme clamp()) avec des règles dynamiques, réduisant le besoin de media queries. Leur adoption est particulièrement pertinente pour les projets axés sur la performance, où chaque milliseconde compte.
L’article d’Ahmad Shadeed présente la syntaxe des requêtes média en plage (range syntax), une évolution des media queries classiques (min-width/max-width) pour simplifier la gestion des breakpoints en responsive design. L’idée centrale est d’éviter les bugs de layout liés aux chevauchements de valeurs (ex. : un élément masqué à 300px par deux requêtes contradictoires) en utilisant des opérateurs de comparaison clairs comme width <= 300px ou 300px <= width <= 500px, plus intuitifs que les combinaisons de min-width et max-width.
L’auteur illustre les limites des méthodes traditionnelles, où des ajustements manuels (ex. : max-width: 299px vs min-width: 300px) deviennent complexes avec plusieurs breakpoints, et souligne les avantages des requêtes en plage : meilleure lisibilité, maintenance simplifiée et support étendu depuis 2023. Cette syntaxe, intégrée aux Media Queries Level 4, permet aussi de définir des plages de valeurs directement, comme (300px <= width <= 500px), réduisant les erreurs de logique et accélérant le débogage.
LLPhant est un framework PHP open source conçu pour simplifier le développement d'applications d'intelligence artificielle générative, inspiré par Langchain. Il prend en charge plusieurs modèles de langage (LLM) comme OpenAI, Anthropic, Mistral ou Ollama, et s'intègre avec Symfony et Laravel. Le projet vise à offrir une solution légère mais puissante, avec des outils pour manipuler des embeddings et des bases de données vectorielles.
Le framework est compatible avec PHP 8.1+, s'installe via Composer et propose une documentation complète. Il inclut des fonctionnalités comme le HumanInTheLoopTool pour des clarifications utilisateur initiées par l'IA, ainsi que des intégrations avec des services comme Pinecone ou MongoDB pour le stockage vectoriel.
Développé par Theodo et soutenu par des contributeurs, LLPhant est sous licence MIT et bénéficie d'une communauté active (1,6k étoiles, 159 forks). Des tutoriels et ressources externes, notamment en français, facilitent son adoption pour des projets comme des systèmes RAG ou des agents autonomes.
L’article partage des découvertes techniques récentes, notamment l’opérateur PHP match introduit dans la version 8.1, qui simplifie les correspondances de valeurs par rapport à un switch traditionnel, améliorant ainsi la lisibilité du code. L’auteure explore aussi des concepts TypeScript comme la différence entre as et satisfies, illustrant comment ce dernier offre une meilleure vérification des types à la compilation. Elle aborde également des réflexions sur les limites de TypeScript, soulignant l’importance de la validation des données au runtime et la pratique du parsing plutôt que de la simple validation pour renforcer la robustesse du code.
Camille Roux a développé un agent IA nommé vibe code pour automatiser la recherche d’un appartement à Montpellier, un processus habituellement fastidieux. L’outil scanne en temps réel trois plateformes immobilières (Leboncoin, SeLoger, Bien’Ici), filtre les annonces selon des critères personnalisables (budget, localisation, surface, etc.) et les classe avec un système de scoring pondéré. Un dashboard Kanban en Rails 8, déployé via Kamal, permet ensuite de suivre l’avancement des dossiers et des relances avec les agences.
L’agent repose sur un slash command (/appart) dans Claude Code, qui déclenche une série d’actions automatisées : navigation via le MCP Claude in Chrome, extraction des données JSON, déduplication des annonces et enrichissement des meilleures options. La logique de notation est transparente et ajustable via un fichier criteria.json, offrant une personnalisation fine des priorités.
Ce projet illustre l’efficacité du vibe coding pour des besoins ponctuels, évitant un développement manuel long et peu motivant. Les slash commands et le MCP Chrome se révèlent des leviers puissants pour créer des outils sur mesure, notamment pour interagir avec des sites dynamiques. L’auteur souligne aussi l’intérêt de cette approche pour automatiser des tâches répétitives, au-delà du simple développement logiciel.
Cette page présente des techniques pour améliorer les tests logiciels, applicables aussi bien aux tests manuels qu’automatisés. L’idée principale est d’intégrer des méthodes comme l’aléatoire, les tests basés sur des propriétés ou l’adaptation dynamique pour couvrir davantage de cas et détecter des bugs imprévisibles. Par exemple, la randomisation des entrées ou des séquences de fonctions permet d’explorer des scénarios non couverts par les tests déterministes classiques.
L’article souligne aussi l’importance d’ajuster la distribution des entrées aléatoires pour cibler des bugs spécifiques, tout en évitant de trop restreindre les combinaisons testées. Des outils comme Hypothesis ou AFL++ illustrent ces approches, tandis que des méthodes comme l’Adaptive Random Testing ou Swarm testing optimisent la génération de cas de test.
Enfin, la plateforme Antithesis intègre ces bonnes pratiques pour offrir une solution unifiée, combinant plusieurs techniques avancées en un seul outil. Cela permet aux développeurs de renforcer leurs tests sans avoir à les implémenter manuellement.
L’article explique comment configurer un backend HTTPS avec un certificat auto-signé dans Kubernetes en utilisant Gateway API et trust-manager, en remplacement des annotations simplistes d’Ingress-NGINX. L’auteur détaille la migration d’une ressource Ingress vers une HTTPRoute couplée à une BackendTLSPolicy, qui impose une validation stricte du certificat backend, contrairement à NGINX qui permet de désactiver cette vérification. La solution repose sur l’intégration d’une autorité de certification (CA) interne dans un ConfigMap, référencée par la BackendTLSPolicy pour valider le certificat auto-signé.
L’auteur souligne que Gateway API, bien que plus sécurisé et déclaratif, ne propose pas d’option pour ignorer la validation du certificat backend, contrairement à NGINX. La méthode proposée utilise trust-manager pour injecter automatiquement la CA dans le cluster, simplifiant ainsi la gestion des certificats auto-signés. Cette approche garantit une configuration cohérente et sécurisée, alignée sur les bonnes pratiques Kubernetes.
L’auteur partage son expérience après 181 jours de développement de Writizzy, une plateforme de blog, dont le trafic SEO reste insuffisant malgré ses fonctionnalités. Avec seulement 1 850 visiteurs uniques en avril, le trafic provient surtout des réseaux sociaux et du trafic "brand", tandis que le référencement naturel est défaillant. Pour identifier les problèmes, il utilise l’outil claude-seo, qui évalue plusieurs aspects du SEO (technique, contenu, performance) et attribue un score global de 47/100.
L’audit révèle des axes d’amélioration, notamment en SEO technique. Parmi les recommandations, l’optimisation des images et l’ajout de directives comme preload ou preconnect pour le CDN Bunny sont suggérées. L’auteur souligne aussi l’importance des données structurées en JSON-LD, essentielles pour aider les robots d’indexation à comprendre le contenu, bien que invisibles pour les utilisateurs.
Enfin, l’outil met en lumière des faiblesses dans la qualité du contenu et le référencement IA, avec des scores respectifs de 38/100 et 41/100. Ces résultats, bien que perfectibles, offrent une feuille de route concrète pour améliorer la visibilité de Writizzy sur les moteurs de recherche.