Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.html 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  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. <meta name="description" content="Publications relatives au tag #dystopie">
  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-02-03.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. <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/02/01/" title="Lien permanent vers cet article">Vision</a> <time datetime="2024-02-01">1 février 2024</time>
  132. </h2>
  133. <blockquote lang="en">
  134. <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>
  135. <p><cite><em><a data-link-domain="daringfireball.net" href="https://daringfireball.net/2024/01/the_vision_pro" hreflang="en"
  136. title="Consultation de l’article (anglais)">Daring Fireball: The Vision Pro</a>
  137. <a href="/david/cache/2024/cd9184008ba5d9e4c9be4d0a0eea4f60/" hreflang="en"
  138. data-tippy data-description="A headset, a spatial productivity platform, and a personal entertainment device."
  139. data-source="https://daringfireball.net/2024/01/the_vision_pro"
  140. data-date="2024-01-31"
  141. data-favicon="https://daringfireball.net/graphics/favicon.ico?v=005"
  142. data-domain="daringfireball.net"
  143. ><svg xmlns="http://www.w3.org/2000/svg"
  144. width="24" height="24" viewBox="0 0 24 24" fill="none"
  145. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  146. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  147. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  148. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  149. </svg>
  150. <span class="sr-only">[archive]</span></a></em></cite></p>
  151. </blockquote>
  152. <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>
  153. <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>
  154. <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>
  155. <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>
  156. <a href="#hr-59" title="Lien vers cette section de la page"><hr id="hr-59" /></a>
  157. <blockquote lang="en">
  158. <p>The “i” in iPhone stands for “inequality”. […]</p>
  159. <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>
  160. <p><cite><em><a data-link-domain="infrequently.org" href="https://infrequently.org/2024/01/performance-inequality-gap-2024/" hreflang="en"
  161. title="Consultation de l’article (anglais)">The Performance Inequality Gap, 2024</a>
  162. <a href="/david/cache/2024/0676c7ccf1ab2b380641866789366d26/" hreflang="en"
  163. 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."
  164. data-source="https://infrequently.org/2024/01/performance-inequality-gap-2024/"
  165. data-date="2024-01-31"
  166. data-favicon="https://infrequently.org/assets/images/favicons/ino-dark-opt-192x192.png"
  167. data-domain="infrequently.org"
  168. ><svg xmlns="http://www.w3.org/2000/svg"
  169. width="24" height="24" viewBox="0 0 24 24" fill="none"
  170. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  171. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  172. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  173. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  174. </svg>
  175. <span class="sr-only">[archive]</span></a></em></cite></p>
  176. </blockquote>
  177. <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>
  178. <blockquote lang="en">
  179. <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>
  180. <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>
  181. <p>The solutions are social, not technical, because <mark>the delusions are social,</mark> rather than&nbsp;technical.</p>
  182. <p><cite><em>Ibid.</em></cite></p>
  183. </blockquote>
  184. <p>Ça&nbsp;pique.</p>
  185. <a href="#hr-60" title="Lien vers cette section de la page"><hr id="hr-60" /></a>
  186. <blockquote lang="en">
  187. <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>
  188. <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>
  189. <p><cite><em><a data-link-domain="jakelazaroff.com" href="https://jakelazaroff.com/words/the-web-component-success-story/" hreflang="en"
  190. title="Consultation de l’article (anglais)">The Web Component Success Story</a>
  191. <a href="/david/cache/2024/f4d2d42eba58062be910407690ae447c/" hreflang="en"
  192. 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."
  193. data-source="https://jakelazaroff.com/words/the-web-component-success-story/"
  194. data-date="2024-01-31"
  195. data-favicon="https://jakelazaroff.com/favicon.ico"
  196. data-domain="jakelazaroff.com"
  197. ><svg xmlns="http://www.w3.org/2000/svg"
  198. width="24" height="24" viewBox="0 0 24 24" fill="none"
  199. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  200. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  201. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  202. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  203. </svg>
  204. <span class="sr-only">[archive]</span></a></em></cite></p>
  205. </blockquote>
  206. <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>
  207. <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>
  208. <nav>
  209. <p>
  210. <a href="/david/2024/accessibilite/"
  211. title="Liste de tous les articles 2024 associés à cette étiquette"
  212. rel="tag">#accessibilité</a>
  213. <a href="/david/2024/dystopie/"
  214. title="Liste de tous les articles 2024 associés à cette étiquette"
  215. rel="tag">#dystopie</a>
  216. <a href="/david/2024/evolution/"
  217. title="Liste de tous les articles 2024 associés à cette étiquette"
  218. rel="tag">#évolution</a>
  219. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  220. </p>
  221. </nav>
  222. <form action="/david/recherche/" method="get">
  223. <fieldset>
  224. <legend>Recherche</legend>
  225. <label for="input-search">Termes de votre recherche :</label>
  226. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  227. <input type="submit" value="Chercher">
  228. <p id="indexation-infos">
  229. <small>
  230. Seuls les contenus de ces 8 dernières années sont indexés.
  231. </small>
  232. </p>
  233. </fieldset>
  234. </form>
  235. <aside>
  236. <theme-toggle></theme-toggle>
  237. </aside>
  238. </article>
  239. <hr>
  240. <footer>
  241. <p>
  242. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  243. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  244. <a href="http://larlet.com"
  245. title="Go to my English profile"
  246. data-instant>Pro</a>
  247. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  248. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  249. </p>
  250. <template id="theme-selector">
  251. <form>
  252. <style type="text/css">
  253. fieldset div {
  254. text-align: center;
  255. }
  256. </style>
  257. <fieldset>
  258. <legend>Thème</legend>
  259. <div>
  260. <label>
  261. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  262. Auto
  263. </label>
  264. <label>
  265. <input type="radio" value="dark" name="chosen-color-scheme">
  266. Foncé
  267. </label>
  268. <label>
  269. <input type="radio" value="light" name="chosen-color-scheme">
  270. Clair
  271. </label>
  272. </div>
  273. </fieldset>
  274. </form>
  275. </template>
  276. </footer>
  277. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  278. <script>
  279. class ThemeToggle extends HTMLElement {
  280. constructor() {
  281. super()
  282. const themeSelectorTemplate = document.querySelector('#theme-selector')
  283. const form = themeSelectorTemplate.content.firstElementChild
  284. this.attachShadow({ mode: 'open' })
  285. this.shadowRoot.appendChild(form.cloneNode(true))
  286. }
  287. connectedCallback() {
  288. const form = this.shadowRoot.querySelector('form')
  289. form.addEventListener('change', (e) => {
  290. const chosenColorScheme = e.target.value
  291. localStorage.setItem('theme', chosenColorScheme)
  292. toggleTheme(chosenColorScheme)
  293. })
  294. const selectedTheme = localStorage.getItem('theme')
  295. if (selectedTheme && selectedTheme !== 'undefined') {
  296. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  297. }
  298. }
  299. }
  300. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  301. window.addEventListener('load', () => {
  302. let colorsLayer = undefined
  303. let hasDarkRules = false
  304. for (const styleSheet of Array.from(document.styleSheets)) {
  305. let mediaRules = []
  306. for (const layerRule of styleSheet.cssRules) {
  307. if (!(layerRule instanceof CSSLayerBlockRule)) {
  308. continue
  309. }
  310. if (layerRule.name === 'colors') {
  311. colorsLayer = layerRule
  312. }
  313. for (const cssRule of layerRule.cssRules) {
  314. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  315. continue
  316. }
  317. // WARNING: Safari does not have/supports `conditionText`.
  318. if (cssRule.conditionText) {
  319. if (cssRule.conditionText !== prefersColorSchemeDark) {
  320. continue
  321. }
  322. } else {
  323. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  324. continue
  325. }
  326. }
  327. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  328. }
  329. }
  330. // WARNING: do not try to insert a Rule to a styleSheet you are
  331. // currently iterating on, otherwise the browser will be stuck
  332. // in a infinite loop…
  333. for (const mediaRule of mediaRules) {
  334. // Safari requires the `0` second parameter (even if default).
  335. colorsLayer.insertRule(mediaRule.cssText, 0)
  336. hasDarkRules = true
  337. }
  338. }
  339. if (hasDarkRules) {
  340. if ('customElements' in window && !customElements.get('theme-toggle')) {
  341. customElements.define('theme-toggle', ThemeToggle)
  342. }
  343. }
  344. })
  345. </script>
  346. </body>
  347. </html>