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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805
  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>
  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,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Dettes — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <!-- Canonical URL for SEO purposes -->
  28. <link rel="canonical" href="https://larlet.fr/david/stream/2019/10/29/">
  29. <style>
  30. /* http://meyerweb.com/eric/tools/css/reset/ */
  31. html, body, div, span,
  32. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  33. a, abbr, address, big, cite, code,
  34. del, dfn, em, img, ins,
  35. small, strike, strong, tt, var,
  36. dl, dt, dd, ol, ul, li,
  37. fieldset, form, label, legend,
  38. table, caption, tbody, tfoot, thead, tr, th, td,
  39. article, aside, canvas, details, embed,
  40. figure, figcaption, footer, header, hgroup,
  41. menu, nav, output, ruby, section, summary,
  42. time, mark, audio, video {
  43. margin: 0;
  44. padding: 0;
  45. border: 0;
  46. font-size: 100%;
  47. font: inherit;
  48. vertical-align: baseline;
  49. }
  50. /* HTML5 display-role reset for older browsers */
  51. article, aside, details, figcaption, figure,
  52. footer, header, hgroup, menu, nav, section { display: block; }
  53. body { line-height: 1; }
  54. blockquote, q { quotes: none; }
  55. blockquote:before, blockquote:after,
  56. q:before, q:after {
  57. content: '';
  58. content: none;
  59. }
  60. table {
  61. border-collapse: collapse;
  62. border-spacing: 0;
  63. }
  64. /* http://practicaltypography.com/equity.html */
  65. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  66. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  67. @font-face {
  68. font-family: 'EquityTextB';
  69. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  70. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  71. font-weight: 300;
  72. font-style: normal;
  73. font-display: swap;
  74. }
  75. @font-face {
  76. font-family: 'EquityTextB';
  77. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  78. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  79. font-weight: 300;
  80. font-style: italic;
  81. font-display: swap;
  82. }
  83. @font-face {
  84. font-family: 'EquityTextB';
  85. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  86. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  87. font-weight: 700;
  88. font-style: normal;
  89. font-display: swap;
  90. }
  91. @font-face {
  92. font-family: 'ConcourseT3';
  93. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  94. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  95. font-weight: 300;
  96. font-style: normal;
  97. font-display: swap;
  98. }
  99. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  100. body {
  101. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  102. font-family: "EquityTextB", Palatino, serif;
  103. background-color: #f0f0ea;
  104. color: #07486c;
  105. font-kerning: normal;
  106. -moz-osx-font-smoothing: grayscale;
  107. -webkit-font-smoothing: subpixel-antialiased;
  108. text-rendering: optimizeLegibility;
  109. font-variant-ligatures: common-ligatures contextual;
  110. font-feature-settings: "kern", "liga", "clig", "calt";
  111. }
  112. pre, code, kbd, samp, var, tt {
  113. font-family: 'TriplicateT4c', monospace;
  114. }
  115. em {
  116. font-style: italic;
  117. color: #323a45;
  118. }
  119. strong {
  120. font-weight: bold;
  121. color: black;
  122. }
  123. nav {
  124. background-color: #323a45;
  125. color: #f0f0ea;
  126. display: flex;
  127. justify-content: space-around;
  128. padding: 1rem .5rem;
  129. }
  130. nav:last-child {
  131. border-bottom: 1vh solid #2d7474;
  132. }
  133. nav a {
  134. color: #f0f0ea;
  135. }
  136. nav abbr {
  137. border-bottom: 1px dotted white;
  138. }
  139. h1 {
  140. border-top: 1vh solid #2d7474;
  141. border-bottom: .2vh dotted #2d7474;
  142. background-color: #e3e1e1;
  143. color: #323a45;
  144. text-align: center;
  145. padding: 5rem 0 4rem 0;
  146. width: 100%;
  147. font-family: 'ConcourseT3';
  148. display: flex;
  149. flex-direction: column;
  150. }
  151. h1.single {
  152. padding-bottom: 10rem;
  153. }
  154. h1 span {
  155. position: absolute;
  156. top: 1vh;
  157. left: 20%;
  158. line-height: 0;
  159. }
  160. h1 span a {
  161. line-height: 1.7;
  162. padding: 1rem 1.2rem .6rem 1.2rem;
  163. border-radius: 0 0 6% 6%;
  164. background: #2d7474;
  165. font-size: 1.3rem;
  166. color: white;
  167. text-decoration: none;
  168. }
  169. h2 {
  170. margin: 4rem 0 1rem;
  171. border-top: .2vh solid #2d7474;
  172. padding-top: 1vh;
  173. }
  174. h3 {
  175. text-align: center;
  176. margin: 3rem 0 .75em;
  177. }
  178. hr {
  179. height: .4rem;
  180. width: .4rem;
  181. border-radius: .4rem;
  182. background: #07486c;
  183. margin: 2.5rem auto;
  184. }
  185. time {
  186. display: bloc;
  187. margin-left: 0 !important;
  188. }
  189. ul, ol {
  190. margin: 2rem;
  191. }
  192. ul {
  193. list-style-type: square;
  194. }
  195. a {
  196. text-decoration-skip-ink: auto;
  197. text-decoration-thickness: 0.05em;
  198. text-underline-offset: 0.09em;
  199. }
  200. article {
  201. max-width: 50rem;
  202. display: flex;
  203. flex-direction: column;
  204. margin: 2rem auto;
  205. }
  206. article.single {
  207. border-top: .2vh dotted #2d7474;
  208. margin: -6rem auto 1rem auto;
  209. background: #f0f0ea;
  210. padding: 2rem;
  211. }
  212. article p:last-child {
  213. margin-bottom: 1rem;
  214. }
  215. p {
  216. padding: 0 .5rem;
  217. margin-left: 3rem;
  218. }
  219. p + p,
  220. figure + p {
  221. margin-top: 2rem;
  222. }
  223. blockquote {
  224. background-color: #e3e1e1;
  225. border-left: .5vw solid #2d7474;
  226. display: flex;
  227. flex-direction: column;
  228. align-items: center;
  229. padding: 1rem;
  230. margin: 1.5rem;
  231. }
  232. blockquote cite {
  233. font-style: italic;
  234. }
  235. blockquote p {
  236. margin-left: 0;
  237. }
  238. figure {
  239. border-top: .2vh solid #2d7474;
  240. background-color: #e3e1e1;
  241. text-align: center;
  242. padding: 1.5rem 0;
  243. margin: 1rem 0 0;
  244. font-size: 1.5rem;
  245. width: 100%;
  246. }
  247. figure img {
  248. max-width: 250px;
  249. max-height: 250px;
  250. border: .5vw solid #323a45;
  251. padding: 1px;
  252. }
  253. figcaption {
  254. padding: 1rem;
  255. line-height: 1.4;
  256. }
  257. aside {
  258. display: flex;
  259. flex-direction: column;
  260. background-color: #e3e1e1;
  261. padding: 1rem 0;
  262. border-bottom: .2vh solid #07486c;
  263. }
  264. aside p {
  265. max-width: 50rem;
  266. margin: 0 auto;
  267. }
  268. /* https://fvsch.com/code/css-locks/ */
  269. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  270. font-size: 1rem;
  271. line-height: calc( 1.5em + 0.2 * 1rem );
  272. }
  273. h1 {
  274. font-size: 1.9rem;
  275. line-height: calc( 1.2em + 0.2 * 1rem );
  276. }
  277. h2 {
  278. font-size: 1.6rem;
  279. line-height: calc( 1.3em + 0.2 * 1rem );
  280. }
  281. h3 {
  282. font-size: 1.35rem;
  283. line-height: calc( 1.4em + 0.2 * 1rem );
  284. }
  285. @media (min-width: 20em) {
  286. /* The (100vw - 20rem) / (50 - 20) part
  287. resolves to 0-1rem, depending on the
  288. viewport width (between 20em and 50em). */
  289. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  290. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  291. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  292. margin-left: 0;
  293. }
  294. h1 {
  295. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  296. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  297. }
  298. h2 {
  299. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  300. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  301. }
  302. h3 {
  303. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  304. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  305. }
  306. }
  307. @media (min-width: 50em) {
  308. /* The right part of the addition *must* be a
  309. rem value. In this example we *could* change
  310. the whole declaration to font-size:2.5rem,
  311. but if our baseline value was not expressed
  312. in rem we would have to use calc. */
  313. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  314. font-size: calc( 1rem + .6 * 1rem );
  315. line-height: 1.5em;
  316. }
  317. p, li, pre, details {
  318. margin-left: 3rem;
  319. }
  320. h1 {
  321. font-size: calc( 1.9rem + 1.5 * 1rem );
  322. line-height: 1.2em;
  323. }
  324. h2 {
  325. font-size: calc( 1.5rem + 1.5 * 1rem );
  326. line-height: 1.3em;
  327. }
  328. h3 {
  329. font-size: calc( 1.35rem + 1.5 * 1rem );
  330. line-height: 1.4em;
  331. }
  332. figure img {
  333. max-width: 500px;
  334. max-height: 500px;
  335. }
  336. }
  337. figure.unsquared {
  338. margin-bottom: 1.5rem;
  339. }
  340. figure.unsquared img {
  341. height: inherit;
  342. }
  343. @media print {
  344. body { font-size: 100%; }
  345. a:after { content: " (" attr(href) ")"; }
  346. a, a:link, a:visited, a:after {
  347. text-decoration: underline;
  348. text-shadow: none !important;
  349. background-image: none !important;
  350. background: white;
  351. color: black;
  352. }
  353. abbr[title] { border-bottom: 0; }
  354. abbr[title]:after { content: " (" attr(title) ")"; }
  355. img { page-break-inside: avoid; }
  356. @page { margin: 2cm .5cm; }
  357. h1, h2, h3 { page-break-after: avoid; }
  358. p3 { orphans: 3; widows: 3; }
  359. img {
  360. max-width: 250px !important;
  361. max-height: 250px !important;
  362. }
  363. nav, aside { display: none; }
  364. }
  365. ul.with_columns {
  366. column-count: 1;
  367. }
  368. @media (min-width: 20em) {
  369. ul.with_columns {
  370. column-count: 2;
  371. }
  372. }
  373. @media (min-width: 50em) {
  374. ul.with_columns {
  375. column-count: 3;
  376. }
  377. }
  378. ul.with_two_columns {
  379. column-count: 1;
  380. }
  381. @media (min-width: 20em) {
  382. ul.with_two_columns {
  383. column-count: 1;
  384. }
  385. }
  386. @media (min-width: 50em) {
  387. ul.with_two_columns {
  388. column-count: 2;
  389. }
  390. }
  391. .gallery {
  392. display: flex;
  393. flex-wrap: wrap;
  394. justify-content: space-around;
  395. }
  396. .gallery figure img {
  397. margin-left: 1rem;
  398. margin-right: 1rem;
  399. }
  400. .gallery figure figcaption {
  401. font-family: 'ConcourseT3'
  402. }
  403. footer {
  404. font-family: 'ConcourseT3';
  405. display: flex;
  406. flex-direction: column;
  407. border-top: 3px solid white;
  408. padding: 4rem 0;
  409. background-color: #07486c;
  410. color: white;
  411. }
  412. footer > * {
  413. max-width: 50rem;
  414. margin: 0 auto;
  415. }
  416. footer a {
  417. color: #f1c40f;
  418. }
  419. footer .avatar {
  420. width: 200px;
  421. height: 200px;
  422. border-radius: 50%;
  423. float: left;
  424. -webkit-shape-outside: circle();
  425. shape-outside: circle();
  426. margin-right: 2rem;
  427. padding: 2px 5px 5px 2px;
  428. background: white;
  429. border-left: 1px solid #f1c40f;
  430. border-top: 1px solid #f1c40f;
  431. border-right: 5px solid #f1c40f;
  432. border-bottom: 5px solid #f1c40f;
  433. }
  434. </style>
  435. <h1 class="single">
  436. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  437. Dettes
  438. <time>Publié le 29 octobre</time>
  439. </h1>
  440. <article class="single">
  441. <p><em>Une semaine de repos tout relatif. Un bon moment pour prendre du recul et construire des projets enthousiasmants. Je suis presque impatient de l’arrivée de la neige !</em></p>
  442. <hr />
  443. <blockquote>
  444. <p>None of our old infrastructure was built with planetary management in mind, and very little is even now. What we’re dealing with is hundreds of years of something that software world calls technical debt. Technical debt is the shortcuts and trade-offs engineers use to get something done either cheaper or in less time, which inevitably creates the need to fix systems later, often at great cost or difficulty.</p>
  445. <p>Some technical debt is understood up front, some comes from builders being ignorant of the system they are working in. Most of our planet’s infrastructure is mired in huge amounts of technical debt, most of which we didn’t know we were signing up for at the time, some of which we’re just incurring recklessly as we go along, unable to face the scale of the problem and pushing it off on the next generation.</p>
  446. <p><cite><em><a href="https://www.emptywheel.net/2019/10/18/a-world-we-built-to-burn/">A World We Built to Burn</a></em> (<a href="/david/cache/e416dd2c76330823b6670113638fbb4e/">cache</a>)</cite></p>
  447. </blockquote>
  448. <p>La <a href="http://chadfowler.com/2006/12/27/the-big-rewrite.html">grosse réécriture</a> (<a href="/david/cache/e1911ccf82335e72f78e6e6328c01cf3/">cache</a>) c’est d’aller coloniser une autre planète. Ce qu’il ne faut <a href="https://signalvnoise.com/posts/3856-the-big-rewrite-revisited">presque</a> (<a href="/david/cache/aba249544f94d53e86639377152f142d/">cache</a>) <a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/">jamais faire</a> (<a href="/david/cache/5e39102b63fc01f6b189dec941178776/">cache</a>).</p>
  449. <p><em>Ne laissez pas des techniciens aux manettes.</em></p>
  450. <hr />
  451. <blockquote>
  452. <p>This approach to discovery—answers first, explanations later—accrues what I call intellectual debt. It’s possible to discover what works without knowing why it works, and then to put that insight to use immediately, assuming that the underlying mechanism will be figured out later. In some cases, we pay off this intellectual debt quickly. But, in others, we let it compound, relying, for decades, on knowledge that’s not fully known.</p>
  453. <p>[…]</p>
  454. <p>Building and maintaining a society-wide intellectual-debt balance sheet would probably require refining our approach to trade secrets and other intellectual property. In cities, building codes ask building owners to publicly disclose their renovation plans. Similarly, we might explore asking libraries or universities to accept, in escrow, otherwise hidden data sets and algorithms that have found a certain measure of public use. That would allow researchers to begin probing the models and underlying data on which we’re coming to depend, and—by building theories—make payments on our intellectual debt before it becomes due in the form of errors and vulnerabilities.</p>
  455. <p><cite><em><a href="https://www.newyorker.com/tech/annals-of-technology/the-hidden-costs-of-automated-thinking">The Hidden Costs of Automated Thinking</a></em> (<a href="/david/cache/f98974457e4d16ef6940e03b1e6ee58b/">cache</a>)</cite></p>
  456. </blockquote>
  457. <p>Le biais introduit n’est pas nouveau, il prend une nouvelle importance en raison de l’échelle à laquelle il s’applique et des conséquences que l’on veut bien accepter en tant que société/humanité. Le risque est dans notre incapacité à pouvoir mettre en défaut une machine qui aurait appris sur des données incomplètes/erronées/biaisées.</p>
  458. <hr />
  459. <blockquote>
  460. <p>Les individualités ressortent, les personnes viennent nous parler de leurs parcours, de leurs doutes et de leurs espoirs, de la dissonance cognitive qu’elles ressentent au quotidien, sans trop savoir vers où se tourner, quelles actions mettre en œuvre. Elles nous parlent des changements qu’elles ont mis en place, même quand elles travaillent dans des domaines a priori très durs à faire bouger. Elles relatent leurs cheminements intimes de reconnexion à ce qui se passe autour d’elles, à la "nature" et à ce qui a plus de sens.</p>
  461. <p>Avec le temps et le recul, j’ai l’impression que c’est de cette dissonance et de l’incapacité des êtres à vivre avec elle trop longtemps que va émerger la force du changement. Comme le burnout est le symptôme positif qui montre la maladie de la société et du travail, la dissonance et la vitalité individuelle aideraient les personnes à refuser l’injustice de la situation. </p>
  462. <p><cite><em><a href="https://mcgodwin.com/articles/faire-atterrir-le-design">Faire atterrir le design</a></em> (<a href="/david/cache/3a000c75f747820cc701b42dd657ef61/">cache</a>)</cite></p>
  463. </blockquote>
  464. <p>On discutait hier de la conquête spatiale vs. le « problème » de la faim de dans le monde. Aucun programme politique ne propose de changer cela, l’injustice de la répartition de la richesse étant à prise de conscience variable en fonction de la distance. </p>
  465. <p><em>Chacun·e essayant de vivre avec ses propres dissonances.</em></p>
  466. <hr />
  467. <blockquote>
  468. <p>Je rends visite aux vieilles personnes, aux aînés. On parle du temps, on rigole un peu, on se transmet des nouvelles, puis ils racontent comment étaient les choses jadis. Ils nous racontent une légende. C’est une longue conversation décousue. Mais les choses qui reviennent encore et encore dans la conversation sont importantes et on sait qu’elles sont importantes. Ils ne nous disent pas qu’il faut faire ceci ou cela. Ils nous racontent une histoire. On rentre à la maison et on y repense, et on sait qu’ils nous ont dit une vérité.</p>
  469. <p><cite><em>Blake Debassige, cité dans Mary E. Southcott, Anashnaabe of Manitoulin Island</em>, au musée canadien de l’histoire</cite></p>
  470. </blockquote>
  471. <p>Comment interpréter ces légendes et/ou histoires lorsqu’elles racontent un endettement ? Quelle confiance avoir dans une expérience qui nous a mené à une impasse ? Comment éviter de reproduire ces récits pour en inventer de nouveaux ?</p>
  472. <blockquote>
  473. <p>Our memory is our coherence, our reason, our feeling, even our action. Without it, we are nothing.</p>
  474. <p><cite><em>Louis Bunuel quoted in <a href="https://thefrailestthing.com/2019/06/20/time-self-and-remembering-online/">Time, Self, and Remembering Online</a></em> (<a href="/david/cache/ce407f71e4157776d5171885f8f2b57c/">cache</a>)</cite></p>
  475. </blockquote>
  476. <hr />
  477. <p>J’écrivais récemment :</p>
  478. <blockquote>
  479. <p>Et en même temps si notre échange d’il y a 12 ans avait été chiffré, il y a peu de chances que j’en ai eu encore les clés pour le retrouver…</p>
  480. </blockquote>
  481. <p>C’est la seconde fois que je suis coincé par <a href="https://gpgtools.org/">GPGTools</a> pour pouvoir répondre à des courriels chiffrés suite à une <a href="/david/stream/2019/10/08/">mise à jour de macOS</a>. La complexité technique introduit une dépendance à l’outil. Une forme de dette pour l’archiviste que j’aspire parfois à être.</p>
  482. </article>
  483. <nav id="jumpto">
  484. <p>
  485. <a rel=prev href="/david/stream/2019/10/22/">← Privilèges</a> | <a href="/david/stream/2019/" title="Retour à la liste complète">↑ Liste complète</a> | <a rel=next href="/david/stream/2019/11/05/">Positif →</a>
  486. </p>
  487. </nav>
  488. <footer>
  489. <div>
  490. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  491. <p>
  492. Bonjour/Hi!
  493. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  494. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  495. </p>
  496. <p>
  497. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  498. </p>
  499. <p>
  500. Les dernières publications hebdomadaires sont :
  501. </p>
  502. <ul class="with_columns">
  503. <li>
  504. <a href="/david/stream/2019/12/27/">Intemporels</a>
  505. </li>
  506. <li>
  507. <a href="/david/stream/2019/12/24/">Outils</a>
  508. </li>
  509. <li>
  510. <a href="/david/stream/2019/12/17/">Origines</a>
  511. </li>
  512. <li>
  513. <a href="/david/stream/2019/12/10/">Publier</a>
  514. </li>
  515. <li>
  516. <a href="/david/stream/2019/12/03/">En forêt</a>
  517. </li>
  518. <li>
  519. <a href="/david/stream/2019/11/26/">Ecocentric</a>
  520. </li>
  521. <li>
  522. <a href="/david/stream/2019/11/19/">Se livrer</a>
  523. </li>
  524. <li>
  525. <a href="/david/stream/2019/11/12/">Dépendances</a>
  526. </li>
  527. <li>
  528. <a href="/david/stream/2019/11/05/">Positif</a>
  529. </li>
  530. <li>
  531. <a href="/david/stream/2019/10/29/">Dettes</a>
  532. </li>
  533. <li>
  534. <a href="/david/stream/2019/10/22/">Privilèges</a>
  535. </li>
  536. <li>
  537. <a href="/david/stream/2019/10/15/">Discrétion</a>
  538. </li>
  539. <li>
  540. <a href="/david/stream/2019/10/08/">Désespérance</a>
  541. </li>
  542. <li>
  543. <a href="/david/stream/2019/10/01/">Présent</a>
  544. </li>
  545. <li>
  546. <a href="/david/stream/2019/09/24/">Manifester</a>
  547. </li>
  548. <li>
  549. <a href="/david/stream/2019/09/17/">Arpenter</a>
  550. </li>
  551. <li>
  552. <a href="/david/stream/2019/09/10/">Nostalgie</a>
  553. </li>
  554. <li>
  555. <a href="/david/stream/2019/09/03/">Déconstruire</a>
  556. </li>
  557. <li>
  558. <a href="/david/stream/2019/08/27/">Documenter</a>
  559. </li>
  560. <li>
  561. <a href="/david/stream/2019/08/20/">Frustration</a>
  562. </li>
  563. <li>
  564. <a href="/david/stream/2019/08/13/">Holisme</a>
  565. </li>
  566. <li>
  567. <a href="/david/stream/2019/08/06/">1%</a>
  568. </li>
  569. <li>
  570. <a href="/david/stream/2019/07/30/">Exemplarité</a>
  571. </li>
  572. <li>
  573. <a href="/david/stream/2019/07/23/">Timelines</a>
  574. </li>
  575. <li>
  576. <a href="/david/stream/2019/07/16/">Écoute</a>
  577. </li>
  578. <li>
  579. <a href="/david/stream/2019/07/02/">Anxiété</a>
  580. </li>
  581. <li>
  582. <a href="/david/stream/2019/06/21/">À lier</a>
  583. </li>
  584. <li>
  585. <a href="/david/stream/2019/06/14/">Pauvreté</a>
  586. </li>
  587. <li>
  588. <a href="/david/stream/2019/06/07/">Amateur</a>
  589. </li>
  590. <li>
  591. <a href="/david/stream/2019/05/31/">Pollution</a>
  592. </li>
  593. <li>
  594. <a href="/david/stream/2019/05/24/">Apaisement</a>
  595. </li>
  596. <li>
  597. <a href="/david/stream/2019/05/10/">Folie</a>
  598. </li>
  599. <li>
  600. <a href="/david/stream/2019/05/03/">Sympathie</a>
  601. </li>
  602. <li>
  603. <a href="/david/stream/2019/04/12/">Péremption</a>
  604. </li>
  605. <li>
  606. <a href="/david/stream/2019/04/05/">Définitions</a>
  607. </li>
  608. <li>
  609. <a href="/david/stream/2019/03/29/">Acceptation</a>
  610. </li>
  611. <li>
  612. <a href="/david/stream/2019/03/22/">Dissonance</a>
  613. </li>
  614. <li>
  615. <a href="/david/stream/2019/03/15/">Reconnaissance</a>
  616. </li>
  617. <li>
  618. <a href="/david/stream/2019/03/08/">Lecture</a>
  619. </li>
  620. <li>
  621. <a href="/david/stream/2019/03/01/">Journaux</a>
  622. </li>
  623. <li>
  624. <a href="/david/stream/2019/02/22/">Écriture</a>
  625. </li>
  626. <li>
  627. <a href="/david/stream/2019/02/15/">Kyriarchie</a>
  628. </li>
  629. <li>
  630. <a href="/david/stream/2019/02/08/">Mots-serrures</a>
  631. </li>
  632. <li>
  633. <a href="/david/stream/2019/02/01/">Sans voie</a>
  634. </li>
  635. <li>
  636. <a href="/david/stream/2019/01/25/">Auto-diagnostic</a>
  637. </li>
  638. <li>
  639. <a href="/david/stream/2019/01/18/">Agilité</a>
  640. </li>
  641. <li>
  642. <a href="/david/stream/2019/01/11/">Métaphores</a>
  643. </li>
  644. <li>
  645. <a href="/david/stream/2019/01/04/">Balbutiements</a>
  646. </li>
  647. </ul>
  648. <p>
  649. Voici quelques articles choisis :
  650. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  651. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  652. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  653. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  654. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  655. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  656. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  657. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  658. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  659. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  660. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  661. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  662. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  663. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  664. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  665. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  666. </p>
  667. <p>
  668. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  669. </p>
  670. <p>
  671. Je ne traque pas ta navigation mais mon
  672. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  673. conserve des logs d’accès.
  674. </p>
  675. </div>
  676. </footer>
  677. <script type="text/javascript">
  678. ;(_ => {
  679. const jumper = document.getElementById('jumper')
  680. jumper.addEventListener('click', e => {
  681. e.preventDefault()
  682. const anchor = e.target.getAttribute('href')
  683. const targetEl = document.getElementById(anchor.substring(1))
  684. targetEl.scrollIntoView({behavior: 'smooth'})
  685. })
  686. })()
  687. </script>
  688. <script>
  689. /* Service workers */
  690. if (navigator.serviceWorker) {
  691. window.addEventListener('load', function () {
  692. var selector = 'a[href^="/david/cache/"], a[rel=prev], a[rel=next]'
  693. function sendLinks (selector) {
  694. var links = [].slice.call(document.querySelectorAll(selector)).map(function (link) {
  695. return link.getAttribute('href')
  696. })
  697. links.push(location.pathname) // Put the current page in cache too.
  698. navigator.serviceWorker.controller.postMessage({ links: links })
  699. }
  700. navigator.serviceWorker.getRegistration()
  701. .then(function (registration) {
  702. if (!registration || !navigator.serviceWorker.controller) {
  703. return navigator.serviceWorker.register('/serviceworker.js')
  704. .then(navigator.serviceWorker.ready)
  705. .then(function () {
  706. console.log('[ServiceWorker] Ready to go!')
  707. })
  708. .catch(console.error.bind(console))
  709. } else {
  710. console.log('[ServiceWorker] Send links via registration')
  711. sendLinks(selector)
  712. }
  713. })
  714. navigator.serviceWorker.addEventListener('controllerchange', function () {
  715. console.log('[ServiceWorker] Send links via controller change')
  716. sendLinks(selector)
  717. })
  718. navigator.serviceWorker.addEventListener('message', function (event) {
  719. var link = document.querySelector('a[href="' + event.data.link + '"]')
  720. if (event.data.status && link) {
  721. link.style.backgroundColor = '#2d7474'
  722. link.style.color = '#f0f0ea'
  723. link.setAttribute('title', 'En cache pour consultation sans connexion')
  724. }
  725. })
  726. })
  727. } else {
  728. console.warn('[ServiceWorker] No cache for old browsers.')
  729. }
  730. </script>