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

index.html 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  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. Wikipédia
  14. — David Larlet</title>
  15. <script>
  16. function toggleTheme(themeName) {
  17. document.documentElement.classList.toggle(
  18. 'forced-dark',
  19. themeName === 'dark'
  20. )
  21. document.documentElement.classList.toggle(
  22. 'forced-light',
  23. themeName === 'light'
  24. )
  25. }
  26. const selectedTheme = localStorage.getItem('theme')
  27. if (selectedTheme !== 'undefined') {
  28. toggleTheme(selectedTheme)
  29. }
  30. </script>
  31. <!-- Documented, feel free to shoot an email. -->
  32. <link rel="stylesheet" href="/static/david/css/style_2024-03-09.css">
  33. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  34. <link rel="preload"
  35. href="/static/david/css/fonts/century_supra_ot_a_regular.woff2"
  36. as="font"
  37. type="font/woff2"
  38. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  39. crossorigin>
  40. <link rel="preload"
  41. href="/static/david/css/fonts/century_supra_ot_a_bold.woff2"
  42. as="font"
  43. type="font/woff2"
  44. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  45. crossorigin>
  46. <link rel="preload"
  47. href="/static/david/css/fonts/century_supra_ot_a_italic.woff2"
  48. as="font"
  49. type="font/woff2"
  50. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  51. crossorigin>
  52. <link rel="preload"
  53. href="/static/david/css/fonts/century_supra_ot_b_regular.woff2"
  54. as="font"
  55. type="font/woff2"
  56. media="(prefers-color-scheme: dark)"
  57. crossorigin>
  58. <link rel="preload"
  59. href="/static/david/css/fonts/century_supra_ot_b_bold.woff2"
  60. as="font"
  61. type="font/woff2"
  62. media="(prefers-color-scheme: dark)"
  63. crossorigin>
  64. <link rel="preload"
  65. href="/static/david/css/fonts/century_supra_ot_b_italic.woff2"
  66. as="font"
  67. type="font/woff2"
  68. media="(prefers-color-scheme: dark)"
  69. crossorigin>
  70. <meta name="description" content="Petit récapitulatif pour moi-même de la controverse qui agite la version francophone de Wikipédia et ses communautés. Bien que j’aimerai écrire plus longuement sur le sujet, je n’ai pas la bande passante nocturne pour le faire encore moins diurne. Je travaille de façon ouverte en espérant que les esprits refroidis retrouveront un brin de lucidité. Wikipédia est un projet important, chacun y contribue à sa manière, j’essaie de poser quelques bases pour éventuellement développer plus en détails certains points à l’avenir. Une note de synthèse en quelques sortes.">
  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. <!-- To get attribution when linking on mastodon. -->
  106. <meta name="fediverse:creator" content="@david@larlet.fr">
  107. <style type="text/css">
  108. .tippy-content {
  109. min-width: 280px;
  110. padding: .5rem;
  111. font-size: calc(var(--fluid-0) * 0.8);
  112. font-family: var(--labor-font);
  113. letter-spacing: initial;
  114. text-align: left;
  115. }
  116. .tippy-content h3 {
  117. margin-top: 0;
  118. }
  119. .tippy-content h3 img {
  120. max-width: 2rem;
  121. max-height: 2rem;
  122. display: inline-block;
  123. }
  124. .tippy-content .tippy-links {
  125. display: flex;
  126. justify-content: space-around;
  127. }
  128. .tippy-content a {
  129. padding: .4rem;
  130. color: #F06048;
  131. }
  132. </style>
  133. <body data-instant-intensity="viewport-all">
  134. <article>
  135. <header>
  136. <hgroup>
  137. <h1>Wikipédia</h1>
  138. <p>Le <time datetime="2024-02-29">29 février 2024</time></p>
  139. </hgroup>
  140. </header>
  141. <nav>
  142. <p>
  143. <a rel="prev"
  144. href="/david/2024/02/28/"
  145. title="Publication précédente : Dérèglement">← Précédent</a> •
  146. <a href="/david/" title="Aller à l’accueil" rel="up">Accueil</a>
  147. <a href="/david/recherche/"
  148. title="Aller à la page de recherche"
  149. rel="search" data-no-instant>Recherche</a>
  150. • <a rel="next"
  151. href="/david/2024/03/01/"
  152. title="Publication suivante : Simple">Suivant →</a>
  153. </p>
  154. </nav>
  155. <blockquote>
  156. <p>Petit récapitulatif pour moi-même de la controverse qui agite la version francophone de Wikipédia et ses communautés. Bien que j’aimerai écrire plus longuement sur le sujet, je n’ai pas la bande passante nocturne pour le faire encore moins diurne. <mark>Je travaille de façon ouverte en espérant que les esprits refroidis retrouveront un brin de lucidité.</mark> Wikipédia est un projet important, chacun y contribue à sa manière, j’essaie de poser quelques bases pour éventuellement développer plus en détails certains points à l’avenir. Une note de synthèse en quelques&nbsp;sortes.</p>
  157. <p><cite><em><a data-link-domain="write.apreslanu.it" href="https://write.apreslanu.it/tk/wikipedia-ou-la-desillusion-de-lintelligence-collective" hreflang="fr"
  158. title="Consultation de l’article">Wikipédia ou la désillusion de l’intelligence collective</a>
  159. <a href="/david/cache/2024/71d5226ddc436248164884b12f15ed42/" hreflang="fr"
  160. data-tippy data-description="Petit récapitulatif pour moi-même de la controverse qui agite la version francophone de Wikipédia et ses communautés. Bien que j’aimerai ..."
  161. data-source="https://write.apreslanu.it/tk/wikipedia-ou-la-desillusion-de-lintelligence-collective"
  162. data-date="2024-03-01"
  163. data-favicon="https://write.apreslanu.it/favicon.ico"
  164. data-domain="write.apreslanu.it"
  165. ><svg xmlns="http://www.w3.org/2000/svg"
  166. width="24" height="24" viewBox="0 0 24 24" fill="none"
  167. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  168. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  169. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  170. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  171. </svg>
  172. <span class="sr-only">[archive]</span></a></em></cite></p>
  173. </blockquote>
  174. <p>Cela fait quelques jours que j’observe la situation en essayant de ne pas réagir à chaud. Je vois d’un côté des personnes qui souhaitent documenter des faits «&nbsp;historiques&nbsp;» sans en subir aucune conséquence et de l’autre des personnes qui ont bien souvent souffert et souffrent encore de cette histoire, sans compter les potentiels risques actuels et futurs&nbsp;encourus.</p>
  175. <p>Ce résumé est sûrement caricatural <em>et</em> je peux passer outre mon besoin de savoir encyclopédique pour la sécurité physique et mentale d’autres&nbsp;personnes.</p>
  176. <p>Une pensée pour les personnes concernées qui sont impliquées et contributrices régulières, ça ne doit pas être évident de garder la motivation après&nbsp;ça&nbsp;💜.</p>
  177. <blockquote>
  178. <p>Comment comprendre cette contradiction entre volonté de transparence et&nbsp;d’entre-soi&#8239;?</p>
  179. <p><cite><em><a data-link-domain="crowdagger.fr" href="https://crowdagger.fr/wikipedia-et-le-necronyme-des-personnes-trans-linsoutenable-neutralite-du-point-de-vue/" hreflang="fr"
  180. title="Consultation de l’article">Wikipédia et le nécronyme des personnes trans&nbsp;: l’insoutenable neutralité du point de vue&#8239;?</a>
  181. <a href="/david/cache/2024/1eec2b195d91939cdc7bad71b40021bd/" hreflang="fr"
  182. data-tippy data-description="Tentative de comprendre le conflit sur Wikipédia francophone autour du nécronyme des personnes trans"
  183. data-source="https://crowdagger.fr/wikipedia-et-le-necronyme-des-personnes-trans-linsoutenable-neutralite-du-point-de-vue/"
  184. data-date="2024-03-01"
  185. data-favicon="https://crowdagger.fr/wp-content/uploads/2021/11/cropped-facivon-32x32.png"
  186. data-domain="crowdagger.fr"
  187. ><svg xmlns="http://www.w3.org/2000/svg"
  188. width="24" height="24" viewBox="0 0 24 24" fill="none"
  189. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  190. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  191. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  192. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  193. </svg>
  194. <span class="sr-only">[archive]</span></a></em></cite></p>
  195. </blockquote>
  196. <a href="#hr-95" title="Lien vers cette section de la page"><hr id="hr-95" /></a>
  197. <p>Si jamais vous avez un code Python qui doit tourner sous Windows et qui semble avoir des problème d’encodage (notamment sur <code>Path().read/write_text()</code>), <a data-link-domain="dev.to" href="https://dev.to/methane/python-use-utf-8-mode-on-windows-212i">vous pouvez tenter</a> la variable d’environnement <code>PYTHONUTF8=1</code> ou le paramètre <code>-Xutf8</code> pour lancer Python&nbsp;3.7+.</p>
  198. <a href="#hr-96" title="Lien vers cette section de la page"><hr id="hr-96" /></a>
  199. <blockquote lang="en">
  200. <p>25&nbsp;January 1999&nbsp;was my first day at W3C. I was 23&nbsp;years old when I started. I’ve now spent more than half my life at that. <mark>I regret nothing</mark> because I find the work I do really interesting, important, meaningful; and I don’t tire of it because I feel like there’s renewal every now and&nbsp;then.</p>
  201. <p><cite><em><a data-link-domain="blog.koalie.net" href="https://blog.koalie.net/2024/02/29/25th-work-anniversary/" hreflang="en"
  202. title="Consultation de l’article (anglais)">25th work anniversary</a>
  203. <a href="/david/cache/2024/d74f376e53fc6a1108c59b6e6fa57ba1/" hreflang="en"
  204. data-tippy data-description="25 January 1999 was my first day at W3C. I was 23 years old when I started. I’ve now spent more than half my life at that. I regret nothing because I find the work I do really interesting, im…"
  205. data-source="https://blog.koalie.net/2024/02/29/25th-work-anniversary/"
  206. data-date="2024-03-01"
  207. data-favicon="https://blog.koalie.net/wp-content/uploads/2023/12/cropped-koalie-meiji-shrine-cropped-400px-32x32.jpeg"
  208. data-domain="blog.koalie.net"
  209. ><svg xmlns="http://www.w3.org/2000/svg"
  210. width="24" height="24" viewBox="0 0 24 24" fill="none"
  211. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  212. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  213. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  214. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  215. </svg>
  216. <span class="sr-only">[archive]</span></a></em></cite></p>
  217. </blockquote>
  218. <p>Dans la catégorie pas-toutes-les-héroïnes-ne-portent-de-capes, koalie tient une belle&nbsp;place&nbsp;🙇.</p>
  219. <nav>
  220. <p>
  221. <a href="/david/2024/commun/"
  222. title="Liste de tous les articles 2024 associés à cette étiquette"
  223. rel="tag">#commun</a>
  224. <a href="/david/2024/deception/"
  225. title="Liste de tous les articles 2024 associés à cette étiquette"
  226. rel="tag">#déception</a>
  227. <a href="/david/2024/psychologie/"
  228. title="Liste de tous les articles 2024 associés à cette étiquette"
  229. rel="tag">#psychologie</a>
  230. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  231. </p>
  232. </nav>
  233. <nav>
  234. <p>
  235. <a rel="prev"
  236. href="/david/2024/02/28/"
  237. title="Publication précédente : Dérèglement">← Précédent</a> •
  238. <a href="/david/2024/" title="Liste des publications récentes">↑ En 2024</a>
  239. • <a rel="next"
  240. href="/david/2024/03/01/"
  241. title="Publication suivante : Simple">Suivant →</a>
  242. </p>
  243. </nav>
  244. <form action="/david/recherche/" method="get">
  245. <fieldset>
  246. <legend>Recherche</legend>
  247. <label for="input-search">Termes de votre recherche :</label>
  248. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  249. <input type="submit" value="Chercher">
  250. <p id="indexation-infos">
  251. <small>
  252. Seuls les contenus de ces 8 dernières années sont indexés.
  253. </small>
  254. </p>
  255. </fieldset>
  256. </form>
  257. <aside>
  258. <theme-toggle></theme-toggle>
  259. </aside>
  260. </article>
  261. <hr>
  262. <footer>
  263. <p>
  264. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  265. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  266. <a href="http://larlet.com"
  267. title="Go to my English profile"
  268. data-instant>Pro</a>
  269. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  270. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  271. </p>
  272. <template id="theme-selector">
  273. <form>
  274. <style type="text/css">
  275. fieldset div {
  276. text-align: center;
  277. }
  278. </style>
  279. <fieldset>
  280. <legend>Thème</legend>
  281. <div>
  282. <label>
  283. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  284. Auto
  285. </label>
  286. <label>
  287. <input type="radio" value="dark" name="chosen-color-scheme">
  288. Foncé
  289. </label>
  290. <label>
  291. <input type="radio" value="light" name="chosen-color-scheme">
  292. Clair
  293. </label>
  294. </div>
  295. </fieldset>
  296. </form>
  297. </template>
  298. </footer>
  299. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  300. <script>
  301. class ThemeToggle extends HTMLElement {
  302. constructor() {
  303. super()
  304. const themeSelectorTemplate = document.querySelector('#theme-selector')
  305. const form = themeSelectorTemplate.content.firstElementChild
  306. this.attachShadow({ mode: 'open' })
  307. this.shadowRoot.appendChild(form.cloneNode(true))
  308. }
  309. connectedCallback() {
  310. const form = this.shadowRoot.querySelector('form')
  311. form.addEventListener('change', (e) => {
  312. const chosenColorScheme = e.target.value
  313. localStorage.setItem('theme', chosenColorScheme)
  314. toggleTheme(chosenColorScheme)
  315. })
  316. const selectedTheme = localStorage.getItem('theme')
  317. if (selectedTheme && selectedTheme !== 'undefined') {
  318. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  319. }
  320. }
  321. }
  322. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  323. window.addEventListener('load', () => {
  324. let colorsLayer = undefined
  325. let hasDarkRules = false
  326. for (const styleSheet of Array.from(document.styleSheets)) {
  327. let mediaRules = []
  328. for (const layerRule of styleSheet.cssRules) {
  329. if (!(layerRule instanceof CSSLayerBlockRule)) {
  330. continue
  331. }
  332. if (layerRule.name === 'colors') {
  333. colorsLayer = layerRule
  334. }
  335. for (const cssRule of layerRule.cssRules) {
  336. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  337. continue
  338. }
  339. // WARNING: Safari does not have/supports `conditionText`.
  340. if (cssRule.conditionText) {
  341. if (cssRule.conditionText !== prefersColorSchemeDark) {
  342. continue
  343. }
  344. } else {
  345. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  346. continue
  347. }
  348. }
  349. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  350. }
  351. }
  352. // WARNING: do not try to insert a Rule to a styleSheet you are
  353. // currently iterating on, otherwise the browser will be stuck
  354. // in a infinite loop…
  355. for (const mediaRule of mediaRules) {
  356. // Safari requires the `0` second parameter (even if default).
  357. colorsLayer.insertRule(mediaRule.cssText, 0)
  358. hasDarkRules = true
  359. }
  360. }
  361. if (hasDarkRules) {
  362. if ('customElements' in window && !customElements.get('theme-toggle')) {
  363. customElements.define('theme-toggle', ThemeToggle)
  364. }
  365. }
  366. })
  367. </script>
  368. <script src="/static/david/js/popper-2.11.8.min.js"></script>
  369. <script src="/static/david/js/tippy-bundle-6.3.7.umd.min.js"></script>
  370. <script>
  371. tippy('[data-tippy]', {
  372. content(reference) {
  373. reference.addEventListener('click', (e) => e.preventDefault())
  374. return `
  375. <h3 lang="fr">
  376. <img src="${reference.dataset.favicon}" loading="lazy">
  377. <a href="${reference.dataset.source}"
  378. >Article sur ${reference.dataset.domain}</a></h3>
  379. <p lang="${reference.hreflang}"><em>${reference.dataset.description}</em></p>
  380. <div class="tippy-links" lang="fr">
  381. <a href="${reference.href}">Archive au ${reference.dataset.date}</a>
  382. </div>
  383. `
  384. },
  385. allowHTML: true,
  386. interactive: true,
  387. delay: [150, 700],
  388. hideOnClick: false
  389. })
  390. </script>
  391. <script type="module">
  392. import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'
  393. const markObserver = new IntersectionObserver((entries, observer) => {
  394. const computedStyle = getComputedStyle(document.documentElement)
  395. const markBackground = computedStyle.getPropertyValue('--mark-background')
  396. for (const entry of entries) {
  397. if (entry.intersectionRatio === 0) continue
  398. const markElement = entry.target
  399. markElement.style.backgroundColor = 'inherit'
  400. const annotation = annotate(
  401. markElement, {
  402. type: 'highlight',
  403. multiline: true,
  404. color: markBackground,
  405. // animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
  406. animate: false
  407. }
  408. )
  409. annotation.show()
  410. observer.unobserve(markElement)
  411. }
  412. }, {threshold: 1.0})
  413. for (const markElement of document.querySelectorAll('mark')) {
  414. markObserver.observe(markElement)
  415. }
  416. </script>
  417. </body>
  418. </html>