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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  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>Tag #incompétence — David Larlet</title>
  13. <meta name="description" content="Publications relatives au tag #incompétence">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <style type="text/css">
  53. details[open] summary {
  54. display: none;
  55. }
  56. </style>
  57. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  58. <header>
  59. <h1>Publications relatives au tag #incompétence</h1>
  60. </header>
  61. <nav>
  62. <p class="center">
  63. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  64. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  65. </svg> Accueil</a>
  66. • <a rel="tags" href="/david/#tags-2023" title="Liste de toutes les étiquettes"><svg class="icon icon-tags">
  67. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-tags"></use>
  68. </svg> Étiquettes</a>
  69. </p>
  70. </nav>
  71. <hr>
  72. <main>
  73. <p>Les plus récentes en premier, les 3 premières sont dépliées et ensuite c’est à la demande, bonne exploration !</p>
  74. <h2><a href="/david/2023/05/01/" title="Lien permanent vers cet article">Long&nbsp;cours</a> (2023-05-01)</h2>
  75. <p>Je suis avec beaucoup d’intérêt les réflexions d’<a href="https://n.survol.fr/">Éric D.</a> qui envisage un périple du milieu de la France au nord de la Norvège. Ça me fait envisager ce type d’aventure sur plusieurs mois, ce qui me retient, ce que j’emporterais, ce que j’ai appris de mes propres sorties et qui pourrait me&nbsp;servir.</p>
  76. <p><em>Note&nbsp;: je n’ai jamais fait plus d’un demi-GR20 en durée et mes sorties en forêt ne dépassent pas 3/4&nbsp;jours. Tout ce qui suit est donc très&nbsp;hypothétique.</em></p>
  77. <p>Je crois que la question principale qui me taraude(rait) en envisageant un tel périple est de savoir si c’est du tourisme lent ou une façon d’effleurer les cultures et les modes de vies des territoires que je traverse. Je commence par cet aspect car c’est assez central ensuite pour le matériel&nbsp;: est-ce que je veux un vélo qui supporte le gel ou est-ce que je suis prêt à m’adapter en terminant le voyage en traîneau ou a skis ou autre-pas-encore-envisageable&#8239;? (pour donner un&nbsp;exemple)</p>
  78. <p>J’avais l’air de plaisanter sur mastodon lorsque je proposais d’oublier les matelas trop chauds/isolants pour récupérer des peaux de rennes au cours du trajet mais il y a un peu de vrai dans mon envie de me renseigner sur les pratiques locales/traditionnelles pour les incorporer à cette transformation de moi-même qui me semble être le voyage au long cours. Ne pas l’envisager comme une traversée sur-pensée en étant sur-équipé mais comme une adaptation continue en fonction des rencontres et des expériences. C’est un peu ma démarche actuelle avec mon apprentissage de <a href="https://nature.larlet.fr/habillage/#laine">la laine</a> et je suis même allé jusqu’à acheter cet hiver une chapka en fourrure pour connaître ces propriétés de maintient de la chaleur. Ce n’est pas qu’une démarche scientifique mais aussi une forme d’acclimatation au territoire et à ses pratiques ancestrales. Ne pas traverser la forêt dans mon cas, mais devenir la forêt en la&nbsp;traversant.</p>
  79. <p>Ce que j’ai appris de mes essais en continu ces dernières années, c’est qu’un matériel ne peut être éprouvé qu’en conditions réelles. Pas seulement si cette tente peut supporter une tempête de neige mais si cette tente peut supporter une tempête de neige <em>dans cette portion de forêt avec mes connaissances actuelles de positionnement</em>. Pas seulement si ce hamac a une moustiquaire mais si j’arrive à passer une soirée à l’abri de la fumée puis à m’insérer dans le hamac sans qu’une nuée de moustique rentre avec moi en plein mois de juillet. La liste est très/trop longue du matériel que je pensais être pertinent et indispensable et qui se révèle être inadapté à mon milieu et sa saison. Et je n’aurais pas pu le savoir sans le pratiquer, et parfois il est pertinent seulement un mois dans l’année mais je le connais suffisamment pour maintenant l’utiliser à bon escient. Pour un voyage de plusieurs mois j’imagine qu’il est impossible d’avoir le matériel adapté à une telle&nbsp;diversité.</p>
  80. <p>Alors il faut peut-être s’adapter soi et se tourner vers des matières et pratiques&nbsp;résilientes.</p>
  81. <p>Je me pose presque chaque fois la question lors du chemin du retour d’imaginer pouvoir rester plus longtemps (indépendamment de la nourriture). Et j’évalue au passage ce qui aurait rendu cela possible&nbsp;: aller plus lentement, mieux dormir, être plus confortable au niveau du campement, etc. Parfois c’est lié au matériel mais bien souvent ça cache plutôt le mental/l’intelligence du&nbsp;terrain&nbsp;:</p>
  82. <ul>
  83. <li>J’ai des courbatures parce que j’ai trop forcé ou bien car je me suis mal hydraté au cours de la journée après avoir fait des choix discutables en matière&nbsp;d’orientation&#8239;?</li>
  84. <li>J’ai mal dormi car le matelas était trop fin ou parce que je flippais au moindre&nbsp;bruit&#8239;?</li>
  85. <li>Mon duvet est humide parce qu’il est mauvais ou parce que j’ai mal positionné mon&nbsp;campement&#8239;?</li>
  86. </ul>
  87. <p>Même après pas mal de nuits dehors, je fais encore souvent des erreurs, parfois de manière récurrente. Elles n’ont jusqu’à présent pas été critiques mais leur somme sur une excursion plus longue aurait probablement un impact non négligeable sur ma motivation et peut-être ma santé&nbsp;(mentale).</p>
  88. <p>En parlant de motivation, c’est probablement là que j’aurais besoin de beaucoup travailler. Il n’est pas rare qu’au milieu de la forêt je me demande ce que je fais là et pourquoi je ne suis pas dans un lieu au chaud entouré des personnes que j’aime. Je sais aussi ce que ça m’apporte par ailleurs et j’ai toujours ce réconfort qu’à <em>court</em> terme je vais pouvoir les retrouver. Sur du plus long, ce serait plus difficile, peut-être&nbsp;impossible.</p>
  89. <p>Je suis assez certain de pouvoir marcher pendant une semaine mais après un mois, est-ce que j’aurais encore l’envie de mettre un pied devant l’autre qui m’éloigne de mon foyer&#8239;? Est-ce qu’après 3&nbsp;jours de pluie à manger du lyophilisé tout en étant carencé en vitamines et minéraux mon moral tiendrait le choc avec un objectif si lointain&#8239;? Est-ce que j’arriverais à m’accepter pendant une aussi longue période&#8239;? Est-ce que je m’adonne à une activité de privilégié car je n’ai pas d’autre sens dans ma vie que celui d’être égoïste&#8239;? Est-ce que le partage de ces expériences est leur seule forme d’existence&#8239;? Est-ce que je m’autorise ce que j’interprète comme un&nbsp;échec&#8239;?</p>
  90. <p>Ces réponses ne s’achètent pas mais pèsent parfois très lourd dans mon&nbsp;sac.</p>
  91. <hr />
  92. <p>Cet article est déjà assez long, merci Éric de m’avoir motivé à écrire tout ça de manière cathartique. J’espère ne pas être condescendant ou moralisateur, c’est vraiment ce qui me tourne en tête en envisageant un périple de ce type par&nbsp;procuration.</p>
  93. <h2><a href="/david/2023/03/13/" title="Lien permanent vers cet article">Traditions</a> (2023-03-13)</h2>
  94. <blockquote lang="en">
  95. <p>Documents are documents. Books are books, recordings are recordings, and so on. As time has gone on, though, I’ve observed the probably obvious-to-others fact that <strong>Lore</strong> is the grease between the concrete blocks of knowledge, the carved step in an otherwise impossible-to-scale mountain, the small bit of powder sprinkled through a workspace to ensure sparks don’t fly and things don’t burn. Inconceivably odd to the outsider, but vital to the dedicated or intense practice of the&nbsp;craft.</p>
  96. <p>Certainly, the ideal situation is lore is inlaid into a framework of knowledge. […]</p>
  97. <p><mark>The danger in this process, the potential lost ballast in the rise to the skies, is that the lore-to-knowledge transfer is lossy, messy, and arbitrary.</mark> Maybe those in the know want to keep the information to themselves, so it won’t be given to whoever the person or persons are who are laying down the written form. Maybe the chronicler of information has blind spots they don’t know about and not enough people to correct them. Or, more likely, you have to set the “noise filter” of the information to not go down the rabbit and rat holes of contingencies that maybe a dozen or two people will even want to know about, to the favor of that which <em>everyone</em> will need. The outcome is always the same: Lore loses in the long&nbsp;run.</p>
  98. <p><cite><em><a href="http://ascii.textfiles.com/archives/5509">Discord, or the Death of Lore «&nbsp;ASCII by Jason Scott</a></em>&nbsp;(<a href="/david/cache/2023/f6e269f9a6e16436827169039d551623/">cache</a>)</cite></p>
  99. </blockquote>
  100. <p>La documentation des us et coutumes, des pratiques culturelles, de façon numérique est un vrai défi. Surtout pour les personnes qui sont plutôt de culture orale dans leur façon de&nbsp;transmettre.</p>
  101. <p>Ce n’est pas mon cas mais je me retiens toujours de <em>lutter contre</em> en proposant des outils complémentaires qui viennent enrichir la souvenance que l’on peut avoir d’un échange. Un <a href="/david/2022/12/19/">journal</a>, une notice, un billet de blog, qu’importe le format pourvu que l’on ait une URL pérenne qui puisse être&nbsp;référencée.</p>
  102. <p>Cela me prend du temps, mais bien moins que de devoir reprendre les échanges de zéro. Ou de faire un peu trop confiance à l’interprétation faite par ma propre&nbsp;mémoire&#8239;!</p>
  103. <hr />
  104. <p>J’essaye <a href="https://hazeover.com/">HazeOver</a> depuis maintenant une semaine et je me demande comment ça n’est pas une fonctionnalité par défaut de macOS. Je n’ai aucune fenêtre maximisée et j’ai un écran relativement grand, cet outil me permet de focaliser sur la fenêtre en cours. Lors du partage d’écran complet en visio (pour alterner code/navigateur par exemple), un coup de scroll sur l’icône dans la barre du haut et hop on ne voit que la fenêtre active avec un fond&nbsp;noir.</p>
  105. <p>Autre test du moment&nbsp;: <a href="https://sindresorhus.com/folder-peek">Folder Peek</a>, Sindre Sorhus fait plein d’autres <a href="https://sindresorhus.com/apps">petits outils intéressants</a>.</p>
  106. <hr />
  107. <p>Parce qu’il n’y a pas de raisons que ça soit restreint à un public&nbsp;mastodon&nbsp;:</p>
  108. <blockquote>
  109. <p>Pour rappel&nbsp;: si vous souhaitez proposer un sujet pour une conférence comme <a href="https://mamot.fr/@ParisWeb">@ParisWeb</a> ou <a href="https://piaille.fr/@sudweb">@sudweb</a> je me propose de vous accompagner dans la démarche, surtout si vous faites partie d’une population peu représentée dans ces évènements (cette formulation est probablement maladroite mais j’espère que vous voyez&nbsp;l’idée).</p>
  110. <p>🤗</p>
  111. <p><cite><a href="https://fedi.larlet.fr/@david/109993800837974664">Proposition du&nbsp;9&nbsp;mars</a></cite></p>
  112. </blockquote>
  113. <hr />
  114. <blockquote lang="en">
  115. <p>👴 According to the most recent StackOverflow survey, half of the developer population started their careers within the last 9&nbsp;years, which is to say, <mark>half of all web developers have never known a world without&nbsp;React.</mark></p>
  116. <p>It’s even highly likely that they were taught web development via React or that they have never built a site any other way. They were told by their teachers, then by recruiters and then by their employers that React was the way you build web sites, and they invested their careers in it&nbsp;accordingly.</p>
  117. <p><cite><em><a href="https://remotesynthesis.com/blog/the-price-of-developer-tools/">The Price Developers Pay for Loving Their Tools Too Much</a></em>&nbsp;(<a href="/david/cache/2023/339a862f8939f7ba8ae1524fa14f94c2/">cache</a>)</cite></p>
  118. </blockquote>
  119. <blockquote>
  120. <p>😔 Il s’agit de la tendance qu’ont les gens à graviter vers ou être attirés par ceux qui leur sont similaires en apparence, croyances, origine. Un effet de bord pernicieux ou même vicieux est la tendance à éviter ou même détester les gens ou les groupes qui sont&nbsp;différents.</p>
  121. <p>Puisque le milieu professionnel est dominé par les mâles blancs, ce biais affecte les femmes, d’autant plus si elles sont de couleur. <mark>C’est le biais qui fait le plus de détriment aux femmes au travail</mark>&nbsp;: décisions de recrutement injustes, promotions inéquitables, idées balayées ou&nbsp;volées.</p>
  122. <p><cite><em><a href="https://koalie.blog/2023/03/11/ces-stereotypes-qui-nuisent-aux-femmes-au-travail/">Ces stéréotypes qui nuisent aux femmes au travail</a></em>&nbsp;(<a href="/david/cache/2023/6c69f245e09fb696b43afa54240b4148/">cache</a>)</cite></p>
  123. </blockquote>
  124. <blockquote lang="en">
  125. <p>📷 Having my phone in my pocket doesn’t trigger anything but distraction. It can do everything, and so I feel nothing in particular about it. A physical camera takes photos, but it also makes me think about seeing. And I like&nbsp;that.</p>
  126. <p><cite><em><a href="https://macwright.com/2017/11/03/carrying-a-camera.html">Carrying a camera</a></em>&nbsp;(<a href="/david/cache/2023/c9925184359c01c5c077be55b7cd6505/">cache</a>)</cite></p>
  127. </blockquote>
  128. <blockquote>
  129. <p>😢 Et je suis fatiguée de cette société qui est incapable de croire les femmes. Combien faudra t-il encore de vidéos ou témoignage où un homme se retrouve, volontairement ou par accident, à la place d’une femme&#8239;? Pour se rendre compte qu’en fait oui c’est violent ce que vivent les femmes et que ce qu’elles dénoncent c’est vrai et&nbsp;systémique.</p>
  130. <p>Je ne peux m’empêcher de penser que si j’avais été un homme ma carrière serait plus avancée aujourd’hui, mon salaire supérieur et ma santé mentale bien&nbsp;meilleure.</p>
  131. <p><cite><em><a href="https://www.duchess-france.fr/coup%20de%20gueule/sexisme/2023/03/06/stupeur-et-trembements.html">Stupeur et tremblements&nbsp;: comment faire fuir les développeuses expérimentées.</a></em>&nbsp;(<a href="/david/cache/2023/25d41d569f637f8342c495139ccce8a8/">cache</a>)</cite></p>
  132. </blockquote>
  133. <blockquote lang="en">
  134. <p>✍️ That is against our purposes here. A blog post is <em>a search query</em>. <mark>You write to find your tribe;</mark> you write so they will know what kind of fascinating things they should route to your inbox. If you follow common wisdom, you will cut exactly the things that will help you find these&nbsp;people.</p>
  135. <p><cite><em><a href="https://escapingflatland.substack.com/p/search-query">A blog post is a very long and complex search query to find fascinating people and make them route interesting stuff to your inbox</a></em>&nbsp;(<a href="/david/cache/2023/5bea097a2dba65380cf43adf2df540f8/">cache</a>)</cite></p>
  136. </blockquote>
  137. <blockquote lang="en">
  138. <p>🤔 Fact we’re in the ’Twenties’ sounds so weird. It’s so synonymous with the 1920s. Sounds like a bygone era when women were still fighting for their rights, the upper classes were living a life of hedonism whilst people starved &amp; the world was on the verge of financial ruin and&nbsp;war.</p>
  139. <p><cite>Une capture d’écran de @BeardedGenius vue sur mastodon. 2023.</cite></p>
  140. </blockquote>
  141. <h2><a href="/david/2023/02/03/" title="Lien permanent vers cet article">Chargement</a> (2023-02-03)</h2>
  142. <blockquote lang="en">
  143. <p>If you are familiar with how the web is built, what happened is pretty obvious: A website that over-relies on JavaScript to power its experience had its logic collide with one or more other errant pieces of logic that it summons. This created a&nbsp;deadlock.</p>
  144. <p>If you do not make digital experiences for a living, what happened is not obvious at all. All you see is <mark>a tiny fake loading spinner that never&nbsp;stops.</mark></p>
  145. <p><cite><em><a href="https://ericwbailey.website/published/modern-health-frameworks-performance-and-harm/">Modern Health, frameworks, performance, and harm</a></em>&nbsp;(<a href="/david/cache/2023/7469f181ef4b031f59ae69356af16e28/">cache</a>)</cite></p>
  146. </blockquote>
  147. <p>Je suis le témoin d’un web cassé au quotidien. J’utilise <a href="https://addons.mozilla.org/en-US/firefox/addon/umatrix/">uMatrix</a> en bloquant toutes les requêtes qui ne sont pas sur le domaine consulté. Il est assez triste de constater le manque de résilience de la plupart des&nbsp;sites.</p>
  148. <p>Parfois, la consultation d’un article de blog n’est pas possible à cause de cela. Le contenu n’est même pas dans le HTML… ou une erreur JavaScript en masque&nbsp;l’affichage.</p>
  149. <p>La fragilité est devenue la norme car plus personne ne sait se servir des fondations du&nbsp;Web.</p>
  150. <hr />
  151. <p>Bande son du moment&nbsp;: <a href="https://www.youtube-nocookie.com/embed/Lm_2LCDmpXU">SEVDALIZA - DARKEST&nbsp;HOUR</a></p>
  152. <hr />
  153. <blockquote lang="en">
  154. <p>🏎️ I guess what I’m winding up to say here is <mark>developer experience really isn’t important</mark>—especially when frameworks haven’t even got the absolute baseline experience anywhere near where it needs to be to service a world wide web. A world wide web that’s accessed with slow, expensive connections and cheap, underperforming hardware. How about taking a bit of “DX” on the chin to focus instead on “why are we using this framework that potentially excludes the majority of&nbsp;users?”.</p>
  155. <p><cite><em><a href="https://andy-bell.co.uk/speed-for-who/">Speed for who? | Andy Bell</a></em>&nbsp;(<a href="/david/cache/2023/f7957bdde7af740e322756668784d355/">cache</a>)</cite></p>
  156. </blockquote>
  157. <blockquote>
  158. <p>🤗 Préciser notre mission, c’est rediscuter ensemble l’ordonnanceur qu’on ramènera tou⋅tes à la maison&nbsp;: quelles priorités, quelles actions, et comment s’insèrent-elles dans la tapisserie que nous brodons&nbsp;ensemble.</p>
  159. <p><cite><em><a href="https://plume.deuxfleurs.fr/~/Deuxfleurs/La%20mission%20de%20Deuxfleurs">La mission de Deuxfleurs</a></em>&nbsp;(<a href="/david/cache/2023/a0ccec7acb932e4155960c1c88d65eff/">cache</a>)</cite></p>
  160. </blockquote>
  161. <blockquote lang="en">
  162. <p>🙇 Thinking that people are stupid is not thinking. <mark>Understanding them&nbsp;is.</mark></p>
  163. <p>I never want to debate, but if I had to, I would hope to lose. I don’t want to convince anyone of my existing perspective. I would rather be convinced of theirs. It’s more interesting to assume that they are&nbsp;right.</p>
  164. <p><cite><em><a href="https://sive.rs/led">I want to lose every debate.</a></em>&nbsp;(<a href="/david/cache/2023/f85d5742bb188e4b25d627b78413fbac/">cache</a>)</cite></p>
  165. </blockquote>
  166. </main>
  167. <hr>
  168. <footer>
  169. <p>
  170. <nobr>
  171. <a href="/david/" title="Aller à l’accueil"
  172. ><svg class="icon icon-home">
  173. <use
  174. xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"
  175. ></use>
  176. </svg>
  177. Accueil</a
  178. >
  179. </nobr>
  180. <nobr>
  181. <a href="/david/log/" title="Accès au flux RSS"
  182. ><svg class="icon icon-rss2">
  183. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-rss2"></use>
  184. </svg>
  185. Suivre</a
  186. >
  187. </nobr>
  188. <nobr>
  189. <a href="http://larlet.com" title="Go to my English profile" data-instant
  190. ><svg class="icon icon-user-tie">
  191. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-user-tie"></use>
  192. </svg>
  193. Pro</a
  194. >
  195. </nobr>
  196. <nobr>
  197. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"
  198. ><svg class="icon icon-mail">
  199. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-mail"></use>
  200. </svg>
  201. Email</a
  202. >
  203. </nobr>
  204. <nobr>
  205. <abbr
  206. class="nowrap"
  207. title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"
  208. ><svg class="icon icon-hammer2">
  209. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-hammer2"></use>
  210. </svg>
  211. Légal</abbr
  212. >
  213. </nobr>
  214. </p>
  215. <template id="theme-selector">
  216. <form>
  217. <fieldset>
  218. <legend><svg class="icon icon-brightness-contrast">
  219. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-brightness-contrast"></use>
  220. </svg> Thème</legend>
  221. <label>
  222. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  223. </label>
  224. <label>
  225. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  226. </label>
  227. <label>
  228. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  229. </label>
  230. </fieldset>
  231. </form>
  232. </template>
  233. </footer>
  234. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  235. <script>
  236. function loadThemeForm(templateName) {
  237. const themeSelectorTemplate = document.querySelector(templateName)
  238. const form = themeSelectorTemplate.content.firstElementChild
  239. themeSelectorTemplate.replaceWith(form)
  240. form.addEventListener('change', (e) => {
  241. const chosenColorScheme = e.target.value
  242. localStorage.setItem('theme', chosenColorScheme)
  243. toggleTheme(chosenColorScheme)
  244. })
  245. const selectedTheme = localStorage.getItem('theme')
  246. if (selectedTheme && selectedTheme !== 'undefined') {
  247. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  248. }
  249. }
  250. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  251. window.addEventListener('load', () => {
  252. let hasDarkRules = false
  253. for (const styleSheet of Array.from(document.styleSheets)) {
  254. let mediaRules = []
  255. for (const cssRule of styleSheet.cssRules) {
  256. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  257. continue
  258. }
  259. // WARNING: Safari does not have/supports `conditionText`.
  260. if (cssRule.conditionText) {
  261. if (cssRule.conditionText !== prefersColorSchemeDark) {
  262. continue
  263. }
  264. } else {
  265. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  266. continue
  267. }
  268. }
  269. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  270. }
  271. // WARNING: do not try to insert a Rule to a styleSheet you are
  272. // currently iterating on, otherwise the browser will be stuck
  273. // in a infinite loop…
  274. for (const mediaRule of mediaRules) {
  275. styleSheet.insertRule(mediaRule.cssText)
  276. hasDarkRules = true
  277. }
  278. }
  279. if (hasDarkRules) {
  280. loadThemeForm('#theme-selector')
  281. }
  282. })
  283. </script>
  284. </body>
  285. </html>