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.

1 年之前
1 年之前
1 年之前
1 年之前
1 年之前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  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>Dépendances — David Larlet</title>
  13. <meta name="description" content="I suspect one of the reasons for this is that Pinafore is written in Svelte v2 and Sapper – both of which are deprecated in favor of Svelte v3 and SvelteKit. Not only is there no migration path from Svelte v2 to v3, but there isn’t one from Sapper to SvelteKit either. (And on top of that, I had to fork Sapper pretty heavily.) Anyone making a bet on learning Pinafore’s tech stack is investing in a dead framework, so it’s not very attractive for new maintainers.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  53. <article>
  54. <header>
  55. <h1>Dépendances</h1>
  56. </header>
  57. <nav>
  58. <p class="center">
  59. <a rel="prev" href="/david/2023/01/13/" title="Publication précédente : Eaux&nbsp;grises">← Précédent</a> •
  60. <nobr>
  61. <a href="/david/" title="Aller à l’accueil"
  62. ><svg class="icon icon-home">
  63. <use
  64. xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"
  65. ></use>
  66. </svg>
  67. Accueil</a
  68. >
  69. </nobr>
  70. <nobr>
  71. <a href="/david/recherche/" title="Aller à la page de recherche"
  72. ><svg class="icon icon-search">
  73. <use
  74. xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-search"
  75. ></use>
  76. </svg>
  77. Recherche</a
  78. >
  79. </nobr>
  80. • <a rel="next" href="/david/2023/01/15/" title="Publication suivante : Snow&nbsp;Fall">Suivant →</a>
  81. </p>
  82. </nav>
  83. <hr>
  84. <blockquote lang="en">
  85. <p>I suspect one of the reasons for this is that Pinafore is written in Svelte v2 and Sapper – both of which are deprecated in favor of Svelte v3 and SvelteKit. Not only is there no migration path from Svelte v2 to v3, but there isn’t one from Sapper to SvelteKit either. (And on top of that, I had to fork Sapper pretty heavily.) Anyone making a bet on learning Pinafore’s tech stack is investing in a dead framework, so <mark>it’s not very attractive for new&nbsp;maintainers.</mark></p>
  86. <p><cite><em><a href="https://nolanlawson.com/2023/01/09/retiring-pinafore/">Retiring Pinafore</a></em>&nbsp;(<a href="/david/cache/2023/b5acd8bbf209345ff300ea8c10c44181/">cache</a>)</cite></p>
  87. </blockquote>
  88. <p>«&nbsp;<span lang=en>Move fast and outdate things.</span>&nbsp;» n’est pas un <em>motto</em> mais une constatation. Je suis assez assidu des écrits de Baldur Bjarnason à ce sujet, que ce soit à travers son <a href="https://www.baldurbjarnason.com/">site</a>, son <a href="https://softwarecrisis.baldurbjarnason.com/">livre</a> ou sa <a href="https://softwarecrisis.dev/">newsletter</a>.</p>
  89. <p>Je crois que je commence à dépasser la sidération et le rejet pour tenter de comprendre un peu mieux les raisons profondes de toute cette complexité et cette vitesse que l’on s’impose, avec une composante historique&nbsp;notamment.</p>
  90. <p>2023, l’année de la maturité&nbsp;😂.</p>
  91. <blockquote lang="en">
  92. <p>The symptoms of pop&nbsp;culture:</p>
  93. <ul>
  94. <li>A “disdain for history”. Pop cultures believe history doesn’t have anything to teach&nbsp;them.</li>
  95. <li>Newer is automatically better. Pop cultures are built on the assumption that anything new or different is superior to established. Or, in other words, older is inherently&nbsp;inferior.</li>
  96. <li><mark>What’s next is going to be superior to what’s now.</mark> Pop cultures exist in perpetual anticipation of the next trend. Their disbelief of history appears to outsiders as a belief in&nbsp;progress.</li>
  97. <li>The “Pop” in “Pop Culture” stands for “popularity”. If it’s popular then it must be&nbsp;right.</li>
  98. </ul>
  99. <p>These traits are deeply irrational but they are the tech industry’s default mode of&nbsp;operation.</p>
  100. <p><cite><em><a href="https://softwarecrisis.dev/letters/tech-is-a-pop-culture/">Tech Companies Are Irrational Pop Cultures</a></em>&nbsp;(<a href="/david/cache/2023/45c1becce6fcd8254f2c99fbc1397018/">cache</a>)</cite></p>
  101. </blockquote>
  102. <hr />
  103. <blockquote lang="en">
  104. <p>We’re starting to see the initial decay hit the parts of the web dev ecosystem that are the furthest away from the cheap money fountains Google and Facebook are providing. Core projects run out of money. Git commits stop. <mark>A dependency you use breaks when one of its dependencies stops working,</mark> leading somebody to fork it with a quick fix or replacement dependency. Bandaid fixes to decaying OSS projects start to crop up in more and more places. We start to see blog posts saying that all we need to do is get enough people to donate money or pay for support. Everything will be fine. Just look at how OpenSSL got turned&nbsp;around.</p>
  105. <p>All of which is bad enough but also misses the&nbsp;point.</p>
  106. <p><cite><em><a href="https://www.baldurbjarnason.com/2021/the-oss-bubble-and-the-blogging-bubble/">The Open-Source Software bubble that is and the blogging bubble that was</a></em>&nbsp;(<a href="/david/cache/2023/d6b891fd250a6ae967ae55564770b67a/">cache</a>)</cite></p>
  107. </blockquote>
  108. <blockquote>
  109. <p>This JavaScript community (if judged by the demographics of this survey) seems to be comprised mostly of folks that are largely building with React, webpack, and Jest. With React on 3.2% of web sites and jQuery at 77.7% (as of January 2023), <mark>that’s a pretty small slice of a much larger&nbsp;community.</mark></p>
  110. <p>We seem to live in different&nbsp;worlds.</p>
  111. <p><cite><em><a href="https://www.zachleat.com/web/javascript-community/">JavaScript, Community</a></em>&nbsp;(<a href="/david/cache/2023/7ff62009f21336b8eb54ea18261bcfb7/">cache</a>)</cite></p>
  112. </blockquote>
  113. <nav>
  114. <p>
  115. <a href="/david/2023/gratitude/"
  116. title="Liste de tous les articles 2023 associés à cette étiquette"
  117. >#gratitude</a>
  118. <a href="/david/2023/recherche/"
  119. title="Liste de tous les articles 2023 associés à cette étiquette"
  120. >#recherche</a>
  121. <a href="/david/2023/technique/"
  122. title="Liste de tous les articles 2023 associés à cette étiquette"
  123. >#technique</a>
  124. <a href="/david/#tags-2023"
  125. title="Liste de toutes les étiquettes 2023"
  126. ><svg class="icon icon-tags">
  127. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-tags"></use>
  128. </svg>
  129. tous ?</a
  130. >
  131. </p>
  132. </nav>
  133. <nav>
  134. <p class="center">
  135. <a rel="prev" href="/david/2023/01/13/" title="Publication précédente : Eaux&nbsp;grises">← Précédent</a> •
  136. <a href="/david/2023/" title="Liste des publications récentes">↑ En 2023</a>
  137. • <a rel="next" href="/david/2023/01/15/" title="Publication suivante : Snow&nbsp;Fall">Suivant →</a>
  138. </p>
  139. </nav>
  140. </article>
  141. <hr>
  142. <footer>
  143. <p>
  144. <nobr>
  145. <a href="/david/" title="Aller à l’accueil"
  146. ><svg class="icon icon-home">
  147. <use
  148. xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"
  149. ></use>
  150. </svg>
  151. Accueil</a
  152. >
  153. </nobr>
  154. <nobr>
  155. <a href="/david/log/" title="Accès au flux RSS"
  156. ><svg class="icon icon-rss2">
  157. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-rss2"></use>
  158. </svg>
  159. Suivre</a
  160. >
  161. </nobr>
  162. <nobr>
  163. <a href="http://larlet.com" title="Go to my English profile" data-instant
  164. ><svg class="icon icon-user-tie">
  165. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-user-tie"></use>
  166. </svg>
  167. Pro</a
  168. >
  169. </nobr>
  170. <nobr>
  171. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"
  172. ><svg class="icon icon-mail">
  173. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-mail"></use>
  174. </svg>
  175. Email</a
  176. >
  177. </nobr>
  178. <nobr>
  179. <abbr
  180. class="nowrap"
  181. title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"
  182. ><svg class="icon icon-hammer2">
  183. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-hammer2"></use>
  184. </svg>
  185. Légal</abbr
  186. >
  187. </nobr>
  188. </p>
  189. <template id="theme-selector">
  190. <form>
  191. <fieldset>
  192. <legend><svg class="icon icon-brightness-contrast">
  193. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-brightness-contrast"></use>
  194. </svg> Thème</legend>
  195. <label>
  196. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  197. </label>
  198. <label>
  199. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  200. </label>
  201. <label>
  202. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  203. </label>
  204. </fieldset>
  205. </form>
  206. </template>
  207. </footer>
  208. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  209. <script>
  210. function loadThemeForm(templateName) {
  211. const themeSelectorTemplate = document.querySelector(templateName)
  212. const form = themeSelectorTemplate.content.firstElementChild
  213. themeSelectorTemplate.replaceWith(form)
  214. form.addEventListener('change', (e) => {
  215. const chosenColorScheme = e.target.value
  216. localStorage.setItem('theme', chosenColorScheme)
  217. toggleTheme(chosenColorScheme)
  218. })
  219. const selectedTheme = localStorage.getItem('theme')
  220. if (selectedTheme && selectedTheme !== 'undefined') {
  221. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  222. }
  223. }
  224. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  225. window.addEventListener('load', () => {
  226. let hasDarkRules = false
  227. for (const styleSheet of Array.from(document.styleSheets)) {
  228. let mediaRules = []
  229. for (const cssRule of styleSheet.cssRules) {
  230. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  231. continue
  232. }
  233. // WARNING: Safari does not have/supports `conditionText`.
  234. if (cssRule.conditionText) {
  235. if (cssRule.conditionText !== prefersColorSchemeDark) {
  236. continue
  237. }
  238. } else {
  239. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  240. continue
  241. }
  242. }
  243. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  244. }
  245. // WARNING: do not try to insert a Rule to a styleSheet you are
  246. // currently iterating on, otherwise the browser will be stuck
  247. // in a infinite loop…
  248. for (const mediaRule of mediaRules) {
  249. styleSheet.insertRule(mediaRule.cssText)
  250. hasDarkRules = true
  251. }
  252. }
  253. if (hasDarkRules) {
  254. loadThemeForm('#theme-selector')
  255. }
  256. })
  257. </script>
  258. </body>
  259. </html>