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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  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. Jour 1
  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="There’s a difference between knowing the path and walking the path.">
  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. <!-- To get attribution when linking on mastodon. -->
  106. <meta name="fediverse:creator" content="@david@larlet.fr">
  107. <style type="text/css">
  108. .tippy-content {
  109. min-width: 280px;
  110. padding: .5rem;
  111. font-size: calc(var(--fluid-0) * 0.8);
  112. font-family: var(--labor-font);
  113. letter-spacing: initial;
  114. text-align: left;
  115. }
  116. .tippy-content h3 {
  117. margin-top: 0;
  118. }
  119. .tippy-content h3 img {
  120. max-width: 2rem;
  121. max-height: 2rem;
  122. display: inline-block;
  123. }
  124. .tippy-content .tippy-links {
  125. display: flex;
  126. justify-content: space-around;
  127. }
  128. .tippy-content a {
  129. padding: .4rem;
  130. color: #F06048;
  131. }
  132. </style>
  133. <body data-instant-intensity="viewport-all">
  134. <article>
  135. <header>
  136. <hgroup>
  137. <h1>Jour 1</h1>
  138. <p>Le <time datetime="2024-05-04">4 mai 2024</time></p>
  139. </hgroup>
  140. </header>
  141. <nav>
  142. <p>
  143. <a rel="prev"
  144. href="/david/2024/04/23/"
  145. title="Publication précédente : 42">← Précédent</a> •
  146. <a href="/david/" title="Aller à l’accueil" rel="up">Accueil</a>
  147. <a href="/david/recherche/"
  148. title="Aller à la page de recherche"
  149. rel="search" data-no-instant>Recherche</a>
  150. • <a rel="next"
  151. href="/david/2024/05/05/"
  152. title="Publication suivante : Jour 2">Suivant →</a>
  153. </p>
  154. </nav>
  155. <blockquote lang="en">
  156. <p>There’s a difference between knowing the path and walking the&nbsp;path.</p>
  157. <p><cite>Morpheus, donnant des conseils Komoot à&nbsp;Néo.</cite></p>
  158. </blockquote>
  159. <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>
  160. <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>
  161. <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>
  162. <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>
  163. <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>
  164. <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>
  165. <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>
  166. <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>
  167. <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>
  168. <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>
  169. <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>
  170. <figure>
  171. <a href="/static/david/2024/2024-05-04-bonheur-boules.jpg"
  172. title="Cliquer pour une version haute résolution">
  173. <img
  174. src="/static/david/2024/2024-05-04-bonheur-boules.jpg"
  175. width="2922" height="2922"
  176. 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"
  177. sizes="min(100vw, calc(100vh * 2922 / 2922))"
  178. loading="lazy"
  179. decoding="async"
  180. alt="Photo du livre «&nbsp;Le bonheur est dans les boules&nbsp;» emprunté à la bibliothèque.">
  181. </a>
  182. <figcaption>Le bonheur est dans les boules. #OhWait</figcaption>
  183. </figure>
  184. <nav>
  185. <p>
  186. <a href="/david/2024/aventure/"
  187. title="Liste de tous les articles 2024 associés à cette étiquette"
  188. rel="tag">#aventure</a>
  189. <a href="/david/2024/foret/"
  190. title="Liste de tous les articles 2024 associés à cette étiquette"
  191. rel="tag">#forêt</a>
  192. <a href="/david/2024/sport/"
  193. title="Liste de tous les articles 2024 associés à cette étiquette"
  194. rel="tag">#sport</a>
  195. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  196. </p>
  197. </nav>
  198. <nav>
  199. <p>
  200. <a rel="prev"
  201. href="/david/2024/04/23/"
  202. title="Publication précédente : 42">← Précédent</a> •
  203. <a href="/david/2024/" title="Liste des publications récentes">↑ En 2024</a>
  204. • <a rel="next"
  205. href="/david/2024/05/05/"
  206. title="Publication suivante : Jour 2">Suivant →</a>
  207. </p>
  208. </nav>
  209. <form action="/david/recherche/" method="get">
  210. <fieldset>
  211. <legend>Recherche</legend>
  212. <label for="input-search">Termes de votre recherche :</label>
  213. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  214. <input type="submit" value="Chercher">
  215. <p id="indexation-infos">
  216. <small>
  217. Seuls les contenus de ces 8 dernières années sont indexés.
  218. </small>
  219. </p>
  220. </fieldset>
  221. </form>
  222. <aside>
  223. <theme-toggle></theme-toggle>
  224. </aside>
  225. </article>
  226. <hr>
  227. <footer>
  228. <p>
  229. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  230. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  231. <a href="http://larlet.com"
  232. title="Go to my English profile"
  233. data-instant>Pro</a>
  234. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  235. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  236. </p>
  237. <template id="theme-selector">
  238. <form>
  239. <style type="text/css">
  240. fieldset div {
  241. text-align: center;
  242. }
  243. </style>
  244. <fieldset>
  245. <legend>Thème</legend>
  246. <div>
  247. <label>
  248. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  249. Auto
  250. </label>
  251. <label>
  252. <input type="radio" value="dark" name="chosen-color-scheme">
  253. Foncé
  254. </label>
  255. <label>
  256. <input type="radio" value="light" name="chosen-color-scheme">
  257. Clair
  258. </label>
  259. </div>
  260. </fieldset>
  261. </form>
  262. </template>
  263. </footer>
  264. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  265. <script>
  266. class ThemeToggle extends HTMLElement {
  267. constructor() {
  268. super()
  269. const themeSelectorTemplate = document.querySelector('#theme-selector')
  270. const form = themeSelectorTemplate.content.firstElementChild
  271. this.attachShadow({ mode: 'open' })
  272. this.shadowRoot.appendChild(form.cloneNode(true))
  273. }
  274. connectedCallback() {
  275. const form = this.shadowRoot.querySelector('form')
  276. form.addEventListener('change', (e) => {
  277. const chosenColorScheme = e.target.value
  278. localStorage.setItem('theme', chosenColorScheme)
  279. toggleTheme(chosenColorScheme)
  280. })
  281. const selectedTheme = localStorage.getItem('theme')
  282. if (selectedTheme && selectedTheme !== 'undefined') {
  283. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  284. }
  285. }
  286. }
  287. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  288. window.addEventListener('load', () => {
  289. let colorsLayer = undefined
  290. let hasDarkRules = false
  291. for (const styleSheet of Array.from(document.styleSheets)) {
  292. let mediaRules = []
  293. for (const layerRule of styleSheet.cssRules) {
  294. if (!(layerRule instanceof CSSLayerBlockRule)) {
  295. continue
  296. }
  297. if (layerRule.name === 'colors') {
  298. colorsLayer = layerRule
  299. }
  300. for (const cssRule of layerRule.cssRules) {
  301. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  302. continue
  303. }
  304. // WARNING: Safari does not have/supports `conditionText`.
  305. if (cssRule.conditionText) {
  306. if (cssRule.conditionText !== prefersColorSchemeDark) {
  307. continue
  308. }
  309. } else {
  310. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  311. continue
  312. }
  313. }
  314. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  315. }
  316. }
  317. // WARNING: do not try to insert a Rule to a styleSheet you are
  318. // currently iterating on, otherwise the browser will be stuck
  319. // in a infinite loop…
  320. for (const mediaRule of mediaRules) {
  321. // Safari requires the `0` second parameter (even if default).
  322. colorsLayer.insertRule(mediaRule.cssText, 0)
  323. hasDarkRules = true
  324. }
  325. }
  326. if (hasDarkRules) {
  327. if ('customElements' in window && !customElements.get('theme-toggle')) {
  328. customElements.define('theme-toggle', ThemeToggle)
  329. }
  330. }
  331. })
  332. </script>
  333. <script src="/static/david/js/popper-2.11.8.min.js"></script>
  334. <script src="/static/david/js/tippy-bundle-6.3.7.umd.min.js"></script>
  335. <script>
  336. tippy('[data-tippy]', {
  337. content(reference) {
  338. reference.addEventListener('click', (e) => e.preventDefault())
  339. return `
  340. <h3 lang="fr">
  341. <img src="${reference.dataset.favicon}" loading="lazy">
  342. <a href="${reference.dataset.source}"
  343. >Article sur ${reference.dataset.domain}</a></h3>
  344. <p lang="${reference.hreflang}"><em>${reference.dataset.description}</em></p>
  345. <div class="tippy-links" lang="fr">
  346. <a href="${reference.href}">Archive au ${reference.dataset.date}</a>
  347. </div>
  348. `
  349. },
  350. allowHTML: true,
  351. interactive: true,
  352. delay: [150, 700],
  353. hideOnClick: false
  354. })
  355. </script>
  356. <script type="module">
  357. import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'
  358. const markObserver = new IntersectionObserver((entries, observer) => {
  359. const computedStyle = getComputedStyle(document.documentElement)
  360. const markBackground = computedStyle.getPropertyValue('--mark-background')
  361. for (const entry of entries) {
  362. if (entry.intersectionRatio === 0) continue
  363. const markElement = entry.target
  364. markElement.style.backgroundColor = 'inherit'
  365. const annotation = annotate(
  366. markElement, {
  367. type: 'highlight',
  368. multiline: true,
  369. color: markBackground,
  370. // animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
  371. animate: false
  372. }
  373. )
  374. annotation.show()
  375. observer.unobserve(markElement)
  376. }
  377. }, {threshold: 1.0})
  378. for (const markElement of document.querySelectorAll('mark')) {
  379. markObserver.observe(markElement)
  380. }
  381. </script>
  382. </body>
  383. </html>