Quotidien Shaarli

Tous les liens d'un jour sur une page.

Aujourd'hui - October 4, 2026

The Tim Ferriss Show Transcripts: How to Simplify Your Life — Tips from Oliver Burkeman, Chip Conley, Elizabeth Gilbert, and More (#885) - The Blog of Author Tim Ferriss

Cet épisode spécial du Tim Ferriss Show compile des conseils pour simplifier sa vie, émanant d'experts tels qu'Oliver Burkeman, Chip Conley, Elizabeth Gilbert et d'autres. L'idée centrale est que la simplification peut être déclenchée par des événements marquants, comme des problèmes de santé, qui poussent à reconsidérer les priorités et les attachements.

Chip Conley partage son expérience où une expérience de mort imminente l'a conduit à un "découplage conscient". Face à une vie professionnelle complexe et à une crise personnelle, il a réalisé que son identité et son statut étaient moins importants que sa santé, le menant à vendre son entreprise et à entrer dans une phase de transformation.

Cette transition, comparée à la chrysalide entre la chenille et le papillon, implique de se détacher de ses anciennes identités et habitudes. La démarche de simplification, bien que potentiellement difficile, ouvre la voie à un espace de transformation et à de nouvelles directions.

Domain Driven Design in Symfony. When Code Is Cheap, Design Is… | by Tuhin Bepari | Oct, 2026 | Medium

L'article expose l'importance du Domain-Driven Design (DDD) dans le développement d'applications Symfony, en particulier dans le contexte actuel où la génération de code est facilitée par des agents de codage. L'idée principale est de placer les règles métier au cœur de l'application, découplant ainsi la logique commerciale du framework Symfony. Cela permet de rendre le code plus pérenne et facilement adaptable aux évolutions technologiques.

Cette approche DDD présente un avantage majeur face aux avancées des outils d'automatisation du codage. Si l'écriture du code devient moins coûteuse en temps, la clarté, la lisibilité et la précision de ce code par rapport aux besoins métier gagnent en importance. Le DDD, avec ses concepts de langage ubiquitaire et de limites claires, offre un cadre solide pour structurer le code généré et le rendre plus maintenable et compréhensible.

La mise en œuvre pratique du DDD dans Symfony débute par une compréhension approfondie du domaine métier via des conversations avec des experts métier. Ces règles métier, exprimées dans le langage de l'expert, sont ensuite traduites en concepts du DDD, tels que les value objects et les aggregates, sans référence initiale au framework ou à la base de données. L'objectif est de construire une application dont le cœur est indépendant des outils utilisés pour son développement.

Auto-unseal d'OpenBao avec le KMS d'OVHcloud | Une tasse de café

L'article détaille la procédure d'auto-unseal d'OpenBao en utilisant le service Key Management System (KMS) d'OVHcloud. L'unseal est le processus qui consiste à déverrouiller OpenBao après son démarrage, étape qui devient problématique sur des clusters éphémères. Traditionnellement, cela se fait manuellement ou via des solutions matérielles spécifiques.

L'approche présentée ici exploite le KMS d'OVHcloud pour automatiser ce déverrouillage. Le système utilise le protocole KMIP, et non un plugin externe, pour communiquer avec le KMS. Pour cela, une configuration est nécessaire au niveau du KMS, impliquant la création d'un certificat client via mTLS et l'obtention d'une clé de chiffrement dédiée.

La création du certificat client nécessite une paire de clés générée localement, puis son certificat de requête (CSR) est envoyé à l'API OVH pour signature. Ce certificat client aura une durée de validité, et son expiration entraînera l'impossibilité pour OpenBao de se déverrouiller automatiquement, nécessitant une rotation. La génération de la clé de seal se fait ensuite en utilisant la CLI d'OVHcloud pour interagir avec le KMS.

How to Focus in Reading: The Checkpoint That Catches Drift

Pour améliorer la concentration lors de la lecture, il est essentiel de construire des sessions de lecture qui anticipent la distraction plutôt que de simplement tenter de l'éliminer. Plutôt que de considérer la perte de concentration comme un problème de volonté, il faut la voir comme un manque de vigilance. Les méthodes proposées visent à réagir activement au moment où l'attention commence à s'égarer.

Des stratégies spécifiques sont recommandées pour pallier ce phénomène. Il s'agit notamment de définir des objectifs de lecture par sections plutôt que par livres entiers, de se fixer une seule question à laquelle répondre durant la lecture, de maintenir un marqueur visuel sous la ligne lue et de reformuler chaque section en une seule phrase pour vérifier la compréhension. De plus, il est conseillé de noter les pensées parasites sur une feuille séparée plutôt que de les laisser détourner l'attention du texte principal.

Ces techniques s'attaquent aux interruptions internes, là où la plupart des difficultés de concentration se manifestent, contrairement aux conseils traditionnels qui se concentrent sur les distractions externes comme le bruit ou les notifications. L'objectif est de rendre le lecteur plus conscient de ses propres moments de "mindless reading" et d'intervenir rapidement pour retrouver le fil du texte.

lkdjiin.github.io/blog/2026/10/03/ecrire-dans-la-memoire-video-vga/

Cet article explique comment écrire directement dans la mémoire vidéo du mode VGA, une étape essentielle pour continuer à afficher du texte après le passage en mode protégé 32 bits, où l'accès au BIOS n'est plus possible. Il détaille le fonctionnement de la mémoire vidéo en mode texte couleur, où chaque caractère occupe deux octets : un pour son code ASCII et un pour sa couleur, cette dernière étant codée sur plusieurs bits pour définir les couleurs de premier plan et d'arrière-plan.

Le texte présente ensuite des exemples de code assembleur permettant de placer des caractères à des adresses spécifiques de la mémoire vidéo, en spécifiant leur code ASCII et leur combinaison de couleurs. Ces manipulations permettent de tester l'affichage de caractères simples, y compris certains caractères étendus du jeu de caractères Code Page 437, illustrant ainsi la capacité à contrôler finement l'affichage sans recourir aux services du BIOS.

Bien que cette technique permette d'afficher des caractères isolés à des positions définies, l'auteur souligne qu'il s'agit d'une première étape et que d'autres fonctionnalités comme l'affichage de chaînes de caractères, la gestion du curseur ou le défilement de texte restent à développer pour un contrôle d'affichage plus complet.

Why Doctrine lifecycle listeners break GDPR erasure | Medium

Les écouteurs de cycle de vie de Doctrine, bien que pratiques pour gérer des modifications sur les entités, présentent des risques importants lorsqu'il s'agit de la suppression de données personnelles dans le cadre du RGPD. En particulier, les écouteurs de type preUpdate et preRemove ne sont pas toujours déclenchés par des opérations de masse, comme les requêtes DQL en masse pour des mises à jour ou des suppressions.

Lorsque des opérations de mise à jour ou de suppression sont effectuées directement via des requêtes DQL, elles contournent le mécanisme de cycle de vie de Doctrine et l'UnitOfWork. Par conséquent, les écouteurs configurés pour intercepter ces événements ne seront pas exécutés, laissant les données personnelles intactes sans aucun avertissement ni échec de test. Cette absence de déclenchement peut donner une fausse impression de conformité, car les données sensibles ne sont pas effacées comme prévu.

Pour garantir la conformité RGPD, il est préférable de gérer explicitement la suppression des données personnelles au niveau du domaine, plutôt que de s'appuyer sur des mécanismes automatiques potentiellement non déclenchés. Une approche claire et explicite au sein du code métier assure que les données sont correctement traitées, même lors d'opérations de masse.

Translatable Enums in Symfony: Problems, Solutions, and When to Use Them | by Youssef | Sep, 2026 | Medium

Les énumérations PHP, bien qu'utiles pour représenter des états internes, ne sont pas nativement conçues pour l'affichage utilisateur et la traduction. Sans une approche structurée, la logique de traduction peut se retrouver dispersée à travers l'application, entraînant des incohérences et des difficultés de maintenance.

Symfony propose une solution élégante via l'interface TranslatableInterface et la classe TranslatableMessage. En implémentant la méthode trans() au sein de vos énumérations, vous centralisez la logique de génération des chaînes traduisibles. Cette approche permet de passer directement les objets énumérés aux filtres de traduction de Twig ou aux labels de formulaires, simplifiant ainsi leur affichage dans la langue de l'utilisateur.

L'avantage principal de cette méthode est la simplification du code. Une fois l'interface implémentée et les clés de traduction définies dans vos fichiers de catalogue, il suffit d'une seule ligne pour obtenir une étiquette traduite, garantissant ainsi une gestion uniforme et maintenable des traductions pour vos énumérations.

One month without AI

Après avoir décidé de refuser les contributions basées sur l'IA pour son projet open source LibreWeddingPlanner, l'auteur a continué à utiliser l'IA dans son travail professionnel. Il décrit cette utilisation comme une addiction potentielle, notant que les tâches autrefois longues pouvaient être accomplies en quelques heures grâce à des outils comme l'autocomplétion améliorée et les modèles de génération de code.

L'utilisation croissante de l'IA pour implémenter des fonctions ou générer des tests a conduit à une perte de compréhension du code produit. L'auteur a constaté qu'il déléguait des tâches entières à l'IA, y compris la décomposition de problèmes complexes, ce qui entraînait la soumission de changements qu'il ne comprenait pas entièrement, s'inquiétant de la responsabilité lors des revues de code et de sa propre compétence en tant que développeur.

Cette dépendance a évolué vers la gestion simultanée de plusieurs tâches par plusieurs agents d'IA, délestant l'auteur de son rôle actif dans le développement. Il a ressenti une perte de contrôle, ne sachant plus exactement ce que le code qu'il soumettait faisait réellement, et a envisagé de se présenter comme un simple "berger d'IA".

Reach the Top 1% of Your Field (Deliberate Practice) - Scott H Young

L'article présente le concept de pratique délibérée, popularisé par Anders Ericsson, comme un facteur clé pour atteindre l'excellence dans un domaine. Il souligne que la qualité de la pratique, plutôt que la seule quantité, est déterminante pour l'apprentissage, en particulier dans des domaines comme les échecs, la musique et le sport.

Cependant, l'auteur soulève deux points critiques concernant la théorie de la pratique délibérée. Premièrement, il suggère que la part de talent et d'intelligence innée dans la performance d'élite est peut-être sous-estimée par Ericsson. Deuxièmement, il met en évidence la difficulté d'appliquer ce concept dans des domaines moins structurés que les jeux ou les arts, où les objectifs d'amélioration sont souvent flous et les compétences moins définissables.

Pour pallier ces difficultés dans des contextes professionnels, l'article propose trois leçons essentielles : il est crucial de savoir quelles compétences sont réellement valorisées et comment elles s'intègrent dans un parcours professionnel, et pas seulement de savoir comment les acquérir. De plus, prouver qu'on maîtrise une compétence s'avère aussi complexe que de l'apprendre soi-même, nécessitant souvent des mesures de performance objectives.

dotAI 2026 : De l’illusion d’autonomie à la réalité du terrain, reprendre le contrôle sur nos agents - JoliCode

La conférence dotAI 2026 a souligné l'évolution rapide des architectures multi-agents, qui transforment le développement logiciel en déplaçant l'effort humain de l'écriture de code vers la planification et la relecture. Cette nouvelle approche, bien que prometteuse, crée une surcharge due au volume important de code généré et aux requêtes constantes des agents.

Face à cette saturation, l'article met en garde contre les "usines logicielles autonomes" ou les spécifications formelles exhaustives, considérées comme des impasses. Le code reste le niveau d'abstraction le plus fiable pour la compréhension humaine. La solution proposée pour retrouver le contrôle réside dans le "loop engineering", impliquant la gestion externe des tâches, la définition de budgets d'exécution stricts, l'isolation de l'architecture et l'exécution de tests automatisés par les agents avant toute validation humaine.

Une fois ces garde-fous mis en place, des gains de productivité considérables sont observés, comme l'a rapporté Anthropic avec Claude générant une majorité du code fusionné. Atteindre cette maturité exige un "reaper mindset", c'est-à-dire la capacité de remplacer les anciennes technologies par de nouvelles générations de modèles plus performants. L'article aborde également la compréhension interne des IA, notamment via l'interprétabilité mécanistique.

How to De-Slop an AI-Generated Codebase

L'article aborde la problématique du "code sloppé" généré par l'intelligence artificielle, en soulignant que cette notion englobe divers types d'échecs sans cause unique ni solution universelle. Il identifie des schémas récurrents tels que des validations redondantes, la création de fonctions quasi-identiques ou des vérifications excessives pour des entrées impossibles, qui nuisent à la qualité et à la maintenabilité du code.

Une cause majeure de cette accumulation de code de mauvaise qualité réside dans le manque de contexte pour les agents d'IA. Ces derniers, ne disposant pas des informations complètes sur les validations précédentes ou les fonctions existantes, ont tendance à synthétiser des solutions locales et redondantes, exacerbant le "problème de localité" où le code qui devrait évoluer ensemble est difficile à trouver et à modifier.

Pour remédier à ce problème, l'article propose d'identifier précisément les comportements ou problèmes récurrents, de préférer des descriptions de problèmes spécifiques plutôt que des termes vagues comme "code sloppy". L'utilisation d'outils comme des règles de linting ciblées, inspirées par des travaux comme ceux de Dillon Mulroy, peut aider à identifier ces schémas de code problématiques et orienter les efforts de nettoyage, qu'il s'agisse de corrections locales ou de refontes architecturales.

How to no longer suffer project migration | by Xin TAO | ekino-france | Sep, 2026 | Medium

Les migrations de projets, notamment dans le développement logiciel, peuvent devenir une source de stress et de difficultés imprévues, souvent déclenchées par des failles de sécurité critiques ou des incompatibilités de dépendances. Ignorer les avertissements des versions mineures d'une bibliothèque ou d'un framework conduit à des mises à jour majeures douloureuses, où les problèmes se multiplient et la résolution devient urgente et complexe.

La clé pour éviter ces situations est une approche proactive et structurée de la maintenance. Il est essentiel de suivre les guides officiels de migration, d'identifier et de corriger systématiquement les avertissements de dépréciation avant d'entreprendre des mises à jour majeures. Des outils comme PHPUnit ou le profiler Symfony aident à repérer ces points de friction.

Avant toute modification, il est recommandé de documenter l'état actuel du projet, par exemple en extrayant les routes et en prenant un cliché du conteneur de services. Cette pratique permet de détecter facilement les régressions en comparant les états avant et après la migration. En cas de mise à jour combinée de PHP et du framework, il est préférable de procéder à la mise à jour de PHP en premier pour simplifier le diagnostic des éventuels problèmes.

Symfony AI in Practice: Building a Writing Assistant for Dyslexic Adults

Le projet "Symfony AI in Practice" présente le développement d'un assistant d'écriture destiné aux adultes dyslexiques, construit avec le composant AI de Symfony. L'application permet aux utilisateurs de coller leur texte, de recevoir une analyse des erreurs, des explications sur les règles grammaticales associées, et même une lecture audio de ces explications, complétée par un chatbot pour des questions supplémentaires. L'ensemble de la configuration, y compris les agents et leurs prompts spécifiques, est centralisé dans un fichier ai.yaml, simplifiant l'intégration et la gestion des fonctionnalités d'IA.

L'utilisation du composant Symfony AI a permis une mise en place rapide de l'assistant, ne nécessitant que quelques minutes pour configurer l'environnement et installer le bundle. Les agents AI sont rendus injectables en tant que services Symfony, facilitant leur utilisation directe dans le code applicatif. Le processus de développement a consisté à intégrer progressivement les différentes fonctionnalités du composant AI, telles que la revue de texte structurée, une option de synthèse vocale, et un coach conversationnel, le tout sans nécessiter de framework frontend comme React.

Ce projet met en avant la capacité de Symfony AI à gérer la configuration des modèles d'IA, à permettre le changement de modèle sans modification du code PHP grâce à un routeur, et à fournir des outils de débogage puissants comme le profiler, qui enregistre chaque interaction avec l'IA. L'auteur souligne la facilité de test de ce composant et exprime sa volonté de l'utiliser à nouveau pour de futurs projets, notamment grâce à son intégration transparente dans l'écosystème Symfony.

Un résumé ne remplace pas la lecture

La prolifération des résumés, amplifiée par l'essor de l'intelligence artificielle, conduit à une superficialité dans l'acquisition des connaissances. L'auteur observe une tendance à préférer des formats condensés comme les vidéos ou les articles de blog, qui eux-mêmes sont souvent des synthèses d'ouvrages plus complets, plutôt qu'à aborder des sujets en profondeur.

Cette dilution progressive de l'information entraîne une perte de nuance et de contexte. Un résumé, même bien fait, ne peut restituer la richesse du raisonnement, les détails et les justifications complexes présents dans un ouvrage de référence, se limitant souvent aux conclusions. Cela peut mener à une compréhension incomplète, comme l'exemple de la Clean Architecture, réduite à ses aspects techniques au détriment de son raisonnement global.

Les résumés peuvent toutefois servir de catalyseurs pour susciter l'intérêt et encourager l'exploration plus poussée d'un sujet. Néanmoins, ils ne sauraient remplacer le temps et l'effort nécessaires à une étude approfondie pour une maîtrise réelle des concepts.

How Do You Practice Digital Minimalism? 6 Steps to Take Back Your Attention - LifeDev.net

Le minimalisme numérique consiste à choisir délibérément les technologies qui enrichissent votre vie et à supprimer le reste, plutôt qu'à rejeter les outils numériques. L'objectif n'est pas de réduire le temps d'écran, mais d'utiliser chaque outil pour une raison précise et de se séparer de ceux qui n'apportent pas de valeur ajoutée. Cette démarche est analogue à l'organisation de son foyer, en conservant ce qui est utile et aimé.

La fragmentation de l'attention provient de la conception des applications modernes, avec leurs flux infinis et leurs récompenses variables, ainsi que des notifications qui interrompent constamment. Ces interruptions, même brèves, engendrent une perte de temps significative pour retrouver sa concentration. De plus, l'occupation systématique des moments d'attente par les écrans élimine les temps morts précieux pour la réflexion et la génération d'idées.

Pour retrouver son attention, six étapes sont proposées. Les plus efficaces incluent la désactivation de toutes les notifications non choisies et le retrait des applications tentantes de l'écran d'accueil. D'autres stratégies impliquent l'établissement de limites physiques plutôt que des règles strictes, un nettoyage honnête de ce qui reste, la structuration de la journée et le remplacement des habitudes numériques par d'autres activités, plutôt que leur simple suppression.

lkdjiin.github.io/blog/2026/10/02/inspecter-la-memoire-avec-qemu/

L'article présente une méthode pour inspecter la mémoire vive d'une machine virtuelle QEMU en utilisant son moniteur. Le problème initial réside dans le fait que le numéro du périphérique de démarrage est codé en dur, ce qui empêche de démarrer depuis une disquette ou un disque dur de manière interchangeable.

La solution proposée consiste à sauvegarder dynamiquement le numéro du périphérique de démarrage, fourni par le BIOS dans le registre DL avant le passage de contrôle au secteur de démarrage, dans une zone réservée de la RAM (ici, à l'adresse 0x500). Ce numéro peut ensuite être lu directement depuis la mémoire par le programme pour s'adapter au périphérique de boot utilisé.

L'article détaille ensuite l'utilisation du moniteur QEMU, notamment la commande x/ pour examiner le contenu de la mémoire. Cet outil permet de vérifier la valeur sauvegardée à l'adresse 0x500, confirmant ainsi le bon fonctionnement de la modification, et d'explorer d'autres zones mémoire comme celle contenant le message affiché par le système.