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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  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 #utilisateur·ice — David Larlet</title>
  13. <meta name="description" content="Publications relatives au tag #utilisateur·ice">
  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. <header>
  54. <h1>Publications relatives au tag #utilisateur·ice</h1>
  55. </header>
  56. <nav>
  57. <p class="center">
  58. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  59. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  60. </svg> Accueil</a>
  61. • <a rel="tags" href="/david/#tags" title="Liste de toutes les étiquettes"><svg class="icon icon-tags">
  62. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-tags"></use>
  63. </svg> Étiquettes</a>
  64. </p>
  65. </nav>
  66. <hr>
  67. <main>
  68. <p>Liste des publications en ordre chronologique :</p>
  69. <h2><a href="/david/2021/01/16/" title="Lien permanent vers cet article">Bouc émissaire</a> (2021-01-16)</h2>
  70. <details>
  71. <summary>Déplier pour lire le contenu de l’article</summary>
  72. <blockquote lang="en">
  73. <p>And so naturally, we apply our view of the world, our values. If you view your users with contempt, then the reason behind why people don’t like complicated products is because they are stupid and lazy. If, on the other hand, you <em>respect</em> your users, <mark>you might view things differently</mark>.</p>
  74. <p><cite><em><a href="https://somehowmanage.com/2020/09/13/disrespectful-design-users-arent-stupid-or-lazy/">Disrespectful Design-Users aren’t stupid or lazy</a></em> (<a href="/david/cache/2021/883963a92bff6f5bd5ade883ae84bd3f/">cache</a>)</cite></p>
  75. </blockquote>
  76. <p>Deux articles qui invitent à revisiter notre rapport aux utilisateur·ice·s et à la responsabilité que l’on peut avoir dans leurs désarrois face à nos productions. <strong>Il est assez aisé d’éprouver de l’empathie pour ses pairs.</strong> En revanche, lorsqu’il s’agit de personnes très différentes, il est beaucoup plus difficile de se mettre à leurs places. Et c’est là où réside l’enjeu d’une approche qui a l’intention d’être inclusive.</p>
  77. <blockquote lang="en">
  78. <p>This shouldn’t be about shaming individual habits, it’s counter-productive to data shame users. Those of us designing and building these digital products and services should be the ones <mark>taking responsibility</mark> for ensuring that they’re fit for a more sustainable world.</p>
  79. <p><cite><em><a href="https://branch.climateaction.tech/2020/10/15/designing-branch-sustainable-interaction-design-principles/">Designing Branch: Sustainable Interaction Design Principles</a></em> (<a href="/david/cache/2021/2057ddcf3fd20edd602cee1b08ac17e8/">cache</a>)</cite></p>
  80. </blockquote>
  81. </details>
  82. <h2><a href="/david/2021/03/09/" title="Lien permanent vers cet article">Fun</a> (2021-03-09)</h2>
  83. <details>
  84. <summary>Déplier pour lire le contenu de l’article</summary>
  85. <blockquote lang="en">
  86. <p>And there’s plenty of other backfill features, as we like to call them. The stuff you’re just supposed to do. The things people will ask for.</p>
  87. <p>But people don’t ask for weird. They don’t ask for different. They even rarely ask for fun. Practical? Yup. Configurable? Definitely. Life is more than just that, though.</p>
  88. <p>[…]</p>
  89. <p>That’s why its <mark>our duty to stand up</mark> for weird/different/fun. Give it a seat at the planning table.</p>
  90. <p><cite><em><a href="https://world.hey.com/dhh/keep-hey-weird-de3e912c">Keep HEY weird</a></em> (<a href="/david/cache/2021/b0bb48391acd14185895724197f63417/">cache</a>)</cite></p>
  91. </blockquote>
  92. <p>C’est une des choses qui me titille avec les entretiens utilisateur·ices, les approches LEAN, etc. On obtient des produits plus pertinents, plus rapidement mais qu’en est-il de la partie fun&#8239;? C’est déjà très bien d’arriver à un outil fonctionnel mais comment le conjuguer à une «&nbsp;humanité&nbsp;» imparfaite et surprenante&#8239;?</p>
  93. <p>Dans cet étau d’efficacité, on passe peut-être à côté de quelque chose d’important. On court après <q>une recherche aussi rapide que celle de Google</q>, <q>un achat aussi <em>1-click</em> que celui d’Amazon</q>, <q>une interface aussi simple que celle d’Apple</q> mais les fois où j’ai des émotions c’est quand je me connecte au site même-pas-en-HTTPS de la ferme du coin pour commander des œufs et qu’ils me répondent manuellement pour me dire <q>À dimanche&#8239;!</q>.</p>
  94. </details>
  95. <h2><a href="/david/2021/03/22/" title="Lien permanent vers cet article">JavaScript-less</a> (2021-03-22)</h2>
  96. <details>
  97. <summary>Déplier pour lire le contenu de l’article</summary>
  98. <blockquote lang="en">
  99. <p>With a few minor omissions and links, you can create a site that <strong>works great in modern browsers with ES6+</strong> <em>and</em> <strong>acceptably in browsers without JavaScript</strong>. This approach is more sustainable for teams without the resources for extensive QA, and more beneficial to users of nonstandard browsers. […]<br />
  100. The best way to help your IE11&nbsp;users is <mark>to provide a great experience for your non-JS users</mark> and share that experience with them, instead of sending them an untested and buggy experience that also slows the experience of users with modern browsers.</p>
  101. <p><cite><em><a href="https://blog.carlmjohnson.net/post/2020/time-to-kill-ie11/">Dropping Support For IE11&nbsp;Is Progressive Enhancement</a></em> (<a href="/david/cache/2021/a9e4daf32281eaee0adaa39e32d28890/">cache</a>)</cite></p>
  102. </blockquote>
  103. <p>Je trouve cette approche particulièrement pertinente, un peu difficile avec une <abbr title="Single Page App">SPA</abbr> sans serveur tout de même. Et encore, il y aurait des choses à expérimenter&nbsp;: on peut potentiellement aller très loin en CSS uniquement avec des <code>:checked</code> par exemple. À voir à quel point est-ce que ça endommage l’accessibilité par ailleurs… les défis techniques hypothétiques sont parfois de fausses bonnes idées pour des usages qui sont eux bien réels.</p>
  104. <p>Les tests utilisateur·ices sont une source intarissable de découvertes impensables. <em>Qu’il faut pourtant panser.</em></p>
  105. </details>
  106. <h2><a href="/david/2021/04/30/" title="Lien permanent vers cet article">Produit</a> (2021-04-30)</h2>
  107. <details>
  108. <summary>Déplier pour lire le contenu de l’article</summary>
  109. <blockquote lang="en">
  110. <p>This was surprising because it seems so clearly against our own interest. In almost every case, companies fail because they build the wrong thing. <mark>Unless your customers are themselves engineers, I’m the wrong person to help with that.</mark> You want someone comfortable at the periphery of your system, who wants to learn about the competitive landscape, who wants to talk to customers. You want a product engineer.</p>
  111. <p><cite><em><a href="https://ideolalia.com/essays/trapped-in-the-technologist-factory.html">trapped in the technologist factory</a></em> (<a href="/david/cache/2021/0d69b48e03e8a6b26605dfda4a6f32dd/">cache</a>)</cite></p>
  112. </blockquote>
  113. <p>C’est un long cheminement personnel pour arriver à cette conclusion. Le mien a duré de très longues années et d’une certaine manière je continue de l’arpenter. Se rappeler quotidiennement que le produit que je développe n’est pas égoïstement pour moi — ou ma propre acquisition de connaissances — mais au service d’autres personnes. Cette démarche requiert un certain niveau de prise de conscience puis d’empathie pour espérer faire un produit utilisable et utilisé.</p>
  114. <p>Et pendant ce temps là&nbsp;:</p>
  115. <blockquote lang="en">
  116. <p>I choose requests from this list <mark>based on my current mood</mark> and what I would like to implement next. There is no secret sauce behind it. It’s all about building what people want.</p>
  117. <p><cite><em><a href="https://www.lunadio.com/blog/the-story-of-a-unicorn-solo-founder-making-dollar500000-arr/">The story of a unicorn solo founder making $500,000&nbsp;ARR</a></em> (<a href="/david/cache/2021/7a14f3cf8b05889a910c575726915486/">cache</a>)</cite></p>
  118. </blockquote>
  119. </details>
  120. <h2><a href="/david/2021/11/06/" title="Lien permanent vers cet article">Client</a> (2021-11-06)</h2>
  121. <details>
  122. <summary>Déplier pour lire le contenu de l’article</summary>
  123. <blockquote lang="en">
  124. <p>The central cause of the failure was another anti-pattern, <strong>CEO as Customer</strong>. And it turns out that a company that can’t invest in the quality of its mainline product, won’t invest in the quality of its replacement, either. That’s a management anti-pattern, and starting over with new people and a blank piece of paper doesn’t change management. <mark>Only management can change management.</mark></p>
  125. <p><cite><em><a href="http://raganwald.com/2021/10/28/the-inner-osborne-effect.html">The Inner Osborne Effect</a></em> (<a href="/david/cache/2021/a98225895499217f24a9e081c2684dc4/">cache</a>)</cite></p>
  126. </blockquote>
  127. <p><abbr lang="en" title="Chief Executive Officer">CEO</abbr> comme client &lt; Comité directeur comme client &lt; Équipe de développement comme cliente &lt; Équipe produit comme cliente &lt; Interviewé·es comme client·es.</p>
  128. <p>Étonnamment, entre le biais de sélection et la transformation des personnes recrutées, «&nbsp;Client comme client&nbsp;» est très difficile à atteindre.</p>
  129. <p>À moins d’être son propre client.</p>
  130. </details>
  131. </main>
  132. <hr>
  133. <footer>
  134. <p>
  135. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  136. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  137. </svg> Accueil</a> •
  138. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  139. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use>
  140. </svg> Suivre</a> •
  141. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  142. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use>
  143. </svg> Pro</a> •
  144. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  145. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use>
  146. </svg> Email</a> •
  147. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  148. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use>
  149. </svg> Légal</abbr>
  150. </p>
  151. <template id="theme-selector">
  152. <form>
  153. <fieldset>
  154. <legend><svg class="icon icon-brightness-contrast">
  155. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use>
  156. </svg> Thème</legend>
  157. <label>
  158. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  159. </label>
  160. <label>
  161. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  162. </label>
  163. <label>
  164. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  165. </label>
  166. </fieldset>
  167. </form>
  168. </template>
  169. </footer>
  170. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  171. <script>
  172. function loadThemeForm(templateName) {
  173. const themeSelectorTemplate = document.querySelector(templateName)
  174. const form = themeSelectorTemplate.content.firstElementChild
  175. themeSelectorTemplate.replaceWith(form)
  176. form.addEventListener('change', (e) => {
  177. const chosenColorScheme = e.target.value
  178. localStorage.setItem('theme', chosenColorScheme)
  179. toggleTheme(chosenColorScheme)
  180. })
  181. const selectedTheme = localStorage.getItem('theme')
  182. if (selectedTheme && selectedTheme !== 'undefined') {
  183. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  184. }
  185. }
  186. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  187. window.addEventListener('load', () => {
  188. let hasDarkRules = false
  189. for (const styleSheet of Array.from(document.styleSheets)) {
  190. let mediaRules = []
  191. for (const cssRule of styleSheet.cssRules) {
  192. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  193. continue
  194. }
  195. // WARNING: Safari does not have/supports `conditionText`.
  196. if (cssRule.conditionText) {
  197. if (cssRule.conditionText !== prefersColorSchemeDark) {
  198. continue
  199. }
  200. } else {
  201. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  202. continue
  203. }
  204. }
  205. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  206. }
  207. // WARNING: do not try to insert a Rule to a styleSheet you are
  208. // currently iterating on, otherwise the browser will be stuck
  209. // in a infinite loop…
  210. for (const mediaRule of mediaRules) {
  211. styleSheet.insertRule(mediaRule.cssText)
  212. hasDarkRules = true
  213. }
  214. }
  215. if (hasDarkRules) {
  216. loadThemeForm('#theme-selector')
  217. }
  218. })
  219. </script>
  220. </body>
  221. </html>