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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826
  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>1% — 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/08/06/">
  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. 1%
  438. <time>Publié le 6 août</time>
  439. </h1>
  440. <article class="single">
  441. <p><em>Essayer d’être à l’écoute de soi avant de pouvoir être à l’écoute des autres. Devenir le 1% de sa vie, prendre conscience des 99 autres. Savoir décliner lorsqu’on n’est pas en forme. Prendre soin de ma propre attente.</em></p>
  442. <hr />
  443. <blockquote>
  444. <p>We should direct our attention to find ways to solve problems affecting our own health, our environment, the world we live in. A good example of action for developers is <a href="https://fixathon.io/">the world’s first online hackathon to help fix the climate</a>, running between today and end of August.</p>
  445. <p><cite><em><a href="https://wdrl.info/archive/270">WDRL 270</a></em> (<a href="/david/cache/203650d02bde8c120ff702cf04ebd853/">cache</a>)</cite></p>
  446. </blockquote>
  447. <p>J’apprends via l’une de mes publications préférées l’existence de ce hackathon. J’aurais presque envie de participer avec un truc qui germe depuis quelques semaines. <em>Merci Anselm.</em></p>
  448. <p>Au passage, pourquoi préféré ? En partie pour la forme : aucun traçage des liens sur lesquels j’ai cliqué.</p>
  449. <blockquote>
  450. <p>Once subscribed, you’ll receive newsletter emails; the opening of the message or clicks on the links are not tracked (though sometimes, the links included may be non-public links, which allows to count overall clicks from the newsletter; such links are the same for all subscribers, hence not connected to your identity).</p>
  451. <p><cite><em><a href="https://wdrl.info/privacy">Privacy Policy</a></em> (<a href="/david/cache/f5477e30821b38530e76be1cea167dd6/">cache</a>)</cite></p>
  452. </blockquote>
  453. <p>C’est tellement inhabituel dans ce milieu. Apprendre à remercier les 1% qui m’inspirent et qui me permettent de garder l’espoir d’un monde moins noir.</p>
  454. <hr />
  455. <blockquote>
  456. <p>But those 1% do have to recognise - we ALL have to recognise - that they are enormously privileged. That they are lucky to be able to do what they do. That they have won a grand industry prize that allows them to ignore all the things that most teams have to deal with.</p>
  457. <p>For most teams are not able to just do what they want. They are constrained by the organisation that they exist within. They must produce code that will reliably work and be easily maintained over the next several years. They can’t afford to retain someone who will innovate a new codebase and then move on, leaving others to puzzle over it. They can’t hire a 10x Engineer Ninja who will reimplement a brochure-ware website in a client-side framework and then ignore those users who are excluded by it.</p>
  458. <p>No, most teams are very boring. I’m really glad about that. We need boring. Boring is what gives stability. Boring is what allows web teams to concentrate on building robust websites, and focussing on user needs. Boring is what allows teams to produce elegant long-life solutions that do not need to be babysat and stroked by a magical engineering gnome.</p>
  459. <p><cite><em><a href="https://www.sonniesedge.net/posts/real-dark-web/">The Real Dark Web</a></em> (<a href="/david/cache/c402e68f592c57e1e60552481a838839/">cache</a>)</cite></p>
  460. </blockquote>
  461. <p>La réalité est plus complexe, il existe tout un spectre de technologies ennuyantes et à maintenir. Différents niveaux d’acceptation, de souffrances aussi. Et parfois d’accomplissement, s’il y a de la maintenance c’est probablement qu’il y a un usage.</p>
  462. <p><em>Ce qui manque parfois cruellement aux 1% qui en parlent le plus…</em></p>
  463. <hr />
  464. <blockquote>
  465. <p>Whatever works for you, invest in that. It’s more important than ever before because once they get to know you better than you know yourself, it’s game over for you. They can manipulate you and control you and you will not even realize this is happening. Because they have hacked you.</p>
  466. <p><cite><em><a href="https://www.fastcompany.com/90381354/exclusive-video-yuval-harari-on-social-inequality-and-the-naivete-of-tech-ceos">Yuval Harari on social inequality and the naivete of tech CEOs</a></em></cite></p>
  467. </blockquote>
  468. <p>Se connaître mieux qu’un algorithme afin d’être en capacité de pouvoir résister.</p>
  469. <p><em>Introspection vs. algospection.</em></p>
  470. <hr />
  471. <blockquote>
  472. <p>Le récit de la croissance verte a donc le même statut que le climato-scepticisme aux États-Unis : un discours de légitimation qui permet aux dirigeants de dissimuler l’égoïsme de leur action et aux citoyens de continuer à vivre comme si de rien n’était. Un anthropologue extraterrestre qui viendrait nous étudier, ou un historien du futur qui s’intéresserait à notre époque, ne verraient pas de différence de fonction entre les deux ; seulement deux variantes géographiquement situées du même récit de légitimation. Le citoyen européen qui mord à la croissance verte n’est pas différent du climato-sceptique américain, dont pourtant il se moque. Et, du point de vue de l’anthropologue extraterrestre ou de l’historien du futur, un journaliste français qui se félicite de voir le gouvernement promouvoir les éoliennes ne commet pas un crime moins grand que le journaliste de Fox News qui explique que le réchauffement climatique est un complot des chinois.</p>
  473. <p><cite><em><a href="https://www.partage-le.com/2019/07/zad-nature-culture-et-recomposition-des-mondes-un-entretien-avec-alessandro-pignocchi/">ZAD, nature, culture et recomposition des mondes : un entretien avec Alessandro Pignocchi</a></em> (<a href="/david/cache/4eb6e7269f426d89fe6df030f6e2df6a/">cache</a>)</cite></p>
  474. </blockquote>
  475. <p>Tout est dit. La paille dans l’œil du voisin est peut-être en plastique mais on se retrouve avec le même champ de vision une fois qu’on se ballade avec une en inox.</p>
  476. <p><em>Ces illustrations &lt;3</em></p>
  477. <hr />
  478. <blockquote>
  479. <p>Tl;dr : je me lance dans une nouvelle expérimentation pour tenter de réduire l’éco-anxiété et le surplus de charge mentale que je ressens trop fortement depuis quelques semaines en faisant une pause "réseaux sociaux" d’un mois et demi environ.</p>
  480. <p><cite><em><a href="https://mcgodwin.com/articles/pause">Pause</a></em> (<a href="/david/cache/58bcdfc949f761457536462e32ded69c/">cache</a>)</cite></p>
  481. </blockquote>
  482. <p>Idem ici, de manière définitive. Il y aura probablement moins de liens au dehors. Plus de liens en dedans.</p>
  483. <p><em>Les réponses sont en nous, tout ça.</em></p>
  484. <hr />
  485. <blockquote>
  486. <p>We continue to feel incredibly uncomfortable about playing the role of content arbiter and do not plan to exercise it often.</p>
  487. <p>[…]</p>
  488. <p>Cloudflare is not a government. While we’ve been successful as a company, that does not give us the political legitimacy to make determinations on what content is good and bad. Nor should it. Questions around content are real societal issues that need politically legitimate solutions. We will continue to engage with lawmakers around the world as they set the boundaries of what is acceptable in their countries through due process of law. And we will comply with those boundaries when and where they are set.</p>
  489. <p><cite><em><a href="https://blog.cloudflare.com/terminating-service-for-8chan/">Terminating Service for 8Chan</a></em> (<a href="/david/cache/3bcbe6b5623dd86a60e96ac45554d7f8/">cache</a>)</cite></p>
  490. </blockquote>
  491. <p>C’est peu de dire que je ne porte pas dans mon cœur un service qui centralise autant et j’ai conscience du jesaispasquoiwashing qu’il y a dans ce billet. Toujours est-il qu’il me semble approprié et bénéfique dans le signal porté. Oui, il est possible de refuser des clients lorsqu’on opère un service.</p>
  492. <p><em>N’oubliez pas que <a href="https://medium.com/@tobi/in-support-of-free-speech-275d62670203">Shopify</a> (<a href="/david/cache/91f08ca21219c531188f89a550bc673d/">cache</a>) n’a pas du tout la même vision des choses…</em></p>
  493. <hr />
  494. <p>Citation de la semaine :</p>
  495. <blockquote>
  496. <p>1% today is better than 50% tomorrow or some distant and impossible far-flung future.</p>
  497. <p><cite><em><a href="https://www.robinrendle.com/notes/1percent-better">1% Better</a></em> (<a href="/david/cache/ded4988675cc0492e08546e4aa307f50/">cache</a>)</cite></p>
  498. </blockquote>
  499. </article>
  500. <nav id="jumpto">
  501. <p>
  502. <a rel=prev href="/david/stream/2019/07/30/">← Exemplarité</a> | <a href="/david/stream/2019/" title="Retour à la liste complète">↑ Liste complète</a> | <a rel=next href="/david/stream/2019/08/13/">Holisme →</a>
  503. </p>
  504. </nav>
  505. <footer>
  506. <div>
  507. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  508. <p>
  509. Bonjour/Hi!
  510. 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>
  511. 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>).
  512. </p>
  513. <p>
  514. 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>.
  515. </p>
  516. <p>
  517. Les dernières publications hebdomadaires sont :
  518. </p>
  519. <ul class="with_columns">
  520. <li>
  521. <a href="/david/stream/2019/12/31/">Merci</a>
  522. </li>
  523. <li>
  524. <a href="/david/stream/2019/12/27/">Intemporels</a>
  525. </li>
  526. <li>
  527. <a href="/david/stream/2019/12/24/">Outils</a>
  528. </li>
  529. <li>
  530. <a href="/david/stream/2019/12/17/">Origines</a>
  531. </li>
  532. <li>
  533. <a href="/david/stream/2019/12/10/">Publier</a>
  534. </li>
  535. <li>
  536. <a href="/david/stream/2019/12/03/">En forêt</a>
  537. </li>
  538. <li>
  539. <a href="/david/stream/2019/11/26/">Ecocentric</a>
  540. </li>
  541. <li>
  542. <a href="/david/stream/2019/11/19/">Se livrer</a>
  543. </li>
  544. <li>
  545. <a href="/david/stream/2019/11/12/">Dépendances</a>
  546. </li>
  547. <li>
  548. <a href="/david/stream/2019/11/05/">Positif</a>
  549. </li>
  550. <li>
  551. <a href="/david/stream/2019/10/29/">Dettes</a>
  552. </li>
  553. <li>
  554. <a href="/david/stream/2019/10/22/">Privilèges</a>
  555. </li>
  556. <li>
  557. <a href="/david/stream/2019/10/15/">Discrétion</a>
  558. </li>
  559. <li>
  560. <a href="/david/stream/2019/10/08/">Désespérance</a>
  561. </li>
  562. <li>
  563. <a href="/david/stream/2019/10/01/">Présent</a>
  564. </li>
  565. <li>
  566. <a href="/david/stream/2019/09/24/">Manifester</a>
  567. </li>
  568. <li>
  569. <a href="/david/stream/2019/09/17/">Arpenter</a>
  570. </li>
  571. <li>
  572. <a href="/david/stream/2019/09/10/">Nostalgie</a>
  573. </li>
  574. <li>
  575. <a href="/david/stream/2019/09/03/">Déconstruire</a>
  576. </li>
  577. <li>
  578. <a href="/david/stream/2019/08/27/">Documenter</a>
  579. </li>
  580. <li>
  581. <a href="/david/stream/2019/08/20/">Frustration</a>
  582. </li>
  583. <li>
  584. <a href="/david/stream/2019/08/13/">Holisme</a>
  585. </li>
  586. <li>
  587. <a href="/david/stream/2019/08/06/">1%</a>
  588. </li>
  589. <li>
  590. <a href="/david/stream/2019/07/30/">Exemplarité</a>
  591. </li>
  592. <li>
  593. <a href="/david/stream/2019/07/23/">Timelines</a>
  594. </li>
  595. <li>
  596. <a href="/david/stream/2019/07/16/">Écoute</a>
  597. </li>
  598. <li>
  599. <a href="/david/stream/2019/07/02/">Anxiété</a>
  600. </li>
  601. <li>
  602. <a href="/david/stream/2019/06/21/">À lier</a>
  603. </li>
  604. <li>
  605. <a href="/david/stream/2019/06/14/">Pauvreté</a>
  606. </li>
  607. <li>
  608. <a href="/david/stream/2019/06/07/">Amateur</a>
  609. </li>
  610. <li>
  611. <a href="/david/stream/2019/05/31/">Pollution</a>
  612. </li>
  613. <li>
  614. <a href="/david/stream/2019/05/24/">Apaisement</a>
  615. </li>
  616. <li>
  617. <a href="/david/stream/2019/05/10/">Folie</a>
  618. </li>
  619. <li>
  620. <a href="/david/stream/2019/05/03/">Sympathie</a>
  621. </li>
  622. <li>
  623. <a href="/david/stream/2019/04/12/">Péremption</a>
  624. </li>
  625. <li>
  626. <a href="/david/stream/2019/04/05/">Définitions</a>
  627. </li>
  628. <li>
  629. <a href="/david/stream/2019/03/29/">Acceptation</a>
  630. </li>
  631. <li>
  632. <a href="/david/stream/2019/03/22/">Dissonance</a>
  633. </li>
  634. <li>
  635. <a href="/david/stream/2019/03/15/">Reconnaissance</a>
  636. </li>
  637. <li>
  638. <a href="/david/stream/2019/03/08/">Lecture</a>
  639. </li>
  640. <li>
  641. <a href="/david/stream/2019/03/01/">Journaux</a>
  642. </li>
  643. <li>
  644. <a href="/david/stream/2019/02/22/">Écriture</a>
  645. </li>
  646. <li>
  647. <a href="/david/stream/2019/02/15/">Kyriarchie</a>
  648. </li>
  649. <li>
  650. <a href="/david/stream/2019/02/08/">Mots-serrures</a>
  651. </li>
  652. <li>
  653. <a href="/david/stream/2019/02/01/">Sans voie</a>
  654. </li>
  655. <li>
  656. <a href="/david/stream/2019/01/25/">Auto-diagnostic</a>
  657. </li>
  658. <li>
  659. <a href="/david/stream/2019/01/18/">Agilité</a>
  660. </li>
  661. <li>
  662. <a href="/david/stream/2019/01/11/">Métaphores</a>
  663. </li>
  664. <li>
  665. <a href="/david/stream/2019/01/04/">Balbutiements</a>
  666. </li>
  667. </ul>
  668. <p>
  669. Voici quelques articles choisis :
  670. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  671. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  672. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  673. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  674. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  675. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  676. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  677. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  678. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  679. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  680. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  681. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  682. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  683. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  684. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  685. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  686. </p>
  687. <p>
  688. 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>.
  689. </p>
  690. <p>
  691. Je ne traque pas ta navigation mais mon
  692. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  693. conserve des logs d’accès.
  694. </p>
  695. </div>
  696. </footer>
  697. <script type="text/javascript">
  698. ;(_ => {
  699. const jumper = document.getElementById('jumper')
  700. jumper.addEventListener('click', e => {
  701. e.preventDefault()
  702. const anchor = e.target.getAttribute('href')
  703. const targetEl = document.getElementById(anchor.substring(1))
  704. targetEl.scrollIntoView({behavior: 'smooth'})
  705. })
  706. })()
  707. </script>
  708. <script>
  709. /* Service workers */
  710. if (navigator.serviceWorker) {
  711. window.addEventListener('load', function () {
  712. var selector = 'a[href^="/david/cache/"], a[rel=prev], a[rel=next]'
  713. function sendLinks (selector) {
  714. var links = [].slice.call(document.querySelectorAll(selector)).map(function (link) {
  715. return link.getAttribute('href')
  716. })
  717. links.push(location.pathname) // Put the current page in cache too.
  718. navigator.serviceWorker.controller.postMessage({ links: links })
  719. }
  720. navigator.serviceWorker.getRegistration()
  721. .then(function (registration) {
  722. if (!registration || !navigator.serviceWorker.controller) {
  723. return navigator.serviceWorker.register('/serviceworker.js')
  724. .then(navigator.serviceWorker.ready)
  725. .then(function () {
  726. console.log('[ServiceWorker] Ready to go!')
  727. })
  728. .catch(console.error.bind(console))
  729. } else {
  730. console.log('[ServiceWorker] Send links via registration')
  731. sendLinks(selector)
  732. }
  733. })
  734. navigator.serviceWorker.addEventListener('controllerchange', function () {
  735. console.log('[ServiceWorker] Send links via controller change')
  736. sendLinks(selector)
  737. })
  738. navigator.serviceWorker.addEventListener('message', function (event) {
  739. var link = document.querySelector('a[href="' + event.data.link + '"]')
  740. if (event.data.status && link) {
  741. link.style.backgroundColor = '#2d7474'
  742. link.style.color = '#f0f0ea'
  743. link.setAttribute('title', 'En cache pour consultation sans connexion')
  744. }
  745. })
  746. })
  747. } else {
  748. console.warn('[ServiceWorker] No cache for old browsers.')
  749. }
  750. </script>