L'article explore comment utiliser les valeurs de couleur relative en CSS pour thématiser et animer les graphismes SVG de façon élégante et systématique. Andy Clarke partage des techniques pratiques basées sur l’espace colorimétrique OKLCH pour définir une couleur de base (“foundation colour”) puis générer automatiquement toutes les variantes nécessaires — teintes, ombres, gradients — sans les recalculer manuellement, ce qui simplifie grandement le développement et l’animation des designs tout en améliorant leur cohérence visuelle.
Un projet de recherche en cybersécurité de l'université de Vienne révèle qu'il est possible de surveiller l'activité des utilisateurs de WhatsApp sans qu'ils s'en rendent compte, en exploitant les accusés de réception et les temps de réponse. Cette technique, qui ne nécessite pas de piratage, permet de déduire des habitudes quotidiennes comme les heures de sommeil ou de déplacement. Bien que WhatsApp utilise un chiffrement de bout en bout, cette vulnérabilité repose sur les échanges invisibles nécessaires au fonctionnement de l'application. Un outil rudimentaire, développé par les chercheurs, démontre cette faille en envoyant des requêtes spécifiques et en analysant les temps de réponse. Les résultats peuvent être effrayants, permettant de reconstituer des schémas d'activité détaillés.
Ce tutoriel explique comment générer des certificats ECDSA Wildcard (par exemple, *.abyssproject.net) avec Let's Encrypt et l'API Infomaniak pour la gestion automatique des DNS, sous Debian 13. Il couvre l'installation des prérequis, la génération d'une clé API Infomaniak, la configuration de Certbot, l'émission d'un certificat, et le test du renouvellement automatique. Le processus utilise Certbot avec le plugin dns-infomaniak pour interagir avec les DNS Infomaniak.
Navidrome est un serveur de musique open source et auto-hébergé qui permet d'écouter sa propre collection musicale depuis n'importe quel navigateur ou appareil mobile. Similaire à des services comme Spotify ou Apple Music, il permet également de partager facilement sa musique et ses playlists. Après une installation simple, Navidrome indexe toute la musique stockée sur votre disque dur, la rendant accessible via un lecteur web ou des applications mobiles compatibles avec l'API Subsonic. Vous pouvez ainsi rechercher votre musique, créer des playlists, noter et favoriser vos morceaux, albums et artistes préférés.
Ce billet de blog de JoliCode explore l'utilisation de Jane, une suite de librairies PHP, pour maintenir la cohérence entre la documentation et le code dans le développement d'APIs. Jane génère automatiquement du code (modèles, normalisateurs, clients HTTP) à partir de spécifications JSON Schema ou OpenAPI, éliminant ainsi les divergences entre la documentation et le code. L'article illustre cette approche avec un exemple concret de tunnel d'achat e-commerce, divisé en deux microservices (Panier et Commande), et montre comment Jane peut être utilisée pour générer et valider les données échangées entre ces services.
L'article présente une méthode innovante pour améliorer l'utilisation de l'IA dans le développement de logiciels. L'auteur introduit le concept de "Design Log", un dossier versionné dans le dépôt Git contenant des documents markdown qui capturent les décisions de conception à un moment précis. Cette approche permet de résoudre le problème de la "Context Wall", où l'IA commence à faire des suggestions conflictuelles à mesure que le codebase grandit. L'article illustre cette méthodologie avec un exemple concret de l'ajout de "Server Actions" dans le Jay Framework, montrant comment l'IA peut devenir un partenaire architectural en suivant des règles de projet strictes. La méthode permet de passer d'une idée à une mise en production en seulement 48 heures, en favorisant une collaboration socratique et une implémentation traçable.
L'auteur partage son parcours dans le choix de son système d'exploitation, comparant diverses distributions Linux et systèmes BSD. Il décrit son évolution depuis les systèmes Microsoft, qu'il a quittés en 2001, jusqu'à son adoption de Slackware Linux, puis d'autres systèmes comme CentOS, OpenSUSE, et enfin Debian, qu'il utilise actuellement. Il souligne les débats passionnés entre utilisateurs de différentes distributions et partage son expérience personnelle, offrant une perspective descriptive plutôt que prescriptive. L'article est un récit détaillé de son voyage technologique, marqué par des essais, des échecs et des apprentissages.
Ploum partage son expérience autour du jeu Le comte et la communiste, un jeu en AsciiArt où l’on incarne une espionne/servante dans un château pendant la Première Guerre mondiale. Le jeu intègre un message codé en Baudot, un ancien système de télégraphie, qu’il décide de décoder via la ligne de commande Linux. Après avoir expliqué sa méthode artisanale et efficace (utilisant cut, tr, paste, et sed), il compare son approche avec celle de ChatGPT. Malgré plusieurs tentatives, ChatGPT produit un script complexe, peu robuste et finalement incorrect, illustrant les limites de l’IA pour des tâches précises nécessitant une expertise technique. Ploum souligne l’élégance et l’efficacité des outils Unix, ainsi que l’importance de la réflexion personnelle face à l’automatisation aveugle. Une réflexion sur l’autonomie technique et la dépendance aux outils d’IA, le tout agrémenté d’une touche d’humour et d’une recommandation pour le livre Efficient Linux at the Command Line.
L’article explique comment envoyer des courriels au format multipart (texte brut + HTML + images intégrées) depuis NeoMutt, un client mail en terminal. L’auteur détaille d’abord la théorie derrière les courriels multipart (standards MIME, multipart/alternative, multipart/related), puis propose une solution pratique pour rédiger des emails en Markdown, les convertir en HTML avec Pandoc, et intégrer automatiquement les images via un script Bash. Le script génère des commandes NeoMutt pour structurer le message et associer les images via des identifiants uniques (Content-ID). Une macro NeoMutt permet d’exécuter le script et d’envoyer le message final, compatible avec les clients mail modernes. L’article inclut aussi des astuces pour la coloration syntaxique du Markdown dans NeoMutt et des références utiles pour approfondir le sujet.
Idéal pour ceux qui veulent envoyer des emails riches depuis le terminal sans écrire de HTML manuellement.
OpenScreen est une alternative open-source et gratuite à Screen Studio, idéale pour créer des démonstrations et des tutoriels produits. Bien qu'elle ne propose pas toutes les fonctionnalités de Screen Studio, elle couvre les bases efficacement. OpenScreen permet d'enregistrer l'écran ou des applications spécifiques, d'ajouter des zooms manuels, de personnaliser les arrière-plans, d'ajouter des annotations, de découper et de trimmer les vidéos, et d'exporter dans différents formats. Le projet est en version bêta et peut présenter quelques bugs. Il est disponible pour macOS et Linux, avec des instructions d'installation spécifiques pour chaque système.
L'auteur partage son expérience avec les outils d'IA générative comme Claude Code, qui ont révolutionné sa façon de coder. Il estime que la majorité du code sera désormais généré par ces outils, réduisant la saisie manuelle et se concentrant sur la réflexion, l'analyse et la relecture. Il souligne l'importance des tests pour fonder et documenter le code, et mentionne les capacités avancées de ces outils pour analyser des bugs, lire des logs et comprendre du code legacy. L'auteur prédit que ces outils rendront obsolète l'écriture manuelle de code, car ils sont plus efficaces et moins sujets aux erreurs.
Andrew Nesbitt explore le fonctionnement de Dependabot, un outil de mise à jour automatique des dépendances pour GitHub, GitLab et Gitea. Bien que Dependabot soit souvent perçu comme un bot intelligent, il s'agit en réalité d'une bibliothèque Ruby sans état, dont la logique de mise à jour est open source sous licence MIT, mais dont la coordination et le suivi d'état restent propriétaires. L'auteur détaille l'architecture du code, qui supporte plus de 25 écosystèmes de paquets, et explique comment Dependabot utilise des outils natifs pour effectuer les mises à jour. Malgré sa complexité, Dependabot-core est conçu pour être sans état, traitant chaque tâche de manière indépendante.
Ce tutoriel explique comment créer un assistant de codage basique en seulement 200 lignes de Python. Il démystifie le fonctionnement des outils d'IA comme Claude Code, en montrant que leur fonctionnement repose sur une boucle simple : l'IA envoie des requêtes pour lire, lister ou modifier des fichiers, et votre code exécute ces actions localement. L'article détaille l'implémentation de ces trois outils essentiels et montre comment les intégrer dans une conversation avec un LLM pour créer un agent de codage fonctionnel.
Ce billet de blog explique que lorsque vous utilisez un VPN Wireguard sur un smartphone et partagez sa connexion internet via un hotspot Wi-Fi, les appareils connectés à ce hotspot ne passent pas automatiquement par le tunnel VPN du smartphone. Le trafic de ces appareils utilise directement la connexion mobile du smartphone sans être chiffré ou routé via le VPN. La solution proposée est d'installer et d'activer le client Wireguard sur chaque appareil connecté pour bénéficier du VPN. Pour vérifier si le trafic passe par le VPN, l'auteur suggère de comparer l'adresse IP publique affichée sur un site comme whatismyip.com avec celle du serveur VPN.
Ce billet de blog explique comment rendre son terminal plus intelligent et productif grâce à des alias, des scripts et des intégrations. L'auteur partage ses astuces pour améliorer l'historique des commandes, l'autocomplétion, et l'utilisation de Docker avec FZF. Il montre également comment automatiser la gestion des versions de Node.js et PHP, rendant le terminal presque magique. Des exemples de code sont fournis pour illustrer chaque amélioration.
Ce billet explore l'évolution des shortcodes de WordPress, ces balises dynamiques comme [gallery id="123"], en les modernisant avec les standards de PHP 8.5 et Symfony 8. L'auteur, ayant travaillé sur l'intégration d'une galerie d'images dans un article Markdown, analyse les forces et faiblesses de l'API historique de WordPress, qui, malgré sa simplicité et son succès, présente des dettes techniques critiques : pollution de l'espace de noms global, absence de typage, vulnérabilités XSS, et couplage fort entravant les tests. La réponse à la problématique architecturale est affirmative : il est possible de reconstruire cette API en conservant son ergonomie tout en y insufflant fiabilité, sécurité et performances. L'article propose ainsi une modernisation des shortcodes pour une utilisation plus sûre et efficace.
Symfony UX Icons révolutionne la gestion des icônes dans Symfony en intégrant plus de 200 000 icônes SVG via Iconify, sans CDN, sans sprite et sans configuration complexe. Ce composant télécharge les icônes localement, les met en cache et les injecte directement dans le HTML, optimisant ainsi les performances et la maintenabilité. Avec une simple ligne de code Twig, vous pouvez utiliser des icônes de diverses collections comme Tabler, Lucide ou Material Design Icons. Installation via Composer et usage immédiat sans configuration supplémentaire.
Ce billet explique comment configurer Google Jules, une IA, pour automatiser les tâches de QA, sécurité et performance d'un projet Symfony avec Docker. L'auteur, ne pouvant consacrer beaucoup de temps à la maintenance, utilise Jules comme une équipe de support asynchrone. Il décrit le défi de rendre l'IA compatible avec Docker et partage un script Bash qui configure l'environnement pour que Jules puisse interagir avec la stack complexe (Docker, PostgreSQL, Redis, Meilisearch) sans compromettre l'intégrité du projet. Le script gère la détection dynamique du contexte, les permissions Git et Docker, et permet à Jules de piloter le daemon Docker de la machine hôte.
Symfony UX Toolkit révolutionne l'expérience de développement frontend en intégrant la philosophie de Shadcn/ui, permettant de créer des composants UI personnalisables et accessibles directement dans Twig. En copiant et adaptant du code plutôt que d'utiliser des dépendances NPM, les développeurs gagnent en contrôle et en flexibilité. L'outil génère des composants avec une logique PHP, des templates Twig sémantiques et des contrôleurs Stimulus pour une accessibilité et une maintenance optimisées. Le résultat est une réduction significative du volume de code, une accessibilité standardisée et une productivité accrue.
L'auteur explique pourquoi le pattern Singleton, bien que séduisant par sa simplicité, se transforme souvent en antipattern coûteux. À travers son expérience sur un projet legacy truffé de Singletons, il montre comment ce pattern crée des dépendances cachées, rend les tests impossibles et engendre des problèmes de concurrence. Le Singleton, en agissant comme une variable globale déguisée, viole plusieurs principes SOLID (Dependency Inversion, Single Responsibility, Open/Closed) et complique la maintenance du code. Les tests deviennent difficiles à écrire et à isoler, tandis que la gestion de l’état global partagé introduit des bugs aléatoires et des goulots d’étranglement. L’auteur propose des alternatives comme l’injection de dépendances, la composition root ou les factories, qui rendent le code plus testable, flexible et maintenable. Il conclut que le Singleton doit être évité dans la plupart des cas, sauf pour des ressources vraiment uniques et globales, et insiste sur l’importance de bien évaluer les compromis avant de l’utiliser.