Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 69KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933
  1. <!DOCTYPE html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>
  13. Étiquette #sport
  14. — David Larlet</title>
  15. <script>
  16. function toggleTheme(themeName) {
  17. document.documentElement.classList.toggle(
  18. 'forced-dark',
  19. themeName === 'dark'
  20. )
  21. document.documentElement.classList.toggle(
  22. 'forced-light',
  23. themeName === 'light'
  24. )
  25. }
  26. const selectedTheme = localStorage.getItem('theme')
  27. if (selectedTheme !== 'undefined') {
  28. toggleTheme(selectedTheme)
  29. }
  30. </script>
  31. <!-- Documented, feel free to shoot an email. -->
  32. <link rel="stylesheet" href="/static/david/css/style_2024-03-09.css">
  33. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  34. <link rel="preload"
  35. href="/static/david/css/fonts/century_supra_ot_a_regular.woff2"
  36. as="font"
  37. type="font/woff2"
  38. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  39. crossorigin>
  40. <link rel="preload"
  41. href="/static/david/css/fonts/century_supra_ot_a_bold.woff2"
  42. as="font"
  43. type="font/woff2"
  44. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  45. crossorigin>
  46. <link rel="preload"
  47. href="/static/david/css/fonts/century_supra_ot_a_italic.woff2"
  48. as="font"
  49. type="font/woff2"
  50. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  51. crossorigin>
  52. <link rel="preload"
  53. href="/static/david/css/fonts/century_supra_ot_b_regular.woff2"
  54. as="font"
  55. type="font/woff2"
  56. media="(prefers-color-scheme: dark)"
  57. crossorigin>
  58. <link rel="preload"
  59. href="/static/david/css/fonts/century_supra_ot_b_bold.woff2"
  60. as="font"
  61. type="font/woff2"
  62. media="(prefers-color-scheme: dark)"
  63. crossorigin>
  64. <link rel="preload"
  65. href="/static/david/css/fonts/century_supra_ot_b_italic.woff2"
  66. as="font"
  67. type="font/woff2"
  68. media="(prefers-color-scheme: dark)"
  69. crossorigin>
  70. <meta name="description" content="Publications relatives au tag #sport">
  71. <!-- That good ol' feed, subscribe :). -->
  72. <link rel="alternate"
  73. type="application/atom+xml"
  74. title="Feed"
  75. href="/david/log/">
  76. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  77. <link rel="apple-touch-icon"
  78. sizes="180x180"
  79. href="/static/david/icons2/apple-touch-icon.png">
  80. <link rel="icon"
  81. type="image/png"
  82. sizes="32x32"
  83. href="/static/david/icons2/favicon-32x32.png">
  84. <link rel="icon"
  85. type="image/png"
  86. sizes="16x16"
  87. href="/static/david/icons2/favicon-16x16.png">
  88. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  89. <link rel="mask-icon"
  90. href="/static/david/icons2/safari-pinned-tab.svg"
  91. color="#07486c">
  92. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  93. <meta name="msapplication-TileColor" content="#f7f7f7">
  94. <meta name="msapplication-config"
  95. content="/static/david/icons2/browserconfig.xml">
  96. <meta name="theme-color"
  97. content="#f7f7f7"
  98. media="(prefers-color-scheme: light)">
  99. <meta name="theme-color"
  100. content="#272727"
  101. media="(prefers-color-scheme: dark)">
  102. <!-- Is that even respected? Retrospectively? What a shAItshow…
  103. https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
  104. <meta name="robots" content="noai, noimageai">
  105. <style type="text/css">
  106. details[open] summary {
  107. display: none;
  108. }
  109. </style>
  110. <body data-instant-intensity="viewport-all">
  111. <article>
  112. <header>
  113. <hgroup>
  114. <h1>#sport</h1>
  115. <p>Publications relatives à cette étiquette</p>
  116. </hgroup>
  117. </header>
  118. <nav>
  119. <p>
  120. <a href="/david/" title="Aller à l’accueil">
  121. Accueil</a>
  122. <a rel="tags"
  123. href="/david/2024/#tags"
  124. title="Liste de toutes les étiquettes">
  125. Étiquettes</a>
  126. <a href="/david/recherche/" title="Aller à la page de recherche" rel="search" data-no-instant>Recherche</a>
  127. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  128. </p>
  129. </nav>
  130. <h2>
  131. <a href="/david/2024/05/05/" title="Lien permanent vers cet article">Jour 2</a> <time datetime="2024-05-05">5 mai 2024</time>
  132. </h2>
  133. <blockquote>
  134. <p>Un ultratrail est un concours de bouffe, itinérant.</p>
  135. <p><cite>Kilian Jornet, de&nbsp;mémoire.</cite></p>
  136. </blockquote>
  137. <p>Réveil à 5h-<em>ish</em>, départ à 6h-<em>ish</em>. Cette journée va être une course contre la météo. De la pluie en continu est annoncée à partir de 9h et je veux avoir dépassé la section avec les ponts en bois et les rochers avant cela car ça devient rapidement glissant. Je trottine tout ce que je peux tout en sachant que les dénivelés sont en fin de parcours. Cruels choix entre les craintes et les&nbsp;douleurs.</p>
  138. <p>Le sac fait un bon kilo de moins, ce qui aide pas mal. J’ai appris à mieux le charger aussi et à utiliser les compartiments à bon escient pour éviter de mouiller mes affaires en allant chercher de la nourriture par exemple. Beaucoup d’apprentissages pendant cette sortie d’initiation au <em>fastpacking</em> (pour lâcher les gros&nbsp;mots).</p>
  139. <p>Chaque partie de la chaine musculaire de la jambe se fait connaitre tour à tour, pour l’instant les maillons tiennent le coup et je réussis à passer le <em>crux</em> presque dans les temps. Il y a un jeu dangereux à être en équilibre sur cette limite. Je sens bien que j’ai encore une marge de progression physique non négligeable à acquérir pour aller plus&nbsp;loin.</p>
  140. <p>La suite se fait intégralement sous la pluie et lorsque le vent s’en mêle c’est la douche assurée en raison des branches gorgées d’eau. Je choisis l’option de rester en t-shirt à manches longues plutôt que de mettre une protection étanche, il y a suffisamment de montées pour éviter l’hypothermie et ça permet de sécher en continu. Encore une journée assez intense pour les pieds. Entre l’humidité et les frottements, il faut que je trouve de meilleures options. Le <a href="/david/2024/03/21/#hr-129">traitement</a> que j’ai entamé il y a plus d’un mois n’a pas l’air très efficace (ou alors ce serait pire&nbsp;sans&#8239;?).</p>
  141. <p>J’ai amené pas mal de personnes dans cette forêt, aussi il y a des passages qui ont maintenant une valeur sentimentale. Je me rends compte que cela m’aide pour passer certaines parties et garder la lucidité nécessaire en fin de parcours. J’ai du mal à décrire à quel point le profil et les efforts sont différents d’une randonnée dans les Alpes françaises par exemple. Il y a notamment une charge mentale constante relative au terrain qui peut vite être fatigante. C’est aussi ce qui rend si difficile une progression&nbsp;rapide.</p>
  142. <p>J’arrive encore à trottiner dans le vingtième et dernier kilomètre de cette sortie. Ça n’a plus rien d’aérien (doux euphémisme) mais ça augure de bonnes choses pour la suite de mes projets. Peut-être une autre <a data-link-domain="clubpleinairsaint-donat.org" href="https://clubpleinairsaint-donat.org/cartes-et-sentiers/la-grande-boucle/">grande boucle</a>&#8239;?</p>
  143. <nav>
  144. <p>
  145. <a href="/david/2024/aventure/"
  146. title="Liste de tous les articles 2024 associés à cette étiquette"
  147. rel="tag">#aventure</a>
  148. <a href="/david/2024/foret/"
  149. title="Liste de tous les articles 2024 associés à cette étiquette"
  150. rel="tag">#forêt</a>
  151. <a href="/david/2024/sport/"
  152. title="Liste de tous les articles 2024 associés à cette étiquette"
  153. rel="tag">#sport</a>
  154. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  155. </p>
  156. </nav>
  157. <h2>
  158. <a href="/david/2024/05/04/" title="Lien permanent vers cet article">Jour 1</a> <time datetime="2024-05-04">4 mai 2024</time>
  159. </h2>
  160. <blockquote lang="en">
  161. <p>There’s a difference between knowing the path and walking the&nbsp;path.</p>
  162. <p><cite>Morpheus, donnant des conseils Komoot à&nbsp;Néo.</cite></p>
  163. </blockquote>
  164. <p>Réveil à 5h30. <a href="/david/2024/04/20/" title="Jour 1">Encore.</a> En route vers la forêt Ouareau. Encore. Cette fois avec un peu moins d’ambition /&nbsp;orgueil.</p>
  165. <p>Niveau confiance, elle est assez haute tout de même car j’ai réussi à trottiner 24km la fin de semaine précédente. En bémol, je suis allé faire du tennis la veille et j’ai un peu mal au&nbsp;dos.</p>
  166. <p>Niveau matériel, j’ai réussi à faire descendre le sac à 7&nbsp;kilos (sans eau) et je teste pour l’occasion un sac-gilet adapté à la course qui soit robuste et permette de transporter une&nbsp;tente.</p>
  167. <p>Le départ est très rapide, l’envie est bien là, la frustration des «&nbsp;échecs&nbsp;» précédents aussi. Je me rends bien compte que je ne vais pas pouvoir tenir toute la journée comme ça. Je mets une heure de moins que lors de ma précédente tentative dans la neige&#8239;! Je prends le sac de nourriture dédié à la prochaine section et je m’attaque au mont 107. C’est le sommet de la sortie et déjà je me félicite d’avoir renoncé l’autre fois car le chemin est un torrent de fonte bien raide. Le reste de la journée viendra me confirmer la validité de ce&nbsp;choix.</p>
  168. <p>Je tente de petites foulées dans la descente et ça semble passer sans trop balloter en arrière. Je ne sais pas si c’est le format de sac ou son poids mais la différence en terme de mobilité est flagrante. J’apprécie ce sentiment de liberté physique. Notamment car ça glisse beaucoup avec l’humidité ambiante. Je découvre des sentiers que je n’avais pas encore arpentés et des points de vue… dans le&nbsp;nuage.</p>
  169. <p>Après une douzaine de kilomètres, je rejoins une piste forestière sur 2/3&#8239;km, l’occasion de voir si je suis encore capable de courir (oui&#8239;!). J’essaye vraiment de rester économe car le chemin restant pourrait être encore long, je n’ai pas de plan très précis cette fois-ci, je veux retrouver cette flexibilité que la trace numérique vient contenir. Je m’arrête lorsque je suis fatigué et je fais des détours si j’ai&nbsp;envie.</p>
  170. <p>La rivière Ouareau était en crue et je ne peux qu’observer les dégâts que cela a produit sur le «&nbsp;Sentier des murmures&nbsp;» qui porte assez mal son nom en cette saison. La plupart des ponts non arrimés ont bougé et/ou sont difficilement praticables. Cette partie qui devait être roulante est entrecoupée de crochets pour ne pas finir dans l’eau. J’arrive néanmoins à un premier emplacement que j’aime beaucoup mais le bruit de la rivière est trop important pour que je puisse dormir à ses côtés. Il y a une différence entre bruit blanc et eaux&nbsp;blanches&#8239;!</p>
  171. <p>Je décide de remonter jusqu’à l’abri 3&nbsp;côtés que je convoitais la fois précédente. Cela rajoute quelques kilomètres mais c’est aussi la possibilité de dormir au sec qui m’attire car la météo est incertaine. En arrivant en face de cet endroit, je tombe nez à nez avec une quinzaine de tentes, ce que je n’avais jamais croisé auparavant dans aucune de mes sorties. Un club de kayak est venu profiter des eaux en crue pour le weekend. J’allonge encore de quelques kilomètres, j’ai trop besoin de ma&nbsp;tranquillité…</p>
  172. <p>Je décide d’aller jusqu’au lac bœuf auquel j’avais <a href="/david/2024/02/24/" title="Jour 1">rendu visite</a> il y a quelques mois. C’est un nouvel emplacement alors j’ai l’espoir qu’il soit libre et c’est le cas. Curieusement, je ne me sens pas épuisé mais j’appréhende tout de même le retour avec la fatigue. Ma montre m’indique 24&#8239;km à l’arrivée après plus de 7&nbsp;heures d’effort et environ 1000&nbsp;mètres de dénivelé. La carte comptabilise 25,5&#8239;km. Qui croire&#8239;? Est-ce vraiment important&#8239;? Je me réjouis d’être arrivé et d’explorer les différentes possibilités de couchage. Je vois le soleil pour la première fois de la&nbsp;journée.</p>
  173. <p>Le printemps québécois reste une saison très bruyante, surtout aux abords des lacs. Entre les oiseaux et les insectes, c’est la cacophonie <strong>toute la nuit</strong>. Je suis très content d’avoir opté pour une tente fermée après avoir beaucoup hésité, la moustiquaire se retrouve constellée de bibittes après seulement une quinzaine de&nbsp;minutes.</p>
  174. <p>Côté <a href="/david/2024/04/22/" title="Alimentation">alimentation</a>, cette nouvelle stratégie qui consiste à manger en permanence est une réussite. Par contre, il va falloir que je me fasse mes propres compositions car celles du commerce sont vraiment pas terribles. J’avais l’espoir que des choses aient changé au cours de ces 10&nbsp;dernières années. Pareil pour les plats lyophilisés, deuxième fois que je trouve ça horrible. Rendez-moi ma semoule et mes nouilles&nbsp;instantanées&#8239;!</p>
  175. <figure>
  176. <a href="/static/david/2024/2024-05-04-bonheur-boules.jpg"
  177. title="Cliquer pour une version haute résolution">
  178. <img
  179. src="/static/david/2024/2024-05-04-bonheur-boules.jpg"
  180. width="2922" height="2922"
  181. srcset="/static/david/2024/2024-05-04-bonheur-boules.jpg 2922w, /static/david/2024/2024-05-04-bonheur-boules_660x440.jpg 660w, /static/david/2024/2024-05-04-bonheur-boules_990x660.jpg 990w, /static/david/2024/2024-05-04-bonheur-boules_1320x880.jpg 1320w"
  182. sizes="min(100vw, calc(100vh * 2922 / 2922))"
  183. loading="lazy"
  184. decoding="async"
  185. alt="Photo du livre «&nbsp;Le bonheur est dans les boules&nbsp;» emprunté à la bibliothèque.">
  186. </a>
  187. <figcaption>Le bonheur est dans les boules. #OhWait</figcaption>
  188. </figure>
  189. <nav>
  190. <p>
  191. <a href="/david/2024/aventure/"
  192. title="Liste de tous les articles 2024 associés à cette étiquette"
  193. rel="tag">#aventure</a>
  194. <a href="/david/2024/foret/"
  195. title="Liste de tous les articles 2024 associés à cette étiquette"
  196. rel="tag">#forêt</a>
  197. <a href="/david/2024/sport/"
  198. title="Liste de tous les articles 2024 associés à cette étiquette"
  199. rel="tag">#sport</a>
  200. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  201. </p>
  202. </nav>
  203. <h2>
  204. <a href="/david/2024/04/22/" title="Lien permanent vers cet article">Alimentation</a> <time datetime="2024-04-22">22 avril 2024</time>
  205. </h2>
  206. <p>Je réfléchis beaucoup au nombre de <a data-link-domain="fr.wiktionary.org" 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 —&nbsp;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&nbsp;temps.</p>
  207. <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 «&nbsp;collations&nbsp;» variées / équilibrées / hypercaloriques tous les 4-5&#8239;km par exemple. C’est très approximatif et à tester en conditions réelles bien sûr avant de&nbsp;ré-adapter.</p>
  208. <p>Je suis en train d’itérer sur ma propre recette de <a data-link-domain="fr.wikipedia.org" 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 data-link-domain="fr.wikipedia.org" href="https://fr.wikipedia.org/wiki/Lembas">lembas</a></em> c’est un peu lassant au bout de quelques&nbsp;jours&#8239;!</p>
  209. <p>On va voir si j’arrive à perdre du poids —&nbsp;dans le sac seulement&nbsp;— avec cette stratégie. J’ai déjà l’impression d’être à bord du <a data-link-domain="en.wikipedia.org" 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 data-link-domain="en.wikipedia.org" href="https://en.wikipedia.org/wiki/Soylent_(meal_replacement)">Soleil Vert</a>.</p>
  210. <a href="#hr-157" title="Lien vers cette section de la page"><hr id="hr-157" /></a>
  211. <blockquote lang="en">
  212. <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&nbsp;on.</p>
  213. <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&nbsp;ignore.</p>
  214. <p><cite><em><a data-link-domain="everythingchanges.us" href="https://everythingchanges.us/blog/what-you-see/" hreflang="en"
  215. title="Consultation de l’article (anglais)">What you see | everything changes</a>
  216. <a href="/david/cache/2024/1fc13a9dd6654dd40f95de0d7d657128/" hreflang="en"
  217. data-tippy data-description="Attending to your own attention."
  218. data-source="https://everythingchanges.us/blog/what-you-see/"
  219. data-date="2024-04-22"
  220. data-favicon="https://everythingchanges.us/favicon.ico"
  221. data-domain="everythingchanges.us"
  222. ><svg xmlns="http://www.w3.org/2000/svg"
  223. width="24" height="24" viewBox="0 0 24 24" fill="none"
  224. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  225. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  226. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  227. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  228. </svg>
  229. <span class="sr-only">[archive]</span></a></em></cite></p>
  230. </blockquote>
  231. <p>🤐</p>
  232. <a href="#hr-158" title="Lien vers cette section de la page"><hr id="hr-158" /></a>
  233. <blockquote>
  234. <p>Partout on dégaine l’adjectif «&nbsp;systémique&nbsp;» 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>&nbsp;[…]</p>
  235. <p><cite><em><a data-link-domain="blog.ecologie-politique.eu" href="https://blog.ecologie-politique.eu/post/Les-hommes-doux-sont-ils-l-avenir-du-feminisme" hreflang="fr"
  236. title="Consultation de l’article">Les hommes doux sont-ils l’avenir du féminisme&#8239;?</a>
  237. <a href="/david/cache/2024/ece1ee6687c7070e9bf39adb74294b8c/" hreflang="fr"
  238. data-tippy data-description="Même si lafemme est l’avenir de l’homme, c’est moins sur nous que sur les hommes que sont projetées nombre d’attentes concernant le recul espéré du sexisme. Comme si nous ne"
  239. data-source="https://blog.ecologie-politique.eu/post/Les-hommes-doux-sont-ils-l-avenir-du-feminisme"
  240. data-date="2024-04-22"
  241. data-favicon=""
  242. data-domain="blog.ecologie-politique.eu"
  243. ><svg xmlns="http://www.w3.org/2000/svg"
  244. width="24" height="24" viewBox="0 0 24 24" fill="none"
  245. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  246. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  247. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  248. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  249. </svg>
  250. <span class="sr-only">[archive]</span></a></em></cite></p>
  251. </blockquote>
  252. <p>Ça pique là où il faut que ça&nbsp;pique.</p>
  253. <a href="#hr-159" title="Lien vers cette section de la page"><hr id="hr-159" /></a>
  254. <blockquote lang="en">
  255. <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&nbsp;forever.</p>
  256. <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&nbsp;lures.</p>
  257. <p><cite><em><a data-link-domain="bleepingcomputer.com" href="https://www.bleepingcomputer.com/news/security/github-comments-abused-to-push-malware-via-microsoft-repo-urls/" hreflang="en"
  258. title="Consultation de l’article (anglais)">GitHub comments abused to push malware via Microsoft repo URLs</a>
  259. <a href="/david/cache/2024/81659ceed4b37a8c94095c3b743fe13a/" hreflang="en"
  260. data-tippy data-description="A GitHub flaw, or possibly&nbsp;a design decision, is being abused by threat actors to distribute malware using URLs associated with a Microsoft repository, making the files appear trustworthy."
  261. data-source="https://www.bleepingcomputer.com/news/security/github-comments-abused-to-push-malware-via-microsoft-repo-urls/"
  262. data-date="2024-04-22"
  263. data-favicon="https://www.bleepstatic.com/favicon/bleeping.ico"
  264. data-domain="bleepingcomputer.com"
  265. ><svg xmlns="http://www.w3.org/2000/svg"
  266. width="24" height="24" viewBox="0 0 24 24" fill="none"
  267. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  268. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  269. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  270. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  271. </svg>
  272. <span class="sr-only">[archive]</span></a></em></cite></p>
  273. </blockquote>
  274. <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&nbsp;sécurité.</p>
  275. <nav>
  276. <p>
  277. <a href="/david/2024/adaptation/"
  278. title="Liste de tous les articles 2024 associés à cette étiquette"
  279. rel="tag">#adaptation</a>
  280. <a href="/david/2024/laboratoire/"
  281. title="Liste de tous les articles 2024 associés à cette étiquette"
  282. rel="tag">#laboratoire</a>
  283. <a href="/david/2024/sport/"
  284. title="Liste de tous les articles 2024 associés à cette étiquette"
  285. rel="tag">#sport</a>
  286. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  287. </p>
  288. </nav>
  289. <h2>
  290. <a href="/david/2024/04/14/" title="Lien permanent vers cet article">Apex 2</a> <time datetime="2024-04-14">14 avril 2024</time>
  291. </h2>
  292. <p><em>Bon allez, retour <a href="/david/2024/03/14/" title="Montre 2">après un mois</a>, autant dire que je manque de&nbsp;recul.</em></p>
  293. <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&nbsp;grammes&#8239;!) 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&nbsp;boutons, la roulette est un peu lente à mon goût par&nbsp;contre.</p>
  294. <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 «&nbsp;récupération active&nbsp;». 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&nbsp;aussi…</p>
  295. <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&nbsp;: 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>
  296. <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="/david/2024/03/29/" title="Jour 1">longs</a> <a href="/david/2024/03/30/" title="Jour 2">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 à&nbsp;trouver.</p>
  297. <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&nbsp;exemple&nbsp;🙃).</p>
  298. <blockquote>
  299. <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&nbsp;suivre.</p>
  300. <p>Il y a du travail à faire pour transformer un jugement en&nbsp;allié.</p>
  301. <p><cite><a href="/david/2024/03/14/" title="Montre 2">Auto-citation</a></cite></p>
  302. </blockquote>
  303. <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&nbsp;niveau.</p>
  304. <figure>
  305. <a href="/static/david/2024/2024-04-14-recuperation.jpg"
  306. title="Cliquer pour une version haute résolution">
  307. <img
  308. src="/static/david/2024/2024-04-14-recuperation.jpg"
  309. width="960" height="2079"
  310. 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"
  311. sizes="min(100vw, calc(100vh * 960 / 2079))"
  312. loading="lazy"
  313. decoding="async"
  314. alt="Panneau de Récupération de l’application COROS.">
  315. </a>
  316. <figcaption>Suis-je vraiment en situation de fatigue / à 50% de mes capacités sur la majorité de mes sessions&nbsp;?!</figcaption>
  317. </figure>
  318. <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 «&nbsp;services&nbsp;» comme Strava, pour y avoir accès et ça me frustre. Je <a href="/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&nbsp;: ces outils sont vraiment faits pour être personnels et il n’y a pas de mode «&nbsp;prêt&nbsp;» 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&nbsp;données.</p>
  319. <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&nbsp;🤷. On apprend à mutuellement se connaître, on verra dans six mois une fois les courbes&nbsp;stabilisées.</p>
  320. <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&nbsp;réveils.</p>
  321. <p>J’ai fait trois <a href="/david/2024/04/07/" title="Piscine">séances</a> de <a href="/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 data-link-domain="coros.ca" 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&nbsp;faire.</p>
  322. <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&#8239;?). 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&nbsp;répondre.</p>
  323. <blockquote>
  324. <p><em>[Aujourd’hui, en allant à la piscine en courant]</em><br />
  325. — Pfiou, j’ai pas encore bien récupéré depuis vendredi…<br />
  326. — Ah je me disais bien que tu étais à la traîne, je pensais que c’était juste la vieillesse.<br />
  327. —&nbsp;🫠</p>
  328. </blockquote>
  329. <p>Difficile de vivre avec un <del>athlète élite</del> enfant de 10&nbsp;ans&nbsp;parfois.</p>
  330. <nav>
  331. <p>
  332. <a href="/david/2024/enthousiasme/"
  333. title="Liste de tous les articles 2024 associés à cette étiquette"
  334. rel="tag">#enthousiasme</a>
  335. <a href="/david/2024/laboratoire/"
  336. title="Liste de tous les articles 2024 associés à cette étiquette"
  337. rel="tag">#laboratoire</a>
  338. <a href="/david/2024/sport/"
  339. title="Liste de tous les articles 2024 associés à cette étiquette"
  340. rel="tag">#sport</a>
  341. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  342. </p>
  343. </nav>
  344. <h2>
  345. <a href="/david/2024/04/07/" title="Lien permanent vers cet article">Piscine</a> <time datetime="2024-04-07">7 avril 2024</time>
  346. </h2>
  347. <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&nbsp;motivation.</p>
  348. <a href="#hr-144" title="Lien vers cette section de la page"><hr id="hr-144" /></a>
  349. <blockquote lang="en">
  350. <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&nbsp;itself.</p>
  351. <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&nbsp;them.</mark></p>
  352. <p><cite><em><a data-link-domain="gomakethings.com" href="https://gomakethings.com/an-advanced-way-to-use-css-variables/" hreflang="en"
  353. title="Consultation de l’article (anglais)">An advanced way to use CSS variables</a>
  354. <a href="/david/cache/2024/a16101277229b3aeca8ac3249c84320c/" hreflang="en"
  355. data-tippy data-description="Yesterday, we learned about CSS variables. Today, I wanted to show you an advanced approach to working with them that I often use with client projects."
  356. data-source="https://gomakethings.com/an-advanced-way-to-use-css-variables/"
  357. data-date="2024-04-08"
  358. data-favicon="https://gomakethings.com/img/favicon.ico"
  359. data-domain="gomakethings.com"
  360. ><svg xmlns="http://www.w3.org/2000/svg"
  361. width="24" height="24" viewBox="0 0 24 24" fill="none"
  362. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  363. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  364. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  365. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  366. </svg>
  367. <span class="sr-only">[archive]</span></a></em></cite></p>
  368. </blockquote>
  369. <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="/david/2024/01/02/" title="Fondations">Je</a> <a href="/david/2024/03/07/#hr-102">me</a> <a href="/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&nbsp;papi.</em></p>
  370. <p>D’autres exemples documentés <a data-link-domain="dev.37signals.com" href="https://dev.37signals.com/modern-css-patterns-and-techniques-in-campfire/" hreflang="en"
  371. title="Consultation de l’article (anglais)">sur le blog dev de 37signals</a>
  372. <a href="/david/cache/2024/d90fde4ef3c84ad3d765dda386a97562/" hreflang="en"
  373. data-tippy data-description="An in-depth look at how 37signals built ONCE/Campfire using modern features, vanilla CSS, and no frameworks or preprocessors."
  374. data-source="https://dev.37signals.com/modern-css-patterns-and-techniques-in-campfire/"
  375. data-date="2024-04-08"
  376. data-favicon="https://dev.37signals.com/assets/images/global/favicon.png"
  377. data-domain="dev.37signals.com"
  378. ><svg xmlns="http://www.w3.org/2000/svg"
  379. width="24" height="24" viewBox="0 0 24 24" fill="none"
  380. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  381. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  382. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  383. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  384. </svg>
  385. <span class="sr-only">[archive]</span></a> (oui, je&nbsp;sais…).</p>
  386. <nav>
  387. <p>
  388. <a href="/david/2024/courage/"
  389. title="Liste de tous les articles 2024 associés à cette étiquette"
  390. rel="tag">#courage</a>
  391. <a href="/david/2024/sport/"
  392. title="Liste de tous les articles 2024 associés à cette étiquette"
  393. rel="tag">#sport</a>
  394. <a href="/david/2024/technique/"
  395. title="Liste de tous les articles 2024 associés à cette étiquette"
  396. rel="tag">#technique</a>
  397. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  398. </p>
  399. </nav>
  400. <h2>
  401. <a href="/david/2024/03/14/" title="Lien permanent vers cet article">Montre 2</a> <time datetime="2024-03-14">14 mars 2024</time>
  402. </h2>
  403. <p>J’ai reçu un <a href="/david/2024/03/02/" title="Montre">nouveau jouet</a> aujourd’hui. Alors je me suis amusé. Il me reste beaucoup de données et fonctionnalités à&nbsp;explorer.</p>
  404. <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&nbsp;auparavant.</p>
  405. <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&nbsp;suivre.</p>
  406. <p>Il y a du travail à faire pour transformer un jugement en&nbsp;allié.</p>
  407. <blockquote>
  408. <p>Tu peux parler fort, exhiber ton savoir, assener tes arguments, brandir ta culture…<br />
  409. … mais la conversation est à sens unique et totalement stérile.<br />
  410. Au terme de l’échange tu demeures exactement le même, tu n’as pas évolué d’un&nbsp;pouce.</p>
  411. <p>La rencontre n’a pas eu&nbsp;lieu.</p>
  412. <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 />
  413. Vois ta balle de tennis comme le lien qui te rattache aux autres. Cultive-le tant que tu peux.<br />
  414. Ne cherche plus à lutter contre les autres pour être meilleur, Max, mais deviens meilleur grâce à&nbsp;eux.</p>
  415. <p>Le tennis est un art. L’art de&nbsp;l’échange.</p>
  416. <p><cite><em>Max Winson</em>, Jérémie&nbsp;Moreau</cite></p>
  417. </blockquote>
  418. <nav>
  419. <p>
  420. <a href="/david/2024/deception/"
  421. title="Liste de tous les articles 2024 associés à cette étiquette"
  422. rel="tag">#déception</a>
  423. <a href="/david/2024/enthousiasme/"
  424. title="Liste de tous les articles 2024 associés à cette étiquette"
  425. rel="tag">#enthousiasme</a>
  426. <a href="/david/2024/sport/"
  427. title="Liste de tous les articles 2024 associés à cette étiquette"
  428. rel="tag">#sport</a>
  429. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  430. </p>
  431. </nav>
  432. <h2>
  433. <a href="/david/2024/03/02/" title="Lien permanent vers cet article">Montre</a> <time datetime="2024-03-02">2 mars 2024</time>
  434. </h2>
  435. <p>J’ai une <a data-link-domain="suunto.com" href="https://www.suunto.com/fr-ca/Produits/Montres-de-sport/Suunto-Ambit/Suunto-Ambit-Black/" hreflang="fr"
  436. title="Consultation de l’article">Suunto Ambit Black</a>
  437. <a href="/david/cache/2024/4050651a19400713c8563166e2a9abd5/" hreflang="fr"
  438. data-tippy data-description="La qualifier de simple montre serait un peu réducteur."
  439. data-source="https://www.suunto.com/fr-ca/Produits/Montres-de-sport/Suunto-Ambit/Suunto-Ambit-Black/"
  440. data-date="2024-03-02"
  441. data-favicon="https://www.suunto.com/favicon-16x16.png"
  442. data-domain="suunto.com"
  443. ><svg xmlns="http://www.w3.org/2000/svg"
  444. width="24" height="24" viewBox="0 0 24 24" fill="none"
  445. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  446. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  447. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  448. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  449. </svg>
  450. <span class="sr-only">[archive]</span></a> achetée il y a une douzaine d’années. (Merci à Suunto de garder une page avec les caractéristiques d’un produit qui n’est plus construit / vendu&#8239;! C’est notamment utile pour comparer les spécifications de taille et poids.) Je me demandais si les montres actuelles allaient pouvoir résister à une <a href="/david/2024/02/24/" title="Jour 1">température inférieure à -20°C</a> et il semblerait que ce ne soit pas le cas, tous les modèles que j’ai consulté spécifient clairement que c’est la limite&nbsp;basse.</p>
  451. <figure>
  452. <a href="/static/david/2024/2024-03-02-coros-apex-2-temperatures.png"
  453. title="Cliquer pour une version haute résolution">
  454. <img
  455. src="/static/david/2024/2024-03-02-coros-apex-2-temperatures.png"
  456. width="2390" height="1306"
  457. srcset="/static/david/2024/2024-03-02-coros-apex-2-temperatures.png 2390w, /static/david/2024/2024-03-02-coros-apex-2-temperatures.png 660w, /static/david/2024/2024-03-02-coros-apex-2-temperatures.png 990w, /static/david/2024/2024-03-02-coros-apex-2-temperatures.png 1320w"
  458. sizes="min(100vw, calc(100vh * 2390 / 1306))"
  459. loading="lazy"
  460. decoding="async"
  461. alt="Capture d’écran pour la Coros Apex 2&nbsp;qui va de -20°C à 50°C.">
  462. </a>
  463. <figcaption>Même Kiki a du mal par -20°C&nbsp;!</figcaption>
  464. </figure>
  465. <p><em>Détail marrant&nbsp;: Kilian Jornet était déjà sur les photos de promotion de la Suunto Ambit Black et on le retrouve sur la Coros Apex 2&nbsp;Pro&nbsp;d’aujourd’hui.</em></p>
  466. <p>Au-delà de l’aspect scientifique d’envisager une montre qui résiste aux températures locales, il y a une <a href="/david/2024/01/27/" title="Jour 1">situation récente</a> qui me reste en tête aussi (ce n’est <a href="/david/2020/12/18/">pas la première fois</a>, et ce ne sera certainement pas la dernière). Une position GPS précise aurait certainement pu m’aider dans ce cas là, si je n’avais pas été trop entêté pour ne pas la consulter. J’envisage aussi des <a href="/david/2024/01/06/" title="Objectif">objectifs</a> sur lesquels j’ai besoin de me rassurer / entraîner spécifiquement en ayant une idée des distances que je pourrais parcourir dans un contexte donné que j’envisage plus rapide que ce que j’ai l’habitude de&nbsp;faire.</p>
  467. <p>Je cherche en priorité une montre qui affiche un fond de carte, ce n’est pas tant ma trace programmée que ce qu’il y a autour qui m’intéresse dans d’autres contextes exploratoires. Sur ma montre actuelle, je ne pouvais qu’enregistrer une trace à suivre qui m’indiquait les déviations mais <em>pour ma pratique</em> ce n’était pas très intéressant. Savoir qu’il y a un lac / chemin forestier à proximité peut changer ma sortie. Difficile de savoir <em>a priori</em> si les données pour mes lieux de balade seront à jour ou suffisamment&nbsp;détaillées.</p>
  468. <p>J’ai regardé l’Apple Watch Ultra 2, la Suunto Vertical Titanium Solar, des Garmin d’«&nbsp;aventure&nbsp;» et finalement la Coros Apex 2 (Pro). Dans tous les cas, ce sont de grosses montres et j’ai un poignet fin. Dans tous les cas, le <em>marketing</em> est complètement délirant&nbsp;🙃. Sans compter le prix. La Coros semble être la moins chère (!) qui réponde à l’ensemble de mes attentes, la version Pro ayant une meilleure précision GPS et autonomie, ce qui m’importe&nbsp;beaucoup.</p>
  469. <p>Ah, <a href="/david/2024/02/07/#hr-69">aussi</a>. Difficile à justifier, même amortie sur la prochaine décennie… et c’est d’ailleurs là où j’ai de sérieux doutes en terme d’obsolescence programmée, ce qui a duré 10&nbsp;ans ne durera probablement plus 10&nbsp;ans. Triste réalité. J’essaye de ne pas trop me demande si <em>je</em> vais être capable de passer encore une décennie à arpenter la&nbsp;forêt.</p>
  470. <p><strong>Montre</strong> moi tes peurs et je te dirai comment les&nbsp;acheter.</p>
  471. <p><em>P.S.&nbsp;: j’ai un petit truc qui me gratte aussi dans le fait de ne pas être utilisateur régulier de <a data-link-domain="umap-project.org" href="https://umap-project.org/fr/">uMap</a>, ce qui est un manque à différents niveaux. Avoir davantage de données me motiverait certainement à jouer avec. Il y a des lieux que je veux garder intimes et d’autres qui sont déjà bien publics. J’ai une vieille envie de pouvoir raconter mes sorties sur un fond de carte à la <a data-link-domain="storymap.knightlab.com" href="https://storymap.knightlab.com/">StoryMap</a> (<a data-link-domain="github.com" href="https://github.com/slead/leaflet-storymap">avec Leaflet&#8239;?</a>) pour agrémenter les récits de sons et images correspondants aux lieux&nbsp;parcourus.</em></p>
  472. <nav>
  473. <p>
  474. <a href="/david/2024/dependance/"
  475. title="Liste de tous les articles 2024 associés à cette étiquette"
  476. rel="tag">#dépendance</a>
  477. <a href="/david/2024/sport/"
  478. title="Liste de tous les articles 2024 associés à cette étiquette"
  479. rel="tag">#sport</a>
  480. <a href="/david/2024/technique/"
  481. title="Liste de tous les articles 2024 associés à cette étiquette"
  482. rel="tag">#technique</a>
  483. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  484. </p>
  485. </nav>
  486. <h2>
  487. <a href="/david/2024/02/24/" title="Lien permanent vers cet article">Jour 1</a> <time datetime="2024-02-24">24 février 2024</time>
  488. </h2>
  489. <p>Arrivée en fin de matinée. La voiture affiche -12°C et je sais que je ne vais probablement pas avoir plus ces 30&nbsp;prochaines heures dans la forêt. Depuis que j’ai appris la connaissance de la Grande Boucle de la forêt de Ouareau, j’ai eu envie de la faire, à mon rythme, avec une nuit à l’autre bout du parc. Ma pulka est énorme, ils annoncent une nuit fraîche et avec du vent. Je me lance dans la première descente alors que la neige est dure comme de la roche. J’apprends à mes dépens que les écailles des skis ne sont pas adaptées lorsque je repars en arrière à la première montée. Première chute, ça commence&nbsp;bien.</p>
  490. <p>Avec les demi-peaux, ça passe déjà mieux mais ça demande de beaucoup forcer sur les bras. Les quelques personnes que je croise en skis de fond n’en mènent pas large non plus, les conditions sont atroces quel que soit l’équipement on dirait. Certains choisissent de tirer 40&#8239;kg en plus pour le fun. Après quelques heures, j’arrive enfin au lac tant espéré, le soleil me gratifie de ses derniers rayons pour monter le camp et préparer de quoi me réchauffer pour la&nbsp;soirée.</p>
  491. <figure>
  492. <a href="/static/david/2024/2024-02-24-pulka-lac-boeuf.jpg"
  493. title="Cliquer pour une version haute résolution">
  494. <img
  495. src="/static/david/2024/2024-02-24-pulka-lac-boeuf.jpg"
  496. width="4032" height="3024"
  497. srcset="/static/david/2024/2024-02-24-pulka-lac-boeuf.jpg 4032w, /static/david/2024/2024-02-24-pulka-lac-boeuf_660x440.jpg 660w, /static/david/2024/2024-02-24-pulka-lac-boeuf_990x660.jpg 990w, /static/david/2024/2024-02-24-pulka-lac-boeuf_1320x880.jpg 1320w"
  498. sizes="min(100vw, calc(100vh * 4032 / 3024))"
  499. loading="lazy"
  500. decoding="async"
  501. alt="La pulka devant le lac bœuf.">
  502. </a>
  503. <figcaption>La joie d’arriver au lieu de campement avec mes deux&nbsp;chevilles.</figcaption>
  504. </figure>
  505. <p>Il fait déjà -16°C et j’ai choisi de prendre une tente cette fois-ci par crainte du vent annoncé mais il n’y a pas de soucis à se faire pour l’instant. C’est même très agréable s’il n’y avait pas le ronron des motoneiges dans le lointain qui vient casser un peu l’ambiance. Le son porte très loin en&nbsp;hiver.</p>
  506. <p>Je suis pas mal déshydraté mais j’essaye de gérer stratégiquement cela, je sais qu’il va falloir passer le plus longtemps possible dans le duvet. Les courbatures attendront. Je passe une bonne soirée au coin du feu car il y a finalement très peu de vent et la voûte céleste est superbe par ces températures. J’aurais bien dormi à la belle&nbsp;étoile.</p>
  507. <figure>
  508. <a href="/static/david/2024/2024-02-24-tente-ouverte.jpg"
  509. title="Cliquer pour une version haute résolution">
  510. <img
  511. src="/static/david/2024/2024-02-24-tente-ouverte.jpg"
  512. width="4032" height="3024"
  513. srcset="/static/david/2024/2024-02-24-tente-ouverte.jpg 4032w, /static/david/2024/2024-02-24-tente-ouverte_660x440.jpg 660w, /static/david/2024/2024-02-24-tente-ouverte_990x660.jpg 990w, /static/david/2024/2024-02-24-tente-ouverte_1320x880.jpg 1320w"
  514. sizes="min(100vw, calc(100vh * 4032 / 3024))"
  515. loading="lazy"
  516. decoding="async"
  517. alt="Une tente ouverte avec un duvet à l’intérieur.">
  518. </a>
  519. <figcaption>Chambre avec&nbsp;vue.</figcaption>
  520. </figure>
  521. <p>Je suis bien content d’avoir pris mon plus gros duvet car j’apprends que le thermomètre de ma montre s’arrête de fonctionner à partir de -20°C. Et il n’est que 7&#8239;h du soir. Le passage du foyer au duvet est toujours un moment assez critique. Je découvre que les chaufferettes permettent de récupérer des pieds gelés plus rapidement (j’avais fait l’erreur de ne prendre que des bouteilles isotherme). Je prends soin de donner une forme enfilable à mes chaussures avec la bonne position des lacets qui vont geler&nbsp;aussi.</p>
  522. <p>Je m’endors en écoutant le silence, seulement brisé par les arbres qui craquent de froid. L’hiver tire ses dernières balles et certains resteront couchés&nbsp;demain.</p>
  523. <nav>
  524. <p>
  525. <a href="/david/2024/aventure/"
  526. title="Liste de tous les articles 2024 associés à cette étiquette"
  527. rel="tag">#aventure</a>
  528. <a href="/david/2024/foret/"
  529. title="Liste de tous les articles 2024 associés à cette étiquette"
  530. rel="tag">#forêt</a>
  531. <a href="/david/2024/sport/"
  532. title="Liste de tous les articles 2024 associés à cette étiquette"
  533. rel="tag">#sport</a>
  534. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  535. </p>
  536. </nav>
  537. <h2>
  538. <a href="/david/2024/01/15/" title="Lien permanent vers cet article">Rééducation</a> <time datetime="2024-01-15">15 janvier 2024</time>
  539. </h2>
  540. <p>J’ai réussi à marcher 6&#8239;km dans la neige avec des bottes de neige assez hautes. Pas pire. On va voir si ça ne tire pas trop dans la nuit. J’ai appris à mettre des bandes de kynésiologie aussi pour un léger soutien sur la rotation interne. Ce n’est pas une entorse classique car généralement deux arbres ne sont pas impliqués donc la torsion est différente. Du moins, c’est ce que mon doctorat express en médecine me laisse à penser… et mes sensations&nbsp;surtout&#8239;!</p>
  541. <p>Récupération active ou&nbsp;impatience&#8239;?</p>
  542. <a href="#hr-32" title="Lien vers cette section de la page"><hr id="hr-32" /></a>
  543. <blockquote lang="en">
  544. <p>The front-end to your dev&nbsp;env.</p>
  545. <p><cite><em><a data-link-domain="mise.jdx.dev" href="https://mise.jdx.dev/">mise-en-place</a></em></cite></p>
  546. </blockquote>
  547. <p>Ironiquement, j’ai toujours la crainte que ces outils viennent davantage polluer mon environnement actuel. Je ne suis pas sur assez de produits pour rencontrer des limites à ce niveau. Je m’en sors plutôt bien avec <a data-link-domain="code.larlet.fr" href="https://code.larlet.fr/shell/#alias">quelques alias</a> et un <a data-link-domain="code.larlet.fr" href="https://code.larlet.fr/shell/#auto-deactivation-des-virtualenvs">environnement virtuel dé·monté</a> à l’entrée dans un&nbsp;dossier.</p>
  548. <p>Je compare un peu des carottes et des patates mais ça donne une direction en terme de frugalité sur ce plan là. On simplifie rarement un environnement en ajoutant une couche (coucou Docker), au mieux on masque une incompétence. Ce qui n’est pas toujours une <a href="/david/2024/01/05/" title="Vocabulaire">tension</a> en fonction du&nbsp;contexte&#8239;!</p>
  549. <nav>
  550. <p>
  551. <a href="/david/2024/addiction/"
  552. title="Liste de tous les articles 2024 associés à cette étiquette"
  553. rel="tag">#addiction</a>
  554. <a href="/david/2024/evolution/"
  555. title="Liste de tous les articles 2024 associés à cette étiquette"
  556. rel="tag">#évolution</a>
  557. <a href="/david/2024/sport/"
  558. title="Liste de tous les articles 2024 associés à cette étiquette"
  559. rel="tag">#sport</a>
  560. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  561. </p>
  562. </nav>
  563. <h2>
  564. <a href="/david/2024/01/09/" title="Lien permanent vers cet article">Blessure</a> <time datetime="2024-01-09">9 janvier 2024</time>
  565. </h2>
  566. <p>Avec les amis, on profite des premières chutes de neige sur Montréal pour aller s’amuser sur le Mont Royal et vérifier que les skis de rando sont encore en bon état. Cinq minutes avant, je tirais l’enfant avec son baudrier en mode remontée musculaire, en pleine forme. Une descente entre les arbres même pas tant engagée et au moment de rejoindre le groupe, légère perte de contrôle dans un endroit très boisé. Mon ski se coince entre deux arbres assez fins mais suffisamment solides pour que ma cheville doive tourner dans le mauvais sens vu que mon corps a choisi de continuer sa course. <em>Ouille.</em></p>
  567. <p>La tristesse de se faire mal au tout début de la saison. Aussi, c’est la pire chose à expérimenter lorsqu’on prépare un <a href="/david/2024/01/06/" title="Objectif">défi sportif</a>…</p>
  568. <p>Youtube est le plus proche du célèbre <q lang="en">I know kung-fu</q> de Neo, j’ai appris à straper une cheville et j’ai l’espoir de pouvoir aller jusqu’au refuge avec l’enfant dans 2&nbsp;semaines vu que j’ai déjà réservé. Une cheville <em>tape</em>ée devrait pouvoir tenir les 5&#8239;km à skis si j’en prends suffisamment soin d’ici&nbsp;là&nbsp;🤞.</p>
  569. <p>Ce soir, j’ai besoin d’y&nbsp;croire.</p>
  570. <a href="#hr-19" title="Lien vers cette section de la page"><hr id="hr-19" /></a>
  571. <p>Copsaé publie un <a data-link-domain="copsae.fr" href="https://www.copsae.fr/">nouveau site web</a> qui me donne des idées. J’apprécie aussi ce qu’a fait Access42 pour <a data-link-domain="access42.net" href="https://access42.net/">le sien</a>. Ne pas oublier <a data-link-domain="koena.net" href="https://koena.net/">Koena</a> aussi&#8239;! J’ai déjà vu passer des commentaires comme quoi un site accessible était forcément moche, j’apprécie de pouvoir proposer des&nbsp;contre-exemples.</p>
  572. <a href="#hr-20" title="Lien vers cette section de la page"><hr id="hr-20" /></a>
  573. <blockquote lang="en">
  574. <p>In short, building with accessible semantics from the get-go can give you expressive, meaningful style hooks for free. Leaning on those style hooks in your CSS selectors lets you reduce the number of moving parts in your site or application, and it can prevent accessibility bugs from creeping in down the&nbsp;road.</p>
  575. <p><cite><em><a data-link-domain="benmyers.dev" href="https://benmyers.dev/blog/semantic-selectors/" hreflang="en"
  576. title="Consultation de l’article (anglais)">Style with Stateful, Semantic Selectors</a>
  577. <a href="/david/cache/2024/99e7d2ba7e4adc69dbf0f1b2858a5248/" hreflang="en"
  578. data-tippy data-description="See how building with accessible semantics from the get-go can give you expressive, meaningful style hooks for free."
  579. data-source="https://benmyers.dev/blog/semantic-selectors/"
  580. data-date="2024-01-08"
  581. data-favicon="https://benmyers.dev/favicon-32x32.png"
  582. data-domain="benmyers.dev"
  583. ><svg xmlns="http://www.w3.org/2000/svg"
  584. width="24" height="24" viewBox="0 0 24 24" fill="none"
  585. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  586. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  587. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  588. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  589. </svg>
  590. <span class="sr-only">[archive]</span></a></em></cite></p>
  591. </blockquote>
  592. <p>C’est ce que j’essaye de faire depuis plusieurs années déjà et non seulement ça me permet d’améliorer le couple sémantique HTML/CSS mais ça rend mon JS plus résilient&nbsp;aussi&#8239;!</p>
  593. <blockquote lang="en">
  594. <p>Recently I decided to stop using the word <em>semantics</em>. Instead I talk about the <abbr title="User eXperience">UX</abbr> of <abbr title="HyperText Markup Language">HTML</abbr>. And all of a sudden my students are not allergic to <abbr>HTML</abbr> anymore but really interested. Instead of explaining the meaning of a certain element, I show them <em>what it does</em>. So we look at <em>what happens</em> when you add a label to an input: The input and the label now form a pair. You can now click on the label to interact with a checkbox. The label will be read out loud when you focus on an input with a screenreader. When you hover over a <em>label</em>, the hover state of the connected <em>input</em> is shown. My students <em>love</em> stuff like that. They care about <abbr>UX</abbr>.</p>
  595. <p><cite><em><a data-link-domain="vasilis.nl" href="https://vasilis.nl/nerd/the-ux-of-html/" hreflang="en"
  596. title="Consultation de l’article (anglais)">The UX of HTML</a>
  597. <a href="/david/cache/2024/e5056f8e0e6acf87c5777ba5b3a2ba92/" hreflang="en"
  598. data-tippy data-description=""
  599. data-source="https://vasilis.nl/nerd/the-ux-of-html/"
  600. data-date="2024-01-08"
  601. data-favicon="https://vasilis.nl/favicon.ico"
  602. data-domain="vasilis.nl"
  603. ><svg xmlns="http://www.w3.org/2000/svg"
  604. width="24" height="24" viewBox="0 0 24 24" fill="none"
  605. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  606. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  607. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  608. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  609. </svg>
  610. <span class="sr-only">[archive]</span></a></em></cite></p>
  611. </blockquote>
  612. <nav>
  613. <p>
  614. <a href="/david/2024/accessibilite/"
  615. title="Liste de tous les articles 2024 associés à cette étiquette"
  616. rel="tag">#accessibilité</a>
  617. <a href="/david/2024/sport/"
  618. title="Liste de tous les articles 2024 associés à cette étiquette"
  619. rel="tag">#sport</a>
  620. <a href="/david/2024/technique/"
  621. title="Liste de tous les articles 2024 associés à cette étiquette"
  622. rel="tag">#technique</a>
  623. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  624. </p>
  625. </nav>
  626. <h2>
  627. <a href="/david/2024/01/06/" title="Lien permanent vers cet article">Objectif</a> <time datetime="2024-01-06">6 janvier 2024</time>
  628. </h2>
  629. <p>C’est fou comme le fait de se donner un objectif (sportif) change la donne en terme de motivation. Pour cette année, ce sera la <em>Traversée de Charlevoix</em>. Je vais essayer de documenter le processus de&nbsp;préparation.</p>
  630. <a href="#hr-10" title="Lien vers cette section de la page"><hr id="hr-10" /></a>
  631. <p>Au détour d’un vieux&nbsp;chalet&nbsp;:</p>
  632. <figure>
  633. <a href="/static/david/2024/2024-01-05-la-recherche-sida.jpg"
  634. title="Cliquer pour une version haute résolution">
  635. <img
  636. src="/static/david/2024/2024-01-05-la-recherche-sida.jpg"
  637. width="4032" height="3024"
  638. srcset="/static/david/2024/2024-01-05-la-recherche-sida.jpg 4032w, /static/david/2024/2024-01-05-la-recherche-sida_660x440.jpg 660w, /static/david/2024/2024-01-05-la-recherche-sida_990x660.jpg 990w, /static/david/2024/2024-01-05-la-recherche-sida_1320x880.jpg 1320w"
  639. sizes="min(100vw, calc(100vh * 4032 / 3024))"
  640. loading="lazy"
  641. decoding="async"
  642. alt="Photo du Magazine «&nbsp;La Recherche&nbsp;» (couverture)">
  643. </a>
  644. <figcaption>La Recherche, juin 1985. Les mécanismes biologiques autour du SIDA étaient en cours de&nbsp;découverte.</figcaption>
  645. </figure>
  646. <p>D’autres temps, d’autres&nbsp;démons.</p>
  647. <a href="#hr-11" title="Lien vers cette section de la page"><hr id="hr-11" /></a>
  648. <p>Le dossier spécial sur la voiture électrique se terminait&nbsp;ainsi&nbsp;:</p>
  649. <blockquote>
  650. <p>Nous sommes loin des anticipations du début des années 1970&nbsp;qui attribuaient au véhicule électrique 7&nbsp;à 10&#8239;% du parc automobile à l’horizon 1990-1995. L’avenir même du véhicule, du moins en ce qui concerne l’étendue de son champ d’utilisation, demeure incertain. Celle-ci sera fonction des progrès qui seront réalisés sur les générateurs électrochimiques. Les filières potentiellement les plus performantes (filières chaudes, filières organiques, piles à combustibles) n’en sont encore qu’au stade de la recherche appliquée ou du développement et quelques-unes au stade de la recherche fondamentale. Mais des progrès sont enregistrés et les raisons profondes de poursuivre l’effort demeurent. <mark>Si une volonté politique s’affirme et parvient à motiver les premiers utilisateurs potentiels</mark> (administrations et grands organismes publics), on peut espérer voir sortir les premières séries industrielles de véhicules au début de la prochaine&nbsp;décennie.</p>
  651. </blockquote>
  652. <p>D’autres époques, mêmes utopies. Je vois de plus en plus de gros véhicules électriques, j’ai même croisé une JEEP l’autre fois. Tristesse du rêve&nbsp;américain.</p>
  653. <a href="#hr-12" title="Lien vers cette section de la page"><hr id="hr-12" /></a>
  654. <blockquote>
  655. <p>J’aime bien l’expression «&nbsp;sans nom&nbsp;» (genre une galère sans nom, une injustice sans nom)<br />
  656. Ça fait un peu eldritchien pour moi, genre quelque chose de si terrible qu’on ne peut pas le nommer, qu’on ne peut pas concevoir&nbsp;entièrement</p>
  657. <p>Mais aussi ça me donne l’impression que si je nomme les choses ça va régler une partie du problème c’est&nbsp;fun</p>
  658. <p>«&nbsp;ma vie était une galère sans nom c’était terrible. Bha je l’ai appelé bob et du coup depuis ça&nbsp;va&nbsp;»</p>
  659. <p><cite><a data-link-domain="pipou.academy" href="https://pipou.academy/@tiphaine/111629699683457788">@tiphaine@pipou.academy</a></cite></p>
  660. </blockquote>
  661. <nav>
  662. <p>
  663. <a href="/david/2024/addiction/"
  664. title="Liste de tous les articles 2024 associés à cette étiquette"
  665. rel="tag">#addiction</a>
  666. <a href="/david/2024/processus/"
  667. title="Liste de tous les articles 2024 associés à cette étiquette"
  668. rel="tag">#processus</a>
  669. <a href="/david/2024/sport/"
  670. title="Liste de tous les articles 2024 associés à cette étiquette"
  671. rel="tag">#sport</a>
  672. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  673. </p>
  674. </nav>
  675. <form action="/david/recherche/" method="get">
  676. <fieldset>
  677. <legend>Recherche</legend>
  678. <label for="input-search">Termes de votre recherche :</label>
  679. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  680. <input type="submit" value="Chercher">
  681. <p id="indexation-infos">
  682. <small>
  683. Seuls les contenus de ces 8 dernières années sont indexés.
  684. </small>
  685. </p>
  686. </fieldset>
  687. </form>
  688. <aside>
  689. <theme-toggle></theme-toggle>
  690. </aside>
  691. </article>
  692. <hr>
  693. <footer>
  694. <p>
  695. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  696. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  697. <a href="http://larlet.com"
  698. title="Go to my English profile"
  699. data-instant>Pro</a>
  700. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  701. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  702. </p>
  703. <template id="theme-selector">
  704. <form>
  705. <style type="text/css">
  706. fieldset div {
  707. text-align: center;
  708. }
  709. </style>
  710. <fieldset>
  711. <legend>Thème</legend>
  712. <div>
  713. <label>
  714. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  715. Auto
  716. </label>
  717. <label>
  718. <input type="radio" value="dark" name="chosen-color-scheme">
  719. Foncé
  720. </label>
  721. <label>
  722. <input type="radio" value="light" name="chosen-color-scheme">
  723. Clair
  724. </label>
  725. </div>
  726. </fieldset>
  727. </form>
  728. </template>
  729. </footer>
  730. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  731. <script>
  732. class ThemeToggle extends HTMLElement {
  733. constructor() {
  734. super()
  735. const themeSelectorTemplate = document.querySelector('#theme-selector')
  736. const form = themeSelectorTemplate.content.firstElementChild
  737. this.attachShadow({ mode: 'open' })
  738. this.shadowRoot.appendChild(form.cloneNode(true))
  739. }
  740. connectedCallback() {
  741. const form = this.shadowRoot.querySelector('form')
  742. form.addEventListener('change', (e) => {
  743. const chosenColorScheme = e.target.value
  744. localStorage.setItem('theme', chosenColorScheme)
  745. toggleTheme(chosenColorScheme)
  746. })
  747. const selectedTheme = localStorage.getItem('theme')
  748. if (selectedTheme && selectedTheme !== 'undefined') {
  749. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  750. }
  751. }
  752. }
  753. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  754. window.addEventListener('load', () => {
  755. let colorsLayer = undefined
  756. let hasDarkRules = false
  757. for (const styleSheet of Array.from(document.styleSheets)) {
  758. let mediaRules = []
  759. for (const layerRule of styleSheet.cssRules) {
  760. if (!(layerRule instanceof CSSLayerBlockRule)) {
  761. continue
  762. }
  763. if (layerRule.name === 'colors') {
  764. colorsLayer = layerRule
  765. }
  766. for (const cssRule of layerRule.cssRules) {
  767. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  768. continue
  769. }
  770. // WARNING: Safari does not have/supports `conditionText`.
  771. if (cssRule.conditionText) {
  772. if (cssRule.conditionText !== prefersColorSchemeDark) {
  773. continue
  774. }
  775. } else {
  776. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  777. continue
  778. }
  779. }
  780. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  781. }
  782. }
  783. // WARNING: do not try to insert a Rule to a styleSheet you are
  784. // currently iterating on, otherwise the browser will be stuck
  785. // in a infinite loop…
  786. for (const mediaRule of mediaRules) {
  787. // Safari requires the `0` second parameter (even if default).
  788. colorsLayer.insertRule(mediaRule.cssText, 0)
  789. hasDarkRules = true
  790. }
  791. }
  792. if (hasDarkRules) {
  793. if ('customElements' in window && !customElements.get('theme-toggle')) {
  794. customElements.define('theme-toggle', ThemeToggle)
  795. }
  796. }
  797. })
  798. </script>
  799. </body>
  800. </html>