Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

index.html 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  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. Madeleine
  14. — David Larlet</title>
  15. <meta name="description" content="Ma madeleine du jour m’a été offerte par Aurélien qui pointait vers LightDock, ce qui m’a rappelé mon stage de master et mes premiers pas en Python. Où l’on remarque qu’il y a 18 ans, les list-comprehensions et les __methodes_magiques__ devaient être récentes…">
  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_2021-01-20.css">
  52. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  53. <link rel="preload"
  54. href="/static/david/css/fonts/triplicate_t4_poly_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/triplicate_t4_poly_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/triplicate_t4_poly_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/triplicate_t3_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/triplicate_t3_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/triplicate_t3_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 class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick"
  106. data-instant-intensity="viewport-all">
  107. <article>
  108. <header>
  109. <h1>Madeleine</h1>
  110. </header>
  111. <nav>
  112. <p class="center">
  113. <a rel="prev"
  114. href="/david/2023/02/05/"
  115. title="Publication précédente : Attente">← Précédent</a> •
  116. <nobr>
  117. <a href="/david/" title="Aller à l’accueil" rel="up">
  118. <svg class="icon icon-home">
  119. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"></use>
  120. </svg>
  121. Accueil</a>
  122. </nobr>
  123. <nobr>
  124. <a href="/david/recherche/"
  125. title="Aller à la page de recherche"
  126. rel="search">
  127. <svg class="icon icon-search">
  128. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-search"></use>
  129. </svg>
  130. Recherche</a>
  131. </nobr>
  132. • <a rel="next"
  133. href="/david/2023/02/08/"
  134. title="Publication suivante : TextcAIst">Suivant →</a>
  135. </p>
  136. </nav>
  137. <hr>
  138. <p>Ma madeleine du jour m’a été offerte par <a href="https://latitude77.org">Aurélien</a> qui pointait vers <a href="https://lightdock.org/">LightDock</a>, ce qui m’a rappelé mon stage de master et mes <a href="/david/biologeek/archives/20051017-parser-un-fichier-pdb-en-python-facilement-et-efficacement/">premiers pas en Python</a>. Où l’on remarque qu’il y a 18&nbsp;ans, les <em>list-comprehensions</em> et les <code>__methodes_magiques__</code> devaient être&nbsp;récentes…</p>
  139. <p>Mais au fait, que s’est-il passé ces 20&nbsp;dernières années en bio-informatique&#8239;? Est-ce encore une matière (hybride) à part entière ou le <em>in silico</em> a-t-il fini par bouffer la&nbsp;madeleine&#8239;?</p>
  140. <hr />
  141. <p>🚲 Où j’apprends que la piste cyclable en bas de chez moi est considéré comme «&nbsp;bonne&nbsp;» <a href="https://numerique.banq.qc.ca/patrimoine/details/52327/3393377">depuis pas mal de temps</a>.</p>
  142. <hr />
  143. <blockquote>
  144. <p>🌱 J’ai fait des études d’agriculture biologique et ce milieu m’a dégoûté. On est dans la production. Et dans la production, soit tu t’auto-exploites, soit tu exploites de la main-d’oeuvre. <mark>Dans le bio, l’essentiel de la main-d’oeuvre, ce sont des sans-papiers.</mark> Cette réalité embarrasse énormément ceux qui croient que le bio est le summum de l’alternative. À une époque, avec des copains, on avait organisé des dépôts de paniers de légumes à Bruxelles. On est allé travailler dans le lieu de production situé à une vingtaine de kilomètres de Bruxelles. On s’est retrouvé avec des sans-papiers. Les dessous de la production échappent aux radars. Pourtant, en y réfléchissant, si les gens étaient payés décemment, c’est le quadruple du prix qu’on devrait payer. Eux, aux Fraternités ouvrières, ils ne font pas de la production. Ils n’essaient pas de te vendre une production éthique ou biologique. Ils te disent&nbsp;: «&nbsp;Vas-y, expérimente&nbsp;». C’est une incitation à expérimenter&nbsp;l’autonomie.</p>
  145. <p><cite><em><a href="https://www.rayonvertcinema.org/benjamin-hennot-interview/">Benjamin Hennot&nbsp;: Interview</a></em>&nbsp;(<a href="/david/cache/2023/ee7eb9c245d1b2c4b91b8dda4cd7d318/">cache</a>)</cite></p>
  146. </blockquote>
  147. <blockquote lang="en">
  148. <p>🎯 No, we need to move our attention back to the folks that have been right all along. The people who never gave up on semantic markup, CSS, and progressive enhancement for most sites. The people who, when slinging JS, have treated it as special occasion food. <mark>The tools and communities whose culture puts the user ahead of the developer</mark> and hold evidence of doing better for users in the highest&nbsp;regard.</p>
  149. <p><cite><em><a href="https://infrequently.org/2023/02/the-market-for-lemons/">The Market for Lemons</a></em>&nbsp;(<a href="/david/cache/2023/5b35e3f3639ceb7d9f684aa81979f304/">cache</a>)</cite></p>
  150. </blockquote>
  151. <blockquote lang="en">
  152. <p>✍️ To feed my blogging, I am constantly reading books, magazine articles, academic papers, and a sprawling network of blogs (I follow about 400&nbsp;via my RSS feed on Feedly). Much as writing catalyzes thinking, <mark>reading catalyzes writing;</mark> the vast majority of ideas I get for blog posts come from reading something and having it trigger a “wait, what about …”&nbsp;moment.</p>
  153. <p><cite><em><a href="https://clivethompson.medium.com/how-blogging-changes-the-way-you-think-526734dc86d1">How Blogging Changes The Way You Think</a></em>&nbsp;(<a href="/david/cache/2023/9caf3cf36d339cfffad8582583493204/">cache</a>)</cite></p>
  154. </blockquote>
  155. <hr />
  156. <blockquote lang="en">
  157. <p>🙈 Wikis, unless you have someone whose job it is to maintain the wiki, is where knowledge goes to&nbsp;die</p>
  158. <p><cite><em><a href="https://cloudisland.nz/@aurynn/109808680824741796">@aurynn@cloudisland.nz sur&nbsp;mastodon</a></em></cite></p>
  159. </blockquote>
  160. <blockquote>
  161. <p>🤯 une voiture, c’est jamais qu’un gros fauteuil roulant, hein.</p>
  162. <p><cite><em><a href="https://mamot.fr/@ffoodd/109796035120760099">@ffoodd@mamot.fr sur&nbsp;mastodon</a></em></cite></p>
  163. </blockquote>
  164. <blockquote lang="en">
  165. <p>👀 I have been in tech so long, I only have one question when I hear of a new invention.<br />
  166. Will it be used for war, porn or&nbsp;surveillance?</p>
  167. <p><cite><em><a href="https://eupolicy.social/@why0hy/109749311459562949">@why0hy@eupolicy.social sur&nbsp;mastodon</a></em></cite></p>
  168. </blockquote>
  169. <nav>
  170. <p>
  171. <a href="/david/2023/gratitude/"
  172. title="Liste de tous les articles 2023 associés à cette étiquette"
  173. rel="tag">#gratitude</a>
  174. <a href="/david/2023/nostalgie/"
  175. title="Liste de tous les articles 2023 associés à cette étiquette"
  176. rel="tag">#nostalgie</a>
  177. <a href="/david/2023/recherche/"
  178. title="Liste de tous les articles 2023 associés à cette étiquette"
  179. rel="tag">#recherche</a>
  180. <a href="/david/#tags-2023" title="Liste de toutes les étiquettes 2023">
  181. <svg class="icon icon-tags">
  182. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-tags"></use>
  183. </svg>
  184. tous ?</a>
  185. </p>
  186. </nav>
  187. <nav>
  188. <p class="center">
  189. <a rel="prev"
  190. href="/david/2023/02/05/"
  191. title="Publication précédente : Attente">← Précédent</a> •
  192. <a href="/david/2023/" title="Liste des publications récentes">↑ En 2023</a>
  193. • <a rel="next"
  194. href="/david/2023/02/08/"
  195. title="Publication suivante : TextcAIst">Suivant →</a>
  196. </p>
  197. </nav>
  198. </article>
  199. <hr>
  200. <footer>
  201. <p>
  202. <nobr>
  203. <a href="/david/" title="Aller à l’accueil">
  204. <svg class="icon icon-home">
  205. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"></use>
  206. </svg>
  207. Accueil</a>
  208. </nobr>
  209. <nobr>
  210. <a href="/david/log/" title="Accès au flux RSS">
  211. <svg class="icon icon-rss2">
  212. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-rss2"></use>
  213. </svg>
  214. Suivre</a>
  215. </nobr>
  216. <nobr>
  217. <a href="http://larlet.com"
  218. title="Go to my English profile"
  219. data-instant>
  220. <svg class="icon icon-user-tie">
  221. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-user-tie"></use>
  222. </svg>
  223. Pro</a>
  224. </nobr>
  225. <nobr>
  226. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">
  227. <svg class="icon icon-mail">
  228. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-mail"></use>
  229. </svg>
  230. Email</a>
  231. </nobr>
  232. <nobr>
  233. <abbr class="nowrap"
  234. title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">
  235. <svg class="icon icon-hammer2">
  236. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-hammer2"></use>
  237. </svg>
  238. Légal</abbr>
  239. </nobr>
  240. </p>
  241. <template id="theme-selector">
  242. <form>
  243. <fieldset>
  244. <legend>
  245. <svg class="icon icon-brightness-contrast">
  246. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-brightness-contrast"></use>
  247. </svg>
  248. Thème
  249. </legend>
  250. <label>
  251. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  252. Auto
  253. </label>
  254. <label>
  255. <input type="radio" value="dark" name="chosen-color-scheme">
  256. Foncé
  257. </label>
  258. <label>
  259. <input type="radio" value="light" name="chosen-color-scheme">
  260. Clair
  261. </label>
  262. </fieldset>
  263. </form>
  264. </template>
  265. </footer>
  266. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  267. <script>
  268. function loadThemeForm(templateName) {
  269. const themeSelectorTemplate = document.querySelector(templateName)
  270. const form = themeSelectorTemplate.content.firstElementChild
  271. themeSelectorTemplate.replaceWith(form)
  272. form.addEventListener('change', (e) => {
  273. const chosenColorScheme = e.target.value
  274. localStorage.setItem('theme', chosenColorScheme)
  275. toggleTheme(chosenColorScheme)
  276. })
  277. const selectedTheme = localStorage.getItem('theme')
  278. if (selectedTheme && selectedTheme !== 'undefined') {
  279. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  280. }
  281. }
  282. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  283. window.addEventListener('load', () => {
  284. let hasDarkRules = false
  285. for (const styleSheet of Array.from(document.styleSheets)) {
  286. let mediaRules = []
  287. for (const cssRule of styleSheet.cssRules) {
  288. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  289. continue
  290. }
  291. // WARNING: Safari does not have/supports `conditionText`.
  292. if (cssRule.conditionText) {
  293. if (cssRule.conditionText !== prefersColorSchemeDark) {
  294. continue
  295. }
  296. } else {
  297. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  298. continue
  299. }
  300. }
  301. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  302. }
  303. // WARNING: do not try to insert a Rule to a styleSheet you are
  304. // currently iterating on, otherwise the browser will be stuck
  305. // in a infinite loop…
  306. for (const mediaRule of mediaRules) {
  307. styleSheet.insertRule(mediaRule.cssText)
  308. hasDarkRules = true
  309. }
  310. }
  311. if (hasDarkRules) {
  312. loadThemeForm('#theme-selector')
  313. }
  314. })
  315. </script>
  316. </body>
  317. </html>