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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145
  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 #partage
  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="Publications relatives au tag #partage">
  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>#partage</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/25/" title="Lien permanent vers cet article">Inclusion</a> <time datetime="2024-03-25">25 mars 2024</time>
  132. </h2>
  133. <p>Dans le cadre de <del><a data-link-domain="en.wikipedia.org" href="https://en.wikipedia.org/wiki/Eating_your_own_dog_food">manger ma propre bouffe pour chien</a></del> mon <a data-link-domain="fr.wikipedia.org" href="https://fr.wikipedia.org/wiki/Auto%C3%A9quipement">autoéquipement</a>, je voulais vérifier si l’implémentation de <a data-link-domain="oembed.com" href="https://oembed.com/">oEmbed</a> dans <a data-link-domain="umap-project.org" href="https://umap-project.org/fr/">uMap</a> était utilisable… et il se trouve que ce n’était pas le cas avant aujourd’hui. Il y aurait encore des pistes d’améliorations mais au moins ça affiche une carte (si vous autorisez les requêtes externes en&nbsp;JS)&nbsp;:</p>
  134. <style type="text/css">
  135. o-embed {
  136. /* Size of the oembed + paragraph + margins. */
  137. height: calc(300px + 1rem + 3rem);
  138. }
  139. </style>
  140. <o-embed url="https://umap.openstreetmap.fr/fr/map/grand-tour-de-la-foret-de-ouareau_1037457">
  141. <p>
  142. Vous devriez voir s’afficher une carte de mon « Grand Tour de la forêt de Ouareau »,
  143. il est probable que cela ne s’exécute pas dans un agrégateur par exemple.
  144. </p>
  145. </o-embed>
  146. <script type="module">
  147. class OEmbed extends HTMLElement {
  148. static tagName = 'o-embed'
  149. static register(tagName, registry) {
  150. if(!registry && ('customElements' in globalThis)) {
  151. registry = globalThis.customElements
  152. }
  153. registry?.define(tagName || this.tagName, this)
  154. }
  155. get url() {
  156. return this.getAttribute('url') || ''
  157. }
  158. constructor() {
  159. super()
  160. this.attachShadow({ mode: 'open' })
  161. }
  162. async connectedCallback() {
  163. let slot = document.createElement('slot')
  164. this.shadowRoot.appendChild(slot)
  165. const html = await this.fetchText(this.url)
  166. const oEmbedLink = this.extractOembedLink(html)
  167. const oEmbedJson = await this.fetchJson(oEmbedLink)
  168. this.innerHTML = oEmbedJson.html
  169. }
  170. fetchText(url) {
  171. return fetch(url)
  172. .then((data) => data.text())
  173. .catch(console.error.bind(this))
  174. }
  175. fetchJson(url) {
  176. return fetch(url, { type: 'json' })
  177. .then((data) => data.json())
  178. .catch(console.error.bind(this))
  179. }
  180. extractOembedLink(html) {
  181. const parser = new DOMParser()
  182. const htmlDocument = parser.parseFromString(html, "text/html")
  183. const oEmbedMeta = htmlDocument.documentElement.querySelector(
  184. 'link[type="application/json+oembed"]'
  185. )
  186. return oEmbedMeta.href
  187. }
  188. }
  189. OEmbed.register()
  190. </script>
  191. <p>J’en ai fait un <em>web component</em> car je compte explorer / publier davantage de cartes par la suite. Je vais essayer d’ajouter des options lorsqu’elles deviendront disponibles côté uMap. Pour l’instant, il faudra vous contenter d’un <code>view-source:</code> (meilleure fonctionnalité du Web, ne l’oublions&nbsp;jamais).</p>
  192. <p>Au passage, j’ai mis à jour le moteur de ce site pour pouvoir injecter des morceaux de HTML (et donc CSS/JS) sur des billets en particulier. Je m’amuse&nbsp;bien&nbsp;🧑‍🔬.</p>
  193. <p>Je compte <a href="/david/2024/03/11/#hr-109">reparler de cette carte</a>.</p>
  194. <a href="#hr-134" title="Lien vers cette section de la page"><hr id="hr-134" /></a>
  195. <p>Beaucoup moins glorieux, j’ai participé à <a data-link-domain="forum.openstreetmap.fr" href="https://forum.openstreetmap.fr/t/mise-en-production-umap-v2-1-x-compliquee-perte-des-dernieres-donnees-sauvegardees-sur-52-cartes/22336">de la perte de données</a> aujourd’hui. Nous avons eu besoin de trois cerveaux et pas mal d’heures pour comprendre ce qu’il se passait. Il était difficile de tester / imaginer / reproduire autrement que sur le serveur de production. C’est déjà pas mal d’avoir eu la possibilité de passer en lecture seule avant que ça ne touche trop de&nbsp;cartes.</p>
  196. <p>J’ai appris qu’il ne fallait pas se fier à l’ordre des IDs… lorsqu’ils deviennent des&nbsp;UUIDs&#8239;!</p>
  197. <a href="#hr-135" title="Lien vers cette section de la page"><hr id="hr-135" /></a>
  198. <blockquote lang="en">
  199. <p>A data hoarder’s dream come true: bundle any web page into a single HTML file. You can finally replace that gazillion of open tabs with a gazillion of .html files stored somewhere on your precious little&nbsp;drive.</p>
  200. <p>Unlike the conventional “Save page as”, monolith not only saves the target document, <mark>it embeds CSS, image, and JavaScript assets all at once,</mark> producing a single HTML5 document that is a joy to store and&nbsp;share.</p>
  201. <p><cite><em><a data-link-domain="github.com" href="https://github.com/Y2Z/monolith">monolith</a></em></cite></p>
  202. </blockquote>
  203. <p>Je me demande si je ne devrais pas avoir recours à ce type d’outil plutôt que de n’extraire que la partie de HTML qui m’intéresse pour garder <a href="/david/2024/02/03/" title="Archives">une copie des liens</a> que je lie par ici. C’est pour l’instant un peu fastidieux mais ça me fait aussi découvrir des choses en explorant le code des&nbsp;autres.</p>
  204. <a href="#hr-136" title="Lien vers cette section de la page"><hr id="hr-136" /></a>
  205. <blockquote lang="en">
  206. <p>For this reason, I got more into <mark>“Conflict-free Resolution Data Types” (CRDTs),</mark> with the goal of understanding what they are, how they work, what are the different libraries out there, and which one would be a good fit for us, if&nbsp;any.</p>
  207. <p><cite><em><a data-link-domain="blog.notmyidea.org" href="https://blog.notmyidea.org/a-comparison-of-javascript-crdts.html" hreflang="fr"
  208. title="Consultation de l’article">A comparison of JavaScript CRDTs</a>
  209. <a href="/david/cache/2024/2c0b2588dfcd3a194da4133c7505cd3e/" hreflang="fr"
  210. data-tippy data-description=""
  211. data-source="https://blog.notmyidea.org/a-comparison-of-javascript-crdts.html"
  212. data-date="2024-03-25"
  213. data-favicon="https://blog.notmyidea.org/favicon-32x32.png"
  214. data-domain="blog.notmyidea.org"
  215. ><svg xmlns="http://www.w3.org/2000/svg"
  216. width="24" height="24" viewBox="0 0 24 24" fill="none"
  217. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  218. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  219. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  220. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  221. </svg>
  222. <span class="sr-only">[archive]</span></a></em></cite></p>
  223. </blockquote>
  224. <p>J’apprends plein de choses à ce sujet grâce à Alexis, c’est chouette à explorer par&nbsp;procuration.</p>
  225. <a href="#hr-137" title="Lien vers cette section de la page"><hr id="hr-137" /></a>
  226. <blockquote lang="en">
  227. <p>To summarize, digital information requires maintenance. It's not sufficient to make backups; the backups also need to be maintained, upgraded, transferred, and curated. Without conscientious care, the data of today will be lost forever in a few years. Even with care, it's possible through software or hardware changes to lose access forever. That shoebox of old backup CDs will be unreadable&nbsp;soon.</p>
  228. <p>Which brings us back to those old photo caches. They held negatives and prints, physical objects that stored images. They needed no attention, no curating, no updating. They sat untended and forgotten for decades, but through all that time faithfully held their information, waiting for a future discoverer. As a result, we can all see what the Scott Antarctic expedition saw, and I can see what my great-grandparents looked&nbsp;like.</p>
  229. <p><mark>It is a sad irony that modern technology makes it unlikely that future generations will see the images made&nbsp;today.</mark></p>
  230. <p>Ask yourself whether your great-grandchildren will be able to see your photographs. If the images exist only as a digital image file, the answer is almost certainly, &quot;No&quot;. If, however, there are physical prints, the odds improve. Those digital images need to be made real to endure. Without a print, a digital photograph has no&nbsp;future.</p>
  231. <p><cite><em><a data-link-domain="commandcenter.blogspot.com" href="https://commandcenter.blogspot.com/2014/08/prints.html" hreflang="en"
  232. title="Consultation de l’article (anglais)">command center: Prints</a>
  233. <a href="/david/cache/2024/46dc6f44f3e34c4c0626ad4b13dba768/" hreflang="en"
  234. data-tippy data-description="Two long-buried caches of photographs came to light last year. One was a stack of cellulose nitrate negatives made on the Scott Antarctic ex..."
  235. data-source="https://commandcenter.blogspot.com/2014/08/prints.html"
  236. data-date="2024-03-25"
  237. data-favicon="https://commandcenter.blogspot.com/favicon.ico"
  238. data-domain="commandcenter.blogspot.com"
  239. ><svg xmlns="http://www.w3.org/2000/svg"
  240. width="24" height="24" viewBox="0 0 24 24" fill="none"
  241. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  242. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  243. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  244. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  245. </svg>
  246. <span class="sr-only">[archive]</span></a></em></cite></p>
  247. </blockquote>
  248. <p>Très vrai <em>et</em> je me demande si le fait d’avoir des artefacts qui perdurent sur plusieurs générations sans entretien / transmission n’est pas justement un épiphénomène. Le numérique est peut-être plus proche de la transmission orale, une information qui a besoin d’être appropriée par læ récepteur·ice pour qu’elle continue à&nbsp;vivre.</p>
  249. <p>Ce sera à moi d’apprendre à ma descendance comment garder en vie cette flamme numérique qui vacille à chaque coup de vent de format&nbsp;propriétaire.</p>
  250. <nav>
  251. <p>
  252. <a href="/david/2024/dependance/"
  253. title="Liste de tous les articles 2024 associés à cette étiquette"
  254. rel="tag">#dépendance</a>
  255. <a href="/david/2024/partage/"
  256. title="Liste de tous les articles 2024 associés à cette étiquette"
  257. rel="tag">#partage</a>
  258. <a href="/david/2024/technique/"
  259. title="Liste de tous les articles 2024 associés à cette étiquette"
  260. rel="tag">#technique</a>
  261. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  262. </p>
  263. </nav>
  264. <h2>
  265. <a href="/david/2024/03/13/" title="Lien permanent vers cet article">Sérendipité</a> <time datetime="2024-03-13">13 mars 2024</time>
  266. </h2>
  267. <blockquote lang="en">
  268. <p>Discovering things via links is way more fun than most algorithmically-driven discovery — in my humble&nbsp;opinion.</p>
  269. <p>As an analogy, it’s kind of like going on vacation to a new place and staying/living amongst the locals vs. staying at a manicured 5-star hotel that gives you no reason to leave. <mark>Can you really say you visited the location if you never left the&nbsp;hotel?</mark></p>
  270. <p><cite><em><a data-link-domain="blog.jim-nielsen.com" href="https://blog.jim-nielsen.com/2024/following-links/" hreflang="en"
  271. title="Consultation de l’article (anglais)">Following Links - Jim Nielsen’s Blog</a>
  272. <a href="/david/cache/2024/c26881e908632b460cfd93fe61cc0466/" hreflang="en"
  273. data-tippy data-description="Writing about the big beautiful mess that is making things for the world wide web."
  274. data-source="https://blog.jim-nielsen.com/2024/following-links/"
  275. data-date="2024-03-12"
  276. data-favicon="https://blog.jim-nielsen.com/favicon.ico"
  277. data-domain="blog.jim-nielsen.com"
  278. ><svg xmlns="http://www.w3.org/2000/svg"
  279. width="24" height="24" viewBox="0 0 24 24" fill="none"
  280. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  281. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  282. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  283. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  284. </svg>
  285. <span class="sr-only">[archive]</span></a></em></cite></p>
  286. </blockquote>
  287. <p>Je suis toujours étonné qu’il n’y ait pas des navigateurs qui affichent la toile de nos navigations de manière plus ou moins artistiques. On pourrait avoir des topologies de navigations, potentiellement quotidiennes, des points de comparaison avec d’autres personnes, une représentation de la curiosité, de l’enfermement dans des silos, etc.</p>
  288. <blockquote lang="en">
  289. <p>A surprising number of other features can be expressed in terms of&nbsp;links.</p>
  290. <p><cite><em><a data-link-domain="subconscious.substack.com" href="https://subconscious.substack.com/p/all-you-need-is-links" hreflang="en"
  291. title="Consultation de l’article (anglais)">All you need is links</a>
  292. <a href="/david/cache/2024/a801772c901c3e5cfad33f637d00151e/" hreflang="en"
  293. data-tippy data-description="Before reaching for features, my goal is to explore, to the fullest extent, the creative potential of plain old links."
  294. data-source="https://subconscious.substack.com/p/all-you-need-is-links"
  295. data-date="2024-03-12"
  296. data-favicon="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4d01c24b-d99d-497e-9e60-1a2427581cad%2Ffavicon-16x16.png"
  297. data-domain="subconscious.substack.com"
  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. <a href="#hr-112" title="Lien vers cette section de la page"><hr id="hr-112" /></a>
  308. <blockquote lang="en">
  309. <p><code>printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'</code></p>
  310. <p><cite><em><a data-link-domain="notes.billmill.org" href="https://notes.billmill.org/programming/bash/Hyperlink_escape_codes.html" hreflang="en"
  311. title="Consultation de l’article (anglais)">Hyperlink escape codes</a>
  312. <a href="/david/cache/2024/f68e9507784b5baf1584085908d60f58/" hreflang="en"
  313. data-tippy data-description="To print out a clickable hyperlink in a terminal"
  314. data-source="https://notes.billmill.org/programming/bash/Hyperlink_escape_codes.html"
  315. data-date="2024-03-13"
  316. data-favicon="https://notes.billmill.org/favicon.ico"
  317. data-domain="notes.billmill.org"
  318. ><svg xmlns="http://www.w3.org/2000/svg"
  319. width="24" height="24" viewBox="0 0 24 24" fill="none"
  320. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  321. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  322. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  323. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  324. </svg>
  325. <span class="sr-only">[archive]</span></a></em></cite></p>
  326. </blockquote>
  327. <p>Qui me fait découvre <a data-link-domain="github.com" href="https://github.com/nedbat/watchgha">watchgha</a>, bien pratique pour avoir un accès rapide aux résultats de l’intégration&nbsp;continue.</p>
  328. <figure>
  329. <a href="/static/david/2024/2024-03-13-watchgha.png"
  330. title="Cliquer pour une version haute résolution">
  331. <img
  332. src="/static/david/2024/2024-03-13-watchgha.png"
  333. width="2422" height="192"
  334. srcset="/static/david/2024/2024-03-13-watchgha.png 2422w, /static/david/2024/2024-03-13-watchgha.png 660w, /static/david/2024/2024-03-13-watchgha.png 990w, /static/david/2024/2024-03-13-watchgha.png 1320w"
  335. sizes="min(100vw, calc(100vh * 2422 / 192))"
  336. loading="lazy"
  337. decoding="async"
  338. alt="Capture d’écran du résultat de la commande git runs avec l’alias git qui pointe vers watchgha.">
  339. </a>
  340. <figcaption>Ça passe 🎉 (je vais essayer de faire une démo d’oEmbed par ici à un&nbsp;moment).</figcaption>
  341. </figure>
  342. <a href="#hr-113" title="Lien vers cette section de la page"><hr id="hr-113" /></a>
  343. <blockquote>
  344. <p>Le constat est simple&nbsp;: je trouve que le Web ne va pas fort en ce moment, et je voulais à ma petite échelle montrer un peu&nbsp;l’exemple.</p>
  345. <p><cite><em><a data-link-domain="vincent-valentin.name" href="https://vincent-valentin.name/articles/motivation-s" hreflang="fr"
  346. title="Consultation de l’article">Motivation(s) chez Vincent Valentin.</a>
  347. <a href="/david/cache/2024/c6e0fe933581c74380fa8eaa7f229353/" hreflang="fr"
  348. data-tippy data-description="Site personnel de Vincent Valentin, habitant à Nantes, quarante-quatre ans et intégrateur web depuis plus de quinze ans."
  349. data-source="https://vincent-valentin.name/articles/motivation-s"
  350. data-date="2024-03-13"
  351. data-favicon="https://vincent-valentin.name/favicon-32x32.png"
  352. data-domain="vincent-valentin.name"
  353. ><svg xmlns="http://www.w3.org/2000/svg"
  354. width="24" height="24" viewBox="0 0 24 24" fill="none"
  355. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  356. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  357. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  358. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  359. </svg>
  360. <span class="sr-only">[archive]</span></a></em></cite></p>
  361. </blockquote>
  362. <p>Très chouettes publications cette dernière semaine en tout cas&nbsp;&lt;3.</p>
  363. <a href="#hr-114" title="Lien vers cette section de la page"><hr id="hr-114" /></a>
  364. <p>Rétropédalage sur <a href="/david/2024/03/12/" title="Surligner">le surlignage</a>. Beaucoup trop de retours qui trouvent cela davantage distrayant qu’utile. Pour l’instant, j’ai gardé la logique mais sans animation. Je me demande si je vais en faire un <em>opt-in</em> à un&nbsp;moment.</p>
  365. <a href="#hr-115" title="Lien vers cette section de la page"><hr id="hr-115" /></a>
  366. <blockquote>
  367. <p>Puisque la demi-mesure ne fait pas partie de mon vocabulaire, j’ai tenu à travailler au plus proche des techniques médiévales. <mark>J’ai ainsi appris à encrer à la plume, dorer à la feuille d’or pur, peindre aux pigments en poudre et relier au cuir de chèvre.</mark> Je m’y suis dévouée corps et âme, dédiant le moindre de mon temps libre à la concrétisation de ce projet qui devait se mener dans le plus grand secret. Je m’attelais à l’ouvrage à la moindre opportunité, me levant parfois à l’aube pour grappiller une heure de calligraphie avant d’aller bosser ou prolongeant des soirées jusqu’au petit matin lorsque K travaillait de&nbsp;nuit.</p>
  368. <p>Au total j’ai passé plus de 230&nbsp;heures sur ce&nbsp;projet</p>
  369. <p><cite><em><a data-link-domain="hypothermia.fr" href="https://www.hypothermia.fr/2024/03/chiroto-t-datoca/" hreflang="fr"
  370. title="Consultation de l’article">Chiroto T. Datoca</a>
  371. <a href="/david/cache/2024/f5294ac20ea593cce56caf2379813a4a/" hreflang="fr"
  372. data-tippy data-description="Il y a quinze ans, j'ai entamé un projet de calligraphie que je n'ai jamais terminé, un cadeau que je n'ai jamais offert."
  373. data-source="https://www.hypothermia.fr/2024/03/chiroto-t-datoca/"
  374. data-date="2024-03-13"
  375. data-favicon="https://www.hypothermia.fr/wp-content/uploads/fbrfg/favicon-32x32.png"
  376. data-domain="hypothermia.fr"
  377. ><svg xmlns="http://www.w3.org/2000/svg"
  378. width="24" height="24" viewBox="0 0 24 24" fill="none"
  379. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  380. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  381. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  382. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  383. </svg>
  384. <span class="sr-only">[archive]</span></a></em></cite></p>
  385. </blockquote>
  386. <p>Ce moment où tu te rends compte que tu n’es pas perfectionniste en fait 🤯. Chapeau bas&nbsp;l’artiste.</p>
  387. <a href="#hr-116" title="Lien vers cette section de la page"><hr id="hr-116" /></a>
  388. <blockquote lang="en">
  389. <p>Rust-like error handling in Python, with type-safety in&nbsp;mind.</p>
  390. <p><cite><em><a data-link-domain="github.com" href="https://github.com/alexandermalyga/poltergeist">poltergeist</a></em></cite></p>
  391. </blockquote>
  392. <p>J’ai très souvent retrouvé le besoin de ce <em>pattern</em> dans mes&nbsp;projets.</p>
  393. <a href="#hr-117" title="Lien vers cette section de la page"><hr id="hr-117" /></a>
  394. <p>Sortie de la <a data-link-domain="pypi.org" href="https://pypi.org/project/pressoir-cli/2.0.0/">version 2.0&nbsp;de pressoir-cli</a> (oui, <a href="/david/2024/02/16/" title="uMap 2">c’est ma période</a>). L’une des prochaines étapes sera de générer sa propre documentation en l’utilisant. Ça peut paraitre stupide mais c’est trop <em>meta</em> pour ne pas le&nbsp;faire&nbsp;😇.</p>
  395. <a href="#hr-118" title="Lien vers cette section de la page"><hr id="hr-118" /></a>
  396. <blockquote>
  397. <p>Nginx de part sa robustesse, sa structure minimaliste et son fonctionnement événementiel asynchrone est un serveur web plébiscité pour ses performances. Mais ce n’est pas parce qu’on a une Porsche qu’il ne faut pas tenter de la rendre encore plus&nbsp;puissante&#8239;!</p>
  398. <p><cite><em><a data-link-domain="buzut.net" href="https://buzut.net/optimiser-nginx/" hreflang="fr"
  399. title="Consultation de l’article">Optimisez Nginx pour de meilleurs performances</a>
  400. <a href="/david/cache/2024/b33059055c307477e43390a51f9a104a/" hreflang="fr"
  401. data-tippy data-description="Nginx est réputé pour sa rapidité, mais quand votre serveur fait face à un trafic énorme, il est possible d'en tirer encore plus. Voyons comment !"
  402. data-source="https://buzut.net/optimiser-nginx/"
  403. data-date="2024-03-13"
  404. data-favicon="https://buzut.net/img/favicon.png"
  405. data-domain="buzut.net"
  406. ><svg xmlns="http://www.w3.org/2000/svg"
  407. width="24" height="24" viewBox="0 0 24 24" fill="none"
  408. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  409. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  410. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  411. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  412. </svg>
  413. <span class="sr-only">[archive]</span></a></em></cite></p>
  414. </blockquote>
  415. <p>Pour lecture&nbsp;ultérieure.</p>
  416. <a href="#hr-119" title="Lien vers cette section de la page"><hr id="hr-119" /></a>
  417. <blockquote>
  418. <p><code>font-size: calc(1rem + 0.25vw);</code></p>
  419. <p><cite><em><a data-link-domain="jameshfisher.com" href="https://jameshfisher.com/2024/03/12/a-formula-for-responsive-font-size/" hreflang="en"
  420. title="Consultation de l’article (anglais)">A formula for responsive font-size</a>
  421. <a href="/david/cache/2024/08b2b2735f74ebf856d8a850cc9e41cc/" hreflang="en"
  422. data-tippy data-description="This CSS is now part of most websites I make:"
  423. data-source="https://jameshfisher.com/2024/03/12/a-formula-for-responsive-font-size/"
  424. data-date="2024-03-13"
  425. data-favicon="https://jameshfisher.com/assets/jim_128.png"
  426. data-domain="jameshfisher.com"
  427. ><svg xmlns="http://www.w3.org/2000/svg"
  428. width="24" height="24" viewBox="0 0 24 24" fill="none"
  429. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  430. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  431. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  432. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  433. </svg>
  434. <span class="sr-only">[archive]</span></a></em></cite></p>
  435. </blockquote>
  436. <p>Moins poussé que le <a data-link-domain="utopia.fyi" href="https://utopia.fyi/type/calculator?c=320,18,1.2,1240,20,1.25,5,2,&amp;s=0.75%7C0.5%7C0.25,1.5%7C2%7C3%7C4%7C6,s-l&amp;g=s,l,xl,12">Fluid type scale calculator</a> mais dans un contexte plus minimaliste / simple ça fait déjà le&nbsp;taf.</p>
  437. <a href="#hr-120" title="Lien vers cette section de la page"><hr id="hr-120" /></a>
  438. <blockquote lang="en">
  439. <p>To enable such progress, <strong>the Web Consortium too has evolved, always taking a people-first approach:</strong> the Web must continue to serve humanity. The first such inflection point was the creation of the patent policy in 2003&nbsp;which assures that specifications can be implemented on a Royalty-Free basis and used at no cost, thus boosting adoption and usage. Another is the creation in 2011&nbsp;of W3C Community and Business Groups which enable everyone –not just W3C Members– to participate in the development of the Web or its technologies. Our most recent inflection point was <mark>re-launching the Consortium in 2023&nbsp;as a public-interest non-profit organization</mark> to work for the good of the&nbsp;public.</p>
  440. <p><cite><em><a data-link-domain="w3.org" href="https://www.w3.org/blog/2024/from-a-humble-beginning-35-years-ago-the-web-is-now-central-to-the-daily-lives-of-billions/" hreflang="en"
  441. title="Consultation de l’article (anglais)">From a humble beginning 35&nbsp;years ago, the Web is now central to the daily lives of billions</a>
  442. <a href="/david/cache/2024/c684ecb41e8e4ea04c6dac1e1d87f776/" hreflang="en"
  443. data-tippy data-description="In this blog post, W3C CEO Seth Dobbs depicts how from a humble beginning 35 years ago, the Web is now central to the daily lives of billions of people."
  444. data-source="https://www.w3.org/blog/2024/from-a-humble-beginning-35-years-ago-the-web-is-now-central-to-the-daily-lives-of-billions/"
  445. data-date="2024-03-13"
  446. data-favicon="https://www.w3.org/favicon.ico"
  447. data-domain="w3.org"
  448. ><svg xmlns="http://www.w3.org/2000/svg"
  449. width="24" height="24" viewBox="0 0 24 24" fill="none"
  450. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  451. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  452. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  453. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  454. </svg>
  455. <span class="sr-only">[archive]</span></a></em></cite></p>
  456. </blockquote>
  457. <p>35&nbsp;ans de liens. Merci Tim <em>et al.</em> d’avoir permis&nbsp;cela.</p>
  458. <nav>
  459. <p>
  460. <a href="/david/2024/liens/"
  461. title="Liste de tous les articles 2024 associés à cette étiquette"
  462. rel="tag">#liens</a>
  463. <a href="/david/2024/partage/"
  464. title="Liste de tous les articles 2024 associés à cette étiquette"
  465. rel="tag">#partage</a>
  466. <a href="/david/2024/web/"
  467. title="Liste de tous les articles 2024 associés à cette étiquette"
  468. rel="tag">#web</a>
  469. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  470. </p>
  471. </nav>
  472. <h2>
  473. <a href="/david/2024/03/12/" title="Lien permanent vers cet article">Surligner</a> <time datetime="2024-03-12">12 mars 2024</time>
  474. </h2>
  475. <blockquote lang="en">
  476. <p>A small JavaScript library <mark>to create and animate annotations on a web&nbsp;page</mark></p>
  477. <p>Rough Notation uses RoughJS to create a hand-drawn look and feel. Elements can be annotated in a number of different styles. Animation duration and delay can be configured, or just turned&nbsp;off.</p>
  478. <p>Rough Notation is 3.8kb in size when gzipped, and the code is available on&nbsp;GitHub.</p>
  479. <p><cite><em><a data-link-domain="roughnotation.com" href="https://roughnotation.com/">Rough&nbsp;Notation</a></em></cite></p>
  480. </blockquote>
  481. <p>J’utilise cette façon de mettre en avant des fragments de citations <a href="/david/2020/02/21/#surlignage">depuis un petit moment</a> et en passant <a data-link-domain="vanschklift.com" href="https://vanschklift.com/blog/post/2020/06/19/Time-for-a-refresh%21" hreflang="en"
  482. title="Consultation de l’article (anglais)">par chez Biou</a>
  483. <a href="/david/cache/2024/41e9f48de9ccd2449bceca518fff8606/" hreflang="en"
  484. data-tippy data-description="It has been a while since I last changed the theme of this blog! Seems that with all the time spent at home in the last three months, I had some new blog posts ideas, but blogging"
  485. data-source="https://vanschklift.com/blog/post/2020/06/19/Time-for-a-refresh%21"
  486. data-date="2024-03-12"
  487. data-favicon="https://vanschklift.com/themes/wip/img/android-icon-192x192.png"
  488. data-domain="vanschklift.com"
  489. ><svg xmlns="http://www.w3.org/2000/svg"
  490. width="24" height="24" viewBox="0 0 24 24" fill="none"
  491. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  492. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  493. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  494. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  495. </svg>
  496. <span class="sr-only">[archive]</span></a> aujourd’hui, j’ai trouvé l’effet bien sympathique. Je ne l’applique pour l’instant(?) que sur la balise <code>&lt;mark&gt;</code> (relativement inoffensif si ça casse), en respectant <code>prefers-reduced-motion</code> et en animant que lorsque la partie surlignée devient visible grâce à <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver">IntersectionObserver</a>.</p>
  497. <p>Cela peut se révéler être distrayant pour certaines personnes car ça bouge à un endroit éloigné du point de lecture (merci @maiwann), invisible pour d’autres qui chargent les onglets sans être dessus (merci @lamecarlate). Il s’agit d’une famille d’animations pas trop invasives, encore moins essentielles, qui peuvent se révéler être de fausses bonnes idées. Je vais tester pour un temps, toujours dans cette recherche d’aller <a href="/david/2024/03/09/#hr-106">vers un peu plus de fantaisie</a>.</p>
  498. <p>N’hésitez pas à me faire des&nbsp;retours.</p>
  499. <p><mark>Plus tard dans la journée</mark>, Nicolas Hoizey m’indique qu’il sera possible d’avoir un <a data-link-domain="frontendmasters.com" href="https://frontendmasters.com/blog/highlight-text-when-a-user-scrolls-down-to-that-piece-of-text/" hreflang="en"
  500. title="Consultation de l’article (anglais)">comportement approchant en CSS</a>
  501. <a href="/david/cache/2024/5ff0fe74d43b57fa41db8851bc56ac88/" hreflang="en"
  502. data-tippy data-description="I was reading a great post on Lene Saile’s blog and noticed a cool little design feature on her site that highlights a line of text once you scroll to it. Here’s a video so you can see …"
  503. data-source="https://frontendmasters.com/blog/highlight-text-when-a-user-scrolls-down-to-that-piece-of-text/"
  504. data-date="2024-03-12"
  505. data-favicon="https://frontendmasters.com/favicon-32x32.png"
  506. data-domain="frontendmasters.com"
  507. ><svg xmlns="http://www.w3.org/2000/svg"
  508. width="24" height="24" viewBox="0 0 24 24" fill="none"
  509. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  510. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  511. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  512. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  513. </svg>
  514. <span class="sr-only">[archive]</span></a> <a data-link-domain="caniuse.com" href="https://caniuse.com/mdn-css_properties_animation-range">prochainement</a>.</p>
  515. <p><mark>Le lendemain</mark>, <a href="/david/2024/03/13/#hr-114">j’ai désactivé l’animation</a> suite à plusieurs retours de&nbsp;lecteur·ices.</p>
  516. <a href="#hr-110" title="Lien vers cette section de la page"><hr id="hr-110" /></a>
  517. <blockquote>
  518. <p>Ce qu’Hashbang propose est de créer un registrar sous forme de SCIC avec en plus un processus participatif pour définir les services et leurs tarifs. Le premier service proposé sera certainement le nom de domaine, mais personne ne peut actuellement définir quel tarif sera proposé. <mark>Ce sera issu d’un processus participatif en fonction des participant·e·s au&nbsp;départ.</mark></p>
  519. <p>Chez Hashbang, nous portons un regard attentif aux enjeux environnementaux et nous proposons donc de mesurer et limiter l’impact environnemental des activités du&nbsp;registrar.</p>
  520. <p>Nous souhaitons également s’assurer qu’il n’y ait pas de discriminations et que les personnes minorisé·e·s puissent s’emparer de cet espace. Il faut donc s’attendre à ce qu’il y ait des événements en mixité choisie et du langage&nbsp;inclusif.</p>
  521. <p><cite><em><a data-link-domain="hashbang.coop" href="https://hashbang.coop/blog/appel-a-interet-pour-un-bureau-denregistrement-cooperatif/" hreflang="fr"
  522. title="Consultation de l’article">Appel à intérêt pour un bureau d’enregistrement coopératif</a>
  523. <a href="/david/cache/2024/2c027efb3689a1067c7f32a659fd4092/" hreflang="fr"
  524. data-tippy data-description="Nous lançons un projet pour gérer des noms de domaines dans une nouvelle coopérative"
  525. data-source="https://hashbang.coop/blog/appel-a-interet-pour-un-bureau-denregistrement-cooperatif/"
  526. data-date="2024-03-12"
  527. data-favicon="https://hashbang.coop/static/images/favicon.1d2088a755c9.ico"
  528. data-domain="hashbang.coop"
  529. ><svg xmlns="http://www.w3.org/2000/svg"
  530. width="24" height="24" viewBox="0 0 24 24" fill="none"
  531. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  532. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  533. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  534. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  535. </svg>
  536. <span class="sr-only">[archive]</span></a></em></cite></p>
  537. </blockquote>
  538. <p>Superbe initiative, coopératives pour&nbsp;tou·tes&#8239;!</p>
  539. <a href="#hr-111" title="Lien vers cette section de la page"><hr id="hr-111" /></a>
  540. <blockquote lang="en">
  541. <p>I know a lot of people hate anti-ad-block popups, but to me they are&nbsp;perfect.</p>
  542. <p>In presenting those popups, those websites demonstrate that they realize the lack of control they have. They show us so plainly that they are unable to make money from us, which leaves them no option but to grovel and beg us to turn off&nbsp;ad-blocking.[…]</p>
  543. <p>When we use web browsers, <strong>we</strong> are in more control than <strong>they</strong> are. <mark>That’s simply not the case when we’re inside an app they get to&nbsp;control.</mark></p>
  544. <p><cite><em><a data-link-domain="lmnt.me" href="https://lmnt.me/blog/anti-ad-block.html" hreflang="en"
  545. title="Consultation de l’article (anglais)">Anti-Ad-Block</a>
  546. <a href="/david/cache/2024/09cfcfafab15ad576de8b32d0046fb93/" hreflang="en"
  547. data-tippy data-description="I know a lot of people hate anti-ad-block popups, but to me they are perfect."
  548. data-source="https://lmnt.me/blog/anti-ad-block.html"
  549. data-date="2024-03-12"
  550. data-favicon="https://lmnt.me/lmnt.png"
  551. data-domain="lmnt.me"
  552. ><svg xmlns="http://www.w3.org/2000/svg"
  553. width="24" height="24" viewBox="0 0 24 24" fill="none"
  554. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  555. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  556. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  557. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  558. </svg>
  559. <span class="sr-only">[archive]</span></a></em></cite></p>
  560. </blockquote>
  561. <p>Ma configuration à ce sujet est assez extrême et il n’est pas rare (surtout sur les boutiques&#8239;!) que je doive m’y reprendre à pas mal de fois pour débloquer les <a data-link-domain="tonsky.me" href="https://tonsky.me/blog/js-bloat/" hreflang="en"
  562. title="Consultation de l’article (anglais)">megabytes de JavaScript</a>
  563. <a href="/david/cache/2024/ad911ebf7ba5523ef0be1bdd599f7623/" hreflang="en"
  564. data-tippy data-description="What is the average size of JavaScript code downloaded per website? Fuck around and find out!"
  565. data-source="https://tonsky.me/blog/js-bloat/"
  566. data-date="2024-03-03"
  567. data-favicon="https://tonsky.me/i/favicon.png"
  568. data-domain="tonsky.me"
  569. ><svg xmlns="http://www.w3.org/2000/svg"
  570. width="24" height="24" viewBox="0 0 24 24" fill="none"
  571. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  572. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  573. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  574. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  575. </svg>
  576. <span class="sr-only">[archive]</span></a> à télécharger qui sont pertinents, ou plutôt nécessaires aux personnes ayant développé ces sites. Car pour ma part, je n’aurais besoin que de HTML dans 99% des&nbsp;cas…</p>
  577. <p>…dit-il en venant d’ajouter 13Ko de&nbsp;JS&nbsp;😬.</p>
  578. <nav>
  579. <p>
  580. <a href="/david/2024/partage/"
  581. title="Liste de tous les articles 2024 associés à cette étiquette"
  582. rel="tag">#partage</a>
  583. <a href="/david/2024/technique/"
  584. title="Liste de tous les articles 2024 associés à cette étiquette"
  585. rel="tag">#technique</a>
  586. <a href="/david/2024/web/"
  587. title="Liste de tous les articles 2024 associés à cette étiquette"
  588. rel="tag">#web</a>
  589. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  590. </p>
  591. </nav>
  592. <h2>
  593. <a href="/david/2024/02/28/" title="Lien permanent vers cet article">Dérèglement</a> <time datetime="2024-02-28">28 février 2024</time>
  594. </h2>
  595. <p>J’avais déjà remarqué leur départ très tardif en décembre. Hier soir, j’ai entendu mes premières bernaches. Demain matin, elles risquent d’avoir un petit peu&nbsp;frais…</p>
  596. <figure>
  597. <a href="/static/david/2024/2024-02-28-courbe-temperature.jpg"
  598. title="Cliquer pour une version haute résolution">
  599. <img
  600. src="/static/david/2024/2024-02-28-courbe-temperature.jpg"
  601. width="960" height="2079"
  602. srcset="/static/david/2024/2024-02-28-courbe-temperature.jpg 960w, /static/david/2024/2024-02-28-courbe-temperature_660x440.jpg 660w, /static/david/2024/2024-02-28-courbe-temperature_990x660.jpg 990w, /static/david/2024/2024-02-28-courbe-temperature_1320x880.jpg 1320w"
  603. sizes="min(100vw, calc(100vh * 960 / 2079))"
  604. loading="lazy"
  605. decoding="async"
  606. alt="Capture d’écran de la météo, les températures vont de 14°C à -13°C en moins de 12&nbsp;heures.">
  607. </a>
  608. <figcaption>#MeanwhileInCanada</figcaption>
  609. </figure>
  610. <a href="#hr-92" title="Lien vers cette section de la page"><hr id="hr-92" /></a>
  611. <p>Le même jour, j’intègre les <a data-link-domain="mistune.lepture.com" href="https://mistune.lepture.com/en/latest/directives.html#admonitions">admonitions</a> à un de nos outils interne et j’apprends qu’il est possible d’intégrer ce type de rendu pour le <a data-link-domain="github.com" href="https://github.com/orgs/community/discussions/16925"><em>markdown</em> servi par Microsoft Github</a> en lisant le <a data-link-domain="github.com" href="https://github.com/jgarber623/aria-collapsible">README de aria-collapsible</a>.</p>
  612. <p>Au passage, j’apprends beaucoup en lisant le code de <em>Web Components</em> en ce moment. Il y a une effervescence dans le domaine parmi des personnes qui ont un bon niveau de JS ainsi qu’une sensibilité à l’accessibilité de leurs productions. Ici par exemple, je découvre comment faire des composants relativement&nbsp;défensifs.</p>
  613. <a href="#hr-93" title="Lien vers cette section de la page"><hr id="hr-93" /></a>
  614. <blockquote lang="en">
  615. <p>Anyway, if you want to know some basic information about Passkeys I know a site you can check&nbsp;out.</p>
  616. <p><cite><em><a data-link-domain="chriscoyier.net" href="https://chriscoyier.net/2024/02/28/where-im-at-on-the-whole-css-tricks-thing/" hreflang="en"
  617. title="Consultation de l’article (anglais)">Where I’m at on the whole CSS-Tricks thing</a>
  618. <a href="/david/cache/2024/2cbc47f0ebded9d54fe6163fa4ea0667/" hreflang="en"
  619. data-tippy data-description="It was March 2022 when I sold CSS-Tricks to DigitalOcean. So it’s been just about 2 years now."
  620. data-source="https://chriscoyier.net/2024/02/28/where-im-at-on-the-whole-css-tricks-thing/"
  621. data-date="2024-02-28"
  622. data-favicon="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%22256%22 height=%22256%22 viewBox=%220 0 100 100%22><rect width=%22100%22 height=%22100%22 rx=%2220%22 fill=%22%23f8d773%22></rect><text x=%2250%%22 y=%2250%%22 dominant-baseline=%22central%22 text-anchor=%22middle%22 font-size=%2290%22>👨‍💻</text></svg>"
  623. data-domain="chriscoyier.net"
  624. ><svg xmlns="http://www.w3.org/2000/svg"
  625. width="24" height="24" viewBox="0 0 24 24" fill="none"
  626. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  627. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  628. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  629. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  630. </svg>
  631. <span class="sr-only">[archive]</span></a></em></cite></p>
  632. </blockquote>
  633. <p>Beaucoup d’honnêteté et… une belle ressource de perdue, ou en passe de l’être. <em>Tricky.</em></p>
  634. <a href="#hr-94" title="Lien vers cette section de la page"><hr id="hr-94" /></a>
  635. <blockquote lang="en">
  636. <p>Using <code>color-mix()</code>, we can adjust the tint/shade based on the background color, meaning <mark>we don’t need to manually select lighter/darker colors</mark> for those states. And because we’re using OKLCH, the variations will be perceptually uniform, <a data-link-domain="lea.verou.me" href="https://lea.verou.me/blog/2020/04/lch-colors-in-css-what-why-and-how/#3.-lch-lightness-actually-means-something">unlike HSL</a>. This means that tints and shades will look consistent for any color we&nbsp;choose!</p>
  637. <p><cite><em><a data-link-domain="abeautifulsite.net" href="https://www.abeautifulsite.net/posts/better-buttons-with-color-mix-and-custom-properties/" hreflang="en"
  638. title="Consultation de l’article (anglais)">Better Buttons with color-mix() and Custom Properties</a>
  639. <a href="/david/cache/2024/b2ccbe813d97ba39ba64a1b6d14422dd/" hreflang="en"
  640. data-tippy data-description="Let the browser and OKLCH do the hard work of styling states."
  641. data-source="https://www.abeautifulsite.net/posts/better-buttons-with-color-mix-and-custom-properties/"
  642. data-date="2024-02-28"
  643. data-favicon="https://www.abeautifulsite.net/images/logos/leaf.svg"
  644. data-domain="abeautifulsite.net"
  645. ><svg xmlns="http://www.w3.org/2000/svg"
  646. width="24" height="24" viewBox="0 0 24 24" fill="none"
  647. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  648. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  649. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  650. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  651. </svg>
  652. <span class="sr-only">[archive]</span></a></em></cite></p>
  653. </blockquote>
  654. <p>Les personnes qui maîtrisent bien CSS vont avoir de plus en plus de valeur. À juste&nbsp;titre.</p>
  655. <nav>
  656. <p>
  657. <a href="/david/2024/documentation/"
  658. title="Liste de tous les articles 2024 associés à cette étiquette"
  659. rel="tag">#documentation</a>
  660. <a href="/david/2024/partage/"
  661. title="Liste de tous les articles 2024 associés à cette étiquette"
  662. rel="tag">#partage</a>
  663. <a href="/david/2024/solastalgia/"
  664. title="Liste de tous les articles 2024 associés à cette étiquette"
  665. rel="tag">#solastalgia</a>
  666. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  667. </p>
  668. </nav>
  669. <h2>
  670. <a href="/david/2024/02/22/" title="Lien permanent vers cet article">Responsabilité</a> <time datetime="2024-02-22">22 février 2024</time>
  671. </h2>
  672. <blockquote>
  673. <p>Il n’y a pas vraiment de conclusion à tout ça. Nous avons été témoins, par le petit bout de la lorgnette, du tout début de cette histoire&#8239;; nous avons imaginé un instant <mark>avoir l’opportunité, ou le devoir,</mark> d’y faire quelque chose. Finalement, nous n’avons jamais vraiment donné notre&nbsp;avis.&nbsp;🤷</p>
  674. <p><cite><em><a data-link-domain="codeursenliberte.fr" href="https://www.codeursenliberte.fr/blog/tous_anti_covid/" hreflang="fr"
  675. title="Consultation de l’article">TousAntiCovid&nbsp;: vu depuis Codeureuses en Liberté</a>
  676. <a href="/david/cache/2024/ddc3ee3603be2702cef745c180b87776/" hreflang="fr"
  677. data-tippy data-description="TousAntiCovid a refait récemment l’actualité sur les montants de l’hébergement et les modalités d’attribution du marché."
  678. data-source="https://www.codeursenliberte.fr/blog/tous_anti_covid/"
  679. data-date="2024-02-22"
  680. data-favicon="https://www.codeursenliberte.fr/favicon.png"
  681. data-domain="codeursenliberte.fr"
  682. ><svg xmlns="http://www.w3.org/2000/svg"
  683. width="24" height="24" viewBox="0 0 24 24" fill="none"
  684. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  685. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  686. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  687. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  688. </svg>
  689. <span class="sr-only">[archive]</span></a></em></cite></p>
  690. </blockquote>
  691. <p>Je me souviens vaguement de certaines discussions à ce sujet. D’un côté l’orgueil de penser que l’on pouvait faire mieux, de l’autre la culpabilité de pouvoir être associé à un tel projet. Et au milieu, une épidémie et le sentiment de pouvoir faire des choses avec nos compétences et notre position au sein de l’État français. Un mois plus tard, je m’embarquais dans <a href="/david/2020/05/26/">une autre aventure</a>, plus proche de mon&nbsp;style.</p>
  692. <p>Deux années, 23&nbsp;millions de visiteur·euses uniques et 60&nbsp;millions de pages vues plus tard, j’ai l’impression d’avoir été utile à mon échelle. Merci à la D<a data-link-domain="ronan.amicel.net" href="https://ronan.amicel.net/">R</a><a data-link-domain="ut7.fr" href="https://www.ut7.fr/">R</a>u<a data-link-domain="maiwann.net" href="https://www.maiwann.net/">M</a><a data-link-domain="fr.linkedin.com" href="https://fr.linkedin.com/in/m%C3%A9lodiedahi">M</a> team pour cette&nbsp;période.</p>
  693. <a href="#hr-84" title="Lien vers cette section de la page"><hr id="hr-84" /></a>
  694. <blockquote lang="en">
  695. <p>A custom element implementation of the Stack is provided for&nbsp;download.</p>
  696. <p><cite><em><a data-link-domain="every-layout.dev" href="https://every-layout.dev/layouts/stack/#the-component" hreflang="en"
  697. title="Consultation de l’article (anglais)">The Stack: Every Layout</a>
  698. <a href="/david/cache/2024/6b2b8e2559a07b8d66dac842017b2619/" hreflang="en"
  699. data-tippy data-description="A composable CSS layout primitive."
  700. data-source="https://every-layout.dev/layouts/stack/#the-component"
  701. data-date="2024-02-22"
  702. data-favicon="https://every-layout.dev/images/favicon.png"
  703. data-domain="every-layout.dev"
  704. ><svg xmlns="http://www.w3.org/2000/svg"
  705. width="24" height="24" viewBox="0 0 24 24" fill="none"
  706. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  707. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  708. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  709. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  710. </svg>
  711. <span class="sr-only">[archive]</span></a></em></cite></p>
  712. </blockquote>
  713. <p>Utiliser des <em>Web Components</em> pour appliquer un style, je n’y avais pas encore&nbsp;songé.</p>
  714. <a href="#hr-85" title="Lien vers cette section de la page"><hr id="hr-85" /></a>
  715. <p>Hier soir, j’ai regardé <a data-link-domain="en.wikipedia.org" href="https://en.wikipedia.org/wiki/The_Deepest_Breath">The Deepest Breath</a>. J’ai mal dormi. D’autant que, plus tôt dans la journée, on m’avait transmis <a data-link-domain="youtube.com" href="https://www.youtube.com/watch?v=LFLl9q-bEgk">ce retour d’expérience</a>, flippant (et discutable) à plus d’un&nbsp;titre.</p>
  716. <p>La récupération de ma cheville suit son cours, ça va être long, il manque du muscle. Je me sens suffisamment en confiance pour tenter une sortie hivernale en camping cette fin de semaine, on va voir ce que ça donne. Il va faire <q lang="fr_CA">frête</q> et ça laisse peu de place aux&nbsp;incapacités…</p>
  717. <nav>
  718. <p>
  719. <a href="/david/2024/decision/"
  720. title="Liste de tous les articles 2024 associés à cette étiquette"
  721. rel="tag">#décision</a>
  722. <a href="/david/2024/experience/"
  723. title="Liste de tous les articles 2024 associés à cette étiquette"
  724. rel="tag">#expérience</a>
  725. <a href="/david/2024/partage/"
  726. title="Liste de tous les articles 2024 associés à cette étiquette"
  727. rel="tag">#partage</a>
  728. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  729. </p>
  730. </nav>
  731. <h2>
  732. <a href="/david/2024/01/31/" title="Lien permanent vers cet article">Mécénat</a> <time datetime="2024-01-31">31 janvier 2024</time>
  733. </h2>
  734. <p>Je termine mon mécénat de compétence avec uMap sur ces 4&nbsp;derniers mois (25&nbsp;jours de travail). Je suis très content d’avoir pu faire cette expérience avec / grâce à Scopyleft et&nbsp;OSM-FR.</p>
  735. <p>Voici les notes que j’avais prises avant d’établir une Convention de mécénat avec <a data-link-domain="openstreetmap.fr" href="https://www.openstreetmap.fr/association/">OpenStreetMap France</a>, j’ai pris le soin de documenter la démarche car ça pourrait donner lieu à d’autres dons en nature de la part de Scopyleft (et puis ça pourrait peut-être vous inspirer&nbsp;😇).</p>
  736. <p><em>Note&nbsp;: vous pouvez réutiliser ces sources d’informations mais elles n’ont pas été validées par une personnes qui serait compétente dans le domaine. #IAmNotALawyer</em></p>
  737. <blockquote>
  738. <p>Une des possibilités offertes à un mécène entreprise consiste à apporter non pas des financements en numéraire mais des moyens (produits ou services) à la cause qu’elle entend soutenir. Il s’agit ici, d’un «&nbsp;mécénat en nature ou de compétence&nbsp;». Les critères d’éligibilité à cette forme de mécénat sont exactement les mêmes que ceux prévus pour une contribution en&nbsp;numéraire.</p>
  739. <p><cite><em><a data-link-domain="culture.gouv.fr" href="https://www.culture.gouv.fr/Thematiques/Mecenat/Entreprises/Le-mecenat-en-nature-ou-en-competence">Source</a></em></cite></p>
  740. </blockquote>
  741. <blockquote>
  742. <p>Le prêt de main d’œuvre&nbsp;: l’entreprise met à disposition d’un organisme éligible au mécénat un ou plusieurs salariés. C’est l’organisme qui pilote la mission et qui peut faire figure d’autorité fonctionnelle dans ce cadre. Le temps et la fréquence du mécénat de compétences peuvent considérablement varier en fonction des besoins&nbsp;: il peut aussi bien s’agir d’une mission courte, même d’une seule demi-journée, que d’une mission plus longue voir d’un plein temps dans la limite de&nbsp;3&nbsp;ans.</p>
  743. <p><cite><em><a data-link-domain="cci.fr" href="https://www.cci.fr/actualites/le-mecenat-de-competences-comment-le-mettre-en-place-et-mobiliser-les-equipes">Source</a></em></cite></p>
  744. </blockquote>
  745. <p>Lorsque les dons sont effectués en nature, il est nécessaire de procéder à leur&nbsp;valorisation&nbsp;:</p>
  746. <ul>
  747. <li>pour le calcul de la réduction d’impôt que déclare&nbsp;l’entreprise&#8239;;</li>
  748. <li>pour la réintégration extra-comptable de la valeur du don par&nbsp;l’entreprise&#8239;;</li>
  749. <li>pour l’établissement du reçu fiscal par l’organisme bénéficiaire du&nbsp;don&#8239;;</li>
  750. <li>pour la détermination des éventuels contreparties remises à l’entreprise par l’organisme bénéficiaire du&nbsp;don.</li>
  751. </ul>
  752. <h2 id="comment-valoriser-un-don-au-titre-dun-mecenat-de-competence">Comment valoriser un don au titre d’un mécénat de compétence&#8239;? <a href="#comment-valoriser-un-don-au-titre-dun-mecenat-de-competence" title="Ancre vers cette partie">#</a></h2>
  753. <blockquote>
  754. <p>Pour chaque salarié mis à disposition, ce don est évalué à son coût de revient, à savoir la somme de sa rémunération et des charges sociales y afférentes dans la limite de trois fois le montant du plafond mentionné à l’article L. 241-3&nbsp;du code de la sécurité sociale (CSS), soit 10&#8239;284&#8239;€ par mois en&nbsp;2022.</p>
  755. <p><cite><em><a data-link-domain="culture.gouv.fr" href="https://www.culture.gouv.fr/Thematiques/Mecenat/Entreprises/Le-mecenat-en-nature-ou-en-competence">Source</a></em></cite></p>
  756. </blockquote>
  757. <p>Ce n’est donc <strong>pas un TJM</strong> mais un <em>coût de revient</em>.</p>
  758. <blockquote>
  759. <p>A la suite de l’adoption de la <a data-link-domain="legifrance.gouv.fr" href="https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000043964778">loi du 24&nbsp;août 2021&nbsp;confortant le respect des principes de la République</a>, l’administration fiscale a rappelé que <mark>la valorisation du don relève de la seule responsabilité de l’entreprise mécène</mark> qu’il s’agisse d’un don sous forme de biens (dons alimentaires notamment), de services ou d’une mise à disposition de personnel. Un <a data-link-domain="culture.gouv.fr" href="https://www.culture.gouv.fr/Media/Medias-creation-rapide/2041-mec-sd_4032.pdf">nouveau modèle de reçu fiscal</a> a été publié le 10&nbsp;juin&nbsp;2022.</p>
  760. </blockquote>
  761. <h2 id="avantages-fiscaux">Avantages fiscaux <a href="#avantages-fiscaux" title="Ancre vers cette partie">#</a></h2>
  762. <blockquote>
  763. <p>Le mécénat de compétences ouvre droit à un avantage fiscal. Concrètement, comme pour toute action de mécénat, le «&nbsp;don&nbsp;» de compétences de l’entreprise ouvrira droit à une réduction d’impôts de 60% du montant du salaire chargé du salarié mis à disposition. Cet avantage est accessible à tous les types d’entreprises, sans montant minimum de&nbsp;don.</p>
  764. <p><cite><em><a data-link-domain="economie.gouv.fr" href="https://www.economie.gouv.fr/files/Guide-pratique-mecenat-competences-novembre2021.pdf">Source</a></em></cite></p>
  765. </blockquote>
  766. <h2 id="modele">Modèle <a href="#modele" title="Ancre vers cette partie">#</a></h2><p>Un modèle de <a data-link-domain="culture.gouv.fr" href="https://www.culture.gouv.fr/Media/Medias-creation-rapide/Modele-de-convention-de-mecenat-d-entreprise.docx">convention de mécénat</a>, <a data-link-domain="associations.gouv.fr" href="https://www.associations.gouv.fr/IMG/pdf/asso_mecenat_2021_v1b.pdf">un autre</a> et <a data-link-domain="occitanie.developpement-durable.gouv.fr" href="https://www.occitanie.developpement-durable.gouv.fr/IMG/pdf/ex_convention_mecenat_competences_cle065a53.pdf">encore un autre</a>.</p>
  767. <p>En synthèse, il&nbsp;faut&nbsp;:</p>
  768. <h3>Les&nbsp;coordonnées</h3>
  769. <p>Entre&nbsp;:</p>
  770. <p>L’entreprise …, statut, dont le siège social est au …,<br />
  771. Représentée par …, fonction,<br />
  772. Ci-après dénommée «&nbsp;le&nbsp;mécène&nbsp;»,</p>
  773. <p>Et</p>
  774. <p>L’association …, sise au …,<br />
  775. Représentée par son Président (&#8239;?), …<br />
  776. Ci-après dénommée&nbsp;«&nbsp;l’association&nbsp;»,</p>
  777. <p>Vu la loi n°2003-79&nbsp;du 1<sup>er</sup> août 2003&nbsp;relative au mécénat, aux associations et aux fondations et notamment les dispositions codifiées à l’article 238&nbsp;bis du code général des&nbsp;impôts.</p>
  778. <h3>(optionnel) Préambule&nbsp;(contexte)</h3>
  779. <ul>
  780. <li>objet du mécénat de l’entreprise, de la&nbsp;fondation…</li>
  781. <li>objet de l’association&nbsp;: présentation de sa mission/vocation générale, et laïus sur le
  782. projet qu’ils portent en commun avec l’entreprise le cas&nbsp;échéant</li>
  783. <li>rencontre de ces deux&nbsp;objets&#8239;?</li>
  784. </ul>
  785. <h3>Ce qui est&nbsp;convenu</h3>
  786. <p>Il est convenu et décidé ce qui&nbsp;suit&nbsp;:</p>
  787. <ul>
  788. <li>La présente convention a pour objet de définir les conditions du soutien à l’association pour le projet suivant&nbsp;: (descriptif de l’action ou de la&nbsp;manifestation)</li>
  789. <li>L’entreprise mécène s’engage à mettre à disposition le personnel suivant&nbsp;: représentant une valeur de … € sur la période de&nbsp;…</li>
  790. </ul>
  791. <blockquote>
  792. <p>Pour valoriser ce mécénat de compétences, l’entreprise s’engage à comptabiliser et à valoriser le temps passé sur la mission sus nommée, soit le nombre d’heures passées x salaire horaire chargé (son commissaire aux comptes devra valider ce montant de salaire&nbsp;chargé).</p>
  793. <p>L’association pourra ainsi remettre à l’entreprise un reçu fiscal précisant le nombre d’heures et le coût équivalent donné à&nbsp;l’association.</p>
  794. <p>Conformément à l’article 238bis du code général des impôts, ce don en temps donnera droit à une réduction d’impôt égale à 60&#8239;% du montant des sommes versées dans la limite de 0,5% du C.A. HT.</p>
  795. </blockquote>
  796. <h3>Conditions</h3>
  797. <ul>
  798. <li>(optionnel / à adapter) L’association s’engage à faire figurer le nom de l’entreprise donatrice sur les supports d’information de l’action ou de la&nbsp;manifestation.</li>
  799. <li>La présente convention est établie en vertu des dispositions de l’article 238&nbsp;bis du&nbsp;CGI</li>
  800. <li>La présente convention prendra effet à sa date de signature et prendra fin le&nbsp;….</li>
  801. </ul>
  802. <p>Dans le cas où l’une des parties ne respecterait pas ses obligations contractuelles, cette convention serait résiliée de plein droit. En cas de litige, les parties conviennent d’une conciliation à&nbsp;l’amiable.</p>
  803. <h3>Signatures</h3>
  804. <p>Date, lieu et signatures&nbsp;:<br />
  805. A … le …<br />
  806. Représentant de l’entreprise / Représentant de&nbsp;l’association</p>
  807. <nav>
  808. <p>
  809. <a href="/david/2024/commun/"
  810. title="Liste de tous les articles 2024 associés à cette étiquette"
  811. rel="tag">#commun</a>
  812. <a href="/david/2024/documentation/"
  813. title="Liste de tous les articles 2024 associés à cette étiquette"
  814. rel="tag">#documentation</a>
  815. <a href="/david/2024/partage/"
  816. title="Liste de tous les articles 2024 associés à cette étiquette"
  817. rel="tag">#partage</a>
  818. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  819. </p>
  820. </nav>
  821. <h2>
  822. <a href="/david/2024/01/26/" title="Lien permanent vers cet article">Cargo</a> <time datetime="2024-01-26">26 janvier 2024</time>
  823. </h2>
  824. <blockquote lang="en">
  825. <p>I think the actual harm of signing git commits is to perpetuate an engineering culture of unquestioningly cargo-culting sophisticated and complex tools like cryptographic signatures into new contexts where they have no&nbsp;use.</p>
  826. <p>Just from a baseline utilitarian philosophical perspective, for a given action A, all else being equal, it’s always better not to do A, because taking an action always has some non-zero opportunity cost even if it is just the time taken to do it. Epsilon cost and zero benefit is still a net harm. This is even more true in the context of a complex system. Any action taken in response to a rule in a system is going to interact with all the other rules in that system. You have to pay complexity-rent on every new rule. <mark>So an apparently-useless embellishment like signing commits can have potentially far-reaching consequences in the&nbsp;future.</mark></p>
  827. <p><cite><em><a data-link-domain="blog.glyph.im" href="https://blog.glyph.im/2024/01/unsigned-commits.html" hreflang="en"
  828. title="Consultation de l’article (anglais)">Unsigned Commits</a>
  829. <a href="/david/cache/2024/ce5fdc61fd66cdb9ce548fb543eba986/" hreflang="en"
  830. data-tippy data-description="Deciphering Glyph, the blog of Glyph Lefkowitz."
  831. data-source="https://blog.glyph.im/2024/01/unsigned-commits.html"
  832. data-date="2024-01-25"
  833. data-favicon="https://blog.glyph.im/images/favicon.ico"
  834. data-domain="blog.glyph.im"
  835. ><svg xmlns="http://www.w3.org/2000/svg"
  836. width="24" height="24" viewBox="0 0 24 24" fill="none"
  837. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  838. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  839. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  840. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  841. </svg>
  842. <span class="sr-only">[archive]</span></a></em></cite></p>
  843. </blockquote>
  844. <p>J’avoue avoir sauté sur l’occasion lorsque j’en ai eu la possibilité avec <a data-link-domain="git-tower.com" href="https://www.git-tower.com/help/guides/integration/gpg/mac">mon client git</a> pour avoir le badge vert sur Microsoft GitHub et Gitlab sans trop me poser de questions. C’était peut-être une erreur et je vais faire mûrir ma réflexion maintenant qu’on m’a mis le nez&nbsp;dedans.</p>
  845. <p>Entre <em>refus de parvenir</em> et auto-défense&nbsp;numérique.</p>
  846. <a href="#hr-50" title="Lien vers cette section de la page"><hr id="hr-50" /></a>
  847. <blockquote>
  848. <p>Cette lutte ne créera pas un mouvement de masse…<br />
  849. Mais elle est un ingrédient, parmi de nombreuses autres luttes territoriales, qui toutes façonnent ces mêmes possibilités affectives…<br />
  850. Se sentir coïncider non pas avec soi-même mais avec un milieu de vie…<br />
  851. Se sentir maillé à un vaste collectif d’humains et de non-humains…<br />
  852. Des affects, qui constituent la nécessaire force motrice du mouvement que nous espérons voir&nbsp;croître.</p>
  853. <p><cite><em><a data-link-domain="puntish.blogspot.com" href="http://puntish.blogspot.com/2024/01/defendre-le-glacier-de-la-grave.html">Défendre le glacier de La&nbsp;Grave</a></em></cite></p>
  854. </blockquote>
  855. <p>La justesse d’Alessandro Pignocchi et les couleurs de ses&nbsp;aquarelles&nbsp;💚.</p>
  856. <a href="#hr-51" title="Lien vers cette section de la page"><hr id="hr-51" /></a>
  857. <blockquote lang="en">
  858. <p>Every time I have told someone “I want to replace PDF“, the statement has been met with extreme skepticism. Hopefully this document has convinced you that <mark>HTML-via-EPUB could potentially be a viable</mark> and desirable document format for the&nbsp;future.</p>
  859. <p><cite><em><a data-link-domain="willcrichton.net" href="https://willcrichton.net/notes/portable-epubs/" hreflang="en"
  860. title="Consultation de l’article (anglais)">Portable EPUBs</a>
  861. <a href="/david/cache/2024/ffaf50bf5d5e4cf870a618b518ee5ba7/" hreflang="en"
  862. data-tippy data-description="A proposal for the next generation of portable documents."
  863. data-source="https://willcrichton.net/notes/portable-epubs/"
  864. data-date="2024-01-25"
  865. data-favicon=""
  866. data-domain="willcrichton.net"
  867. ><svg xmlns="http://www.w3.org/2000/svg"
  868. width="24" height="24" viewBox="0 0 24 24" fill="none"
  869. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  870. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  871. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  872. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  873. </svg>
  874. <span class="sr-only">[archive]</span></a></em></cite></p>
  875. </blockquote>
  876. <p>Superbe initiative qui rappelle cruellement ce <a data-link-domain="xkcd.com" href="https://xkcd.com/927/">célèbre XKCD</a> mais qui m’est franchement bien plus utilisable qu’un PDF, quel que soit le lecteur… à part pour en récupérer la source avec mon extracteur maison. Cela me fait découvrir <a data-link-domain="nota-lang.org" href="https://nota-lang.org/">Nota</a> au&nbsp;passage.</p>
  877. <p>Un simple individu peut-il faire bouger des choses dans le&nbsp;domaine&#8239;?</p>
  878. <a href="#hr-52" title="Lien vers cette section de la page"><hr id="hr-52" /></a>
  879. <blockquote>
  880. <p>Les sites et outils numériques que je&nbsp;propose</p>
  881. <p><cite><em><a data-link-domain="eyssette.github.io" href="https://eyssette.github.io/">Cédric&nbsp;Eyssette</a></em></cite></p>
  882. </blockquote>
  883. <p>Beaucoup de belles et frugales choses (autour de markdown) à explorer sur cet&nbsp;espace.</p>
  884. <nav>
  885. <p>
  886. <a href="/david/2024/gratitude/"
  887. title="Liste de tous les articles 2024 associés à cette étiquette"
  888. rel="tag">#gratitude</a>
  889. <a href="/david/2024/partage/"
  890. title="Liste de tous les articles 2024 associés à cette étiquette"
  891. rel="tag">#partage</a>
  892. <a href="/david/2024/psychologie/"
  893. title="Liste de tous les articles 2024 associés à cette étiquette"
  894. rel="tag">#psychologie</a>
  895. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  896. </p>
  897. </nav>
  898. <form action="/david/recherche/" method="get">
  899. <fieldset>
  900. <legend>Recherche</legend>
  901. <label for="input-search">Termes de votre recherche :</label>
  902. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  903. <input type="submit" value="Chercher">
  904. <p id="indexation-infos">
  905. <small>
  906. Seuls les contenus de ces 8 dernières années sont indexés.
  907. </small>
  908. </p>
  909. </fieldset>
  910. </form>
  911. <aside>
  912. <theme-toggle></theme-toggle>
  913. </aside>
  914. </article>
  915. <hr>
  916. <footer>
  917. <p>
  918. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  919. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  920. <a href="http://larlet.com"
  921. title="Go to my English profile"
  922. data-instant>Pro</a>
  923. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  924. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  925. </p>
  926. <template id="theme-selector">
  927. <form>
  928. <style type="text/css">
  929. fieldset div {
  930. text-align: center;
  931. }
  932. </style>
  933. <fieldset>
  934. <legend>Thème</legend>
  935. <div>
  936. <label>
  937. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  938. Auto
  939. </label>
  940. <label>
  941. <input type="radio" value="dark" name="chosen-color-scheme">
  942. Foncé
  943. </label>
  944. <label>
  945. <input type="radio" value="light" name="chosen-color-scheme">
  946. Clair
  947. </label>
  948. </div>
  949. </fieldset>
  950. </form>
  951. </template>
  952. </footer>
  953. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  954. <script>
  955. class ThemeToggle extends HTMLElement {
  956. constructor() {
  957. super()
  958. const themeSelectorTemplate = document.querySelector('#theme-selector')
  959. const form = themeSelectorTemplate.content.firstElementChild
  960. this.attachShadow({ mode: 'open' })
  961. this.shadowRoot.appendChild(form.cloneNode(true))
  962. }
  963. connectedCallback() {
  964. const form = this.shadowRoot.querySelector('form')
  965. form.addEventListener('change', (e) => {
  966. const chosenColorScheme = e.target.value
  967. localStorage.setItem('theme', chosenColorScheme)
  968. toggleTheme(chosenColorScheme)
  969. })
  970. const selectedTheme = localStorage.getItem('theme')
  971. if (selectedTheme && selectedTheme !== 'undefined') {
  972. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  973. }
  974. }
  975. }
  976. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  977. window.addEventListener('load', () => {
  978. let colorsLayer = undefined
  979. let hasDarkRules = false
  980. for (const styleSheet of Array.from(document.styleSheets)) {
  981. let mediaRules = []
  982. for (const layerRule of styleSheet.cssRules) {
  983. if (!(layerRule instanceof CSSLayerBlockRule)) {
  984. continue
  985. }
  986. if (layerRule.name === 'colors') {
  987. colorsLayer = layerRule
  988. }
  989. for (const cssRule of layerRule.cssRules) {
  990. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  991. continue
  992. }
  993. // WARNING: Safari does not have/supports `conditionText`.
  994. if (cssRule.conditionText) {
  995. if (cssRule.conditionText !== prefersColorSchemeDark) {
  996. continue
  997. }
  998. } else {
  999. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  1000. continue
  1001. }
  1002. }
  1003. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  1004. }
  1005. }
  1006. // WARNING: do not try to insert a Rule to a styleSheet you are
  1007. // currently iterating on, otherwise the browser will be stuck
  1008. // in a infinite loop…
  1009. for (const mediaRule of mediaRules) {
  1010. // Safari requires the `0` second parameter (even if default).
  1011. colorsLayer.insertRule(mediaRule.cssText, 0)
  1012. hasDarkRules = true
  1013. }
  1014. }
  1015. if (hasDarkRules) {
  1016. if ('customElements' in window && !customElements.get('theme-toggle')) {
  1017. customElements.define('theme-toggle', ThemeToggle)
  1018. }
  1019. }
  1020. })
  1021. </script>
  1022. </body>
  1023. </html>