Browse Source

Publishing Technique

master
David Larlet 2 years ago
parent
commit
fb53c98fa1
No known key found for this signature in database

+ 2
- 2
david/2020/02/21/index.html View File

@@ -35,7 +35,7 @@
<p class="center">
<a rel="prev" href="/david/2020/02/14/" title="Publication précédente : Espoirs">←</a> •
<a href="/david/" title="Aller à l’accueil" tabindex="1">🏠</a>
• <a rel="next" href="/david/2020/03/13/" title="Publication suivante : Technique">→</a>
</p>
</nav>
<hr>
@@ -123,7 +123,7 @@ mark::after {
<p class="center">
<a rel="prev" href="/david/2020/02/14/" title="Publication précédente : Espoirs">←</a> •
<a href="/david/2020/" title="Liste des publications récentes">↑</a>
• <a rel="next" href="/david/2020/03/13/" title="Publication suivante : Technique">→</a>
</p>
</nav>
</article>

+ 11
- 0
david/2020/03-13.md View File

@@ -0,0 +1,11 @@
# Technique

*Cette fois promis c’est l’album de la maturité.*

.. include:: fragments/Une suite.md
.. include:: fragments/Problems.md
.. include:: fragments/JavaScript.md
.. include:: fragments/Transmission.md
.. include:: fragments/Tendance.md
.. include:: fragments/Docker.md
.. include:: fragments/Mudita.md

+ 5
- 0
david/2020/03-20.md View File

@@ -0,0 +1,5 @@
# Introspection

*Chemin de pensée lors de l’écriture du [précédent article](/david/2020/03/13/).*

.. include:: fragments/Maitre.md

+ 9
- 0
david/2020/03-27.md View File

@@ -0,0 +1,9 @@
# Rédemption

*Apprendre à vivre avec ses remords et ses regrets.*

.. include:: fragments/Capitalisme.md
.. include:: fragments/Souvenir.md
.. include:: fragments/Techbro.md
.. include:: fragments/Panic.md
.. include:: fragments/Renonciation.md

+ 149
- 0
david/2020/03/13/index.html View File

@@ -0,0 +1,149 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the <title>
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>Technique — David Larlet</title>
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f0f0ea">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f0f0ea">
<!-- Thank you Florens! -->
<link rel="stylesheet" href="/static/david/css/style_2020-02-24.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" crossorigin>

<body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">

<article>
<h1>Technique</h1>
<nav>
<p class="center">
<a rel="prev" href="/david/2020/02/21/" title="Publication précédente : Service">←</a> •
<a href="/david/" title="Aller à l’accueil" tabindex="1">🏠</a>
</p>
</nav>
<hr>

<p><em>Cette fois promis c’est l’album de la maturité.</em></p>
<h2 id="une-suite">Une suite ? <a href="#une-suite" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><p>Vous avez été nombreux (comprendre, environ deux) à me demander s’il y avait une suite à <a href="/david/blog/2016/minimalisme-esthetique/">Minimalisme et esthétique</a> puis <a href="/david/blog/2016/simplicite-defaut/">Simplicité par défaut</a> et comme les trilogies vont toujours mieux par trois, vous pouvez considérer ce qui suit comme <em>mon</em> cheminement personnel ces quatre dernières années.</p>
<p>L’état de l’art en matière de développement web n’a pas vraiment l’air d’être allé vers davantage de simplicité, de minimalisme et encore moins d’esthétisme au cours de cet intervalle. <em>C’est peu de le dire, enfin l’écrire.</em> Ce qui a changé par contre, c’est mon expérience — d’aucuns appelleraient ça vieillesse — et mon envie d’échapper à cela en fuyant les produits et donc équipes qui mettent la technique avant les utilisateur·ice·s.</p>
<p>Je vous divulgâche le résultat tout de suite : je me sens plus apaisé sur ce plan là. La présence de <a href="https://ronan.amicel.net/">Ronan</a> dans mon <a href="/david/blog/2019/faire-equipe/">équipe actuelle</a> n’est pas étrangère à ce sentiment mais le choix des technologies employées me donne <em>aussi</em> un sentiment de contrôle salutaire.</p>
<hr />
<p>En guise d’introduction aussi, j’ai conscience d’être dans un <a href="http://scopyleft.fr/">environnement</a> <a href="https://beta.gouv.fr/">extrêmement</a> <a href="http://larlet.com/">privilégié</a> me permettant d’avoir la liberté suffisante pour être en capacité de faire ces choix. C’est loin d’être anodin dans l’exploration qui suit.</p>
<h2 id="le-probleme">Le problème <a href="#le-probleme" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>Eventually, I settled on a list of questions I would ask myself for each problem as it arose. I found that asking these questions, in order, helped me make the best decision possible:</p>
<ol>
<li>Is this really a problem?</li>
<li>Does the problem need to be solved?</li>
<li>Does the problem need to be solved now?</li>
<li>Does the problem need to be solved by me?</li>
<li>Is there a simpler problem I can solve instead?</li>
</ol>
<p>Each question is designed to reveal something about the problem that allows you to go to the next step, or if you’re lucky, <mark>just avoid the problem altogether</mark>.</p>
<p><cite><em><a href="https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/">How I think about solving problems</a></em> (<a href="/david/cache/2020/bdc65ed9d2657f45d13d97186072b415/">cache</a>)</cite></p>
</blockquote>
<p>C’est le principal fléau de notre industrie : tenter de résoudre des problèmes là où il n’y a pas de besoin. Le solutionnisme technologique ne devrait être que la dernière option mais cela serait mauvais pour le <em>business</em>. Alors on met des paillettes pour faire passer la pilule et encaisser le chèque en fin de mois.</p>
<p>Vous connaissez le fameux <cite>« Je vous écris une longue lettre parce que je n’ai pas le temps d’en écrire une courte »</cite> de Blaise Pascal, il se trouve que cela s’applique aussi à l’élaboration d’un produit. Les solutions frugales coûtent parfois autant (si ce n’est plus !) que les usines à gaz. Cela prend du temps de comprendre une problématique, cela prend du temps d’échanger avec des utilisateur·ice·s, cela prend du temps de déterminer quelles sont les fonctionnalités qui ne sont pas/plus utiles. <strong>Cela prend du temps de produire des choses im·pertinentes.</strong></p>
<p>En contrepartie, elles permettent d’économiser sur le long terme en réduisant la maintenance, le périmètre de support et l’exploitation du produit. En se focalisant sur la pertinence, on conserve une application à échelle humaine. Autant dans l’usage que dans la conception.</p>
<hr />
<p>Mon contentement est grand lorsque je suis surpris par la résilience du code auquel je contribue. J’ai soudain l’impression d’avoir pas trop mal fait les choses. C’est assez rare pour être célébré comme il se doit.</p>
<h2 id="javascript">JavaScript <a href="#javascript" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>The performance tradeoff isn’t about <em>where</em> the bottleneck is. It’s about <em>who</em> has to carry the burden. It’s one thing for a developer to push the burden onto a server they control. It’s another thing entirely to expect visitors to carry that load when connectivity and device performance isn’t a constant.</p>
<p>Developer productivity is a great metric, but it can’t be isolated from the larger ecosystem. With Ruby, the tradeoff works because nothing is externalized, and it’s barely even a tradeoff these days. But with large front-end JavaScript frameworks, things aren’t just slow. If that JavaScript isn’t able to be loaded for a variety of reasons, sites don’t just become a little slower. <mark>They break entirely.</mark></p>
<p><cite><em><a href="https://garrettdimon.com/2020/visitors-developers-or-machines/">Visitors, Developers, or Machines</a></em> (<a href="/david/cache/2020/af5d5f52466dfc2f59718294faa07418/">cache</a>)</cite></p>
</blockquote>
<p>Je ne peux pas parler de technique et de Web sans parler de JavaScript et de ce que l’on fait subir à chaque personne qui visite une page. Les compromis qui sont fait actuellement sont propres à un contexte qui donne une ascendance aux riches développeurs et développeuses qui peuvent se permettre <a href="https://hankchizljaw.com/wrote/honesty-is-the-best-policy/">avec leur matériel récent</a> (<a href="/david/cache/2020/195a2ecd81fa25a7cf43248b809bf724/">cache</a>) de faire des pages tout saufs <em>réact</em>ives pour le reste du monde. Ma machine <a href="/david/stream/2015/07/19/">a bientôt cinq ans</a> et se trouve être limite inutilisable pour du développement web, <strong>comment ose-t-on ?</strong></p>
<p>Je trouve cela terrible, autant en terme de (non)empathie que de consommation de ressources si l’on considère les coûts de manière globale et transverse. Cela a de quoi <a href="https://www.matuzo.at/blog/why-543kb-keep-me-up-at-night/">m’empêcher de dormir aussi</a> (<a href="/david/cache/2020/fc97310297178a549eab5c5f9e8a334f/">cache</a>), déporter une grande partie de la complexité et du calcul du côté du navigateur s’avère être contre-productif <em>dans une majorité des cas</em>.</p>
<blockquote>
<p>HTTP 262 JAVASCRIPT UNNECESSARILY REQUIRED; the content is available but you’d better have a good CPU and 15 seconds of free time before the first pixel gets painted</p>
<p><cite>Taudry Hepburn <a href="https://twitter.com/tabatkins/status/1232065732034191360">sur Twitter</a></cite></p>
</blockquote>
<p>On ne peut pas non plus parler de technologie sans son usage et ce n’est pas tant JavaScript que ce qui est fait avec qui m’importune. En tant que développeur, c’est mon quotidien d’apprendre à m’adapter et je sens bien que je pourrais devenir un peu moins incompétent sur le sujet <em>mais</em> c’est en tant qu’usager que je n’en peux plus. Manque de résilience, réduction des performances, tentative de prise de contrôle de mon navigateur et je n’évoque même pas tout ce qui essaye de consigner mes moindres clics.</p>
<p>Heureusement que les navigateurs implémentent un <em>mode lecteur</em> qui rend certains sites juste… lisibles. Je ne compte plus le nombre de fois où je suis carrément obligé d’aller supprimer un nœud du <abbr title="Document Object Model">DOM</abbr> à la main (!) pour pouvoir afficher une page web. Fâcheux.</p>
<hr />
<p>Aujourd’hui, lorsque la <a href="http://vanilla-js.com/">vanille</a> ne me suffit plus, j’utilise <a href="https://stimulusjs.org/">StimulusJS</a> que je trouve être la moins mauvaise solution. On garde du <abbr title="HyperText Markup Language">HTML</abbr> propre et interprétable ce qui facilite l’amélioration progressive. C’est relativement léger compte tenu de l’aide que ça m’apporte pour structurer mon code. Et c’est suffisamment limité pour me permettre de prendre conscience de mon erreur lorsque j’essaye de mettre trop de logique dans le navigateur.</p>
<h2 id="transmission">Transmission <a href="#transmission" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>Aucun code n’a changé ma vie.</p>
<p><cite><em>via Mastodon, publication privée</em></cite></p>
</blockquote>
<p>On touche ici du doigt une chose qui me semble être essentielle, le fait de savoir écouter <em>et</em> aussi de prendre la parole pour accompagner et montrer avec une petite lanterne que d’autres voies sont possibles. Qu’il y a un autre niveau de plaisir à rendre disponibles des outils utiles et relativement frugaux.</p>
<p>Aucun code n’a changé ma vie mais le fait de partager mes réflexions dessus a eu des conséquences non négligeables. Que ce soit sur cet espace ou lors de conférences ou par courriel ou en échangeant avec des collègues ou autres. Chaque échange est une occasion de me faire changer et <em>en même temps</em> de faire changer mon interlocuteur·ice.</p>
<p>Sans l’imposer, raconter une voie qui pourrait résonner chez l’autre. Sans prétention autre que celle de dire que cela existe, que certaines utopies ne sont pas si inaccessibles.</p>
<blockquote>
<p>L’avan­tage c’est qu’a­vec l’ex­pé­rience, norma­le­ment, vous pouvez appor­ter plus que votre code. Le péri­mètre n’a aucune raison d’être iden­tique avec les années.</p>
<p><cite><em><a href="https://n.survol.fr/n/vieux-developpeur-pas-manager">Vieux développeur, pas manager</a></em> (<a href="/david/cache/2020/874765e437a144748e9438d272b1177a/">cache</a>)</cite></p>
</blockquote>
<p>Exactement, vous pouvez accompagner d’autres personnes, participer à la conception du produit, interviewer des utilisateur·ice·s, et pleins d’autres trucs auxquels je ne pense pas. Si ça se trouve, vous commencez à suffisamment vous connaître pour prendre du recul au bon moment afin de ne pas devenir un goulot d’étranglement ou tout simplement vous protéger.</p>
<p><em>Tout cela a de la valeur.</em></p>
<h2 id="tendance">Tendance <a href="#tendance" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>tiens, une question pour les vieux réacs : quelle est la dernière chose tendance que vous trouvez utile ?</p>
<p><cite><em>via <abbr title="Internet Relay Chat">IRC</abbr></em></cite></p>
</blockquote>
<p><strong>Alléger.</strong> Proposer un <a href="http://blog.danieljanus.pl/2019/10/07/web-of-documents/">web de documents</a> (<a href="/david/cache/2020/31652af3fd4757154c51aadcbe9ffb39/">cache</a>) lorsqu’il est possible. Fuir ce qui ressemble à de <a href="https://adactio.com/journal/16404">l’hydratation (?!)</a> (<a href="/david/cache/2020/911b72ae5d6e140268adf8591aae7df3/">cache</a>) ou toute autre fausse bonne idée réduisant l’accessibilité (et les performances mais c’est pour moi un pléonasme).</p>
<p>Prendre le temps d’expliquer pourquoi vous avez fait ces choix dans ce contexte particulier. Partager le fait que l’on peut faire des choses chouettes en utilisant des « <a href="https://mcfunley.com/choose-boring-technology">boring technologies</a> (<a href="/david/cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/">cache</a>) », que la valeur n’est pas forcément là. Se méfier aussi de ce qui semble <em>boring</em> mais <a href="https://daverupert.com/2020/02/html-the-inaccessible-parts/">n’est pas pour autant trivial</a> (<a href="/david/cache/2020/a70068c881eba36604b2f4f8aec54670/">cache</a>) ou bien toujours <a href="https://css-tricks.com/why-is-css-frustrating/">incompris par beaucoup</a> (<a href="/david/cache/2020/afb9fa99e3c43324fbe57b416562b8f9/">cache</a>).</p>
<p>On peut courir après la technologie, c’est plaisant une heure par-ci par-là pour découvrir de nouveaux paysages. De temps en temps même un petit marathon pour rester en forme. Mais à force d’être focalisé sur les prochains pas, j’en étais arrivé à perdre de vue l’intérêt du chemin. Un périple au service de <em>ma</em> vision de l’utilité.</p>
<hr />
<p>Je suis conscient que je me tire peut-être une balle dans le pied en énonçant toutes ces frustrations publiquement. Ou peut-être que cela me permettra au contraire d’entrer en contact avec des personnes qui partagent cette approche. On verra bien, n’hésitez pas à me contacter pour échanger là-dessus.</p>
<h2 id="docker">Docker <a href="#docker" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>Code must run behind at least three levels of virtualization now. Code that runs on bare metal is unnecessarily performant.</p>
<p><cite><em><a href="https://medium.com/swlh/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce">How is computer programming different today than 20 years ago?</a></em> (<a href="/david/cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/">cache</a>)</cite></p>
</blockquote>
<p>La critique est acerbe et juste. J’en suis à refuser des projets car l’empilement de technologies me semble être trop bancal pour ne pas risquer de faire tout tomber sans comprendre ce qu’il s’est passé.</p>
<p>Et je ne parle même pas de la charge mentale associée à toute cette pile technique qui détourne de l’intérêt principal d’un produit. Ni du surcoût pour chaque nouvelle personne souhaitant participer (en dépit de la promesse inverse !). Ou du besoin d’avoir une machine récente pour que tout puisse tourner tellement il y a de couches accumulées.</p>
<blockquote>
<p>So here’s the counterargument: Integrated systems are good. Integrated developers are good. Being able to wrap your mind around the whole application, and have developers who are able to make whole features, is good! The road to madness and despair lays in specialization and compartmentalization.</p>
<p><cite><em><a href="https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/">Integrated systems for integrated programmers</a></em> (<a href="/david/cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/">cache</a>)</cite></p>
</blockquote>
<p>Je ne veux pas que ma connaissance soit « virtualisée », je ne veux pas que mon application devienne une boîte noire, je ne produis pas de l’électroménager. <strong>J’ai parfois l’impression de me battre contre ma propre prolétarisation.</strong> Suis-je un <a href="/david/stream/2018/06/15/">Luddite</a> moderne de penser cela ?</p>
<h2 id="mudita">Mudita <a href="#mudita" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>What enough means for me, only concerns me, and should only be compared to myself: where I’m actually at versus where I’m working to get to. As in, am I presently happy or do I assume I’ll be happier in the future, and if so, why?</p>
<p>Enough is the antithesis of unchecked growth because growth encourages mindless consumption and enough requires constant questioning and awareness. Enough is when we reach the upper bound of what’s required.</p>
<p><cite><em><a href="https://pjrvs.com/enough">Enough</a></em> (<a href="/david/cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/">cache</a>)</cite></p>
</blockquote>
<p>Toutes ces réflexions sont très personnelles. Vous pouvez être à un niveau différent de prise de conscience — et c’est très sain. Vous pouvez aussi avoir des contraintes beaucoup plus fortes où d’autres choix seraient beaucoup plus valides. Pour ma part, <strong>je pense avoir assez d’outils pour continuer des expériences utiles où le facteur limitant n’est pas technique.</strong> Et si jamais il le devient, je serais ravi de savoir qu’il y a des personnes différentes qui sont prêtes à relever ces défis.</p>
<blockquote>
<p>In Sanskrit, there’s a term called <em>mudita</em>, and there’s no equivalent word in English. Essentially, it means to have sympathetic or unselfish joy for others—<mark>regardless of where they’re at in their own lives</mark>. Really, if we spend less time envying or assuming that others think less of us because they’re in a different place than we are, then it becomes easier to focus on what’s important to ourselves.</p>
<p><cite><em>Ibid.</em></cite></p>
</blockquote>
<p>Chacun sa route, chacun son chemin. Passe le <a href="/david/blog/2019/flux-rss/">flux RSS</a> à ton voisin (ou ta voisine).</p>

<nav>
<p class="center">
<a rel="prev" href="/david/2020/02/21/" title="Publication précédente : Service">←</a> •
<a href="/david/2020/" title="Liste des publications récentes">↑</a>
</p>
</nav>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="/david/log/" title="Accès au flux RSS">🤖</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
<abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
</p>
</footer>
<script src="/static/david/js/instantpage-3.0.0.min.js" type="module" defer></script>
</body>
</html>

+ 73
- 0
david/2020/03/20/index.html View File

@@ -0,0 +1,73 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the <title>
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>Introspection — David Larlet</title>
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f0f0ea">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f0f0ea">
<!-- Thank you Florens! -->
<link rel="stylesheet" href="/static/david/css/style_2020-02-24.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" crossorigin>

<body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">

<article>
<h1>Introspection</h1>
<nav>
<p class="center">
<a rel="prev" href="/david/2020/03/13/" title="Publication précédente : Technique">←</a> •
<a href="/david/" title="Aller à l’accueil" tabindex="1">🏠</a>
</p>
</nav>
<hr>

<p><em>Chemin de pensée lors de l’écriture du <a href="/david/2020/03/13/">précédent article</a>.</em></p>
<h2 id="maitre">Maître <a href="#maitre" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>Il y a quelques minutes, tu as affirmé que j’étais un maître. Mais qu’est-ce qu’un maître ? Je vais te le dire : ce n’est pas celui qui enseigne quelque chose, c’est celui qui incite le disciple à donner le meilleur de lui-même pour qu’il découvre une connaissance déjà présente en lui, au creux se son âme.</p>
<p><cite><em>La Voie de l’Archer</em>, Paulo Coelho</cite></p>
</blockquote>
<p>J’ai parfois l’impression d’asséner <em>mes</em> vérités à longueur d’articles. D’avoir une position haute (hautaine ?) qui ne me convient pas et que j’ai du mal à assumer. Et d’un autre côté, sans cela je n’aurais probablement pas la prétention de publier des choses. Mais serait-ce vraiment une mauvaise chose ?</p>

<nav>
<p class="center">
<a rel="prev" href="/david/2020/03/13/" title="Publication précédente : Technique">←</a> •
<a href="/david/2020/" title="Liste des publications récentes">↑</a>
</p>
</nav>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="/david/log/" title="Accès au flux RSS">🤖</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
<abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
</p>
</footer>
<script src="/static/david/js/instantpage-3.0.0.min.js" type="module" defer></script>
</body>
</html>

+ 134
- 0
david/2020/03/27/index.html View File

@@ -0,0 +1,134 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the <title>
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>Rédemption — David Larlet</title>
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f0f0ea">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f0f0ea">
<!-- Thank you Florens! -->
<link rel="stylesheet" href="/static/david/css/style_2020-02-24.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" crossorigin>

<body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">

<article>
<h1>Rédemption</h1>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil" tabindex="1">🏠</a>
</p>
</nav>
<hr>

<p><em>Apprendre à vivre avec ses remords et ses regrets.</em></p>
<h2 id="capitalisme">Capitalisme <a href="#capitalisme" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>L’impossibilité de fonctionnement du capitalisme quand les corps qu’il soumet ne sont plus fonctionnels (au sens capitaliste) révèle le darwinisme social sur lequel il s’appuie en permanence. Rappeler ces éléments semble extrêmement futile, alors que cela permet d’empiéter sur les récits hégémoniques qui gomment consciemment certains enjeux politiques fondamentaux de l’épidémie. Cette réintroduction de la dimension humaine dans la production de biens et services éclaire ce qu’il faut entraver si l’on se soucie vraiment de la « planète » : <mark>les intérêts du capitalisme fossile et de l’habiter colonial de la Terre qu’il perpétue.</mark></p>
<p><cite><em><a href="https://perspectives-printanieres.info/index.php/2020/03/10/lepidemie-na-pas-de-vertus/">L’épidémie n’a pas de vertus</a></em> (<a href="/david/cache/2020/58117f5865002118d6769cb0a7aa9786/">cache</a>)</cite></p>
</blockquote>
<p>Une prise de recul sensée sur les réelles origines du (corona)virus qui va au-delà de la <a href="https://www.monde-diplomatique.fr/2020/03/SHAH/61547">dimension écologique seule</a> mais s’inscrit dans un projet politique de pouvoir et d’inégalités sociales.</p>
<p>Tout est quand même lié : plus de végétariens, moins de (mono)cultures, moins de déforestation, moins de pollution de l’eau, plus de distance entre les virus et les humains.</p>
<h2 id="souvenir">Souvenir <a href="#souvenir" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>Les loleurs ont passé des années à pratiquer ce qui était des non-évènements pour eux mais qui étaient autant d’évènements pour celles et ceux qui les recevaient. <mark>Ils les ont oubliés. Nous nous en souvenons.</mark></p>
<p><strong>C’est là toute la différence entre les oppresseurs et les opprimés : les oppresseurs aimeraient se souvenir mais ils continuent d’oublier, les opprimés aimeraient oublier mais ils continuent de se souvenir.</strong></p>
<p><cite><em><a href="https://medium.com/@florence.porcel/laffaire-de-la-ligue-du-lol-ou-la-fabrique-de-l-oubli-df4ad3f5f2b5">L’affaire de la Ligue du LOL, ou la fabrique de l’oubli</a></em> (<a href="/david/cache/2020/2c6ccd57b9f0f1c39706013d026de507/">cache</a>)</cite></p>
</blockquote>
<p>J’avais déjà lu le (long !) <a href="https://medium.com/@vincentglad_67276/ligue-du-lol-un-an-apr%C3%A8s-aeee7784cf4d">article de Vincent Glad</a> (<a href="/david/cache/2020/ac3266635585d387973da1c64b546990/">cache</a>) qui fait une rétrospective de ce qu’il a vécu au cours de l’année passée. Au-delà du fait que ces deux publications sont sur Medium qui produit du <abbr title="HyperText Markup Language">HTML</abbr> de plus en plus dégueulasse (ce que je trouve triste <em>et</em> embarrassant lorsqu’on évoque des publications qui ont été plus ou moins pérennes), je trouve cela intéressant à plus d’un titre d’avoir les deux points de vue.</p>
<p>J’en retiens deux choses :</p>
<ol>
<li>l’oppression est forcément une interprétation et à ce titre ne peut se réduire qu’en établissant un échange entre l’oppreseur·se et l’oppressé·e</li>
<li>notre cerveau essaye de nous protéger de ce que l’on a subi et/ou fait subir dans notre vie en altérant notre souvenance de ces moments là</li>
</ol>
<p>Si l’on combine ces deux axiomes, j’ai probablement eu des comportements — dont je n’ai pas forcément souvenir ou conscience — qui ont pu être oppressifs. Si vous vous en êtes senti·e victime, je vous invite à engager le dialogue.</p>
<h2 id="techbro">Techbro <a href="#techbro" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>The prodigal tech bro doesn’t so much take an off-ramp from the relatively high status and well-paid job he left when the scales fell from his eyes, as zoom up an on-ramp into a new sector that accepts the reputational currency he has accumulated. <mark>He’s not joining the resistance.</mark> He’s launching a new kind of start-up using his industry contacts for seed-funding in return for some reputation-laundering.</p>
<p><cite><em><a href="https://conversationalist.org/2020/03/05/the-prodigal-techbro/">The Prodigal Techbro</a></em> (<a href="/david/cache/2020/4bda6c744ffb55c0fc4f4bf1f740b4e3/">cache</a>)</cite></p>
</blockquote>
<p>Cet article est d’une grande justesse. Je n’oublie pas que j’ai participé à l’immonde en travaillant — brièvement — pour la haute finance et — moins brièvement — pour le jeu en ligne. Je n’ai de leçons à donner à personne en terme d’éthique, surtout dans un domaine qui laisse une relative liberté quant au choix des missions choisies.</p>
<p>Le chemin était sans doute nécessaire pour en arriver là où j’en suis mais ce n’est en aucun cas une justification pour avoir fait ces choix pour le moins douteux précédemment.</p>
<h2 id="panic">Panic <a href="#panic" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>But ultimately, I think I’m telling this story so I can close this panic episode with integrity and honesty. I think I want to tell myself that it’s okay to be weak and imperfect. That it was okay for me to be defensive. That it was okay for me to be angry.</p>
<p>And it’s okay to let the anger go now. Nobody out there is trying to harm me. Nobody out there is trying to force me to admit to mistakes I didn’t make. Nobody out there is trying to make me “wrong”.</p>
<p><cite><em><a href="https://zellwk.com/blog/overcoming-panic-towards-accessibility/">Overcoming my panic towards accessibility</a></em> (<a href="/david/cache/2020/85e0f968f6ac8dfdd76c7a76df6ef088/">cache</a>)</cite></p>
</blockquote>
<p>Je crois pouvoir comprendre ce sentiment, au moins à mon échelle. Par exemple, lorsque je publie un <a href="/david/2020/02/21/#surlignage">bout de CSS pour le surlignage</a> et que je me rends compte ensuite qu’avec <a href="https://www.trysmudford.com/blog/currying-in-css/">un peu de curry</a> (<a href="/david/cache/2020/77db8cc6de2906f31a4d37d91a47a3aa/">cache</a>) je pourrais arriver à une situation plus élégante (?) utilisant des variables qui ressemblerait à :</p>
<pre><code>mark {
background: LightGoldenRodYellow;
}
mark::before,
mark::after {
clip-path: inset(100%);
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
:root,
[lang=en] {
--mark-start: &quot; [highlight start] &quot;;
--mark-end: &quot; [highlight end] &quot;;
}
[lang=fr] {
--mark-start: &quot; [début du surlignage] &quot;;
--mark-end: &quot; [fin du surlignage] &quot;;
}
mark::before {
content: var(--mark-start);
}
mark::after {
content: var(--mark-end);
}
</code></pre>
<p>Et là je réalise après quelques échanges sur ##openweb (merci <a href="https://ricaud.me">Anthony</a> !) que je ne fais pas la distinction de langue entre les citations (souvent en anglais) et le texte (souvent en français). Mince.</p>
<p>En voulant améliorer l’accessibilité de mes productions, cela a peut être eu l’effet inverse… en tout cas cela m’aura au moins permis d’en prendre conscience. <em>Don’t panic.</em></p>
<h2 id="renonciation">Renonciation <a href="#renonciation" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><blockquote>
<p>Nous disons : « Pas à pas, j’arrête le murmure du ruisseau. » En vous promenant le long du ruisseau, vous entendrez l’eau couler. Le son est continu, mais vous devez pouvoir l’arrêter si vous voulez l’arrêter. <mark>C’est cela la renonciation.</mark> Différentes pensées l’une après l’autre se succèdent dans votre esprit, mais si vous voulez arrêter votre pensée, vous le pouvez. Quand vous serez capable d’arrêter le murmure du ruisseau, vous apprécierez la sensation de votre travail. Mais tant que vous avez quelque idée fixe, ou que vous êtes pris par une certaine routine de comportement, vous ne pouvez apprécier le vrai sens des choses.</p>
<p><cite><em><a href="/david/2020/12/21/#esprit-zen-esprit-neuf">Esprit zen, esprit neuf</a></em>, Shunryu Suzuki</cite></p>
</blockquote>
<p>Comment faire pour arrêter une rivière en crue ?</p>

<nav>
<p class="center">
<a href="/david/2020/" title="Liste des publications récentes">↑</a>
</p>
</nav>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="/david/log/" title="Accès au flux RSS">🤖</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
<abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
</p>
</footer>
<script src="/static/david/js/instantpage-3.0.0.min.js" type="module" defer></script>
</body>
</html>

+ 2
- 2
david/2020/11/27/index.html View File

@@ -33,7 +33,7 @@
<h1>Perles</h1>
<nav>
<p class="center">
<a rel="prev" href="/david/2020/02/21/" title="Publication précédente : Service">←</a> •
<a href="/david/" title="Aller à l’accueil" tabindex="1">🏠</a>
</p>
@@ -64,7 +64,7 @@

<nav>
<p class="center">
<a rel="prev" href="/david/2020/02/21/" title="Publication précédente : Service">←</a> •
<a href="/david/2020/" title="Liste des publications récentes">↑</a>
</p>

+ 1
- 0
david/2020/12-15.md View File

@@ -6,6 +6,7 @@
.. include:: fragments/Franck Lepage.md
.. include:: fragments/Citizenfour.md
.. include:: fragments/Minimalism.md
.. include:: fragments/The Game Changers.md

---


+ 2
- 0
david/2020/12/15/index.html View File

@@ -71,6 +71,8 @@
</blockquote>
<p>Un documentaire sur des personnes riches qui décident de ne plus posséder de nombreuses choses. En passant un peu à côté de ce que cela <a href="/david/2020/01/15/#maximalist-assemblage">requiert par ailleurs</a> et de la nécessité d’accumuler lorsqu’on est pauvre.</p>
<p>Il y a pas mal de jolies phrases à écrire sur des murs… tout blancs.</p>
<h2 id="the-game-changers">The Game Changers <a href="#the-game-changers" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><p><a href="https://fr.wikipedia.org/wiki/The_Game_Changers">Documentaire</a> assez <a href="https://en.wikipedia.org/wiki/The_Game_Changers#Criticisms">controversé</a> sur le véganisme et son impact sur le corps, notamment dans le sport de haut niveau. Je suis loin d’être <em>vegan</em>, notamment car je consomme encore pas mal d’œufs et de fromage, et j’ai pu observer des transformations sur mon corps mais le contexte était tellement changeant qu’il est difficile d’arriver à la moindre conclusion personnelle.</p>
<p>Ce qui me semble assez clair par contre c’est qu’il s’agit d’un levier important pour moins détériorer la planète. Et ce, pour un inconfort <em>quasi</em> nul. Je ne sais pas si c’est bon pour l’organisme mais ça soulage déjà mon cerveau !</p>
<hr />
<p><em>Note : je regarde aussi des navets beaucoup moins avouables, je suis même allé au bout de la première saison de « The Witcher », c’est dire ma résistance à la nullité.</em></p>


+ 9
- 0
david/2020/fragments/Capitalisme.md View File

@@ -0,0 +1,9 @@
## Capitalisme

> L’impossibilité de fonctionnement du capitalisme quand les corps qu’il soumet ne sont plus fonctionnels (au sens capitaliste) révèle le darwinisme social sur lequel il s’appuie en permanence. Rappeler ces éléments semble extrêmement futile, alors que cela permet d’empiéter sur les récits hégémoniques qui gomment consciemment certains enjeux politiques fondamentaux de l’épidémie. Cette réintroduction de la dimension humaine dans la production de biens et services éclaire ce qu’il faut entraver si l’on se soucie vraiment de la « planète » : <mark>les intérêts du capitalisme fossile et de l’habiter colonial de la Terre qu’il perpétue.</mark>
>
> <cite>*[L’épidémie n’a pas de vertus](https://perspectives-printanieres.info/index.php/2020/03/10/lepidemie-na-pas-de-vertus/)* ([cache](/david/cache/2020/58117f5865002118d6769cb0a7aa9786/))</cite>

Une prise de recul sensée sur les réelles origines du (corona)virus qui va au-delà de la [dimension écologique seule](https://www.monde-diplomatique.fr/2020/03/SHAH/61547) mais s’inscrit dans un projet politique de pouvoir et d’inégalités sociales.

Tout est quand même lié : plus de végétariens, moins de (mono)cultures, moins de déforestation, moins de pollution de l’eau, plus de distance entre les virus et les humains.

+ 15
- 0
david/2020/fragments/Docker.md View File

@@ -0,0 +1,15 @@
## Docker

> Code must run behind at least three levels of virtualization now. Code that runs on bare metal is unnecessarily performant.
>
> <cite>*[How is computer programming different today than 20 years ago?](https://medium.com/swlh/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce)* ([cache](/david/cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/))</cite>

La critique est acerbe et juste. J’en suis à refuser des projets car l’empilement de technologies me semble être trop bancal pour ne pas risquer de faire tout tomber sans comprendre ce qu’il s’est passé.

Et je ne parle même pas de la charge mentale associée à toute cette pile technique qui détourne de l’intérêt principal d’un produit. Ni du surcoût pour chaque nouvelle personne souhaitant participer (en dépit de la promesse inverse !). Ou du besoin d’avoir une machine récente pour que tout puisse tourner tellement il y a de couches accumulées.

> So here’s the counterargument: Integrated systems are good. Integrated developers are good. Being able to wrap your mind around the whole application, and have developers who are able to make whole features, is good! The road to madness and despair lays in specialization and compartmentalization.
>
> <cite>*[Integrated systems for integrated programmers](https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/)* ([cache](/david/cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/))</cite>

Je ne veux pas que ma connaissance soit « virtualisée », je ne veux pas que mon application devienne une boîte noire, je ne produis pas de l’électroménager. **J’ai parfois l’impression de me battre contre ma propre prolétarisation.** Suis-je un [Luddite](/david/stream/2018/06/15/) moderne de penser cela ?

+ 23
- 0
david/2020/fragments/JavaScript.md View File

@@ -0,0 +1,23 @@
## JavaScript

> The performance tradeoff isn’t about *where* the bottleneck is. It’s about *who* has to carry the burden. It’s one thing for a developer to push the burden onto a server they control. It’s another thing entirely to expect visitors to carry that load when connectivity and device performance isn’t a constant.
>
> Developer productivity is a great metric, but it can’t be isolated from the larger ecosystem. With Ruby, the tradeoff works because nothing is externalized, and it’s barely even a tradeoff these days. But with large front-end JavaScript frameworks, things aren’t just slow. If that JavaScript isn’t able to be loaded for a variety of reasons, sites don’t just become a little slower. <mark>They break entirely.</mark>
>
> <cite>*[Visitors, Developers, or Machines](https://garrettdimon.com/2020/visitors-developers-or-machines/)* ([cache](/david/cache/2020/af5d5f52466dfc2f59718294faa07418/))</cite>

Je ne peux pas parler de technique et de Web sans parler de JavaScript et de ce que l’on fait subir à chaque personne qui visite une page. Les compromis qui sont fait actuellement sont propres à un contexte qui donne une ascendance aux riches développeurs et développeuses qui peuvent se permettre [avec leur matériel récent](https://hankchizljaw.com/wrote/honesty-is-the-best-policy/) ([cache](/david/cache/2020/195a2ecd81fa25a7cf43248b809bf724/)) de faire des pages tout saufs *réact*ives pour le reste du monde. Ma machine [a bientôt cinq ans](/david/stream/2015/07/19/) et se trouve être limite inutilisable pour du développement web, **comment ose-t-on ?**

Je trouve cela terrible, autant en terme de (non)empathie que de consommation de ressources si l’on considère les coûts de manière globale et transverse. Cela a de quoi [m’empêcher de dormir aussi](https://www.matuzo.at/blog/why-543kb-keep-me-up-at-night/) ([cache](/david/cache/2020/fc97310297178a549eab5c5f9e8a334f/)), déporter une grande partie de la complexité et du calcul du côté du navigateur s’avère être contre-productif *dans une majorité des cas*.

> HTTP 262 JAVASCRIPT UNNECESSARILY REQUIRED; the content is available but you’d better have a good CPU and 15 seconds of free time before the first pixel gets painted
>
> <cite>Taudry Hepburn [sur Twitter](https://twitter.com/tabatkins/status/1232065732034191360)</cite>

On ne peut pas non plus parler de technologie sans son usage et ce n’est pas tant JavaScript que ce qui est fait avec qui m’importune. En tant que développeur, c’est mon quotidien d’apprendre à m’adapter et je sens bien que je pourrais devenir un peu moins incompétent sur le sujet *mais* c’est en tant qu’usager que je n’en peux plus. Manque de résilience, réduction des performances, tentative de prise de contrôle de mon navigateur et je n’évoque même pas tout ce qui essaye de consigner mes moindres clics.

Heureusement que les navigateurs implémentent un *mode lecteur* qui rend certains sites juste… lisibles. Je ne compte plus le nombre de fois où je suis carrément obligé d’aller supprimer un nœud du <abbr title="Document Object Model">DOM</abbr> à la main (!) pour pouvoir afficher une page web. Fâcheux.

---

Aujourd’hui, lorsque la [vanille](http://vanilla-js.com/) ne me suffit plus, j’utilise [StimulusJS](https://stimulusjs.org/) que je trouve être la moins mauvaise solution. On garde du <abbr title="HyperText Markup Language">HTML</abbr> propre et interprétable ce qui facilite l’amélioration progressive. C’est relativement léger compte tenu de l’aide que ça m’apporte pour structurer mon code. Et c’est suffisamment limité pour me permettre de prendre conscience de mon erreur lorsque j’essaye de mettre trop de logique dans le navigateur.

+ 9
- 0
david/2020/fragments/Maitre.md View File

@@ -0,0 +1,9 @@
## Maître

> Il y a quelques minutes, tu as affirmé que j’étais un maître. Mais qu’est-ce qu’un maître ? Je vais te le dire : ce n’est pas celui qui enseigne quelque chose, c’est celui qui incite le disciple à donner le meilleur de lui-même pour qu’il découvre une connaissance déjà présente en lui, au creux se son âme.
>
> <cite>*La Voie de l’Archer*, Paulo Coelho</cite>

J’ai parfois l’impression d’asséner *mes* vérités à longueur d’articles. D’avoir une position haute (hautaine ?) qui ne me convient pas et que j’ai du mal à assumer. Et d’un autre côté, sans cela je n’aurais probablement pas la prétention de publier des choses. Mais serait-ce vraiment une mauvaise chose ?



+ 15
- 0
david/2020/fragments/Mudita.md View File

@@ -0,0 +1,15 @@
## Mudita

> What enough means for me, only concerns me, and should only be compared to myself: where I’m actually at versus where I’m working to get to. As in, am I presently happy or do I assume I’ll be happier in the future, and if so, why?
>
> Enough is the antithesis of unchecked growth because growth encourages mindless consumption and enough requires constant questioning and awareness. Enough is when we reach the upper bound of what’s required.
>
> <cite>*[Enough](https://pjrvs.com/enough)* ([cache](/david/cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/))</cite>

Toutes ces réflexions sont très personnelles. Vous pouvez être à un niveau différent de prise de conscience — et c’est très sain. Vous pouvez aussi avoir des contraintes beaucoup plus fortes où d’autres choix seraient beaucoup plus valides. Pour ma part, **je pense avoir assez d’outils pour continuer des expériences utiles où le facteur limitant n’est pas technique.** Et si jamais il le devient, je serais ravi de savoir qu’il y a des personnes différentes qui sont prêtes à relever ces défis.

> In Sanskrit, there’s a term called *mudita*, and there’s no equivalent word in English. Essentially, it means to have sympathetic or unselfish joy for others—<mark>regardless of where they’re at in their own lives</mark>. Really, if we spend less time envying or assuming that others think less of us because they’re in a different place than we are, then it becomes easier to focus on what’s important to ourselves.
>
> <cite>*Ibid.*</cite>

Chacun sa route, chacun son chemin. Passe le [flux RSS](/david/blog/2019/flux-rss/) à ton voisin (ou ta voisine).

+ 44
- 0
david/2020/fragments/Panic.md View File

@@ -0,0 +1,44 @@
## Panic

> But ultimately, I think I’m telling this story so I can close this panic episode with integrity and honesty. I think I want to tell myself that it’s okay to be weak and imperfect. That it was okay for me to be defensive. That it was okay for me to be angry.
>
> And it’s okay to let the anger go now. Nobody out there is trying to harm me. Nobody out there is trying to force me to admit to mistakes I didn’t make. Nobody out there is trying to make me “wrong”.
>
> <cite>*[Overcoming my panic towards accessibility](https://zellwk.com/blog/overcoming-panic-towards-accessibility/)* ([cache](/david/cache/2020/85e0f968f6ac8dfdd76c7a76df6ef088/))</cite>

Je crois pouvoir comprendre ce sentiment, au moins à mon échelle. Par exemple, lorsque je publie un [bout de CSS pour le surlignage](/david/2020/02/21/#surlignage) et que je me rends compte ensuite qu’avec [un peu de curry](https://www.trysmudford.com/blog/currying-in-css/) ([cache](/david/cache/2020/77db8cc6de2906f31a4d37d91a47a3aa/)) je pourrais arriver à une situation plus élégante (?) utilisant des variables qui ressemblerait à :

```
mark {
background: LightGoldenRodYellow;
}
mark::before,
mark::after {
clip-path: inset(100%);
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
:root,
[lang=en] {
--mark-start: " [highlight start] ";
--mark-end: " [highlight end] ";
}
[lang=fr] {
--mark-start: " [début du surlignage] ";
--mark-end: " [fin du surlignage] ";
}
mark::before {
content: var(--mark-start);
}
mark::after {
content: var(--mark-end);
}
```

Et là je réalise après quelques échanges sur ##openweb (merci [Anthony](https://ricaud.me) !) que je ne fais pas la distinction de langue entre les citations (souvent en anglais) et le texte (souvent en français). Mince.

En voulant améliorer l’accessibilité de mes productions, cela a peut être eu l’effet inverse… en tout cas cela m’aura au moins permis d’en prendre conscience. *Don’t panic.*

+ 23
- 0
david/2020/fragments/Problems.md View File

@@ -0,0 +1,23 @@
## Le problème

> Eventually, I settled on a list of questions I would ask myself for each problem as it arose. I found that asking these questions, in order, helped me make the best decision possible:
>
> 1. Is this really a problem?
> 2. Does the problem need to be solved?
> 3. Does the problem need to be solved now?
> 4. Does the problem need to be solved by me?
> 5. Is there a simpler problem I can solve instead?
>
> Each question is designed to reveal something about the problem that allows you to go to the next step, or if you’re lucky, <mark>just avoid the problem altogether</mark>.
>
> <cite>*[How I think about solving problems](https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/)* ([cache](/david/cache/2020/bdc65ed9d2657f45d13d97186072b415/))</cite>

C’est le principal fléau de notre industrie : tenter de résoudre des problèmes là où il n’y a pas de besoin. Le solutionnisme technologique ne devrait être que la dernière option mais cela serait mauvais pour le *business*. Alors on met des paillettes pour faire passer la pilule et encaisser le chèque en fin de mois.

Vous connaissez le fameux <cite>« Je vous écris une longue lettre parce que je n’ai pas le temps d’en écrire une courte »</cite> de Blaise Pascal, il se trouve que cela s’applique aussi à l’élaboration d’un produit. Les solutions frugales coûtent parfois autant (si ce n’est plus !) que les usines à gaz. Cela prend du temps de comprendre une problématique, cela prend du temps d’échanger avec des utilisateur·ice·s, cela prend du temps de déterminer quelles sont les fonctionnalités qui ne sont pas/plus utiles. **Cela prend du temps de produire des choses im·pertinentes.**

En contrepartie, elles permettent d’économiser sur le long terme en réduisant la maintenance, le périmètre de support et l’exploitation du produit. En se focalisant sur la pertinence, on conserve une application à échelle humaine. Autant dans l’usage que dans la conception.

---

Mon contentement est grand lorsque je suis surpris par la résilience du code auquel je contribue. J’ai soudain l’impression d’avoir pas trop mal fait les choses. C’est assez rare pour être célébré comme il se doit.

+ 7
- 0
david/2020/fragments/Renonciation.md View File

@@ -0,0 +1,7 @@
## Renonciation

> Nous disons : « Pas à pas, j’arrête le murmure du ruisseau. » En vous promenant le long du ruisseau, vous entendrez l’eau couler. Le son est continu, mais vous devez pouvoir l’arrêter si vous voulez l’arrêter. <mark>C’est cela la renonciation.</mark> Différentes pensées l’une après l’autre se succèdent dans votre esprit, mais si vous voulez arrêter votre pensée, vous le pouvez. Quand vous serez capable d’arrêter le murmure du ruisseau, vous apprécierez la sensation de votre travail. Mais tant que vous avez quelque idée fixe, ou que vous êtes pris par une certaine routine de comportement, vous ne pouvez apprécier le vrai sens des choses.
>
> <cite>*[Esprit zen, esprit neuf](/david/2020/12/21/#esprit-zen-esprit-neuf)*, Shunryu Suzuki</cite>

Comment faire pour arrêter une rivière en crue ?

+ 16
- 0
david/2020/fragments/Souvenir.md View File

@@ -0,0 +1,16 @@
## Souvenir

> Les loleurs ont passé des années à pratiquer ce qui était des non-évènements pour eux mais qui étaient autant d’évènements pour celles et ceux qui les recevaient. <mark>Ils les ont oubliés. Nous nous en souvenons.</mark>
>
> **C’est là toute la différence entre les oppresseurs et les opprimés : les oppresseurs aimeraient se souvenir mais ils continuent d’oublier, les opprimés aimeraient oublier mais ils continuent de se souvenir.**
>
> <cite>*[L’affaire de la Ligue du LOL, ou la fabrique de l’oubli](https://medium.com/@florence.porcel/laffaire-de-la-ligue-du-lol-ou-la-fabrique-de-l-oubli-df4ad3f5f2b5)* ([cache](/david/cache/2020/2c6ccd57b9f0f1c39706013d026de507/))</cite>

J’avais déjà lu le (long !) [article de Vincent Glad](https://medium.com/@vincentglad_67276/ligue-du-lol-un-an-apr%C3%A8s-aeee7784cf4d) ([cache](/david/cache/2020/ac3266635585d387973da1c64b546990/)) qui fait une rétrospective de ce qu’il a vécu au cours de l’année passée. Au-delà du fait que ces deux publications sont sur Medium qui produit du <abbr title="HyperText Markup Language">HTML</abbr> de plus en plus dégueulasse (ce que je trouve triste *et* embarrassant lorsqu’on évoque des publications qui ont été plus ou moins pérennes), je trouve cela intéressant à plus d’un titre d’avoir les deux points de vue.

J’en retiens deux choses :

1. l’oppression est forcément une interprétation et à ce titre ne peut se réduire qu’en établissant un échange entre l’oppreseur·se et l’oppressé·e
2. notre cerveau essaye de nous protéger de ce que l’on a subi et/ou fait subir dans notre vie en altérant notre souvenance de ces moments là

Si l’on combine ces deux axiomes, j’ai probablement eu des comportements — dont je n’ai pas forcément souvenir ou conscience — qui ont pu être oppressifs. Si vous vous en êtes senti·e victime, je vous invite à engager le dialogue.

+ 9
- 0
david/2020/fragments/Techbro.md View File

@@ -0,0 +1,9 @@
## Techbro

> The prodigal tech bro doesn’t so much take an off-ramp from the relatively high status and well-paid job he left when the scales fell from his eyes, as zoom up an on-ramp into a new sector that accepts the reputational currency he has accumulated. <mark>He’s not joining the resistance.</mark> He’s launching a new kind of start-up using his industry contacts for seed-funding in return for some reputation-laundering.
>
> <cite>*[The Prodigal Techbro](https://conversationalist.org/2020/03/05/the-prodigal-techbro/)* ([cache](/david/cache/2020/4bda6c744ffb55c0fc4f4bf1f740b4e3/))</cite>

Cet article est d’une grande justesse. Je n’oublie pas que j’ai participé à l’immonde en travaillant — brièvement — pour la haute finance et — moins brièvement — pour le jeu en ligne. Je n’ai de leçons à donner à personne en terme d’éthique, surtout dans un domaine qui laisse une relative liberté quant au choix des missions choisies.

Le chemin était sans doute nécessaire pour en arriver là où j’en suis mais ce n’est en aucun cas une justification pour avoir fait ces choix pour le moins douteux précédemment.

+ 15
- 0
david/2020/fragments/Tendance.md View File

@@ -0,0 +1,15 @@
## Tendance

> tiens, une question pour les vieux réacs : quelle est la dernière chose tendance que vous trouvez utile ?
>
> <cite>*via <abbr title="Internet Relay Chat">IRC</abbr>*</cite>

**Alléger.** Proposer un [web de documents](http://blog.danieljanus.pl/2019/10/07/web-of-documents/) ([cache](/david/cache/2020/31652af3fd4757154c51aadcbe9ffb39/)) lorsqu’il est possible. Fuir ce qui ressemble à de [l’hydratation (?!)](https://adactio.com/journal/16404) ([cache](/david/cache/2020/911b72ae5d6e140268adf8591aae7df3/)) ou toute autre fausse bonne idée réduisant l’accessibilité (et les performances mais c’est pour moi un pléonasme).

Prendre le temps d’expliquer pourquoi vous avez fait ces choix dans ce contexte particulier. Partager le fait que l’on peut faire des choses chouettes en utilisant des « [boring technologies](https://mcfunley.com/choose-boring-technology) ([cache](/david/cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/)) », que la valeur n’est pas forcément là. Se méfier aussi de ce qui semble *boring* mais [n’est pas pour autant trivial](https://daverupert.com/2020/02/html-the-inaccessible-parts/) ([cache](/david/cache/2020/a70068c881eba36604b2f4f8aec54670/)) ou bien toujours [incompris par beaucoup](https://css-tricks.com/why-is-css-frustrating/) ([cache](/david/cache/2020/afb9fa99e3c43324fbe57b416562b8f9/)).

On peut courir après la technologie, c’est plaisant une heure par-ci par-là pour découvrir de nouveaux paysages. De temps en temps même un petit marathon pour rester en forme. Mais à force d’être focalisé sur les prochains pas, j’en étais arrivé à perdre de vue l’intérêt du chemin. Un périple au service de *ma* vision de l’utilité.

---

Je suis conscient que je me tire peut-être une balle dans le pied en énonçant toutes ces frustrations publiquement. Ou peut-être que cela me permettra au contraire d’entrer en contact avec des personnes qui partagent cette approche. On verra bien, n’hésitez pas à me contacter pour échanger là-dessus.

+ 5
- 0
david/2020/fragments/The Game Changers.md View File

@@ -0,0 +1,5 @@
## The Game Changers

[Documentaire](https://fr.wikipedia.org/wiki/The_Game_Changers) assez [controversé](https://en.wikipedia.org/wiki/The_Game_Changers#Criticisms) sur le véganisme et son impact sur le corps, notamment dans le sport de haut niveau. Je suis loin d’être *vegan*, notamment car je consomme encore pas mal d’œufs et de fromage, et j’ai pu observer des transformations sur mon corps mais le contexte était tellement changeant qu’il est difficile d’arriver à la moindre conclusion personnelle.

Ce qui me semble assez clair par contre c’est qu’il s’agit d’un levier important pour moins détériorer la planète. Et ce, pour un inconfort *quasi* nul. Je ne sais pas si c’est bon pour l’organisme mais ça soulage déjà mon cerveau !

+ 20
- 0
david/2020/fragments/Transmission.md View File

@@ -0,0 +1,20 @@
## Transmission

> Aucun code n’a changé ma vie.
>
> <cite>*via Mastodon, publication privée*</cite>

On touche ici du doigt une chose qui me semble être essentielle, le fait de savoir écouter *et* aussi de prendre la parole pour accompagner et montrer avec une petite lanterne que d’autres voies sont possibles. Qu’il y a un autre niveau de plaisir à rendre disponibles des outils utiles et relativement frugaux.

Aucun code n’a changé ma vie mais le fait de partager mes réflexions dessus a eu des conséquences non négligeables. Que ce soit sur cet espace ou lors de conférences ou par courriel ou en échangeant avec des collègues ou autres. Chaque échange est une occasion de me faire changer et *en même temps* de faire changer mon interlocuteur·ice.

Sans l’imposer, raconter une voie qui pourrait résonner chez l’autre. Sans prétention autre que celle de dire que cela existe, que certaines utopies ne sont pas si inaccessibles.

> L’avan­tage c’est qu’a­vec l’ex­pé­rience, norma­le­ment, vous pouvez appor­ter plus que votre code. Le péri­mètre n’a aucune raison d’être iden­tique avec les années.
>
> <cite>*[Vieux développeur, pas manager](https://n.survol.fr/n/vieux-developpeur-pas-manager)* ([cache](/david/cache/2020/874765e437a144748e9438d272b1177a/))</cite>

Exactement, vous pouvez accompagner d’autres personnes, participer à la conception du produit, interviewer des utilisateur·ice·s, et pleins d’autres trucs auxquels je ne pense pas. Si ça se trouve, vous commencez à suffisamment vous connaître pour prendre du recul au bon moment afin de ne pas devenir un goulot d’étranglement ou tout simplement vous protéger.

*Tout cela a de la valeur.*


+ 11
- 0
david/2020/fragments/Une suite.md View File

@@ -0,0 +1,11 @@
## Une suite ?

Vous avez été nombreux (comprendre, environ deux) à me demander s’il y avait une suite à [Minimalisme et esthétique](/david/blog/2016/minimalisme-esthetique/) puis [Simplicité par défaut](/david/blog/2016/simplicite-defaut/) et comme les trilogies vont toujours mieux par trois, vous pouvez considérer ce qui suit comme *mon* cheminement personnel ces quatre dernières années.

L’état de l’art en matière de développement web n’a pas vraiment l’air d’être allé vers davantage de simplicité, de minimalisme et encore moins d’esthétisme au cours de cet intervalle. *C’est peu de le dire, enfin l’écrire.* Ce qui a changé par contre, c’est mon expérience — d’aucuns appelleraient ça vieillesse — et mon envie d’échapper à cela en fuyant les produits et donc équipes qui mettent la technique avant les utilisateur·ice·s.

Je vous divulgâche le résultat tout de suite : je me sens plus apaisé sur ce plan là. La présence de [Ronan](https://ronan.amicel.net/) dans mon [équipe actuelle](/david/blog/2019/faire-equipe/) n’est pas étrangère à ce sentiment mais le choix des technologies employées me donne *aussi* un sentiment de contrôle salutaire.

---

En guise d’introduction aussi, j’ai conscience d’être dans un [environnement](http://scopyleft.fr/) [extrêmement](https://beta.gouv.fr/) [privilégié](http://larlet.com/) me permettant d’avoir la liberté suffisante pour être en capacité de faire ces choix. C’est loin d’être anodin dans l’exploration qui suit.

+ 4
- 0
david/2020/index.html View File

@@ -33,6 +33,10 @@
<article>
<nav>
<h2><a href="/david/2020/03/13/">Technique</a> (2020-03-13)</h2>
<p><em>Cette fois promis c’est l’album de la maturité.</em></p>
<h2><a href="/david/2020/02/21/">Service</a> (2020-02-21)</h2>
<p><em>À quoi consacrer mon temps ?</em></p>

+ 2
- 0
david/index.html View File

@@ -50,6 +50,8 @@
<nav>
<ul>
<li><a href="/david/2020/03/13/">Technique</a> (2020-03-13)</li>
<li><a href="/david/2020/02/21/">Service</a> (2020-02-21)</li>
<li><a href="/david/2020/02/14/">Espoirs</a> (2020-02-14)</li>

+ 92
- 1
david/log/index.xml View File

@@ -5,13 +5,104 @@
<link href="https://larlet.fr/david/" rel="alternate" type="text/html" />
<link href="https://larlet.fr/david/log/" rel="self" />
<id>https://larlet.fr/david/</id>
<updated>2020-02-25T12:00:00+01:00</updated>
<updated>2020-03-13T12:00:00+01:00</updated>
<author>
<name>David Larlet</name>
<uri>https://larlet.fr/david/</uri>
</author>
<rights>Copyright (c) 2004-2020, David Larlet</rights>
<entry xml:lang="fr">
<title>Technique</title>
<link href="https://larlet.fr/david/2020/03/13/" rel="alternate" type="text/html" />
<updated>2020-03-13T12:00:00+01:00</updated>
<id>https://larlet.fr/david/2020/03/13/</id>
<summary type="html">
&lt;p&gt;&lt;em&gt;Cette fois promis c’est l’album de la maturité.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;une-suite&quot;&gt;Une suite ? &lt;a href=&quot;https://larlet.fr/david/2020/03/13/#une-suite&quot; title=&quot;Ancre vers cette partie&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Vous avez été nombreux (comprendre, environ deux) à me demander s’il y avait une suite à &lt;a href=&quot;https://larlet.fr/david/blog/2016/minimalisme-esthetique/&quot;&gt;Minimalisme et esthétique&lt;/a&gt; puis &lt;a href=&quot;https://larlet.fr/david/blog/2016/simplicite-defaut/&quot;&gt;Simplicité par défaut&lt;/a&gt; et comme les trilogies vont toujours mieux par trois, vous pouvez considérer ce qui suit comme &lt;em&gt;mon&lt;/em&gt; cheminement personnel ces quatre dernières années.&lt;/p&gt;
&lt;p&gt;L’état de l’art en matière de développement web n’a pas vraiment l’air d’être allé vers davantage de simplicité, de minimalisme et encore moins d’esthétisme au cours de cet intervalle. &lt;em&gt;C’est peu de le dire, enfin l’écrire.&lt;/em&gt; Ce qui a changé par contre, c’est mon expérience — d’aucuns appelleraient ça vieillesse — et mon envie d’échapper à cela en fuyant les produits et donc équipes qui mettent la technique avant les utilisateur·ice·s.&lt;/p&gt;
&lt;p&gt;Je vous divulgâche le résultat tout de suite : je me sens plus apaisé sur ce plan là. La présence de &lt;a href=&quot;https://ronan.amicel.net/&quot;&gt;Ronan&lt;/a&gt; dans mon &lt;a href=&quot;https://larlet.fr/david/blog/2019/faire-equipe/&quot;&gt;équipe actuelle&lt;/a&gt; n’est pas étrangère à ce sentiment mais le choix des technologies employées me donne &lt;em&gt;aussi&lt;/em&gt; un sentiment de contrôle salutaire.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;En guise d’introduction aussi, j’ai conscience d’être dans un &lt;a href=&quot;http://scopyleft.fr/&quot;&gt;environnement&lt;/a&gt; &lt;a href=&quot;https://beta.gouv.fr/&quot;&gt;extrêmement&lt;/a&gt; &lt;a href=&quot;http://larlet.com/&quot;&gt;privilégié&lt;/a&gt; me permettant d’avoir la liberté suffisante pour être en capacité de faire ces choix. C’est loin d’être anodin dans l’exploration qui suit.&lt;/p&gt;
&lt;h2 id=&quot;le-probleme&quot;&gt;Le problème &lt;a href=&quot;https://larlet.fr/david/2020/03/13/#le-probleme&quot; title=&quot;Ancre vers cette partie&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Eventually, I settled on a list of questions I would ask myself for each problem as it arose. I found that asking these questions, in order, helped me make the best decision possible:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Is this really a problem?&lt;/li&gt;
&lt;li&gt;Does the problem need to be solved?&lt;/li&gt;
&lt;li&gt;Does the problem need to be solved now?&lt;/li&gt;
&lt;li&gt;Does the problem need to be solved by me?&lt;/li&gt;
&lt;li&gt;Is there a simpler problem I can solve instead?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Each question is designed to reveal something about the problem that allows you to go to the next step, or if you’re lucky, &lt;mark&gt;just avoid the problem altogether&lt;/mark&gt;.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/&quot;&gt;How I think about solving problems&lt;/a&gt;&lt;/em&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/bdc65ed9d2657f45d13d97186072b415/&quot;&gt;cache&lt;/a&gt;)&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C’est le principal fléau de notre industrie : tenter de résoudre des problèmes là où il n’y a pas de besoin. Le solutionnisme technologique ne devrait être que la dernière option mais cela serait mauvais pour le &lt;em&gt;business&lt;/em&gt;. Alors on met des paillettes pour faire passer la pilule et encaisser le chèque en fin de mois.&lt;/p&gt;
&lt;p&gt;Vous connaissez le fameux &lt;cite&gt;« Je vous écris une longue lettre parce que je n’ai pas le temps d’en écrire une courte »&lt;/cite&gt; de Blaise Pascal, il se trouve que cela s’applique aussi à l’élaboration d’un produit. Les solutions frugales coûtent parfois autant (si ce n’est plus !) que les usines à gaz. Cela prend du temps de comprendre une problématique, cela prend du temps d’échanger avec des utilisateur·ice·s, cela prend du temps de déterminer quelles sont les fonctionnalités qui ne sont pas/plus utiles. &lt;strong&gt;Cela prend du temps de produire des choses im·pertinentes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En contrepartie, elles permettent d’économiser sur le long terme en réduisant la maintenance, le périmètre de support et l’exploitation du produit. En se focalisant sur la pertinence, on conserve une application à échelle humaine. Autant dans l’usage que dans la conception.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Mon contentement est grand lorsque je suis surpris par la résilience du code auquel je contribue. J’ai soudain l’impression d’avoir pas trop mal fait les choses. C’est assez rare pour être célébré comme il se doit.&lt;/p&gt;
&lt;h2 id=&quot;javascript&quot;&gt;JavaScript &lt;a href=&quot;https://larlet.fr/david/2020/03/13/#javascript&quot; title=&quot;Ancre vers cette partie&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;The performance tradeoff isn’t about &lt;em&gt;where&lt;/em&gt; the bottleneck is. It’s about &lt;em&gt;who&lt;/em&gt; has to carry the burden. It’s one thing for a developer to push the burden onto a server they control. It’s another thing entirely to expect visitors to carry that load when connectivity and device performance isn’t a constant.&lt;/p&gt;
&lt;p&gt;Developer productivity is a great metric, but it can’t be isolated from the larger ecosystem. With Ruby, the tradeoff works because nothing is externalized, and it’s barely even a tradeoff these days. But with large front-end JavaScript frameworks, things aren’t just slow. If that JavaScript isn’t able to be loaded for a variety of reasons, sites don’t just become a little slower. &lt;mark&gt;They break entirely.&lt;/mark&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://garrettdimon.com/2020/visitors-developers-or-machines/&quot;&gt;Visitors, Developers, or Machines&lt;/a&gt;&lt;/em&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/af5d5f52466dfc2f59718294faa07418/&quot;&gt;cache&lt;/a&gt;)&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Je ne peux pas parler de technique et de Web sans parler de JavaScript et de ce que l’on fait subir à chaque personne qui visite une page. Les compromis qui sont fait actuellement sont propres à un contexte qui donne une ascendance aux riches développeurs et développeuses qui peuvent se permettre &lt;a href=&quot;https://hankchizljaw.com/wrote/honesty-is-the-best-policy/&quot;&gt;avec leur matériel récent&lt;/a&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/195a2ecd81fa25a7cf43248b809bf724/&quot;&gt;cache&lt;/a&gt;) de faire des pages tout saufs &lt;em&gt;réact&lt;/em&gt;ives pour le reste du monde. Ma machine &lt;a href=&quot;https://larlet.fr/david/stream/2015/07/19/&quot;&gt;a bientôt cinq ans&lt;/a&gt; et se trouve être limite inutilisable pour du développement web, &lt;strong&gt;comment ose-t-on ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Je trouve cela terrible, autant en terme de (non)empathie que de consommation de ressources si l’on considère les coûts de manière globale et transverse. Cela a de quoi &lt;a href=&quot;https://www.matuzo.at/blog/why-543kb-keep-me-up-at-night/&quot;&gt;m’empêcher de dormir aussi&lt;/a&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/fc97310297178a549eab5c5f9e8a334f/&quot;&gt;cache&lt;/a&gt;), déporter une grande partie de la complexité et du calcul du côté du navigateur s’avère être contre-productif &lt;em&gt;dans une majorité des cas&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;HTTP 262 JAVASCRIPT UNNECESSARILY REQUIRED; the content is available but you’d better have a good CPU and 15 seconds of free time before the first pixel gets painted&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;Taudry Hepburn &lt;a href=&quot;https://twitter.com/tabatkins/status/1232065732034191360&quot;&gt;sur Twitter&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On ne peut pas non plus parler de technologie sans son usage et ce n’est pas tant JavaScript que ce qui est fait avec qui m’importune. En tant que développeur, c’est mon quotidien d’apprendre à m’adapter et je sens bien que je pourrais devenir un peu moins incompétent sur le sujet &lt;em&gt;mais&lt;/em&gt; c’est en tant qu’usager que je n’en peux plus. Manque de résilience, réduction des performances, tentative de prise de contrôle de mon navigateur et je n’évoque même pas tout ce qui essaye de consigner mes moindres clics.&lt;/p&gt;
&lt;p&gt;Heureusement que les navigateurs implémentent un &lt;em&gt;mode lecteur&lt;/em&gt; qui rend certains sites juste… lisibles. Je ne compte plus le nombre de fois où je suis carrément obligé d’aller supprimer un nœud du &lt;abbr title=&quot;Document Object Model&quot;&gt;DOM&lt;/abbr&gt; à la main (!) pour pouvoir afficher une page web. Fâcheux.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Aujourd’hui, lorsque la &lt;a href=&quot;http://vanilla-js.com/&quot;&gt;vanille&lt;/a&gt; ne me suffit plus, j’utilise &lt;a href=&quot;https://stimulusjs.org/&quot;&gt;StimulusJS&lt;/a&gt; que je trouve être la moins mauvaise solution. On garde du &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; propre et interprétable ce qui facilite l’amélioration progressive. C’est relativement léger compte tenu de l’aide que ça m’apporte pour structurer mon code. Et c’est suffisamment limité pour me permettre de prendre conscience de mon erreur lorsque j’essaye de mettre trop de logique dans le navigateur.&lt;/p&gt;
&lt;h2 id=&quot;transmission&quot;&gt;Transmission &lt;a href=&quot;https://larlet.fr/david/2020/03/13/#transmission&quot; title=&quot;Ancre vers cette partie&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Aucun code n’a changé ma vie.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;via Mastodon, publication privée&lt;/em&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On touche ici du doigt une chose qui me semble être essentielle, le fait de savoir écouter &lt;em&gt;et&lt;/em&gt; aussi de prendre la parole pour accompagner et montrer avec une petite lanterne que d’autres voies sont possibles. Qu’il y a un autre niveau de plaisir à rendre disponibles des outils utiles et relativement frugaux.&lt;/p&gt;
&lt;p&gt;Aucun code n’a changé ma vie mais le fait de partager mes réflexions dessus a eu des conséquences non négligeables. Que ce soit sur cet espace ou lors de conférences ou par courriel ou en échangeant avec des collègues ou autres. Chaque échange est une occasion de me faire changer et &lt;em&gt;en même temps&lt;/em&gt; de faire changer mon interlocuteur·ice.&lt;/p&gt;
&lt;p&gt;Sans l’imposer, raconter une voie qui pourrait résonner chez l’autre. Sans prétention autre que celle de dire que cela existe, que certaines utopies ne sont pas si inaccessibles.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L’avan­tage c’est qu’a­vec l’ex­pé­rience, norma­le­ment, vous pouvez appor­ter plus que votre code. Le péri­mètre n’a aucune raison d’être iden­tique avec les années.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://n.survol.fr/n/vieux-developpeur-pas-manager&quot;&gt;Vieux développeur, pas manager&lt;/a&gt;&lt;/em&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/874765e437a144748e9438d272b1177a/&quot;&gt;cache&lt;/a&gt;)&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Exactement, vous pouvez accompagner d’autres personnes, participer à la conception du produit, interviewer des utilisateur·ice·s, et pleins d’autres trucs auxquels je ne pense pas. Si ça se trouve, vous commencez à suffisamment vous connaître pour prendre du recul au bon moment afin de ne pas devenir un goulot d’étranglement ou tout simplement vous protéger.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tout cela a de la valeur.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;tendance&quot;&gt;Tendance &lt;a href=&quot;https://larlet.fr/david/2020/03/13/#tendance&quot; title=&quot;Ancre vers cette partie&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;tiens, une question pour les vieux réacs : quelle est la dernière chose tendance que vous trouvez utile ?&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;via &lt;abbr title=&quot;Internet Relay Chat&quot;&gt;IRC&lt;/abbr&gt;&lt;/em&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Alléger.&lt;/strong&gt; Proposer un &lt;a href=&quot;http://blog.danieljanus.pl/2019/10/07/web-of-documents/&quot;&gt;web de documents&lt;/a&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/31652af3fd4757154c51aadcbe9ffb39/&quot;&gt;cache&lt;/a&gt;) lorsqu’il est possible. Fuir ce qui ressemble à de &lt;a href=&quot;https://adactio.com/journal/16404&quot;&gt;l’hydratation (?!)&lt;/a&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/911b72ae5d6e140268adf8591aae7df3/&quot;&gt;cache&lt;/a&gt;) ou toute autre fausse bonne idée réduisant l’accessibilité (et les performances mais c’est pour moi un pléonasme).&lt;/p&gt;
&lt;p&gt;Prendre le temps d’expliquer pourquoi vous avez fait ces choix dans ce contexte particulier. Partager le fait que l’on peut faire des choses chouettes en utilisant des « &lt;a href=&quot;https://mcfunley.com/choose-boring-technology&quot;&gt;boring technologies&lt;/a&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/&quot;&gt;cache&lt;/a&gt;) », que la valeur n’est pas forcément là. Se méfier aussi de ce qui semble &lt;em&gt;boring&lt;/em&gt; mais &lt;a href=&quot;https://daverupert.com/2020/02/html-the-inaccessible-parts/&quot;&gt;n’est pas pour autant trivial&lt;/a&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/a70068c881eba36604b2f4f8aec54670/&quot;&gt;cache&lt;/a&gt;) ou bien toujours &lt;a href=&quot;https://css-tricks.com/why-is-css-frustrating/&quot;&gt;incompris par beaucoup&lt;/a&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/afb9fa99e3c43324fbe57b416562b8f9/&quot;&gt;cache&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;On peut courir après la technologie, c’est plaisant une heure par-ci par-là pour découvrir de nouveaux paysages. De temps en temps même un petit marathon pour rester en forme. Mais à force d’être focalisé sur les prochains pas, j’en étais arrivé à perdre de vue l’intérêt du chemin. Un périple au service de &lt;em&gt;ma&lt;/em&gt; vision de l’utilité.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Je suis conscient que je me tire peut-être une balle dans le pied en énonçant toutes ces frustrations publiquement. Ou peut-être que cela me permettra au contraire d’entrer en contact avec des personnes qui partagent cette approche. On verra bien, n’hésitez pas à me contacter pour échanger là-dessus.&lt;/p&gt;
&lt;h2 id=&quot;docker&quot;&gt;Docker &lt;a href=&quot;https://larlet.fr/david/2020/03/13/#docker&quot; title=&quot;Ancre vers cette partie&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Code must run behind at least three levels of virtualization now. Code that runs on bare metal is unnecessarily performant.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://medium.com/swlh/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce&quot;&gt;How is computer programming different today than 20 years ago?&lt;/a&gt;&lt;/em&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/&quot;&gt;cache&lt;/a&gt;)&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La critique est acerbe et juste. J’en suis à refuser des projets car l’empilement de technologies me semble être trop bancal pour ne pas risquer de faire tout tomber sans comprendre ce qu’il s’est passé.&lt;/p&gt;
&lt;p&gt;Et je ne parle même pas de la charge mentale associée à toute cette pile technique qui détourne de l’intérêt principal d’un produit. Ni du surcoût pour chaque nouvelle personne souhaitant participer (en dépit de la promesse inverse !). Ou du besoin d’avoir une machine récente pour que tout puisse tourner tellement il y a de couches accumulées.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So here’s the counterargument: Integrated systems are good. Integrated developers are good. Being able to wrap your mind around the whole application, and have developers who are able to make whole features, is good! The road to madness and despair lays in specialization and compartmentalization.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/&quot;&gt;Integrated systems for integrated programmers&lt;/a&gt;&lt;/em&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/&quot;&gt;cache&lt;/a&gt;)&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Je ne veux pas que ma connaissance soit « virtualisée », je ne veux pas que mon application devienne une boîte noire, je ne produis pas de l’électroménager. &lt;strong&gt;J’ai parfois l’impression de me battre contre ma propre prolétarisation.&lt;/strong&gt; Suis-je un &lt;a href=&quot;https://larlet.fr/david/stream/2018/06/15/&quot;&gt;Luddite&lt;/a&gt; moderne de penser cela ?&lt;/p&gt;
&lt;h2 id=&quot;mudita&quot;&gt;Mudita &lt;a href=&quot;https://larlet.fr/david/2020/03/13/#mudita&quot; title=&quot;Ancre vers cette partie&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;What enough means for me, only concerns me, and should only be compared to myself: where I’m actually at versus where I’m working to get to. As in, am I presently happy or do I assume I’ll be happier in the future, and if so, why?&lt;/p&gt;
&lt;p&gt;Enough is the antithesis of unchecked growth because growth encourages mindless consumption and enough requires constant questioning and awareness. Enough is when we reach the upper bound of what’s required.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://pjrvs.com/enough&quot;&gt;Enough&lt;/a&gt;&lt;/em&gt; (&lt;a href=&quot;https://larlet.fr/david/cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/&quot;&gt;cache&lt;/a&gt;)&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Toutes ces réflexions sont très personnelles. Vous pouvez être à un niveau différent de prise de conscience — et c’est très sain. Vous pouvez aussi avoir des contraintes beaucoup plus fortes où d’autres choix seraient beaucoup plus valides. Pour ma part, &lt;strong&gt;je pense avoir assez d’outils pour continuer des expériences utiles où le facteur limitant n’est pas technique.&lt;/strong&gt; Et si jamais il le devient, je serais ravi de savoir qu’il y a des personnes différentes qui sont prêtes à relever ces défis.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In Sanskrit, there’s a term called &lt;em&gt;mudita&lt;/em&gt;, and there’s no equivalent word in English. Essentially, it means to have sympathetic or unselfish joy for others—&lt;mark&gt;regardless of where they’re at in their own lives&lt;/mark&gt;. Really, if we spend less time envying or assuming that others think less of us because they’re in a different place than we are, then it becomes easier to focus on what’s important to ourselves.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;Ibid.&lt;/em&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Chacun sa route, chacun son chemin. Passe le &lt;a href=&quot;https://larlet.fr/david/blog/2019/flux-rss/&quot;&gt;flux RSS&lt;/a&gt; à ton voisin (ou ta voisine).&lt;/p&gt;
</summary>
</entry>
<entry xml:lang="fr">
<title>Service</title>
<link href="https://larlet.fr/david/2020/02/21/" rel="alternate" type="text/html" />

Loading…
Cancel
Save