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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  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 2
  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="Le vent fera tomber des branches, L’aube viendra dans sa mârde blanche.">
  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. .tippy-content {
  107. min-width: 280px;
  108. padding: .5rem;
  109. font-size: calc(var(--fluid-0) * 0.8);
  110. font-family: var(--labor-font);
  111. letter-spacing: initial;
  112. text-align: left;
  113. }
  114. .tippy-content h3 {
  115. margin-top: 0;
  116. }
  117. .tippy-content h3 img {
  118. max-width: 2rem;
  119. max-height: 2rem;
  120. display: inline-block;
  121. }
  122. .tippy-content .tippy-links {
  123. display: flex;
  124. justify-content: space-around;
  125. }
  126. .tippy-content a {
  127. padding: .4rem;
  128. color: #F06048;
  129. }
  130. </style>
  131. <body data-instant-intensity="viewport-all">
  132. <article>
  133. <header>
  134. <hgroup>
  135. <h1>Jour 2</h1>
  136. <p>Le <time datetime="2024-03-30">30 mars 2024</time></p>
  137. </hgroup>
  138. </header>
  139. <nav>
  140. <p>
  141. <a rel="prev"
  142. href="/david/2024/03/29/"
  143. title="Publication précédente : Jour 1">← Précédent</a> •
  144. <a href="/david/" title="Aller à l’accueil" rel="up">Accueil</a>
  145. <a href="/david/recherche/"
  146. title="Aller à la page de recherche"
  147. rel="search" data-no-instant>Recherche</a>
  148. • <a rel="next"
  149. href="/david/2024/04/02/"
  150. title="Publication suivante : Porte">Suivant →</a>
  151. </p>
  152. </nav>
  153. <blockquote>
  154. <p>Le vent fera tomber des branches,<br />
  155. L’aube viendra dans sa mârde&nbsp;blanche.</p>
  156. <p><cite><em>Mars</em>, Cissou du «&nbsp;vrai&nbsp;» sud-ouest (fin du&nbsp;débat)</cite></p>
  157. </blockquote>
  158. <p>La montre m’indique avoir dormi 5h. Optimiste. Je me lève relativement tôt car je ne veux pas trop m’enfoncer dans la neige en début d’après-midi. Les seules traces de retour bien profondes de la veille m’ont fait un peu peur à ce sujet. J’ai greloté une partie de la nuit (oups, des calories en moins), ça motive à s’extirper du duvet&nbsp;aussi…</p>
  159. <p>Le temps de déjeuner et de plier le camp, la neige se met à tomber. Il neige faiblement pendant les 2&#8239;km d’ascension qui m’ont séché la veille. Vu le nombre de nouvelles branches que je dois enjamber, je suis bien content de ne pas m’en être pris une sur la tête cette nuit. J’espérais pouvoir bénéficier d’un lever de soleil mais c’est compter sans la couverture&nbsp;nuageuse.</p>
  160. <figure>
  161. <a href="/static/david/2024/2024-03-30-lac.jpg"
  162. title="Cliquer pour une version haute résolution">
  163. <img
  164. src="/static/david/2024/2024-03-30-lac.jpg"
  165. width="3024" height="4032"
  166. srcset="/static/david/2024/2024-03-30-lac.jpg 3024w, /static/david/2024/2024-03-30-lac_660x440.jpg 660w, /static/david/2024/2024-03-30-lac_990x660.jpg 990w, /static/david/2024/2024-03-30-lac_1320x880.jpg 1320w"
  167. sizes="min(100vw, calc(100vh * 3024 / 4032))"
  168. loading="lazy"
  169. decoding="async"
  170. alt="Un lac gelé.">
  171. </a>
  172. <figcaption>Un de ces paysages&nbsp;typiques.</figcaption>
  173. </figure>
  174. <p>Je découvre qu’il faut avoir une trace aller et une autre retour car la montre ne sait pas réaliser que je ne fais pas du <em>moonwalk</em> toute seule. Étonnant.</p>
  175. <p>L’un des inconvénient d’être reparti à la fraîche, c’est que les rochers mouillés sont devenus bien glissants mais la boue a gelé. Il faut bien savoir choisir son poison dans ces&nbsp;circonstances&nbsp;😅.</p>
  176. <p>Au fil du chemin, je réalise que je ne suis pas prêt à enchaîner en rando-course sur plusieurs jours et qu’il va falloir travailler l’endurance avant, ce que j’ai commencé mais ça va me prendre plusieurs mois pour arriver à la forme qui me semble&nbsp;nécessaire.</p>
  177. <figure>
  178. <a href="/static/david/2024/2024-03-30-ruisseau.jpg"
  179. title="Cliquer pour une version haute résolution">
  180. <img
  181. src="/static/david/2024/2024-03-30-ruisseau.jpg"
  182. width="3024" height="4032"
  183. srcset="/static/david/2024/2024-03-30-ruisseau.jpg 3024w, /static/david/2024/2024-03-30-ruisseau_660x440.jpg 660w, /static/david/2024/2024-03-30-ruisseau_990x660.jpg 990w, /static/david/2024/2024-03-30-ruisseau_1320x880.jpg 1320w"
  184. sizes="min(100vw, calc(100vh * 3024 / 4032))"
  185. loading="lazy"
  186. decoding="async"
  187. alt="Un ruisseau gelé.">
  188. </a>
  189. <figcaption>La couche de glace depuis hier me permet de mesurer la température&nbsp;nocturne.</figcaption>
  190. </figure>
  191. <p>J’espère pouvoir alléger le sac aussi avec les températures qui remontent. Je peux probablement réduire de 2&nbsp;kilos par dizaine de degrés gagnée, ce qui n’est pas&nbsp;négligeable&#8239;!</p>
  192. <p>Une sortie plus en mode recherche que l’habituelle exploration / contemplation / plaisir. Toujours cet arbitrage pour réussir à être dans de bonnes conditions tout en recherchant l’isolement&nbsp;relatif.</p>
  193. <p>Les derniers kilomètres sont bien longs (je suis limite en hypo), surtout que je m’étais garé assez loin du départ pour estimer ce que pourrait être une jonction du <a data-link-domain="randoquebec.ca" href="https://www.randoquebec.ca/sentier-national-au-quebec/">sentier national</a> qui enchainerait trois tronçons dont j’ai maintenant fait tous les morceaux. Envisageable dans des conditions non-hivernales mais il faut que j’arrive à me faire déposer à l’une des&nbsp;extrémités.</p>
  194. <nav>
  195. <p>
  196. <a href="/david/2024/experience/"
  197. title="Liste de tous les articles 2024 associés à cette étiquette"
  198. rel="tag">#expérience</a>
  199. <a href="/david/2024/foret/"
  200. title="Liste de tous les articles 2024 associés à cette étiquette"
  201. rel="tag">#forêt</a>
  202. <a href="/david/2024/partage/"
  203. title="Liste de tous les articles 2024 associés à cette étiquette"
  204. rel="tag">#partage</a>
  205. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  206. </p>
  207. </nav>
  208. <nav>
  209. <p>
  210. <a rel="prev"
  211. href="/david/2024/03/29/"
  212. title="Publication précédente : Jour 1">← Précédent</a> •
  213. <a href="/david/2024/" title="Liste des publications récentes">↑ En 2024</a>
  214. • <a rel="next"
  215. href="/david/2024/04/02/"
  216. title="Publication suivante : Porte">Suivant →</a>
  217. </p>
  218. </nav>
  219. <form action="/david/recherche/" method="get">
  220. <fieldset>
  221. <legend>Recherche</legend>
  222. <label for="input-search">Termes de votre recherche :</label>
  223. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  224. <input type="submit" value="Chercher">
  225. <p id="indexation-infos">
  226. <small>
  227. Seuls les contenus de ces 8 dernières années sont indexés.
  228. </small>
  229. </p>
  230. </fieldset>
  231. </form>
  232. <aside>
  233. <theme-toggle></theme-toggle>
  234. </aside>
  235. </article>
  236. <hr>
  237. <footer>
  238. <p>
  239. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  240. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  241. <a href="http://larlet.com"
  242. title="Go to my English profile"
  243. data-instant>Pro</a>
  244. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  245. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  246. </p>
  247. <template id="theme-selector">
  248. <form>
  249. <style type="text/css">
  250. fieldset div {
  251. text-align: center;
  252. }
  253. </style>
  254. <fieldset>
  255. <legend>Thème</legend>
  256. <div>
  257. <label>
  258. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  259. Auto
  260. </label>
  261. <label>
  262. <input type="radio" value="dark" name="chosen-color-scheme">
  263. Foncé
  264. </label>
  265. <label>
  266. <input type="radio" value="light" name="chosen-color-scheme">
  267. Clair
  268. </label>
  269. </div>
  270. </fieldset>
  271. </form>
  272. </template>
  273. </footer>
  274. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  275. <script>
  276. class ThemeToggle extends HTMLElement {
  277. constructor() {
  278. super()
  279. const themeSelectorTemplate = document.querySelector('#theme-selector')
  280. const form = themeSelectorTemplate.content.firstElementChild
  281. this.attachShadow({ mode: 'open' })
  282. this.shadowRoot.appendChild(form.cloneNode(true))
  283. }
  284. connectedCallback() {
  285. const form = this.shadowRoot.querySelector('form')
  286. form.addEventListener('change', (e) => {
  287. const chosenColorScheme = e.target.value
  288. localStorage.setItem('theme', chosenColorScheme)
  289. toggleTheme(chosenColorScheme)
  290. })
  291. const selectedTheme = localStorage.getItem('theme')
  292. if (selectedTheme && selectedTheme !== 'undefined') {
  293. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  294. }
  295. }
  296. }
  297. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  298. window.addEventListener('load', () => {
  299. let colorsLayer = undefined
  300. let hasDarkRules = false
  301. for (const styleSheet of Array.from(document.styleSheets)) {
  302. let mediaRules = []
  303. for (const layerRule of styleSheet.cssRules) {
  304. if (!(layerRule instanceof CSSLayerBlockRule)) {
  305. continue
  306. }
  307. if (layerRule.name === 'colors') {
  308. colorsLayer = layerRule
  309. }
  310. for (const cssRule of layerRule.cssRules) {
  311. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  312. continue
  313. }
  314. // WARNING: Safari does not have/supports `conditionText`.
  315. if (cssRule.conditionText) {
  316. if (cssRule.conditionText !== prefersColorSchemeDark) {
  317. continue
  318. }
  319. } else {
  320. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  321. continue
  322. }
  323. }
  324. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  325. }
  326. }
  327. // WARNING: do not try to insert a Rule to a styleSheet you are
  328. // currently iterating on, otherwise the browser will be stuck
  329. // in a infinite loop…
  330. for (const mediaRule of mediaRules) {
  331. // Safari requires the `0` second parameter (even if default).
  332. colorsLayer.insertRule(mediaRule.cssText, 0)
  333. hasDarkRules = true
  334. }
  335. }
  336. if (hasDarkRules) {
  337. if ('customElements' in window && !customElements.get('theme-toggle')) {
  338. customElements.define('theme-toggle', ThemeToggle)
  339. }
  340. }
  341. })
  342. </script>
  343. <script src="/static/david/js/popper-2.11.8.min.js"></script>
  344. <script src="/static/david/js/tippy-bundle-6.3.7.umd.min.js"></script>
  345. <script>
  346. tippy('[data-tippy]', {
  347. content(reference) {
  348. reference.addEventListener('click', (e) => e.preventDefault())
  349. return `
  350. <h3 lang="fr">
  351. <img src="${reference.dataset.favicon}" loading="lazy">
  352. <a href="${reference.dataset.source}"
  353. >Article sur ${reference.dataset.domain}</a></h3>
  354. <p lang="${reference.hreflang}"><em>${reference.dataset.description}</em></p>
  355. <div class="tippy-links" lang="fr">
  356. <a href="${reference.href}">Archive au ${reference.dataset.date}</a>
  357. </div>
  358. `
  359. },
  360. allowHTML: true,
  361. interactive: true,
  362. delay: [150, 700],
  363. hideOnClick: false
  364. })
  365. </script>
  366. <script type="module">
  367. import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'
  368. const markObserver = new IntersectionObserver((entries, observer) => {
  369. const computedStyle = getComputedStyle(document.documentElement)
  370. const markBackground = computedStyle.getPropertyValue('--mark-background')
  371. for (const entry of entries) {
  372. if (entry.intersectionRatio === 0) continue
  373. const markElement = entry.target
  374. markElement.style.backgroundColor = 'inherit'
  375. const annotation = annotate(
  376. markElement, {
  377. type: 'highlight',
  378. multiline: true,
  379. color: markBackground,
  380. // animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
  381. animate: false
  382. }
  383. )
  384. annotation.show()
  385. observer.unobserve(markElement)
  386. }
  387. }, {threshold: 1.0})
  388. for (const markElement of document.querySelectorAll('mark')) {
  389. markObserver.observe(markElement)
  390. }
  391. </script>
  392. </body>
  393. </html>