Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
преди 3 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Tag #coopérative — David Larlet</title>
  13. <meta name="description" content="Publications relatives au tag #coopérative">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <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>
  31. <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>
  32. <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>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <style type="text/css">
  53. details[open] summary {
  54. display: none;
  55. }
  56. </style>
  57. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  58. <header>
  59. <h1>Publications relatives au tag #coopérative</h1>
  60. </header>
  61. <nav>
  62. <p class="center">
  63. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  64. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  65. </svg> Accueil</a>
  66. • <a rel="tags" href="/david/#tags" title="Liste de toutes les étiquettes"><svg class="icon icon-tags">
  67. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-tags"></use>
  68. </svg> Étiquettes</a>
  69. </p>
  70. </nav>
  71. <hr>
  72. <main>
  73. <p>Les plus récentes en premier, les 3 premières sont dépliées et ensuite c’est à la demande, bonne exploration !</p>
  74. <h2><a href="/david/2021/11/30/" title="Lien permanent vers cet article">Salaires</a> (2021-11-30)</h2>
  75. <blockquote>
  76. <p>Il ne s’agit plus de quémander un emploi pour avoir le droit de valoriser du capital, et de payer des impôts pour en déléguer la gestion à un personnel politique et une aristocratie de grandes et grands fonctionnaires. Il s’agit de <mark>décider ensemble</mark> du niveau de salaire et de ce qui doit être produit, et surtout comment ça devrait l’être.</p>
  77. <p><cite><em><a href="https://igor.milhit.ch/citoyennet%C3%A9-autre/">Citoyenneté autre</a></em> (<a href="/david/cache/2021/465f63b989ee5666a6e9a406201a4b62/">cache</a>)</cite></p>
  78. </blockquote>
  79. <p>Au sein de <a href="http://scopyleft.fr/">Scopyleft</a>, nous sommes passé·es d’un salaire <em>à la contrainte</em> (cruel manque de trésorerie les premiers mois&#8239;!) à un salaire <em>égalitaire</em> (pendant un temps) pour être depuis quelques années maintenant à un <strong>salaire au besoin</strong>. Notre revenu n’est pas corrélé à ce que l’on rapporte ou à notre ancienneté ou à notre activité ou à notre expérience. Encore moins à notre performance…</p>
  80. <p>Sous réserve que le pot commun ne se retrouve pas vide, chacun·e est libre de choisir le montant qu’iel souhaite.</p>
  81. <p>Cette pratique vient avec son lot de non-dits et de culpabilités, de la même façon que ce qui peut se produire avec <a href="/david/2021/04/22/" title="Vacances">les vacances</a>. Parfois ne pas avoir à donner de justifications peut être la pire des tortures pour un groupe de personnes qui s’estiment et se respectent&nbsp;:</p>
  82. <ul>
  83. <li>est-ce que je ne suis pas égoïste vis-à-vis des autres en m’accordant autant&#8239;?</li>
  84. <li>est-ce que je peux comparer mes besoins à ceux des autres dans une société de (sur)consommation&#8239;?</li>
  85. <li>est-ce que j’ai besoin d’une symétrie de revenus avec mon ou ma conjoint·e pour être libre&#8239;?</li>
  86. <li>est-ce que les enfants entrent en compte alors que c’est un choix délibéré d’en avoir ou pas&#8239;?</li>
  87. <li>est-ce que je peux être payé·e autant alors que je suis jeune/en reconversion/sans mission/etc&#8239;?</li>
  88. <li>est-ce que ça ne participe pas à la définition de mon futur salaire dans une autre structure&#8239;?</li>
  89. <li>est-ce que pouvoir présenter ces fiches de paye à mon banquier/propriétaire fait partie d’un besoin&#8239;?</li>
  90. <li>est-ce que la pression sociale m’enclin à sous-évaluer ma valeur/mes besoins car je suis une femme&#8239;?</li>
  91. <li>est-ce que ma vision de la sobriété/frugalité est partagée au sein du groupe&#8239;?</li>
  92. <li>est-ce que mon comportement actuel endommage la trésorerie future de la coopérative&#8239;?</li>
  93. </ul>
  94. <p>Toutes ces questions sont légitimes et saines. Et le fait que ces discussions aient lieues à un moment où il y a <a href="/david/2021/11/09/" title="Junior">un peu plus de diversité</a> n’est pas anodin. Elles permettent de se remettre en question et génèrent des échanges qui permettent d’apprendre à se connaître (et à s’apprécier).</p>
  95. <p>Du salaire à vie au salaire en vie, il y a matière à travailler. Ensemble.</p>
  96. <p><em>Rappel&nbsp;: nous sommes une coopérative, ce qui signifie que ce qui n’est pas attribué en salaire au cours de l’année est transformé en réserve (pour la structure), puis en part travail (répartie équitablement entre les salarié·es) à la fin de l’année. C’est aussi cela être propriétaire de son cadre de travail, que l’on essaye de pérenniser.</em></p>
  97. <blockquote>
  98. <p>Il a fait le tour du monde… mais qu’est-ce que le tour du monde puisque l’horizon est éternel&#8239;? Le tour du monde va plus loin que le bout du monde, aussi loin que la vie, plus loin encore peut-être. Quand on entrevoit ça, on a un peu le vertige, on a un peu peur. Et en même temps ce qu’on entrevoit là est tellement…</p>
  99. <p>Tellement quoi&#8239;? <mark>Je ne sais pas.</mark> Plus loin que le bout du monde…</p>
  100. <p><cite><em>La longue route</em>, Bernard Moitessier</cite></p>
  101. </blockquote>
  102. <h2><a href="/david/2021/09/02/" title="Lien permanent vers cet article">Équipes</a> (2021-09-02)</h2>
  103. <blockquote lang="en">
  104. <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>
  105. <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>
  106. </blockquote>
  107. <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>
  108. <p><strong>Un but commun qui nécessite d’être ensemble.</strong> Tous les mots comptent.</p>
  109. <p>Ne pas confondre avec un «&nbsp;groupe d’affinité&nbsp;»&nbsp;:</p>
  110. <blockquote>
  111. <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&nbsp;à 20&nbsp;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>
  112. <p><cite><em>Les nouveaux anarchistes</em>, Francis Dupuis-Déri</cite></p>
  113. </blockquote>
  114. <h2><a href="/david/2021/06/05/" title="Lien permanent vers cet article">Incarnation</a> (2021-06-05)</h2>
  115. <blockquote>
  116. <p>47. Notre action sera d’autant plus efficace qu’elle sera davantage l’expression normale de nous-mêmes. Nous ne porterons pas d’insigne&nbsp;: lorsque l’insigne devient le signe d’un engagement, c’est que nous ne faisons aucun geste&nbsp;: <mark>il faut que nous incarnions la doctrine</mark>, que nous soyons à proprement parler ces valeurs mêmes que nous élevons.</p>
  117. <p><cite><em>Directives pour un manifeste personnaliste</em>, Bernard Charbonneau et Jacques Ellul, 1935</cite></p>
  118. </blockquote>
  119. <p>Coïncidence étrange que de parler de cela le matin et de lire cet extrait le soir. Je faisais la distinction avec <a href="http://ut7.fr/">Raphaël</a> entre promouvoir <a href="https://fr.wikipedia.org/wiki/D%C3%A9claration_sur_l%27identit%C3%A9_coop%C3%A9rative">les principes coopératifs</a> et celle de les incarner. On peut aspirer à quelque chose sans pour autant aller jusqu’à s’impliquer et ça fait une différence non négligeable. On peut aussi avoir la volonté de les incarner tout en étant maladroit·e, jusqu’à un point où ça peut devenir contre-productif. On peut difficilement être (et) neutre.</p>
  120. <p>Ah… les relations humaines 🤷.</p>
  121. <h2><a href="/david/2021/05/19/" title="Lien permanent vers cet article">Regroupement</a> (2021-05-19)</h2>
  122. <details>
  123. <summary>Déplier pour lire le contenu de la publication</summary>
  124. <blockquote>
  125. <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&nbsp;: «&nbsp;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>&nbsp;»</p>
  126. <p>[…]</p>
  127. <p>Malgré leur motivation, la plupart demeurent des coopératives de tailles et d’effectifs modestes. «&nbsp;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&nbsp;», dit Adrien Montagut.</p>
  128. <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>
  129. </blockquote>
  130. <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>
  131. <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>
  132. <blockquote>
  133. <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 />
  134. — Que voulez-vous dire par… intention, information, incertitude&#8239;?<br />
  135. — L’intention réunit les participants. L’information délimite le débat. L’incertitude crée les questions.</p>
  136. <p><cite><em><a href="/david/2020/12/21/#dune">Dune</a> IV. L’Empereur-Dieu de Dune</em>, Frank Herbert</cite></p>
  137. </blockquote>
  138. </details>
  139. <h2><a href="/david/2021/05/12/" title="Lien permanent vers cet article">Propriétaires</a> (2021-05-12)</h2>
  140. <details>
  141. <summary>Déplier pour lire le contenu de la publication</summary>
  142. <blockquote lang="en">
  143. <p><mark>The new owners of Clearleft are the people who power Clearleft</mark> and who make Clearleft so special. It’s our whole team, in the form of an <strong>Employee Ownership Trust</strong>.</p>
  144. <p>That’s right; Clearleft will be run for—and on behalf of—all our team, now and in the future. So rather than working for a company where the benefits go to a handful of individuals, they will be shared evenly amongst the team.</p>
  145. <p><cite><em><a href="https://clearleft.com/posts/meet-the-new-owners-of-clearleft">Meet the new owners of Clearleft</a></em> (<a href="/david/cache/2021/699cfd66554f8e8ad2118eec8b4c0564/">cache</a>)</cite></p>
  146. </blockquote>
  147. <p>Lorsqu’on souhaite discuter de <a href="/david/2021/04/28/" title="Politique">politique</a> au bureau, le plus évident est de partager ce bureau. <em>Pour de vrai.</em> Cette transformation est suffisamment rare pour être partagée, même après 15&nbsp;ans c’est tout à fait possible. Il ne tient qu’aux personnes — suffisamment en confiance et en sécurité — de <strong>vouloir</strong> changer le rapport au pouvoir au sein d’une entreprise.</p>
  148. <p>Cela peut même se faire de manière incrémentale en passant d’une <abbr title="Entreprise de Services du Numérique">ESN</abbr> à une <abbr title="Coopérative d’Activité et d’Emploi">CAE</abbr> pour finalement rejoindre/créer une <abbr title="Société COopérative et Participative">SCOP</abbr> ou une <a href="https://dtc-innovation.org/writings/2017/une-association">association</a> (<a href="/david/cache/2021/e35537b839116354caf42731c6ed39da/">cache</a>). Tous les chemins pour redéfinir un capitalisme sont possibles.</p>
  149. </details>
  150. <h2><a href="/david/2021/04/22/" title="Lien permanent vers cet article">Vacances</a> (2021-04-22)</h2>
  151. <details>
  152. <summary>Déplier pour lire le contenu de la publication</summary>
  153. <blockquote>
  154. <p>L’histoire est aussi importante que la forme ou la structure. Dans une très large mesure, <mark>l’histoire d’un phénomène constitue le phénomène lui-même</mark>. Nous sommes, réellement, tout ce qui a existé avant nous et nous pouvons devenir à notre tour infiniment plus que ce que nous sommes.</p>
  155. <p><cite><em>L’écologie sociale</em>, Murray Bookchin</cite></p>
  156. </blockquote>
  157. <p>On a un rapport assez particulier aux vacances chez Scopyleft et au moment où on se <a href="/david/2021/03/17/" title="Arrivant·es">transmet en question</a>, c’est l’occasion de partager <em>un</em> état de nos réflexions.</p>
  158. <p>La prise de vacances est libre et consciente. <strong>Libre</strong> car on ne se restreint pas à un nombre de jours/semaines, ni même à communiquer à nos collègues si/quand on est en vacances. <strong>Consciente</strong> car on essaye — dans la mesure du possible — de ne pas laisser les autres galérer du fait de notre indisponibilité. Faire partie d’une <abbr title="Société coopérative et participative">SCOP</abbr> c’est aussi <em>pour moi</em> éprouver de l’empathie et de la solidarité pour les autres membres.</p>
  159. <p>La discussion du jour portait sur la toxicité potentielle d’une telle approche. D’autres entreprises pratiquent les <em>vacances illimitées</em> mais cela crée un tel sentiment de culpabilité que les employé·es prennent en définitive <em>moins</em> de vacances et dans un climat pas terrible.</p>
  160. <p>Comment rompre avec ce sentiment&#8239;?</p>
  161. <p>On en vient à (re)questionner les notions de travail et de vacances. Si l’on envisage les vacances comme des <em>moments de prise de soin personnels</em>, le changement n’est pas uniquement sémantique mais traduit une intention différente. D’une manière similaire à l’auto-détermination de nos salaires en fonction de nos «&nbsp;besoins&nbsp;», les vacances s’adaptent ainsi à notre rythme de vie, notre enthousiasme et notre appétence. L’exploration du tempo convenable pour notre danse du moment.</p>
  162. <p>Ce n’est plus alors la recherche d’un rythme de <em>travail</em> soutenable mais celle d’une qualité de <em>vie</em> enviable.</p>
  163. <blockquote>
  164. <p>Bien au contraire, la complétude inclut l’ensemble disparate des structures, d’articulations, de médiations, où le tout va puiser la riche variété de ces formes et où ce qu’un esprit analytique réduirait à une suite de détails «&nbsp;innombrables&nbsp;» et «&nbsp;fortuits&nbsp;» acquiert ainsi des propriétés qualitatives uniques.</p>
  165. <p><cite><em>Ibid.</em></cite></p>
  166. </blockquote>
  167. </details>
  168. <h2><a href="/david/2021/03/17/" title="Lien permanent vers cet article">Arrivant·es</a> (2021-03-17)</h2>
  169. <details>
  170. <summary>Déplier pour lire le contenu de la publication</summary>
  171. <blockquote lang="en">
  172. <p>Here’s the problem: <mark>how do you make a space that feels right for beginners</mark> when you have thousands of experts in the group who also want to join in?</p>
  173. <p>[…]</p>
  174. <p>Experts are very good at occupying these spaces. They are comfortable speaking, and eager to share their knowledge. How do we ensure that they don’t monopolize the discussion?</p>
  175. <p>Beginners can be shy, and reluctant to speak. They may feel like they don’t know enough to even ask a question. They don’t want to appear dumb. They hear the experts around them, and feel even more certain that this is not for them.</p>
  176. <p>The experts could have the best intentions: they want to help the beginners. They are interested in the subject, and have useful bits of information to contribute.</p>
  177. <p><cite><em><a href="https://nedbatchelder.com/blog/202103/beginners_in_a_sea_of_experts.html">Beginners in a sea of experts</a></em> (<a href="/david/cache/2021/5c20cd102357c0140e36a902ca400c8f/">cache</a>)</cite></p>
  178. </blockquote>
  179. <p>Trois nouvelles personnes sont arrivées au sein de <a href="http://scopyleft.fr/">Scopyleft</a> ces derniers mois. J’apprécie le fait que l’on transmette les précédentes pratiques en précisant régulièrement que celles-ci peuvent être transformées par ce nouvel état. L’expérience permet bien souvent d’aller plus vite, mais potentiellement dans une direction qui n’est <em>plus</em> la bonne. Je trouve sain que la croissance ne soit pas synonyme d’accélération mais de transformation, ce n’est pas à l’arrivant·e de s’adapter mais à toutes les personnes du groupe d’accepter un nouvel équilibre.</p>
  180. <p>J’aime me rappeler de cette métaphore technique&nbsp;:</p>
  181. <blockquote lang="en">
  182. <p>Teams are immutable. Every time someone leaves, or joins, you have a new team, not a changed team.</p>
  183. <p><cite><em><a href="https://twitter.com/richardadalton/status/569275411508682752">Richard Dalton sur Twitter</a></em></cite></p>
  184. </blockquote>
  185. </details>
  186. </main>
  187. <hr>
  188. <footer>
  189. <p>
  190. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  191. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  192. </svg> Accueil</a> •
  193. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  194. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  195. </svg> Suivre</a> •
  196. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  197. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  198. </svg> Pro</a> •
  199. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  200. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  201. </svg> Email</a> •
  202. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  203. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  204. </svg> Légal</abbr>
  205. </p>
  206. <template id="theme-selector">
  207. <form>
  208. <fieldset>
  209. <legend><svg class="icon icon-brightness-contrast">
  210. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  211. </svg> Thème</legend>
  212. <label>
  213. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  214. </label>
  215. <label>
  216. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  217. </label>
  218. <label>
  219. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  220. </label>
  221. </fieldset>
  222. </form>
  223. </template>
  224. </footer>
  225. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  226. <script>
  227. function loadThemeForm(templateName) {
  228. const themeSelectorTemplate = document.querySelector(templateName)
  229. const form = themeSelectorTemplate.content.firstElementChild
  230. themeSelectorTemplate.replaceWith(form)
  231. form.addEventListener('change', (e) => {
  232. const chosenColorScheme = e.target.value
  233. localStorage.setItem('theme', chosenColorScheme)
  234. toggleTheme(chosenColorScheme)
  235. })
  236. const selectedTheme = localStorage.getItem('theme')
  237. if (selectedTheme && selectedTheme !== 'undefined') {
  238. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  239. }
  240. }
  241. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  242. window.addEventListener('load', () => {
  243. let hasDarkRules = false
  244. for (const styleSheet of Array.from(document.styleSheets)) {
  245. let mediaRules = []
  246. for (const cssRule of styleSheet.cssRules) {
  247. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  248. continue
  249. }
  250. // WARNING: Safari does not have/supports `conditionText`.
  251. if (cssRule.conditionText) {
  252. if (cssRule.conditionText !== prefersColorSchemeDark) {
  253. continue
  254. }
  255. } else {
  256. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  257. continue
  258. }
  259. }
  260. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  261. }
  262. // WARNING: do not try to insert a Rule to a styleSheet you are
  263. // currently iterating on, otherwise the browser will be stuck
  264. // in a infinite loop…
  265. for (const mediaRule of mediaRules) {
  266. styleSheet.insertRule(mediaRule.cssText)
  267. hasDarkRules = true
  268. }
  269. }
  270. if (hasDarkRules) {
  271. loadThemeForm('#theme-selector')
  272. }
  273. })
  274. </script>
  275. </body>
  276. </html>