David Larlet
Dernières mises à jour du site
https://larlet.fr/david/
2024-04-25T12:00:00+01:00
David Larlet
https://larlet.fr/david/
Copyright (c) 2004-2024, David Larlet
42
2024-04-23T12:00:00+01:00
https://larlet.fr/david/2024/04/23/
<p>Je me sens encore en vie, acceptant de ne pas avoir toutes les réponses.</p>
<nav><p><a href="https://larlet.fr/david/2024/experience/">#expérience</a> <a href="https://larlet.fr/david/2024/gratitude/">#gratitude</a> <a href="https://larlet.fr/david/2024/introspection/">#introspection</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Alimentation
2024-04-22T12:00:00+01:00
https://larlet.fr/david/2024/04/22/
<p>Je réfléchis beaucoup au nombre de <a href="https://fr.wiktionary.org/wiki/Calorie">Calories</a> dont j’ai besoin sur une journée d’activités intensives. J’ai l’impression d’être autour de 3000-3500 — selon la température notamment. Il m’est difficile d’arriver à une telle quantité en restant en-dessous du kilo par jour <em>et</em> sans perdre l’appétit au cours du temps.</p>
<p>J’en suis à me dire que pour de la rando-course, il faut que j’expérimente une approche nutritive hybride aussi avec un petit déjeuner, un repas complet le soir et entre les deux des « collations » variées / équilibrées / hypercaloriques tous les 4-5 km par exemple. C’est très approximatif et à tester en conditions réelles bien sûr avant de ré-adapter.</p>
<p>Je suis en train d’itérer sur ma propre recette de <a href="https://fr.wikipedia.org/wiki/Bannique">bannique</a>, tiraillé entre l’appropriation culturelle et la reconnaissance qu’il y a eu des siècles d’itérations avant moi… l’avantage d’une base relativement neutre étant de pouvoir la décliner en de multiples saveurs car le <em><a href="https://fr.wikipedia.org/wiki/Lembas">lembas</a></em> c’est un peu lassant au bout de quelques jours !</p>
<p>On va voir si j’arrive à perdre du poids — dans le sac seulement — avec cette stratégie. J’ai déjà l’impression d’être à bord du <a href="https://en.wikipedia.org/wiki/Nebuchadnezzar_(The_Matrix)">Nebuchadnezzar</a> lorsque je mange mon gruau le matin, je ne suis pas encore prêt à me retrouver dans <a href="https://en.wikipedia.org/wiki/Soylent_(meal_replacement)">Soleil Vert</a>.</p>
<hr />
<blockquote lang="en">
<p>Too often, I notice that the instinct to give feedback works to cut off that kind of exploration. We assume that the person who is the object of our feedback has something to learn and fail to notice the same thing about ourselves. We presume that if something uncomfortable or unexpected happens, <mark>it represents an opportunity (or even an obligation) to give feedback—rather than an opportunity to get curious,</mark> to inquire into what’s going on.</p>
<p>We’ve funneled so much energy into feedback processes that I fear we’ve neglected more foundational skills: the ability to ask questions, to listen deeply, to see the things before us that we’re wont to ignore.</p>
<p><cite><em><a href="https://everythingchanges.us/blog/what-you-see/">What you see | everything changes</a></em></cite></p>
</blockquote>
<p>🤐</p>
<hr />
<blockquote>
<p>Partout on dégaine l’adjectif « systémique » sauf là, où il serait pourtant bien utile. C’est pas un problème de personnes, c’est pas que les masculinités alternatives sont un modèle qui ne s’est pas encore assez diffusé, c’est parce que l’appartenance à une classe qui a des privilèges sur une autre produit quelque chose chez les dominants, une certaine répugnance à ne pas en profiter. Difficile dans ces conditions de se mettre au service du <mark>féminisme entendu comme l’émancipation des femmes et non comme une aventure de développement personnel</mark> […]</p>
<p><cite><em><a href="https://blog.ecologie-politique.eu/post/Les-hommes-doux-sont-ils-l-avenir-du-feminisme">Les hommes doux sont-ils l’avenir du féminisme ?</a></em></cite></p>
</blockquote>
<p>Ça pique là où il faut que ça pique.</p>
<hr />
<blockquote lang="en">
<p>Even if you decide not to post the comment or delete it after it is posted, the files are not deleted from GitHub’s CDN, and the download URLs continue to work forever.</p>
<p>As the file’s URL contains the name of the repository the comment was created in, and as almost every software company uses GitHub, this flaw can allow threat actors to develop extraordinarily crafty and trustworthy lures.</p>
<p><cite><em><a href="https://www.bleepingcomputer.com/news/security/github-comments-abused-to-push-malware-via-microsoft-repo-urls/">GitHub comments abused to push malware via Microsoft repo URLs</a></em></cite></p>
</blockquote>
<p>Une astuce pour un hébergement d’images aux frais de Microsoft est en train d’être documentée. À juste titre, je n’avais pas conscience que l’URL était liée au dépôt ce qui ouvre pas mal de possibilités niveau sécurité.</p>
<nav><p><a href="https://larlet.fr/david/2024/adaptation/">#adaptation</a> <a href="https://larlet.fr/david/2024/laboratoire/">#laboratoire</a> <a href="https://larlet.fr/david/2024/sport/">#sport</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Jour 1
2024-04-20T12:00:00+01:00
https://larlet.fr/david/2024/04/20/
<p>Réveil à 5h30. Ce qui devait être une sortie <em>Légère & Rapide</em> se révèle ne pas être si <em>Légère</em> (autour de 12kg) car j’ai 4 jours de nourriture sur le dos et que des températures de -10°C sont annoncées ce qui décide de la taille (et donc poids) du duvet notamment.</p>
<p>Niveau <em>Rapide</em>, si les premiers kilomètres se déroulent bien car la neige a fondue, dès que je passe dans la vallée suivante je me retrouve avec de la neige jusqu’aux genoux mais surtout qui casse sans prévenir pour atterrir dans le torrent de fonte en dessous. Je suis en baskets. La saisonnalité de mes erreurs me fatigue.</p>
<p>Dès le 5<sup>e</sup> kilomètre, les pieds gelés et les chaussures trempées, je sens bien que ça ne va pas le faire. D’autant que je vais avoir du mal à faire sécher des chaussures avec les températures prévues en dormant dehors. Sans compter qu’à force de passer à travers la neige, j’ai ma cheville <a href="https://larlet.fr/david/2024/01/09/">encore fragile</a> qui fatigue. Le vent se lève, il commence à grêler. Le moral flanche.</p>
<p>Contre mauvaise fortune bon cœur, je décide de transformer ce Grand Tour en un Minuscule Tour à la journée. Il faut savoir ravaler son égo et accepter de revenir avec encore plus d’envie lorsque les conditions sont davantage acceptables — et surtout compatibles avec mes explorations du moment.</p>
<p>J’ai appris :</p>
<ul>
<li>qu’il est possible de mettre chaque pied dans un sac type ZipLock pour essayer de garder ses chaussettes relativement sèches, attention une fois percés ça peut faire garrot ;</li>
<li>qu’il est possible de faire sécher des chaussettes sur le sac et de faire un roulement à trois paires (toujours avoir une épingle à nourrice sur le sac) en changeant à chaque pause ;</li>
<li>qu’il me faut des raquettes jusqu’à fin avril (je le réapprends tous les printemps, faudrait que ça commence à rentrer…) ;</li>
<li>qu’il faut que je me rappelle que cette forêt a beaucoup plus de précipitations que ses voisines… et donc une période de fonte plus longue ;</li>
<li>qu’il me faut trouver une meilleure manière de m’alimenter dans l’effort.</li>
</ul>
<p>Retour à la maison avec le physique pas trop amoché, il va falloir soigner le mental maintenant.</p>
<nav><p><a href="https://larlet.fr/david/2024/apprentissage/">#apprentissage</a> <a href="https://larlet.fr/david/2024/deception/">#déception</a> <a href="https://larlet.fr/david/2024/foret/">#forêt</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Calme
2024-04-18T12:00:00+01:00
https://larlet.fr/david/2024/04/18/
<p>Le calme avant la tempête ou la tempête avant le calme. Ces prochains jours en décideront. C’est peut-être aussi la tempête avant la tempête. Me voilà à la barre, en essayant de ne pas la mettre trop haute, acceptant que le cap puisse être réajusté en cours de route.</p>
<hr />
<blockquote lang="en">
<p>A calm company’s purpose is to provide exceptional service to customers while simultaneously improving the lives of the people who work there.</p>
<p><mark>By default, a calm company is profitable.</mark> Those profits give a calm company its resilience: there’s no last-minute scramble to meet payroll or earn a last-minute sale to keep the business afloat. The company has enough financial margin to weather economic storms.</p>
<p>Moreover, calm companies are fun to work for. The work is usually interesting and enjoyable. The team has been carefully selected, and there’s a good vibe in meetings.</p>
<p>Calm companies provide meaningful work, healthy interactions, and flexibility for people’s lives. If your kid is home sick, you can set work aside and take care of them. If it’s a beautiful day, you can go for a run on the beach.</p>
<p><cite><em><a href="https://justinjackson.ca/calm-company">We need more calm companies</a></em></cite></p>
</blockquote>
<p>Par la force des choses, je me retrouve à réfléchir à cette histoire de profit. Peut-être que l’équilibre est suffisant. Peut-être même qu’il incite à rester frugal, à rester à une échelle humaine, à prendre soin de relations qui ne soient pas dégradées par l’argent. Peut-être que le profit introduit un déséquilibre en lui-même qui ne permet pas de rester calme.</p>
<hr />
<blockquote lang="en">
<p><code>Line-height</code> and <code>vertical-align</code> are simple CSS properties. So simple that most of us are convinced to fully understand how they work and how to use them. But it’s not. They really are complex, maybe the hardest ones, as they have a major role in the creation of one of the less-known feature of CSS: inline formatting context.</p>
<p><cite><em><a href="https://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align">Deep dive CSS: font metrics, line-height and vertical-align</a></em></cite></p>
</blockquote>
<p>Centrer des éléments sur le web — <em>a fortiori</em> du texte — a toujours été compliqué. <a href="https://tonsky.me/blog/centering/">Voire impossible.</a> Je me demande si des unités comme <code>rlh</code> on une chance de <a href="https://pawelgrzybek.com/vertical-rhythm-using-css-lh-and-rlh-units/">changer des choses</a> à ce sujet.</p>
<p>Je vous ai déjà dit que <a href="https://moderncss.dev/modern-css-for-dynamic-component-based-architecture/">les CSS c’était devenu génial ?</a> Le temps que ça a dû prendre à Stephanie Eckles pour découvrir/collecter/tester/agencer/écrire tout ça 😮.</p>
<hr />
<blockquote lang="en">
<p>What is less thrilling is that, nevermind the basic accessibility requirements that are often missing like alt text on images, we stopped letting people do very normal web things. There are a number of avenues to route the blame to: rushing to release something midly usable for testing protocols in the wild, not having a UI engineer on the project, building things in a mobile “touch first” experience and ignoring other inputs or devices; the list goes on. In the end, <mark>it’s usually because we’ve JavaScript’ed our way out of these things.</mark></p>
<p>Here are some things I wish people allowed to continue to work in their web projects:</p>
<p><cite><em><a href="https://heather-buchel.com/blog/2023/07/just-normal-web-things/">Just normal web things.</a></em></cite></p>
</blockquote>
<p>Oui. Les cas exceptionnels existent… dans la mesure où ils restent des cas exceptionnels. Ça arrive, mais ça doit rester très rare.</p>
<hr />
<blockquote lang="en">
<p>It comes down to this annoying, upsetting, stupid fact: the only way to build a great product is to use it every day, to stare at it, to hold it in your hands to feel its lumps. The data and customers will lie to you but the product never will. And <mark>most product orgs suck because they simply don’t use the products that they’re building;</mark> they ship incremental nothings without direction because they’re looking at spreadsheets all day long filled with junk data nothings.</p>
<p>See, I don’t know much about product stuff. I have no experience as a product manager, no experience running teams or building a company. Take everything I say here with an enormous silo of salt. But: I don’t care what the data shows me and I’m not sure I ever will. You can show me charts and spreadsheets all day long and I will not care. Tell me what your gut says instead after relentless experience of the product every day. This is the only way to see the world clearly.</p>
<p><cite><em><a href="https://robinrendle.com/notes/vibe-driven-development/">Vibe Driven Development</a></em></cite></p>
</blockquote>
<p>Je voulais en parler depuis bien longtemps. C’est l’une des raisons pour lesquelles j’essaye d’être acteur des <a href="https://larlet.fr/david/2024/04/17/">évènements</a> que je produis. Entre égoïsme et altruisme la frontière peut être fine dans ce domaine.</p>
<hr />
<blockquote lang="en">
<p>I said “delve” was overused by ChatGPT compared to the internet at large. But there’s one part of the internet where “delve” is a much more common word: the African web. In Nigeria, “delve” is much more frequently used in business English than it is in England or the US. So the workers training their systems provided examples of input and output that used the same language, <mark>eventually ending up with an AI system that writes slightly like an African.</mark></p>
<p><cite><em><a href="https://www.theguardian.com/technology/2024/apr/16/techscape-ai-gadgest-humane-ai-pin-chatgpt">TechScape: How cheap, outsourced labour in Africa is shaping AI English</a></em></cite></p>
</blockquote>
<p>On ne sait plus qui donne la leçon à qui dans ces jeux d’apprentissages. La langue ne ment pas. J’attends qu’Olivier Ertzscheid en fasse un billet 🍿.</p>
<p><em>Via <a href="https://simonwillison.net/2024/Apr/18/delve/">Simon Willison</a>.</em></p>
<nav><p><a href="https://larlet.fr/david/2024/apprentissage/">#apprentissage</a> <a href="https://larlet.fr/david/2024/introspection/">#introspection</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Échelle
2024-04-17T12:00:00+01:00
https://larlet.fr/david/2024/04/17/
<blockquote lang="en">
<p>We have been obsessed with this scalability as the single differentiating factor that will tell us how well something will adapt to the changing requirements of an organization and increasing, diverse technical demand. But for businesses, scaling means that output remains the same or only slightly degrades while production costs lower.</p>
<p><mark>Scalability has become the leading differentiator, the Leitdifferenz, of almost everything in our industry.</mark> From the tech we develop with, for, and on to what, how, and who we design for It’s almost like a trance that we keep repeating to ourselves.“But will it scale?” is first and foremost a matter of business. But in development and design, it also refers to other factors. Yet when it comes to matters of industrialization, these factors remain secondary.</p>
<p><cite><em><a href="https://helloyes.dev/blog/2023/craft-vs-industry/">Craft vs Industry: Separating Concerns</a></em></cite></p>
</blockquote>
<p>C’est la raison pour laquelle je suis de plus en plus attiré par de petits évènements (voir ci-dessous) qui peuvent avoir lieu dans des endroits différents — de manière distribuée — par des communautés qui peuvent y mettre leurs propres échelles pour embarquer de nouvelles personnes.</p>
<hr />
<blockquote lang="en">
<p>I don’t think we <em>need</em> new metaphors for the things we do with computers. But I like thinking about <mark>creating software as organizing an event.</mark> Here are some reasons why I think <em>event</em> is a better metaphor than <em>product</em>:</p>
<p><cite><em><a href="https://www.kooslooijesteijn.net/blog/app-website-is-not-product">Your app is not a product</a></em></cite></p>
</blockquote>
<p>Je ne vais pas énumérer toute la liste ici mais il y a de bonnes choses à aller picorer pour alimenter mes propres réflexions à ce sujet.</p>
<hr />
<blockquote lang="en">
<p>Ecology knows that shifting baselines dampen collective urgency and deepen generational divides. People who care about internet monoculture and control are often told they’re nostalgists harkening back to a pioneer era. But it’s fiendishly hard to regenerate an open and competitive infrastructure for younger generations who’ve been raised to assume that two or three platforms, two app stores, two operating systems, two browsers, one cloud/mega-store and a single search engine for the world comprise the internet. If <em>the internet</em> for you is the massive sky-scraping silo you happen to live inside and the only thing you can see outside is the single, other massive sky-scraping silo, then <mark>how can you imagine anything else?</mark></p>
<p>[…] For tech giants, the long period of open internet evolution is over. Their internet is not an ecosystem. It’s a zoo.</p>
<p><cite><em><a href="https://www.noemamag.com/we-need-to-rewild-the-internet/">We Need To Rewild The Internet</a></em></cite></p>
</blockquote>
<p>Ce troisième lien est lui aussi une métaphore, combinant <em>forêt</em> et <em>web</em>. Lorsqu’on constate ce qu’il advient de nos forêts, je ne sais pas trop s’il est possible d’être optimiste à ce sujet…</p>
<hr />
<blockquote>
<p>Nous sommes un groupe d’étudiants dans les métiers du multimédia et de l’Internet. Pourtant nous n’avons pas numérisé. Il y a un an, <mark>nous nous empressions</mark> de faire une solution numérique éco conçue pour répondre à un problème.</p>
<p>Aujourd’hui, avec du recul, des connaissances supplémentaires et une nouvelle vision, nous nous demandons s’il est nécessaire de numériser.</p>
<p><cite><em><a href="https://nousnavonspasnumerise.mmibordeaux.com/autopsie/">Nous n’avons pas numérisé.</a></em></cite></p>
</blockquote>
<p>Un peu d’espoir tout de même.</p>
<nav><p><a href="https://larlet.fr/david/2024/commun/">#commun</a> <a href="https://larlet.fr/david/2024/decentralisation/">#décentralisation</a> <a href="https://larlet.fr/david/2024/protopie/">#protopie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Apex 2
2024-04-14T12:00:00+01:00
https://larlet.fr/david/2024/04/14/
<p><em>Bon allez, retour <a href="https://larlet.fr/david/2024/03/14/">après un mois</a>, autant dire que je manque de recul.</em></p>
<p>Je l’ai porté tous les jours, et même la nuit, ce qui ne m’était jamais arrivé auparavant. C’est à la fois la légèreté (42 grammes !) et le bracelet très confortable (et qui sèche vite) qui permettent cela. La possibilité d’inverser le cadran de la montre pour avoir les boutons à l’opposé du poignet me correspond bien dans mes peurs à ce niveau là aussi. Côté ergonomie, j’adore qu’il n’y ait que 3 boutons, la roulette est un peu lente à mon goût par contre.</p>
<p>Niveau motivation, je m’y attendais mais pas dans cette proportion là, j’ai fait énormément de sport(s) ce dernier mois. J’ai enregistré une cinquantaine d’activités mais je consigne aussi les aller-retours à l’école en vélo car je voulais vraiment identifier les moments de « récupération active ». Il y en a d’autres que j’ai loupé donc ça compense. J’ai redécouvert ma <em>pain cave</em> à cette occasion mais ça fera l’objet d’un billet distinct. J’ai redécouvert mes douleurs d’usure aussi…</p>
<p>Je suis surpris qu’il n’y ait pas un mode pour générer des activités <em>a posteriori</em> vu que tout est consigné au quotidien, même avec une fréquence de rafraichissement moindre qu’en effort explicite ça serait intéressant pour éviter d’avoir à y penser. Encore plus surprenant : il n’est pas possible de changer un type d’activité après coup, ce qui me serait très utile quand je suis avec l’enfant car je ne sais jamais quand une marche va se transformer en course (et <em>vice versa</em>).</p>
<p>Le GPS est suffisamment précis pour mon usage (vs. double fréquence), ce qui m’avait beaucoup fait hésité avec la version Pro. Je suis très content d’avoir parié sur des taille / poids qui me conviennent davantage. En contrepartie, la batterie tient pour 2 <a href="https://larlet.fr/david/2024/03/29/">longs</a> <a href="https://larlet.fr/david/2024/03/30/">jours</a> de randonnée, pas beaucoup plus. Un câble de plus à transporter, c’est acceptable. Niveau orientation, c’est pas mal fait, chaque déviation émet un son+vibration avec la distance et le chemin / direction pour rattraper. Je n’ai pas trouvé / cherché s’il était possible de lui dire que la déviation était intentionnelle en cours d’exercice. J’ai la crainte que ça sonne à un moment où je suis un animal selon le contexte… probablement un paramètre à trouver.</p>
<p>J’ai redécouvert les zones d’effort, le seuil, la VMA, la charge d’entrainement et toutes ces choses là. C’était geekement plaisant de jouer avec ces données. Il y aussi celles relatives au sommeil qui me font réfléchir (pendant les insomnies par exemple 🙃).</p>
<blockquote>
<p>Il faut que j’apprenne à ne pas courir <em>contre</em> mais <em>avec</em> la montre. <mark>J’ai trop tendance à pousser</mark> alors qu’elle sait bien à mon poignet que mon cœur ne va pas suivre.</p>
<p>Il y a du travail à faire pour transformer un jugement en allié.</p>
<p><cite><a href="https://larlet.fr/david/2024/03/14/">Auto-citation</a></cite></p>
</blockquote>
<p>Bon sur ce plan là, je n’ai pas été très bon. J’ai l’impression de ne pas attendre suffisamment entre deux efforts <em>et</em> en même temps il y a un autre panneau qui donne le moment optimal pour retourner s’entrainer et qui contredit celui-ci. Il faut que je prenne le temps de mieux me réécouter à ce niveau.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-04-14-recuperation.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-04-14-recuperation.jpg"
width="960" height="2079"
srcset="/static/david/2024/2024-04-14-recuperation.jpg 960w, /static/david/2024/2024-04-14-recuperation_660x440.jpg 660w, /static/david/2024/2024-04-14-recuperation_990x660.jpg 990w, /static/david/2024/2024-04-14-recuperation_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 960 / 2079))"
loading="lazy"
decoding="async"
alt="Panneau de Récupération de l’application COROS.">
</a>
<figcaption>Suis-je vraiment en situation de fatigue / à 50% de mes capacités sur la majorité de mes sessions ?!</figcaption>
</figure>
<p>Je suis frustré par les capacités limitées de récupération des données (automatisée). J’ai le sentiment qu’il faut passer par une autre plateforme tierce, ou synchroniser à des « services » comme Strava, pour y avoir accès et ça me frustre. Je <a href="https://larlet.fr/david/2024/03/19/#hr-124">l’évoquais par ici</a>. Sur des données de santé, ça me fait bien suer de sortir des serveurs de collecte que je tolère déjà à moitié. Autre déception : ces outils sont vraiment faits pour être personnels et il n’y a pas de mode « prêt » pour une activité. La seule option trouvée pour ne pas fausser les statistiques personnelles semble être de supprimer l’activité après avoir récupéré les données.</p>
<p>Le prédic(a)teur de course qui m’annonçait initialement un marathon à 5h, j’avoue, ça pique un peu. Et peut-être que ça a participé à ma motivation aussi 🤷. On apprend à mutuellement se connaître, on verra dans six mois une fois les courbes stabilisées.</p>
<p>Niveau montre connectée, je pensais désactiver les notifications dès le premier jour et en fait c’est assez pratique pour trier ce qui est de l’information et ce qui demande une interaction. C’est sûr que je pourrais mieux filtrer à la base mais la plupart des outils ne permettent pas d’avoir une telle granularité. Cela m’a d’une certaine manière éloigné de mon temps d’écran de téléphone (un peu moins) indispensable. J’apprécie de pouvoir mettre des alarmes qui vibrent et qui ne dérangent vraiment que moi, surtout pour les réveils.</p>
<p>J’ai fait trois <a href="https://larlet.fr/david/2024/04/07/">séances</a> de <a href="https://larlet.fr/david/2024/04/10/#hr-146">piscine</a> pour l’instant et c’est vraiment chouette d’avoir des chiffres à ce sujet, je pense que ça peut m’aider à progresser dans ce domaine. Je n’ai pas suffisamment repris le vélo pour voir si c’est pertinent dans ce contexte aussi. C’est une montre qui est quand même très orientée course dans l’ensemble, le couplage avec un <a href="https://coros.ca/coros-pod2">Pod 2</a> est probablement un moyen d’aller plus loin dans l’amélioration de la foulée notamment. À voir si je creuse cet aspect, j’ai déjà de quoi faire.</p>
<p>Je ne sais toujours pas à quoi cela sert de connaître le nombre de ses pas <em>estimés</em> par jour. Encore moins le nombre d’étages… les <em>watchfaces</em> par contre c’est marrant (au début ?). Dans l’ensemble ça dépasse mes attentes qui étaient assez élevée, c’est rare. N’hésitez pas si vous avez des questions spécifiques auxquelles je peux répondre.</p>
<blockquote>
<p><em>[Aujourd’hui, en allant à la piscine en courant]</em><br />
— Pfiou, j’ai pas encore bien récupéré depuis vendredi…<br />
— Ah je me disais bien que tu étais à la traîne, je pensais que c’était juste la vieillesse.<br />
— 🫠</p>
</blockquote>
<p>Difficile de vivre avec un <del>athlète élite</del> enfant de 10 ans parfois.</p>
<nav><p><a href="https://larlet.fr/david/2024/enthousiasme/">#enthousiasme</a> <a href="https://larlet.fr/david/2024/laboratoire/">#laboratoire</a> <a href="https://larlet.fr/david/2024/sport/">#sport</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Fondation
2024-04-13T12:00:00+01:00
https://larlet.fr/david/2024/04/13/
<blockquote>
<p>— A mesure que Trantor devient plus spécialisée, dit Gaal, elle devient plus vulnérable, moins apte à se défendre. Qui plus est, à mesure que s’y développe l’administration centrale de l’Empire, la planète devient une proie plus enviable. Étant donné les difficultés croissantes que soulève le problème de la succession impériale, les querelles toujours plus violentes qui opposent les grandes familles les unes aux autres, le sentiment de la responsabilité envers la société va s’affaiblissant.<br />
— C’est suffisant. Et quelles sont les probabilités numériques de destruction totale d’ici trois siècles ?<br />
— Je ne saurais vous le dire.<br />
— […] Le chiffre exact est 92,5 %.<br />
— Voilà donc pourquoi on vous appelle Cassandre Seldon, dit Gaal. Je n’ai rien vu de tout cela dans les publications scientifiques.<br />
— On ne peut pas publier des choses pareilles, voyons. <mark>Vous ne pensez tout de même pas que l’Empire irait révéler ainsi sa faiblesse.</mark> C’est la base de la psychohistoire la plus élémentaire.</p>
<p><cite><em>Fondation 1</em>, Isaac Asimov, traduit de l’américain par Jean Rosenthal et Pierre Billon, complété et harmonisé par Philippe Gindre</cite></p>
</blockquote>
<p>Après un <a href="https://larlet.fr/david/2024/02/06/">séjour en terre du milieu</a>, me voici sur <em>Trantor</em>. Je ne l’ai jamais lu mais c’est la série TV qui m’a donné envie de creuser.</p>
<p>L’interprétation de ce passage est laissée comme exercice.</p>
<blockquote>
<p>D’après une ou deux personnes bien informées, je suis un genre de geek de tout. Un Sheldon en herbe, mais sociable.</p>
<p><cite><em><a href="https://nota-bene.org/Geek-de-tout">Geek de tout | nota-bene.org</a></em></cite></p>
</blockquote>
<hr />
<blockquote lang="en">
<p>I’ve found I personally have three <em>states</em> of being…</p>
<ul>
<li><strong>Hyperfocus</strong>, where I’m deeply focused on one thing and phenomenally productive.</li>
<li><strong>Physical</strong>, where I have lots of energy, but little mental focus.</li>
<li><strong>Burnt out</strong>, where both my mental and physical energy are low.</li>
</ul>
<p>Your states of being might be different. These are three I tend to operate in most frequently.</p>
<p><cite><em><a href="https://adhdftw.com/follow-your-adhd-flow/">Follow your ADHD flow</a></em></cite></p>
</blockquote>
<p>Peut-être que cette notion de <a href="https://larlet.fr/david/2024/03/08/">flow</a> n’est pas si anodine en fait 🤔. La communauté sur Discord évoque notamment l’importance de l’exercice comme outil de canalisation et <a href="https://larlet.fr/david/2024/04/14/">ce dernier mois</a> je ne peux que constater à quel point c’est vrai <em>pour moi</em>. J’ai un peu de mal avec les étiquettes d’auto-défintion/enfermement mais je constate aussi que pour beaucoup de personnes cela permet de reconsidérer ses propres fondations pour s’accepter et mieux se re·connaître ainsi.</p>
<p>Une identité n’est pas une suite d’acronymes mais plutôt une suite d’explorations et de compréhensions de ce que signifient ces acronymes dans sa propre façon d’être ?</p>
<nav><p><a href="https://larlet.fr/david/2024/dystopie/">#dystopie</a> <a href="https://larlet.fr/david/2024/lecture/">#lecture</a> <a href="https://larlet.fr/david/2024/psychologie/">#psychologie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Weird
2024-04-10T12:00:00+01:00
https://larlet.fr/david/2024/04/10/
<blockquote lang="en">
<p><em>Say the weird thing.</em></p>
<p>Okay, I’ll play.</p>
<p>The self is an illusion.</p>
<p>I’m a meat sack with electricity flying through space.</p>
<p>I am the natural consequence of every action from the Big Bang to today.</p>
<p>I don’t have free will.</p>
<p>Most of what my brain does is done in the dark of my attention and even when I am making conscious choices I did not choose to become the type of person who would choose that choice over another.</p>
<p>We created god because we got smart enough to realize that we were gonna die. Evolution rewarded religion because dogmatic bonded communities with a shared myth had ways of tending to one another in ways that other tribes didn’t.</p>
<p>We are the product of superstitious ancestors who survived better because they believed in supernatural elements and that they made them more likely to survive.</p>
<p>All we know is that there is consciousness and we are no closer to solving the hard problem of consciousness than when we first phrased it. And objects and consciousness which we cannot know if they are real because our brain is limited by its own perception of reality. And when we try to observe what is real, what is real changes.</p>
<p>Our brain is doing so much that it created shortcuts so that you are not aware of most of it. And our brains are so wired into towards culting that even when we leave religion, we create a religion out of whatever our thing is: astrology, politics, whatever.</p>
<p>These evolutionary shortcuts worked when we were small tribes but now that our trews are bumping into each other, it will be the machine that destroys ourselves.</p>
<p>We have a 180 catalog brain biases that tends towards simplicity over complexity, loyalty to our tribes, the illusion of the self and all of that is not compatible to what we know about the modern world.</p>
<p>Anyone who accepts all this will inevitably be alone. There is a lot of lip service to leaving the matrix but in reality it’s very lonely.</p>
<p>The machine of evolution that says to survive at all costs and all of the shortcuts that created that survival will eventually be a machine that eats itself. Individuals can remove themselves to some degree but <mark>if you try to change the world, you will inevitably become a cult and you will become the monster that you were trying to destroy.</mark></p>
<p>And even with all of that, there’s a way to structure with meaning and purpose and experiencing being, and being able to pop your head up in this universe, and check out what is going on where you still are glad you got to be alive, and it probably takes a little bit of privilege because you have to die so many times to get there and it’s very hard.</p>
<p>And in the end the only benefit that you get is that you know that you’re playing in reality which is little more than a shared hallucination rather than being in a delusion and not knowing that you are.</p>
<p>Invite me to your next party! ✌️</p>
<p><cite>@nononsensespirituality, <a href="https://mamot.fr/@jcfrog/112245851038854526">via masto</a>, que l’on retrouve <a href="https://www.instagram.com/nononsensespirituality/reel/C5SRDzTLqAh/">aussi sur Instagram</a></cite></p>
</blockquote>
<p>Bienvenue dans mon cerveau 😅.</p>
<hr />
<blockquote>
<p>The Swolf is a composite measurement in sports swimming that reflects how fast and <mark>how efficiently somebody is swimming.</mark> In contrast, time per distance (speed) neglects swimming technique, and the number of swimming strokes per lap neglects the purpose of competitive swimming: Covering a given distance in the shortest time.</p>
<p><cite><a href="https://en.wikipedia.org/wiki/Swolf">Swolf</a></cite></p>
</blockquote>
<p>Découverte du jour grâce à la montre : la mesure du Swolf en natation. Voilà un calcul qui m’intéresse davantage que la vitesse.</p>
<p>J’ai fait mon premier kilomètre (avec pauses) de l’année. Mon Swolf actuel a l’air de tourner autour de 40-45 lorsque je ne suis pas trop dérangé par les autres nageur·euses, on va voir si ça évolue ces prochains mois.</p>
<hr />
<blockquote>
<p>The other maintainer suddenly disappeared.</p>
<p><cite><a href="https://github.com/tukaani-project/xz/commit/77a294d98a9d2d48f7e4ac273711518bf689f5c4">Update maintainer and author info.</a></cite></p>
</blockquote>
<p>Le <em>commit</em> du jour.</p>
<nav><p><a href="https://larlet.fr/david/2024/communaute/">#communauté</a> <a href="https://larlet.fr/david/2024/poesie/">#poésie</a> <a href="https://larlet.fr/david/2024/psychologie/">#psychologie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Éclipse
2024-04-08T12:00:00+01:00
https://larlet.fr/david/2024/04/08/
<p>Il y a l’éclipse et puis il y a toute l’ambiance autour. Je crois que c’est ce qui m’a le plus marqué, cet émerveillement doublé d’un enthousiasme collectif. Lorsque tout le monde retire les lunettes ou même un peu avant lorsque la lumière change et que l’on voit un coucher (??) de soleil en version accéléré qui s’avance vers nous en pleine après-midi.</p>
<p>L’éclipse totale était censée être de 1 min 45 sec à ma position mais alors en ressenti derrière l’objectif c’était du 20 secondes ! À peine le temps de réduire au maximum l’exposition et de déclencher. J’avais fait une mise au point sur un avion au préalable et j’étais passé en manuel mais c’était stupide et ça a rendu floues toutes les photos… jusqu’aux deux dernières. Coup de bol d’avoir pris le temps de tester l’autofocus en sentant venir la fin.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-04-08-eclipse-1.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-04-08-eclipse-1.jpg"
width="2000" height="2000"
srcset="/static/david/2024/2024-04-08-eclipse-1.jpg 2000w, /static/david/2024/2024-04-08-eclipse-1_660x440.jpg 660w, /static/david/2024/2024-04-08-eclipse-1_990x660.jpg 990w, /static/david/2024/2024-04-08-eclipse-1_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 2000 / 2000))"
loading="lazy"
decoding="async"
alt="Le moment de l’éclipse où la lune passe totalement devant le soleil.">
</a>
<figcaption>J’étais tellement content de découvrir des éruptions solaires au développement !</figcaption>
</figure>
<p>En étant sur la fin, cela permet d’être vraiment à la limite de la couronne solaire et de photographier un phénomène que je ne pensait pas possible avec mon matériel.</p>
<p>Et puis, il y a ce moment où l’hystérie collective redevient sérieuse car il faut remettre les lunettes et prendre le temps de se demander ce qu’il vient de se passer.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-04-08-eclipse-2.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-04-08-eclipse-2.jpg"
width="3840" height="2560"
srcset="/static/david/2024/2024-04-08-eclipse-2.jpg 3840w, /static/david/2024/2024-04-08-eclipse-2_660x440.jpg 660w, /static/david/2024/2024-04-08-eclipse-2_990x660.jpg 990w, /static/david/2024/2024-04-08-eclipse-2_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 3840 / 2560))"
loading="lazy"
decoding="async"
alt="Le moment de l’éclipse où la lune va découvrir le soleil.">
</a>
<figcaption>En mode halo au développement car c’est quand même sympa.</figcaption>
</figure>
<p>Fait étonnant, quelques petites minutes après l’apogée, on voyait un avion et surtout son ombre projetée de manière inhabituelle. J’ai l’intuition qu’il était dans une zone qui n’arrive jamais en temps normal car cet angle lumineux n’est pas possible. J’aurais dû prendre une photo pour pouvoir faire des calculs à ce sujet.</p>
<hr />
<p>Aussi, je suis en train de regarder <a href="https://en.wikipedia.org/wiki/3_Body_Problem_(TV_series">3 Body Problem</a>).</p>
<nav><p><a href="https://larlet.fr/david/2024/enthousiasme/">#enthousiasme</a> <a href="https://larlet.fr/david/2024/experience/">#expérience</a> <a href="https://larlet.fr/david/2024/photographie/">#photographie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Piscine
2024-04-07T12:00:00+01:00
https://larlet.fr/david/2024/04/07/
<p>Il est tellement difficile de se remettre à nager. La première séance de l’année est toujours une agonie. Cent mètres, les bras qui brûlent et le souffle court. Cinq cent et déjà incapable d’aller plus loin. Heureusement que c’est le même rituel chaque année… et la promesse des lacs qui dégèlent participe à ma motivation.</p>
<hr />
<blockquote lang="en">
<p>While global variables scoped to the <code>:root</code> let me define system-wide defaults, I also like to scope variables for styles that change with utility classes to the element itself.</p>
<p>CSS variables scoped to an element can use other CSS variables as their value. But <mark>scoping them to the element provides an easy way to modify them.</mark></p>
<p><cite><em><a href="https://gomakethings.com/an-advanced-way-to-use-css-variables/">An advanced way to use CSS variables</a></em></cite></p>
</blockquote>
<p>Les variables CSS combinées à <code>:has()</code> + <code>:is()</code> + <code>:where()</code> transforment complètement la façon d’interagir avec une page pour pouvoir la styler. <a href="https://larlet.fr/david/2024/01/02/">Je</a> <a href="https://larlet.fr/david/2024/03/07/#hr-102">me</a> <a href="https://larlet.fr/david/2024/03/08/#hr-104">répète</a> mais vraiment je ne m’en remets pas. À mon niveau de bidouilleur, c’est un pan entier de mon métier qui est en train d’être transformé. Si je savais ce dont je parlais, je comparerais ça à un changement de paradigme aussi fondamental que de l’objet au fonctionnel par exemple. <em>Prends tes gouttes papi.</em></p>
<p>D’autres exemples documentés <a href="https://dev.37signals.com/modern-css-patterns-and-techniques-in-campfire/">sur le blog dev de 37signals</a> (oui, je sais…).</p>
<nav><p><a href="https://larlet.fr/david/2024/courage/">#courage</a> <a href="https://larlet.fr/david/2024/sport/">#sport</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Productivité
2024-04-05T12:00:00+01:00
https://larlet.fr/david/2024/04/05/
<blockquote lang="en">
<p>You see, the more I wrote about “productivity”, the more I found myself falling into a trap. <mark>It’s very difficult to write in this space without approaching the topic in a way that’s weirdly moralistic.</mark> It’s difficult to avoid implying that “being productive” is some sort of objectively virtuous behavior – and that conversely a lack of “productivity” is some sort of moral failing. I don’t believe this. Nor do I believe that we have any sort of imperative to be maximally-productive at work. You don’t need to “give 110%” to your job. You don’t “owe” your employer any sort of maximal time and attention.</p>
<p>I do think that “productivity” is important, but it’s a more subtle importance. It’s not about being a nice little compliant worker drone and maximizing your contributions to capitalism! Productivity is important to me in the way that it contributes to feeling content and fulfilled.</p>
<p><cite><em><a href="https://jacobian.org/2024/apr/4/not-writing-about-productivity/">Why I’m Not Writing a Productivity Series</a></em></cite></p>
</blockquote>
<p>Il y a des tâches à l’état gazeux, qui remplissent tout le temps que l’on est prêt à leur laisser.</p>
<p>Il y a des tâches à l’état liquide, qui vont se répandre dans tous les interstices de temps d’autres tâches.</p>
<p>Il y a des tâches à l’état solide, que l’on peine à sup·porter et dont on a du mal à se défaire.</p>
<p>Il y a des tâches qui sont des réactions en chaîne, dont il faut attendre le point de bascule en préparant les matières premières.</p>
<p>La classification périodique des tâches, un autre moyen de les qualifier ?</p>
<hr />
<blockquote lang="en">
<p>The fast, feature-rich, GPU based terminal emulator</p>
<p><cite><em><a href="https://sw.kovidgoyal.net/kitty/">kitty</a></em></cite></p>
</blockquote>
<p>Je me demande souvent si d’autres outils me permettraient d’être plus efficace / rapide. C’est le temps d’apprentissage puis la robustesse de l’outil et la communauté (et son support) qui m’importent. J’ai aussi cette croyance qu’en altérant trop les outils par défaut, je vais être moins à même de pouvoir accompagner des personnes moins techniques lorsque l’occasion se présente.</p>
<p>Aujourd’hui, j’ai repris à zéro mes <em>packages</em> de <a href="https://www.sublimetext.com/">Sublime Text 4</a> car j’avais un <a href="https://github.com/wbond/package_control/issues/1612">souci avec Package Control</a> et le <em>log</em> des 27 paquets installés me masquait la vraie erreur. Je n’ai ensuite installé que <a href="https://packagecontrol.io/packages/LSP">LSP</a>, <a href="https://packagecontrol.io/packages/LSP-ruff">LSP-ruff</a> et <a href="https://packagecontrol.io/packages/LSP-rome">LSP-rome</a>. Peut-être que c’est suffisant à mes besoins actuels ? (Merci Rust.)</p>
<p>Je suis toujours assez effaré par les performances de VSCodium…</p>
<nav><p><a href="https://larlet.fr/david/2024/documentation/">#documentation</a> <a href="https://larlet.fr/david/2024/experience/">#expérience</a> <a href="https://larlet.fr/david/2024/psychologie/">#psychologie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Décision
2024-04-03T12:00:00+01:00
https://larlet.fr/david/2024/04/03/
<blockquote>
<p>La prise de décision par consentement se différencie de la prise de décision par consensus : <strong>en consensus tout le monde dit « oui », en consentement, personne ne dit « non ».</strong></p>
<p>Cela sous-entend que lorsque l’on prend une décision par consentement, on ne va pas chercher la « meilleure solution » mais l’on va partir du principe qu’une bonne décision est celle qui respecte les limites de celles et ceux qui devront l’assumer, et qui ne compromet en rien la capacité de l’organisation à mener à bien sa mission. <mark>Le consentement implique qu’une décision ne peut être prise que lorsqu’il n’y a plus d’objection raisonnable à celle-ci.</mark> Tant qu’il y a des objections, l’ensemble du groupe est mobilisé pour bonifier la proposition. Ainsi, les objections permettent de révéler les limites avec lesquelles le groupe devra composer et indiquent donc l’espace de liberté dont le cercle dispose.</p>
<p><cite><em><a href="http://pilavenir.canalblog.com/archives/2017/10/21/35793152.html">La prise décision par consentement : un outil au service du groupe</a></em></cite></p>
</blockquote>
<p>La prise de décision lorsqu’on se retrouve à <a href="http://scopyleft.fr/">7 co-gérant·es</a> distribué·es sur deux continents n’est pas une mince affaire. Rythme lent/asynchrone, légitimité, culpabilité, ambiguïté, les raisons ne manquent pas pour générer des frustrations.</p>
<p>Aujourd’hui, nous avons réussi à définir ce dont nous avions besoin en amont, pendant et après une prise de décision. Cela a permis au passage de rendre explicite la légitimité des décisions prises et la façon d’améliorer les propositions itérativement par consentement.</p>
<p>Je suis content de faire partie d’un <a href="https://larlet.fr/david/2024/03/28/">collectif</a> qui prend le temps de se poser ces questions. C’est rare et précieux.</p>
<nav><p><a href="https://larlet.fr/david/2024/equipe/">#équipe</a> <a href="https://larlet.fr/david/2024/experience/">#expérience</a> <a href="https://larlet.fr/david/2024/gratitude/">#gratitude</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Porte
2024-04-02T12:00:00+01:00
https://larlet.fr/david/2024/04/02/
<blockquote lang="en">
<p>For me, the two big lessons from #XZ were first, the lack of resources supporting crucial Open-Source infrastructure, but then and especially, the demonstration that the attackers are numerous, skilled <em>and patient</em>. We already knew about numerous and skilled but this episode, where the attacker was already well-embedded in the project by May 2022, opened a few eyes, including mine.</p>
<p>The advantage, to various flavors of malefactor, of subverting core pieces of Open-Source infrastructure, is incalculable. <mark>#XZ was the one we caught; how many have we missed?</mark></p>
<p><cite><em><a href="https://www.tbray.org/ongoing/When/202x/2024/04/01/OSQI">ongoing by Tim Bray · OSQI</a></em></cite></p>
</blockquote>
<p>J’ai laissé le web 2 jours et hop, une <a href="https://fr.wikipedia.org/wiki/Porte_d%C3%A9rob%C3%A9e">porte dérobée</a> a été fermée à temps. C’est <a href="https://boehs.org/node/everything-i-know-about-the-xz-backdoor">la chronologie</a> qui est surprenante dans sa durée et pose immédiatement la question de savoir s’il s’agit d’une exception ou s’il y a déjà des portes un peu partout, exploitées par plus ou moins de monde.</p>
<p>Lorsqu’on voit ce que <a href="https://larlet.fr/david/2024/03/28/#hr-140">sont prêts à faire les GAFAM+</a>, je n’ai aucun doute sur le fait qu’ils se rueraient sur de telles « opportunités ». On parle souvent de malveillance dans ces cas là, je pense que l’on peut facilement mettre tout ce qui est <em>growth hacking</em> et <em>marketing</em> dans ce périmètre.</p>
<p>Pour en revenir à des OSQI (Open Source Quality Institutes) nationaux, cela me rappelle des initiatives comme <a href="https://copiepublique.fr/">copie publique</a> ou cette idée de <a href="https://larlet.fr/david/2023/01/11/">MécénatDeCompétencesPublic</a> .</p>
<p>Transformer l’Open-Source en bien commun est peut-être le chantier de la décennie à venir. J’espère en faire partie à mon échelle.</p>
<blockquote lang="en">
<p>Tuesday, Hans-Christoph Steiner, a longtime developer of F-Droid, explained that a very similar situation nearly led F-Droid to push an update that would have introduced a security vulnerability into the product three years ago: “Three years ago, F-Droid had a similar kind of attempt as the Xz backdoor,” he posted on Mastodon. “A new contributor submitted a merge request to improve the search, which was oft requested but the maintainers hadn’t found time to work on. There was also pressure from other random accounts to merge it. In the end, it became clear that it added a SQL injection vulnerability. In this case, we managed to catch it before it was merged. Since similar tactics were used, I think it’s relevant now.”</p>
<p>Other open source developers and security experts have pointed to the dynamic of bullying and the general reliance on a small number of volunteer developers. They explained that it’s a problem across much of the open source software ecosystem, and is definitely a problem for the large tech companies and infrastructure who rely on these often volunteer-led projects to build their for-profit software on top of.</p>
<p><cite><em><a href="https://www.404media.co/xz-backdoor-bullying-in-open-source-software-is-a-massive-security-vulnerability/">Bullying in Open Source Software Is a Massive Security Vulnerability</a></em></cite></p>
</blockquote>
<nav><p><a href="https://larlet.fr/david/2024/commun/">#commun</a> <a href="https://larlet.fr/david/2024/opensource/">#opensource</a> <a href="https://larlet.fr/david/2024/protopie/">#protopie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Jour 2
2024-03-30T12:00:00+01:00
https://larlet.fr/david/2024/03/30/
<blockquote>
<p>Le vent fera tomber des branches,<br />
L’aube viendra dans sa mârde blanche.</p>
<p><cite><em>Mars</em>, Cissou du « vrai » sud-ouest (fin du débat)</cite></p>
</blockquote>
<p>La montre m’indique avoir dormi 5h. Optimiste. Je me lève relativement tôt car je ne veux pas trop m’enfoncer dans la neige en début d’après-midi. Les seules traces de retour bien profondes de la veille m’ont fait un peu peur à ce sujet. J’ai greloté une partie de la nuit (oups, des calories en moins), ça motive à s’extirper du duvet aussi…</p>
<p>Le temps de déjeuner et de plier le camp, la neige se met à tomber. Il neige faiblement pendant les 2 km d’ascension qui m’ont séché la veille. Vu le nombre de nouvelles branches que je dois enjamber, je suis bien content de ne pas m’en être pris une sur la tête cette nuit. J’espérais pouvoir bénéficier d’un lever de soleil mais c’est compter sans la couverture nuageuse.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-03-30-lac.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-03-30-lac.jpg"
width="3024" height="4032"
srcset="/static/david/2024/2024-03-30-lac.jpg 3024w, /static/david/2024/2024-03-30-lac_660x440.jpg 660w, /static/david/2024/2024-03-30-lac_990x660.jpg 990w, /static/david/2024/2024-03-30-lac_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 3024 / 4032))"
loading="lazy"
decoding="async"
alt="Un lac gelé.">
</a>
<figcaption>Un de ces paysages typiques.</figcaption>
</figure>
<p>Je découvre qu’il faut avoir une trace aller et une autre retour car la montre ne sait pas réaliser que je ne fais pas du <em>moonwalk</em> toute seule. Étonnant.</p>
<p>L’un des inconvénient d’être reparti à la fraîche, c’est que les rochers mouillés sont devenus bien glissants mais la boue a gelé. Il faut bien savoir choisir son poison dans ces circonstances 😅.</p>
<p>Au fil du chemin, je réalise que je ne suis pas prêt à enchaîner en rando-course sur plusieurs jours et qu’il va falloir travailler l’endurance avant, ce que j’ai commencé mais ça va me prendre plusieurs mois pour arriver à la forme qui me semble nécessaire.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-03-30-ruisseau.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-03-30-ruisseau.jpg"
width="3024" height="4032"
srcset="/static/david/2024/2024-03-30-ruisseau.jpg 3024w, /static/david/2024/2024-03-30-ruisseau_660x440.jpg 660w, /static/david/2024/2024-03-30-ruisseau_990x660.jpg 990w, /static/david/2024/2024-03-30-ruisseau_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 3024 / 4032))"
loading="lazy"
decoding="async"
alt="Un ruisseau gelé.">
</a>
<figcaption>La couche de glace depuis hier me permet de mesurer la température nocturne.</figcaption>
</figure>
<p>J’espère pouvoir alléger le sac aussi avec les températures qui remontent. Je peux probablement réduire de 2 kilos par dizaine de degrés gagnée, ce qui n’est pas négligeable !</p>
<p>Une sortie plus en mode recherche que l’habituelle exploration / contemplation / plaisir. Toujours cet arbitrage pour réussir à être dans de bonnes conditions tout en recherchant l’isolement relatif.</p>
<p>Les derniers kilomètres sont bien longs (je suis limite en hypo), surtout que je m’étais garé assez loin du départ pour estimer ce que pourrait être une jonction du <a href="https://www.randoquebec.ca/sentier-national-au-quebec/">sentier national</a> qui enchainerait trois tronçons dont j’ai maintenant fait tous les morceaux. Envisageable dans des conditions non-hivernales mais il faut que j’arrive à me faire déposer à l’une des extrémités.</p>
<nav><p><a href="https://larlet.fr/david/2024/experience/">#expérience</a> <a href="https://larlet.fr/david/2024/foret/">#forêt</a> <a href="https://larlet.fr/david/2024/partage/">#partage</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Jour 1
2024-03-29T12:00:00+01:00
https://larlet.fr/david/2024/03/29/
<p>Réveil à 6h. Je veux tenter une sortie longue en prévision d’une <a href="https://larlet.fr/david/2024/03/11/#hr-109">encore plus longue</a>. Comme chaque printemps, j’ai l’espoir de ne pas tomber sur des conditions trop pénibles lorsque ça fond. Comme chaque printemps, je me retrouve à viser les arbres entre deux plaques de verglas pour pouvoir me rattraper dans les dévers. Sans compter le fait que le sentier qui a été tapé par les raquettes tout l’hiver est bien souvent le seul serpent de glace restant. Un exemple parmi tant d’autres un peu plus critiques :</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-03-29-chemin-glace.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-03-29-chemin-glace.jpg"
width="3024" height="4032"
srcset="/static/david/2024/2024-03-29-chemin-glace.jpg 3024w, /static/david/2024/2024-03-29-chemin-glace_660x440.jpg 660w, /static/david/2024/2024-03-29-chemin-glace_990x660.jpg 990w, /static/david/2024/2024-03-29-chemin-glace_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 3024 / 4032))"
loading="lazy"
decoding="async"
alt="Un chemin gelé.">
</a>
<figcaption>Sur 100 mètres ça va, mais sur plusieurs kilomètres c’est usant !</figcaption>
</figure>
<p>Il y a vraiment deux faces, deux ambiances dans ces situations avec d’un côté du gel et de l’autre le sol déjà fondu mais parfois boueux et donc tout autant glissant…</p>
<p>Je découvre un emplacement de camping à une dizaine de kilomètres du départ, ce qui me permettra de revenir cet été avec l’enfant. J’aime bien ce genre de découverte non documentée.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-03-29-riviere.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-03-29-riviere.jpg"
width="3024" height="4032"
srcset="/static/david/2024/2024-03-29-riviere.jpg 3024w, /static/david/2024/2024-03-29-riviere_660x440.jpg 660w, /static/david/2024/2024-03-29-riviere_990x660.jpg 990w, /static/david/2024/2024-03-29-riviere_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 3024 / 4032))"
loading="lazy"
decoding="async"
alt="Une rivière avec les bords enneigés.">
</a>
<figcaption>Je chiale beaucoup mais il y a aussi des décors qui valent le coup hein.</figcaption>
</figure>
<p>J’avais fait la <a href="https://www.komoot.com/fr-fr/plan">trace sur Komoot</a> pour tester le suivi avec <a href="https://larlet.fr/david/2024/03/14/">la montre</a> (je ferai un retour complet à son sujet plus tard) ce qui a eu pour effet de m’encourager <em>et</em> de me décourager à la fois. D’un côté la certitude d’être sur le « droit » chemin et d’anticiper les côtes, de l’autre se rendre compte en cours de route que l’estimation initiale en terme de distance / dénivelé était très optimiste (+25% en distance et +50% en dénivelé ça fait une différence !).</p>
<p>Je pensais être déjà limite niveau capacités physiques mais de voir le chemin s’allonger et le temps passer a fini par avoir raison de mon énergie. Lorsque la lucidité flanche après presque 7h d’effort à <del>lutter</del> m’adapter aux éléments, il vaut mieux faire une pause en pensant au retour. Je retiens qu’il faut démarrer plus tôt aussi pour être plus serein en cas d’imprévu.</p>
<p>La nourriture était un autre test important de cette sortie. Je me suis rendu compte que de s’alimenter sur 4 jours intensifs allait peser lourd. Lorsque j’ai enregistré le parcours, la montre m’a indiqué 2300 kcal de dépensées ce qui me donne une idée des ordres de grandeur. Pour une fois, je voulais tenter les plats lyophilisés et non seulement c’était pas bon mais en plus j’avais faim avant de me coucher ! Il faut que j’essaye de déshydrater mes propres plats.</p>
<p>En parlant du couchage, trouver un emplacement en pleine forêt québécoise qui soit suffisamment plat <em>et</em> sec non gelé <em>et</em> proche d’eau courante revient bien souvent à s’installer sur le sentier. Ce que j’ai fait après n’avoir croisé personne de la journée.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-03-29-couchage-sentier.jpg"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-03-29-couchage-sentier.jpg"
width="3024" height="4032"
srcset="/static/david/2024/2024-03-29-couchage-sentier.jpg 3024w, /static/david/2024/2024-03-29-couchage-sentier_660x440.jpg 660w, /static/david/2024/2024-03-29-couchage-sentier_990x660.jpg 990w, /static/david/2024/2024-03-29-couchage-sentier_1320x880.jpg 1320w"
sizes="min(100vw, calc(100vh * 3024 / 4032))"
loading="lazy"
decoding="async"
alt="Un campement en plein chemin.">
</a>
<figcaption>On ne dirait pas sur la photo mais le sol est bien humide.</figcaption>
</figure>
<p>La météo indiquait -5°C, je prévoyais un -10°C niveau équipement et… il a bien fait -15°C avec le vent qui a soufflé par rafales toute la nuit. Difficile de réussir à être minimaliste / léger dans ces conditions sans prendre quelques risques.</p>
<nav><p><a href="https://larlet.fr/david/2024/experience/">#expérience</a> <a href="https://larlet.fr/david/2024/foret/">#forêt</a> <a href="https://larlet.fr/david/2024/partage/">#partage</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Collectif
2024-03-28T12:00:00+01:00
https://larlet.fr/david/2024/03/28/
<p>Il est parfois difficile pour un collectif existant <em>de fait</em> de définir ce qui le relie (encore), de travailler sur sa raison d’être et/ou ses valeurs. Le regroupement a pu être économique, idéologique, par affinités, un peu des trois à la fois sûrement et à un moment on se retrouve devant le fait accompli. Presque surpris de se retrouver ensemble, à se demander pourquoi.</p>
<p>Cela m’arrive dans trois situations à la fois en ce moment. À différentes échelles mais le parallèle est frappant. Le plus difficile (pour moi) est de se retenir d’être le seul moteur du groupe car le temps individuel est aussi important que l’action collective qu’il précède.</p>
<p>Je vais aller m’épuiser sur ces sages paroles en forêt. Seul.</p>
<hr />
<blockquote lang="en">
<p>In 2016, Facebook launched a secret project designed to intercept and decrypt the network traffic between people using Snapchat’s app and its servers. The goal was to understand users’ behavior and help Facebook compete with Snapchat, according to newly unsealed court documents. Facebook called this “Project Ghostbusters,” in a clear reference to Snapchat’s ghost-like logo.</p>
<p>On Tuesday, a federal court in California released new documents discovered as part of the class action lawsuit between consumers and Meta, Facebook’s parent company.</p>
<p>The newly released documents reveal how Meta tried to gain a competitive advantage over its competitors, including Snapchat and later Amazon and YouTube, <mark>by analyzing the network traffic of how its users were interacting with Meta’s competitors.</mark> Given these apps’ use of encryption, Facebook needed to develop special technology to get around it.</p>
<p><cite><em><a href="https://techcrunch.com/2024/03/26/facebook-secret-project-snooped-snapchat-user-traffic/">Facebook snooped on users’ Snapchat traffic in secret project, documents reveal</a></em></cite></p>
</blockquote>
<p>J’ai du mal à réaliser que je suis en train de faire un lien vers TechCrunch mais c’est trop gros pour laisser passer. Je ne vois pas comment un tel stratagème pourrait être justifiable, et si les GAFAM+ en sont là ça fait froid dans le dos.</p>
<p>Le manque de déontologie dans ma profession m’attriste. Savoir que cette nouvelle ne va rien changer aux monopoles actuels m’achève.</p>
<blockquote lang="en">
<p>People who point out what needs to be improved are generally disappointed optimists. Only an optimist would believe that pointing out what has gone wrong could ever result in said issue being fixed. Only somebody who believes that software could be universally useful to everybody in society is going to spend time discovering and highlighting accessibility issues.</p>
<p>You don’t spend years of your life figuring out how the flaws of the web can be fixed unless you thinks the web has massive unfulfilled potential.</p>
<p><mark>We’re not cynics.</mark> If we were, we wouldn’t waste so much energy being hopeful.</p>
<p><cite><em><a href="https://www.baldurbjarnason.com/2024/the-software-crisis-easter-sale/">“I’m not a cynic, I’m disappointed”</a></em></cite></p>
</blockquote>
<hr />
<blockquote lang="en">
<p>As such, I’ve become more attuned to what my goal really <em>should be</em> with Buttondown. Most tech companies have a goal centered around some flavor of maximalism: disrupting an industry, revolutionizing a process, that kind of thing. Buttondown is not that kind of product; <mark>I am not that kind of person.</mark></p>
<p><cite><em><a href="https://jmduke.com/posts/microblog/why-should-a-company/">Why should a company? · Applied Cartography</a></em></cite></p>
</blockquote>
<p>Et puis soudain un peu d’espoir. Tout n’est pas si terrible finalement. Quelques villages ici et là résistent. Quelques personnes et collectifs font la différence.</p>
<blockquote lang="en">
<p>But it’s our fault. Our as a society. We celebrate when Apple becomes the first trillion-dollar company but we don’t celebrate when someone says <mark>“You know what? I think I have enough”.</mark></p>
<p><cite><em><a href="https://manuelmoreale.com/growth-is-a-mind-cancer">Growth is a mind cancer</a></em></cite></p>
</blockquote>
<hr />
<blockquote>
<p>À l’origine, Make est un outil conçu pour le développement de logiciels : il sert à automatiser la fabrication de programmes exécutables à partir de fichiers contenant du code.</p>
<p>Mais en réalité, <mark>Make peut être utilisé pour gérer toutes sortes de projets.</mark> En tant que langage, il permet de définir des processus de manière très simple (encore plus simple que les scripts shell). Et en tant qu’outil, il permet de gagner du temps, avec une gestion efficace des états des fichiers qui fait économiser du travail aussi bien à l’humain qu’à la machine.</p>
<p><cite><em><a href="https://www.arthurperret.fr/cours/make.html">Make</a></em></cite></p>
</blockquote>
<p>Superbe cours par Arthur Perret, j’ai appris plein de choses en le relisant. J’emploie <code>make</code> au quotidien, ne serait-ce que pour construire ce site et pourtant il y a pas mal de complexité/raccourcis vers lesquels je ne suis pas encore allé.</p>
<nav><p><a href="https://larlet.fr/david/2024/commun/">#commun</a> <a href="https://larlet.fr/david/2024/equipe/">#équipe</a> <a href="https://larlet.fr/david/2024/protopie/">#protopie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
GPX Viewer
2024-03-26T12:00:00+01:00
https://larlet.fr/david/2024/03/26/
<p><a href="https://larlet.fr/david/2024/03/25/">Suite de mes expérimentations</a> de la veille à la fois en cartographie et en <em>web components</em>. Je me suis demandé s’il était possible de faire un composant qui ne dépende pas de uMap pour afficher une trace GPX. Le fait d’avoir passé une heure à trouver la bonne <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP">CSP</a> pour arriver à afficher une carte m’a d’une certaine manière motivé (c’était une journée galère).</p>
<p>Il se trouve qu’il existe <a href="https://github.com/mpetazzoni/leaflet-gpx">leaflet-gpx</a> qui fait exactement ce que je voulais. Il ne me restait « plus qu’à » en faire un composant web, ce que j’avais déjà <a href="https://gitlab.com/umap-project/leaflet-webcomponents/">fait par ailleurs</a> :</p>
<gpx-viewer data-height="500px" data-width="800px">
<p>
Vous devriez voir s’afficher une carte de mon « Grand Tour de la forêt de Ouareau »,
qui contient <a data-gpx href="https://larlet.fr/static/david/2024/grand_tour_de_la_foret_de_ouareau.gpx">cette trace GPX</a>,
centrée sur <span data-latitude>46.2117</span>, <span data-longitude>-73.9335</span>
avec un zoom de <span data-zoom>12</span>.
Il est probable que cela ne s’exécute pas dans un agrégateur par exemple.
</p>
</gpx-viewer>
<script type="module">
import * as L from '/static/david/2024/leaflet.1.9.4/leaflet.1.9.4.js'
window.L = L // Hack for leaflet-gpx, youpi.
</script>
<script type="module" nonce="oembed-web-component">
class GPXViewer extends HTMLElement {
static tagName = 'gpx-viewer'
static register(tagName, registry) {
if(!registry && ('customElements' in globalThis)) {
registry = globalThis.customElements
}
registry?.define(tagName || this.tagName, this)
}
#attachCSS(path) {
const linkElement = document.createElement('link')
linkElement.setAttribute('rel', 'stylesheet')
linkElement.setAttribute('href', path)
this.shadowRoot.appendChild(linkElement)
}
#computeDimensions(mapContainer) {
// There has to be a better way but I feel lazy tonight.
let height = this.dataset.height
let width = this.dataset.width
// Size is in px so we strip these chars and convert to int.
const heightValue = Number(height.slice(0, -2))
const widthValue = Number(width.slice(0, -2))
const mediaQueryMiddle = window.matchMedia(`(max-width: ${widthValue}px)`)
const mediaQuerySmall = window.matchMedia(`(max-width: ${widthValue / 2}px)`)
if (mediaQueryMiddle.matches) {
height = `${heightValue / 2}px`
width = `${widthValue / 2}px`
}
if (mediaQuerySmall.matches) {
height = `${heightValue / 3}px`
width = `${widthValue / 3}px`
}
mapContainer.style.height = height
mapContainer.style.width = width
}
#createMapContainer() {
const mapContainer = document.createElement('div')
this.#computeDimensions(mapContainer)
this.shadowRoot.appendChild(mapContainer)
return mapContainer
}
#createMap(mapContainer) {
const map = L.map(mapContainer).setView(
[
this.querySelector('[data-latitude]').textContent,
this.querySelector('[data-longitude]').textContent,
],
this.querySelector('[data-zoom]').textContent
)
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution:
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
}).addTo(map)
return map
}
#attachGPX(map) {
const gpxUrl = this.querySelector('[data-gpx]').href
new GPX(gpxUrl, {
async: true,
marker_options: {
startIconUrl: '/static/david/2024/leaflet-gpx.1.7.0-custom/pin-icon-start.png',
endIconUrl: '/static/david/2024/leaflet-gpx.1.7.0-custom/pin-icon-end.png',
shadowUrl: '/static/david/2024/leaflet-gpx.1.7.0-custom/pin-shadow.png'
}
}).on('loaded', (e) => {
map.fitBounds(e.target.getBounds())
}).addTo(map)
}
constructor() {
super()
this.attachShadow({ mode: 'open' })
}
async connectedCallback() {
this.#attachCSS('/static/david/2024/leaflet.1.9.4/leaflet.css')
const mapContainer = this.#createMapContainer()
const map = this.#createMap(mapContainer)
this.#attachGPX(map)
}
}
import GPX from '/static/david/2024/leaflet-gpx.1.7.0-custom/gpx.1.7.0-custom.js'
GPXViewer.register()
</script>
<p>Alors en fait, comme rien n’est jamais simple en JS, il a fallu que j’adapte le plugin qui n’était pas compatible avec les modules JS et que je fasse des galipettes pour que ça finisse par tomber en marche 🤸. Cet écosystème est merveilleux (quel métier !). J’ai quand même <a href="https://github.com/mpetazzoni/leaflet-gpx/issues/153">remonté le problème</a>.</p>
<p>Au passage, inspiré par <a href="https://blog.k-nut.eu/leaflet-microdata-html-webcomponent">le travail de Knut Hühne</a> sur la sémantique des données d’une carte, je me suis demandé si j’allais définir un <a href="https://schema.org/itinerary">itinerary</a> pour un <a href="https://schema.org/Trip">Trip</a> avec des <a href="https://schema.org/GeoCoordinates">GeoCoordinates</a> mais ça m’a fait tirer un fil beaucoup trop long. Je garde l’idée sous le coude <a href="https://umap-project.gitlab.io/leaflet-webcomponents/">pour mes propres recherches</a> dans le domaine cela dit.</p>
<p>Un composant de plus, je ne suis pas très satisfait de celui-ci car j’avais l’espoir d’arriver à quelque chose de facilement réutilisable. J’aurais au moins commencé à mettre les doigts dans le XML du format GPX. Il est possible de définir plusieurs segments au sein d’une même trace. Il peut y avoir pas mal de métadonnées, notamment de mise en forme de la trace mais aussi de caractéristiques (biologiques, physiques, etc).</p>
<hr />
<blockquote lang="en">
<p>The fact is that we can’t rely on any single website to hold the whole world’s knowledge, because it can be corrupted sooner or later. The only solution is a distributed architecture, with many smaller websites connecting with each other and sharing information. This is where ActivityPub comes in, the protocol used by Mastodon, Lemmy, Peertube and many other federated social media projects.</p>
<p>I have worked on Lemmy for the past four years, bringing it from a prototype to a fully functional Reddit alternative. I wrote the entire federation code and became very familiar with the protocol. <mark>I realized that the same technology easily be used to create a federated encyclopedia.</mark> As no one else took up such a project, I finally decided to do it on my own and create Ibis. Thanks to my previous experience with the tech stack and the ActivityPub library I created, I was able to complete a proof of concept in a relatively short time of four months.</p>
<p><cite><em><a href="https://ibis.wiki/article/Announcing_Ibis,_the_federated_Wikipedia_Alternative@ibis.wiki">Announcing Ibis, the federated Wikipedia Alternative</a></em></cite></p>
</blockquote>
<p>Wikipedia décentralisé, je dis oui ! Merci <a href="https://alexsirac.com/activitypub-powered-wikis/">Alex</a>.</p>
<p>C’est important pour <a href="https://larlet.fr/david/2024/02/29/">diverses</a> <a href="https://larlet.fr/david/2024/03/07/">raisons</a>.</p>
<hr />
<blockquote lang="en">
<p>I think it’s time to admit that my hobby is buying stuff for my new hobby.</p>
<p><cite><em>Chris Hallbeck</em>, <a href="https://mastodon.social/@Chrishallbeck/112153815963114685">sur masto</a></cite></p>
</blockquote>
<p><em>Touché.</em></p>
<nav><p><a href="https://larlet.fr/david/2024/apprentissage/">#apprentissage</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a> <a href="https://larlet.fr/david/2024/web/">#web</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Inclusion
2024-03-25T12:00:00+01:00
https://larlet.fr/david/2024/03/25/
<p>Dans le cadre de <del><a href="https://en.wikipedia.org/wiki/Eating_your_own_dog_food">manger ma propre bouffe pour chien</a></del> mon <a href="https://fr.wikipedia.org/wiki/Auto%C3%A9quipement">autoéquipement</a>, je voulais vérifier si l’implémentation de <a href="https://oembed.com/">oEmbed</a> dans <a href="https://umap-project.org/fr/">uMap</a> était utilisable… et il se trouve que ce n’était pas le cas avant aujourd’hui. Il y aurait encore des pistes d’améliorations mais au moins ça affiche une carte (si vous autorisez les requêtes externes en JS) :</p>
<style type="text/css">
o-embed {
/* Size of the oembed + paragraph + margins. */
height: calc(300px + 1rem + 3rem);
}
</style>
<o-embed url="https://umap.openstreetmap.fr/fr/map/grand-tour-de-la-foret-de-ouareau_1037457">
<p>
Vous devriez voir s’afficher une carte de mon « Grand Tour de la forêt de Ouareau »,
il est probable que cela ne s’exécute pas dans un agrégateur par exemple.
</p>
</o-embed>
<script type="module">
class OEmbed extends HTMLElement {
static tagName = 'o-embed'
static register(tagName, registry) {
if(!registry && ('customElements' in globalThis)) {
registry = globalThis.customElements
}
registry?.define(tagName || this.tagName, this)
}
get url() {
return this.getAttribute('url') || ''
}
constructor() {
super()
this.attachShadow({ mode: 'open' })
}
async connectedCallback() {
let slot = document.createElement('slot')
this.shadowRoot.appendChild(slot)
const html = await this.fetchText(this.url)
const oEmbedLink = this.extractOembedLink(html)
const oEmbedJson = await this.fetchJson(oEmbedLink)
this.innerHTML = oEmbedJson.html
}
fetchText(url) {
return fetch(url)
.then((data) => data.text())
.catch(console.error.bind(this))
}
fetchJson(url) {
return fetch(url, { type: 'json' })
.then((data) => data.json())
.catch(console.error.bind(this))
}
extractOembedLink(html) {
const parser = new DOMParser()
const htmlDocument = parser.parseFromString(html, "text/html")
const oEmbedMeta = htmlDocument.documentElement.querySelector(
'link[type="application/json+oembed"]'
)
return oEmbedMeta.href
}
}
OEmbed.register()
</script>
<p>J’en ai fait un <em>web component</em> car je compte explorer / publier davantage de cartes par la suite. Je vais essayer d’ajouter des options lorsqu’elles deviendront disponibles côté uMap. Pour l’instant, il faudra vous contenter d’un <code>view-source:</code> (meilleure fonctionnalité du Web, ne l’oublions jamais).</p>
<p>Au passage, j’ai mis à jour le moteur de ce site pour pouvoir injecter des morceaux de HTML (et donc CSS/JS) sur des billets en particulier. Je m’amuse bien 🧑🔬.</p>
<p>Je compte <a href="https://larlet.fr/david/2024/03/11/#hr-109">reparler de cette carte</a>.</p>
<hr />
<p>Beaucoup moins glorieux, j’ai participé à <a href="https://forum.openstreetmap.fr/t/mise-en-production-umap-v2-1-x-compliquee-perte-des-dernieres-donnees-sauvegardees-sur-52-cartes/22336">de la perte de données</a> aujourd’hui. Nous avons eu besoin de trois cerveaux et pas mal d’heures pour comprendre ce qu’il se passait. Il était difficile de tester / imaginer / reproduire autrement que sur le serveur de production. C’est déjà pas mal d’avoir eu la possibilité de passer en lecture seule avant que ça ne touche trop de cartes.</p>
<p>J’ai appris qu’il ne fallait pas se fier à l’ordre des IDs… lorsqu’ils deviennent des UUIDs !</p>
<hr />
<blockquote lang="en">
<p>A data hoarder’s dream come true: bundle any web page into a single HTML file. You can finally replace that gazillion of open tabs with a gazillion of .html files stored somewhere on your precious little drive.</p>
<p>Unlike the conventional “Save page as”, monolith not only saves the target document, <mark>it embeds CSS, image, and JavaScript assets all at once,</mark> producing a single HTML5 document that is a joy to store and share.</p>
<p><cite><em><a href="https://github.com/Y2Z/monolith">monolith</a></em></cite></p>
</blockquote>
<p>Je me demande si je ne devrais pas avoir recours à ce type d’outil plutôt que de n’extraire que la partie de HTML qui m’intéresse pour garder <a href="https://larlet.fr/david/2024/02/03/">une copie des liens</a> que je lie par ici. C’est pour l’instant un peu fastidieux mais ça me fait aussi découvrir des choses en explorant le code des autres.</p>
<hr />
<blockquote lang="en">
<p>For this reason, I got more into <mark>“Conflict-free Resolution Data Types” (CRDTs),</mark> with the goal of understanding what they are, how they work, what are the different libraries out there, and which one would be a good fit for us, if any.</p>
<p><cite><em><a href="https://blog.notmyidea.org/a-comparison-of-javascript-crdts.html">A comparison of JavaScript CRDTs</a></em></cite></p>
</blockquote>
<p>J’apprends plein de choses à ce sujet grâce à Alexis, c’est chouette à explorer par procuration.</p>
<hr />
<blockquote lang="en">
<p>To summarize, digital information requires maintenance. It's not sufficient to make backups; the backups also need to be maintained, upgraded, transferred, and curated. Without conscientious care, the data of today will be lost forever in a few years. Even with care, it's possible through software or hardware changes to lose access forever. That shoebox of old backup CDs will be unreadable soon.</p>
<p>Which brings us back to those old photo caches. They held negatives and prints, physical objects that stored images. They needed no attention, no curating, no updating. They sat untended and forgotten for decades, but through all that time faithfully held their information, waiting for a future discoverer. As a result, we can all see what the Scott Antarctic expedition saw, and I can see what my great-grandparents looked like.</p>
<p><mark>It is a sad irony that modern technology makes it unlikely that future generations will see the images made today.</mark></p>
<p>Ask yourself whether your great-grandchildren will be able to see your photographs. If the images exist only as a digital image file, the answer is almost certainly, "No". If, however, there are physical prints, the odds improve. Those digital images need to be made real to endure. Without a print, a digital photograph has no future.</p>
<p><cite><em><a href="https://commandcenter.blogspot.com/2014/08/prints.html">command center: Prints</a></em></cite></p>
</blockquote>
<p>Très vrai <em>et</em> je me demande si le fait d’avoir des artefacts qui perdurent sur plusieurs générations sans entretien / transmission n’est pas justement un épiphénomène. Le numérique est peut-être plus proche de la transmission orale, une information qui a besoin d’être appropriée par læ récepteur·ice pour qu’elle continue à vivre.</p>
<p>Ce sera à moi d’apprendre à ma descendance comment garder en vie cette flamme numérique qui vacille à chaque coup de vent de format propriétaire.</p>
<nav><p><a href="https://larlet.fr/david/2024/dependance/">#dépendance</a> <a href="https://larlet.fr/david/2024/partage/">#partage</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Cage
2024-03-24T12:00:00+01:00
https://larlet.fr/david/2024/03/24/
<blockquote>
<p>« Serai-je toujours choisie ? dit-elle avec amertume. Serai-je toujours laissée derrière quand les cavaliers partiront, pour garder la maison pendant qu’ils se couvrent de gloire, et veiller à ce que le repas et le lit soient prêts à leur retour ? »</p>
<p>« Un jour viendra bientôt, peut-être, où nul ne rentrera, dit-il. Alors, il y aura besoin de courage sans gloire, car nul ne se souviendra des exploits accomplis dans l’ultime défense de vos foyers. Mais ces exploits n’auront pas été moins vaillants pour être restés sans éloges. »</p>
<p>Et elle répondit: « Tout cela revient à dire : vous êtes une femme, et votre place est à la maison. Mais quand les hommes seront morts au combat, dans l’honneur, vous pourrez brûler avec elle, car les hommes n’auront plus besoin d’un toit. Mais je suis de la Maison d’Eorl, et non une femme servante. Je puis monter à cheval, je sais manier l’épée ; et je ne crains ni la souffrance, ni la mort. »</p>
<p>« Que craignez-vous donc, madame ? » demanda-t-il.</p>
<p>« <mark>Une cage</mark>, dit-elle. Vivre derrière des barreaux, jusqu’à ce que l’habitude et la vieillesse s’en accommodent, et que l’espoir d’accomplir de hauts faits soit au-delà de tout souvenir et de toute envie. »</p>
<p><cite><em>Le Seigneur des Anneaux</em>, J.R.R. Tolkien, traduction de Daniel Lauzon</cite></p>
</blockquote>
<p>Il s’agit de mon extrait favori de la trilogie. <em>Éowyn forever <3.</em></p>
<hr />
<blockquote>
<p>Bref, il s’agit de modéliser le mieux possible les <strong>besoins éditoriaux</strong> pour ensuite – <em>et seulement ensuite !</em> – réunir les ingrédients techniques. (On voit souvent le contraire arriver en pratique : on plaque des solutions existantes sans nécessairement tenir compte des spécificités propres à un problème, un contexte, une communauté.) Il existe souvent plusieurs solutions possibles, plusieurs morceaux de code différents qui produisent, à première vue, un effet similaire ; <mark>sauf que les démarches ne se valent pas toutes,</mark> et c’est justement en tenant compte du contexte particulier qu’on peut trouver chaussure à son pied (ou à celui des autres).</p>
<p><cite><em><a href="https://www.lobrassard.net/carnet/2024-03-22-ecrire-coder-editorial.html">Écrire ou coder l’éditorial</a></em></cite></p>
</blockquote>
<p>CSS ⨯ Grec ancien ⨯ poésie.</p>
<hr />
<blockquote lang="en">
<p>In principle, these modern pages that burn a ton of CPU when loading could be doing pre-work that means that later interactions on the page are faster and cheaper than on the pages that do less up-front work (this is a common argument in favor of these kinds of pages), <mark>but that’s not the case for pages tested, which are slower</mark> to load initially, slower on subsequent loads, and slower after they’ve loaded.</p>
<p><cite><em><a href="https://danluu.com/slow-device/">How web bloat impacts users with slow devices</a></em></cite></p>
</blockquote>
<p>L’article déprimant du jour que devraient lire tou·tes les dévelopeur·euses avec leurs processeurs MX et leurs iPhones.</p>
<p><em>Je l’ai lu.</em></p>
<nav><p><a href="https://larlet.fr/david/2024/courage/">#courage</a> <a href="https://larlet.fr/david/2024/lecture/">#lecture</a> <a href="https://larlet.fr/david/2024/poesie/">#poésie</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Intendant
2024-03-23T12:00:00+01:00
https://larlet.fr/david/2024/03/23/
<blockquote lang="en">
<p>In <a href="https://andrewkelley.me/post/why-we-cant-have-nice-software.html">Why We Can’t Have Nice Software</a>, I point out this pattern of needless software churn in the mindless quest for profit. This is a perfect example occurring right now. Redict has already reached its peak; it does not need any more serious software development to occur. It does not need to <a href="https://redis.com/blog/the-future-of-redis/">pivot to AI</a>. It can be maintained for decades to come with minimal effort. It can continue to provide a high amount of value for a low amount of labor. That’s the entire point of software!</p>
<p>Redict does not have any profit left to offer. It no longer needs a fund-raising entity behind it anymore. <mark>It just needs a good project steward.</mark></p>
<p><cite><em><a href="https://andrewkelley.me/post/redis-renamed-to-redict.html">Redis Renamed to Redict</a></em></cite></p>
</blockquote>
<p>Je me pose beaucoup de questions sur cette notion de finitude logicielle. Et sur le fait de parfois créer ma propre nécessité, sans en avoir forcément conscience ou l’intention.</p>
<p>J’y vois un parallèle avec une frugalité que je n’arrive pas à atteindre, les deux étant probablement liés.</p>
<p>Il me reste encore tellement de choses à démêler…</p>
<hr />
<blockquote lang="en">
<p>So, yeah, I’ve been at this for a while, and this is the answer: Write CSS. Not too much. Mostly scoped.</p>
<p>I’m sure we’ll never argue about how to manage CSS ever again.</p>
<p><cite><em><a href="https://www.leereamsnyder.com/write-css-not-too-much-mostly-scoped">Write CSS. Not too much. Mostly scoped.</a></em></cite></p>
</blockquote>
<p>Ça commence par le classique « pour ou contre Tailwind » mais après il y a des choses inspirantes.</p>
<hr />
<blockquote lang="en">
<p>quick q, however: how do they get off the worm when they’ve arrived at their destination</p>
<p>keep noticing that the movie cuts before they get off, Denis my friend you can’t fool me, how do you stop riding the worm, answer us</p>
<p><cite><em><a href="https://youngvulgarian.substack.com/p/sydney-sweeney-if-youre-free-on-thursday">Sydney Sweeney, if you’re free on Thursday,</a></em></cite></p>
</blockquote>
<p>Tiens c’est vrai ça ! 🤔🤯</p>
<nav><p><a href="https://larlet.fr/david/2024/dependance/">#dépendance</a> <a href="https://larlet.fr/david/2024/psychologie/">#psychologie</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Fourchette
2024-03-21T12:00:00+01:00
https://larlet.fr/david/2024/03/21/
<p><em><a href="https://larlet.fr/david/2024/03/19/">Suite</a> des <a href="https://larlet.fr/david/2024/03/20/">aventures</a>.</em></p>
<p>Un peu <a href="https://gitlab.com/davidbgk/page-crypt-web-component#pagecrypt-web-component">plus de documentation</a> (<a href="https://davidbgk.gitlab.io/page-crypt-web-component/">la démo</a> servant aussi d’introduction). Une <a href="https://gitlab.com/davidbgk/page-crypt-web-component/-/blob/main/LICENSE">licence AGPLv3</a> qui soit <a href="https://github.com/Greenheart/pagecrypt?tab=AGPL-3.0-1-ov-file#readme">compatible avec l’implémentation principale</a> dont je m’inspire. Je ne sais pas trop si c’est un <em>fork</em> au final, c’est assez hybride comme nouvelle branche, j’ai plus l’impression d’une convergence.</p>
<p>J’ai surtout travaillé sur l’intégration du formulaire de saisie du mot de passe qui se situe maintenant dans le <em>Web Component</em>. Je voulais privilégier la simplicité d’usage, ce qui implique de prendre quelques raccourcis. J’ai beaucoup hésité à utiliser <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog">un élément <code><dialog></code></a> pour le formulaire mais j’ai préféré rester basique.</p>
<p>Il y a encore du travail mais la base me semble utilisable. C’est en essayant de l’intégrer par ailleurs que je vais me rendre compte de tous les défauts actuels.</p>
<hr />
<p><a href="https://redis.io/">Redis</a> a maintenant un <em>fork</em> : <a href="https://codeberg.org/redict/redict">redict</a> suite à un <a href="https://github.com/redis/redis-doc/commit/69921f506c02f65606498cfb4c083c6d8f91f125">changement de licence</a> qui n’est plus tout à fait open-source, du moins tel que défini par <a href="https://opensource.org/">l’OSI</a>.</p>
<hr />
<p>En ayant repris un entraînement physique assez intensif pour récupérer une forme acceptable (car <a href="https://larlet.fr/david/2024/01/09/">j’ai quand même été immobilisé</a> un moment), je me rends compte que ça prend un temps non négligeable.</p>
<p>Un peu par hasard, je commence un traitement AKiLEiNE TANO(+NOK). On va voir si ça permet de gagner du temps dans la préparation des pieds, retours dans un mois.</p>
<p>J’ai aussi réduit mon coup de fourchette car le printemps s’en vient et je vais moins avoir besoin de me protéger du froid. Même si cette sortie course du jour par -15°C en ressenti était piquante !</p>
<nav><p><a href="https://larlet.fr/david/2024/communaute/">#communauté</a> <a href="https://larlet.fr/david/2024/opensource/">#opensource</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
PageCrypt
2024-03-20T12:00:00+01:00
https://larlet.fr/david/2024/03/20/
<p><a href="https://larlet.fr/david/2024/03/19/">J’y ai passé ma soirée</a> mais j’ai un <a href="https://davidbgk.gitlab.io/page-crypt-web-component/">truc qui fonctionne pour une démo</a>. Ça ressemble beaucoup à un <em>patchwork</em> de bouts de code récupérés <a href="https://www.maxlaumeister.com/pagecrypt/">ici</a> et <a href="https://github.com/Greenheart/pagecrypt">là</a> puis <a href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">aussi là</a> pour la partie Python.</p>
<p>Il y a encore pas mal de travail — notamment pour rendre la page suffisamment accessible — mais au moins la partie crypto / boîte noire semble fonctionner à la fois du côté génération en Python et consommation en JS. C’est la partie qui me faisait un peu peur et sur laquelle j’ai un peu patiné car c’est bien au-delà de mes compétences et que je ne veux pas prendre l’initiative de trop adapter sans comprendre les enjeux niveau sécurité.</p>
<p>Le dépôt est <a href="https://gitlab.com/davidbgk/page-crypt-web-component">par ici</a>. Il faut encore que je décide si le formulaire pour le mot de passe devient un <em>web component</em> dédié et/ou un sous-composant, je ne suis pas satisfait du couplage implicite actuel. Itération, itération.</p>
<p>En bonus, il est possible d’accéder directement au contenu de la page en mettant le mot de passe en ancre de l’URL. J’ai appris au passage que ce fragment d’URL n’était pas transmis dans la requête et ne restait que dans l’historique du navigateur.</p>
<p><em>Si tu n’as pas honte de ton premier commit, tout ça… la suite demain.</em></p>
<hr />
<blockquote>
<p>Les mots ont un impact et, inconsciemment, quand vous ne les utilisez pas dans la bonne manière, vous minimisez mon handicap et donc vous faites moins d'effort que nécessaire.</p>
<p>Autre point, dit-on « personne en situation en handicap » ou « personne handicapée ? »</p>
<p>Là, encore, il y a une subtilité.</p>
<p>Je vais à un événement tech où les conférences ne sont pas sous-titrées. Je suis en situation de handicap puisque les conférences ne me sont pas du tout accessibles.</p>
<p>Je vais à un événement tech où les conférences sont toutes sous-titrées. Je ne suis pas en situation de handicap puisque les conférences me sont totalement accessibles.</p>
<p>Voici la différence. <mark>Être en situation de handicap, c’est subir la situation faute d’accessibilité.</mark></p>
<p><cite><em><a href="https://emmanuelle-aboaf.netlify.app/blog/article/n-ayez-pas-peur-des-mots">N’ayez pas peur des mots</a></em></cite></p>
</blockquote>
<p>Cette page ne contient pas le contenu du HTML qui s’affiche et ça me rend triste car j’en apprécie le contenu qui m’apprend des choses / me fait réfléchir.</p>
<p>Un autre angle de l’accessibilité ?</p>
<hr />
<blockquote lang="en">
<p>So don’t publish for the world.</p>
<p>When I write something here on my website, I’m not thinking about the world reading it. That would be paralyzing. I do sometimes imagine that one person is reading it; someone just like me who hasn’t yet had this particular thought, or come up with that particular idea.</p>
<p>I’m writing for myself. <mark>I write to figure out what I think.</mark> I also publish mostly for myself—a public archive for future me. But if what I publish just happens to connect with one other person, I’m glad.</p>
<p><cite><em><a href="https://adactio.com/journal/20996">What the world needs</a></em></cite></p>
</blockquote>
<hr />
<blockquote lang="en">
<p>My goal, for this digital place I’m creating, is to make you go away. And that’s not because I want to be left alone but because <mark>I hope to help you discover new digital places to explore.</mark> If I see you again, it’s because you decided to come back, and not because you got lost and trapped inside the digital walls I erected.</p>
<p><cite><em><a href="https://manuelmoreale.com/digital-walled-gardens">Digital walled gardens</a></em></cite></p>
</blockquote>
<p>🌱</p>
<nav><p><a href="https://larlet.fr/david/2024/laboratoire/">#laboratoire</a> <a href="https://larlet.fr/david/2024/opensource/">#opensource</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Excitation
2024-03-19T12:00:00+01:00
https://larlet.fr/david/2024/03/19/
<p>Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute modestie).</p>
<p>Idée du jour : faire un <em>web component</em> qui s’intitulerait <code><page-crypt></code> en s’inspirant grandement de <a href="https://github.com/MaxLaumeister/PageCrypt/">PageCrypt</a> (et de sa <a href="https://github.com/Greenheart/pagecrypt">version à jour</a>). La génération de la page chiffrée pourrait <a href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">se faire en Python</a>.</p>
<p>Cela essayerait de résoudre une problématique d’accès à du contenu privé sur des pages pré-générées de manière statique. Il est probable que j’en ai besoin sous peu afin d’afficher une progression personnalisée d’informations sensibles dans un contexte pro, ce qui me motive d’autant plus.</p>
<p>Je découvre au passage qu’il n’est pas trivial de <a href="https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem">convertir de l’unicode en base64 via JS</a>.</p>
<p>Note : il existe aussi <a href="https://github.com/robinmoisson/staticrypt">StatiCrypt</a>.</p>
<hr />
<blockquote lang="en">
<p>If majority is always right – let’s eat shit… millions of flies can’t be wrong.</p>
<p><cite><em>Statek</em>, Waldemar Łysiak, 1994</cite></p>
</blockquote>
<p>Cette citation aura fait ma journée.</p>
<hr />
<p>Je suis frustré par les capacités d’export des données de <a href="https://larlet.fr/david/2024/03/14/">la montre</a>. En inspectant, je pourrais récupérer les JSON qui passent avec Playwright mais c’est un peu la face nord. <em>Ça me fait glousser qu’un tel site utilise Vite.</em></p>
<p>Il faut que je teste <a href="https://github.com/xballoy/coros-api">coros-api</a> (TypeScript) et/ou <a href="https://github.com/futoshita/Coros-Training-Hub-Exporter">Coros-Training-Hub-Exporter</a> (Java), je ne suis pas le seul à vouloir récupérer ces données.</p>
<p>Aussi, il y a des données qui ne sont pas exposées par le TrainingHub mais auxquelles on semble avoir accès <a href="https://tryterra.co/integrations/coros">via une API tierce</a> (et très dispendieuse !). Étrange et décevant…</p>
<nav><p><a href="https://larlet.fr/david/2024/apprentissage/">#apprentissage</a> <a href="https://larlet.fr/david/2024/enthousiasme/">#enthousiasme</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Casquettes
2024-03-18T12:00:00+01:00
https://larlet.fr/david/2024/03/18/
<p>L’impression de porter beaucoup de casquettes dans la même journée en ce moment. Genre ces dernières années en fait. Je ne sais pas encore si ça mène à l’épuisement ou si c’est ce qui me permet de ne pas m’ennuyer.</p>
<p>Je vais bientôt pouvoir ajouter « nocoder » à mon CV. Petite joie technique (?) de la journée, on a réussi à connecter une feuille AiTable à la banque. On place une date dans une cellule et ça programme un virement de l’autre côté. C’était marrant de le faire en binôme.</p>
<hr />
<blockquote lang="en">
<p>When you’re designing a piece of software, the single most important thing to design for is understandability. Security, performance, and correctness are all important, but <mark>they come after understandability.</mark></p>
<p><cite><em><a href="https://ntietz.com/blog/the-most-important-goal-in-designing-software-is-understandability/">The most important goal in designing software is understandability</a></em></cite></p>
</blockquote>
<hr />
<blockquote lang="en">
<p>Open Source is rewarding- but it can also be exhausting.</p>
<p>The linking project’s code is provided as-is, and is not actively maintained.</p>
<p><cite><em><a href="https://unmaintained.tech/">No Maintenance Intended</a></em></cite></p>
</blockquote>
<nav><p><a href="https://larlet.fr/david/2024/adaptation/">#adaptation</a> <a href="https://larlet.fr/david/2024/addiction/">#addiction</a> <a href="https://larlet.fr/david/2024/evolution/">#évolution</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Descriptions
2024-03-16T12:00:00+01:00
https://larlet.fr/david/2024/03/16/
<blockquote>
<p>Le crépuscule était tombé lorsqu’ils partirent enfin : rampant par-dessus le bord ouest du vallon, ils passèrent comme des fantômes dans le pays accidenté en bordure de la route. La Lune n’était plus qu’à trois nuits de son plein, mais elle ne devait pas franchir les Montagnes avant minuit ou presque, et le début de leur voyage se fit dans la plus grande obscurité. […]</p>
<p><mark>Enfin, quand la nuit se fit vieille et que la fatigue les eut déjà rattrapés</mark> […]</p>
<p>Dès la tombée de la nuit, la terre s’étant évanouie en un gris informe, ils se remirent en route. […]</p>
<p>Le jour était en train d’éclore, et ils virent que les Montagnes étaient à présent beaucoup plus distantes, fuyant vers l’est en une longue courbe qui se perdait à l’horizon. […]</p>
<p>La lumière croissante leur révéla une terre déjà moins aride et moins ravagée. Les Montagnes se dressaient encore de façon menaçante sur leur gauche, mais la route du Sud était visible tout près d’eux, et elle s’éloignait à présent des racines noires des collines, obliquant vers l’ouest. […]</p>
<p><cite><em>Le Seigneur des Anneaux</em>, J.R.R. Tolkien, traduction de Daniel Lauzon</cite></p>
</blockquote>
<p>Je ne sais pas si j’y suis plus sensible à <a href="https://larlet.fr/david/2024/02/06/">cette relecture</a> ou s’il s’agit d’améliorations avec la nouvelle traduction mais je remarque des tournures de phrases qui m’inspirent pour raconter des aventures en nature. Le sujet devenant l’environnement pour traduire les contraintes qu’il impose.</p>
<p>Puisqu’il faut s’éloigner du style de <a href="https://comptoir.org/2024/03/11/sylvain-tesson-les-vers-de-la-reaction/">Sylvain Tesson</a>…</p>
<nav><p><a href="https://larlet.fr/david/2024/aventure/">#aventure</a> <a href="https://larlet.fr/david/2024/ecriture/">#écriture</a> <a href="https://larlet.fr/david/2024/lecture/">#lecture</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Montre 2
2024-03-14T12:00:00+01:00
https://larlet.fr/david/2024/03/14/
<p>J’ai reçu un <a href="https://larlet.fr/david/2024/03/02/">nouveau jouet</a> aujourd’hui. Alors je me suis amusé. Il me reste beaucoup de données et fonctionnalités à explorer.</p>
<p>J’ai finalement opté pour la version non-Pro afin de privilégier un format qui me convient mieux (taille / poids), j’ai pu tester en magasin les deux auparavant.</p>
<p>Il faut que j’apprenne à ne pas courir <em>contre</em> mais <em>avec</em> la montre. J’ai trop tendance à pousser alors qu’elle sait bien à mon poignet que mon cœur ne va pas suivre.</p>
<p>Il y a du travail à faire pour transformer un jugement en allié.</p>
<blockquote>
<p>Tu peux parler fort, exhiber ton savoir, assener tes arguments, brandir ta culture…<br />
… mais la conversation est à sens unique et totalement stérile.<br />
Au terme de l’échange tu demeures exactement le même, tu n’as pas évolué d’un pouce.</p>
<p>La rencontre n’a pas eu lieu.</p>
<p>Ou bien, tu peux laisser l’autre s’exprimer, l’écouter. Et alors te hisser sur la marche qu’il érige puis en poser une à ton tour.<br />
Vois ta balle de tennis comme le lien qui te rattache aux autres. Cultive-le tant que tu peux.<br />
Ne cherche plus à lutter contre les autres pour être meilleur, Max, mais deviens meilleur grâce à eux.</p>
<p>Le tennis est un art. L’art de l’échange.</p>
<p><cite><em>Max Winson</em>, Jérémie Moreau</cite></p>
</blockquote>
<nav><p><a href="https://larlet.fr/david/2024/deception/">#déception</a> <a href="https://larlet.fr/david/2024/enthousiasme/">#enthousiasme</a> <a href="https://larlet.fr/david/2024/sport/">#sport</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Sérendipité
2024-03-13T12:00:00+01:00
https://larlet.fr/david/2024/03/13/
<blockquote lang="en">
<p>Discovering things via links is way more fun than most algorithmically-driven discovery — in my humble opinion.</p>
<p>As an analogy, it’s kind of like going on vacation to a new place and staying/living amongst the locals vs. staying at a manicured 5-star hotel that gives you no reason to leave. <mark>Can you really say you visited the location if you never left the hotel?</mark></p>
<p><cite><em><a href="https://blog.jim-nielsen.com/2024/following-links/">Following Links - Jim Nielsen’s Blog</a></em></cite></p>
</blockquote>
<p>Je suis toujours étonné qu’il n’y ait pas des navigateurs qui affichent la toile de nos navigations de manière plus ou moins artistiques. On pourrait avoir des topologies de navigations, potentiellement quotidiennes, des points de comparaison avec d’autres personnes, une représentation de la curiosité, de l’enfermement dans des silos, etc.</p>
<blockquote lang="en">
<p>A surprising number of other features can be expressed in terms of links.</p>
<p><cite><em><a href="https://subconscious.substack.com/p/all-you-need-is-links">All you need is links</a></em></cite></p>
</blockquote>
<hr />
<blockquote lang="en">
<p><code>printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'</code></p>
<p><cite><em><a href="https://notes.billmill.org/programming/bash/Hyperlink_escape_codes.html">Hyperlink escape codes</a></em></cite></p>
</blockquote>
<p>Qui me fait découvre <a href="https://github.com/nedbat/watchgha">watchgha</a>, bien pratique pour avoir un accès rapide aux résultats de l’intégration continue.</p>
<figure>
<a href="https://larlet.fr/static/david/2024/2024-03-13-watchgha.png"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-03-13-watchgha.png"
width="2422" height="192"
srcset="/static/david/2024/2024-03-13-watchgha.png 2422w, /static/david/2024/2024-03-13-watchgha.png 660w, /static/david/2024/2024-03-13-watchgha.png 990w, /static/david/2024/2024-03-13-watchgha.png 1320w"
sizes="min(100vw, calc(100vh * 2422 / 192))"
loading="lazy"
decoding="async"
alt="Capture d’écran du résultat de la commande git runs avec l’alias git qui pointe vers watchgha.">
</a>
<figcaption>Ça passe 🎉 (je vais essayer de faire une démo d’oEmbed par ici à un moment).</figcaption>
</figure>
<hr />
<blockquote>
<p>Le constat est simple : je trouve que le Web ne va pas fort en ce moment, et je voulais à ma petite échelle montrer un peu l’exemple.</p>
<p><cite><em><a href="https://vincent-valentin.name/articles/motivation-s">Motivation(s) chez Vincent Valentin.</a></em></cite></p>
</blockquote>
<p>Très chouettes publications cette dernière semaine en tout cas <3.</p>
<hr />
<p>Rétropédalage sur <a href="https://larlet.fr/david/2024/03/12/">le surlignage</a>. Beaucoup trop de retours qui trouvent cela davantage distrayant qu’utile. Pour l’instant, j’ai gardé la logique mais sans animation. Je me demande si je vais en faire un <em>opt-in</em> à un moment.</p>
<hr />
<blockquote>
<p>Puisque la demi-mesure ne fait pas partie de mon vocabulaire, j’ai tenu à travailler au plus proche des techniques médiévales. <mark>J’ai ainsi appris à encrer à la plume, dorer à la feuille d’or pur, peindre aux pigments en poudre et relier au cuir de chèvre.</mark> Je m’y suis dévouée corps et âme, dédiant le moindre de mon temps libre à la concrétisation de ce projet qui devait se mener dans le plus grand secret. Je m’attelais à l’ouvrage à la moindre opportunité, me levant parfois à l’aube pour grappiller une heure de calligraphie avant d’aller bosser ou prolongeant des soirées jusqu’au petit matin lorsque K travaillait de nuit.</p>
<p>Au total j’ai passé plus de 230 heures sur ce projet</p>
<p><cite><em><a href="https://www.hypothermia.fr/2024/03/chiroto-t-datoca/">Chiroto T. Datoca</a></em></cite></p>
</blockquote>
<p>Ce moment où tu te rends compte que tu n’es pas perfectionniste en fait 🤯. Chapeau bas l’artiste.</p>
<hr />
<blockquote lang="en">
<p>Rust-like error handling in Python, with type-safety in mind.</p>
<p><cite><em><a href="https://github.com/alexandermalyga/poltergeist">poltergeist</a></em></cite></p>
</blockquote>
<p>J’ai très souvent retrouvé le besoin de ce <em>pattern</em> dans mes projets.</p>
<hr />
<p>Sortie de la <a href="https://pypi.org/project/pressoir-cli/2.0.0/">version 2.0 de pressoir-cli</a> (oui, <a href="https://larlet.fr/david/2024/02/16/">c’est ma période</a>). L’une des prochaines étapes sera de générer sa propre documentation en l’utilisant. Ça peut paraitre stupide mais c’est trop <em>meta</em> pour ne pas le faire 😇.</p>
<hr />
<blockquote>
<p>Nginx de part sa robustesse, sa structure minimaliste et son fonctionnement événementiel asynchrone est un serveur web plébiscité pour ses performances. Mais ce n’est pas parce qu’on a une Porsche qu’il ne faut pas tenter de la rendre encore plus puissante !</p>
<p><cite><em><a href="https://buzut.net/optimiser-nginx/">Optimisez Nginx pour de meilleurs performances</a></em></cite></p>
</blockquote>
<p>Pour lecture ultérieure.</p>
<hr />
<blockquote>
<p><code>font-size: calc(1rem + 0.25vw);</code></p>
<p><cite><em><a href="https://jameshfisher.com/2024/03/12/a-formula-for-responsive-font-size/">A formula for responsive font-size</a></em></cite></p>
</blockquote>
<p>Moins poussé que le <a href="https://utopia.fyi/type/calculator?c=320,18,1.2,1240,20,1.25,5,2,&s=0.75%7C0.5%7C0.25,1.5%7C2%7C3%7C4%7C6,s-l&g=s,l,xl,12">Fluid type scale calculator</a> mais dans un contexte plus minimaliste / simple ça fait déjà le taf.</p>
<hr />
<blockquote lang="en">
<p>To enable such progress, <strong>the Web Consortium too has evolved, always taking a people-first approach:</strong> the Web must continue to serve humanity. The first such inflection point was the creation of the patent policy in 2003 which assures that specifications can be implemented on a Royalty-Free basis and used at no cost, thus boosting adoption and usage. Another is the creation in 2011 of W3C Community and Business Groups which enable everyone –not just W3C Members– to participate in the development of the Web or its technologies. Our most recent inflection point was <mark>re-launching the Consortium in 2023 as a public-interest non-profit organization</mark> to work for the good of the public.</p>
<p><cite><em><a href="https://www.w3.org/blog/2024/from-a-humble-beginning-35-years-ago-the-web-is-now-central-to-the-daily-lives-of-billions/">From a humble beginning 35 years ago, the Web is now central to the daily lives of billions</a></em></cite></p>
</blockquote>
<p>35 ans de liens. Merci Tim <em>et al.</em> d’avoir permis cela.</p>
<nav><p><a href="https://larlet.fr/david/2024/liens/">#liens</a> <a href="https://larlet.fr/david/2024/partage/">#partage</a> <a href="https://larlet.fr/david/2024/web/">#web</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Surligner
2024-03-12T12:00:00+01:00
https://larlet.fr/david/2024/03/12/
<blockquote lang="en">
<p>A small JavaScript library <mark>to create and animate annotations on a web page</mark></p>
<p>Rough Notation uses RoughJS to create a hand-drawn look and feel. Elements can be annotated in a number of different styles. Animation duration and delay can be configured, or just turned off.</p>
<p>Rough Notation is 3.8kb in size when gzipped, and the code is available on GitHub.</p>
<p><cite><em><a href="https://roughnotation.com/">Rough Notation</a></em></cite></p>
</blockquote>
<p>J’utilise cette façon de mettre en avant des fragments de citations <a href="https://larlet.fr/david/2020/02/21/#surlignage">depuis un petit moment</a> et en passant <a href="https://vanschklift.com/blog/post/2020/06/19/Time-for-a-refresh%21">par chez Biou</a> aujourd’hui, j’ai trouvé l’effet bien sympathique. Je ne l’applique pour l’instant(?) que sur la balise <code><mark></code> (relativement inoffensif si ça casse), en respectant <code>prefers-reduced-motion</code> et en animant que lorsque la partie surlignée devient visible grâce à <a href="https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver">IntersectionObserver</a>.</p>
<p>Cela peut se révéler être distrayant pour certaines personnes car ça bouge à un endroit éloigné du point de lecture (merci @maiwann), invisible pour d’autres qui chargent les onglets sans être dessus (merci @lamecarlate). Il s’agit d’une famille d’animations pas trop invasives, encore moins essentielles, qui peuvent se révéler être de fausses bonnes idées. Je vais tester pour un temps, toujours dans cette recherche d’aller <a href="https://larlet.fr/david/2024/03/09/#hr-106">vers un peu plus de fantaisie</a>.</p>
<p>N’hésitez pas à me faire des retours.</p>
<p><mark>Plus tard dans la journée</mark>, Nicolas Hoizey m’indique qu’il sera possible d’avoir un <a href="https://frontendmasters.com/blog/highlight-text-when-a-user-scrolls-down-to-that-piece-of-text/">comportement approchant en CSS</a> <a href="https://caniuse.com/mdn-css_properties_animation-range">prochainement</a>.</p>
<p><mark>Le lendemain</mark>, <a href="https://larlet.fr/david/2024/03/13/#hr-114">j’ai désactivé l’animation</a> suite à plusieurs retours de lecteur·ices.</p>
<hr />
<blockquote>
<p>Ce qu’Hashbang propose est de créer un registrar sous forme de SCIC avec en plus un processus participatif pour définir les services et leurs tarifs. Le premier service proposé sera certainement le nom de domaine, mais personne ne peut actuellement définir quel tarif sera proposé. <mark>Ce sera issu d’un processus participatif en fonction des participant·e·s au départ.</mark></p>
<p>Chez Hashbang, nous portons un regard attentif aux enjeux environnementaux et nous proposons donc de mesurer et limiter l’impact environnemental des activités du registrar.</p>
<p>Nous souhaitons également s’assurer qu’il n’y ait pas de discriminations et que les personnes minorisé·e·s puissent s’emparer de cet espace. Il faut donc s’attendre à ce qu’il y ait des événements en mixité choisie et du langage inclusif.</p>
<p><cite><em><a href="https://hashbang.coop/blog/appel-a-interet-pour-un-bureau-denregistrement-cooperatif/">Appel à intérêt pour un bureau d’enregistrement coopératif</a></em></cite></p>
</blockquote>
<p>Superbe initiative, coopératives pour tou·tes !</p>
<hr />
<blockquote lang="en">
<p>I know a lot of people hate anti-ad-block popups, but to me they are perfect.</p>
<p>In presenting those popups, those websites demonstrate that they realize the lack of control they have. They show us so plainly that they are unable to make money from us, which leaves them no option but to grovel and beg us to turn off ad-blocking.[…]</p>
<p>When we use web browsers, <strong>we</strong> are in more control than <strong>they</strong> are. <mark>That’s simply not the case when we’re inside an app they get to control.</mark></p>
<p><cite><em><a href="https://lmnt.me/blog/anti-ad-block.html">Anti-Ad-Block</a></em></cite></p>
</blockquote>
<p>Ma configuration à ce sujet est assez extrême et il n’est pas rare (surtout sur les boutiques !) que je doive m’y reprendre à pas mal de fois pour débloquer les <a href="https://tonsky.me/blog/js-bloat/">megabytes de JavaScript</a> à télécharger qui sont pertinents, ou plutôt nécessaires aux personnes ayant développé ces sites. Car pour ma part, je n’aurais besoin que de HTML dans 99% des cas…</p>
<p>…dit-il en venant d’ajouter 13Ko de JS 😬.</p>
<nav><p><a href="https://larlet.fr/david/2024/partage/">#partage</a> <a href="https://larlet.fr/david/2024/technique/">#technique</a> <a href="https://larlet.fr/david/2024/web/">#web</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
LoginWall
2024-03-11T12:00:00+01:00
https://larlet.fr/david/2024/03/11/
<blockquote lang="en">
<p>I don’t have a LinkedIn account. I don’t like the idea that we both <strong>need</strong> an account. I need one to <strong>post</strong> my résumé, and you need one to <strong>view</strong> it. How does that benefit me to have my résumé behind a login wall? It doesn’t. It benefits LinkedIn. Now, my résumé is on my website, displayed more beautifully than LinkedIn lets me.</p>
<p>[…]</p>
<p>Every new thing that I add to my website works to regain my internet presence <strong>away</strong> from companies that <strong>do not</strong> have my interests at heart. And I will avoid future problems like a company deciding to put login walls or paywalls in front of my content. Or putting Nazi content beside mine. <mark>I can avoid all of that by self-publishing.</mark></p>
<p><cite><em><a href="https://lmnt.me/blog/web-independence.html">Web Independence</a></em></cite></p>
</blockquote>
<p>Le problème de sites comme LinkedIn c’est qu’il est difficile de se rendre compte de leur inaccessibilité lorsqu’on a un compte. Ou alors les personnes mettent leurs CV en signature de courriel en sachant que je ne vais pas pouvoir les consulter ?</p>
<p>Avec TwiX c’est encore pire car ça varie d’un jour sur l’autre. Parfois le <em>tweet</em> est accessible mais seul, parfois il faut un compte, parfois on accède à une page avec la liste des dernières publications de la personne mais ordonnées par « popularité », ça sent bon la girouette qui est à la tête de l’entreprise.</p>
<p>Et je ne parle même pas de ce qui se passe sur Facebook.</p>
<hr />
<blockquote lang="en">
<p>What I try to keep in mind is the <a href="https://en.wikipedia.org/wiki/Curb_cut_effect">curb cut effect</a>, also known as the « i want subtitles on my favourite show because even though my ears are just fine, i like to eat crisps while watching » rule. In many cases, adding accessibility to your website makes it nicer for everyone, not only for the people who needed these changes. (Corollary: everything that makes you squint is giving a giant migraine to someone else out there.)</p>
<p><cite><em><a href="https://alexsirac.com/accessibility-notes/">Accessibility notes from your headache-prone friend</a></em></cite></p>
</blockquote>
<p>Je ne connaissais pas le nom de cet effet, j’espère le retenir en le notant ici. Merci Alex !</p>
<p><mark>Lu le lendemain</mark> <a href="https://toot.cat/@nickcolley/112073548430975046">sur masto</a> :</p>
<blockquote lang="en">
<p>It is true that meeting the needs of many disabled people makes services better for non-disabled people.</p>
<p>It is wrong though to say that all accessibility efforts benefit non-disabled people.</p>
<p>They don’t, meeting some access needs <em>only</em> benefit some disabled people.</p>
<p>It is tiring hearing "you’ll be disabled in the future" when there’s such a broad experience of disability that many people won’t experience due to age.</p>
<p>We must create strategies where we aim to humanise and value disabled people inherently and not have to lean so hard on non-disabled people’s self interest.</p>
</blockquote>
<hr />
<figure>
<a href="https://larlet.fr/static/david/2024/2024-03-11-parcours-ouareau.png"
title="Cliquer pour une version haute résolution">
<img
src="https://larlet.fr/static/david/2024/2024-03-11-parcours-ouareau.png"
width="1294" height="1108"
srcset="/static/david/2024/2024-03-11-parcours-ouareau.png 1294w, /static/david/2024/2024-03-11-parcours-ouareau.png 660w, /static/david/2024/2024-03-11-parcours-ouareau.png 990w, /static/david/2024/2024-03-11-parcours-ouareau.png 1320w"
sizes="min(100vw, calc(100vh * 1294 / 1108))"
loading="lazy"
decoding="async"
alt="Capture d’écran d’un parcours sur 4 jours avec une soixantaine de kilomètres.">
</a>
<figcaption>Si ma cheville le permet.</figcaption>
</figure>
<p>J’ai joué avec le <a href="https://www.komoot.com/fr-fr/plan">Planificateur d’itinéraire de Komoot</a> hier, je ne m’étais jamais demandé vraiment quelles distances est-ce que je pouvais parcourir dans la forêt. J’aime bien le fait d’avoir l’option de suivre les chemins connus. À voir si j’arrive à faire ce grand tour en rando rapide / légère. Je connais déjà 80% du parcours et je sais dès à présent que la deuxième journée serait bien longue. L’avantage d’être en terrain connu, c’est de connaître les endroits où je peux couper en cas de pépin physique.</p>
<p>J’ai du matériel très léger mais je me rends compte que la nourriture est déjà un défi sur 4 jours pour garder un sac qui permette de courir. Je m’entraîne en ce moment en faisant des aller-retours à la bibliothèque avec 5kg de livres sur le dos. On verra bien si c’est utile… au pire j’aurais découvert des BD :-).</p>
<nav><p><a href="https://larlet.fr/david/2024/decentralisation/">#décentralisation</a> <a href="https://larlet.fr/david/2024/dependance/">#dépendance</a> <a href="https://larlet.fr/david/2024/web/">#web</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>
Dune
2024-03-10T12:00:00+01:00
https://larlet.fr/david/2024/03/10/
<p>Je crois bien n’être allé que 3 fois dans une salle de cinéma ces 10 dernières années. Et puis l’occasion s’est présentée, sans prévenir, aujourd’hui. J’avais <a href="https://larlet.fr/david/2021/10/18/">quelques retenues sur la première partie</a> mais j’attendais quand même avec impatience la suite. Et j’avais réussi à ne pas trop regarder les bandes annonces, ni les critiques.</p>
<p><em>Note : ça va forcément divulgâcher un peu dans la suite.</em></p>
<p>L’adaptation est bonne, le défi était de taille et — en dépit des quelques ajustements qui piquent un peu le <em>fan</em> que je suis (surtout vers la fin !) — la scénarisation est cohérente. Ce qui n’était pas une mince affaire car encore une fois la temporalité n’est pas évidente et rendre l’évolution des personnages visible avec tout ce qui est censé se passer dans leur tête requiert des redéfinitions et des raccourcis.</p>
<p>Mon erreur a probablement été de choisir de l’IMAX alors que c’était Hans “<a href="https://www.20k.org/episodes/boojstrikesback">booj</a>” Zimmer aux platines. Autant dire que le siège a vibré la moitié du film ! Au-delà de la bande originale, le son a vraiment été travaillé mais je crois que c’était un peu trop pour mes vieilles oreilles plus vraiment adaptées à de tels volumes. Il y a des moments où j’ai même trouvé que ça altérait la compréhension des dialogues… j’avais un peu l’impression de me noyer dans la volonté im·mer·sive alors que l’on est en plein désert. Je doute de retourner dans une salle de si tôt.</p>
<p>Tout ce qui tourne autour des vers est bien fait, j’avais toujours eu du mal à me faire ma propre représentation des tailles et interactions à la lecture et là ça me semble être respecté / réaliste. Idem pour les <em>Sietchs</em>, c’est fidèle à la projection mentale que je pouvais m’en faire, même si l’on n’en voit pas grand chose au final. J’ai particulièrement apprécié le choix de faire une <em>Chani</em> forte qui est davantage consciente des enjeux et des répercutions. La jalousie aurait mérité d’être plus subtile, la différence entre la femme (politique) de Paul et sa compagne (amoureuse) est vraiment explicite dans le livre.</p>
<p>Paul Muad’dib perd un peu trop d’eau à mon goût au cours de nombreuses scènes. Il était probablement plus difficile de transmettre des émotions sèches (?).</p>
<p>Pour finir sur une note positive, l’image bien sûr. C’est à la limite du trop <em>et</em> c’est magnifique au niveau des différents tableaux qui s’enchaînent avec leurs propres couleurs, cinématiques et points de vues. On sent le travail de recherche sans qu’il ne devienne complètement distrayant. J’y serai d’autant plus attentif lors d’un second visionnage, chez moi, en choisissant le volume sonore.</p>
<p>Je ne vois pas comment est-ce qu’il ne pourrait pas y avoir une troisième partie. À voir comment / si ça raccroche les wagons des livres. J’aurais presque envie que ça explore sa propre branche. <em>Dune multi·vers·e !</em></p>
<nav><p><a href="https://larlet.fr/david/2024/adaptation/">#adaptation</a> <a href="https://larlet.fr/david/2024/cinema/">#cinéma</a> <a href="https://larlet.fr/david/2024/lecture/">#lecture</a></p></nav><hr/><p><a href="mailto:david@larlet.fr">Réagir ?</a></p>