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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  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. Extinction
  14. — David Larlet</title>
  15. <meta name="description" content="So where have all the websites gone? Well, the people who make them have all gone to war for the capitalist machine. They grew up and got jobs. A natural part of growing up. Silos came and plucked their voices. Invasive memes and short form content grew in their place. Hustle overtook leisure. Harassment overtook openness. Influence overtook creativity. An economy of interestingness replaced by one of followers, likes, and engagement metrics.">
  16. <!-- That good ol' feed, subscribe :). -->
  17. <link rel="alternate"
  18. type="application/atom+xml"
  19. title="Feed"
  20. href="/david/log/">
  21. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  22. <link rel="apple-touch-icon"
  23. sizes="180x180"
  24. href="/static/david/icons2/apple-touch-icon.png">
  25. <link rel="icon"
  26. type="image/png"
  27. sizes="32x32"
  28. href="/static/david/icons2/favicon-32x32.png">
  29. <link rel="icon"
  30. type="image/png"
  31. sizes="16x16"
  32. href="/static/david/icons2/favicon-16x16.png">
  33. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  34. <link rel="mask-icon"
  35. href="/static/david/icons2/safari-pinned-tab.svg"
  36. color="#07486c">
  37. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  38. <meta name="msapplication-TileColor" content="#f7f7f7">
  39. <meta name="msapplication-config"
  40. content="/static/david/icons2/browserconfig.xml">
  41. <meta name="theme-color"
  42. content="#f7f7f7"
  43. media="(prefers-color-scheme: light)">
  44. <meta name="theme-color"
  45. content="#272727"
  46. media="(prefers-color-scheme: dark)">
  47. <!-- Is that even respected? Retrospectively? What a shAItshow…
  48. https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
  49. <meta name="robots" content="noai, noimageai">
  50. <!-- Documented, feel free to shoot an email. -->
  51. <link rel="stylesheet" href="/static/david/css/style_2024-01-19.css">
  52. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  53. <link rel="preload"
  54. href="/static/david/css/fonts/century_supra_ot_a_regular.woff2"
  55. as="font"
  56. type="font/woff2"
  57. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  58. crossorigin>
  59. <link rel="preload"
  60. href="/static/david/css/fonts/century_supra_ot_a_bold.woff2"
  61. as="font"
  62. type="font/woff2"
  63. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  64. crossorigin>
  65. <link rel="preload"
  66. href="/static/david/css/fonts/century_supra_ot_a_italic.woff2"
  67. as="font"
  68. type="font/woff2"
  69. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  70. crossorigin>
  71. <link rel="preload"
  72. href="/static/david/css/fonts/century_supra_ot_b_regular.woff2"
  73. as="font"
  74. type="font/woff2"
  75. media="(prefers-color-scheme: dark)"
  76. crossorigin>
  77. <link rel="preload"
  78. href="/static/david/css/fonts/century_supra_ot_b_bold.woff2"
  79. as="font"
  80. type="font/woff2"
  81. media="(prefers-color-scheme: dark)"
  82. crossorigin>
  83. <link rel="preload"
  84. href="/static/david/css/fonts/century_supra_ot_b_italic.woff2"
  85. as="font"
  86. type="font/woff2"
  87. media="(prefers-color-scheme: dark)"
  88. crossorigin>
  89. <script>
  90. function toggleTheme(themeName) {
  91. document.documentElement.classList.toggle(
  92. 'forced-dark',
  93. themeName === 'dark'
  94. )
  95. document.documentElement.classList.toggle(
  96. 'forced-light',
  97. themeName === 'light'
  98. )
  99. }
  100. const selectedTheme = localStorage.getItem('theme')
  101. if (selectedTheme !== 'undefined') {
  102. toggleTheme(selectedTheme)
  103. }
  104. </script>
  105. <body data-instant-intensity="viewport-all">
  106. <article>
  107. <header>
  108. <hgroup>
  109. <h1>Extinction</h1>
  110. <p>Le <time datetime="2024-01-20">20 janvier 2024</time></p>
  111. </hgroup>
  112. </header>
  113. <nav>
  114. <p>
  115. <a rel="prev"
  116. href="/david/2024/01/19/"
  117. title="Publication précédente : Marcher">← Précédent</a> •
  118. <a href="/david/" title="Aller à l’accueil" rel="up">Accueil</a>
  119. <a href="/david/recherche/"
  120. title="Aller à la page de recherche"
  121. rel="search">Recherche</a>
  122. </p>
  123. </nav>
  124. <blockquote lang="en">
  125. <p>So where have all the websites gone? Well, the people who make them have all gone to war for the capitalist machine. They grew up and got jobs. A natural part of growing up. Silos came and plucked their voices. Invasive memes and short form content grew in their place. Hustle overtook leisure. Harassment overtook openness. Influence overtook creativity. An economy of interestingness replaced by one of followers, likes, and engagement&nbsp;metrics.</p>
  126. <p>One important thing to note; <mark>websites aren’t extinct.</mark> In fact, you’re on one now! Uploading your own words is ancient technology but still&nbsp;works.</p>
  127. <p><cite><em><a data-link-domain="daverupert.com" href="https://daverupert.com/2024/01/where-have-all-the-websites-gone/">Where have all the flowers gone?</a> <a href="/david/cache/2024/7136e0810bfa42c4a9ca798a55cd2d53/" title="Copie locale au 2024-01-19">[archive]</a></em></cite></p>
  128. </blockquote>
  129. <p>En réponse à <q lang="en"><a data-link-domain="fromjason.xyz" href="https://www.fromjason.xyz/p/notebook/where-have-all-the-websites-gone/">Where have all the websites gone?</a> <a href="/david/cache/2024/c3272392d462da90874d32841e5caac8/" title="Copie locale au 2024-01-09">[archive]</a></q> que j’ai <a href="/david/2024/01/10/#hr-24">déjà cité</a>. Peut-être que la capacité à publier est toujours là mais que nous avons <a href="/david/2024/01/12/#hr-27">trop changé</a> pour être capables de perdurer dans cette pratique. 2024&nbsp;pourrait me faire mentir car je vois une certaine effervescence dans mon agrégateur. On va bien voir si ça dure. On va bien voir si <em>je</em>&nbsp;dure.</p>
  130. <p><em>Guidé par le besoin, je suis en train d’automatiser des ancres sur mes <code>&lt;hr&gt;</code>, fausse bonne idée&#8239;? En affinant un peu le style ça me convient pour&nbsp;l’instant.</em></p>
  131. <a href="#hr-40" title="Lien vers cette section de la page"><hr id="hr-40" /></a>
  132. <blockquote>
  133. <p>public-inbox implements the sharing of an email inbox via git to complement or replace traditional mailing lists. Readers may read via NNTP, IMAP, POP3, Atom feeds or HTML&nbsp;archives.</p>
  134. <p>public-inbox spawned around three main&nbsp;ideas:</p>
  135. <ul>
  136. <li>Publicly accessible and archived communication is essential to Free Software&nbsp;development.</li>
  137. <li>Contributing to Free Software projects should not require the use of non-Free services or&nbsp;software.</li>
  138. <li><mark>Graphical user interfaces should not be required for text-based communication.</mark> Users may have broken graphics drivers, limited eyesight, or be unable to afford modern&nbsp;hardware.</li>
  139. </ul>
  140. <p>public-inbox aims to be easy-to-deploy and manage; encouraging projects to run their own instances with minimal&nbsp;overhead.</p>
  141. <p><cite><em><a data-link-domain="public-inbox.org" href="https://public-inbox.org/README.html">public-inbox - an &quot;archives first&quot; approach to mailing lists</a> <a href="/david/cache/2024/30b40ff8034212e070dc7daf2b9406e9/" title="Copie locale au 2024-01-19">[archive]</a></em></cite></p>
  142. </blockquote>
  143. <p>D’une certaine manière, l’<a data-link-domain="github.com" href="https://github.com/jgm/pandoc/issues/9250">extinction de voix des un·es</a> fait mon bonheur de découverte aujourd’hui. J’espère que le réflexe ne sera pas de passer de <em>Google Groups</em> à <em>Microsoft Github Discussions</em> par&nbsp;commodité.</p>
  144. <a href="#hr-41" title="Lien vers cette section de la page"><hr id="hr-41" /></a>
  145. <blockquote>
  146. <p>… ça veut dire qu’en vrai, les droits humains, tu t’en fiches pas&nbsp;mal.</p>
  147. <p>Et que tu es juste <mark>un peu raciste</mark>.</p>
  148. <p><cite><em><a data-link-domain="emmaclit.com" href="https://emmaclit.com/2024/01/19/culture-froncaise/">Culture&nbsp;fronçaise</a></em></cite></p>
  149. </blockquote>
  150. <p>Voilà.</p>
  151. <a href="#hr-42" title="Lien vers cette section de la page"><hr id="hr-42" /></a>
  152. <figure>
  153. <a href="/static/david/2024/2024-01-19-ski-de-fond-nocturne.jpg"
  154. title="Cliquer pour une version haute résolution">
  155. <img
  156. src="/static/david/2024/2024-01-19-ski-de-fond-nocturne.jpg"
  157. width="3024" height="3024"
  158. srcset="/static/david/2024/2024-01-19-ski-de-fond-nocturne.jpg 3024w, /static/david/2024/2024-01-19-ski-de-fond-nocturne_660x440.jpg 660w, /static/david/2024/2024-01-19-ski-de-fond-nocturne_990x660.jpg 990w, /static/david/2024/2024-01-19-ski-de-fond-nocturne_1320x880.jpg 1320w"
  159. sizes="min(100vw, calc(100vh * 3024 / 3024))"
  160. loading="lazy"
  161. decoding="async"
  162. alt="Un enfant de dos dans des traces de ski de fond classique à la tombée du jour">
  163. </a>
  164. <figcaption>-16°C, rien de mieux pour démarrer une fin de semaine qu’une sortie ski dans notre jardin après&nbsp;l’école.</figcaption>
  165. </figure>
  166. <p>Cette photo est floue, c’est devenu tellement rare avec un téléphone (<em>OK&nbsp;Boomer</em>&nbsp;:p). Les couleurs étaient superbes et une fois les mains réchauffées c’était une ambiance très agréable. On n’a pas croisé grand monde. La rééducation active continue tranquillement son&nbsp;chemin.</p>
  167. <nav>
  168. <p>
  169. <a rel="prev"
  170. href="/david/2024/01/19/"
  171. title="Publication précédente : Marcher">← Précédent</a> •
  172. <a href="/david/2024/" title="Liste des publications récentes">↑ En 2024</a>
  173. </p>
  174. </nav>
  175. <form action="/david/recherche/" method="get">
  176. <fieldset>
  177. <legend>Recherche</legend>
  178. <label for="input-search">Termes de votre recherche :</label>
  179. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  180. <input type="submit" value="Chercher">
  181. <p id="indexation-infos">
  182. <small>
  183. Seuls les contenus de ces 8 dernières années sont indexés.
  184. </small>
  185. </p>
  186. </fieldset>
  187. </form>
  188. <aside>
  189. <theme-toggle></theme-toggle>
  190. </aside>
  191. </article>
  192. <hr>
  193. <footer>
  194. <p>
  195. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  196. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  197. <a href="http://larlet.com"
  198. title="Go to my English profile"
  199. data-instant>Pro</a>
  200. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  201. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  202. </p>
  203. <template id="theme-selector">
  204. <form>
  205. <style type="text/css">
  206. fieldset div {
  207. text-align: center;
  208. }
  209. </style>
  210. <fieldset>
  211. <legend>Thème</legend>
  212. <div>
  213. <label>
  214. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  215. Auto
  216. </label>
  217. <label>
  218. <input type="radio" value="dark" name="chosen-color-scheme">
  219. Foncé
  220. </label>
  221. <label>
  222. <input type="radio" value="light" name="chosen-color-scheme">
  223. Clair
  224. </label>
  225. </div>
  226. </fieldset>
  227. </form>
  228. </template>
  229. </footer>
  230. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  231. <script>
  232. class ThemeToggle extends HTMLElement {
  233. constructor() {
  234. super()
  235. const themeSelectorTemplate = document.querySelector('#theme-selector')
  236. const form = themeSelectorTemplate.content.firstElementChild
  237. this.attachShadow({ mode: 'open' })
  238. this.shadowRoot.appendChild(form.cloneNode(true))
  239. }
  240. connectedCallback() {
  241. const form = this.shadowRoot.querySelector('form')
  242. form.addEventListener('change', (e) => {
  243. const chosenColorScheme = e.target.value
  244. localStorage.setItem('theme', chosenColorScheme)
  245. toggleTheme(chosenColorScheme)
  246. })
  247. const selectedTheme = localStorage.getItem('theme')
  248. if (selectedTheme && selectedTheme !== 'undefined') {
  249. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  250. }
  251. }
  252. }
  253. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  254. window.addEventListener('load', () => {
  255. let colorsLayer = undefined
  256. let hasDarkRules = false
  257. for (const styleSheet of Array.from(document.styleSheets)) {
  258. let mediaRules = []
  259. for (const layerRule of styleSheet.cssRules) {
  260. if (!(layerRule instanceof CSSLayerBlockRule)) {
  261. continue
  262. }
  263. if (layerRule.name === 'colors') {
  264. colorsLayer = layerRule
  265. }
  266. for (const cssRule of layerRule.cssRules) {
  267. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  268. continue
  269. }
  270. // WARNING: Safari does not have/supports `conditionText`.
  271. if (cssRule.conditionText) {
  272. if (cssRule.conditionText !== prefersColorSchemeDark) {
  273. continue
  274. }
  275. } else {
  276. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  277. continue
  278. }
  279. }
  280. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  281. }
  282. }
  283. // WARNING: do not try to insert a Rule to a styleSheet you are
  284. // currently iterating on, otherwise the browser will be stuck
  285. // in a infinite loop…
  286. for (const mediaRule of mediaRules) {
  287. // Safari requires the `0` second parameter (even if default).
  288. colorsLayer.insertRule(mediaRule.cssText, 0)
  289. hasDarkRules = true
  290. }
  291. }
  292. if (hasDarkRules) {
  293. if ('customElements' in window && !customElements.get('theme-toggle')) {
  294. customElements.define('theme-toggle', ThemeToggle)
  295. }
  296. }
  297. })
  298. </script>
  299. </body>
  300. </html>