Mensuel Shaarli

Tous les liens d'un mois sur une page.

June, 2025

Les outils de génération de code, la couche confort du développeur ? | Le Touilleur Express

L'article explore l'impact des outils de génération de code assistés par l'IA sur le développement logiciel moderne. Il met en lumière des outils comme Cursor et Windsurf, qui intègrent l'IA pour aider les développeurs à écrire du code plus rapidement et plus efficacement. Cursor, basé sur VSCode, offre des fonctionnalités comme la complétion de code intelligente et un chat intégré pour discuter des améliorations de code. Windsurf, quant à lui, va plus loin en permettant des refactorings complexes et une compréhension multi-fichiers. Cependant, l'article souligne également les défis et les pièges potentiels de ces outils, tels que la génération de code qui compile mais ne fonctionne pas comme prévu, l'accumulation de dette technique, et la dépendance excessive à l'IA qui pourrait entraîner une perte de compétences. En outre, l'article aborde l'intégration de ces outils dans les workflows de développement, notamment avec des plateformes comme Graphite et Diamond, qui automatisent les revues de code et améliorent la qualité logicielle. Enfin, il réfléchit sur l'avenir du métier de développeur, suggérant que les rôles évolueront vers une supervision et une orchestration accrues des outils d'IA, tout en maintenant une compréhension solide des fondamentaux du codage.

What are Secure Boot & Shim Files? Explained for Linux Users

Secure Boot est une fonctionnalité de sécurité conçue pour empêcher le chargement de logiciels non autorisés lors du démarrage du système, mais elle peut poser des problèmes pour les utilisateurs de Linux en raison de signatures non reconnues. Les fichiers Shim agissent comme des traducteurs entre Secure Boot et Linux. Signés avec une clé reconnue par Secure Boot, souvent par Microsoft, ils permettent de charger Linux sur des machines avec Secure Boot activé. L'auteur finit en expliquant comment désactiver Secure Boot si nécessaire (distribution Linux non supportée, problème matériel, etc.)

Comment Discord indexe des trillions de messages ? - AI Explorer

Discord a partagé les détails de l'évolution de son infrastructure de recherche, lui permettant d'indexer des trillions de messages et d'introduire des fonctionnalités comme la recherche multi-serveurs. Initialement, l'architecture reposait sur Elasticsearch avec une indexation paresseuse utilisant Redis, mais la croissance rapide a révélé des limites, notamment des pertes de messages et des surcharges des nœuds. Pour y remédier, Discord a migré vers Google Cloud PubSub pour une livraison garantie des messages et a optimisé l'indexation en masse avec un routeur intelligent. Ils ont également introduit des cellules Elasticsearch pour mieux répartir la charge et isoler les grands serveurs, tout en adoptant Kubernetes pour une orchestration plus efficace. Ces améliorations ont permis une indexation fiable, une meilleure gestion des grands serveurs, une scalabilité accrue et de nouvelles fonctionnalités comme la recherche multi-serveurs, améliorant ainsi l'expérience utilisateur.

A Better API for the Intersection and Mutation Observers | CSS-Tricks

Suite de https://css-tricks.com/a-better-api-for-the-resize-observer/ , l'article propose une refonte des API pour MutationObserver et IntersectionObserver afin de les rendre plus simples à utiliser. L'auteur montre comment simplifier l'utilisation de ces observateurs en utilisant des motifs de rappel et d'écouteurs d'événements. Pour MutationObserver, il explique comment observer les mutations du DOM et se déconnecter proprement en utilisant une méthode disconnect. Concernant IntersectionObserver, il détaille comment observer les changements d'intersection d'un élément avec un ancêtre ou une fenêtre de visualisation. Enfin, l'article mentionne une bibliothèque pratique, Splendid Labz, qui offre des utilitaires pour ces observateurs, facilitant leur intégration dans des projets web.

Angular Signals: A New Mental Model for Reactivity, Not Just a New API — SitePoint

L'article introduit les Signaux en tant que nouveau modèle mental pour la réactivité dans Angular, en se concentrant sur des variables réactives plutôt que sur des flux de données. Contrairement à RxJS, où les données sont traitées comme des flux, les Signaux permettent de lire les valeurs comme des variables, simplifiant ainsi la gestion des dépendances et des réactions. Cependant, cette approche nécessite une attention particulière pour éviter les dépendances implicites et les recalculs inattendus. Bien que les Signaux ne remplacent pas RxJS, ils offrent une alternative efficace pour la gestion de l'état local et les données dérivées dans les composants.

Le traitement d'images par lot sous Linux - Le Blog de Dorian

L'article présente l'utilisation de base de Imagemagick

PSR mon amour : 50 nuances de conventions  • Lecodeestdanslepre

L'auteur présente les PSR - PHP Standard Recommandations : leur histoire, à quoi elles servent, et surtout il détaille les principales :

  • PSR-1, normes de codage de base
  • PSR-2, guide de style - remplacé par PSR-12
  • PSR-3, interface pour les logger
  • PSR-4, autoloading
  • PSR-7, HTTP message interface
  • PSR-11, interface pour les containers d'injection de dépendance
Strategy pattern in Symfony 7

L'article explique comment implémenter le design pattern Strategy dans Symfony 7 pour gérer des comportements différents sous certaines conditions sans utiliser de multiples instructions if. Ce modèle permet de créer des stratégies distinctes et testables individuellement, rendant le code plus élégant et professionnel. L'article décrit la structure du modèle, composée d'une classe de contexte, de classes de stratégie individuelles et de classes auxiliaires. Trois exemples concrets sont fournis : une règle métier, des opérations avec API Platform, et une recherche intelligente avec Doctrine. L'utilisation du pattern Strategy dans Symfony 7 est présentée comme une solution efficace pour centraliser et simplifier la gestion des comportements variés dans une application.

Quick HTML test case - otsukare

L'article explique comment créer un cas de test HTML simple pour signaler un bug ou un comportement inattendu. Il recommande d'utiliser des outils en ligne comme jsfiddle ou codepen, mais préfère souvent les URLs de type data: pour partager du code rapidement. L'auteur illustre cela avec un exemple de code HTML et JavaScript qui extrait une valeur de style, montrant les différences de résultats entre les navigateurs. Il démontre comment condenser ce code en une seule ligne et l'utiliser directement dans la barre d'URL d'un navigateur. Enfin, il mentionne avoir ouvert un rapport de bug pour le problème discuté.

Une infra en Data Center ? Update 2025 !

L'article décrit une mise à jour majeure de l'infrastructure d'un data center personnel, surnommée "la Brasserie". L'autrice raconte comment un incident pendant les vacances de Noël, où son routeur principal est tombé en panne, l'a conduit à une refonte complète de son infrastructure. Elle a remplacé le matériel défectueux par un nouveau routeur MikroTik CCR 2004 et a restructuré son réseau en utilisant plusieurs VLANs pour mieux organiser et sécuriser son environnement. L'article détaille les étapes de la migration, y compris la reconfiguration des hyperviseurs XCP-ng, la mise en place de nouveaux VLANs, et la réinstallation de Xen Orchestra pour la gestion des machines virtuelles. L'infrastructure comprend désormais trois serveurs Dell R630, un NAS Synology, et plusieurs outils open source pour le web, les mails, la comptabilité, et le monitoring. L'autrice envisage des améliorations futures, comme l'ajout d'un cluster Kubernetes et l'amélioration de sa stack de monitoring.

A Better API for the Resize Observer | CSS-Tricks

L'article propose une amélioration de l'API pour le ResizeObserver, un outil JavaScript utilisé pour observer les changements de taille des éléments DOM. L'auteur suggère d'encapsuler la logique du ResizeObserver dans une fonction plus simple et réutilisable, ce qui rend son utilisation plus intuitive et proche des modèles d'écouteurs d'événements familiers. En passant un élément et une fonction de rappel à cette fonction personnalisée, les développeurs peuvent facilement réagir aux changements de taille sans avoir à réécrire le code standard du ResizeObserver à chaque fois. De plus, l'article montre comment intégrer des options supplémentaires et gérer l'arrêt de l'observation, offrant ainsi une solution plus flexible et maintenable. Enfin, il mentionne une bibliothèque appelée Splendid Labz qui offre une version améliorée de cet observateur, capable de gérer plusieurs éléments simultanément.

Sampling et S3 : Le cauchemar du monitoring moderne | Maxence Maireaux

L'article critique deux pratiques courantes dans le domaine du monitoring : le sampling des données et l'utilisation de S3 comme solution de stockage principale. Le sampling, bien que présenté comme une solution économique, peut entraîner une perte de granularité cruciale, rendant invisibles des problèmes intermittents et compliquant le débogage. De plus, l'utilisation de S3, bien que durable et économique, introduit des latences importantes et des coûts cachés, rendant les opérations de monitoring inefficaces et coûteuses en situation de crise. L'auteur souligne que ces pratiques peuvent transformer le monitoring en un processus inefficace, avec des conséquences graves lors d'incidents majeurs. Il recommande d'investir dans des solutions de monitoring adaptées pour éviter ces pièges et garantir une visibilité opérationnelle complète.

The Complete Guide to Node.js Logging Libraries in 2025 | Last9

L'article présente une comparaison des bibliothèques de journalisation pour Node.js, mettant en avant leurs forces et leurs cas d'utilisation spécifiques. Par exemple, Winston est apprécié pour sa grande configurabilité, ce qui le rend idéal pour les applications complexes, tandis que Pino est privilégié pour ses performances élevées, adaptées aux systèmes à haut débit. L'article souligne également l'importance de choisir une bibliothèque de journalisation en fonction des besoins spécifiques du projet, tels que la structure des données, l'expérience de l'équipe et les exigences d'intégration. Il conclut sur une liste de bonnes pratiques et recommandations

Docker : live-restore, c'est quoi ? - slash-root.fr

La fonctionnalité live-restore de Docker permet aux conteneurs de continuer à fonctionner normalement pendant le redémarrage du démon Docker, évitant ainsi les interruptions de service. Cela est particulièrement utile pour les mises à jour de sécurité et la maintenance planifiée, car cela découple les conteneurs du cycle de vie du démon, les maintenant actifs sous la supervision du noyau Linux. Cependant, cette fonctionnalité ne protège pas contre les redémarrages du système d'exploitation ou les pannes matérielles, et certaines fonctionnalités Docker sont limitées pendant le redémarrage.

Docker : Configuration des réseaux par défaut - slash-root.fr

L'article explique la configuration des réseaux par défaut dans Docker, qui crée automatiquement trois réseaux : bridge, host, et none. Il aborde la résolution des conflits d'adresses IP en modifiant le fichier /etc/docker/daemon.json et en redémarrant Docker. L'article détaille également les différents types de réseaux disponibles dans Docker, comme macvlan pour les réseaux physiques et overlay pour les clusters Swarm, tout en offrant des bonnes pratiques pour une gestion efficace des réseaux Docker.

Foggy feeds: the decline in my feed reader subscriptions

L'auteur constate que, dans son flux d'actualité, la qualité globale des articles diminue, en particulier pour le raisonnement. Par exemple, il suit des auteurs avec lesquels il n'est pas d'accord, mais dont les raisonnements lui paraissent corrects bien qu'incomplets. L'auteur a souffert du "brouillard COVID", une affection qui rendait la réflexion particulièrement compliquée. Il se demande si cette affection n'est pas beaucoup plus répandue qu'on ne le croit, car les articles qu'il lit lui semblent rédigées par des personnes infectées. Enfin, il soupçonne aussi que l'utilisation par nombre d'auteurs de l'intelligence artificielle pour reformuler leurs écrits induise une diminution de leur capacité d'écriture. Il est d'ores et déjà montré que l'utilisation de l'IA sans recul provoque une perte d'esprit critique.

PHP 3 to 8: The Evolution of a Codebase

L'auteur illustre l'évolution de PHP, de la version 3 vers la version 8, à travers les changements de style d'écriture d'une même fonctionnalité. PHP est un langage très vivant

How Should You Choose Your Career? - Scott H Young

Le travail occupe une grande partie de notre vie, influençant non seulement nos finances, mais aussi notre communauté et notre identité. Bien que l'argent soit important, il ne garantit pas le bonheur et doit être considéré parmi d'autres facteurs. Choisir une carrière basée uniquement sur ses talents peut être trompeur, car ils ne correspondent pas toujours à des emplois viables. Les premiers emplois devraient être choisis pour leur potentiel d'apprentissage plutôt que pour le salaire, et il est crucial de rester ouvert et flexible face aux opportunités. Enfin, le réseautage et le choix du lieu de travail jouent un rôle clé dans le succès et la satisfaction professionnelle.

Développement d'application en Flutter : retours d'expérience (1/2) | JoinPeerTube

Le développement de l'application PeerTube a conduit à l'adoption de Flutter pour le développement multiplateforme, permettant une seule base de code pour Android et iOS, réduisant ainsi les coûts et les efforts de maintenance. L'équipe a dû se former à Flutter et à Dart, en utilisant diverses ressources pour maîtriser ces technologies. Une architecture "feature-first" a été choisie pour organiser le code par fonctionnalité, favorisant la modularité et la clarté du projet. Plusieurs dépendances ont été soigneusement sélectionnées, comme Riverpod pour la gestion d'état et GoRouter pour la navigation, tout en rencontrant des défis avec certaines bibliothèques comme Chewie pour la lecture vidéo.

Partial Keyframes • Josh W. Comeau

L'article explore une technique avancée des animations CSS avec des keyframes partiels. En omettant les points de départ ou de fin dans une animation, les valeurs initiales sont héritées du contexte, rendant les animations plus dynamiques et réutilisables. Cette approche permet de créer des animations qui s'adaptent à l'état actuel de l'élément, facilitant ainsi des transitions plus fluides et personnalisées. De plus, l'utilisation de variables CSS dans les keyframes permet de définir des valeurs dynamiques, augmentant encore la flexibilité et la puissance des animations CSS.

Créer une API rest basique en Python avec Flask - Blog - Code-Garage

L'article est une bonne introduction à Flask : il commence par expliquer comment installer Flask, créer son application et la lancer pour qu'elle écoute les requêtes. Ensuite, on voit comment renvoyer du JSON, comment gérer les verbes HTTP, etc.

Fakir et l'IA : y'a rien qui va | Grise Bouille

C'est triste

Comment partager facilement les extensions VS Code au sein d’une équipe grâce à extensions.json – Idriss Code

L'auteur explique la marche à suivre pour partager une liste d'extensions VS Code recommandées. Il précise aussi comment éviter certaines extensions et la création d'un pack

Note pour plus tard : Slow boot - Job dev-disk-by/x2uuid-... qui prend 1m30 au démarrage - Warrior du Dimanche

Une astuce intéressante si un système linux met beaucoup de temps à démarrer

Stop Using Docker like its 2015 - DEV Community

L'article présente des choses à ne plus faire avec Docker :

  • mettre le champ "version" dans le fichier compose
  • ne pas mettre de "healthchecks"
  • être root par défaut
  • ne avoir de .dockerignore
  • avoir des Dockerfiles en une seule étape surchargée -> il faut utiliser les builds en plusieurs étapes
  • des builds manuels sans cache, il y a même la possibilité de faire du hot reload

Docker peut servir aussi bien en développement local qu'en production.

Detecting malicious Unicode | daniel.haxx.se

L'auteur raconte comment un contributeur du projet curl a soumis une demande de modification où il a remplacé une lettre ASCII par une alternative Unicode dans une URL, sans que personne ne le remarque. Cela a conduit l'équipe à renforcer leurs processus de révision pour détecter de tels changements invisibles à l'œil nu. GitHub, où le projet est hébergé, n'a pas réagi de manière significative à ce problème, ce qui a incité l'équipe à implémenter ses propres vérifications pour identifier les caractères Unicode ambigus. Ces mesures visent à prévenir les attaques potentielles exploitant des failles similaires dans le futur.

https://une-tasse-de.cafe/blog/housing/

L'article se concentre sur l'auto-hébergement de services et l'utilisation du protocole BGP (Border Gateway Protocol) pour gérer ses propres plages d'adresses IP. L'auteur explique comment obtenir un ASN (Autonomous System Number) via un sponsoring pour éviter les coûts élevés associés à l'acquisition directe. Il décrit également ses expériences avec la configuration de BGP sur un VPS et les défis rencontrés pour annoncer des routes IP, en utilisant des outils comme BIRD sur Debian.

Établissement d’une connexion TLS – Idriss Code

Un article expliquant en détail le fonctionnement de TLS

Pourquoi je n’utilise pas ChatGPT - ritimo

Un long article à charge - l'autrice explique pourquoi - contre l'utilisation des IA génératives : impacts socio-environnementaux, contexte politique et économique du déploiement de ces outils, alternatives éthiques et souveraines qui pourraient avoir plutôt un effet rebond, gains de temps illusoires, créativité figée, perte de compétence, etc.

Smashing Animations Part 4: Optimising SVGs — Smashing Magazine

L'article explore les techniques pour rendre les animations SVG plus rapides, plus simples et plus faciles à gérer. L'auteur s'inspire des dessins animés classiques pour créer des animations modernes en utilisant des outils comme CSS et SVG. Il souligne l'importance de commencer avec un design propre et d'optimiser les fichiers SVG en réduisant les points d'ancrage et en utilisant des outils comme SVGOMG pour minimiser la taille des fichiers. L'article détaille également comment structurer le code SVG en couches pour faciliter l'animation et la maintenance, tout en réutilisant des éléments pour améliorer l'efficacité et la performance.

Getting Creative With HTML Dialog | CSS-Tricks

L'article explore comment transformer les boîtes de dialogue HTML en éléments visuellement attrayants et cohérents avec l'identité d'une marque. En utilisant des techniques CSS avancées telles que ::backdrop, backdrop-filter, et des animations, l'auteur montre comment dépasser les designs génériques pour créer des expériences utilisateur uniques et mémorables. L'article met en lumière des exemples concrets, comme l'intégration de designs rétro inspirés des années 90, tout en maintenant l'accessibilité et la performance. Il encourage les designers à voir les boîtes de dialogue non seulement comme des éléments fonctionnels, mais aussi comme des opportunités pour renforcer le storytelling et l'identité visuelle d'un site web.

Blog Eleven Labs - Créer une règle personnalisée avec ESLint PLugin

L'article explique comment créer un plugin ESLint personnalisé en utilisant TypeScript et la nouvelle configuration "flat config" d'ESLint. Il se concentre sur le développement d'une règle spécifique qui décourage l'utilisation de la propriété style dans les composants React, favorisant ainsi des pratiques de codage plus cohérentes et maintenables. Le guide fournit des instructions détaillées sur la configuration du projet, l'implémentation de la règle - en utilisant https://astexplorer.net/ pour comprendre la structure de l'AST, et l'intégration avec ESLint, tout en offrant des exemples pratiques et des conseils pour étendre les fonctionnalités du plugin. Enfin, il souligne l'importance des tests et de la publication du plugin pour une utilisation dans des projets réels.

Good Commit Messages Are Just Self-Care: Why I Document Everything | by n8h1n (memory build: unstable) | May, 2025 | Medium

L'article explore l'importance des messages de commit clairs et de la documentation complète dans le processus de développement logiciel. L'auteur y décrit sa routine personnelle pour rédiger des messages de commit détaillés et structurés, en utilisant un modèle standard qui inclut le type de modification, la portée, un résumé, une description du problème, la solution apportée, et le contexte supplémentaire. Il souligne également l'impact positif de cette pratique sur la collaboration et la maintenance du code. L'article aborde aussi l'utilisation d'outils comme les hooks Git pour maintenir la qualité des commits et l'intégration de l'IA pour aider à la documentation. Enfin, l'auteur partage son approche pour gérer la documentation à travers différentes étapes du développement, soulignant que ces pratiques sont essentielles pour un développement professionnel efficace.

Augmented engineering: learnings of an AI skeptic - Jack Franklin

L'article explore l'impact de l'IA sur le développement logiciel à travers son expérience personnelle. Initialement sceptique, l'auteur a découvert que l'IA pouvait significativement améliorer sa productivité, notamment en générant du code pour des tâches répétitives et en servant de "rubber duck" pour résoudre des problèmes complexes. Il souligne que l'IA excelle dans l'automatisation des tâches banales, permettant aux ingénieurs de se concentrer sur des aspects plus créatifs et architecturaux du développement. Cependant, il met en garde contre une confiance aveugle dans les outils d'IA, insistant sur la nécessité de revoir et de tester soigneusement le code généré. l'auteur partage également des stratégies pour intégrer l'IA dans les flux de travail, comme l'utiliser dans les éditeurs de code et expérimenter avec différents modèles de prompts. En fin de compte, il encourage les développeurs à adopter l'IA de manière critique et réfléchie pour rester compétitifs dans un paysage technologique en évolution.

f/awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT and other LLM tools better.

Une liste de prompts plus ou moins amusants ou utiles

Clean Domain-Driven Design. Combine Clean Architecture and DDD… | by George | Technical blog from UNIL engineering teams | Medium

L'article explore une approche pour construire des applications en combinant les principes du Domain-Driven Design (DDD) et de l'architecture Clean. L'auteur propose de se concentrer sur les cas d'utilisation plutôt que sur les entités pures du DDD, en utilisant des cas d'utilisation pour orchestrer la logique métier inter-aggregats de manière claire et ciblée. L'article présente un exemple d'application simple avec des entités comme Student et Course, illustrant comment modéliser le domaine et gérer les relations entre les agrégats. Il préconise l'utilisation de l'ORM pour les opérations C(r)UD et des requêtes JDBC directes pour les requêtes impliquant plusieurs agrégats, s'inspirant des principes CQRS. Les cas d'utilisation sont transactionnels pour garantir la cohérence des états des agrégats. L'article conclut en soulignant les avantages de cette approche, notamment une meilleure compréhension du code et une facilité de test.

CSS et faire de l'UI, c'est facile - Nicolas-Hoffmann.net

Un billet d'humeur... dont je plussoie la conclusion

Utiliser l'IA pour penser | Richard Dern

L'article explore comment l'intelligence artificielle peut être utilisée comme un outil pour améliorer la pensée critique et la rigueur intellectuelle. Plutôt que de blâmer l'IA pour ses défauts, l'auteur souligne que c'est l'usage que nous en faisons qui détermine son impact. L'article propose des exemples de prompts pour utiliser l'IA de manière constructive, encourageant les utilisateurs à poser des questions exigeantes et réfléchies. Il met également en garde contre les limites de l'IA et insiste sur l'importance de l'engagement et de la curiosité humaine pour en tirer le meilleur parti.

(mcorbin.fr): Pourquoi le DNS de Kubernetes est claqué au sol (notamment avec kube-proxy en iptables)

L'article traite des problèmes courants liés au DNS dans Kubernetes, en se concentrant sur trois principaux problèmes :

  • Problème des ndots : Kubernetes tente d'être intelligent en essayant plusieurs suffixes DNS pour résoudre les noms, ce qui peut entraîner une charge accrue sur le serveur DNS et une latence plus importante. La solution consiste à utiliser des noms de domaine complets (FQDN) ou à ajuster la valeur de ndots.
  • Problème de Lameduck : Lors de la suppression d'un pod, il peut y avoir un délai avant que kube-proxy ne mette à jour les règles iptables, ce qui peut entraîner des erreurs de connexion. La solution consiste à configurer un délai de grâce (lameduck) pour permettre à kube-proxy de se réconcilier.
  • Problème de conntrack : Il existe un bug non corrigé dans kube-proxy en mode iptables qui provoque une perte de trafic UDP lors de la suppression d'un pod, affectant particulièrement le DNS. Les solutions partielles incluent l'ajout d'un timeout DNS ou la limitation du redémarrage des pods CoreDNS.

L'article souligne que ces problèmes peuvent avoir un impact significatif sur les performances et la fiabilité des clusters Kubernetes, en particulier ceux hébergés sur des plateformes comme AWS EKS.

Pourquoi je pense que l'IA ne va pas remplacer les développeurs - Liens en vrac de sebsauvage

L'auteur expose les points qui font que l'IA n'est pas prête pour remplacer les développeurs... mais va quand même causer de sacrés dégâts, notamment chez les développeurs junior.

Bonnes pratiques pour générer un flux RSS

L'auteur présente les éléments à prendre en compte pour générer un flux RSS :

  • choix du format (RSS, Atom, JSON)
  • balises selon le format
  • découvrabilité du flux
  • catégories
  • adaptation des règles HTTP selon la charge du serveur
Powerful Symfony String Helpers You Might Be Overlooking | by Roman Huliak | Jun, 2025 | Level Up Coding

Symfony dispose de fonctionnalités sur les chaînes de caractères depuis longtemps (Symfony 5) avec plein d'utilitaires très pratiques : gestion de l'unicode, enchaînement de méthodes (interface fluente), prise en charge de l'internationalisation, etc.

zeropod : scale-to-zero avec checkpoint du container

Zeropod est un outil Kubernetes qui permet de mettre en pause les conteneurs inactifs et de les restaurer automatiquement lors d'une nouvelle connexion TCP, offrant ainsi une solution de "scale-to-zero". Il écoute sur le même port que l'application et restaure le conteneur en quelques millisecondes, ce qui est presque imperceptible pour l'utilisateur. L'état complet de l'application est préservé grâce à la sauvegarde de la mémoire sur le disque pendant le checkpointing. Zeropod ajuste également les demandes de ressources à l'état réduit si le cluster le supporte et permet la migration des pods mis à l'échelle sans redémarrage. Cet outil est particulièrement utile pour économiser des ressources tout en maintenant la réactivité des applications. L'auteur reste néanmoins sceptique sur l'usage en l'état puisqu'il est impossible d'avoir des containers en prod sans liveness / readiness.

Laravel France - Encapsuler la logique métier dans des spécifications

L'article présente le pattern Spécification, à quoi il sert et comment l'implémenter. C'est dans le cadre d'une application Laravel, mais ça se transpose facilement dans d'autres situations.

Réflexions sur le blogging technique à l’ère des LLMs

L'article explore les implications de l'utilisation des modèles de langage (LLMs) dans la rédaction de blogs techniques. L'auteur, qui a toujours privilégié l'écriture personnelle et authentique, a mené une expérience en utilisant un LLM pour rédiger un article technique sur son blog. Il a constaté que, bien que les LLMs puissent reproduire un style d'écriture personnel de manière convaincante, le contenu généré reste souvent générique et manque de profondeur contextuelle. L'auteur souligne que, malgré les avancées technologiques, les articles générés par IA nécessitent encore beaucoup de révisions et de guidage pour atteindre un niveau satisfaisant. Il conclut que les LLMs peuvent être utiles pour des sujets très spécifiques ou des retours d'expérience, mais qu'ils ne remplacent pas encore l'authenticité et la richesse d'un article rédigé par un humain.

SPIFFE et mTLS avec cert-manager

L'article explore l'utilisation de SPIFFE (Secure Production Identity Framework for Everyone) et du mTLS (mutual Transport Layer Security) avec cert-manager dans un environnement Kubernetes. SPIFFE est un standard open-source qui utilise des certificats X.509 pour sécuriser les échanges entre les workloads dans des architectures microservices, contrairement à Kerberos qui est plus adapté aux architectures monolithiques. L'article détaille l'installation et la configuration de cert-manager, un contrôleur Kubernetes pour la gestion des certificats, en désactivant l'approbation automatique des certificats pour une gestion plus sécurisée. Il explique également l'utilisation de trust-manager pour propager les certificats de confiance et du CSI Driver SPIFFE pour monter automatiquement les certificats SPIFFE dans les pods Kubernetes. Enfin, l'article présente une application simple utilisant SPIFFE pour communiquer en mTLS, soulignant l'importance de recharger régulièrement les certificats pour éviter les problèmes d'expiration.

Avoiding generative models is the rational and responsible thing to do – follow-up to “Trusting your own judgement on ‘AI...’”

L'article souligne qu'il est presque impossible pour les individus d'évaluer les avantages ou les inconvénients des chatbots et des agents par eux-mêmes en raison des biais cognitifs qu'ils déclenchent. Il critique également la mauvaise qualité des recherches dans les domaines de la technologie et de la productivité, souvent influencées par le marketing. L'auteur met en garde contre l'effet de la bulle de l'IA, qui biaise presque tout le monde, y compris les institutions et les autorités. Il conclut en affirmant que, face à ces enjeux, la décision rationnelle et responsable est d'éviter les modèles génératifs jusqu'à ce que la bulle éclate.

Docker : Metrics port 9323 - slash-root.fr

L'option metrics-addr de Docker permet d'exposer les métriques de performance et d'utilisation des ressources via un endpoint HTTP sur le port 9323, offrant ainsi un accès à des informations détaillées sur l'environnement Docker. Ces métriques, formatées pour Prometheus, incluent des données sur l'utilisation du CPU, de la mémoire, du disque et du réseau par conteneur, ainsi que des informations sur l'état du démon Docker et les performances des opérations. Cette fonctionnalité est particulièrement utile pour la supervision d'infrastructure, l'alerting automatisé et l'analyse de tendance, bien qu'elle nécessite des outils complémentaires pour une visualisation et une gestion avancées des données.

Docker : Configuration et gestion des logs - slash-root.fr

L'article explique comment Docker utilise par défaut le pilote json-file pour stocker les logs, ce qui peut entraîner des problèmes d'espace disque si non configuré correctement. Il propose des solutions pour configurer et limiter la taille des fichiers de logs via le fichier /etc/docker/daemon.json et présente divers pilotes de logs comme syslog, journald, et des solutions plus avancées comme Splunk ou AWS CloudWatch Logs pour des environnements critiques. Enfin, l'article souligne l'importance des bonnes pratiques telles que la rotation des logs, l'étiquetage, et la centralisation pour une gestion efficace des logs dans Docker.

Five Bash Scripts Every DevOps Must Know💡 | by BecomeDevOps | FAUN — Developer Community 🐾

L'article présente 5 scripts Bash dont on peut s'inspirer pour construire les nôtres.

  1. Création d'un backup
  2. Surveillance du CPU, de la mémoire et de l'espace disque disponible avec alerte en cas de besoin
  3. Audit de sécurité rapide
  4. Vérification rapide de la réponse des sites
  5. Partitionnement de disque dur
Obtenir un certificat auto-signé à partir de sa propre autorité de certification - ache

Le guide explique comment créer un certificat TLS auto-signé et l'installer sur un serveur nginx ainsi que sur des systèmes clients. Il commence par discuter des objectifs de TLS, qui incluent l'authentification et le chiffrement pour assurer la confidentialité et l'intégrité des données. Le processus de création d'un certificat racine est détaillé, incluant la génération d'une clé privée et la création du certificat avec OpenSSL. Le certificat racine est ensuite ajouté à la liste des certificats de confiance sur les systèmes clients, ce qui permet de l'utiliser pour signer d'autres certificats. Enfin, le guide montre comment créer un certificat final pour un serveur web, le configurer dans nginx, et mettre en place une méthode automatique pour mettre à jour les certificats.

La Tanche, la Séquence et la Migration  • Lecodeestdanslepre

L'auteur utilise une histoire pour rappeler que les migrations Doctrine sont à privilégier, même et surtout pour les insertions manuelles.

Blog Eleven Labs - Implémenter un serveur Model Context Protocol en TypeScript

Le Model Context Protocol (MCP) est un protocole standardisé qui permet aux modèles de langage d'accéder en temps réel au contexte spécifique des utilisateurs à partir de diverses sources de données. Ce protocole a été rapidement adopté par des entreprises majeures comme OpenAI, Google et Microsoft, démontrant son importance croissante dans l'industrie. Le MCP facilite l'intégration des modèles de langage avec des sources de données externes, telles que les outils de développement et les systèmes CRM, en s'appuyant sur les fondations du Language Server Protocol (LSP). Il résout un problème fondamental des modèles de langage en leur permettant d'accéder à des données privées ou spécifiques à une organisation, offrant ainsi des intégrations plus profondes et des réponses plus pertinentes.

L'article présente une implémentation d'un serveur MCP en utilisant TypeScript et le SDK officiel @modelcontextprotocol/sdk. L'exemple illustre un système de classement spatial avec des astronautes et des planètes. Voici les points clés de cette implémentation :

  1. Structure du Serveur : La classe principale du serveur MCP est créée en héritant de la classe Server du SDK MCP. Elle est configurée avec des capacités pour les outils, les ressources et les prompts.

  2. Outils (Tools) : Les outils permettent aux modèles de langage d'effectuer des actions spécifiques. Dans cet exemple, des outils sont définis pour rechercher un astronaute, ajouter des points à un astronaute, et obtenir le classement des planètes. Chaque outil est décrit avec un schéma de validation utilisant Zod pour garantir la robustesse des entrées.

  3. Ressources (Resources) : Les ressources fournissent un accès structuré à des données statiques ou de référence. Dans cet exemple, une ressource est définie pour accéder aux règles du système de classement spatial.

  4. Prompts : Les prompts sont des templates de conversation réutilisables qui peuvent être paramétrés dynamiquement. Un exemple de prompt est fourni pour générer un rapport hebdomadaire des performances.

  5. Transport : Le serveur MCP peut utiliser différents types de transport pour communiquer avec les clients, tels que STDIO pour les applications desktop et SSE pour les applications web.

  6. Test et Débogage : L'article utilise l'inspecteur MCP pour tester et déboguer le serveur. Cet outil permet d'explorer et de tester les outils, les ressources et les prompts de manière interactive.

  7. Intégration avec Claude Desktop : Enfin, l'article montre comment intégrer le serveur MCP avec Claude Desktop, un client MCP populaire, pour permettre des interactions enrichies et contextualisées.

Cette implémentation illustre comment créer un serveur MCP fonctionnel et l'intégrer dans un environnement de développement pour enrichir les interactions avec les modèles de langage.

13 Time-Saving Linux Terminal Tricks You Should Be Using

L'autuer partage 13 astuces pour le terminal : répéter, corriger, etc. Je ne les connaissais pas toutes

Powerful Design Pattern Pairing: Strategy and Chain of Responsibility in Symfony | by Kevin Wenger | Jun, 2025 | Medium

L'article explore l'utilisation conjointe des modèles de conception "Stratégie" et "Chaîne de Responsabilité" dans le cadre du développement avec Symfony. L'auteur commence par démystifier ces concepts, souvent perçus comme complexes, en illustrant comment ils sont déjà utilisés inconsciemment dans le développement quotidien. Il explique le modèle "Stratégie" à travers un exemple de planification de voyage, où différentes stratégies de transport peuvent être interchangeables selon le contexte. Ensuite, il aborde le modèle "Chaîne de Responsabilité" en décrivant comment les requêtes peuvent être traitées séquentiellement par une série de gestionnaires, chacun ayant la possibilité de traiter ou de transmettre la requête. L'auteur montre comment Symfony facilite l'intégration de ces modèles grâce à des attributs modernes comme AutoconfigureTag et AutowireIterator, permettant une implémentation élégante et maintenable. Enfin, il souligne les avantages de cette combinaison pour créer des applications flexibles, découplées et faciles à étendre.

Un serveur musical pour mon salon - LinuxFr.org

Un long article très intéressant sur l'installation / configuration d'un serveur MPD (avec PipeWire, Samba, etc.) et de son pilotage via Bluetooth, le tout sur du matériel de récupération

Comment fonctionnent les thermomètres mini-maxi ? - Couleur-Science

Encore un bel article de vulgarisation scientifique : le fonctionnement des thermomètres mini-maxi

Les certificats TLS : Les cartes d’identité numériques du web – Idriss Code

Un article expliquant le fonctionnement des certificats TLS

Cut / Fold Templates for paper mechanisms

Le site propose des patrons pour des mécanismes en papier

Blog Eleven Labs - Gol4ng Httpware : middlewares et tripperwares élégants en Go

L'article présente la bibliothèque httpware comme une solution élégante pour gérer les middlewares et tripperwares en Go. Cette bibliothèque se distingue par son support natif des tripperwares côté client, permettant une gestion cohérente des requêtes HTTP tant du côté serveur que client. Elle offre des outils prêts à l'emploi pour la traçabilité, la sécurisation et la manipulation des requêtes HTTP, tout en restant flexible et légère. L'article explique les concepts fondamentaux des middlewares et tripperwares, décrit l'architecture de httpware, et fournit des exemples pratiques d'utilisation, comme l'ajout d'un CorrelationID et l'implémentation d'un rate limiter. Enfin, il souligne les bonnes pratiques et les pièges à éviter, positionnant httpware comme une solution robuste et simple pour les développeurs Go.

The Basics of Node.js Streams — SitePoint

L'article présente les streams en Node.js, asynchrones et pilotés par événements. Ils simplifient les opérations d'I/O en gérant les données en morceaux plus petits et plus faciles à manipuler. Ils se catégorisent en quatre types : Readable, Writable, Duplex (à la fois lisible et scriptible) et Transform (modifiant les données lors de leur passage). La fonction 'pipe()' est un outil utile dans Node.js, permettant de lire des données depuis une source et de les écrire vers une destination sans gérer manuellement le flux de données. Node.js moderne offre des utilitaires comme 'stream.pipeline()' et 'stream.finished()', ainsi que des API basées sur les Promesses pour une meilleure gestion des erreurs et du flux. Les streams peuvent être utilisés avec des motifs async/await pour un code plus propre et plus maintenable.

Le protocole TLS expliqué simplement : Sécuriser vos connexions internet – Idriss Code

L'article explique ce qu'est le protocole TLS : utilité et histoire.

bash: set a trap to log errors | ¬ just serendipity 🍀

Une astuce bash pour afficher les erreurs de manière à faciliter le debug

Photos et traces gps dans un blog statique - LinuxFr.org

L'article explique comment intégrer des récits, des photographies et des traces GPS de randonnées sur un site personnel sous forme de blog statique. En utilisant des outils libres comme Pelican pour la gestion du blog et Leaflet pour les cartes, l'auteur propose une solution sans base de données, favorisant ainsi la sobriété numérique. La méthode décrite permet d'afficher des cartes interactives et des images géolocalisées, tout en gardant une navigation fluide avec une carte fixe dans la partie gauche de l'écran. L'article guide pas à pas à travers la configuration et la personnalisation des gabarits pour automatiser l'affichage des traces GPS et des photos associées.

MÉDIANT CHROMATIQUE : l’accord préféré d’Hollywood

L'article explique ce qu'est l'accord médiant chromatique, comment le(s) trouver et à quoi ils servent. Il donne des exemples connus : cinéma, pop, etc.

Why I Stopped Calling flush() in My Repositories — and What I Do Instead | by Przemyslaw Rafał Jeż | May, 2025 | Medium

L'auteur donne 3 raisons pour lesquelles l'appel à flush() dans les repositories est une mauvaise idée, notamment vis à vis du DDD. Il explique ce qu'il fait à la place.

Single Sign-On Integration in Symfony | by Petr Lzicar | May, 2025 | Medium

L'article explique comment intégrer un système d'authentification unique (SSO) dans une application Symfony. Il décrit les avantages d'un authentificateur SSO personnalisé, tels que l'uniformité de l'authentification et une sécurité renforcée grâce à des fonctionnalités comme l'authentification multifacteur. L'article détaille le flux de travail de haut niveau, incluant la redirection vers un fournisseur d'identité, l'échange de codes d'autorisation, et la création d'un jeton de session. Il fournit également des instructions sur la configuration des dépendances, la mise en place d'un authentificateur personnalisé, et la configuration de l'environnement. Enfin, l'article conclut en soulignant les bénéfices de cette approche, notamment la modularité et l'amélioration de l'expérience utilisateur.

Reaction à la maison // /home/lord

L'auteur souhaite sécuriser son réseau local très ouvert, notamment contre les robots d'IA qui consomment des ressources. Il utilise pour cela Reaction, une alternative légère et performante à Fail2Ban, écrite en Rust, pour bloquer les connexions indésirables. Les logs sont centralisés sur une machine via rsyslog, où Reaction sera installé pour surveiller et réagir en exécutant des commandes SSH sur le routeur/firewall, un Turris Omnia sous OpenWRT. La configuration du firewall, basée sur nft, a été modernisée pour supporter à la fois IPv4 et IPv6.

Cursor Tips I Learned from Vibe Coding: AI-Powered Development

L'article explore comment les développeurs peuvent tirer parti de Cursor pour améliorer leur efficacité en codage. Il met en lumière des techniques pratiques telles que l'établissement de règles spécifiques au projet, la documentation de la structure du projet, et la rédaction de prompts efficaces pour guider l'IA. L'auteur partage également des conseils avancés comme le chaînage de prompts et l'itération progressive pour affiner les résultats. L'article souligne l'importance de superviser l'IA et de l'utiliser comme un accélérateur pour amplifier les compétences existantes plutôt que de remplacer l'expertise humaine.

🧱 Clean Architecture in PHP: From Controllers to Use Cases 🧼 | by mohamad shahkhajeh | May, 2025 | Medium

L'article explore l'application de la Clean Architecture dans les applications PHP pour créer des systèmes découplés, testables et maintenables. L'auteur explique comment la Clean Architecture sépare les responsabilités en couches distinctes : Entités, Cas d'utilisation et Interfaces, en insistant sur le fait que la logique métier doit être indépendante des frameworks. Les contrôleurs, souvent surchargés dans les applications MVC traditionnelles, sont allégés en déléguant les tâches aux cas d'utilisation spécifiques. L'article souligne l'importance des interfaces sur les implémentations, facilitant ainsi les tests et la flexibilité. En suivant ces principes, les développeurs peuvent obtenir un code plus propre, plus facile à tester et à maintenir, tout en étant prêt pour une croissance future.

How to use Claude to build a web app - LogRocket Blog

L'auteur décrit comment il a utilisé Claude pour développer une simple application météo : depuis le choix des technologies jusqu'à l'implémentation. Il donne quelques conseils sur le bon usage de l'IA pour l'aide au développement : importance du contexte, questionner les choix, etc.

Arch Install KDE + LUKS2 + BTRFS+ Kernel-Zen+ ZRAM + Timeshift + Kitty

Un aide-mémoire pour l'installation de tout ce qui est cité dans le titre

Forcer l'application de conventions CSS avec Stylelint - Alsacreations

L'auteur décrit l'utilisation de Stylelint pour vérifier la bonne application de conventions CSS. Il donne plusieurs exemples de conventions, et conclut avec une configuration complète.

Tips for making regular expressions easier to use in JavaScript

L'auteur donne une série de conseils pour l'écriture de regex en JavaScript, du plus basique au plus complexe : ajout de flags, groupes de capture nommés, etc.

Laravel France - PHPUnit : conseils et astuces qui nous ont vraiment aidés

L'article présente une liste de conseils pour les tests avec PHPUnit, certains spécifiques à Laravel et d'autres non. J'en retiens :

  • assertEqualsCanonicalizing qui permet de vérifier que 2 tableaux sont "égaux", sans tenir compte de l'ordonnancement des valeurs
  • l'attribut #[\PHPUnit\Framework\Attributes\DoesNotPerformAssertions] qui permet de dire à PHPUnit qu'un test ne vérifie aucune assertion (ce qui déclenche normalement une erreur dans PHPUnit)
  • l'attribut #[\PHPUnit\Framework\Attributes\RunInSeparateProcess] permet de préciser à PHPUnit d'exécuter les tests dans plusieurs processus... ça permet par exemple de définir une même constante dans 2 méthodes de tests de la même classe.
  • la méthode $this->markTestSkipped('test are skipped because ...'); permet de sauter l'exécution d'un test, $this->markTestIncomplete('test are incomplete but not in error'); permet d'indiquer qu'un test est incomplet (??) et $this->fail('test are failed !'); permet de marquer un test comme échoué quoi qu'il arrive.
  • phpunit --order-by=random permet de lancer les tests dans un ordre aléatoire - c'est très pratique pour détecter les dépendances implicites entre les tests. phpunit --order-by=random --random-order-seed=1234 permet même de rejouer le même ordre aléatoire, notamment pour reproduire un échec.
  • phpunit --stop-on-failure --stop-on-error permet de stopper l'exécution des tests dès la première erreur rencontrée
  • enfin en utilisant l'attribut #[\PHPUnit\Framework\Attributes\Group('mon_super_groupe')], on peut exclure les tests de ce groupe vendor/bin/phpunit --exclude-group mon_super_groupe ou au contraire ne jouer que les tests de ce groupe vendor/bin/phpunit --group flaky
Blanche-Neige et les sept commits  • Lecodeestdanslepre

L'auteur expose plusieurs concepts et bonnes pratiques de git, en revisitant Blanche-Neige. C'est assez drôle, bien écrit et surtout très compréhensible.

Symfony Lazy Services with Style: Boost DX using Service Subscribers | by Steven Renaux | The SensioLabs Tech Blog | Jun, 2025 | Medium

L'article explique comment améliorer la structure et la performance des services dans Symfony en utilisant les "service subscribers". Il commence par souligner les problèmes liés au chargement automatique de nombreux services, qui peuvent entraîner une instanciation inutile de dépendances et compliquer l'extensibilité. La solution proposée est d'implémenter l'interface ServiceSubscriberInterface, ce qui permet de charger les services de manière paresseuse, c'est-à-dire uniquement lorsqu'ils sont réellement nécessaires. L'article montre également comment créer une classe de base abstraite pour centraliser la logique des services, améliorant ainsi la maintenabilité et l'expérience des développeurs. Enfin, il aborde l'utilisation de cette approche dans un bundle Symfony pour gérer des dépendances optionnelles, rendant les services plus modulaires et légers.

What I Wish Someone Told Me When I Was Getting Into ARIA — Smashing Magazine

L'article est une introduction pour comprendre et utiliser correctement les Accessible Rich Internet Applications. Il explique que ARIA est utilisé pour améliorer l'accessibilité des sites web en fournissant des informations supplémentaires aux technologies d'assistance, comme les lecteurs d'écran. L'auteur souligne l'importance d'utiliser des éléments HTML natifs chaque fois que possible et de ne pas modifier leur sémantique inutilement. Il met également en garde contre certaines idées fausses courantes et fournit des conseils pour aborder ARIA de manière efficace. Enfin, l'article insiste sur le fait que l'utilisation correcte d'ARIA peut grandement améliorer l'expérience des utilisateurs dépendant de technologies d'assistance.

SLO, SLI, Error Budget et Critical User Journey expliqués simplement (et pourquoi ce ne sont pas des SLA !) (en plusieurs prompts)

L'article explique les concepts clés du Site Reliability Engineering (SRE) tels que les SLO (Service Level Objectives), SLI (Service Level Indicators), et Error Budget, introduits par Google. Il souligne l'importance de distinguer les SLA (Service Level Agreements), qui sont des contrats avec des pénalités financières, des SLO, qui sont des objectifs internes pour la fiabilité des services. L'article met l'accent sur l'identification des Critical User Journeys (CUJ), qui sont les parcours utilisateurs critiques pour le succès d'un service. Les SLI sont utilisés pour mesurer la performance de ces parcours, tandis que les SLO définissent des objectifs réalistes pour ces mesures. Enfin, l'Error Budget est présenté comme un outil pour gérer la fiabilité des services, permettant aux équipes de prendre des risques calculés tant que les objectifs de fiabilité sont respectés.

Proto vs JSON: When to Use Which (and Why) | by Rahul Ray | Apr, 2025 | ProAndroidDev

L'article compare 2 manières de sérialiser des données : JSON et Proto (Protocol Buffer). Il conclue en donnant une règle : si des humains vont devoir lire les données échangées, préférer le JSON. Si ce sont des machins, préférer Proto.

Faire de l'art avec du code : par où commencer ? (p5.js, Three.js, shaders, SVG...)

Il s'agit d'une introduction à l'art génératif : ce que c'est, comment débuter et où "exposer"

Trusting your own judgement on ‘AI’ is a huge risk

L'article met en garde contre les dangers de se fier à son propre jugement concernant l'intelligence artificielle. Il souligne que les mécanismes de notre pensée peuvent être facilement trompés, rendant même les personnes intelligentes vulnérables à la manipulation. L'auteur utilise des exemples tirés de livres sur la psychologie et des expériences personnelles pour illustrer comment les biais cognitifs peuvent fausser notre jugement. Il conclut en insistant sur l'importance de s'appuyer sur des recherches scientifiques impartiales plutôt que sur des expériences personnelles pour évaluer les technologies d'IA.

How I Finally Understood Docker and Kubernetes | by Tobenna Oduah | Javarevisited | Jun, 2025 | Medium

L'article explique comment l'auteur a finalement compris Docker et Kubernetes en les abordant de manière pratique. Docker est présenté comme un outil permettant d'empaqueter une application et ses dépendances dans un conteneur portable, assurant ainsi qu'elle fonctionne de la même manière partout. Kubernetes, quant à lui, est décrit comme un système de gestion de ces conteneurs, permettant de coordonner plusieurs services, de les maintenir en fonctionnement et de les mettre à l'échelle selon les besoins. L'auteur souligne que comprendre ces technologies est devenu plus simple en les utilisant pour résoudre des problèmes concrets plutôt qu'en essayant de mémoriser du jargon technique.

Docker : Configuration et gestion du stockage - slash-root.fr

L'article explique comment Docker utilise un système de stockage en couches, où chaque instruction dans un Dockerfile crée une nouvelle couche en lecture seule, avec une couche supérieure en lecture-écriture pour les conteneurs en fonctionnement. Il aborde les différents pilotes de stockage disponibles, comme overlay2, recommandé pour les distributions Linux modernes, et propose des conseils pour optimiser l'espace disque, comme l'utilisation d'images légères et la configuration de cron jobs pour le nettoyage périodique. Enfin, il souligne l'importance d'une bonne gestion des données persistantes dans un environnement de conteneurs éphémères.

Object Mapper : l’art de la simplicité  • Lecodeestdanslepre

Symfony 7.3 introduit le composant Object Mapper qui simplifie la transformation d'entités en DTOs. L'auteur montre plusieurs cas d'utilisations, du mapping direct (propriété identique) au mapping avec transformation, en passant par les mapping de types complexes.
Il conclue en discutant des avantages de ce composant.

Eight marvelous and melancholy things I've learned about creativity - The Oatmeal

Cette série sur la créativité est extraordinaire. Voici les 8 choses, sans traduction ni explication :-)

  1. Erasers are wonderful
  2. Your ears are plugged
  3. Creativity is like breathing
  4. There are only bad ideas in brainstorming
  5. This is not a petting zoo
  6. The wondrous utility of self-loathing
  7. Killing your darlings
  8. The business of art
Comment gérer les utilisateurs et la double-authentication comme un pro  • Lecodeestdanslepre

L'auteur montre comment implémenter la double authentification dans Symfony, en utilisant quelques dépendances externes :

  • OTPHP - une librairie qui permet de gérer les TOTP, mots de passe à usage unique basés sur le temps
  • Endroid/QrCode - pour générer les QR codes
  • Scheb/2fa-bundle - le bundle de double authentification de Symfony
Y a des tirets typographiques dans ton texte : c’est du ChatGPT ! - Le Hollandais Volant

À force de chercher des textes générés par l'IA, on finit par trouver plein de faux positifs... Là, c'est le Hollandais Volant qui en est victime, tout ça parce qu'il utilise correctement la typographie. Comme il l'explique lui-même dans son article, ça peut poser de vrais problèmes pour certains : thésards accusés injustement, etc.

SSH sécurisé sans mot de passe : Guide complet

L'article rappelle l'intérêt des connexions SSH sans mot de passe. Il détaille ensuite, étape par étape, comment générer une clé SSH et configurer l'accès sans mot de passe. Il donne quelques conseils pour renforcer la sécurité, et répond à quelques questions courantes. Enfin, il présente les bonnes pratiques : renouvellement périodique des clés, etc.

10 Modern CSS Features You Want to Use | Rails Designer

L'article présente 10 fonctionnalités récentes des CSS :

  • Min, max and clamp - min et max se passent de commentaires, et clamp permet de combiner les deux - une valeur minimale, une valeur préférée, et une valeur maximale
  • Container queries - les container query font que les éléments répondent à la taille du conteneur de leur parent plutôt qu'à celle du viewport
  • text-wrap: balance & pretty - cette propriété contrôle comment le texte est réparti entre les lignes pour améliorer la lisibilité, la valeur "balance" crée des lignes de longueur égale, alors que "pretty" évite les orphelines (mots se retrouvant seuls sur la dernière ligne)
  • CSS Relative Color Syntax - la syntaxe "from" permet d'extraire et de modifier des composants individuels pour toute source de couleur
  • Margin Block/Inline Properties - ces propriétés de marge et de padding (margin-block, margin-inline, padding-block, padding-inline) répondent aux besoins induits par différents modes d'écriture et de direction de lecture en CSS, remplaçant les propriétés left / right / top / bottom
  • @starting-style - permet d'animer des éléments depuis display:none, en définissant des styles initiaux quand un élément apparaît
  • :has() - permet de sélectionner des éléments parents, en se basant sur leurs enfants
    
- Media Query Ranges - simplifie la syntaxe pour définir des intervalles min/max
  • light-dark - est un raccourci pour définir différentes valeurs basées sur les préférences de l'utilisateur sur le mode (sombre / light)
  • color-scheme - est utile en combinaison avec light-dark, pour informer le navigateur quel jeu de couleurs est supporté par un composant, ce qui permet aux éléments natifs de correspondre automatiquement aux préférences de l'utilisateur
  • Nesting - permet d'écrire des CSS en imbriquant les sélecteurs enfants dans leurs parents
  • Units - de nouvelles unités comme dvh sont apparues (pour les navigateurs mobiles)
  • @layer - permet de gérer des conflits de spécificité en ordonnant explicitement les groupes de styles.
10 Hidden Linux Commands Every Sysadmin Should Know

10 commandes linux méconnues et pourtant bien utiles : renommage de fichiers en masse, afficher la progression d'une copie de fichier, afficher les numéros de ligne, etc.

Récupérer un système qui ne démarre plus – Le blog technique de Microlinux

L'auteur montre que faire quand on se retrouve face à une simple invite du chargeur de démarrage grub.

🚀 Building Maintainable Domain-Driven PHP Applications: A Practical Guide | by mohamad shahkhajeh | May, 2025 | Medium

L'article présente les concepts clés du DDD - Domain Driven Development - avec des exemples d'application. C'est un bon résumé

Gestion pratique des certificats avec OpenSSL – Idriss Code

Dans cet article, on voit :

  • Les formats de certificats
  • Manipulation des certificats avec OpenSSL
  • Visualiser le contenu d’un certificat
  • Convertir entre différents formats
  • Extraire des éléments d’un fichier PKCS#12
  • Créer et gérer des clés privées
  • Vérifier une clé privée et un certificat
  • Vérifier la chaîne de certificats
  • Générer une demande de signature de certificat (CSR)
  • Créer un certificat auto-signé
  • Examiner une demande de signature de certificat (CSR)
  • Vérifier et tester un site web TLS
  • Bonnes pratiques pour la gestion des certificats
La cryptographie derrière TLS : Les mécanismes de sécurité expliqués – Idriss Code

L'article explique les mécanismes cryptographiques essentiels derrière le protocole TLS, qui sécurise les communications sur Internet. Il détaille le chiffrement symétrique, rapide et efficace pour protéger de grandes quantités de données, et le chiffrement asymétrique, crucial pour l'échange sécurisé de clés et l'authentification. L'article aborde également l'échange de clés Diffie-Hellman, qui permet d'établir une clé secrète partagée de manière sécurisée, et les fonctions de hachage, indispensables pour vérifier l'intégrité des données. Enfin, il souligne comment TLS combine ces techniques pour offrir une sécurité optimale tout en maintenant des performances élevées.

Publier les routes IPv6 de votre lab - Dryusdan.space

L'article explique comment gérer et publier des routes IPv6 dans un environnement de laboratoire en utilisant une Freebox. La Freebox permet de gérer un bloc /64 d'IPv6, offrant ainsi un contrôle complet sur les règles de pare-feu pour ce bloc tout en utilisant les paramètres par défaut pour le reste. Cependant, les appareils sur le réseau local ne peuvent pas accéder au lab IPv6 directement. L'auteur propose une solution en utilisant le protocole Router Advertisement (RA) et l'outil RADVD pour informer les appareils sur le réseau local de la disponibilité des routes IPv6. En configurant RADVD sur l'interface réseau connectée à la Freebox, il est possible de publier les routes IPv6 et permettre l'accès au lab sans modifier manuellement les routes sur chaque appareil.

Large Language Muddle • Jason Santa Maria

C'est un très beau texte sur le ressenti de l'auteur vis-à-vis de l'intelligence artificielle, et de comment elle s'est immiscée dans nos vies

IPDEX, ou comment devenir Sherlock Holmes de la cybermenace - Aukfood

Présentation de IPDEX, un nouvel outil de CrowdSec en CLI pour obtenir des informations sur une ou plusieurs adresses IP

Ne jetez pas vos « vieux » ordinateurs sous Windows 10 – Restez Curieux !

Cet article explique l'importance de ne pas jeter vos vieux ordinateurs sous Windows 10. Il met en lumière des solutions pour leur donner une seconde vie, comme les recycler ou les réutiliser pour d'autres tâches. L'article souligne également les impacts environnementaux de la surconsommation de matériel électronique. Enfin, il offre des conseils pratiques pour optimiser et prolonger la durée de vie de ces appareils.

GPD Micro [Wiki de sebsauvage.net]

Une présentation du GPD Micro, un PC portable tout petit, très pratique en déplacement

fosrl/pangolin: Tunneled Mesh Reverse Proxy Server with Identity and Access Control and Dashboard UI

Pangolin est un serveur proxy inverse maillé et tunnelisé qui offre un contrôle d'identité et d'accès ainsi qu'une interface utilisateur de tableau de bord. Il permet de connecter plusieurs sites à un serveur central de manière sécurisée via WireGuard, facilitant ainsi l'exposition des ressources HTTP et HTTPS sur un réseau privé sans complexité réseau. Pangolin est conçu pour être une alternative auto-hébergée aux tunnels Cloudflare, offrant une solution sécurisée pour exposer des applications métiers derrière un portail d'authentification intégré à votre solution IdP. Ce projet est open source et dual licencé sous AGPL-3 et la licence commerciale Fossorial, ce qui permet une utilisation flexible pour les particuliers et les entreprises.

5 Amazing Tips for Effortlessly SSH-ing Across Different Networks!

L'article explore les méthodes pour accéder en toute sécurité à un serveur distant via SSH depuis différents réseaux. Il aborde des concepts tels que le transfert de port, l'utilisation d'un DNS dynamique pour gérer les adresses IP changeantes, et l'établissement de connexions VPN pour sécuriser les accès distants. L'article propose également des exercices pratiques pour configurer ces solutions, comme la mise en place du transfert de port sur un routeur ou l'utilisation d'un service DDNS. En conclusion, il encourage les lecteurs à maîtriser ces techniques pour gérer efficacement les serveurs à distance, où qu'ils se trouvent.