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 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  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 #enthousiasme
  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 #enthousiasme">
  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>#enthousiasme</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/04/14/" title="Lien permanent vers cet article">Apex 2</a> <time datetime="2024-04-14">14 avril 2024</time>
  132. </h2>
  133. <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>
  134. <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>
  135. <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>
  136. <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>
  137. <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>
  138. <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>
  139. <blockquote>
  140. <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>
  141. <p>Il y a du travail à faire pour transformer un jugement en&nbsp;allié.</p>
  142. <p><cite><a href="/david/2024/03/14/" title="Montre 2">Auto-citation</a></cite></p>
  143. </blockquote>
  144. <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>
  145. <figure>
  146. <a href="/static/david/2024/2024-04-14-recuperation.jpg"
  147. title="Cliquer pour une version haute résolution">
  148. <img
  149. src="/static/david/2024/2024-04-14-recuperation.jpg"
  150. width="960" height="2079"
  151. 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"
  152. sizes="min(100vw, calc(100vh * 960 / 2079))"
  153. loading="lazy"
  154. decoding="async"
  155. alt="Panneau de Récupération de l’application COROS.">
  156. </a>
  157. <figcaption>Suis-je vraiment en situation de fatigue / à 50% de mes capacités sur la majorité de mes sessions&nbsp;?!</figcaption>
  158. </figure>
  159. <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>
  160. <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>
  161. <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>
  162. <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>
  163. <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>
  164. <blockquote>
  165. <p><em>[Aujourd’hui, en allant à la piscine en courant]</em><br />
  166. — Pfiou, j’ai pas encore bien récupéré depuis vendredi…<br />
  167. — Ah je me disais bien que tu étais à la traîne, je pensais que c’était juste la vieillesse.<br />
  168. —&nbsp;🫠</p>
  169. </blockquote>
  170. <p>Difficile de vivre avec un <del>athlète élite</del> enfant de 10&nbsp;ans&nbsp;parfois.</p>
  171. <nav>
  172. <p>
  173. <a href="/david/2024/enthousiasme/"
  174. title="Liste de tous les articles 2024 associés à cette étiquette"
  175. rel="tag">#enthousiasme</a>
  176. <a href="/david/2024/laboratoire/"
  177. title="Liste de tous les articles 2024 associés à cette étiquette"
  178. rel="tag">#laboratoire</a>
  179. <a href="/david/2024/sport/"
  180. title="Liste de tous les articles 2024 associés à cette étiquette"
  181. rel="tag">#sport</a>
  182. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  183. </p>
  184. </nav>
  185. <h2>
  186. <a href="/david/2024/04/08/" title="Lien permanent vers cet article">Éclipse</a> <time datetime="2024-04-08">8 avril 2024</time>
  187. </h2>
  188. <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&nbsp;après-midi.</p>
  189. <p>L’éclipse totale était censée être de 1&#8239;min 45&#8239;sec à ma position mais alors en ressenti derrière l’objectif c’était du 20&nbsp;secondes&#8239;! À 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&nbsp;fin.</p>
  190. <figure>
  191. <a href="/static/david/2024/2024-04-08-eclipse-1.jpg"
  192. title="Cliquer pour une version haute résolution">
  193. <img
  194. src="/static/david/2024/2024-04-08-eclipse-1.jpg"
  195. width="2000" height="2000"
  196. 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"
  197. sizes="min(100vw, calc(100vh * 2000 / 2000))"
  198. loading="lazy"
  199. decoding="async"
  200. alt="Le moment de l’éclipse où la lune passe totalement devant le soleil.">
  201. </a>
  202. <figcaption>J’étais tellement content de découvrir des éruptions solaires au développement&nbsp;!</figcaption>
  203. </figure>
  204. <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&nbsp;matériel.</p>
  205. <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&nbsp;passer.</p>
  206. <figure>
  207. <a href="/static/david/2024/2024-04-08-eclipse-2.jpg"
  208. title="Cliquer pour une version haute résolution">
  209. <img
  210. src="/static/david/2024/2024-04-08-eclipse-2.jpg"
  211. width="3840" height="2560"
  212. 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"
  213. sizes="min(100vw, calc(100vh * 3840 / 2560))"
  214. loading="lazy"
  215. decoding="async"
  216. alt="Le moment de l’éclipse où la lune va découvrir le soleil.">
  217. </a>
  218. <figcaption>En mode halo au développement car c’est quand même&nbsp;sympa.</figcaption>
  219. </figure>
  220. <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&nbsp;sujet.</p>
  221. <a href="#hr-145" title="Lien vers cette section de la page"><hr id="hr-145" /></a>
  222. <p>Aussi, je suis en train de regarder <a data-link-domain="en.wikipedia.org" href="https://en.wikipedia.org/wiki/3_Body_Problem_(TV_series">3&nbsp;Body Problem</a>).</p>
  223. <nav>
  224. <p>
  225. <a href="/david/2024/enthousiasme/"
  226. title="Liste de tous les articles 2024 associés à cette étiquette"
  227. rel="tag">#enthousiasme</a>
  228. <a href="/david/2024/experience/"
  229. title="Liste de tous les articles 2024 associés à cette étiquette"
  230. rel="tag">#expérience</a>
  231. <a href="/david/2024/photographie/"
  232. title="Liste de tous les articles 2024 associés à cette étiquette"
  233. rel="tag">#photographie</a>
  234. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  235. </p>
  236. </nav>
  237. <h2>
  238. <a href="/david/2024/03/19/" title="Lien permanent vers cet article">Excitation</a> <time datetime="2024-03-19">19 mars 2024</time>
  239. </h2>
  240. <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&nbsp;modestie).</p>
  241. <p>Idée du jour&nbsp;: faire un <em>web component</em> qui s’intitulerait <code>&lt;page-crypt&gt;</code> en s’inspirant grandement de <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/">PageCrypt</a> (et de sa <a data-link-domain="github.com" href="https://github.com/Greenheart/pagecrypt">version à jour</a>). La génération de la page chiffrée pourrait <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">se faire en Python</a>.</p>
  242. <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&nbsp;plus.</p>
  243. <p>Je découvre au passage qu’il n’est pas trivial de <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem">convertir de l’unicode en base64 via JS</a>.</p>
  244. <p>Note&nbsp;: il existe aussi <a data-link-domain="github.com" href="https://github.com/robinmoisson/staticrypt">StatiCrypt</a>.</p>
  245. <a href="#hr-123" title="Lien vers cette section de la page"><hr id="hr-123" /></a>
  246. <blockquote lang="en">
  247. <p>If majority is always right – let’s eat shit… millions of flies can’t be&nbsp;wrong.</p>
  248. <p><cite><em>Statek</em>, Waldemar Łysiak, 1994</cite></p>
  249. </blockquote>
  250. <p>Cette citation aura fait ma&nbsp;journée.</p>
  251. <a href="#hr-124" title="Lien vers cette section de la page"><hr id="hr-124" /></a>
  252. <p>Je suis frustré par les capacités d’export des données de <a href="/david/2024/03/14/" title="Montre 2">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&nbsp;Vite.</em></p>
  253. <p>Il faut que je teste <a data-link-domain="github.com" href="https://github.com/xballoy/coros-api">coros-api</a> (TypeScript) et/ou <a data-link-domain="github.com" 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&nbsp;données.</p>
  254. <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 data-link-domain="tryterra.co" href="https://tryterra.co/integrations/coros">via une API tierce</a> (et très dispendieuse&#8239;!). Étrange et&nbsp;décevant…</p>
  255. <nav>
  256. <p>
  257. <a href="/david/2024/apprentissage/"
  258. title="Liste de tous les articles 2024 associés à cette étiquette"
  259. rel="tag">#apprentissage</a>
  260. <a href="/david/2024/enthousiasme/"
  261. title="Liste de tous les articles 2024 associés à cette étiquette"
  262. rel="tag">#enthousiasme</a>
  263. <a href="/david/2024/technique/"
  264. title="Liste de tous les articles 2024 associés à cette étiquette"
  265. rel="tag">#technique</a>
  266. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  267. </p>
  268. </nav>
  269. <h2>
  270. <a href="/david/2024/03/14/" title="Lien permanent vers cet article">Montre 2</a> <time datetime="2024-03-14">14 mars 2024</time>
  271. </h2>
  272. <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>
  273. <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>
  274. <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>
  275. <p>Il y a du travail à faire pour transformer un jugement en&nbsp;allié.</p>
  276. <blockquote>
  277. <p>Tu peux parler fort, exhiber ton savoir, assener tes arguments, brandir ta culture…<br />
  278. … mais la conversation est à sens unique et totalement stérile.<br />
  279. Au terme de l’échange tu demeures exactement le même, tu n’as pas évolué d’un&nbsp;pouce.</p>
  280. <p>La rencontre n’a pas eu&nbsp;lieu.</p>
  281. <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 />
  282. Vois ta balle de tennis comme le lien qui te rattache aux autres. Cultive-le tant que tu peux.<br />
  283. Ne cherche plus à lutter contre les autres pour être meilleur, Max, mais deviens meilleur grâce à&nbsp;eux.</p>
  284. <p>Le tennis est un art. L’art de&nbsp;l’échange.</p>
  285. <p><cite><em>Max Winson</em>, Jérémie&nbsp;Moreau</cite></p>
  286. </blockquote>
  287. <nav>
  288. <p>
  289. <a href="/david/2024/deception/"
  290. title="Liste de tous les articles 2024 associés à cette étiquette"
  291. rel="tag">#déception</a>
  292. <a href="/david/2024/enthousiasme/"
  293. title="Liste de tous les articles 2024 associés à cette étiquette"
  294. rel="tag">#enthousiasme</a>
  295. <a href="/david/2024/sport/"
  296. title="Liste de tous les articles 2024 associés à cette étiquette"
  297. rel="tag">#sport</a>
  298. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  299. </p>
  300. </nav>
  301. <form action="/david/recherche/" method="get">
  302. <fieldset>
  303. <legend>Recherche</legend>
  304. <label for="input-search">Termes de votre recherche :</label>
  305. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  306. <input type="submit" value="Chercher">
  307. <p id="indexation-infos">
  308. <small>
  309. Seuls les contenus de ces 8 dernières années sont indexés.
  310. </small>
  311. </p>
  312. </fieldset>
  313. </form>
  314. <aside>
  315. <theme-toggle></theme-toggle>
  316. </aside>
  317. </article>
  318. <hr>
  319. <footer>
  320. <p>
  321. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  322. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  323. <a href="http://larlet.com"
  324. title="Go to my English profile"
  325. data-instant>Pro</a>
  326. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  327. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  328. </p>
  329. <template id="theme-selector">
  330. <form>
  331. <style type="text/css">
  332. fieldset div {
  333. text-align: center;
  334. }
  335. </style>
  336. <fieldset>
  337. <legend>Thème</legend>
  338. <div>
  339. <label>
  340. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  341. Auto
  342. </label>
  343. <label>
  344. <input type="radio" value="dark" name="chosen-color-scheme">
  345. Foncé
  346. </label>
  347. <label>
  348. <input type="radio" value="light" name="chosen-color-scheme">
  349. Clair
  350. </label>
  351. </div>
  352. </fieldset>
  353. </form>
  354. </template>
  355. </footer>
  356. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  357. <script>
  358. class ThemeToggle extends HTMLElement {
  359. constructor() {
  360. super()
  361. const themeSelectorTemplate = document.querySelector('#theme-selector')
  362. const form = themeSelectorTemplate.content.firstElementChild
  363. this.attachShadow({ mode: 'open' })
  364. this.shadowRoot.appendChild(form.cloneNode(true))
  365. }
  366. connectedCallback() {
  367. const form = this.shadowRoot.querySelector('form')
  368. form.addEventListener('change', (e) => {
  369. const chosenColorScheme = e.target.value
  370. localStorage.setItem('theme', chosenColorScheme)
  371. toggleTheme(chosenColorScheme)
  372. })
  373. const selectedTheme = localStorage.getItem('theme')
  374. if (selectedTheme && selectedTheme !== 'undefined') {
  375. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  376. }
  377. }
  378. }
  379. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  380. window.addEventListener('load', () => {
  381. let colorsLayer = undefined
  382. let hasDarkRules = false
  383. for (const styleSheet of Array.from(document.styleSheets)) {
  384. let mediaRules = []
  385. for (const layerRule of styleSheet.cssRules) {
  386. if (!(layerRule instanceof CSSLayerBlockRule)) {
  387. continue
  388. }
  389. if (layerRule.name === 'colors') {
  390. colorsLayer = layerRule
  391. }
  392. for (const cssRule of layerRule.cssRules) {
  393. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  394. continue
  395. }
  396. // WARNING: Safari does not have/supports `conditionText`.
  397. if (cssRule.conditionText) {
  398. if (cssRule.conditionText !== prefersColorSchemeDark) {
  399. continue
  400. }
  401. } else {
  402. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  403. continue
  404. }
  405. }
  406. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  407. }
  408. }
  409. // WARNING: do not try to insert a Rule to a styleSheet you are
  410. // currently iterating on, otherwise the browser will be stuck
  411. // in a infinite loop…
  412. for (const mediaRule of mediaRules) {
  413. // Safari requires the `0` second parameter (even if default).
  414. colorsLayer.insertRule(mediaRule.cssText, 0)
  415. hasDarkRules = true
  416. }
  417. }
  418. if (hasDarkRules) {
  419. if ('customElements' in window && !customElements.get('theme-toggle')) {
  420. customElements.define('theme-toggle', ThemeToggle)
  421. }
  422. }
  423. })
  424. </script>
  425. </body>
  426. </html>