Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

index.html 58KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839
  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 #laboratoire
  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 #laboratoire">
  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>#laboratoire</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/22/" title="Lien permanent vers cet article">Alimentation</a> <time datetime="2024-04-22">22 avril 2024</time>
  132. </h2>
  133. <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>
  134. <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>
  135. <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>
  136. <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>
  137. <a href="#hr-157" title="Lien vers cette section de la page"><hr id="hr-157" /></a>
  138. <blockquote lang="en">
  139. <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>
  140. <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>
  141. <p><cite><em><a data-link-domain="everythingchanges.us" href="https://everythingchanges.us/blog/what-you-see/" hreflang="en"
  142. title="Consultation de l’article (anglais)">What you see | everything changes</a>
  143. <a href="/david/cache/2024/1fc13a9dd6654dd40f95de0d7d657128/" hreflang="en"
  144. data-tippy data-description="Attending to your own attention."
  145. data-source="https://everythingchanges.us/blog/what-you-see/"
  146. data-date="2024-04-22"
  147. data-favicon="https://everythingchanges.us/favicon.ico"
  148. data-domain="everythingchanges.us"
  149. ><svg xmlns="http://www.w3.org/2000/svg"
  150. width="24" height="24" viewBox="0 0 24 24" fill="none"
  151. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  152. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  153. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  154. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  155. </svg>
  156. <span class="sr-only">[archive]</span></a></em></cite></p>
  157. </blockquote>
  158. <p>🤐</p>
  159. <a href="#hr-158" title="Lien vers cette section de la page"><hr id="hr-158" /></a>
  160. <blockquote>
  161. <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>
  162. <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"
  163. title="Consultation de l’article">Les hommes doux sont-ils l’avenir du féminisme&#8239;?</a>
  164. <a href="/david/cache/2024/ece1ee6687c7070e9bf39adb74294b8c/" hreflang="fr"
  165. 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"
  166. data-source="https://blog.ecologie-politique.eu/post/Les-hommes-doux-sont-ils-l-avenir-du-feminisme"
  167. data-date="2024-04-22"
  168. data-favicon=""
  169. data-domain="blog.ecologie-politique.eu"
  170. ><svg xmlns="http://www.w3.org/2000/svg"
  171. width="24" height="24" viewBox="0 0 24 24" fill="none"
  172. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  173. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  174. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  175. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  176. </svg>
  177. <span class="sr-only">[archive]</span></a></em></cite></p>
  178. </blockquote>
  179. <p>Ça pique là où il faut que ça&nbsp;pique.</p>
  180. <a href="#hr-159" title="Lien vers cette section de la page"><hr id="hr-159" /></a>
  181. <blockquote lang="en">
  182. <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>
  183. <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>
  184. <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"
  185. title="Consultation de l’article (anglais)">GitHub comments abused to push malware via Microsoft repo URLs</a>
  186. <a href="/david/cache/2024/81659ceed4b37a8c94095c3b743fe13a/" hreflang="en"
  187. 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."
  188. data-source="https://www.bleepingcomputer.com/news/security/github-comments-abused-to-push-malware-via-microsoft-repo-urls/"
  189. data-date="2024-04-22"
  190. data-favicon="https://www.bleepstatic.com/favicon/bleeping.ico"
  191. data-domain="bleepingcomputer.com"
  192. ><svg xmlns="http://www.w3.org/2000/svg"
  193. width="24" height="24" viewBox="0 0 24 24" fill="none"
  194. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  195. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  196. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  197. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  198. </svg>
  199. <span class="sr-only">[archive]</span></a></em></cite></p>
  200. </blockquote>
  201. <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>
  202. <nav>
  203. <p>
  204. <a href="/david/2024/adaptation/"
  205. title="Liste de tous les articles 2024 associés à cette étiquette"
  206. rel="tag">#adaptation</a>
  207. <a href="/david/2024/laboratoire/"
  208. title="Liste de tous les articles 2024 associés à cette étiquette"
  209. rel="tag">#laboratoire</a>
  210. <a href="/david/2024/sport/"
  211. title="Liste de tous les articles 2024 associés à cette étiquette"
  212. rel="tag">#sport</a>
  213. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  214. </p>
  215. </nav>
  216. <h2>
  217. <a href="/david/2024/04/14/" title="Lien permanent vers cet article">Apex 2</a> <time datetime="2024-04-14">14 avril 2024</time>
  218. </h2>
  219. <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>
  220. <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>
  221. <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>
  222. <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>
  223. <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>
  224. <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>
  225. <blockquote>
  226. <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>
  227. <p>Il y a du travail à faire pour transformer un jugement en&nbsp;allié.</p>
  228. <p><cite><a href="/david/2024/03/14/" title="Montre 2">Auto-citation</a></cite></p>
  229. </blockquote>
  230. <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>
  231. <figure>
  232. <a href="/static/david/2024/2024-04-14-recuperation.jpg"
  233. title="Cliquer pour une version haute résolution">
  234. <img
  235. src="/static/david/2024/2024-04-14-recuperation.jpg"
  236. width="960" height="2079"
  237. 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"
  238. sizes="min(100vw, calc(100vh * 960 / 2079))"
  239. loading="lazy"
  240. decoding="async"
  241. alt="Panneau de Récupération de l’application COROS.">
  242. </a>
  243. <figcaption>Suis-je vraiment en situation de fatigue / à 50% de mes capacités sur la majorité de mes sessions&nbsp;?!</figcaption>
  244. </figure>
  245. <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>
  246. <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>
  247. <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>
  248. <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>
  249. <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>
  250. <blockquote>
  251. <p><em>[Aujourd’hui, en allant à la piscine en courant]</em><br />
  252. — Pfiou, j’ai pas encore bien récupéré depuis vendredi…<br />
  253. — Ah je me disais bien que tu étais à la traîne, je pensais que c’était juste la vieillesse.<br />
  254. —&nbsp;🫠</p>
  255. </blockquote>
  256. <p>Difficile de vivre avec un <del>athlète élite</del> enfant de 10&nbsp;ans&nbsp;parfois.</p>
  257. <nav>
  258. <p>
  259. <a href="/david/2024/enthousiasme/"
  260. title="Liste de tous les articles 2024 associés à cette étiquette"
  261. rel="tag">#enthousiasme</a>
  262. <a href="/david/2024/laboratoire/"
  263. title="Liste de tous les articles 2024 associés à cette étiquette"
  264. rel="tag">#laboratoire</a>
  265. <a href="/david/2024/sport/"
  266. title="Liste de tous les articles 2024 associés à cette étiquette"
  267. rel="tag">#sport</a>
  268. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  269. </p>
  270. </nav>
  271. <h2>
  272. <a href="/david/2024/03/20/" title="Lien permanent vers cet article">PageCrypt</a> <time datetime="2024-03-20">20 mars 2024</time>
  273. </h2>
  274. <p><a href="/david/2024/03/19/" title="Excitation">J’y ai passé ma soirée</a> mais j’ai un <a data-link-domain="davidbgk.gitlab.io" href="https://davidbgk.gitlab.io/page-crypt-web-component/">truc qui fonctionne pour une démo</a>. Ça ressemble beaucoup à un <em>patchwork</em> de bouts de code récupérés <a data-link-domain="maxlaumeister.com" href="https://www.maxlaumeister.com/pagecrypt/">ici</a> et <a data-link-domain="github.com" href="https://github.com/Greenheart/pagecrypt">là</a> puis <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">aussi là</a> pour la partie&nbsp;Python.</p>
  275. <p>Il y a encore pas mal de travail —&nbsp;notamment pour rendre la page suffisamment accessible&nbsp;— mais au moins la partie crypto / boîte noire semble fonctionner à la fois du côté génération en Python et consommation en JS. C’est la partie qui me faisait un peu peur et sur laquelle j’ai un peu patiné car c’est bien au-delà de mes compétences et que je ne veux pas prendre l’initiative de trop adapter sans comprendre les enjeux niveau&nbsp;sécurité.</p>
  276. <p>Le dépôt est <a data-link-domain="gitlab.com" href="https://gitlab.com/davidbgk/page-crypt-web-component">par ici</a>. Il faut encore que je décide si le formulaire pour le mot de passe devient un <em>web component</em> dédié et/ou un sous-composant, je ne suis pas satisfait du couplage implicite actuel. Itération, itération.</p>
  277. <p>En bonus, il est possible d’accéder directement au contenu de la page en mettant le mot de passe en ancre de l’URL. J’ai appris au passage que ce fragment d’URL n’était pas transmis dans la requête et ne restait que dans l’historique du&nbsp;navigateur.</p>
  278. <p><em>Si tu n’as pas honte de ton premier commit, tout ça… la suite&nbsp;demain.</em></p>
  279. <a href="#hr-125" title="Lien vers cette section de la page"><hr id="hr-125" /></a>
  280. <blockquote>
  281. <p>Les mots ont un impact et, inconsciemment, quand vous ne les utilisez pas dans la bonne manière, vous minimisez mon handicap et donc vous faites moins d'effort que&nbsp;nécessaire.</p>
  282. <p>Autre point, dit-on «&nbsp;personne en situation en handicap&nbsp;» ou «&nbsp;personne&nbsp;handicapée&#8239;?&nbsp;»</p>
  283. <p>Là, encore, il y a une&nbsp;subtilité.</p>
  284. <p>Je vais à un événement tech où les conférences ne sont pas sous-titrées. Je suis en situation de handicap puisque les conférences ne me sont pas du tout&nbsp;accessibles.</p>
  285. <p>Je vais à un événement tech où les conférences sont toutes sous-titrées. Je ne suis pas en situation de handicap puisque les conférences me sont totalement&nbsp;accessibles.</p>
  286. <p>Voici la différence. <mark>Être en situation de handicap, c’est subir la situation faute&nbsp;d’accessibilité.</mark></p>
  287. <p><cite><em><a data-link-domain="emmanuelle-aboaf.netlify.app" href="https://emmanuelle-aboaf.netlify.app/blog/article/n-ayez-pas-peur-des-mots" hreflang="fr"
  288. title="Consultation de l’article">N’ayez pas peur des mots</a>
  289. <a href="/david/cache/2024/5201efaa6fe6a80f69647a354c9afd18/" hreflang="fr"
  290. data-tippy data-description="Les mots ont un impact et pourtant ils ne sont pas utilisés en tant que tels. Le mot handicapé·e n’est pas un gros mot, pas plus que les mots sourd·e et aveugle. Malheureusement, certaines personnes n’osent pas les dire par peur de vexer ou en pensant que ça ne se dit pas. Cependant, en ne les disant pas, vous créez un tabou. Je vous partage mes réflexions sur le sujet à travers cet article."
  291. data-source="https://emmanuelle-aboaf.netlify.app/blog/article/n-ayez-pas-peur-des-mots"
  292. data-date="2024-03-20"
  293. data-favicon="https://emmanuelle-aboaf.netlify.app/blog/article/favicon-32x32.png"
  294. data-domain="emmanuelle-aboaf.netlify.app"
  295. ><svg xmlns="http://www.w3.org/2000/svg"
  296. width="24" height="24" viewBox="0 0 24 24" fill="none"
  297. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  298. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  299. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  300. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  301. </svg>
  302. <span class="sr-only">[archive]</span></a></em></cite></p>
  303. </blockquote>
  304. <p>Cette page ne contient pas le contenu du HTML qui s’affiche et ça me rend triste car j’en apprécie le contenu qui m’apprend des choses / me fait&nbsp;réfléchir.</p>
  305. <p>Un autre angle de&nbsp;l’accessibilité&#8239;?</p>
  306. <a href="#hr-126" title="Lien vers cette section de la page"><hr id="hr-126" /></a>
  307. <blockquote lang="en">
  308. <p>So don’t publish for the&nbsp;world.</p>
  309. <p>When I write something here on my website, I’m not thinking about the world reading it. That would be paralyzing. I do sometimes imagine that one person is reading it; someone just like me who hasn’t yet had this particular thought, or come up with that particular&nbsp;idea.</p>
  310. <p>I’m writing for myself. <mark>I write to figure out what I think.</mark> I also publish mostly for myself—a public archive for future me. But if what I publish just happens to connect with one other person, I’m&nbsp;glad.</p>
  311. <p><cite><em><a data-link-domain="adactio.com" href="https://adactio.com/journal/20996" hreflang="en"
  312. title="Consultation de l’article (anglais)">What the world needs</a>
  313. <a href="/david/cache/2024/318dd7526e11f9476c9cbc88eb3f2b9b/" hreflang="en"
  314. data-tippy data-description="Write for yourself."
  315. data-source="https://adactio.com/journal/20996"
  316. data-date="2024-03-20"
  317. data-favicon="https://adactio.com/icon.png"
  318. data-domain="adactio.com"
  319. ><svg xmlns="http://www.w3.org/2000/svg"
  320. width="24" height="24" viewBox="0 0 24 24" fill="none"
  321. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  322. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  323. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  324. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  325. </svg>
  326. <span class="sr-only">[archive]</span></a></em></cite></p>
  327. </blockquote>
  328. <a href="#hr-127" title="Lien vers cette section de la page"><hr id="hr-127" /></a>
  329. <blockquote lang="en">
  330. <p>My goal, for this digital place I’m creating, is to make you go away. And that’s not because I want to be left alone but because <mark>I hope to help you discover new digital places to explore.</mark> If I see you again, it’s because you decided to come back, and not because you got lost and trapped inside the digital walls I&nbsp;erected.</p>
  331. <p><cite><em><a data-link-domain="manuelmoreale.com" href="https://manuelmoreale.com/digital-walled-gardens" hreflang="en"
  332. title="Consultation de l’article (anglais)">Digital walled gardens</a>
  333. <a href="/david/cache/2024/812f09bae33b395819539fd2c4693fe2/" hreflang="en"
  334. data-tippy data-description="The concept of a walled garden is not a new one in the digital world. It’s just a fancier, less aggressive way to describe a closed ecosystem or a …"
  335. data-source="https://manuelmoreale.com/digital-walled-gardens"
  336. data-date="2024-03-20"
  337. data-favicon="https://manuelmoreale.com/favicon.ico"
  338. data-domain="manuelmoreale.com"
  339. ><svg xmlns="http://www.w3.org/2000/svg"
  340. width="24" height="24" viewBox="0 0 24 24" fill="none"
  341. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  342. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  343. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  344. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  345. </svg>
  346. <span class="sr-only">[archive]</span></a></em></cite></p>
  347. </blockquote>
  348. <p>🌱</p>
  349. <nav>
  350. <p>
  351. <a href="/david/2024/laboratoire/"
  352. title="Liste de tous les articles 2024 associés à cette étiquette"
  353. rel="tag">#laboratoire</a>
  354. <a href="/david/2024/opensource/"
  355. title="Liste de tous les articles 2024 associés à cette étiquette"
  356. rel="tag">#opensource</a>
  357. <a href="/david/2024/technique/"
  358. title="Liste de tous les articles 2024 associés à cette étiquette"
  359. rel="tag">#technique</a>
  360. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  361. </p>
  362. </nav>
  363. <h2>
  364. <a href="/david/2024/03/01/" title="Lien permanent vers cet article">Simple</a> <time datetime="2024-03-01">1 mars 2024</time>
  365. </h2>
  366. <blockquote lang="en">
  367. <p>We can bring that into RSS by treating any interaction as content. If you post something, thats an entry in your feed (as before). If you comment on something, thats also an entry in your feed. If you like something, thats another entry in your feed. If you follow someone (which would mean subscribing to some RSS feed), thats also another entry in your feed. To mark that interactive nature of some feed entry, <mark>we can simple extend RSS a&nbsp;bit</mark></p>
  368. <p><cite><em><a data-link-domain="gist.github.com" href="https://gist.github.com/loreanvictor/bddd8824c744024d338e935bd7e96707" hreflang="en"
  369. title="Consultation de l’article (anglais)">Interaction as Content</a>
  370. <a href="/david/cache/2024/e401917f8e9785285afed817e5344443/" hreflang="en"
  371. data-tippy data-description="Interaction as Content. GitHub Gist: instantly share code, notes, and snippets."
  372. data-source="https://gist.github.com/loreanvictor/bddd8824c744024d338e935bd7e96707"
  373. data-date="2024-03-01"
  374. data-favicon="https://github.githubassets.com/favicons/favicon.png"
  375. data-domain="gist.github.com"
  376. ><svg xmlns="http://www.w3.org/2000/svg"
  377. width="24" height="24" viewBox="0 0 24 24" fill="none"
  378. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  379. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  380. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  381. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  382. </svg>
  383. <span class="sr-only">[archive]</span></a></em></cite></p>
  384. </blockquote>
  385. <p>Tout est dans le <q lang="en">simple</q>&nbsp;🙃.</p>
  386. <p>Rédiger une spécification comme <a data-link-domain="en.wikipedia.org" href="https://en.wikipedia.org/wiki/Media_RSS">Media RSS</a> n’est déjà pas trivial mais alors faire en sorte que cela soit adopté et devienne un standard c’est une autre paire de&nbsp;manches.</p>
  387. <blockquote lang="en">
  388. <p>RSS originated in 1999, and has strived to be a simple, easy to understand format, with relatively modest goals. After it became a popular format, <mark>developers wanted to extend it</mark> using modules defined in namespaces, as specified by the&nbsp;W3C.</p>
  389. <p>RSS 2.0&nbsp;adds that capability, following a simple rule. A RSS feed may contain elements and attributes not described on this page, only if those elements and attributes are defined in a&nbsp;namespace.</p>
  390. <p><cite><em><a data-link-domain="rssboard.org" href="https://www.rssboard.org/rss-specification#extendingRss" hreflang="en"
  391. title="Consultation de l’article (anglais)">RSS 2.0&nbsp;Specification</a>
  392. <a href="/david/cache/2024/85b765a918ef094a5a2dd13a1ff5dd7d/" hreflang="en"
  393. data-tippy data-description="The current version of the RSS 2.0 specification (2.0.11), published on March 30, 2009."
  394. data-source="https://www.rssboard.org/rss-specification#extendingRss"
  395. data-date="2024-03-01"
  396. data-favicon="https://www.rssboard.org/favicon.ico"
  397. data-domain="rssboard.org"
  398. ><svg xmlns="http://www.w3.org/2000/svg"
  399. width="24" height="24" viewBox="0 0 24 24" fill="none"
  400. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  401. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  402. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  403. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  404. </svg>
  405. <span class="sr-only">[archive]</span></a></em></cite></p>
  406. </blockquote>
  407. <p>Beaucoup de personnes ont envie de faire davantage avec RSS, c’est la diffusion à une échelle non anecdotique qui est difficile. Peut-être qu’un acteur comme Mastodon pourrait peser dans la balance d’une telle&nbsp;initiative.</p>
  408. <blockquote lang="en">
  409. <p>Another feature area I would think about is interactivity. I’m fascinated with Google’s work in Gmail around “Inbox Actions” – basically the one-click buttons to perform an email action like RSVP, or reviewing a bug. Here’s an explainer with some&nbsp;examples.</p>
  410. <p>Let’s call it Feed Actions. <mark>Feed Actions could also be an RSS&nbsp;extension.</mark></p>
  411. <p><cite><em><a data-link-domain="interconnected.org" href="https://interconnected.org/home/2021/05/26/chrome_and_rss" hreflang="en"
  412. title="Consultation de l’article (anglais)">Three requests for the Google Chrome team as they experiment with RSS</a>
  413. <a href="/david/cache/2024/4a9c4c407b34c40ec5b3783ac5f274a7/" hreflang="en"
  414. data-tippy data-description="Posted on Wednesday 26 May 2021. 976 words, 11 links. By Matt Webb."
  415. data-source="https://interconnected.org/home/2021/05/26/chrome_and_rss"
  416. data-date="2024-03-01"
  417. data-favicon=""
  418. data-domain="interconnected.org"
  419. ><svg xmlns="http://www.w3.org/2000/svg"
  420. width="24" height="24" viewBox="0 0 24 24" fill="none"
  421. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  422. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  423. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  424. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  425. </svg>
  426. <span class="sr-only">[archive]</span></a></em></cite></p>
  427. </blockquote>
  428. <p>J’ai deux communautés dans lesquelles c’est même devenu un <em>running gag</em> de créer un outil qui explorerait de nouvelles&nbsp;possibilités.</p>
  429. <p><a href="/david/2021/05/26/">Suivez-moi</a> et vous n’aurez plus jamais faim&#8239;! Gniarkgniarkgniark&nbsp;🦁⚡️</p>
  430. <nav>
  431. <p>
  432. <a href="/david/2024/evolution/"
  433. title="Liste de tous les articles 2024 associés à cette étiquette"
  434. rel="tag">#évolution</a>
  435. <a href="/david/2024/laboratoire/"
  436. title="Liste de tous les articles 2024 associés à cette étiquette"
  437. rel="tag">#laboratoire</a>
  438. <a href="/david/2024/web/"
  439. title="Liste de tous les articles 2024 associés à cette étiquette"
  440. rel="tag">#web</a>
  441. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  442. </p>
  443. </nav>
  444. <h2>
  445. <a href="/david/2024/02/20/" title="Lien permanent vers cet article">Véhicule</a> <time datetime="2024-02-20">20 février 2024</time>
  446. </h2>
  447. <blockquote>
  448. <p>John Burroughs est d’avis que l’étude expérimentale des animaux en captivité est totalement futile. Leur caractère, leurs habitudes, leur appétit changent complètement lorsqu’ils sont arrachés à leur habitat naturel. Comment pourrions-nous donc envisager les potentialités de la nature humaine alors qu’elle est confinée dans un espace restreint et contrainte quotidiennement à la&nbsp;soumission&#8239;?</p>
  449. <p>Seuls la liberté, l’épanouissement, la chance et, par-dessous tout, la paix et la sérénité peuvent nous renseigner sur les véritables facteurs dominants de la nature humaine et toutes ses merveilleuses&nbsp;possibilités.</p>
  450. <p>L’anarchisme représente donc essentiellement la libération de l’esprit de la domination religieuse&#8239;; la libération du corps du joug de la propriété&#8239;; la libération de l’individu des entraves et des restrictions du gouvernement. L’anarchisme représente un ordre social fondé sur <mark>le regroupement volontaire des individus en vue de produire une véritable richesse sociale</mark>&#8239;; un ordre qui garantira à tout être humain le libre accès à la terre et la pleine jouissance des nécessités de la vie, selon les désirs, les goûts et les inclinations de&nbsp;chacun.</p>
  451. <p><cite><em>Ce que l’anarchisme représente vraiment</em>, Emma Goldman, 1911</cite></p>
  452. </blockquote>
  453. <p>L’exercice Scopyleft du jour était d’imaginer et de partager le véhicule que représente la coopérative pour chacun·e d’entre nous aujourd’hui. J’ai été agréablement surpris que nous proposions tou·tes quelque chose de différent. Les questions n’ont pas besoin d’être très élaborées pour apporter des éclairages personnels sur une même&nbsp;situation.</p>
  454. <a href="#hr-81" title="Lien vers cette section de la page"><hr id="hr-81" /></a>
  455. <blockquote lang="en">
  456. <p>Your AI-free Content Deserves a&nbsp;Badge</p>
  457. <p>Artificial Intelligence (AI) is trained using human-created content. If humans stop producing new content and rely solely on AI, online content across the world may become repetitive and&nbsp;stagnant.</p>
  458. <p>If your content is not AI-generated, add the badge to your work, with&nbsp;pride.</p>
  459. <p><cite><em><a data-link-domain="notbyai.fyi" href="https://notbyai.fyi/">not by&nbsp;AI</a></em></cite></p>
  460. </blockquote>
  461. <p>De <a href="/david/2024/02/19/#hr-80">même qu’hier</a>, je m’interroge beaucoup sur le notion de plagIAt. Je copie-colle des citations, j’explore des idées déjà connues, je crée un <em>patchwork</em> quotidien, quelle différence avec un algorithme suffisamment bien&nbsp;nourri&#8239;?</p>
  462. <a href="#hr-82" title="Lien vers cette section de la page"><hr id="hr-82" /></a>
  463. <blockquote>
  464. <p>Depuis plus de dix ans, l’Ouvre-Boîtes a mis en place les prêts Coopitalistes. Le principe est simple&nbsp;: des citoyennes et citoyens ou associations investissent de l’argent à l’Ouvre-Boîtes pour sept&nbsp;ans.</p>
  465. <p>En captant cette épargne solidaire, <mark>la coopérative se créée une banque interne</mark> qui finance des projets&nbsp;comme&nbsp;:</p>
  466. <ul>
  467. <li>Des projets collectifs&nbsp;: travaux pour aménager un lieu à disposition des entrepreneur·es (le Grand&nbsp;Bain),</li>
  468. <li>Des investissements pour des entrepreneur·es qui en ont besoin pour lancer leur activité&nbsp;: vélos, voiture, appareil photos, ordinateurs, outils de&nbsp;jardinage…</li>
  469. <li>Des besoins exceptionnels de&nbsp;trésorerie</li>
  470. </ul>
  471. <p><cite><em><a data-link-domain="ouvre-boites.coop" href="https://www.ouvre-boites.coop/les-coopitalistes" hreflang="fr"
  472. title="Consultation de l’article">Les Coopitalistes</a>
  473. <a href="/david/cache/2024/865257313ae3d6aca13284128d6523d5/" hreflang="fr"
  474. data-tippy data-description="Depuis plus de dix ans, l’Ouvre-Boîtes a mis en place les prêts Coopitalistes."
  475. data-source="https://www.ouvre-boites.coop/les-coopitalistes"
  476. data-date="2024-02-20"
  477. data-favicon="https://www.ouvre-boites.coop/themes/custom/front/favicon.ico"
  478. data-domain="ouvre-boites.coop"
  479. ><svg xmlns="http://www.w3.org/2000/svg"
  480. width="24" height="24" viewBox="0 0 24 24" fill="none"
  481. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  482. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  483. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  484. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  485. </svg>
  486. <span class="sr-only">[archive]</span></a></em></cite></p>
  487. </blockquote>
  488. <p>Les alternatives existent, elles sont moins faciles à trouver mais elles existent. Et elles&nbsp;inspirent.</p>
  489. <nav>
  490. <p>
  491. <a href="/david/2024/echanges/"
  492. title="Liste de tous les articles 2024 associés à cette étiquette"
  493. rel="tag">#échanges</a>
  494. <a href="/david/2024/laboratoire/"
  495. title="Liste de tous les articles 2024 associés à cette étiquette"
  496. rel="tag">#laboratoire</a>
  497. <a href="/david/2024/protopie/"
  498. title="Liste de tous les articles 2024 associés à cette étiquette"
  499. rel="tag">#protopie</a>
  500. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  501. </p>
  502. </nav>
  503. <h2>
  504. <a href="/david/2024/02/19/" title="Lien permanent vers cet article">Injection</a> <time datetime="2024-02-19">19 février 2024</time>
  505. </h2>
  506. <blockquote lang="en">
  507. <p>It’s fun to think of <mark>other possible uses…</mark> Perhaps you could pull in HTML modules along with their relevant CSS link. Or embed a tweet or code examples in documentation or a blog post. It could probably even be used to load and apply a regular <code>rel=stylesheet</code> link asynchronously, and at a low priority, which is otherwise surprisingly hard to do (note: I didn’t test this idea much to say for&nbsp;sure).</p>
  508. <p><cite><em><a data-link-domain="filamentgroup.com" href="https://www.filamentgroup.com/lab/html-includes/" hreflang="en"
  509. title="Consultation de l’article (anglais)">HTML Includes That Work Today</a>
  510. <a href="/david/cache/2024/88df28660094efbc5a13bb09d70dfea6/" hreflang="en"
  511. data-tippy data-description="Read this page on the Filament Group website"
  512. data-source="https://www.filamentgroup.com/lab/html-includes/"
  513. data-date="2024-02-19"
  514. data-favicon="https://www.filamentgroup.com/images/icons/favicon-32x32.png"
  515. data-domain="filamentgroup.com"
  516. ><svg xmlns="http://www.w3.org/2000/svg"
  517. width="24" height="24" viewBox="0 0 24 24" fill="none"
  518. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  519. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  520. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  521. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  522. </svg>
  523. <span class="sr-only">[archive]</span></a></em></cite></p>
  524. </blockquote>
  525. <p>J’ai cette page ouverte dans un onglet depuis littéralement des années. C’est <a data-link-domain="blog.notmyidea.org" href="https://blog.notmyidea.org/">Alexis</a> qui me l’a rappelé en partageant <a data-link-domain="leanrada.com" href="https://leanrada.com/htmz/">htmz</a> aujourd’hui qui va un tout petit peu plus&nbsp;loin.</p>
  526. <p>Voilà le code en&nbsp;question&nbsp;:</p>
  527. <pre><code>&lt;iframe
  528. src=&quot;/static/david/2024/test-injection.html&quot;
  529. onload=&quot;
  530. this.before(
  531. (
  532. this.contentDocument.body||this.contentDocument
  533. ).children[0]
  534. );
  535. this.remove()
  536. &quot;
  537. hidden&gt;
  538. &lt;/iframe&gt;
  539. </code></pre>
  540. <p>En résumé, on prend le code l’<code>iframe</code> et on l’injecte au chargement dans le document en cours. Voici un exemple (pas sûr que ça fonctionne depuis un&nbsp;agrégateur…)&nbsp;:</p>
  541. <iframe src="/static/david/2024/test-injection.html" onload="this.before((this.contentDocument.body||this.contentDocument).children[0]);this.remove()" hidden></iframe>
  542. <p>J’ai ajouté l’attribut <code>hidden</code> à la proposition initiale pour éviter le flash. Si vous inspectez le code, vous constatez que le paragraphe précédent tout à fait classique alors qu’il s’agissait d’une <code>iframe</code> (sauf si vous avez une extension qui bloque les <code>iframe</code> bien sûr). Jusque là c’est <a data-link-domain="css-tricks.com" href="https://css-tricks.com/the-simplest-ways-to-handle-html-includes/" hreflang="en"
  543. title="Consultation de l’article (anglais)">une forme d’inclusion</a>
  544. <a href="/david/cache/2024/6bfc6bd7bc1d9158aa7f6591123e7f4b/" hreflang="en"
  545. data-tippy data-description="It's extremely surprising to me that HTML has never had any way to include other HTML files within it. Nor does there seem to be anything on the horizon that"
  546. data-source="https://css-tricks.com/the-simplest-ways-to-handle-html-includes/"
  547. data-date="2024-02-19"
  548. data-favicon="https://css-tricks.com/favicon.svg"
  549. data-domain="css-tricks.com"
  550. ><svg xmlns="http://www.w3.org/2000/svg"
  551. width="24" height="24" viewBox="0 0 24 24" fill="none"
  552. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  553. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  554. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  555. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  556. </svg>
  557. <span class="sr-only">[archive]</span></a> mais rien de bien&nbsp;utile.</p>
  558. <p>Ce qui devient un peu plus fou serait de pouvoir injecter un <em>Web Component</em> de cette façon&#8239;! Le problème étant que le <code>this.remove()</code> est exécuté avant le chargement du script de l’<code>iframe</code>… et si on le retire on conserve cet élément <code>hidden</code> dans le document. Ce n’est pas critique mais ce n’est pas très élégant non plus, d’autant que cela signifie que le composant est défini et instancié deux&nbsp;fois.</p>
  559. <style>para-graph { background: paleturquoise; color: black; }</style>
  560. <iframe src="/static/david/2024/test-injection-web-component.html" onload= "this.before((this.contentDocument.body||this.contentDocument).children[0]);this.before(this.contentDocument.scripts[0])" hidden></iframe>
  561. <p>Il y a probablement des choses qui m’échappent mais il se fait&nbsp;tard.</p>
  562. <p><em>To be&nbsp;continued…</em></p>
  563. <a href="#hr-79" title="Lien vers cette section de la page"><hr id="hr-79" /></a>
  564. <p>Découvertes du jour&nbsp;: <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base"><code>&lt;base&gt;</code></a> et <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis">globalThis</a>.</p>
  565. <p>Aussi, il n’est <a data-link-domain="github.com" href="https://github.com/django/django/commit/b7f500396e05cd1f0bb8901fce16e2d8393d2779">pas forcément indiqué</a> de générer une <code>SECRET_KEY</code> avec Django, il vaut mieux le faire en Python&nbsp;directement&nbsp;:</p>
  566. <pre><code>[depuis un shell]
  567. $ python3 -c 'import secrets; print(secrets.token_hex(100))'
  568. </code></pre>
  569. <a href="#hr-80" title="Lien vers cette section de la page"><hr id="hr-80" /></a>
  570. <blockquote lang="en">
  571. <p>So, what’s the fun of writing on the internet anymore? Well, if your aim is to be respected as an author, there’s probably not much fun to be had here at all. Don’t write online for fame and glory. Oblivion, obscurity and exploitation are all but guaranteed. Write here because <em>ideas</em> matter, not authorship. Write here because the more robots, pirates, and single-minded trolls swallow up cyberspace, <mark>the more we need independent writing in order to think new thoughts in the future</mark> — even if your words are getting dished up and plated by an&nbsp;algorithm.</p>
  572. <p><cite><em><a data-link-domain="jamesshelley.com" href="https://jamesshelley.com/blog/writing-on-the-internet.html" hreflang="en"
  573. title="Consultation de l’article (anglais)">What’s the fun in writing on the internet anymore?</a>
  574. <a href="/david/cache/2024/a005801f0e596f9ecb99037a992ecc1b/" hreflang="en"
  575. data-tippy data-description="The moment you release your words, you relinquish all control."
  576. data-source="https://jamesshelley.com/blog/writing-on-the-internet.html"
  577. data-date="2024-02-19"
  578. data-favicon="https://jamesshelley.com/images/favicon.png"
  579. data-domain="jamesshelley.com"
  580. ><svg xmlns="http://www.w3.org/2000/svg"
  581. width="24" height="24" viewBox="0 0 24 24" fill="none"
  582. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  583. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  584. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  585. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  586. </svg>
  587. <span class="sr-only">[archive]</span></a></em></cite></p>
  588. </blockquote>
  589. <p>Rester (et alimenter la machine) ou quitter (et laisser l’espace à la&nbsp;machine).</p>
  590. <p>Je n’aime pas beaucoup la <a data-link-domain="maggieappleton.com" href="https://maggieappleton.com/ai-dark-forest" hreflang="en"
  591. title="Consultation de l’article (anglais)">métaphore de la forêt noire</a>
  592. <a href="/david/cache/2024/140458968f9f7da7d14e181d0a80e799/" hreflang="en"
  593. data-tippy data-description="Proving you're a human on a web flooded with generative AI content"
  594. data-source="https://maggieappleton.com/ai-dark-forest"
  595. data-date="2024-02-19"
  596. data-favicon="https://maggieappleton.com//images/favicon/favicon.ico"
  597. data-domain="maggieappleton.com"
  598. ><svg xmlns="http://www.w3.org/2000/svg"
  599. width="24" height="24" viewBox="0 0 24 24" fill="none"
  600. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  601. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  602. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  603. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  604. </svg>
  605. <span class="sr-only">[archive]</span></a> ces temps-ci car j’apprécie un peu trop les forêts pour ça. J’aurais davantage l’impression de faire partie d’une haie alors qu’il y a beaucoup de monoculture aux alentours. Avec les double sens que cette méta·phore&nbsp;implique.</p>
  606. <nav>
  607. <p>
  608. <a href="/david/2024/apprentissage/"
  609. title="Liste de tous les articles 2024 associés à cette étiquette"
  610. rel="tag">#apprentissage</a>
  611. <a href="/david/2024/laboratoire/"
  612. title="Liste de tous les articles 2024 associés à cette étiquette"
  613. rel="tag">#laboratoire</a>
  614. <a href="/david/2024/web/"
  615. title="Liste de tous les articles 2024 associés à cette étiquette"
  616. rel="tag">#web</a>
  617. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  618. </p>
  619. </nav>
  620. <form action="/david/recherche/" method="get">
  621. <fieldset>
  622. <legend>Recherche</legend>
  623. <label for="input-search">Termes de votre recherche :</label>
  624. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  625. <input type="submit" value="Chercher">
  626. <p id="indexation-infos">
  627. <small>
  628. Seuls les contenus de ces 8 dernières années sont indexés.
  629. </small>
  630. </p>
  631. </fieldset>
  632. </form>
  633. <aside>
  634. <theme-toggle></theme-toggle>
  635. </aside>
  636. </article>
  637. <hr>
  638. <footer>
  639. <p>
  640. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  641. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  642. <a href="http://larlet.com"
  643. title="Go to my English profile"
  644. data-instant>Pro</a>
  645. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  646. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  647. </p>
  648. <template id="theme-selector">
  649. <form>
  650. <style type="text/css">
  651. fieldset div {
  652. text-align: center;
  653. }
  654. </style>
  655. <fieldset>
  656. <legend>Thème</legend>
  657. <div>
  658. <label>
  659. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  660. Auto
  661. </label>
  662. <label>
  663. <input type="radio" value="dark" name="chosen-color-scheme">
  664. Foncé
  665. </label>
  666. <label>
  667. <input type="radio" value="light" name="chosen-color-scheme">
  668. Clair
  669. </label>
  670. </div>
  671. </fieldset>
  672. </form>
  673. </template>
  674. </footer>
  675. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  676. <script>
  677. class ThemeToggle extends HTMLElement {
  678. constructor() {
  679. super()
  680. const themeSelectorTemplate = document.querySelector('#theme-selector')
  681. const form = themeSelectorTemplate.content.firstElementChild
  682. this.attachShadow({ mode: 'open' })
  683. this.shadowRoot.appendChild(form.cloneNode(true))
  684. }
  685. connectedCallback() {
  686. const form = this.shadowRoot.querySelector('form')
  687. form.addEventListener('change', (e) => {
  688. const chosenColorScheme = e.target.value
  689. localStorage.setItem('theme', chosenColorScheme)
  690. toggleTheme(chosenColorScheme)
  691. })
  692. const selectedTheme = localStorage.getItem('theme')
  693. if (selectedTheme && selectedTheme !== 'undefined') {
  694. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  695. }
  696. }
  697. }
  698. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  699. window.addEventListener('load', () => {
  700. let colorsLayer = undefined
  701. let hasDarkRules = false
  702. for (const styleSheet of Array.from(document.styleSheets)) {
  703. let mediaRules = []
  704. for (const layerRule of styleSheet.cssRules) {
  705. if (!(layerRule instanceof CSSLayerBlockRule)) {
  706. continue
  707. }
  708. if (layerRule.name === 'colors') {
  709. colorsLayer = layerRule
  710. }
  711. for (const cssRule of layerRule.cssRules) {
  712. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  713. continue
  714. }
  715. // WARNING: Safari does not have/supports `conditionText`.
  716. if (cssRule.conditionText) {
  717. if (cssRule.conditionText !== prefersColorSchemeDark) {
  718. continue
  719. }
  720. } else {
  721. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  722. continue
  723. }
  724. }
  725. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  726. }
  727. }
  728. // WARNING: do not try to insert a Rule to a styleSheet you are
  729. // currently iterating on, otherwise the browser will be stuck
  730. // in a infinite loop…
  731. for (const mediaRule of mediaRules) {
  732. // Safari requires the `0` second parameter (even if default).
  733. colorsLayer.insertRule(mediaRule.cssText, 0)
  734. hasDarkRules = true
  735. }
  736. }
  737. if (hasDarkRules) {
  738. if ('customElements' in window && !customElements.get('theme-toggle')) {
  739. customElements.define('theme-toggle', ThemeToggle)
  740. }
  741. }
  742. })
  743. </script>
  744. </body>
  745. </html>