Quotidien Shaarli

Tous les liens d'un jour sur une page.

Hier - August 26, 2026

Slow Living: The One-Lane Rule for a Life That Won't Pause

Le slow living n’est pas synonyme de ralentissement global, mais plutôt de gestion intelligente du temps en attribuant à chaque tâche le rythme adapté à son importance. L’idée centrale est de créer une "voie lente" dans son emploi du temps en sélectionnant un bloc de temps récurrent pour une activité prioritaire, en éliminant une source de distraction et en laissant une marge de dix minutes après. Cette approche permet de concilier productivité et présence, sans nécessiter de bouleverser son mode de vie.

L’article souligne que le slow living s’adresse particulièrement aux adultes en milieu de vie, souvent surchargés par des responsabilités professionnelles, familiales et personnelles. Plutôt que de chercher à tout ralentir, il s’agit de filtrer les sollicitations concurrentes et de se concentrer sur ce qui mérite une attention pleine et entière, comme une conversation familiale ou une tâche urgente, tout en acceptant que d’autres aspects de la vie doivent suivre un rythme plus soutenu.

Enfin, le concept se distingue du lifestyle minimaliste ou de l’intentional living en se focalisant non pas sur le choix des activités à intégrer, mais sur l’allocation optimale du temps disponible. L’objectif est de réduire l’encombrement mental en évitant la dispersion, en définissant des exceptions claires et en protégeant les marges de manœuvre, plutôt que de viser un idéal inaccessible de calme permanent.

Hiding internal state in TypeScript objects ✦ Carlos Menezes

L’article explique comment masquer l’état interne d’un objet TypeScript pour éviter qu’il ne soit utilisé directement par les consommateurs. L’auteur montre que les conventions comme le préfixe underscore ne suffisent pas, car les propriétés restent accessibles. En revanche, l’utilisation d’un symbole unique comme clé de propriété permet de restreindre l’accès à cet état, car il ne peut être référencé qu’à l’intérieur du module où il est défini.

Cette technique permet de conserver un état interne tout en simplifiant l’API publique de l’objet. Les fonctions du même module peuvent accéder à la propriété via le symbole, tandis que les opérations standard comme Object.keys ou JSON.stringify l’ignorent. Cela évite que l’état interne ne devienne une partie involontaire de l’interface publique.

Cependant, les symboles n’offrent pas une protection absolue : des méthodes comme Reflect.ownKeys ou Object.getOwnPropertySymbols permettent de les découvrir. Cette approche reste donc adaptée pour décourager un accès accidentel plutôt que pour une sécurité stricte, notamment dans le cadre d’API de bibliothèques.

The Paradox of Burnout - Scott H Young

Scott H Young explore le paradoxe du burnout en opposant deux types d’emplois : ceux perçus comme prestigieux et passionnants (médecins, enseignants, universitaires) et ceux considérés comme ordinaires. Contrairement aux idées reçues, les recherches montrent que les premiers sont plus propices à l’épuisement professionnel, non pas à cause de la difficulté objective du travail, mais en raison d’un écart entre les attentes idéalisées et la réalité, souvent décevante.

L’auteur s’appuie sur l’analyse de Jonathan Malesic, ancien professeur d’université devenu parking attendant, pour illustrer ce phénomène. Malesic a connu le burnout après avoir obtenu un poste prestigieux, réalisant que ses attentes (stimulation intellectuelle, impact profond) ne correspondaient pas à la réalité (étudiants désintéressés, bureaucratie académique). À l’inverse, son emploi précédent, bien que modeste, ne générait pas de stress, car il était perçu comme un simple gagne-pain sans prétention.

Young conclut que l’équilibre, et non la passion excessive, est la clé pour éviter l’épuisement. Une vie professionnelle alignée avec ses attentes, couplée à des sources de sens extérieures (relations, loisirs, santé), réduit les risques de burnout. Ironiquement, une obsession pour le travail peut mener à l’instabilité, tandis qu’une approche modérée favorise à la fois la résilience et la productivité.

PHP 8.6 : la nouvelle classe Duration pour manipuler des durées de temps - Dév. Web - ShevArezo`Blog

PHP 8.6 introduit une nouvelle classe Duration dans l'espace de noms Time, conçue pour représenter des durées de temps sous forme de chronomètre, comme des timeouts ou des délais de retry, sans lien avec une date calendaire. Elle comble un vide dans PHP, où ces valeurs étaient auparavant gérées par des entiers bruts, source d'ambiguïtés (secondes vs millisecondes). Contrairement à DateInterval, axée sur les écarts entre dates, Duration offre une précision jusqu'à la nanoseconde et est immuable, évitant les modifications accidentelles.

La classe propose des méthodes statiques pour créer des instances, comme fromSeconds(), fromMilliseconds() ou fromHours(), et expose trois propriétés publiques en lecture seule : $seconds, $nanoseconds et $negative. Cette dernière permet de gérer les durées négatives de manière claire, simplifiant les calculs d'absolue. Les opérations arithmétiques, comme la multiplication ou l'addition, sont effectuées via des méthodes dédiées (ex. multiplyBy()), garantissant l'immuabilité des objets.

Duration a été pensée pour améliorer l'ergonomie de l'API de polling de PHP 8.6, mais son utilité s'étend au-delà, offrant une solution robuste pour manipuler des durées dans du code applicatif. Son design final et readonly assure une gestion sécurisée et explicite des laps de temps, réduisant les risques d'erreurs liés aux unités de mesure.

La seule règle qu'une IA respecte, c'est une erreur ESLint

L’article relate une expérience où des agents d’IA chargés de refondre une architecture logicielle ont involontairement effacé des mois de savoir-faire intégré dans le code, sans enfreindre aucune règle formelle. Les régressions apparues ensuite ont révélé que ces outils, bien que produisant un code propre et conforme aux patterns, avaient ignoré des ajustements empiriques cruciaux, non documentés et non testés, car sans valeur apparente pour un algorithme. Leur comportement par défaut, sans garde-fous explicites, a ainsi détruit une connaissance implicite accumulée sur des années.

Pour éviter de reproduire cette situation, l’équipe a restructuré son approche en s’appuyant sur des contraintes techniques strictes, notamment via ESLint, seul outil capable de bloquer efficacement les agents. L’architecture du nouveau dépôt a été repensée non pour son élégance conceptuelle, mais pour imposer des règles d’import et de modularité que les IA ne peuvent contourner, transformant ainsi des recommandations en obligations incontournables.

L’expérience illustre les limites des agents de codage en production : leur efficacité dépend entièrement des contraintes qu’on leur impose, et leur manque de compréhension contextuelle les rend incapables d’intégrer des savoirs informels. La solution retenue repose donc sur une délégation encadrée, où la qualité du code est garantie par des mécanismes automatiques plutôt que par une revue humaine systématique.

Music theory for programmers

L’article Music theory for programmers explique la théorie musicale à travers le prisme de la programmation, en partant des principes physiques et mathématiques. L’auteur, qui ne joue pas d’instrument, démontre comment générer des notes, des gammes et des accords via du code, sans avoir à mémoriser des conventions arbitraires. L’idée centrale repose sur la modélisation d’un son comme une variation de nombres dans le temps, illustrée par des exemples concrets utilisant l’API Web Audio.

L’auteur aborde ensuite la notion de fréquence (exprimée en hertz) comme base de la hauteur des notes, soulignant son caractère arbitraire (comme le La à 440 Hz). Il montre comment créer une onde sinusoïdale simple et ajuster son volume avec une enveloppe (attack, decay) pour éviter les artefacts sonores indésirables, comme les clics. Ces concepts fondamentaux servent de fondation pour construire des structures musicales plus complexes.

Enfin, l’article prépare le terrain pour l’introduction de la notation musicale traditionnelle, une fois les bases physiques et algorithmiques établies. L’approche privilégie la compréhension intuitive plutôt que l’apprentissage par cœur, en s’appuyant sur des exemples exécutables directement dans le navigateur.