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

index.html 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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>Consigner — David Larlet</title>
  13. <meta name="description" content="When you “P2” something, you’re writing a blog post, where you can tag in coworkers and cross-post to other P2s. What do teams use P2s for? Absolutely everything. Checklists for onboarding, status reports on projects, thoughts about detailing projects, discussions about best coding practices, architectural diagrams, marketing data analyses, and more. The best part is that the entire company’s history of P2s is available to search through. Also, you can subscribe to literally any P2, and comment on it as necessary, starting with your own team’s.">
  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. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  53. <article>
  54. <header>
  55. <h1>Consigner</h1>
  56. </header>
  57. <nav>
  58. <p class="center">
  59. <a rel="prev" href="/david/2021/10/06/" title="Publication précédente : Promotion">← Précédent</a> •
  60. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  61. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  62. </svg> Accueil</a>
  63. • <a rel="next" href="/david/2021/10/09/" title="Publication suivante : Slowgrégateur">Suivant →</a>
  64. </p>
  65. </nav>
  66. <hr>
  67. <blockquote lang="en">
  68. <p>When you “P2” something, you’re writing a blog post, where you can tag in coworkers and cross-post to other P2s. What do teams use P2s for? Absolutely everything. Checklists for onboarding, status reports on projects, thoughts about detailing projects, discussions about best coding practices, architectural diagrams, marketing data analyses, and more. The best part is that the entire company’s history of P2s is available to search through. Also, you can subscribe to literally any P2, and comment on it as necessary, starting with your own team’s.</p>
  69. <p>Why P2s? Because they capture fleeting one-off written communication: <mark>you can read a P2&nbsp;at your own speed, in your own timezone</mark>, which is key since we operate across all timezones.</p>
  70. <p><cite><em><a href="https://veekaybee.github.io/2021/07/17/p2s/">Writing for distributed teams</a></em> (<a href="/david/cache/2021/83fa7f0f8105aa10ffc88555f5699f1c/">cache</a>)</cite></p>
  71. </blockquote>
  72. <p>On a essayé pas mal de chose avec Scopyleft pour garder des traces de discussions, de décisions, avec toujours cette frustration personnelle que le résultat est à l’image de la personne qui prend le temps de consigner cette histoire. La difficulté d’une écriture commune est réelle et je me sen(tai)s un peu démuni face à ce dilemme d’avoir envie (besoin&#8239;?) de retenir des choses tout en n’assumant pas de devenir le scribe officiel. On se retrouve avec une base de connaissance éclatée dans laquelle il est difficile de (re)trouver une information.</p>
  73. <p>La solution mise en place par Automattic (avec un <a href="https://ma.tt/2009/05/how-p2-changed-automattic/">recul non négligeable</a> (<a href="/david/cache/2021/e14051435f3a2513d136df430ae973b3/">cache</a>)), à mi-chemin entre le blog et l’interactivité d’un réseau social est vraiment alléchante. Suffisamment pour me faire envisager de coder un truc à ce sujet. J’imagine déjà une version distribuée (re-coucou le fédiverse) qui permettrait de rendre certaines parties publiques, voire des interactions inter-structures sur des projets communs. Une forme de <a href="/david/2020/12/13/#journal">journalisation interactive</a> avec des droits d’accès relativement fins.</p>
  74. <p>Il n’y a pas eu une seule discussion utilisateur·ice et il y a déjà une montagne de fonctionnalités, ça fait une éternité que je n’avais pas parlé de <em>vaporware</em> par ici&nbsp;:-).</p>
  75. <p>Si vous vous demandez à quoi ressemble P2, il y a une <a href="https://videopress.com/v/YYNW9iSj">vidéo en action ici</a> et le seul espace que je connaisse dans la nature est <a href="http://mtlcityweblog.com/">au sujet de Montréal</a>. J’aime notamment que les nouvelles entrées soient mises en surbrillance et disparaissent au <em>scroll</em>, à l’usage c’est pertinent.</p>
  76. <blockquote lang="en">
  77. <p>Conversations on P2s take place in line, update in real time, and provide space for threaded replies. We’ve stuck with P2&nbsp;for years now, and it has ultimately evolved into a rich source of institutional wisdom and collective company memory.</p>
  78. <p>[…]</p>
  79. <p>At its core, P2&nbsp;is organized, searchable knowledge. For example, we write up notes from every meeting, and tag attendees by name. I can search for any person’s name tag and pull up all conversation history related to the individual in question. <mark>It’s an invaluable resource.</mark></p>
  80. <p><cite><em><a href="https://distributed.blog/2020/06/18/distributed-faq-p2-automattic/">Distributed FAQ: How Did P2&nbsp;Become Automattic’s Signature Mode of Communication?</a></em> (<a href="/david/cache/2021/92cd5096092b0f66b72ad6e4084c17e4/">cache</a>)</cite></p>
  81. </blockquote>
  82. <nav>
  83. <p class="center">
  84. <a rel="prev" href="/david/2021/10/06/" title="Publication précédente : Promotion">← Précédent</a> •
  85. <a href="/david/2021/" title="Liste des publications récentes">↑ En 2021</a>
  86. • <a rel="next" href="/david/2021/10/09/" title="Publication suivante : Slowgrégateur">Suivant →</a>
  87. </p>
  88. </nav>
  89. </article>
  90. <hr>
  91. <footer>
  92. <p>
  93. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  94. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  95. </svg> Accueil</a> •
  96. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  97. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use>
  98. </svg> Suivre</a> •
  99. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  100. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use>
  101. </svg> Pro</a> •
  102. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  103. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use>
  104. </svg> Email</a> •
  105. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  106. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use>
  107. </svg> Légal</abbr>
  108. </p>
  109. <template id="theme-selector">
  110. <form>
  111. <fieldset>
  112. <legend><svg class="icon icon-brightness-contrast">
  113. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use>
  114. </svg> Thème</legend>
  115. <label>
  116. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  117. </label>
  118. <label>
  119. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  120. </label>
  121. <label>
  122. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  123. </label>
  124. </fieldset>
  125. </form>
  126. </template>
  127. </footer>
  128. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  129. <script>
  130. function loadThemeForm(templateName) {
  131. const themeSelectorTemplate = document.querySelector(templateName)
  132. const form = themeSelectorTemplate.content.firstElementChild
  133. themeSelectorTemplate.replaceWith(form)
  134. form.addEventListener('change', (e) => {
  135. const chosenColorScheme = e.target.value
  136. localStorage.setItem('theme', chosenColorScheme)
  137. toggleTheme(chosenColorScheme)
  138. })
  139. const selectedTheme = localStorage.getItem('theme')
  140. if (selectedTheme && selectedTheme !== 'undefined') {
  141. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  142. }
  143. }
  144. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  145. window.addEventListener('load', () => {
  146. let hasDarkRules = false
  147. for (const styleSheet of Array.from(document.styleSheets)) {
  148. let mediaRules = []
  149. for (const cssRule of styleSheet.cssRules) {
  150. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  151. continue
  152. }
  153. // WARNING: Safari does not have/supports `conditionText`.
  154. if (cssRule.conditionText) {
  155. if (cssRule.conditionText !== prefersColorSchemeDark) {
  156. continue
  157. }
  158. } else {
  159. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  160. continue
  161. }
  162. }
  163. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  164. }
  165. // WARNING: do not try to insert a Rule to a styleSheet you are
  166. // currently iterating on, otherwise the browser will be stuck
  167. // in a infinite loop…
  168. for (const mediaRule of mediaRules) {
  169. styleSheet.insertRule(mediaRule.cssText)
  170. hasDarkRules = true
  171. }
  172. }
  173. if (hasDarkRules) {
  174. loadThemeForm('#theme-selector')
  175. }
  176. })
  177. </script>
  178. </body>
  179. </html>