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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  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 #dystopie
  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-02-03.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 #dystopie">
  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>#dystopie</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/03/04/" title="Lien permanent vers cet article">Jour&nbsp;1</a> <time datetime="2024-03-04">4 mars 2024</time>
  132. </h2>
  133. <p>Une réservation de longue date qui s’est transformée en sortie familiale (!), malheureusement nous n’avons pas pu rejoindre le refuge à ski faute de neige suffisante. C’était problématique car j’avais prévu de traîner une bonne partie de l’équipement, ce qui se révélait être un peu plus lourd sur le dos. Bon, aussi, on était partis sur une raclette, ça n’aide&nbsp;pas&nbsp;😅.</p>
  134. <p>J’avais très peur que le sentier soit peu praticable sans percer à chaque pas, ce qui m’était déjà arrivé dans un tel contexte. Vu le poids du sac, je craignais notamment que ma cheville en cours de réparation refasse le même mouvement en descente… mais nous étions à une poignée de degrés de cet état de la neige pour notre plus grand&nbsp;bonheur.</p>
  135. <p>Ce n’était pas non plus de tout repos et la récompense d’une lac dégelant à l’arrivée était bien méritée. Il est rare d’avoir ces conditions très douces dans un contexte hivernal, on en avait même oublié de prendre nos&nbsp;tuques&#8239;!</p>
  136. <p><em>Tests du jour&nbsp;: les barquettes en aluminium pour faire réflecteur de bougies. Efficace. Les bougies longues durées d’Ikea pour faire fondre du fromage. Pas&nbsp;efficace.</em></p>
  137. <figure>
  138. <a href="/static/david/2024/2024-03-04-lac-corbeau.jpg"
  139. title="Cliquer pour une version haute résolution">
  140. <img
  141. src="/static/david/2024/2024-03-04-lac-corbeau.jpg"
  142. width="3024" height="4032"
  143. srcset="/static/david/2024/2024-03-04-lac-corbeau.jpg 3024w, /static/david/2024/2024-03-04-lac-corbeau_660x440.jpg 660w, /static/david/2024/2024-03-04-lac-corbeau_990x660.jpg 990w, /static/david/2024/2024-03-04-lac-corbeau_1320x880.jpg 1320w"
  144. sizes="min(100vw, calc(100vh * 3024 / 4032))"
  145. loading="lazy"
  146. decoding="async"
  147. alt="Lac corbeau avec des boulots au premier plan.">
  148. </a>
  149. <figcaption>Un décor très minecrafteux&nbsp;(sic).</figcaption>
  150. </figure>
  151. <nav>
  152. <p>
  153. <a href="/david/2024/dystopie/"
  154. title="Liste de tous les articles 2024 associés à cette étiquette"
  155. rel="tag">#dystopie</a>
  156. <a href="/david/2024/foret/"
  157. title="Liste de tous les articles 2024 associés à cette étiquette"
  158. rel="tag">#forêt</a>
  159. <a href="/david/2024/solastalgia/"
  160. title="Liste de tous les articles 2024 associés à cette étiquette"
  161. rel="tag">#solastalgia</a>
  162. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  163. </p>
  164. </nav>
  165. <h2>
  166. <a href="/david/2024/02/21/" title="Lien permanent vers cet article">Cinéma</a> <time datetime="2024-02-21">21 février 2024</time>
  167. </h2>
  168. <blockquote lang="en">
  169. <p>Software is a creative industry with more in common with media production industries than&nbsp;housebuilding.</p>
  170. <p><cite><em><a data-link-domain="baldurbjarnason.com" href="https://www.baldurbjarnason.com/2024/software-is-a-medium-of-setbacks/" hreflang="en"
  171. title="Consultation de l’article (anglais)">Software is a medium of setbacks, but a medium’s limitations don’t define the artist</a>
  172. <a href="/david/cache/2024/d133365d1dec62b9ad7ab4c911db863a/" hreflang="en"
  173. data-tippy data-description="Much of the time, progress in software development comes coupled with a matching regression.“We’ve made it better.”(Whispered) “But we’ve also made it worse. The evolution of Apple’s computing devices makes for a decent example."
  174. data-source="https://www.baldurbjarnason.com/2024/software-is-a-medium-of-setbacks/"
  175. data-date="2024-02-21"
  176. data-favicon="https://www.baldurbjarnason.com/dark-bird.svg"
  177. data-domain="baldurbjarnason.com"
  178. ><svg xmlns="http://www.w3.org/2000/svg"
  179. width="24" height="24" viewBox="0 0 24 24" fill="none"
  180. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  181. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  182. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  183. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  184. </svg>
  185. <span class="sr-only">[archive]</span></a></em></cite></p>
  186. </blockquote>
  187. <p>Pour filer la métaphore, je me demande si les assistants à base de <a data-link-domain="vitrinelinguistique.oqlf.gouv.qc.ca" href="https://vitrinelinguistique.oqlf.gouv.qc.ca/fiche-gdt/fiche/26570880/grand-modele-de-langage">grands modèles de langage</a> seraient l’équivalent des environnements verts dans lesquels évoluent les acteur·ices aujourd’hui. Leur métier a changé avec la technologie, leur jeu a dû s’adapter pour transmettre des émotions dans un contexte où iels ne maîtrisent plus du tout la chaîne de représentation de leur travail. J’imagine que même la vérification de leur prise nécessite une bonne dose&nbsp;d’imaginaire.</p>
  188. <p>Quel est leur sentiment à la fin d’une journée de tournage&#8239;? Quel sera le&nbsp;mien&#8239;?</p>
  189. <blockquote lang="en">
  190. <p>Dear Mr. Architect!</p>
  191. <p>Please design and build me a house. I am not quite sure of what I need, so you should use your discretion. My house should have between two and forty-five bedrooms. Just make sure the plans are such that the bedrooms can be easily added or deleted. When you bring the blueprints to me, I will make the final decision of what I want. Also, bring me the cost breakdown for each configuration so that I can arbitrarily pick&nbsp;one.</p>
  192. <p><cite><em><a data-link-domain="gksoft.com" href="http://www.gksoft.com/a/fun/architects.html" hreflang="en"
  193. title="Consultation de l’article (anglais)">If Architects had to work like Programmers</a>
  194. <a href="/david/cache/2024/2ad967b8fc35e160fa8e6c1d2a3b4734/" hreflang="en"
  195. data-tippy data-description="You must be thrilled to be working on an interesting project as this!"
  196. data-source="http://www.gksoft.com/a/fun/architects.html"
  197. data-date="2024-02-21"
  198. data-favicon=""
  199. data-domain="gksoft.com"
  200. ><svg xmlns="http://www.w3.org/2000/svg"
  201. width="24" height="24" viewBox="0 0 24 24" fill="none"
  202. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  203. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  204. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  205. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  206. </svg>
  207. <span class="sr-only">[archive]</span></a></em>, 1995</cite></p>
  208. </blockquote>
  209. <a href="#hr-83" title="Lien vers cette section de la page"><hr id="hr-83" /></a>
  210. <blockquote>
  211. <p>Fracas est un collectif queer et féministe d’aide à la gestion de conflits interpersonnels, de violences et d’agressions au sein de&nbsp;collectifs.</p>
  212. <p><cite><em><a data-link-domain="collectif-fracas.com" href="https://www.collectif-fracas.com/" hreflang="fr"
  213. title="Consultation de l’article">Fracas, collectif queer et féministe d’aide à la gestion de conflits</a>
  214. <a href="/david/cache/2024/f1041ff1c0dfabc719d64a4a5bcb0c10/" hreflang="fr"
  215. data-tippy data-description="Fracas est un collectif queer et féministe d’aide à la gestion de conflits interpersonnels, de violences et d’agressions au sein de collectifs."
  216. data-source="https://www.collectif-fracas.com/"
  217. data-date="2024-02-21"
  218. data-favicon="https://assets-global.website-files.com/60339ece26e0011279a8b071/614c50304051ad041149ae60_favicon.png"
  219. data-domain="collectif-fracas.com"
  220. ><svg xmlns="http://www.w3.org/2000/svg"
  221. width="24" height="24" viewBox="0 0 24 24" fill="none"
  222. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  223. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  224. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  225. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  226. </svg>
  227. <span class="sr-only">[archive]</span></a></em></cite></p>
  228. </blockquote>
  229. <p>Si peu de temps et tellement à&nbsp;explorer.</p>
  230. <p>(<a data-link-domain="cqfd-journal.org" href="https://cqfd-journal.org/Se-reapproprier-nos-conflits" hreflang="fr"
  231. title="Consultation de l’article">Via CQFD</a>
  232. <a href="/david/cache/2024/81e8bd49021e320b84e5d4fbd4c7f587/" hreflang="fr"
  233. data-tippy data-description="En se penchant sur les manières dont sont prises en charge les violences (notamment sexistes et sexuelles) dans les milieux militants, l’ouvrage (...)"
  234. data-source="https://cqfd-journal.org/Se-reapproprier-nos-conflits"
  235. data-date="2024-02-21"
  236. data-favicon="https://cqfd-journal.org/squelettes/favicon.ico"
  237. data-domain="cqfd-journal.org"
  238. ><svg xmlns="http://www.w3.org/2000/svg"
  239. width="24" height="24" viewBox="0 0 24 24" fill="none"
  240. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  241. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  242. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  243. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  244. </svg>
  245. <span class="sr-only">[archive]</span></a> qui arrive à ne faire aucun lien vers le site en question, ça me rend&nbsp;fou…)</p>
  246. <nav>
  247. <p>
  248. <a href="/david/2024/dystopie/"
  249. title="Liste de tous les articles 2024 associés à cette étiquette"
  250. rel="tag">#dystopie</a>
  251. <a href="/david/2024/ia/"
  252. title="Liste de tous les articles 2024 associés à cette étiquette"
  253. rel="tag">#IA</a>
  254. <a href="/david/2024/psychologie/"
  255. title="Liste de tous les articles 2024 associés à cette étiquette"
  256. rel="tag">#psychologie</a>
  257. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  258. </p>
  259. </nav>
  260. <h2>
  261. <a href="/david/2024/02/01/" title="Lien permanent vers cet article">Vision</a> <time datetime="2024-02-01">1 février 2024</time>
  262. </h2>
  263. <blockquote lang="en">
  264. <p>But if you were to try just one thing using Vision Pro — just one thing — it has to be <mark>watching a movie</mark> in the TV app, in theater mode. Try that, and no matter how skeptical you were beforehand about the Vision Pro’s price tag, your hand will start inching toward your&nbsp;wallet.</p>
  265. <p><cite><em><a data-link-domain="daringfireball.net" href="https://daringfireball.net/2024/01/the_vision_pro" hreflang="en"
  266. title="Consultation de l’article (anglais)">Daring Fireball: The Vision Pro</a>
  267. <a href="/david/cache/2024/cd9184008ba5d9e4c9be4d0a0eea4f60/" hreflang="en"
  268. data-tippy data-description="A headset, a spatial productivity platform, and a personal entertainment device."
  269. data-source="https://daringfireball.net/2024/01/the_vision_pro"
  270. data-date="2024-01-31"
  271. data-favicon="https://daringfireball.net/graphics/favicon.ico?v=005"
  272. data-domain="daringfireball.net"
  273. ><svg xmlns="http://www.w3.org/2000/svg"
  274. width="24" height="24" viewBox="0 0 24 24" fill="none"
  275. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  276. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  277. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  278. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  279. </svg>
  280. <span class="sr-only">[archive]</span></a></em></cite></p>
  281. </blockquote>
  282. <p>Ce jouet est bien trop cher… et c’est une bonne chose. D’une certaine manière, c’est la seule innovation de 2023&nbsp;qui ne comporte pas IA dans le premier écran marketing, c’est déjà pas mal. Je n’ai pas la naïveté de penser que la version 2&nbsp;ne nous amènera pas vers le <em>SpatIAl Computing</em> pour autant, restons&nbsp;sérieux.</p>
  283. <p>Je peux imaginer des des <a data-link-domain="theinfiniteexperience.world" href="https://theinfiniteexperience.world">expériences immersives</a> dans des endroits dédiés, de la location comme on pouvait louer un DVD il y a des années, des salles dédiées en bibliothèques (ambiance dystopie cyberpunk assurée), à un moment il pourrait même y avoir un espace pour ça (payant&#8239;?) dans les <em>Apple Store</em>. Si le son est aussi bon que ce que peut décrire <em>Daring Fanboy</em>, j’aurais vraiment envie de me retrouver au milieu d’un concert, d’avoir le choix entre plusieurs points de vues et&nbsp;acoustiques.</p>
  284. <p>Le côté immersif aurait aussi sa place en terme d’apprentissage / transmission. Être au premier rang d’une conférence ou d’un cours pourrait permettre de redéfinir son attention&nbsp;(?) et sachant que la dernière version de l’iPhone permet de capter de telles vidéos, c’est peut-être un moyen de faire entrer quelqu’un dans son salon ce qui produirait un autre type&nbsp;d’intimité.</p>
  285. <p>En parlant de captation et d’intimité, avec les <em>deepfakes</em> il devient possible de se retrouver dans un salon mais dans une autre tenue. Toute prise de vidéo devient une menace potentielle. Impossible de ne pas penser à des objets connectés / synchronisés autour de la&nbsp;pornographie…</p>
  286. <a href="#hr-59" title="Lien vers cette section de la page"><hr id="hr-59" /></a>
  287. <blockquote lang="en">
  288. <p>The “i” in iPhone stands for “inequality”. […]</p>
  289. <p><mark>iPhone owners live in a different world</mark> than high-end Android buyers, and light-years away what the bulk of the market experiences. No matter how you slice it, the performance inequality gap is growing for CPU-bound workloads like JavaScript-heavy web&nbsp;apps.</p>
  290. <p><cite><em><a data-link-domain="infrequently.org" href="https://infrequently.org/2024/01/performance-inequality-gap-2024/" hreflang="en"
  291. title="Consultation de l’article (anglais)">The Performance Inequality Gap, 2024</a>
  292. <a href="/david/cache/2024/0676c7ccf1ab2b380641866789366d26/" hreflang="en"
  293. data-tippy data-description="How much HTML, CSS, and JavaScript can we afford? More than in years past, but much less than frontend developers are burdening users with."
  294. data-source="https://infrequently.org/2024/01/performance-inequality-gap-2024/"
  295. data-date="2024-01-31"
  296. data-favicon="https://infrequently.org/assets/images/favicons/ino-dark-opt-192x192.png"
  297. data-domain="infrequently.org"
  298. ><svg xmlns="http://www.w3.org/2000/svg"
  299. width="24" height="24" viewBox="0 0 24 24" fill="none"
  300. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  301. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  302. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  303. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  304. </svg>
  305. <span class="sr-only">[archive]</span></a></em></cite></p>
  306. </blockquote>
  307. <p>Ce rapport me rappelle que la notion d’accessibilité est très vaste. Et je suis mal placé pour donner des leçons en vous faisant charger 5&nbsp;polices de caractères pour vous afficher une page… je n’ai pas encore travaillé les performances du thème de l’année et c’est une&nbsp;erreur.</p>
  308. <blockquote lang="en">
  309. <p>We got to a place where performance has been a constant problem in large part because a tribe of programmers convinced themselves that it <em>wasn’t</em> and <em>wouldn’t be</em>. […]</p>
  310. <p>But tribalism-boosted confirmation bias mixed with JavaScript’s toxic positivity culture to precipitate out a Silicon Prosperity Gospel; all resources would go infinite if you just <em>believed</em>. […]</p>
  311. <p>The solutions are social, not technical, because <mark>the delusions are social,</mark> rather than&nbsp;technical.</p>
  312. <p><cite><em>Ibid.</em></cite></p>
  313. </blockquote>
  314. <p>Ça&nbsp;pique.</p>
  315. <a href="#hr-60" title="Lien vers cette section de la page"><hr id="hr-60" /></a>
  316. <blockquote lang="en">
  317. <p>Rather, the biggest benefits I see are <em>collective</em>, cutting across the industry as a whole. I think web components can make the entire web more accessible. They have the potential to unify currently fragmented communities, including various JavaScript frameworks <em>and</em> <mark>those who avoid them</mark>.</p>
  318. <p>[…] Web components won’t take web development by storm, or show us the One True Way to build websites. They don’t need to dethrone JavaScript frameworks. We probably won’t even all learn how to write&nbsp;them!</p>
  319. <p><cite><em><a data-link-domain="jakelazaroff.com" href="https://jakelazaroff.com/words/the-web-component-success-story/" hreflang="en"
  320. title="Consultation de l’article (anglais)">The Web Component Success Story</a>
  321. <a href="/david/cache/2024/f4d2d42eba58062be910407690ae447c/" hreflang="en"
  322. data-tippy data-description="Web components won't take web development by storm, or show us the One True Way to build websites. What they will do is let us collectively build a rich ecosystem of dynamic components that work with any web stack."
  323. data-source="https://jakelazaroff.com/words/the-web-component-success-story/"
  324. data-date="2024-01-31"
  325. data-favicon="https://jakelazaroff.com/favicon.ico"
  326. data-domain="jakelazaroff.com"
  327. ><svg xmlns="http://www.w3.org/2000/svg"
  328. width="24" height="24" viewBox="0 0 24 24" fill="none"
  329. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  330. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  331. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  332. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  333. </svg>
  334. <span class="sr-only">[archive]</span></a></em></cite></p>
  335. </blockquote>
  336. <p>Très bon article et la boite de prévisualisation au survol de chaque lien ressemble beaucoup à ce que j’avais l’intention de faire pour régler mes soucis d’accès à la version archivée tout en affichant le domaine. Actuellement chaque lien devient trop long et hache le texte lorsque ça n’est pas en pied de citation (et encore). Il faut que je creuse comment cela est fait, via un <em>web component</em> réutilisable&nbsp;j’imagine&nbsp;:-).</p>
  337. <p>PS&nbsp;: si vous minifiez votre JavaScript, les <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/SourceMap">SourceMap</a> sont un moyen de partager votre expérience. Sinon l’aspect <q lang="en">collective</q> est beaucoup moins&nbsp;pertinent.</p>
  338. <nav>
  339. <p>
  340. <a href="/david/2024/accessibilite/"
  341. title="Liste de tous les articles 2024 associés à cette étiquette"
  342. rel="tag">#accessibilité</a>
  343. <a href="/david/2024/dystopie/"
  344. title="Liste de tous les articles 2024 associés à cette étiquette"
  345. rel="tag">#dystopie</a>
  346. <a href="/david/2024/evolution/"
  347. title="Liste de tous les articles 2024 associés à cette étiquette"
  348. rel="tag">#évolution</a>
  349. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  350. </p>
  351. </nav>
  352. <form action="/david/recherche/" method="get">
  353. <fieldset>
  354. <legend>Recherche</legend>
  355. <label for="input-search">Termes de votre recherche :</label>
  356. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  357. <input type="submit" value="Chercher">
  358. <p id="indexation-infos">
  359. <small>
  360. Seuls les contenus de ces 8 dernières années sont indexés.
  361. </small>
  362. </p>
  363. </fieldset>
  364. </form>
  365. <aside>
  366. <theme-toggle></theme-toggle>
  367. </aside>
  368. </article>
  369. <hr>
  370. <footer>
  371. <p>
  372. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  373. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  374. <a href="http://larlet.com"
  375. title="Go to my English profile"
  376. data-instant>Pro</a>
  377. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  378. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  379. </p>
  380. <template id="theme-selector">
  381. <form>
  382. <style type="text/css">
  383. fieldset div {
  384. text-align: center;
  385. }
  386. </style>
  387. <fieldset>
  388. <legend>Thème</legend>
  389. <div>
  390. <label>
  391. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  392. Auto
  393. </label>
  394. <label>
  395. <input type="radio" value="dark" name="chosen-color-scheme">
  396. Foncé
  397. </label>
  398. <label>
  399. <input type="radio" value="light" name="chosen-color-scheme">
  400. Clair
  401. </label>
  402. </div>
  403. </fieldset>
  404. </form>
  405. </template>
  406. </footer>
  407. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  408. <script>
  409. class ThemeToggle extends HTMLElement {
  410. constructor() {
  411. super()
  412. const themeSelectorTemplate = document.querySelector('#theme-selector')
  413. const form = themeSelectorTemplate.content.firstElementChild
  414. this.attachShadow({ mode: 'open' })
  415. this.shadowRoot.appendChild(form.cloneNode(true))
  416. }
  417. connectedCallback() {
  418. const form = this.shadowRoot.querySelector('form')
  419. form.addEventListener('change', (e) => {
  420. const chosenColorScheme = e.target.value
  421. localStorage.setItem('theme', chosenColorScheme)
  422. toggleTheme(chosenColorScheme)
  423. })
  424. const selectedTheme = localStorage.getItem('theme')
  425. if (selectedTheme && selectedTheme !== 'undefined') {
  426. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  427. }
  428. }
  429. }
  430. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  431. window.addEventListener('load', () => {
  432. let colorsLayer = undefined
  433. let hasDarkRules = false
  434. for (const styleSheet of Array.from(document.styleSheets)) {
  435. let mediaRules = []
  436. for (const layerRule of styleSheet.cssRules) {
  437. if (!(layerRule instanceof CSSLayerBlockRule)) {
  438. continue
  439. }
  440. if (layerRule.name === 'colors') {
  441. colorsLayer = layerRule
  442. }
  443. for (const cssRule of layerRule.cssRules) {
  444. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  445. continue
  446. }
  447. // WARNING: Safari does not have/supports `conditionText`.
  448. if (cssRule.conditionText) {
  449. if (cssRule.conditionText !== prefersColorSchemeDark) {
  450. continue
  451. }
  452. } else {
  453. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  454. continue
  455. }
  456. }
  457. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  458. }
  459. }
  460. // WARNING: do not try to insert a Rule to a styleSheet you are
  461. // currently iterating on, otherwise the browser will be stuck
  462. // in a infinite loop…
  463. for (const mediaRule of mediaRules) {
  464. // Safari requires the `0` second parameter (even if default).
  465. colorsLayer.insertRule(mediaRule.cssText, 0)
  466. hasDarkRules = true
  467. }
  468. }
  469. if (hasDarkRules) {
  470. if ('customElements' in window && !customElements.get('theme-toggle')) {
  471. customElements.define('theme-toggle', ThemeToggle)
  472. }
  473. }
  474. })
  475. </script>
  476. </body>
  477. </html>