123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560 |
- <!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` element
- 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>Tag #travail — David Larlet</title>
- <meta name="description" content="Publications relatives au tag #travail">
- <!-- That good ol' feed, subscribe :). -->
- <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
- <!-- 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="#f7f7f7">
- <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
- <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
- <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
- <!-- Documented, feel free to shoot an email. -->
- <link rel="stylesheet" href="/static/david/css/style_2021-01-20.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" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
- <script>
- function toggleTheme(themeName) {
- document.documentElement.classList.toggle(
- 'forced-dark',
- themeName === 'dark'
- )
- document.documentElement.classList.toggle(
- 'forced-light',
- themeName === 'light'
- )
- }
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme !== 'undefined') {
- toggleTheme(selectedTheme)
- }
- </script>
-
- <style type="text/css">
- details[open] summary {
- display: none;
- }
- </style>
-
- <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
-
-
- <header>
- <h1>Publications relatives au tag #travail</h1>
- </header>
- <nav>
- <p class="center">
- <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
- </svg> Accueil</a>
- • <a rel="tags" href="/david/#tags" title="Liste de toutes les étiquettes"><svg class="icon icon-tags">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-tags"></use>
- </svg> Étiquettes</a>
- </p>
- </nav>
- <hr>
- <main>
- <p>Les plus récentes en premier, les 3 premières sont dépliées et ensuite c’est à la demande, bonne exploration !</p>
-
- <h2><a href="/david/2021/11/23/" title="Lien permanent vers cet article">Horaires</a> (2021-11-23)</h2>
-
-
-
- <blockquote>
- <p>Autrement dit et pour résumer ces transformations, on peut parfaitement envisager dès maintenant une réduction massive du temps de travail. Ce n’est pas du tout « utopique » ou imaginaire de réclamer deux heures de travail par jour, du moins dans les secteurs susceptibles de l’automatisation-informatisation. D’ailleurs, compte tenu du fait que <mark>l’usure nerveuse est beaucoup plus grave et moins réparable que la fatigue musculaire</mark>, il est devenu indispensable dans ces métiers d’abréger les séquences de travail continu et de réduire déjà sérieusement la durée de la journée de travail. Mais ceci pourrait aller beaucoup plus loin. Or, il semble que ni dans le monde capitaliste ni dans le monde socialiste on ne soit décider à entrer dans cette voie. Il y a comme un blocage qui s’est effectué, et l’on <em>choisit</em> délibérément de ne pas appliquer les moyens techniques que l’on a à sa disposition pour maintenir l’ancienne structure à dominante industrielle. On introduit seulement de façon incoordonnée, à dose homéopathique, tel ou tel procédé. On automatise ici une chaîne de montage. On met en place une banque de données. On introduit un ordinateur etc. Mais il y a en réalité répugnance à changer le système.</p>
- <p>Ceci provient d’un certain nombre de difficultés qu’il ne faut pas méconnaître : une inadaptation idéologique évidente. Il y a une répugnance à abandonner « l’idéologie du travail », une angoisse à l’idée de tellement de temps « libre ». On ne sait pas ce que deviendrait la vie humaine si elle n’était pas remplie par le travail. On soupçonne que cela supposerait un changement radical, total de société, de ses orientations, de ses objectifs, de ses structures, mais on n’est pas mûr pour tenter une pareille expérience.</p>
- <p><cite><em>Pour qui, pour quoi travaillons-nous ?</em>, Jacques Ellul, Foi & Vie, n°4, juillet 1980</cite></p>
- </blockquote>
- <p>Facturation à la journée, à l’heure, parfois sur des créneaux un peu hybrides. Pas facile de trouver la granularité qui soit la plus pertinente en ce moment. À la fois pour mon énergie, et pour les produits, et pour les équipes.</p>
- <p>À cela vient s’intégrer, de manière transverse, la pénibilité de la tâche en elle-même. Comment facturer au temps lorsque cette durée n’est pas fatigante de manière équivalente d’une heure sur l’autre ? <em>Quid</em> de l’implication émotionnelle ? De ce <em>bug</em> que l’on amène courir avec soi ? De ce commentaire qui va longtemps rester en travers ?</p>
- <p>Je ne sais pas si la solution est la <a href="https://adactio.com/journal/18620">semaine</a> (<a href="/david/cache/2021/6513cd7104f4e6a8c7b3e0d759b467d8/">cache</a>) de <a href="https://blog.le-filament.com/posts/semaine-4jours/">4 jours</a> (<a href="/david/cache/2021/c535b353e2af3eb65e4cf0de232bdad5/">cache</a>) ou celle de <a href="https://www.youtube.com/watch?v=iM2nQuwwuKQ">168 heures</a>, il y a du vrai dans chacune de ces approches et des ressentis différents vis-à-vis du travail. De ces <a href="https://oncletom.io/2021/08/16/victoire-professionnels/">activités ayant créées des professions</a> (<a href="/david/cache/2021/1e65aa7484aa157870c2a1b735f36a26/">cache</a>) très lucratives et dont je bénéficie si facilement.</p>
- <p>Je payerais cher pour savoir ce que penserait Jacques Ellul d’une telle situation.</p>
- <hr />
- <p><mark>Lu depuis :</mark></p>
-
- <blockquote>
- <p>Mais il faudrait déjà que l’on se parle<br />
- Malgré les bouchons d’oreille les machines qui martèlent nos silences à la pause pourquoi se dire et quoi se dire d’ailleurs<br />
- Que l’on en chie<br />
- Que l’on peine à trouver le sommeil le week-end<br />
- Mais que l’on fait<br />
- Comme si<br />
- Tout allait bien<br />
- On a un boulot<br />
- Même si de merde<br />
- Même si l’on ne se repose pas<br />
- On gagne des sous<br />
- Et l’usine nous bouffera<br />
- Et nous bouffe déjà</p>
- <p><cite><em>À la ligne</em>, Joseph Ponthus</cite></p>
- </blockquote>
- <p>De quoi remettre en perspective mes questionnements de privilégié.</p>
-
-
-
-
- <h2><a href="/david/2021/10/29/" title="Lien permanent vers cet article">Vélocité</a> (2021-10-29)</h2>
-
-
-
- <blockquote lang="en">
- <p>It’s true that the gains from picking the right problem can be greater than the gains from having better tactical execution because the gains from picking the right problem can be unbounded, but it’s also much <mark>easier to improve tactical execution</mark> and doing so also helps with picking the right problem because having faster execution lets you experiment more quickly, which helps you find the right problem.</p>
- <p><cite><em><a href="https://danluu.com/productivity-velocity/">Some reasons to work on productivity and velocity</a></em> (<a href="/david/cache/2021/50e183c99474ec15a833b2375aea1faf/">cache</a>)</cite></p>
- </blockquote>
- <p>Une réflexion récente de <a href="http://scopyleft.fr/">Sarah</a> sur la vitesse (dans un contexte de développement) m’a interpellé car je suis de moins en moins convaincu que ce soit un facteur de <em>réussite</em> important pour un produit. Et c’est là où il va falloir définir « réussite ». C’est un peu un accident lorsque ça marche :</p>
- <ul>
- <li>un public qui a un besoin ;</li>
- <li>un produit qui est connu de ce public ;</li>
- <li>une équipe qui se fait confiance ;</li>
- <li>un budget/revenu qui permet d’arriver à un produit fonctionnel ;</li>
- <li>une connaissance autour de la problématique qui est capitalisée ;</li>
- <li>etc.</li>
- </ul>
- <p>La vitesse d’avancement de l’équipe technique dans tout ça est rarement le goulot d’étranglement. (En ayant conscience du biais de ne pas vouloir faire partie de ce goulot, qui m’invisibilise peut-être des situations passées…).</p>
- <p>Si ça se trouve, introduire un peu de lenteur permet de mieux évaluer la pertinence de ce que l’on expérimente parfois, de prendre du recul, de trouver des solutions moins techniques, de diluer la pression, d’avoir davantage d’interactions avec les utilisateur·ices. Si ça se trouve.</p>
-
- <blockquote lang="en">
- <p>The acceleration of our collective pace of life is not a result of stupidity or irrationality; rather, it is a symptom of what is perfectly predicted by the prisoner’s dilemma at a global scale: Hyper-rational individuals making hyper-rational decisions on how to spend their time by launching into an inescapable arms race of productivity. <mark>Burnout is inevitable.</mark></p>
- <p><cite><em><a href="https://zandercutt.com/2019/02/18/were-optimizing-ourselves-to-death/">We’re Optimizing Ourselves to Death</a></em> (<a href="/david/cache/2021/b3db6a66bfa8f11941f00ac4fa1175e5/">cache</a>)</cite></p>
- </blockquote>
-
-
-
-
- <h2><a href="/david/2021/10/14/" title="Lien permanent vers cet article">Carrière</a> (2021-10-14)</h2>
-
-
-
- <blockquote lang="en">
- <p>Without understanding the context, the advice is meaningless, or even worse, harmful. If those folks had followed their own advice early on, they themselves would likely have suffered from it. <mark>It is hard to escape this trap.</mark> We may be the culmination of our experiences, but we view them through the lens of the present.</p>
- <p><cite><em><a href="https://www.simplethread.com/20-things-ive-learned-in-my-20-years-as-a-software-engineer/">20 Things I’ve Learned in my 20 Years as a Software Engineer</a></em> (<a href="/david/cache/2021/7d378db0707cc63aa2d466ada68fe690/">cache</a>)</cite></p>
- </blockquote>
- <p>Beaucoup de sagesse dans cette liste. J’en aurais d’autres à ajouter mais je ne sais pas si j’en suis à 20 années de carrière, ayant du mal à dater le moment où celle-ci a véritablement commencée.</p>
- <p>Ce serait peut-être mon premier conseil : envisager cela comme un cheminement en forêt et non comme un concassage de cailloux. Le papillon semble avoir plus de fun que la chenille (relire cette phrase en anglais).</p>
-
-
-
-
- <h2><a href="/david/2021/10/06/" title="Lien permanent vers cet article">Promotion</a> (2021-10-06)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote lang="en">
- <p>At most companies, it’s common for the person leading you to have experienced a promotion in taking on the role. At Automattic, <mark>we view taking on the team lead role as a focus change rather than as a promotion.</mark> This means people are welcome to step up into the lead role and step down without a change in salary. We’re all ultimately individual contributors at the end of the day!</p>
- <p><cite><em><a href="https://nomad.blog/2020/12/08/you-might-not-love-working-at-automattic-if/">You might not love working at Automattic if…</a></em> (<a href="/david/cache/2021/e7f354687d0d6c2b2d342b7edb144013/">cache</a>)</cite></p>
- </blockquote>
- <p>Beaucoup de choses très inspirantes dans cet article. J’apprécie que l’on puisse considérer que le rôle de <em>lead</em> (difficilement traduisible) soit temporaire et ne soit pas indexé sur le salaire. C’est accepter une certaine impermanence dans nos envies, nos appétences et nos expérimentations. C’est une façon de pouvoir se tromper sans que les conséquences ne soient rapidement critiques.</p>
- <p>J’ai l’impression de porter différentes casquettes actuellement sur les différents produits auxquels je participe et j’adore cette diversité. Une forme de <em>full stack</em> (<a href="/david/2021/03/28/" title="Smolstack">1</a>, <a href="/2021/06/23/">2</a>) mais en mode distribué où j’apprends des autres casquettes présentes dans les équipes.</p>
- <p>Pour moi, une promotion correspond au courage et à la confiance suffisante en soi de consentir à une casquette relativement inconnue, au moins pour un tour.</p>
- <p>Littéralement : pro-motion, être en faveur du mouvement.</p>
-
- <blockquote lang="en">
- <p>For example, I was a lead for 3.5 years and was able to easily step away to pursue other work when an opportunity came up without a change in pay. <mark>I never approached leadership as being a “forever lead”</mark> which helped me make decisions that I knew I’d have to live out if down the line I was no longer a lead.</p>
- <p><cite><em>Ibid.</em></cite></p>
- </blockquote>
-
- </details>
-
-
-
- <h2><a href="/david/2021/09/02/" title="Lien permanent vers cet article">Équipes</a> (2021-09-02)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote lang="en">
- <p>You might assume that if you put together a bunch of people and give them a goal, they’re a team. <mark>But that’s not how it works.</mark> While all constellations are working groups of some sort, in order for a working group to be considered a team two criteria need to be met.</p>
- <p><cite><em><a href="https://www.viktorcessan.com/the-first-question-to-ask-when-building-teams-is-this-really-a-team/">The First Question To Ask When Building Teams - Is This Really A Team?</a></em> (<a href="/david/cache/2021/77419ba77876ddc880823ee6321f9cbe/">cache</a>)</cite></p>
- </blockquote>
- <p>Je me réfère souvent à cette classification lorsqu’on me parle d’équipe. Elle a l’avantage d’être relativement simple à (re)mettre en mémoire grâce aux schémas.</p>
- <p><strong>Un but commun qui nécessite d’être ensemble.</strong> Tous les mots comptent.</p>
- <p>Ne pas confondre avec un « groupe d’affinité » :</p>
-
- <blockquote>
- <p>L’influence du mouvement anarchiste sur l’alter-mondialisme procède en grande partie de la diffusion de modes d’organisation comme le <em>groupe d’affinité</em>, une unité militante autonome d’environ 5 à 20 individus qui <mark>partagent une même sensibilité à l’égard des causes à défendre et des types d’actions à privilégier</mark>. Le processus de prise de décision y est anarchiste, c’est-à-dire qu’il est égalitaire, participatif, délibératif et consensuel.</p>
- <p><cite><em>Les nouveaux anarchistes</em>, Francis Dupuis-Déri</cite></p>
- </blockquote>
-
- </details>
-
-
-
- <h2><a href="/david/2021/08/19/" title="Lien permanent vers cet article">Définition</a> (2021-08-19)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote>
- <p>On pourrait distinguer des développeur·ses, designer‧ses, agilistes et coach dont c’est l’<em>activité</em> ou la <em>profession</em>, si leur travail nourrit directement une structure capitalistique et qui renforce le maillage néolibéral.</p>
- <p><cite><em><a href="https://oncletom.io/2021/08/16/victoire-professionnels/">La victoire des professionnels</a></em> (<a href="/david/cache/2021/1e65aa7484aa157870c2a1b735f36a26/">cache</a>)</cite></p>
- </blockquote>
- <p>Suivi de :</p>
-
- <blockquote>
- <p>(j’ouvre une parenthèse ici pour préciser que quand je dis que je « suis développeur web », j’ai l’impression que ça cache la valeur que j’apporte quand je réfléchis à ces questions de « résilience sociale » autour du logiciel que je créé)</p>
- <p><cite><em>David <a href="https://eldritch.cafe/@davidbruant/106777018282632259">sur Mastodon</a></em></cite></p>
- </blockquote>
- <p>Réflexions croisées qui viennent alimenter mes <a href="/david/2021/05/27/" title="Craftsman">propres explorations</a> plus ou <a href="/david/blog/2015/travail-transition/">moins</a> <a href="/david/blog/2015/pairmutation-travail/">récentes</a> sur le sujet. Ce besoin de définition est même assez <a href="/david/blog/2016/passion-definition/">récurrent</a> ici, le blog étant probablement une forme de définition en soi mais je m’égare et ça devient trop <em>meta</em>.</p>
- <p>« Pour qui, <a href="/david/stream/2018/04/04/">pour quoi</a> travaillons-nous ? » pour reprendre le titre de <a href="/david/2021/01/27/" title="Choix">Jacques Ellul</a>, avec quels espoirs plus ou moins communs engageons-nous notre attention, aspirons-nous à dédier notre fameuse « force de travail » ? J’ai l’impression d’avoir de moins en moins de réponses à tout cela, une définition peut rester floue, une identité aussi finalement, lorsqu’on est suffisamment en confiance. Peut-être qu’en dépassant cette dénomination, on s’élève, on se libère d’un poids à la fois social et culturel. <strong>« Je fais des trucs en équipe que j’espère utiles et qui parfois se retrouvent sur le Web »</strong>, c’est sûr que ça n’est pas très vendeur pour <a href="/david/2021/03/23/" title="Recrutement">obtenir un emploi</a> mais c’est peut-être ce qui se rapproche le plus de mon <em>activité</em>. En tout cas, ça se retrouve pas mal dans ce qui <a href="http://scopyleft.fr/">nous anime</a> depuis bientôt 9 ans.</p>
- <p>Au niveau du « pour qui », il y a toujours cette tension à travailler pour un gouvernement, ce péché d’orgueil d’espérer faire moins pire que ce que ça pourrait être. J’imagine que l’Histoire est remplie de personnes bien intentionnées qui — avec ce même raisonnement — en sont arrivées à commettre les pires atrocités. Se pose peut-être davantage la question du « jusqu’à quand » dans ce cas là, savoir s’arrêter avant que la <em>collaboration</em> ne change de sens…</p>
-
- <blockquote>
- <p>Les gens veulent toujours quelque chose de plus qu’une joie immédiate ou que ce sentiment plus profond qu’on appelle le bonheur. C’est là un des secrets qui nous aident à façonner l’accomplissement de nos visées. Ce « petit quelque chose » exerce un pouvoir décuplé sur <mark>ceux qui ne savent lui attribuer un nom</mark> ou (comme c’est le plus souvent le cas) ne soupçonnent même pas son existence. La plupart des gens ne réagissent qu’inconsciemment à de telles forces cachées. De sorte que nous n’avons plus qu’à concevoir un « petit quelque chose » bien étudié et à lui donner une forme et une définition acceptables pour qu’on nous suive comme un seul homme.</p>
- <p><cite><em>Les secrets du pouvoir au Bene Gesserit</em>, <em><a href="/david/2020/12/21/#dune">Dune</a> V. Les Hérétiques de Dune</em>, Frank Herbert</cite></p>
- </blockquote>
- <figure>
- <a href="#riviere-megantic"
- title="Cliquer pour une version haute résolution">
- <img src="/static/david/2021/riviere-megantic.jpg" alt="Une rivière en pause longue au Mont Mégantic."
- loading="lazy" width="2048" height="1536" />
- </a>
- <a href="#_" class="lightbox" id="riviere-megantic">
- <img src="/static/david/2021/riviere-megantic.jpg" alt="Une rivière en pause longue au Mont Mégantic."
- loading="lazy" width="2048" height="1536" />
- </a>
- <figcaption>Un flux d’idées, momentanément figé.</figcaption>
- </figure>
-
- </details>
-
-
-
- <h2><a href="/david/2021/05/19/" title="Lien permanent vers cet article">Regroupement</a> (2021-05-19)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote>
- <p>Si atteindre une position dominante sur leurs marchés respectifs s’avère épineux, ce n’est pas leur principal levier d’influence, relève l’économiste : « Les coopératives contribuent à faire évoluer les règles du jeu, car <mark>elles diffusent leurs idées et leurs pratiques de production au-delà d’elles-mêmes.</mark> »</p>
- <p>[…]</p>
- <p>Malgré leur motivation, la plupart demeurent des coopératives de tailles et d’effectifs modestes. « Ce n’est pas simple de travailler de concert, surtout quand on porte des projets énergivores en ressources humaines, et qu’on ne possède pas la force de frappe de levée de fonds d’une start-up », dit Adrien Montagut.</p>
- <p><cite><em><a href="https://reporterre.net/Des-cooperatives-se-regroupent-pour-une-alternative-aux-geants-du-web">Des coopératives se regroupent pour une alternative aux géants du web</a></em> (<a href="/david/cache/2021/cfd75c2c4d19529d184fc1a1ccdfc938/">cache</a>)</cite></p>
- </blockquote>
- <p>En ce moment, on essaye de répondre à un appel d’offre en formant un regroupement de structures ayant des principes coopératifs. La principale difficulté est de définir un cap pour ce collectif sans qu’il n’y ait pour autant de cap…itaine(s). Réussir à s’accorder prend du temps — même en envisageant de commencer à travailler en commun pour mieux se connaître. Or, un appel d’offre amène cette contrainte forte. Là est l’enjeu.</p>
- <p>Au-delà de l’acceptation ou du rejet de notre proposition, c’est ce chemin qui m’intéresse lorsqu’un collectif se forme. Avec l’espoir qu’il survive à l’appât du gain à court terme pour envisager d’autres formes d’interactions et de collaborations.</p>
-
- <blockquote>
- <p>— Les trois branches d’un accord sont l’intention, l’information et l’incertitude. La précision et l’honnêteté n’ont pas grand-chose à voir avec la question. […] La dialectique ferme la porte aux sens, déclara Leto en ramenant son visage plus près du sol. Elle masque l’agressivité. <mark>Poussée à outrance, la discussion conduit toujours à la violence.</mark> Et mes intentions envers toi ne sont pas violentes.<br />
- — Que voulez-vous dire par… intention, information, incertitude ?<br />
- — L’intention réunit les participants. L’information délimite le débat. L’incertitude crée les questions.</p>
- <p><cite><em><a href="/david/2020/12/21/#dune">Dune</a> IV. L’Empereur-Dieu de Dune</em>, Frank Herbert</cite></p>
- </blockquote>
-
- </details>
-
-
-
- <h2><a href="/david/2021/03/29/" title="Lien permanent vers cet article">Évaluation</a> (2021-03-29)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote>
- <p>Alas, many developers don’t build with this mindset. I mean, I understand why: <mark>it means thinking about users with the most boring, least powerful technology</mark>. It’s simpler and more exciting to assume that everyone’s got a shared baseline of newer technology. But by doing that, you’re missing out on one of the web’s superpowers: that something served up at the same URL with the same underlying code can simultaneously serve people with older technology <em>and</em> also provide a whizz-bang experience to people with the latest and greatest technology.</p>
- <p><cite><em><a href="https://adactio.com/journal/17987">The principle of most availability</a></em> (<a href="/david/cache/2021/15d4f93dba253e3194c8dba52d0e8ee6/">cache</a>)</cite></p>
- </blockquote>
- <p><em>Pensée du jour suite à un retour interne (merci !) relatif à mon <a href="/david/2021/03/23/" title="Recrutement">non-recrutement</a>. Comme un besoin de déconstruire le refus pour pouvoir me reconstruire…</em></p>
- <p>Lorsqu’on est évalué pour un nouveau poste, on essaye de connaître la situation technique la plus complexe à laquelle on a été confrontée. Et cela a tendance à me rappeler d’une certaine manière le <a href="/david/stream/2015/12/29/">Principe d’Aurélien</a>. Ce qui me semblerait intéressant serait d’évaluer les choix qui ont été réalisés pour <em>ne pas</em> arriver à ce niveau de complexité.</p>
- <p>Comment est-ce que vous avez réussi à garder une équipe à taille humaine ? Quelles mesures avez-vous mis en place pour conserver un ensemble technologique cohérent, compréhensible et maintenable ? Quelles sont les plus faibles compétences requises pour modifier les données sur ce produit ? Qu’est-ce qui a été automatisé et délégué, pourquoi ? Seriez-vous à l’aise pour transmettre cette application, à qui ? Qu’est-ce qui vous empêche de dormir la nuit à son sujet ?</p>
- <p>Il est certain qu’en créant une usine à gaz on acquiert tout un lot de compétences. Mais ce ne sont <a href="/david/2021/03/28/" title="Smolstack">pas celles qui m’attirent</a> (et je ne parle même pas d’humain). Il est des moments où <a href="/david/stream/2015/06/06/">relire ses archives</a> fait du bien.</p>
-
- <blockquote>
- <p>Je vous développe une application complexe parce que je n’ai pas l’expérience pour en écrire une moins sophistiquée.</p>
- <p><cite><em>Blaise Pascal fait du développement web</em>, Les dépendenciales (2021)</cite></p>
- </blockquote>
-
- </details>
-
-
-
- <h2><a href="/david/2021/03/28/" title="Lien permanent vers cet article">Smolstack</a> (2021-03-28)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote lang="en">
- <p>The “smol” net is the “small” net. It’s small because it is build for friends and friends of friends. It doesn’t have to scale to millions of people because those millions should build their own local small nets.</p>
- <p><cite><em><a href="https://communitywiki.org/wiki/SmolNet">CommunityWiki: Smol Net</a></em> (<a href="/david/cache/2021/cd910565715dbc18d4b31ad60546a4a3/">cache</a>)</cite></p>
- </blockquote>
- <p>On me demandait <a href="/david/2021/03/23/" title="Recrutement">récemment</a> si je me considérais comme étant un développeur <em>fullstack</em>. Avec le recul, cette question m’a permis d’affiner ce que j’entends par ce terme et pourquoi je ne veux pas l’être. Je me suis aussi <a href="/david/blog/2017/web-developer/">replongé</a> dans mes <a href="/david/blog/2016/inclusive-developer/">archives</a> car le sujet n’est pas nouveau mais j’ai besoin de le revisiter régulièrement.</p>
- <p>Ce que l’on entend traditionnellement par le terme <em>fullstack</em> me semble aller de l’orchestration de containers (incluant sécurité, disponibilité, redondance, etc.) à l’interface utilisateur·ice et à son expérience que l’on espère la plus pertinente possible (incluant l’accessibilité, les performances, etc.) en passant par le <em>backend</em> et le <em>frontend</em> qui apportent leur lot de connaissances à maîtriser et maintenir à jour. Mais ce n’est pas tant le périmètre en lui-même que l’appétence que l’on peut avoir pour l’ensemble de ce spectre qui est une attente qui <em>m</em>’est irréaliste.</p>
- <p>Je vais maintenant essayer de définir ce que j’entends par <em>smolstack</em>, c’est brouillon et je vais probablement avoir besoin de plusieurs itérations :</p>
- <ul>
- <li>vérifier la pertinence des fonctionnalités avec des tests utilisateur·ices ;</li>
- <li>réduire les dépendances au maximum et être guidé par le besoin plus que par la tendance actuelle ;</li>
- <li>prendre le temps de faire le ménage à tous les niveaux : nouvelles attentes, évolution de dépendance, retrait de fonctionnalités, etc. ;</li>
- <li>faire en sorte que les données soient accessibles au plus grand nombre (je vais avoir besoin de préciser ce point) ;</li>
- <li>privilégier le statique tant que c’est possible, il n’y a rien qui soit plus performant et polyvalent ;</li>
- <li>arbitrer la <a href="/david/blog/2017/bugs-complexite/">complexité</a> vis-à-vis de l’impact que cela va avoir sur les utilisateur·ices mais aussi la maintenance, la fiabilité et la légèreté du produit ;</li>
- <li>documenter les choix techniques ainsi que les joies/échecs associés (journal d’équipe ?) ;</li>
- <li>envisager l’essaimage plutôt que le passage à l’échelle.</li>
- </ul>
- <p>Je vais m’arrêter là pour ce soir, je n’ai pas l’ambition d’en faire un manifeste, ni la prétention d’en faire un terme consacré. Je le vois plus comme une ébauche <a href="/david/2021/03/26/" title="Stimulant">inspirante et vivante</a>. C’est incomplet à dessein. Et ce sera obsolète dès demain.</p>
- <p><em>Keep smoling!</em> 😀</p>
-
- <blockquote lang="en">
- <p>That last bit is a bit of a concern as ageism is already strong enough in web development for 30 to be considered old. <mark>The last thing I want is to be labelled a conservative old fogey in an industry dominated by novelty-seeking.</mark> Mostly because it really isn’t accurate. I really <em>do</em> enjoy some of the new developments in the field. So much so that I constantly have to fight the urge to start building projects using the latest bit of shiny.</p>
- <p><cite><em><a href="https://www.baldurbjarnason.com/2021/which-kind-of-web-developer-are-you/">Which type of novelty-seeking web developer are you?</a></em> (<a href="/david/cache/2021/809290eb60d9bda55b427919091533f0/">cache</a>)</cite></p>
- </blockquote>
-
- </details>
-
-
-
- <h2><a href="/david/2021/03/26/" title="Lien permanent vers cet article">Stimulant</a> (2021-03-26)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote>
- <p>J’ai évité d’écrire un livre qui mastique toutes les pensées possibles en rapporte avec les questions soulevées dans les pages suivantes. Je ne voudrais pas livrer ces pensées comme une bouillie prédigérée à un lecteur passif. La tension dialectique que j’apprécie le plus se situe entre le lecteur d’un livre et l’écrivain : les indices, les suggestions, les pensées inachevées et les stimuli qui encouragent le lecteur à penser par lui-même ou elle-même. En ces temps qui connaissent de telles fluctuations, il serait arrogant de présenter des analyses et des recettes finies ; je considère plutôt qu’il est de la responsabilité d’un travail sérieux de <mark>stimuler la pensée</mark> dialectique et écologique. Pour une œuvre si « simple », si « claire » et si peu partagée — en un mot, si élitiste — qu’elle ne nécessite aucune modification, le lecteur devra regarder ailleurs. Ce livre n’est pas un programme idéologique ; c’est un stimulant de la pensée — un ensemble cohérent de concepts que le lecteur ou la lectrice devra achever dans l’intimité de son propre esprit.</p>
- <p><cite><em>L’écologie sociale, penser la liberté au-delà de l’humain</em>, Murray Bookchin</cite></p>
- </blockquote>
- <p>Un bon résumé de ce que j’aimerais que cet espace de pensées soit, devienne, vive, inspire, respire.</p>
-
- </details>
-
-
-
- <h2><a href="/david/2021/03/23/" title="Lien permanent vers cet article">Recrutement</a> (2021-03-23)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote>
- <p>À chaque étape la question est essentiellement « <mark>Est-ce qu’on veut travailler ensemble  ?</mark> pourquoi  ? qu’est-ce qui pourrait coincer  ? ». À l’entretien technique on peut éventuellement ajouter « Où positionner le candidat par rapport aux salariés actuels au niveau compétences et rémunération  ? ». Le reste c’est de la littérature.</p>
- <p><cite><em><a href="https://n.survol.fr/n/longueur-du-processus-de-recrutement">Longueur du processus de recrutement</a></em> (<a href="/david/cache/2021/b50e973ef4e131098b91c9d99cb69a5a/">cache</a>)</cite></p>
- </blockquote>
- <p>Ma ligne de temps pour une candidature au <abbr title="Canadian Digital Service">CDS</abbr>-<abbr title="Service Numérique Canadien">SNC</abbr> :</p>
- <ul>
- <li><a href="/david/2021/01/22/" title="Tentation">22 janvier</a> : Yannick poste <a href="https://numerique.canada.ca/join-our-team/positions/d%C3%A9veloppeur-de-logiciel-senior-principal-e-python/">un lien</a> (<a href="/david/cache/2021/b7829aa5073173cca4ed3f4ea23e767f/">cache</a>) sur le chat interne de <a href="http://scopyleft.fr/">Scopyleft</a> ;</li>
- <li>25 janvier : j’applique (en bon québécois) après 5 années d’hésitations pour de nombreuses raisons — je suis rappelé dès le lendemain ;</li>
- <li>27 janvier : rencontre avec la personne dédiée à mon recrutement (30 min), on échange un peu sur mon parcours et sur ce que je pourrais faire au <a href="https://digital.canada.ca/">CDS</a>-<a href="https://numerique.canada.ca/">SNC</a>, je me rends compte que je n’ai jamais passé d’entretien de recrutement à proprement parler — je suis rappelé le 2 février ;</li>
- <li><a href="/david/2021/02/04/" title="Chance">4 février</a> : rencontre en anglais (1 h) avec deux personnes sur les <em>Core Values</em>, j’apprécie beaucoup que ces sujets soient abordés avant même de parler de technique, on parle d’humanité, d’empathie, d’inclusion — je suis rappelé le 16 février ;</li>
- <li>17 février : rencontre en anglais (1 h 30 min) avec deux personnes sur les <em>Technical Skills</em>, je raconte certaines expériences, on évoque des scénarios, c’est relativement équilibré comme discussion et je ne peux m’empêcher de voir des parallèles avec ce qui se fait (ou pas) chez <a href="https://beta.gouv.fr/">betagouv</a> — je suis rappelé le 1<sup>er</sup> mars ;</li>
- <li>10 mars : rencontre en français (1 h 30 min) avec deux personnes sur les <em>Technical Skills</em> encore une fois, j’apprécie le fait que ce ne soit <a href="https://medium.com/swlh/why-senior-engineers-hate-coding-interviews-d583d2855757">pas un test technique</a> (<a href="/david/cache/2021/cfe6353c663f062eb2e6ccfcace889ef/">cache</a>) mais un échange horizontal sur des situations plus ou moins fictives et les pistes de résolution associées ;</li>
- <li>23 mars : courriel m’indiquant que je ne suis finalement pas retenu.</li>
- </ul>
- <p>Ce qui n’est pas explicite avec ces dates, c’est le stress diffus avec de gros <em>gros</em> pics sur une période de plusieurs mois. C’est l’incapacité à travailler lorsque j’ai un entretien dans la journée. Ce sont les doutes entre chaque session avant d’attendre un retour qui arrive plusieurs jours après. Ce sont les questionnements au moment de la préparation, les remises en question de mes capacités.</p>
- <p>Je comprends l’intérêt de tester la motivation dans la durée mais je me demande aussi si un tel processus ne ferme pas la porte à des personnes moins privilégiées, moins en confiance, dans une situation moins stable.</p>
- <p>Au cours de ce processus, la <a href="https://jacobian.org/series/unpacking-interview-questions/">série de billets</a> de Jacob m’a été d’une grande aide. Le <a href="https://eng-hiring.18f.gov/">guide de 18F</a> m’a beaucoup rassuré aussi pour avoir une idée du potentiel enchainement au complet. Et bien sûr, le <a href="https://cds-snc.github.io/technical-playbook-manuel-technique/">Technical Playbook</a> (<a href="https://cds-snc.github.io/technical-playbook-manuel-technique/fr/">version française</a>) du CDS-SNC lui-même.</p>
- <p>Sur une note positive, j’aurais beaucoup appris au cours de ce parcours, surtout sur moi. La relation au stress, à la confiance en moi mais aussi des réflexions sur le plus long terme. <strong>Ce que je suis prêt à changer dans ma vie</strong>, la dose de liberté que je peux/veux réduire, les libérations et les contraintes que cela m’apporterait. Au fil du temps, j’ai pu affiner mes questions/attentes aussi, afin de mieux connaître la structure et les façons de fonctionner. Je suis reconnaissant des personnes qui ont pris le temps de s’intéresser à ma candidature et qui ont été vraiment bienveillantes durant ce parcours.</p>
- <p>En bonus, je crois que ça me permet de travailler mon acceptation de l’échec… et du contentement. J’espère néanmoins que ce sera le premier <em>et</em> le dernier parcours de recrutement de ce type que j’aurais à faire dans ma vie. Sans aigreur, ce n’est pas un processus qui me semble être adapté à ma façon de rejoindre une structure/équipe. Je crois que j’ai besoin de <em>faire</em> et d’<em>être</em> avec les personnes car l’hypothétique résiste rarement à l’épreuve du réel. Mais peut-être que cette démarche prend trop de temps ?</p>
-
- <blockquote lang="en">
- <p>How many hours does it take to hire someone, from approval of the open position to their first day? It takes <strong>about 100 person-hours</strong>, and that’s about a best-case scenario.</p>
- <p><cite><em><a href="https://jacobian.org/2021/mar/11/hours-to-hire/">How Long Does It Take to Hire Someone?</a></em> (<a href="/david/cache/2021/e7dd6d41e04bcbf69d3bf09bce827e4c/">cache</a>)</cite></p>
- </blockquote>
-
- </details>
-
-
-
- <h2><a href="/david/2021/03/20/" title="Lien permanent vers cet article">Manuel</a> (2021-03-20)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote lang="en">
- <p>I’ve created a <mark>user manual about myself</mark> and I’d love to hear what other questions people think should be included in something like this. I also think there should be a caveat that this is done knowing that not all your needs and preferences can be met, but there is still value in making them explicit for those you work with.</p>
- <p><cite><em><a href="https://cassierobinson.medium.com/a-user-manual-for-me-d3a851fbc694">A user manual for me</a></em> (<a href="/david/cache/2021/720b1db6efb78ef6790594ad1a8b7980/">cache</a>)</cite></p>
- </blockquote>
- <p>Je découvre cet article <a href="https://numerique.canada.ca/2018/08/21/collaboration-productive/">via le SNC</a> (<a href="/david/cache/2021/7405ceb4a34705e65bc5ccc4f025a0b8/">cache</a>) qui propose la <a href="https://docs.google.com/presentation/d/1KNNLKtFYoLOdTZ5Ez0ZBXwDGcZNB7AcfKr-4iMNF5L0/edit#slide=id.g3fd0daa6c4_0_0">version traduite</a> suivante :</p>
- <ul>
- <li>les conditions dans lesquelles j’aime travailler ;</li>
- <li>les heures et les moments de la journée pendant lesquels j’aime travailler ;</li>
- <li>les meilleures façons de communiquer avec moi ;</li>
- <li>les façons dont j’aimerais recevoir des commentaires ;</li>
- <li>les choses dont j’ai besoin ;</li>
- <li>les choses avec lesquelles j’ai de la difficulté ;</li>
- <li>les choses que j’aime ;</li>
- <li>les autres choses à savoir à mon sujet.</li>
- </ul>
- <p>J’aime le fait de pouvoir afficher cela de manière aussi explicite dans son équipe. Je vais essayer de rédiger mon propre manuel.</p>
-
- </details>
-
-
-
- <h2><a href="/david/2021/03/19/" title="Lien permanent vers cet article">Support</a> (2021-03-19)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote lang="en">
- <p>Yes, not only that, also just experience with selling very low priced products and how that’s incompatible with the kind of companies that we run and the kind of service we want to offer. So we have a relatively large support department who spend a lot of time being very diligent and careful with all the customers they interact with. And the math on that is that like someone writes us an email and it costs about five bucks, you take all the costs involved with running support department. It costs about five dollars to answer an email.</p>
- <p>If you lower your price to the point where one email essentially put you under water on a on a customer relationship, <mark>you end up in a place where you don’t want to talk to your customers.</mark></p>
- <p><cite><em><a href="https://small-tech.org/videos/small-is-beautiful-07/">Small Is Beautiful livestream #7</a></em> (<a href="/david/cache/2021/184bcc38c39ce5b4d2f75fedd2c82198/">cache</a>)</cite></p>
- </blockquote>
- <p><em>Il y a beaucoup de choses intéressantes dans cette discussion, je remercie Laura et Aral d’avoir pris le temps de faire un transcript de l’échange qui me permet non seulement de le lire à mon rythme mais en plus de l’archiver (bon et bien sûr de le rendre accessible aux personnes en ayant davantage besoin).</em></p>
- <p>J’apprécie particulièrement cette partie relative au support, qui lui donne un coût permettant d’arbitrer une intention. Lorsque l’on crée une chose, on y place un espoir dont on essaye de s’approcher. La difficulté est de continuer à partager cet espoir et/ou de le faire évoluer sans renier totalement les conditions de son accession.</p>
- <p>Cette difficulté est un travail quotidien.</p>
-
- <blockquote lang="en">
- <p>We were about 45 people, I think, at the time. We had four major products that were all sort of succeeding and growing. And we looked at that and said, you know what? We can’t continue with four major products at the same time, if we’re staying at 45 people, we have to probably go to 150 because there’s these tipping points where once you install this layer of management, you need a bunch more people and so on. So if we’re going to run this whole thing, I can see a straight path to us being 150, maybe 300 people. And I looked at that and said, you know what, <mark>I don’t want to work there</mark>. I don’t want to work at a Basecamp of 300 people.</p>
- <p><cite><em>Ibid.</em></cite></p>
- </blockquote>
-
- </details>
-
-
-
- <h2><a href="/david/2021/02/01/" title="Lien permanent vers cet article">Software</a> (2021-02-01)</h2>
-
- <details>
- <summary>Déplier pour lire le contenu de la publication</summary>
-
-
- <blockquote lang="en">
- <p>The right coding language, system architecture, or interface design will vary wildly from project to project. But <mark>there are characteristics particular to software that consistently cause traditional management practices to fail</mark>, while allowing small startups to succeed with a shoestring budget:</p>
- <ul>
- <li>Reusing good software is easy; it is what allows you to build good things quickly;</li>
- <li>Software is limited not by the amount of resources put into building it, but by how complex it can get before it breaks down; and</li>
- <li>The main value in software is not the code produced, but the knowledge accumulated by the people who produced it.</li>
- </ul>
- <p>Understanding these characteristics may not guarantee good outcomes, but it does help clarify why so many projects produce bad outcomes.</p>
- <p><cite><em><a href="https://www.csc.gov.sg/articles/how-to-build-good-software">How to Build Good Software</a></em> (<a href="/david/cache/2021/6be8b8649cd695b922a43d15f74d4773/">cache</a>)</cite></p>
- </blockquote>
- <p>Deux articles lus ce jour qui sont totalement dans mes réflexions du moment. Avoir de l’expérience dans le domaine dans lequel j’évolue, c’est se demander pourquoi est-ce qu’on y est encore et si on a vraiment appris un truc après toutes ces années. J’ai beaucoup de mal à répondre à ces deux questions, les réponses se mordent la queue et ça me donne parfois l’impression de tourner en rond.</p>
- <p>Mon activité (rémunérée) est un chaos. Et le seul moyen que j’ai trouvé de le rendre acceptable est de le réduire. Moins de dépendances, moins de hiérarchie, moins de variables, moins de boîtes noires. D’une certaine manière, moins d’attentes aussi.</p>
- <p>Une autre exploration est de <a href="/david/2020/12/13/#journal">consigner</a> mes doutes, mes motivations, mes erreurs, mes joies. Je n’ai aucune illusion quand au fait de reproduire ces expériences plus ou moins mal·heureuses — même après les avoir écrites — mais le fait de les avoir formulées, externalisées, est déjà une étape dans leur acceptation. Ainsi que les émotions qui vont avec.</p>
- <p>Je me demande rarement si je suis un « vrai » ingénieur. Je me demande davantage si je deviens un vrai humain à continuer cette activité. C’est peut-être ceci l’expérience : douter de plus en plus de l’utilité de ce que l’on produit… et de la façon d’y parvenir.</p>
-
- <blockquote lang="en">
- <p>Nobody I read in these arguments, not one single person, ever worked as a “real” engineer. At best they had some classical training in the classroom, but we all know that looks nothing like reality. <mark>Nobody in this debate had anything more than stereotypes to work with.</mark> The difference between the engineering in our heads and in reality has been noticed by others before, most visibly by Glenn Vanderburg. He read books on engineering to figure out the difference. But I wanted to go further.</p>
- <p><cite><em><a href="https://www.hillelwayne.com/post/crossover-project/are-we-really-engineers/">Are We Really Engineers?</a></em> (<a href="/david/cache/2021/6514143dca5d96bf9e751236b800fba5/">cache</a>)</cite></p>
- </blockquote>
-
- </details>
-
-
-
- </main>
-
-
- <hr>
-
- <footer>
- <p>
- <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
- </svg> Accueil</a> •
- <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
- </svg> Suivre</a> •
- <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
- </svg> Pro</a> •
- <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
- </svg> Email</a> •
- <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
- </svg> Légal</abbr>
- </p>
- <template id="theme-selector">
- <form>
- <fieldset>
- <legend><svg class="icon icon-brightness-contrast">
- <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
- </svg> Thème</legend>
- <label>
- <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
- </label>
- <label>
- <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
- </label>
- <label>
- <input type="radio" value="light" name="chosen-color-scheme"> Clair
- </label>
- </fieldset>
- </form>
- </template>
- </footer>
- <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
- <script>
- function loadThemeForm(templateName) {
- const themeSelectorTemplate = document.querySelector(templateName)
- const form = themeSelectorTemplate.content.firstElementChild
- themeSelectorTemplate.replaceWith(form)
-
- form.addEventListener('change', (e) => {
- const chosenColorScheme = e.target.value
- localStorage.setItem('theme', chosenColorScheme)
- toggleTheme(chosenColorScheme)
- })
-
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme && selectedTheme !== 'undefined') {
- form.querySelector(`[value="${selectedTheme}"]`).checked = true
- }
- }
-
- const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
- window.addEventListener('load', () => {
- let hasDarkRules = false
- for (const styleSheet of Array.from(document.styleSheets)) {
- let mediaRules = []
- for (const cssRule of styleSheet.cssRules) {
- if (cssRule.type !== CSSRule.MEDIA_RULE) {
- continue
- }
- // WARNING: Safari does not have/supports `conditionText`.
- if (cssRule.conditionText) {
- if (cssRule.conditionText !== prefersColorSchemeDark) {
- continue
- }
- } else {
- if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
- continue
- }
- }
- mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
- }
-
- // WARNING: do not try to insert a Rule to a styleSheet you are
- // currently iterating on, otherwise the browser will be stuck
- // in a infinite loop…
- for (const mediaRule of mediaRules) {
- styleSheet.insertRule(mediaRule.cssText)
- hasDarkRules = true
- }
- }
- if (hasDarkRules) {
- loadThemeForm('#theme-selector')
- }
- })
- </script>
- </body>
- </html>
|