Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.html 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  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="Réveil à 5h30. Ce qui devait être une sortie Légère & Rapide se révèle ne pas être si Légère (autour de 12kg) car j’ai 4 jours de nourriture sur le dos et que des températures de -10°C sont annoncées ce qui décide de la taille (et donc poids) du duvet notamment.">
  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-04-20">20 avril 2024</time></p>
  139. </hgroup>
  140. </header>
  141. <nav>
  142. <p>
  143. <a rel="prev"
  144. href="/david/2024/04/18/"
  145. title="Publication précédente : Calme">← 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/04/22/"
  152. title="Publication suivante : Alimentation">Suivant →</a>
  153. </p>
  154. </nav>
  155. <p>Réveil à 5h30. Ce qui devait être une sortie <em>Légère &amp; Rapide</em> se révèle ne pas être si <em>Légère</em> (autour de 12kg) car j’ai 4&nbsp;jours de nourriture sur le dos et que des températures de -10°C sont annoncées ce qui décide de la taille (et donc poids) du duvet&nbsp;notamment.</p>
  156. <p>Niveau <em>Rapide</em>, si les premiers kilomètres se déroulent bien car la neige a fondue, dès que je passe dans la vallée suivante je me retrouve avec de la neige jusqu’aux genoux mais surtout qui casse sans prévenir pour atterrir dans le torrent de fonte en dessous. Je suis en baskets. La saisonnalité de mes erreurs me&nbsp;fatigue.</p>
  157. <p>Dès le 5<sup>e</sup> kilomètre, les pieds gelés et les chaussures trempées, je sens bien que ça ne va pas le faire. D’autant que je vais avoir du mal à faire sécher des chaussures avec les températures prévues en dormant dehors. Sans compter qu’à force de passer à travers la neige, j’ai ma cheville <a href="/david/2024/01/09/" title="Blessure">encore fragile</a> qui fatigue. Le vent se lève, il commence à grêler. Le moral&nbsp;flanche.</p>
  158. <p>Contre mauvaise fortune bon cœur, je décide de transformer ce Grand Tour en un Minuscule Tour à la journée. Il faut savoir ravaler son égo et accepter de revenir avec encore plus d’envie lorsque les conditions sont davantage acceptables —&nbsp;et surtout compatibles avec mes explorations du&nbsp;moment.</p>
  159. <p>J’ai&nbsp;appris&nbsp;:</p>
  160. <ul>
  161. <li>qu’il est possible de mettre chaque pied dans un sac type ZipLock pour essayer de garder ses chaussettes relativement sèches, attention une fois percés ça peut faire&nbsp;garrot&#8239;;</li>
  162. <li>qu’il est possible de faire sécher des chaussettes sur le sac et de faire un roulement à trois paires (toujours avoir une épingle à nourrice sur le sac) en changeant à chaque&nbsp;pause&#8239;;</li>
  163. <li>qu’il me faut des raquettes jusqu’à fin avril (je le réapprends tous les printemps, faudrait que ça commence à&nbsp;rentrer…)&#8239;;</li>
  164. <li>qu’il faut que je me rappelle que cette forêt a beaucoup plus de précipitations que ses voisines… et donc une période de fonte plus&nbsp;longue&#8239;;</li>
  165. <li>qu’il me faut trouver une meilleure manière de m’alimenter dans&nbsp;l’effort.</li>
  166. </ul>
  167. <p>Retour à la maison avec le physique pas trop amoché, il va falloir soigner le mental&nbsp;maintenant.</p>
  168. <nav>
  169. <p>
  170. <a href="/david/2024/apprentissage/"
  171. title="Liste de tous les articles 2024 associés à cette étiquette"
  172. rel="tag">#apprentissage</a>
  173. <a href="/david/2024/deception/"
  174. title="Liste de tous les articles 2024 associés à cette étiquette"
  175. rel="tag">#déception</a>
  176. <a href="/david/2024/foret/"
  177. title="Liste de tous les articles 2024 associés à cette étiquette"
  178. rel="tag">#forêt</a>
  179. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  180. </p>
  181. </nav>
  182. <nav>
  183. <p>
  184. <a rel="prev"
  185. href="/david/2024/04/18/"
  186. title="Publication précédente : Calme">← Précédent</a> •
  187. <a href="/david/2024/" title="Liste des publications récentes">↑ En 2024</a>
  188. • <a rel="next"
  189. href="/david/2024/04/22/"
  190. title="Publication suivante : Alimentation">Suivant →</a>
  191. </p>
  192. </nav>
  193. <form action="/david/recherche/" method="get">
  194. <fieldset>
  195. <legend>Recherche</legend>
  196. <label for="input-search">Termes de votre recherche :</label>
  197. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  198. <input type="submit" value="Chercher">
  199. <p id="indexation-infos">
  200. <small>
  201. Seuls les contenus de ces 8 dernières années sont indexés.
  202. </small>
  203. </p>
  204. </fieldset>
  205. </form>
  206. <aside>
  207. <theme-toggle></theme-toggle>
  208. </aside>
  209. </article>
  210. <hr>
  211. <footer>
  212. <p>
  213. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  214. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  215. <a href="http://larlet.com"
  216. title="Go to my English profile"
  217. data-instant>Pro</a>
  218. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  219. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  220. </p>
  221. <template id="theme-selector">
  222. <form>
  223. <style type="text/css">
  224. fieldset div {
  225. text-align: center;
  226. }
  227. </style>
  228. <fieldset>
  229. <legend>Thème</legend>
  230. <div>
  231. <label>
  232. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  233. Auto
  234. </label>
  235. <label>
  236. <input type="radio" value="dark" name="chosen-color-scheme">
  237. Foncé
  238. </label>
  239. <label>
  240. <input type="radio" value="light" name="chosen-color-scheme">
  241. Clair
  242. </label>
  243. </div>
  244. </fieldset>
  245. </form>
  246. </template>
  247. </footer>
  248. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  249. <script>
  250. class ThemeToggle extends HTMLElement {
  251. constructor() {
  252. super()
  253. const themeSelectorTemplate = document.querySelector('#theme-selector')
  254. const form = themeSelectorTemplate.content.firstElementChild
  255. this.attachShadow({ mode: 'open' })
  256. this.shadowRoot.appendChild(form.cloneNode(true))
  257. }
  258. connectedCallback() {
  259. const form = this.shadowRoot.querySelector('form')
  260. form.addEventListener('change', (e) => {
  261. const chosenColorScheme = e.target.value
  262. localStorage.setItem('theme', chosenColorScheme)
  263. toggleTheme(chosenColorScheme)
  264. })
  265. const selectedTheme = localStorage.getItem('theme')
  266. if (selectedTheme && selectedTheme !== 'undefined') {
  267. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  268. }
  269. }
  270. }
  271. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  272. window.addEventListener('load', () => {
  273. let colorsLayer = undefined
  274. let hasDarkRules = false
  275. for (const styleSheet of Array.from(document.styleSheets)) {
  276. let mediaRules = []
  277. for (const layerRule of styleSheet.cssRules) {
  278. if (!(layerRule instanceof CSSLayerBlockRule)) {
  279. continue
  280. }
  281. if (layerRule.name === 'colors') {
  282. colorsLayer = layerRule
  283. }
  284. for (const cssRule of layerRule.cssRules) {
  285. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  286. continue
  287. }
  288. // WARNING: Safari does not have/supports `conditionText`.
  289. if (cssRule.conditionText) {
  290. if (cssRule.conditionText !== prefersColorSchemeDark) {
  291. continue
  292. }
  293. } else {
  294. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  295. continue
  296. }
  297. }
  298. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  299. }
  300. }
  301. // WARNING: do not try to insert a Rule to a styleSheet you are
  302. // currently iterating on, otherwise the browser will be stuck
  303. // in a infinite loop…
  304. for (const mediaRule of mediaRules) {
  305. // Safari requires the `0` second parameter (even if default).
  306. colorsLayer.insertRule(mediaRule.cssText, 0)
  307. hasDarkRules = true
  308. }
  309. }
  310. if (hasDarkRules) {
  311. if ('customElements' in window && !customElements.get('theme-toggle')) {
  312. customElements.define('theme-toggle', ThemeToggle)
  313. }
  314. }
  315. })
  316. </script>
  317. <script src="/static/david/js/popper-2.11.8.min.js"></script>
  318. <script src="/static/david/js/tippy-bundle-6.3.7.umd.min.js"></script>
  319. <script>
  320. tippy('[data-tippy]', {
  321. content(reference) {
  322. reference.addEventListener('click', (e) => e.preventDefault())
  323. return `
  324. <h3 lang="fr">
  325. <img src="${reference.dataset.favicon}" loading="lazy">
  326. <a href="${reference.dataset.source}"
  327. >Article sur ${reference.dataset.domain}</a></h3>
  328. <p lang="${reference.hreflang}"><em>${reference.dataset.description}</em></p>
  329. <div class="tippy-links" lang="fr">
  330. <a href="${reference.href}">Archive au ${reference.dataset.date}</a>
  331. </div>
  332. `
  333. },
  334. allowHTML: true,
  335. interactive: true,
  336. delay: [150, 700],
  337. hideOnClick: false
  338. })
  339. </script>
  340. <script type="module">
  341. import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'
  342. const markObserver = new IntersectionObserver((entries, observer) => {
  343. const computedStyle = getComputedStyle(document.documentElement)
  344. const markBackground = computedStyle.getPropertyValue('--mark-background')
  345. for (const entry of entries) {
  346. if (entry.intersectionRatio === 0) continue
  347. const markElement = entry.target
  348. markElement.style.backgroundColor = 'inherit'
  349. const annotation = annotate(
  350. markElement, {
  351. type: 'highlight',
  352. multiline: true,
  353. color: markBackground,
  354. // animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
  355. animate: false
  356. }
  357. )
  358. annotation.show()
  359. observer.unobserve(markElement)
  360. }
  361. }, {threshold: 1.0})
  362. for (const markElement of document.querySelectorAll('mark')) {
  363. markObserver.observe(markElement)
  364. }
  365. </script>
  366. </body>
  367. </html>