Browse Source

Moar cache

master
David Larlet 4 years ago
parent
commit
4985cb471c
No known key found for this signature in database
39 changed files with 3916 additions and 0 deletions
  1. 59
    0
      cache/2020/195a2ecd81fa25a7cf43248b809bf724/index.html
  2. 5
    0
      cache/2020/195a2ecd81fa25a7cf43248b809bf724/index.md
  3. 319
    0
      cache/2020/2c6ccd57b9f0f1c39706013d026de507/index.html
  4. 135
    0
      cache/2020/2c6ccd57b9f0f1c39706013d026de507/index.md
  5. 95
    0
      cache/2020/31652af3fd4757154c51aadcbe9ffb39/index.html
  6. 5
    0
      cache/2020/31652af3fd4757154c51aadcbe9ffb39/index.md
  7. 101
    0
      cache/2020/4bda6c744ffb55c0fc4f4bf1f740b4e3/index.html
  8. 29
    0
      cache/2020/4bda6c744ffb55c0fc4f4bf1f740b4e3/index.md
  9. 100
    0
      cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/index.html
  10. 46
    0
      cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/index.md
  11. 191
    0
      cache/2020/58117f5865002118d6769cb0a7aa9786/index.html
  12. 72
    0
      cache/2020/58117f5865002118d6769cb0a7aa9786/index.md
  13. 267
    0
      cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/index.html
  14. 212
    0
      cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/index.md
  15. 113
    0
      cache/2020/77db8cc6de2906f31a4d37d91a47a3aa/index.html
  16. 55
    0
      cache/2020/77db8cc6de2906f31a4d37d91a47a3aa/index.md
  17. 220
    0
      cache/2020/85e0f968f6ac8dfdd76c7a76df6ef088/index.html
  18. 98
    0
      cache/2020/85e0f968f6ac8dfdd76c7a76df6ef088/index.md
  19. 92
    0
      cache/2020/874765e437a144748e9438d272b1177a/index.html
  20. 77
    0
      cache/2020/874765e437a144748e9438d272b1177a/index.md
  21. 155
    0
      cache/2020/911b72ae5d6e140268adf8591aae7df3/index.html
  22. 103
    0
      cache/2020/911b72ae5d6e140268adf8591aae7df3/index.md
  23. 99
    0
      cache/2020/a70068c881eba36604b2f4f8aec54670/index.html
  24. 44
    0
      cache/2020/a70068c881eba36604b2f4f8aec54670/index.md
  25. 228
    0
      cache/2020/ac3266635585d387973da1c64b546990/index.html
  26. 147
    0
      cache/2020/ac3266635585d387973da1c64b546990/index.md
  27. 77
    0
      cache/2020/af5d5f52466dfc2f59718294faa07418/index.html
  28. 25
    0
      cache/2020/af5d5f52466dfc2f59718294faa07418/index.md
  29. 73
    0
      cache/2020/afb9fa99e3c43324fbe57b416562b8f9/index.html
  30. 15
    0
      cache/2020/afb9fa99e3c43324fbe57b416562b8f9/index.md
  31. 121
    0
      cache/2020/bdc65ed9d2657f45d13d97186072b415/index.html
  32. 69
    0
      cache/2020/bdc65ed9d2657f45d13d97186072b415/index.md
  33. 85
    0
      cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/index.html
  34. 33
    0
      cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/index.md
  35. 83
    0
      cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/index.html
  36. 18
    0
      cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/index.md
  37. 197
    0
      cache/2020/fc97310297178a549eab5c5f9e8a334f/index.html
  38. 15
    0
      cache/2020/fc97310297178a549eab5c5f9e8a334f/index.md
  39. 38
    0
      cache/2020/index.html

+ 59
- 0
cache/2020/195a2ecd81fa25a7cf43248b809bf724/index.html
File diff suppressed because it is too large
View File


+ 5
- 0
cache/2020/195a2ecd81fa25a7cf43248b809bf724/index.md
File diff suppressed because it is too large
View File


+ 319
- 0
cache/2020/2c6ccd57b9f0f1c39706013d026de507/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://medium.com/@florence.porcel/laffaire-de-la-ligue-du-lol-ou-la-fabrique-de-l-oubli-df4ad3f5f2b5">

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

<article>
<h1>L’affaire de la Ligue du LOL, ou la fabrique de l’oubli</h1>
<h2><a href="https://medium.com/@florence.porcel/laffaire-de-la-ligue-du-lol-ou-la-fabrique-de-l-oubli-df4ad3f5f2b5">Source originale du contenu</a></h2>
<p id="7ad3" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">La fabrique de l’oubli</strong></p>

<p id="9dbb" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’aurais aimé ne pas avoir à faire ce post. J’aurais aimé oublier toute cette histoire. Ça fait 10 ans que je vis avec, et je n’en peux plus.</p>

<p id="ec12" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais à l’occasion du premier anniversaire de la folie médiatique qui a eu lieu autour de cette affaire de la Ligue du LOL, j’ai vu, à nouveau, comme l’année dernière déjà, des articles, enquêtes, posts, billets, etc… de gens qui parlent à ma place en disant « tout le monde était comme ceci, tout le monde faisait cela » ou, pire, qui réécrivent carrément l’Histoire.</p>

<p id="d457" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Alors voici une bonne fois pour toute ce que j’ai à dire, avec les preuves qui corroborent les témoignages que j’ai livrés à la presse. Pour qu’on ne me dise plus que c’est « parole contre parole » ou qu’il ne s’agit pas de faits mais de « ressentis ». Et ensuite, je veux définitivement passer à autre chose. Oublier.</p>

<p id="aeee" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est justement l’oubli que j’ai choisi comme angle pour ce post, parce qu’il est un concept central dans cette affaire :</p>

<p id="3b26" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">- l’oubli organique sincère des mis en cause d’abord, face à l’afflux de souvenirs vifs des victimes ;</p>

<p id="fa6b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">- l’oubli numérique créé de toute pièce par les mêmes mis en cause, avec la suppression massive de tweets, de documents, voire de comptes sur les réseaux sociaux ;</p>

<p id="0878" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">- et l’oubli subi d’une victime (en l’occurrence, moi) qui, à force de répéter les mêmes récits en boucle et de se voir confrontée à des souvenirs antagonistes, voire à des réécritures des faits, en finit par douter de sa propre mémoire…</p>

<p id="df71" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">… jusqu’à il y a quelques jours, où j’ai retrouvé les preuves qui vont suivre.</p>

<p id="bebc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">MON CONTEXTE</strong></p>

<p id="22d0" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ah, cette histoire de « contexte »… Il est brandi à toutes les sauces : qui pour minimiser les violences, qui pour réécrire l’Histoire, qui pour faire de grandes généralités sur ce qu’était Twitter à l’époque. Mais NON, il n’y avait pas plus « un » Twitter à l’époque que maintenant. Les expériences sont multiples.</p>

<p id="e7f8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Sur les années qui nous intéressent, soit 2009–2013, je pense qu’on se rejoint tous sur le fait que ce n’était pas encore un réseaux social mainstream et qu’une grande partie des gens s’en servait comme d’un mélange entre LinkedIn, un forum, MSN, et Tinder.</p>

<p id="3068" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais contrairement à ce que j’entends ici et là, NON il n’y avait pas plus de culture du clash que maintenant, NON tout le monde n’insultait pas des gens juste pour le plaisir, NON tout le monde ne harcelait pas, NON tout le monde n’avait pas envie d’être bien vu des loleurs ou de telle ou telle figure populaire, etc etc (le nombre d’inepties est trop grand, je m’arrête là).</p>

<p id="2f7b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et moi, alors, que suis-je venue y faire ?… Mon contexte est le suivant : après avoir achevé ma formation artistique de 3 ans à l’Ecole de Comédie Musicale de Paris, j’ai repris mes études pour tenir la promesse faite à mes parents d’avoir également un « vrai diplôme ». DEUG d’Anglais à Paris 4, L3 puis M1 d’Information et Communication à Paris 3, et me voilà, en 2009, en M2 professionnel de Journalisme Culturel après avoir réussi le concours d’entrée pour ce master qui doit m’apporter le diplôme tant attendu (bac +5 en travaillant à côté parce que j’étais financièrement indépendante, je n’en voyais plus la fin). Malgré mes recherches dès le mois de juillet, je ne trouve pas le contrat d’apprentissage que la fac demande pour valider la partie « professionnelle » de ce M2 pro.</p>

<p id="0dd9" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">En novembre, toujours rien, et l’idée de perdre mon année (donc de ne pas avoir ce fichu diplôme malgré tous les sacrifices) m’est insupportable ; je me réveille un jour avec une idée : faire un CV-vidéo. À l’époque, il y en a quelques-uns qui « buzzent », mais essentiellement sous forme de clips. Moi, je viens de la scène, je rêvais de faire du cinéma, alors je fabrique mon « <a href="https://www.youtube.com/watch?v=3-VIAeyeKwo" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">CV-court-métrage façon Amélie Poulain</a> » pour substituer les CV/lettres de motivation à un lien à envoyer aux potentiels recruteurs.</p>

<p id="5fc1" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et ça m’échappe. Ça fait le tour de tous les médias, je suis assaillie par les sollicitations de la presse. Je ne comprends pas pourquoi, jusqu’à ce que je me rende compte que les journalistes qui m’appellent ont vu la vidéo via Twitter. Je m’étais créé un compte en juin 2009, mais comme je comprenais rien au fonctionnement de ce réseau social, je ne l’utilisais pas. Je m’y suis mise, bien décidée à remercier tous les gens qui me permettaient d’être très vue. J’ai vécu une premier folie médiatique, et j’ai découvert ses travers et ses conséquences : des milliers de commentaires d’injures et d’insultes sexistes, des menaces de viol et de mort, bref… Je me suis pris dans la gueule ce que c’est que d’être une femme sur Internet. Baptême du feu.</p>

<p id="692c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">En parallèle, je me prends au jeu de Twitter, et bientôt, je ne peux plus m’en passer. Mais là aussi, j’en saisis très vite ses travers et ses conséquences : en l’occurrence, je comprends assez rapidement que je suis une des cibles d’une bande de gars, très vite qualifiés de « loleurs »… mais qui ne me font pas rire. Pour avoir subi du harcèlement scolaire, je sais ce que ça implique, et je n’ai pas très envie que ça recommence. Mais le fait est que ça recommence, et que les semaines passent, puis les mois, puis les années, ils sont toujours là, et non seulement ils ne m’oublient pas, mais en plus ils vont toujours plus loin.</p>

<p id="a494" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quand je comprends qu’ils ne me lâcheront pas et qu’ils sont hors de contrôle, alors tout change. Avant chaque tweet, je pèse mes mots, je me demande comment (et non pas “si” !) ça pourra être retourné contre moi. Je m’autocensure. J’ai peur. Quand j’échange avec mes amis, je le fais dans une sorte de soupe de pois malaisante parce que je m’attends à chaque instant à recevoir un coup. Et je ne sais pas quand, ni d’où, ni sous quelle forme. J’étais en tension permanente.</p>

<p id="a5eb" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Evidemment, ça se répercutait sur mon quotidien, sur mon humeur, sur mon rapport aux autres, au monde, à moi-même. « Ils » étaient là. Tout le temps. Même quand j’étais déconnectée, je sentais leur présence. Les effets du harcèlement scolaire ne s’arrêtent pas une fois rentré chez soi. C’est la même chose pour le harcèlement en ligne : il ne s’arrête pas une fois déconnecté.</p>

<p id="73b4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Qui étaient ces « ils » ? De la plupart, je ne savais rien. Pour deux ou trois, j’avais un prénom. Mais à part Vincent Glad, je ne connaissais pas leur visage. Ça pouvait être absolument n’importe qui. Alors à chaque rencontre, à chaque apéro, à chaque entretien d’embauche, cette question : est-ce que c’est un loleur ? est-ce que je vais me faire piéger ? est-ce que je peux faire confiance à ce type ? Quel est le sens de ce sourire narquois quand je décline mon identité ? Malaise. Tension. Malaise et tension permanente. Ça rend dingue. Une seule chose était sûre : ils étaient malveillants et ils me voulaient du mal (à moi comme à d’autres).</p>

<p id="c763" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’étais dans le flou le plus total : je ne savais pas qui ils étaient, combien exactement ils étaient, ce qu’ils me voulaient, jusqu’où ils iraient, combien de temps ça durerait, et si je pouvais les côtoyer ou les croiser IRL. Bref, vous imaginez bien que vivre dans ce genre de psychose, ce n’est pas la garantie d’une vie heureuse et épanouie.</p>

<p id="012c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai appris l’année dernière que les loleurs n’avaient pas conscience de ce « flou » insupportable et qui rend dingue. Eux savaient qui ils étaient, quels étaient leurs desseins, qui ils rencontraient IRL. Leurs liens fluctuaient, certains arrêtaient, d’autres se greffaient, ou prenaient le relais… Mais pour moi en face, c’était la même entité, inquiétante, pesante, menaçante, et qui pouvait dégainer à chaque instant.</p>

<p id="030b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ils ne peuvent pas comprendre cette atmosphère irrespirable, cette épée de Damoclès pendant des semaines, des mois, des années. Eux, ils « trollaient », et dans la seconde même… ils oubliaient. Ils ne saisissent toujours pas la manière dont j’ai pu vivre toutes ces années — j’en veux pour preuve cet extrait du <a class="at ey fy fz ga gb" target="_blank" rel="noopener" href="/@vincentglad_67276/ligue-du-lol-un-an-après-aeee7784cf4d">long post de Vincent Glad</a> à propos du compte collectif @foutlamerde.</p>

<p id="7b72" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Est-ce que je me prenais au sérieux ? Je n’avais pas l’impression, mais soit. Est-ce que je faisais du personal branding ? Probablement, oui. Du coup, voici une idée de ce à quoi j’avais droit :</p>

<p id="438e" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je ne sais pas quel souvenir Vincent Glad a des « Guignols de l’Info », mais il se trouve que c’était mon émission préférée et qu’ils me faisaient rire. @foutlamerde, non.</p>

<p id="eeb8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">« Il n’était pas perçu comme un compte de harceleurs », dit-il. C’est vrai… de son point de vue. Du mien, cette phrase est rigoureusement fausse. @foutlamerde, dont j’ignorais qui se cachait derrière, faisait partie de « l’entité menaçante » qui laissait sa poisse partout où elle frappait et qui était devenue ma seconde peau.</p>

<p id="703f" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’ai jamais trouvé le contrat que je cherchais mais j’ai fini par décrocher mon diplôme. J’ai enchaîné avec un an de chômage et toujours plus de précarité. Puis en 2011, j’ai intégré l’équipe du Grand Webze, une émission co-présentée par Vinvin (Cyrille de Lasteyrie) et François Rollin : une émission qui avait la prétention d’amener le web à la télé. Une première dans le PAF ! J’étais la community manager de l’émission et j’étais, à l’antenne, le lien entre Twitter et ce qui se passait en plateau.</p>

<p id="fbdc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">LES LOLEURS AU « GRAND WEBZE »</strong></p>

<p id="0ed2" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est pendant la préparation d’une de ces émissions que le premier cap dans l’échelle de la violence a été franchi : j’ai vu passer un photomontage à caractère pornographique avec ma tête sur le corps d’une actrice dans une position plus que suggestive.</p>

<p id="ca49" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’ai pas pu retrouver cette image. Je ne sais plus quel compte l’avait partagée — j’hésite entre deux comptes, tous les deux supprimés. J’ai mentionné « l’incident » à Cyrille, à côté de moi dans les bureaux, et j’ai essayé, comme chaque jour depuis mon arrivée sur Twitter, de faire comme si cette poisse n’existait pas. Mais l’oubli qu’on s’impose ne fonctionne pas.</p>

<p id="c8de" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est là que l’oubli des mis en cause prend un tournant tout à fait fascinant. Dès les premières demandes de témoignage lorsque l’affaire est sortie l’année dernière, j’ai raconté un événement qui m’avait beaucoup choquée : j’avais vu arriver, médusée, sur le plateau du Grand Webze, Vincent Glad et plusieurs de ses amis — forcément des loleurs eux aussi.</p>

<p id="1d2d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai expliqué des dizaines de fois comment ils étaient venus me voir pour me demander un service (leur présenter François Rollin dont ils étaient fan), comment ils m’avaient encerclée, et comment ils n’avaient pas voulu bouger avant que j’accède à leur demande.</p>

<p id="4b09" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Avec cet événement, il ne s’agissait plus seulement de tweets et de photomontages dégradants : les loleurs passaient au stade IRL. Ils étaient nombreux, étaient arrivés d’un seul bloc, ils n’étaient ni invités, ni les bienvenus sur ce plateau de télévision, ils me harcelaient depuis des années, et désormais… ils avaient fait le déplacement jusqu’à mon lieu de travail pour venir droit sur moi, m’encercler et refuser de bouger tant qu’ils n’auraient pas ce qu’ils étaient venus chercher. Bien sûr que je me suis sentie menacée et intimidée ! Bien sûr que ça m’a choquée !</p>

<p id="f478" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais eux… ont oublié. Parmi les hommes présents ce soir-là, je n’ai pu reconnaître que Vincent Glad, qui était le seul dont je connaissais à la fois le prénom, le nom, et le visage. Mais je n’ai jamais donné son nom aux journalistes — ou bien toujours en off. C’est sans doute la raison pour laquelle Vincent Glad n’a jamais vu passer ce récit et qu’il l’a découvert en fin d’année dernière seulement (la capture d’écran provient <a class="at ey fy fz ga gb" target="_blank" rel="noopener" href="/@vincentglad_67276/ligue-du-lol-un-an-après-aeee7784cf4d">de ce même post</a>).</p>

<p id="8f94" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’avais pas lu le long post de Vincent Glad avant de prendre la décision de rédiger le mien, et je suis tombée des nues en apprenant qu’il découvrait cette histoire sur le tard… et qu’il ne s’inclut pas dans le groupe qui s’est déplacé jusqu’au plateau puisqu’il utilise le pronom « ils » et non « nous ».</p>

<p id="d208" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais je suis catégorique : il était là, puisque je l’ai reconnu, et que, le reconnaissant (et donc assimilant ses amis aux loleurs), j’ai été prise de panique. Et surtout, je n’ai parlé qu’à lui. Voici l’histoire, dans une version plus détaillée :</p>

<p id="c75e" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’était la fin de l’émission, qui était tournée en direct à <a href="http://www.lacartonnerieparis.com/" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">la Cartonnerie</a> (Paris 11), il était environ 1 heure du matin. Régnait un joyeux bordel : les techniciens commençaient à ranger, les invités discutaient entre eux ou visitaient le lieu, les gens de la chaîne débriefaient avec l’équipe… C’est dans ce contexte que j’ai vu, près de la porte d’entrée, un groupe de gars. Ils me voient, se dirigent vers moi, et je reconnais Vincent Glad.</p>

<p id="e373" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Ah, Florence ! C’est toi qu’on cherchait…</p>

<p id="ac66" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Mais qu’est-ce que vous faites là ??</p>

<p id="ae8b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Je suis Vincent Glad et…</p>

<p id="f6e4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Je sais qui t’es — d’où ma question : vous n’avez rien à faire là, partez !</p>

<p id="8376" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je flippe, bien sûr, mais je ne veux pas qu’ils le voient. Et je suis tellement outrée par leur audace ?/indécence ? que la colère m’aide à leur résister. Seulement, cette situation semble beaucoup les amuser, je vois des petits sourires narquois sur leur visage, et ils m’encerclent.</p>

<p id="4d12" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Oh, mais le prends pas comme ça, on veut juste rencontrer Rollin, tu peux nous le présenter ?</p>

<p id="ffbf" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Non mais vous êtes sérieux ??</p>

<p id="ad17" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Allez…</p>

<p id="c4b5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Vous êtes sérieux les gars ?? Vous me faites chier sur Twitter depuis des années, et là vous me demandez un service ??</p>

<p id="db11" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Allez, steuplaît… On est fan…</p>

<p id="b332" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Mais non ! Dégagez, vous n’avez rien à faire là, partez !</p>

<p id="d80b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Allez… De toute façon on ne bougera pas.</p>

<p id="ace6" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Non mais j’hallucine putain… Vous êtes sérieux !?</p>

<p id="8f00" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Présente-le nous et on s’en va !</p>

<p id="0017" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Promis ? Vraiment ? Je vous le présente, et vous partez ?</p>

<p id="c42d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Promis !</p>

<p id="18c1" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Bon, ben suivez-moi… Et après, vous partez, hein ! Vous n’avez rien à faire là !</p>

<p id="9962" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Bien obligée, je leur demande donc de me suivre jusqu’à Rollin. “François, je te présence Vincent Glad et ses amis… Vincent, voilà François”. Et là, Vincent bafouille : “Je suis super fan, quand j’étais petit on m’appelait le professeur Rollin parce que j’avais toujours quelque chose à dire”, Rollin ne sait pas trop quoi dire en face à part “merci”, ils regardent leurs pieds ne sachant pas quoi dire d’autres, c’est assez pathétique finalement, et là je leur dis “Bon ben voilà, maintenant vous me suivez, je vous raccompagne à la sortie et vous partez”, ce que j’ai fait, j’ai vérifié qu’ils sortaient bien tous, ce qu’ils ont fait, et voilà.</p>

<p id="2bb8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je me souviens précisément de chaque moment, parce que ça m’a choquée et que tous mes warnings de danger s’étaient allumés. Mais eux ont oublié.</p>

<p id="997a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Aux journalistes qui me demandaient combien ils étaient, je disais « cinq, six ou sept ». Et puis au fur et à mesure, je me suis dit que j’exagérais peut-être, alors je disais « environ cinq », puis « au moins quatre ».</p>

<p id="d577" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’aurais dû faire confiance à ma mémoire. Parce que moi, je n’avais pas oublié… et Internet non plus. Voici un <a href="https://twitter.com/AlexHervaud/status/147827443166756865" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">tweet publié par Alexandre Hervaud</a>…</p>

<p id="ef25" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">… et <a href="https://twitpic.com/7u7v7e" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">la photo qui l’accompagne</a> (j’ai des copies d’écran, des fois que le tweet disparaisse, hein). Les téléphones faisaient des photos de moins bonne qualité à l’époque, mais on distingue très nettement cinq personnes, auxquelles on rajoute Alexandre Hervaud qui prend la photo. Ça fait donc six personnes, dont Vincent Glad (tout à gauche). Et ils sont effectivement devant le 159 de la rue Saint Maur où se trouve la Cartonnerie.</p>

<p id="2b5c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et en débarquant à SIX gars, dans un endroit où ils n’avaient rien à faire, pour se diriger vers UNE femme dont ils savaient qu’elle savait qu’ils étaient (tout ou partie) des loleurs… à aucun moment ils n’ont pensé au danger que je pourrais ressentir — à aucun moment, puisque pour eux, c’était effectivement juste une visite, juste quelques « mots amicaux » échangés avec Rollin — qu’ils ont oubliés sans doute dès le lendemain.</p>

<p id="3e98" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Vincent Glad demande dans son post : « Pourquoi aucun média n’a jamais cherché à éclaircir cette histoire d’agression physique qui a pourtant pesé très lourd dans notre dossier ? »</p>

<p id="811a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ben voilà, Vincent. C’est assez éclairci, comme ça ?</p>

<p id="1323" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Petite précision : <strong class="fl fx">jamais</strong> je n’ai parlé d’agression. Toujours d’intimidation, mais jamais d’agression. Aucun des loleurs (ni ce soir-là ni jamais !) ne m’a agressée physiquement.</p>

<p id="c663" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">LE CANULAR</strong></p>

<p id="1db4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><em class="hf">[Tout ce qui concerne David Doucet est transmis avec son accord.]</em></p>

<p id="c4ac" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Après près de deux ans de tweets malveillants (pas quotidiens, mais assez présents et réguliers pour vivre avec cette poisse comme seconde peau), un photomontage pornographique, une descente sur le plateau du Grand Webze (j’utilise le mot « descente » à dessein puisque c’est comme ça que j’ai ressenti l’événement — mais encore une fois, il ne fait aucun doute que les mis en cause n’avaient pas conscience de l’impact que ça a pu avoir sur moi)… quelle serait la prochaine étape, puisqu’ils s’étaient déplacés physiquement jusqu’à moi pour m’intimider ? (Et encore une fois, c’est mon ressenti, pas forcément leur démarche.) Jusqu’où allait escalader cette violence ? Quand ? Sous quelle forme ? Où ?</p>

<p id="6cf0" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’épée de Damoclès devenait bien plus massive, et la corde qui la maintenait, bien moins épaisse.</p>

<p id="3f32" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Début 2012 : le Grand Webze s’arrête faute d’audience. Gros coup dur. J’avais galéré pendant cinq ans à cumuler études, jobs étudiants et stage, puis un an de chômage, voilà que je trouvais un job de rêve… et ça s’arrêtait prématurément. J’avais tellement peur de retomber dans la précarité… Avant que la nouvelle soit annoncée publiquement, j’ai noyé mon chagrin dans ma passion : l’espace. Et je l’ai mêlée avec ce qui, malgré tout, restait une plateforme fascinante : Twitter. J’ai créé les 30 comptes de l’Univers et j’ai commencé à faire de la vulgarisation scientifique sur mon temps libre.</p>

<p id="5074" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Rentrée 2012–2013, même prod, même équipe, même chaîne, on enchaîne : c’est le Vinvinteur. Après un direct par mois, il faut fabriquer une émission par semaine. Tout change, c’est un tourbillon, mais j’ai du travail, et c’est encore plus le rêve, je suis heureuse. Malgré l’épée de Damoclès et les loleurs toujours présents.</p>

<p id="b871" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Bien sûr, c’est la télé, on n’est jamais sûr que ça durera. L’expérience du Grand Webze me l’a fait comprendre de manière assez douloureuse. Mais au moins, on a bon espoir de finir la saison. Ensuite, on verra…</p>

<p id="0072" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">La semaine, je ne compte pas mes heures pour l’émission. Je m’éclate. Le samedi soir, je suis chargée de mettre en ligne l’émission sur Dailymotion 24 heures avant sa diffusion sur France 5 (révolutionnaire, à l’époque !), et le dimanche soir, je la live-tweete, avec des liens, des compléments d’informations préparés en amont, je réponds aux questions. Et les autres heures du week-end, je fais « La folle histoire de l’Univers ». Je me noie dans le travail. Ça m’évite de penser à autre chose.</p>

<p id="9930" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Un soir, je reçois un appel : c’est Laurent Bon, le producteur du Petit Journal, qui me propose un poste dans l’émission pour la rentrée. Nous sommes début 2013, je ne sais pas de quoi sera faite ma saison suivante, et puis surtout, je suis flattée. Ce qu’il me propose est un peu barré, mais je mets ça sur « l’esprit Canal », et puis de toute façon, une ouverture chez Canal+, ça ne se refuse pas. J’accepte qu’il me recontacte pour passer des essais et je raccroche.</p>

<p id="e56d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais je vis toujours avec cette couche de poisse comme une seconde peau et j’ai un doute. J’étais au restaurant avec un ami, je lui en fais part. Je mets en garde Cyrille au bureau aussi, en lui disant qu’il est possible que je me sois fait piéger et qu’il fasse attention de son côté. Mais ma naïveté reprend vite le dessus, j’ai envie d’y croire, ce serait fou, ce serait tellement génial, j’y crois. J’y crois pendant un long moment.</p>

<p id="7599" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et puis un samedi soir, alors que je mets en ligne <a href="https://www.dailymotion.com/video/xzs6zo" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">l’émission de la semaine</a>, le choc : je découvre un tweet de @PascalMeric, que j’ai identifié depuis longtemps comme faisant partie de « l’entité menaçante », qui annonce que j’ai été piégée. Je n’ai pas besoin de cliquer pour comprendre de quoi il s’agit. Quelle humiliation…</p>

<p id="4470" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je suis effondrée. Encore plus quand je me rends compte que le fichier audio est désormais accessible à tous sur Soundcloud. J’ai honte, j’ai tellement honte, je me hais d’avoir été aussi naïve et d’y avoir cru autant de temps, malgré un premier réflexe qui m’avait poussée à douter.</p>

<p id="41c8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’épée de Damoclès a chuté et le coup est dur. Très très dur. Trop dur, même. C’est le coup de trop.</p>

<p id="cc25" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ce qui a fait basculer ma vie est resté bien vif dans ma mémoire : entre sa mise en ligne en 2013 et sa suppression lors de la sortie de l’affaire en 2019, j’allais voir, plusieurs fois par an, si ce fichier était toujours en ligne. Le lien était dans mes favoris. Je ne l’ai jamais oublié.</p>

<p id="03da" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais son auteur, David Doucet… si. Dans son mail d’excuse de l’année dernière, il m’a dit : « Dans mes souvenirs, j’avais seulement créé de faux comptes de célébrités et ce canular me revient comme un boomerang à la figure. » Il l’avait oublié.</p>

<p id="bc98" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’ai pas envie de revenir sur les conséquences de ce canular — et qui ont des effets encore aujourd’hui, à l’heure où je vous parle. Ça ne regarde que moi et David Doucet. Il connaît ces conséquences parce qu’il m’a attentivement écoutée quand j’ai été prête à le rencontrer, en novembre dernier, et que je lui ai proposé qu’on se voie. L’écoute a d’ailleurs été partagée : on a longuement échangé et entendre son point de vue m’a beaucoup aidée à comprendre ce qui s’était passé.</p>

<p id="0d9a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai appris qu’à l’époque des faits, il avait cru que le canular avait été bien perçu, puisqu’il avait été RT par Jean-Marc Manach, le rédacteur en chef du Vinvinteur, mais aussi par le compte Twitter de l’émission (ce dont je ne me souviens pas, mais c’est possible, je n’étais pas la seule à avoir les clefs du compte).</p>

<p id="11dc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai appris également que compte tenu de son audience limitée, il n’avait pas imaginé qu’il avait pu être aussi blessant pour moi. Aujourd’hui, il a compris à quel point ce canular a été dévastateur dans beaucoup d’aspects de ma vie. Il m’a présenté ses excuses, m’a écoutée, a compris ma souffrance, m’a répété ses regrets, et je suis persuadée que s’il avait su à quel point ça me ferait du mal, il n’aurait jamais fait ça.</p>

<p id="f0b8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai eu besoin de ce dialogue, et nous l’avons eu de manière apaisée et dans le respect de nos paroles respectives : je le remercie d’avoir accepté cet échange, ça m’a fait du bien. Inutile d’y revenir, donc : je ne veux pas accabler David Doucet. Je n’ai ni haine ni colère envers lui, je suis parfaitement en paix et nos rapports aujourd’hui sont cordiaux.</p>

<p id="a851" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je précise juste une dernière chose : tout comme aucun des loleurs ne m’a jamais agressée physiquement, David Doucet ne m’a jamais harcelée. Il m’a piégée et humiliée, oui. C’est l’unique tort qu’il m’ait fait. Il l’a reconnu, a présenté ses excuses en privé et publiquement. Pour moi, l’affaire du canular est close. J’ai pardonné, pour pouvoir tourner la page.</p>

<p id="d821" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Il se trouve que, chacun pour des raisons différentes, nous aimerions ne plus jamais entendre parler de cette histoire. Si j’ai ressenti le besoin de faire ce post, c’est parce que Jean-Marc Manach a une fâcheuse tendance à réécrire l’Histoire et que j’ai un problème avec son traitement journalistique de cette affaire. Revenons un peu en arrière.</p>

<p id="2999" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’année dernière, en plein tourbillon médiatique, il m’appelle, tard un soir. Il me dit qu’il prépare un article sur l’affaire, notamment sur son « contexte », qu’il veut mon point de vue. Il me parle du Vinvinteur sur les trolls (dans lequel <a href="https://www.youtube.com/watch?v=Mb9axokCn4k" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">David Doucet était interviewé de manière anonyme en tant que « troll »</a>) et me dit qu’il y a un lien avec le canular — quand bien même David, qu’il a appelé avant moi, ne s’en souvient pas. Je lui dis que moi non plus, je ne crois pas qu’il y ait de lien entre le canular et cette émission. Mais lui pense que si. Moi non. La conversation est tendue. Très tendue. Je reste sur mes positions.</p>

<p id="da87" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Par ailleurs, nous évoquons nos souvenirs, moi je lui dis que j’avais parlé du canular à la prod dès le lundi, à Henri Poulain, le réalisateur, à lui-même. Il ne s’en souvient pas. Du coup, je doute de mes souvenirs, même si… il me semble bien quand même lui en avoir parlé. Nous raccrochons, et je découvre <a href="https://www.lemonde.fr/blog/bugbrother/2019/02/17/david-doucet-et-la-presomption-de-culpabilite/" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">son article</a> le lendemain.</p>

<p id="b374" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’avoue, je suis assez agacée du « parce qu’elle ne m’avait jamais parlé » qui, pour moi, n’est pas si sûr. J’aurais apprécié un conditionnel.</p>

<p id="cc33" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais les bras me tombent de lire ce qui suit.</p>

<p id="c075" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">« Et c’est moi qui lui ai rappelé <strong class="fl fx">le contexte,</strong> <strong class="fl fx">qu’elle avait oublié</strong>. (…) Contacté dans la foulée, David m’expliqua <strong class="fl fx">qu’il avait lui aussi oublié le contexte</strong> de la mise en ligne de ce canular (…) »</p>

<p id="4235" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">À quel moment un journaliste sérieux et respectable (je pense qu’il l’est) pense-t-il bon de présenter l’hypothèse du lien entre le canular et le Vinvinteur sur les trolls comme un fait avéré… quand aucun des deux principaux protagonistes de l’affaire ne s’en souvient ?</p>

<p id="02a5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et voilà que malgré de nombreux souvenirs qui disent l’inverse, Jean-Marc veut m’imposer un « oubli » qui irait dans son sens.</p>

<p id="1fc4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">De l’agacement je passe à l’ébahissement, de l’ébahissement je passe à la colère, puis au pic de stress, puis à la rage de voir l’Histoire ainsi réécrite jusqu’à finir par me faire passer pour une criminelle qui aurait manipulé David afin de lui extorquer de « faux aveux »…</p>

<p id="f5ef" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Jean-Marc semble avoir sa version toute faite, qui ne tient pas compte des souvenirs de David ni des miens, et rien, absolument rien ne semble pouvoir le faire changer d’avis. Premier problème : il est publié sur le site du Monde et j’ai peur que son histoire farfelue de « contexte » reconstitué après coup ne trouve un trop gros écho. Deuxième problème : il avance une hypothèse comme un fait… qu’il ne peut pas prouver. Troisième problème : je ne peux pas non plus, autrement que sur la base de mes souvenirs, lui prouver qu’il a tort.</p>

<p id="7c60" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je vis mal, très mal la publication de cet article. Il m’est insupportable. Je me garde donc bien d’en parler, pour éviter l’effet Streisand, et j’espère très fort qu’il ne sera pas trop partagé. Parce qu’une fois qu’une idée infuse, il est quasiment impossible de faire marche arrière.</p>

<p id="96b4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais il est partagé, et l’idée infuse… jusqu’à TPMP deux mois plus tard — sans doute pire qu’un effet Streisand. Cyril Hanouna, pour prendre la défense de David Doucet qu’il venait de prendre à l’essai, avance la fameuse hypothèse de Jean-Marc pour minimiser. Comme ça m’est insupportable, je me fends d’une mise au point…</p>

<p id="2bd5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">… et je rappelle, comme d’ailleurs Jean-Marc l’avait bien rapporté dans son article, que je ne souhaitais pas que David Doucet soit blacklisté.</p>

<p id="a213" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Suite à cette série de tweets, je reçois un coup de fil un peu après 22 heures : c’est Cyril Hanouna. David Doucet ayant été présenté dans la presse comme le « nouveau rédacteur en chef de TPMP », il voulait simplement me dire que c’était faux, qu’il était juste à l’essai, et qu’en fait il ne m’appelait pas pour se défendre, mais pour m’écouter. Ce qu’il a fait — et je dois dire que j’ai été très agréablement surprise de l’échange qu’on a eu.</p>

<p id="0b7b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je lui ai répété ce que j’avais dit, et ce que j’ai toujours dit : oui le canular m’a traumatisée, non il n’a aucun lien avec le Vinvinteur sur les trolls, non je ne souhaitais pas que David Doucet soit blacklisté — mais juste que, au vu de l’enquête qui venait de sortir sur Mediapart, il n’était peut-être pas pertinent de le remettre à la tête d’une équipe.</p>

<p id="7da1" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Cyril Hanouna ne savait pas s’il embaucherait David ou pas, je lui ai dit qu’il était libre de faire le choix qu’il voudrait faire, et que je n’avais pas à m’immiscer dans cette décision et que j’aurais juste à la respecter, quelle qu’elle soit.</p>

<p id="30bd" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Finalement, David Doucet n’a pas rejoint l’équipe de TPMP — et quand on s’est vu en novembre dernier, je lui ai rapporté cet échange pour lui dire qu’en aucun cas je n’étais intervenue en faveur de cette issue. Et puis, franchement… Qui serait assez fou pour imaginer que j’ai le pouvoir de dire à Cyril Hanouna ce qu’il doit faire ou pas ?</p>

<p id="93cf" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quoiqu’il en soit, j’étais perturbée d’avoir des échanges aussi sains avec Cyril Hanouna et aussi tendus avec Manach, avec qui j’avais pourtant travaillé. Et j’étais surtout bien emmerdée par cette histoire de « contexte » qui avait infusé partout — d’autant plus que, malgré mes recherches, je n’ai pas réussi à trouver la date du piège téléphonique, qui était la clef.</p>

<p id="410d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Plusieurs mois passent. L’affaire se tasse. Je me remets lentement de cette folie médiatique et de tout ce que ça a entraîné. Je vois donc David en novembre, ce qui me fait le plus grand bien. Je peux enfin passer à autre chose et tourner la page.</p>

<p id="4eb0" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais janvier 2020 arrive, des tas de journalistes reviennent pour faire le point un an après, la plupart en mode « oui non mais tu comprends, l’affaire est plus complexe qu’elle en a l’air [no shit, Sherlock !], les méchants sont pas si méchants, et les gentils pas si gentils ». Mais ça ne change rien aux faits et aux impacts sur ma vie. Ça commence donc à m’énerver et, moi qui pensais que tout ça était fini, ça recommence. Et franchement j’ai pas envie d’y revenir.</p>

<p id="2470" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais Jean-Marc Manach m’informe que sa contre-enquête va bientôt paraître sur NextInpact. Je grince des dents. L’enquête est publiée. Pour ma santé mentale, je ne veux pas la lire. De toute façon, je ne suis pas abonnée, je ne peux pas. Tant mieux.</p>

<p id="edf4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Avant de poursuivre, je voudrais ajouter un point important : malgré tous mes désaccords avec Jean-Marc Manach, il a toujours eu la correction de m’informer de la publication de ses articles. Nous échangeons régulièrement avec respect et dans l’écoute l’un de l’autre. Et surtout, il n’a jamais remis en doute les impacts de l’affaire sur ma vie, je sais qu’il s’en veut aujourd’hui d’avoir RT le canular et je sais aussi que dans nos échanges, il est très attentif à ne pas me blesser — et je l’en remercie.</p>

<p id="84e5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais j’avoue, je ne comprends pas son entêtement à vouloir absolument qu’il y ait un lien entre le Vinvinteur sur les trolls et le canular, et comme je ne peux pas prouver qu’il a tort, ça me bouffe.</p>

<p id="331b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Bref — <a href="https://www.nextinpact.com/news/108594-la-fabrique-dun-bourreau-ideal-14-a-charge.htm" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">la contre-enquête est publiée</a>, et elle porte essentiellement sur les Inrocks (ce qui ne me concerne pas). Dans le premier volet cependant, il évoque mon histoire (je ne lis pas l’article, mais on m’envoie des captures d’écran). Je me sens encore impuissante.</p>

<p id="f35c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est alors qu’arrive un témoignage totalement inattendu : un membre de l’équipe du Vinvinteur, perdu de vue depuis la fin de l’émission, envoie un mail, à Jean-Marc et à moi, où il évoque ses souvenirs… et il corrobore parfaitement ma version des faits.</p>

<figure class="gd ge gf gg gh gi cb cc paragraph-image"><figcaption class="bo dx hs ht hu cd cb cc hv hw bj dw">Extrait du mail, partagé avec l’accord de la personne</figcaption></figure>

<p id="c2c7" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quel soulagement. Je me sens tellement moins seule. Une fois encore, mes souvenirs étaient les bons, je n’aurais pas dû mettre en doute ma mémoire. C’est Jean-Marc qui avait oublié.</p>

<p id="de51" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ce mail entraîne une réponse. Puis une autre. Puis encore une autre, entre Jean-Marc et moi. Cette histoire de « contexte » m’est insupportable, j’essaye de lui faire entendre raison — il reste sur sa position tout en admettant qu’il n’a pas les dates (quel cas d’école de dissonance cognitive !) Nous échangeons sur d’autres aspects de cette affaire également, et tout ceci me rend folle, je passe une semaine éprouvante, je dors très peu et je suis incapable de me concentrer sur mon travail — je prends beaucoup de retard.</p>

<p id="7c7c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et puis, à la faveur d’une énième insomnie, je fais une énième recherche pour tenter de retrouver des preuves, des éléments, quoi que ce soit qui puisse m’aider à prouver ce que j’avance depuis l’année dernière — comme le tweet d’Hervaud et la photo pour le Grand Webze.</p>

<p id="ad06" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et miracle : je trouve.</p>

<p id="0227" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je retrouve des captures d’écran (celle du compte de Pascal Méric et du compte Soundcloud publiées plus haut) que j’étais persuadée d’avoir faites à l’époque mais sans avoir pu les retrouver.</p>

<p id="18ac" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je retrouve le premier mail envoyé à un ami après la découverte du canular. Il n’apporte pas grand-chose, mais on y lit déjà la preuve que je suis tourmentée par cette “bande de trolls” qui frappe “encore” (quand bien même j’ignorais, à l’époque, que David Doucet n’avait jamais rien fait d’autre pour me nuire — pour moi, il s’agissait de cette “entité menaçante”).</p>

<p id="095e" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et j’ai surtout retrouvé un échange de mail avec Vinvin qui suit ma découverte du canular (soit le samedi 11 mai 2013 après la mise en ligne du Vinvinteur sur les trolls). Voici le premier (je noircis des propos dits sous le coup de la colère qui n’apportent pas grand-chose au schmilblick) :</p>

<p id="8023" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Là, deux grosses surprises : j’avais oublié (oui, moi aussi j’ai oublié !) que je savais que c’était David Doucet derrière le canular ! Je pense que le traumatisme m’a grillé quelques neurones, parce que je n’ai pas l’air du tout l’air d’en douter, alors que quand j’ai reçu le mail d’excuse de David l’année dernière, la première chose que je me suis dit (enfin… juste après « IT’S A TRAP ! ») c’était : « Ah mais alors c’était bien lui, je suis sûre à 100 %, maintenant. »</p>

<p id="bbf6" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Deuxième grosse surprise : j’avais oublié que mon premier réflexe avait été de porter plainte. Bref : c’était une bonne réaction, dont je ne gardais aucun souvenir.</p>

<p id="edc2" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais surtout, l’information capitale arrive dans le dernier mail de cet échange : j’y redécouvre que le piège téléphonique date du… mois de janvier. <strong class="fl fx">En aucun cas le canular ne peut être lié au Vinvinteur sur les trolls. </strong>David et moi avions raison de ne pas nous en souvenir puisque ce lien n’existait pas. CQFD. (Et on y lit aussi “Jusqu’à la prochaine fois…” qui prouve que j’étais déjà dans l’expectative du prochain coup.)</p>

<p id="84c4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’envoie toutes ces infos à Loris Guémard, d’Arrêt Sur Images, qui prépare un article. Puis j’appelle immédiatement Jean-Marc pour l’informer de ma découverte — par correction, toujours. <a href="https://www.arretsurimages.net/articles/lol-enquetes-et-contre-enquete-sur-le-cas-doucet" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">L’article en question</a> est paru hier. Mais j’avais besoin de donner moi-même ma version des faits, et de vous livrer ces preuves, pour clore le dossier. Dont acte avec ce long post.</p>

<p id="e2e5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">La difficulté de cette affaire, c’est que les victimes ont souffert, beaucoup. Mais que les loleurs, en tout cas pour la plupart, étaient juste de jeunes hommes désinvoltes et dénués d’empathie qui prenaient Twitter comme un far west (qu’il n’était pas) et s’en donnaient à cœur joie — le plus souvent dans l’ignorance des effets dévastateurs que leur comportement pouvait induire. Evidemment qu’il est difficile de s’entendre et de se comprendre : nous avons des vécus diamétralement opposés des mêmes évènements — quand on se rappelle les uns et les autres desdits évènements…</p>

<p id="0e3a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je crois qu’ils sont parfaitement sincères quand ils disent avoir oublié. On oublie beaucoup de choses, la mémoire est ainsi faite, on passe notre temps à oublier. On ne retient que ce qui compte, ce qui est important, ce qui marque, ce qui provoque une forte émotion. Tout le reste n’a pas d’importance, tout le reste est de l’ordre du non-événement… et s’oublie.</p>

<p id="66ee" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">Les loleurs ont passé des années à pratiquer ce qui était des non-évènements pour eux mais qui étaient autant d’évènements pour celles et ceux qui les recevaient. Ils les ont oubliés. Nous nous en souvenons.</strong></p>

<p id="f5f5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est là toute la différence entre les oppresseurs et les opprimés : les oppresseurs aimeraient se souvenir mais ils continuent d’oublier, les opprimés aimeraient oublier mais ils continuent de se souvenir.</p>

<p id="3e5c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Vincent Glad ne m’a pas agressée physiquement. David Doucet ne m’a pas harcelée. Ce serait faux, et injuste, de leur faire porter le chapeau pour la somme des souffrances que j’ai endurées — et endure toujours par certains aspects.</p>

<p id="4193" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ils ont simplement fait partie de quelque chose de plus gros qu’eux, dont ils n’ont pas eu conscience, et qui se retournent désormais contre eux. Le tout est devenu plus grand que la somme de ses parties.</p>

<p id="fd87" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’écho médiatique a été d’une grande violence pour David Doucet, Vincent Glad et les autres, avec son lot de débordements et d’injustices — je le conçois aisément. Ils savent maintenant ce qu’on a pu vivre il y a des années : ça a changé leur rapport au monde, aux autres et à eux-mêmes — et ils ne savent pas jusqu’où ça ira, quand le prochain coup tombera, sous quelle forme, et surtout, quand ça s’arrêtera. Que la tension est permanente. Que ça rend dingue.</p>

<p id="3b83" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’épée de Damoclès s’est déplacée d’au-dessus de ma tête à au-dessus de la leur, et je n’ai aucune raison de m’en réjouir.</p>

<p id="6cf4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je leur souhaite, ainsi qu’aux autres, et à toutes celles et ceux qui ont été affectés par cette affaire, quel que soit le camp, de se reconstruire. Je leur souhaite d’aller mieux, de réussir à passer à autre chose, de laisser loin derrière eux cette sombre histoire. Et je leur souhaite d’être heureux.</p>

<p id="ad2d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quant à moi, j’ai dit ce que j’avais à dire, montré ce que j’avais à montrer. Je clos définitivement le dossier. Je ne souhaite plus m’exprimer sur cette affaire. Merci, ami·e·s journalistes, de respecter ce choix.</p>

<p id="8665" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et mes trois derniers mots seront : <strong class="fl fx">NE HARCELEZ PAS.</strong></p>

<p id="e5fc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Florence Porcel</p>
</article>


<hr>

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

+ 135
- 0
cache/2020/2c6ccd57b9f0f1c39706013d026de507/index.md View File

title: L’affaire de la Ligue du LOL, ou la fabrique de l’oubli
url: https://medium.com/@florence.porcel/laffaire-de-la-ligue-du-lol-ou-la-fabrique-de-l-oubli-df4ad3f5f2b5
hash_url: 2c6ccd57b9f0f1c39706013d026de507

<p id="7ad3" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">La fabrique de l’oubli</strong></p>
<p id="9dbb" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’aurais aimé ne pas avoir à faire ce post. J’aurais aimé oublier toute cette histoire. Ça fait 10 ans que je vis avec, et je n’en peux plus.</p>
<p id="ec12" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais à l’occasion du premier anniversaire de la folie médiatique qui a eu lieu autour de cette affaire de la Ligue du LOL, j’ai vu, à nouveau, comme l’année dernière déjà, des articles, enquêtes, posts, billets, etc… de gens qui parlent à ma place en disant « tout le monde était comme ceci, tout le monde faisait cela » ou, pire, qui réécrivent carrément l’Histoire.</p>
<p id="d457" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Alors voici une bonne fois pour toute ce que j’ai à dire, avec les preuves qui corroborent les témoignages que j’ai livrés à la presse. Pour qu’on ne me dise plus que c’est « parole contre parole » ou qu’il ne s’agit pas de faits mais de « ressentis ». Et ensuite, je veux définitivement passer à autre chose. Oublier.</p>
<p id="aeee" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est justement l’oubli que j’ai choisi comme angle pour ce post, parce qu’il est un concept central dans cette affaire :</p>
<p id="3b26" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">- l’oubli organique sincère des mis en cause d’abord, face à l’afflux de souvenirs vifs des victimes ;</p>
<p id="fa6b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">- l’oubli numérique créé de toute pièce par les mêmes mis en cause, avec la suppression massive de tweets, de documents, voire de comptes sur les réseaux sociaux ;</p>
<p id="0878" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">- et l’oubli subi d’une victime (en l’occurrence, moi) qui, à force de répéter les mêmes récits en boucle et de se voir confrontée à des souvenirs antagonistes, voire à des réécritures des faits, en finit par douter de sa propre mémoire…</p>
<p id="df71" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">… jusqu’à il y a quelques jours, où j’ai retrouvé les preuves qui vont suivre.</p>
<p id="bebc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">MON CONTEXTE</strong></p>
<p id="22d0" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ah, cette histoire de « contexte »… Il est brandi à toutes les sauces : qui pour minimiser les violences, qui pour réécrire l’Histoire, qui pour faire de grandes généralités sur ce qu’était Twitter à l’époque. Mais NON, il n’y avait pas plus « un » Twitter à l’époque que maintenant. Les expériences sont multiples.</p>
<p id="e7f8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Sur les années qui nous intéressent, soit 2009–2013, je pense qu’on se rejoint tous sur le fait que ce n’était pas encore un réseaux social mainstream et qu’une grande partie des gens s’en servait comme d’un mélange entre LinkedIn, un forum, MSN, et Tinder.</p>
<p id="3068" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais contrairement à ce que j’entends ici et là, NON il n’y avait pas plus de culture du clash que maintenant, NON tout le monde n’insultait pas des gens juste pour le plaisir, NON tout le monde ne harcelait pas, NON tout le monde n’avait pas envie d’être bien vu des loleurs ou de telle ou telle figure populaire, etc etc (le nombre d’inepties est trop grand, je m’arrête là).</p>
<p id="2f7b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et moi, alors, que suis-je venue y faire ?… Mon contexte est le suivant : après avoir achevé ma formation artistique de 3 ans à l’Ecole de Comédie Musicale de Paris, j’ai repris mes études pour tenir la promesse faite à mes parents d’avoir également un « vrai diplôme ». DEUG d’Anglais à Paris 4, L3 puis M1 d’Information et Communication à Paris 3, et me voilà, en 2009, en M2 professionnel de Journalisme Culturel après avoir réussi le concours d’entrée pour ce master qui doit m’apporter le diplôme tant attendu (bac +5 en travaillant à côté parce que j’étais financièrement indépendante, je n’en voyais plus la fin). Malgré mes recherches dès le mois de juillet, je ne trouve pas le contrat d’apprentissage que la fac demande pour valider la partie « professionnelle » de ce M2 pro.</p>
<p id="0dd9" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">En novembre, toujours rien, et l’idée de perdre mon année (donc de ne pas avoir ce fichu diplôme malgré tous les sacrifices) m’est insupportable ; je me réveille un jour avec une idée : faire un CV-vidéo. À l’époque, il y en a quelques-uns qui « buzzent », mais essentiellement sous forme de clips. Moi, je viens de la scène, je rêvais de faire du cinéma, alors je fabrique mon « <a href="https://www.youtube.com/watch?v=3-VIAeyeKwo" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">CV-court-métrage façon Amélie Poulain</a> » pour substituer les CV/lettres de motivation à un lien à envoyer aux potentiels recruteurs.</p>
<p id="5fc1" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et ça m’échappe. Ça fait le tour de tous les médias, je suis assaillie par les sollicitations de la presse. Je ne comprends pas pourquoi, jusqu’à ce que je me rende compte que les journalistes qui m’appellent ont vu la vidéo via Twitter. Je m’étais créé un compte en juin 2009, mais comme je comprenais rien au fonctionnement de ce réseau social, je ne l’utilisais pas. Je m’y suis mise, bien décidée à remercier tous les gens qui me permettaient d’être très vue. J’ai vécu une premier folie médiatique, et j’ai découvert ses travers et ses conséquences : des milliers de commentaires d’injures et d’insultes sexistes, des menaces de viol et de mort, bref… Je me suis pris dans la gueule ce que c’est que d’être une femme sur Internet. Baptême du feu.</p>
<p id="692c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">En parallèle, je me prends au jeu de Twitter, et bientôt, je ne peux plus m’en passer. Mais là aussi, j’en saisis très vite ses travers et ses conséquences : en l’occurrence, je comprends assez rapidement que je suis une des cibles d’une bande de gars, très vite qualifiés de « loleurs »… mais qui ne me font pas rire. Pour avoir subi du harcèlement scolaire, je sais ce que ça implique, et je n’ai pas très envie que ça recommence. Mais le fait est que ça recommence, et que les semaines passent, puis les mois, puis les années, ils sont toujours là, et non seulement ils ne m’oublient pas, mais en plus ils vont toujours plus loin.</p>
<p id="a494" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quand je comprends qu’ils ne me lâcheront pas et qu’ils sont hors de contrôle, alors tout change. Avant chaque tweet, je pèse mes mots, je me demande comment (et non pas “si” !) ça pourra être retourné contre moi. Je m’autocensure. J’ai peur. Quand j’échange avec mes amis, je le fais dans une sorte de soupe de pois malaisante parce que je m’attends à chaque instant à recevoir un coup. Et je ne sais pas quand, ni d’où, ni sous quelle forme. J’étais en tension permanente.</p>
<p id="a5eb" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Evidemment, ça se répercutait sur mon quotidien, sur mon humeur, sur mon rapport aux autres, au monde, à moi-même. « Ils » étaient là. Tout le temps. Même quand j’étais déconnectée, je sentais leur présence. Les effets du harcèlement scolaire ne s’arrêtent pas une fois rentré chez soi. C’est la même chose pour le harcèlement en ligne : il ne s’arrête pas une fois déconnecté.</p>
<p id="73b4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Qui étaient ces « ils » ? De la plupart, je ne savais rien. Pour deux ou trois, j’avais un prénom. Mais à part Vincent Glad, je ne connaissais pas leur visage. Ça pouvait être absolument n’importe qui. Alors à chaque rencontre, à chaque apéro, à chaque entretien d’embauche, cette question : est-ce que c’est un loleur ? est-ce que je vais me faire piéger ? est-ce que je peux faire confiance à ce type ? Quel est le sens de ce sourire narquois quand je décline mon identité ? Malaise. Tension. Malaise et tension permanente. Ça rend dingue. Une seule chose était sûre : ils étaient malveillants et ils me voulaient du mal (à moi comme à d’autres).</p>
<p id="c763" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’étais dans le flou le plus total : je ne savais pas qui ils étaient, combien exactement ils étaient, ce qu’ils me voulaient, jusqu’où ils iraient, combien de temps ça durerait, et si je pouvais les côtoyer ou les croiser IRL. Bref, vous imaginez bien que vivre dans ce genre de psychose, ce n’est pas la garantie d’une vie heureuse et épanouie.</p>
<p id="012c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai appris l’année dernière que les loleurs n’avaient pas conscience de ce « flou » insupportable et qui rend dingue. Eux savaient qui ils étaient, quels étaient leurs desseins, qui ils rencontraient IRL. Leurs liens fluctuaient, certains arrêtaient, d’autres se greffaient, ou prenaient le relais… Mais pour moi en face, c’était la même entité, inquiétante, pesante, menaçante, et qui pouvait dégainer à chaque instant.</p>
<p id="030b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ils ne peuvent pas comprendre cette atmosphère irrespirable, cette épée de Damoclès pendant des semaines, des mois, des années. Eux, ils « trollaient », et dans la seconde même… ils oubliaient. Ils ne saisissent toujours pas la manière dont j’ai pu vivre toutes ces années — j’en veux pour preuve cet extrait du <a class="at ey fy fz ga gb" target="_blank" rel="noopener" href="/@vincentglad_67276/ligue-du-lol-un-an-après-aeee7784cf4d">long post de Vincent Glad</a> à propos du compte collectif @foutlamerde.</p>
<p id="7b72" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Est-ce que je me prenais au sérieux ? Je n’avais pas l’impression, mais soit. Est-ce que je faisais du personal branding ? Probablement, oui. Du coup, voici une idée de ce à quoi j’avais droit :</p>
<p id="438e" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je ne sais pas quel souvenir Vincent Glad a des « Guignols de l’Info », mais il se trouve que c’était mon émission préférée et qu’ils me faisaient rire. @foutlamerde, non.</p>
<p id="eeb8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">« Il n’était pas perçu comme un compte de harceleurs », dit-il. C’est vrai… de son point de vue. Du mien, cette phrase est rigoureusement fausse. @foutlamerde, dont j’ignorais qui se cachait derrière, faisait partie de « l’entité menaçante » qui laissait sa poisse partout où elle frappait et qui était devenue ma seconde peau.</p>
<p id="703f" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’ai jamais trouvé le contrat que je cherchais mais j’ai fini par décrocher mon diplôme. J’ai enchaîné avec un an de chômage et toujours plus de précarité. Puis en 2011, j’ai intégré l’équipe du Grand Webze, une émission co-présentée par Vinvin (Cyrille de Lasteyrie) et François Rollin : une émission qui avait la prétention d’amener le web à la télé. Une première dans le PAF ! J’étais la community manager de l’émission et j’étais, à l’antenne, le lien entre Twitter et ce qui se passait en plateau.</p>
<p id="fbdc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">LES LOLEURS AU « GRAND WEBZE »</strong></p>
<p id="0ed2" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est pendant la préparation d’une de ces émissions que le premier cap dans l’échelle de la violence a été franchi : j’ai vu passer un photomontage à caractère pornographique avec ma tête sur le corps d’une actrice dans une position plus que suggestive.</p>
<p id="ca49" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’ai pas pu retrouver cette image. Je ne sais plus quel compte l’avait partagée — j’hésite entre deux comptes, tous les deux supprimés. J’ai mentionné « l’incident » à Cyrille, à côté de moi dans les bureaux, et j’ai essayé, comme chaque jour depuis mon arrivée sur Twitter, de faire comme si cette poisse n’existait pas. Mais l’oubli qu’on s’impose ne fonctionne pas.</p>
<p id="c8de" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est là que l’oubli des mis en cause prend un tournant tout à fait fascinant. Dès les premières demandes de témoignage lorsque l’affaire est sortie l’année dernière, j’ai raconté un événement qui m’avait beaucoup choquée : j’avais vu arriver, médusée, sur le plateau du Grand Webze, Vincent Glad et plusieurs de ses amis — forcément des loleurs eux aussi.</p>
<p id="1d2d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai expliqué des dizaines de fois comment ils étaient venus me voir pour me demander un service (leur présenter François Rollin dont ils étaient fan), comment ils m’avaient encerclée, et comment ils n’avaient pas voulu bouger avant que j’accède à leur demande.</p>
<p id="4b09" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Avec cet événement, il ne s’agissait plus seulement de tweets et de photomontages dégradants : les loleurs passaient au stade IRL. Ils étaient nombreux, étaient arrivés d’un seul bloc, ils n’étaient ni invités, ni les bienvenus sur ce plateau de télévision, ils me harcelaient depuis des années, et désormais… ils avaient fait le déplacement jusqu’à mon lieu de travail pour venir droit sur moi, m’encercler et refuser de bouger tant qu’ils n’auraient pas ce qu’ils étaient venus chercher. Bien sûr que je me suis sentie menacée et intimidée ! Bien sûr que ça m’a choquée !</p>
<p id="f478" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais eux… ont oublié. Parmi les hommes présents ce soir-là, je n’ai pu reconnaître que Vincent Glad, qui était le seul dont je connaissais à la fois le prénom, le nom, et le visage. Mais je n’ai jamais donné son nom aux journalistes — ou bien toujours en off. C’est sans doute la raison pour laquelle Vincent Glad n’a jamais vu passer ce récit et qu’il l’a découvert en fin d’année dernière seulement (la capture d’écran provient <a class="at ey fy fz ga gb" target="_blank" rel="noopener" href="/@vincentglad_67276/ligue-du-lol-un-an-après-aeee7784cf4d">de ce même post</a>).</p>
<p id="8f94" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’avais pas lu le long post de Vincent Glad avant de prendre la décision de rédiger le mien, et je suis tombée des nues en apprenant qu’il découvrait cette histoire sur le tard… et qu’il ne s’inclut pas dans le groupe qui s’est déplacé jusqu’au plateau puisqu’il utilise le pronom « ils » et non « nous ».</p>
<p id="d208" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais je suis catégorique : il était là, puisque je l’ai reconnu, et que, le reconnaissant (et donc assimilant ses amis aux loleurs), j’ai été prise de panique. Et surtout, je n’ai parlé qu’à lui. Voici l’histoire, dans une version plus détaillée :</p>
<p id="c75e" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’était la fin de l’émission, qui était tournée en direct à <a href="http://www.lacartonnerieparis.com/" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">la Cartonnerie</a> (Paris 11), il était environ 1 heure du matin. Régnait un joyeux bordel : les techniciens commençaient à ranger, les invités discutaient entre eux ou visitaient le lieu, les gens de la chaîne débriefaient avec l’équipe… C’est dans ce contexte que j’ai vu, près de la porte d’entrée, un groupe de gars. Ils me voient, se dirigent vers moi, et je reconnais Vincent Glad.</p>
<p id="e373" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Ah, Florence ! C’est toi qu’on cherchait…</p>
<p id="ac66" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Mais qu’est-ce que vous faites là ??</p>
<p id="ae8b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Je suis Vincent Glad et…</p>
<p id="f6e4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Je sais qui t’es — d’où ma question : vous n’avez rien à faire là, partez !</p>
<p id="8376" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je flippe, bien sûr, mais je ne veux pas qu’ils le voient. Et je suis tellement outrée par leur audace ?/indécence ? que la colère m’aide à leur résister. Seulement, cette situation semble beaucoup les amuser, je vois des petits sourires narquois sur leur visage, et ils m’encerclent.</p>
<p id="4d12" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Oh, mais le prends pas comme ça, on veut juste rencontrer Rollin, tu peux nous le présenter ?</p>
<p id="ffbf" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Non mais vous êtes sérieux ??</p>
<p id="ad17" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Allez…</p>
<p id="c4b5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Vous êtes sérieux les gars ?? Vous me faites chier sur Twitter depuis des années, et là vous me demandez un service ??</p>
<p id="db11" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Allez, steuplaît… On est fan…</p>
<p id="b332" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Mais non ! Dégagez, vous n’avez rien à faire là, partez !</p>
<p id="d80b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Allez… De toute façon on ne bougera pas.</p>
<p id="ace6" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Non mais j’hallucine putain… Vous êtes sérieux !?</p>
<p id="8f00" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Présente-le nous et on s’en va !</p>
<p id="0017" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Promis ? Vraiment ? Je vous le présente, et vous partez ?</p>
<p id="c42d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Glad — Promis !</p>
<p id="18c1" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Moi — Bon, ben suivez-moi… Et après, vous partez, hein ! Vous n’avez rien à faire là !</p>
<p id="9962" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Bien obligée, je leur demande donc de me suivre jusqu’à Rollin. “François, je te présence Vincent Glad et ses amis… Vincent, voilà François”. Et là, Vincent bafouille : “Je suis super fan, quand j’étais petit on m’appelait le professeur Rollin parce que j’avais toujours quelque chose à dire”, Rollin ne sait pas trop quoi dire en face à part “merci”, ils regardent leurs pieds ne sachant pas quoi dire d’autres, c’est assez pathétique finalement, et là je leur dis “Bon ben voilà, maintenant vous me suivez, je vous raccompagne à la sortie et vous partez”, ce que j’ai fait, j’ai vérifié qu’ils sortaient bien tous, ce qu’ils ont fait, et voilà.</p>
<p id="2bb8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je me souviens précisément de chaque moment, parce que ça m’a choquée et que tous mes warnings de danger s’étaient allumés. Mais eux ont oublié.</p>
<p id="997a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Aux journalistes qui me demandaient combien ils étaient, je disais « cinq, six ou sept ». Et puis au fur et à mesure, je me suis dit que j’exagérais peut-être, alors je disais « environ cinq », puis « au moins quatre ».</p>
<p id="d577" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’aurais dû faire confiance à ma mémoire. Parce que moi, je n’avais pas oublié… et Internet non plus. Voici un <a href="https://twitter.com/AlexHervaud/status/147827443166756865" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">tweet publié par Alexandre Hervaud</a>…</p>
<p id="ef25" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">… et <a href="https://twitpic.com/7u7v7e" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">la photo qui l’accompagne</a> (j’ai des copies d’écran, des fois que le tweet disparaisse, hein). Les téléphones faisaient des photos de moins bonne qualité à l’époque, mais on distingue très nettement cinq personnes, auxquelles on rajoute Alexandre Hervaud qui prend la photo. Ça fait donc six personnes, dont Vincent Glad (tout à gauche). Et ils sont effectivement devant le 159 de la rue Saint Maur où se trouve la Cartonnerie.</p>
<p id="2b5c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et en débarquant à SIX gars, dans un endroit où ils n’avaient rien à faire, pour se diriger vers UNE femme dont ils savaient qu’elle savait qu’ils étaient (tout ou partie) des loleurs… à aucun moment ils n’ont pensé au danger que je pourrais ressentir — à aucun moment, puisque pour eux, c’était effectivement juste une visite, juste quelques « mots amicaux » échangés avec Rollin — qu’ils ont oubliés sans doute dès le lendemain.</p>
<p id="3e98" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Vincent Glad demande dans son post : « Pourquoi aucun média n’a jamais cherché à éclaircir cette histoire d’agression physique qui a pourtant pesé très lourd dans notre dossier ? »</p>
<p id="811a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ben voilà, Vincent. C’est assez éclairci, comme ça ?</p>
<p id="1323" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Petite précision : <strong class="fl fx">jamais</strong> je n’ai parlé d’agression. Toujours d’intimidation, mais jamais d’agression. Aucun des loleurs (ni ce soir-là ni jamais !) ne m’a agressée physiquement.</p>
<p id="c663" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">LE CANULAR</strong></p>
<p id="1db4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><em class="hf">[Tout ce qui concerne David Doucet est transmis avec son accord.]</em></p>
<p id="c4ac" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Après près de deux ans de tweets malveillants (pas quotidiens, mais assez présents et réguliers pour vivre avec cette poisse comme seconde peau), un photomontage pornographique, une descente sur le plateau du Grand Webze (j’utilise le mot « descente » à dessein puisque c’est comme ça que j’ai ressenti l’événement — mais encore une fois, il ne fait aucun doute que les mis en cause n’avaient pas conscience de l’impact que ça a pu avoir sur moi)… quelle serait la prochaine étape, puisqu’ils s’étaient déplacés physiquement jusqu’à moi pour m’intimider ? (Et encore une fois, c’est mon ressenti, pas forcément leur démarche.) Jusqu’où allait escalader cette violence ? Quand ? Sous quelle forme ? Où ?</p>
<p id="6cf0" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’épée de Damoclès devenait bien plus massive, et la corde qui la maintenait, bien moins épaisse.</p>
<p id="3f32" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Début 2012 : le Grand Webze s’arrête faute d’audience. Gros coup dur. J’avais galéré pendant cinq ans à cumuler études, jobs étudiants et stage, puis un an de chômage, voilà que je trouvais un job de rêve… et ça s’arrêtait prématurément. J’avais tellement peur de retomber dans la précarité… Avant que la nouvelle soit annoncée publiquement, j’ai noyé mon chagrin dans ma passion : l’espace. Et je l’ai mêlée avec ce qui, malgré tout, restait une plateforme fascinante : Twitter. J’ai créé les 30 comptes de l’Univers et j’ai commencé à faire de la vulgarisation scientifique sur mon temps libre.</p>
<p id="5074" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Rentrée 2012–2013, même prod, même équipe, même chaîne, on enchaîne : c’est le Vinvinteur. Après un direct par mois, il faut fabriquer une émission par semaine. Tout change, c’est un tourbillon, mais j’ai du travail, et c’est encore plus le rêve, je suis heureuse. Malgré l’épée de Damoclès et les loleurs toujours présents.</p>
<p id="b871" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Bien sûr, c’est la télé, on n’est jamais sûr que ça durera. L’expérience du Grand Webze me l’a fait comprendre de manière assez douloureuse. Mais au moins, on a bon espoir de finir la saison. Ensuite, on verra…</p>
<p id="0072" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">La semaine, je ne compte pas mes heures pour l’émission. Je m’éclate. Le samedi soir, je suis chargée de mettre en ligne l’émission sur Dailymotion 24 heures avant sa diffusion sur France 5 (révolutionnaire, à l’époque !), et le dimanche soir, je la live-tweete, avec des liens, des compléments d’informations préparés en amont, je réponds aux questions. Et les autres heures du week-end, je fais « La folle histoire de l’Univers ». Je me noie dans le travail. Ça m’évite de penser à autre chose.</p>
<p id="9930" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Un soir, je reçois un appel : c’est Laurent Bon, le producteur du Petit Journal, qui me propose un poste dans l’émission pour la rentrée. Nous sommes début 2013, je ne sais pas de quoi sera faite ma saison suivante, et puis surtout, je suis flattée. Ce qu’il me propose est un peu barré, mais je mets ça sur « l’esprit Canal », et puis de toute façon, une ouverture chez Canal+, ça ne se refuse pas. J’accepte qu’il me recontacte pour passer des essais et je raccroche.</p>
<p id="e56d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais je vis toujours avec cette couche de poisse comme une seconde peau et j’ai un doute. J’étais au restaurant avec un ami, je lui en fais part. Je mets en garde Cyrille au bureau aussi, en lui disant qu’il est possible que je me sois fait piéger et qu’il fasse attention de son côté. Mais ma naïveté reprend vite le dessus, j’ai envie d’y croire, ce serait fou, ce serait tellement génial, j’y crois. J’y crois pendant un long moment.</p>
<p id="7599" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et puis un samedi soir, alors que je mets en ligne <a href="https://www.dailymotion.com/video/xzs6zo" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">l’émission de la semaine</a>, le choc : je découvre un tweet de @PascalMeric, que j’ai identifié depuis longtemps comme faisant partie de « l’entité menaçante », qui annonce que j’ai été piégée. Je n’ai pas besoin de cliquer pour comprendre de quoi il s’agit. Quelle humiliation…</p>
<p id="4470" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je suis effondrée. Encore plus quand je me rends compte que le fichier audio est désormais accessible à tous sur Soundcloud. J’ai honte, j’ai tellement honte, je me hais d’avoir été aussi naïve et d’y avoir cru autant de temps, malgré un premier réflexe qui m’avait poussée à douter.</p>
<p id="41c8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’épée de Damoclès a chuté et le coup est dur. Très très dur. Trop dur, même. C’est le coup de trop.</p>
<p id="cc25" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ce qui a fait basculer ma vie est resté bien vif dans ma mémoire : entre sa mise en ligne en 2013 et sa suppression lors de la sortie de l’affaire en 2019, j’allais voir, plusieurs fois par an, si ce fichier était toujours en ligne. Le lien était dans mes favoris. Je ne l’ai jamais oublié.</p>
<p id="03da" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais son auteur, David Doucet… si. Dans son mail d’excuse de l’année dernière, il m’a dit : « Dans mes souvenirs, j’avais seulement créé de faux comptes de célébrités et ce canular me revient comme un boomerang à la figure. » Il l’avait oublié.</p>
<p id="bc98" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je n’ai pas envie de revenir sur les conséquences de ce canular — et qui ont des effets encore aujourd’hui, à l’heure où je vous parle. Ça ne regarde que moi et David Doucet. Il connaît ces conséquences parce qu’il m’a attentivement écoutée quand j’ai été prête à le rencontrer, en novembre dernier, et que je lui ai proposé qu’on se voie. L’écoute a d’ailleurs été partagée : on a longuement échangé et entendre son point de vue m’a beaucoup aidée à comprendre ce qui s’était passé.</p>
<p id="0d9a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai appris qu’à l’époque des faits, il avait cru que le canular avait été bien perçu, puisqu’il avait été RT par Jean-Marc Manach, le rédacteur en chef du Vinvinteur, mais aussi par le compte Twitter de l’émission (ce dont je ne me souviens pas, mais c’est possible, je n’étais pas la seule à avoir les clefs du compte).</p>
<p id="11dc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai appris également que compte tenu de son audience limitée, il n’avait pas imaginé qu’il avait pu être aussi blessant pour moi. Aujourd’hui, il a compris à quel point ce canular a été dévastateur dans beaucoup d’aspects de ma vie. Il m’a présenté ses excuses, m’a écoutée, a compris ma souffrance, m’a répété ses regrets, et je suis persuadée que s’il avait su à quel point ça me ferait du mal, il n’aurait jamais fait ça.</p>
<p id="f0b8" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’ai eu besoin de ce dialogue, et nous l’avons eu de manière apaisée et dans le respect de nos paroles respectives : je le remercie d’avoir accepté cet échange, ça m’a fait du bien. Inutile d’y revenir, donc : je ne veux pas accabler David Doucet. Je n’ai ni haine ni colère envers lui, je suis parfaitement en paix et nos rapports aujourd’hui sont cordiaux.</p>
<p id="a851" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je précise juste une dernière chose : tout comme aucun des loleurs ne m’a jamais agressée physiquement, David Doucet ne m’a jamais harcelée. Il m’a piégée et humiliée, oui. C’est l’unique tort qu’il m’ait fait. Il l’a reconnu, a présenté ses excuses en privé et publiquement. Pour moi, l’affaire du canular est close. J’ai pardonné, pour pouvoir tourner la page.</p>
<p id="d821" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Il se trouve que, chacun pour des raisons différentes, nous aimerions ne plus jamais entendre parler de cette histoire. Si j’ai ressenti le besoin de faire ce post, c’est parce que Jean-Marc Manach a une fâcheuse tendance à réécrire l’Histoire et que j’ai un problème avec son traitement journalistique de cette affaire. Revenons un peu en arrière.</p>
<p id="2999" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’année dernière, en plein tourbillon médiatique, il m’appelle, tard un soir. Il me dit qu’il prépare un article sur l’affaire, notamment sur son « contexte », qu’il veut mon point de vue. Il me parle du Vinvinteur sur les trolls (dans lequel <a href="https://www.youtube.com/watch?v=Mb9axokCn4k" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">David Doucet était interviewé de manière anonyme en tant que « troll »</a>) et me dit qu’il y a un lien avec le canular — quand bien même David, qu’il a appelé avant moi, ne s’en souvient pas. Je lui dis que moi non plus, je ne crois pas qu’il y ait de lien entre le canular et cette émission. Mais lui pense que si. Moi non. La conversation est tendue. Très tendue. Je reste sur mes positions.</p>
<p id="da87" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Par ailleurs, nous évoquons nos souvenirs, moi je lui dis que j’avais parlé du canular à la prod dès le lundi, à Henri Poulain, le réalisateur, à lui-même. Il ne s’en souvient pas. Du coup, je doute de mes souvenirs, même si… il me semble bien quand même lui en avoir parlé. Nous raccrochons, et je découvre <a href="https://www.lemonde.fr/blog/bugbrother/2019/02/17/david-doucet-et-la-presomption-de-culpabilite/" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">son article</a> le lendemain.</p>
<p id="b374" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’avoue, je suis assez agacée du « parce qu’elle ne m’avait jamais parlé » qui, pour moi, n’est pas si sûr. J’aurais apprécié un conditionnel.</p>
<p id="cc33" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais les bras me tombent de lire ce qui suit.</p>
<p id="c075" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">« Et c’est moi qui lui ai rappelé <strong class="fl fx">le contexte,</strong> <strong class="fl fx">qu’elle avait oublié</strong>. (…) Contacté dans la foulée, David m’expliqua <strong class="fl fx">qu’il avait lui aussi oublié le contexte</strong> de la mise en ligne de ce canular (…) »</p>
<p id="4235" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">À quel moment un journaliste sérieux et respectable (je pense qu’il l’est) pense-t-il bon de présenter l’hypothèse du lien entre le canular et le Vinvinteur sur les trolls comme un fait avéré… quand aucun des deux principaux protagonistes de l’affaire ne s’en souvient ?</p>
<p id="02a5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et voilà que malgré de nombreux souvenirs qui disent l’inverse, Jean-Marc veut m’imposer un « oubli » qui irait dans son sens.</p>
<p id="1fc4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">De l’agacement je passe à l’ébahissement, de l’ébahissement je passe à la colère, puis au pic de stress, puis à la rage de voir l’Histoire ainsi réécrite jusqu’à finir par me faire passer pour une criminelle qui aurait manipulé David afin de lui extorquer de « faux aveux »…</p>
<p id="f5ef" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Jean-Marc semble avoir sa version toute faite, qui ne tient pas compte des souvenirs de David ni des miens, et rien, absolument rien ne semble pouvoir le faire changer d’avis. Premier problème : il est publié sur le site du Monde et j’ai peur que son histoire farfelue de « contexte » reconstitué après coup ne trouve un trop gros écho. Deuxième problème : il avance une hypothèse comme un fait… qu’il ne peut pas prouver. Troisième problème : je ne peux pas non plus, autrement que sur la base de mes souvenirs, lui prouver qu’il a tort.</p>
<p id="7c60" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je vis mal, très mal la publication de cet article. Il m’est insupportable. Je me garde donc bien d’en parler, pour éviter l’effet Streisand, et j’espère très fort qu’il ne sera pas trop partagé. Parce qu’une fois qu’une idée infuse, il est quasiment impossible de faire marche arrière.</p>
<p id="96b4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais il est partagé, et l’idée infuse… jusqu’à TPMP deux mois plus tard — sans doute pire qu’un effet Streisand. Cyril Hanouna, pour prendre la défense de David Doucet qu’il venait de prendre à l’essai, avance la fameuse hypothèse de Jean-Marc pour minimiser. Comme ça m’est insupportable, je me fends d’une mise au point…</p>
<p id="2bd5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">… et je rappelle, comme d’ailleurs Jean-Marc l’avait bien rapporté dans son article, que je ne souhaitais pas que David Doucet soit blacklisté.</p>
<p id="a213" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Suite à cette série de tweets, je reçois un coup de fil un peu après 22 heures : c’est Cyril Hanouna. David Doucet ayant été présenté dans la presse comme le « nouveau rédacteur en chef de TPMP », il voulait simplement me dire que c’était faux, qu’il était juste à l’essai, et qu’en fait il ne m’appelait pas pour se défendre, mais pour m’écouter. Ce qu’il a fait — et je dois dire que j’ai été très agréablement surprise de l’échange qu’on a eu.</p>
<p id="0b7b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je lui ai répété ce que j’avais dit, et ce que j’ai toujours dit : oui le canular m’a traumatisée, non il n’a aucun lien avec le Vinvinteur sur les trolls, non je ne souhaitais pas que David Doucet soit blacklisté — mais juste que, au vu de l’enquête qui venait de sortir sur Mediapart, il n’était peut-être pas pertinent de le remettre à la tête d’une équipe.</p>
<p id="7da1" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Cyril Hanouna ne savait pas s’il embaucherait David ou pas, je lui ai dit qu’il était libre de faire le choix qu’il voudrait faire, et que je n’avais pas à m’immiscer dans cette décision et que j’aurais juste à la respecter, quelle qu’elle soit.</p>
<p id="30bd" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Finalement, David Doucet n’a pas rejoint l’équipe de TPMP — et quand on s’est vu en novembre dernier, je lui ai rapporté cet échange pour lui dire qu’en aucun cas je n’étais intervenue en faveur de cette issue. Et puis, franchement… Qui serait assez fou pour imaginer que j’ai le pouvoir de dire à Cyril Hanouna ce qu’il doit faire ou pas ?</p>
<p id="93cf" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quoiqu’il en soit, j’étais perturbée d’avoir des échanges aussi sains avec Cyril Hanouna et aussi tendus avec Manach, avec qui j’avais pourtant travaillé. Et j’étais surtout bien emmerdée par cette histoire de « contexte » qui avait infusé partout — d’autant plus que, malgré mes recherches, je n’ai pas réussi à trouver la date du piège téléphonique, qui était la clef.</p>
<p id="410d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Plusieurs mois passent. L’affaire se tasse. Je me remets lentement de cette folie médiatique et de tout ce que ça a entraîné. Je vois donc David en novembre, ce qui me fait le plus grand bien. Je peux enfin passer à autre chose et tourner la page.</p>
<p id="4eb0" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais janvier 2020 arrive, des tas de journalistes reviennent pour faire le point un an après, la plupart en mode « oui non mais tu comprends, l’affaire est plus complexe qu’elle en a l’air [no shit, Sherlock !], les méchants sont pas si méchants, et les gentils pas si gentils ». Mais ça ne change rien aux faits et aux impacts sur ma vie. Ça commence donc à m’énerver et, moi qui pensais que tout ça était fini, ça recommence. Et franchement j’ai pas envie d’y revenir.</p>
<p id="2470" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais Jean-Marc Manach m’informe que sa contre-enquête va bientôt paraître sur NextInpact. Je grince des dents. L’enquête est publiée. Pour ma santé mentale, je ne veux pas la lire. De toute façon, je ne suis pas abonnée, je ne peux pas. Tant mieux.</p>
<p id="edf4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Avant de poursuivre, je voudrais ajouter un point important : malgré tous mes désaccords avec Jean-Marc Manach, il a toujours eu la correction de m’informer de la publication de ses articles. Nous échangeons régulièrement avec respect et dans l’écoute l’un de l’autre. Et surtout, il n’a jamais remis en doute les impacts de l’affaire sur ma vie, je sais qu’il s’en veut aujourd’hui d’avoir RT le canular et je sais aussi que dans nos échanges, il est très attentif à ne pas me blesser — et je l’en remercie.</p>
<p id="84e5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais j’avoue, je ne comprends pas son entêtement à vouloir absolument qu’il y ait un lien entre le Vinvinteur sur les trolls et le canular, et comme je ne peux pas prouver qu’il a tort, ça me bouffe.</p>
<p id="331b" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Bref — <a href="https://www.nextinpact.com/news/108594-la-fabrique-dun-bourreau-ideal-14-a-charge.htm" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">la contre-enquête est publiée</a>, et elle porte essentiellement sur les Inrocks (ce qui ne me concerne pas). Dans le premier volet cependant, il évoque mon histoire (je ne lis pas l’article, mais on m’envoie des captures d’écran). Je me sens encore impuissante.</p>
<p id="f35c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est alors qu’arrive un témoignage totalement inattendu : un membre de l’équipe du Vinvinteur, perdu de vue depuis la fin de l’émission, envoie un mail, à Jean-Marc et à moi, où il évoque ses souvenirs… et il corrobore parfaitement ma version des faits.</p>
<figure class="gd ge gf gg gh gi cb cc paragraph-image"><figcaption class="bo dx hs ht hu cd cb cc hv hw bj dw">Extrait du mail, partagé avec l’accord de la personne</figcaption></figure><p id="c2c7" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quel soulagement. Je me sens tellement moins seule. Une fois encore, mes souvenirs étaient les bons, je n’aurais pas dû mettre en doute ma mémoire. C’est Jean-Marc qui avait oublié.</p>
<p id="de51" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ce mail entraîne une réponse. Puis une autre. Puis encore une autre, entre Jean-Marc et moi. Cette histoire de « contexte » m’est insupportable, j’essaye de lui faire entendre raison — il reste sur sa position tout en admettant qu’il n’a pas les dates (quel cas d’école de dissonance cognitive !) Nous échangeons sur d’autres aspects de cette affaire également, et tout ceci me rend folle, je passe une semaine éprouvante, je dors très peu et je suis incapable de me concentrer sur mon travail — je prends beaucoup de retard.</p>
<p id="7c7c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et puis, à la faveur d’une énième insomnie, je fais une énième recherche pour tenter de retrouver des preuves, des éléments, quoi que ce soit qui puisse m’aider à prouver ce que j’avance depuis l’année dernière — comme le tweet d’Hervaud et la photo pour le Grand Webze.</p>
<p id="ad06" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et miracle : je trouve.</p>
<p id="0227" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je retrouve des captures d’écran (celle du compte de Pascal Méric et du compte Soundcloud publiées plus haut) que j’étais persuadée d’avoir faites à l’époque mais sans avoir pu les retrouver.</p>
<p id="18ac" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je retrouve le premier mail envoyé à un ami après la découverte du canular. Il n’apporte pas grand-chose, mais on y lit déjà la preuve que je suis tourmentée par cette “bande de trolls” qui frappe “encore” (quand bien même j’ignorais, à l’époque, que David Doucet n’avait jamais rien fait d’autre pour me nuire — pour moi, il s’agissait de cette “entité menaçante”).</p>
<p id="095e" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et j’ai surtout retrouvé un échange de mail avec Vinvin qui suit ma découverte du canular (soit le samedi 11 mai 2013 après la mise en ligne du Vinvinteur sur les trolls). Voici le premier (je noircis des propos dits sous le coup de la colère qui n’apportent pas grand-chose au schmilblick) :</p>
<p id="8023" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Là, deux grosses surprises : j’avais oublié (oui, moi aussi j’ai oublié !) que je savais que c’était David Doucet derrière le canular ! Je pense que le traumatisme m’a grillé quelques neurones, parce que je n’ai pas l’air du tout l’air d’en douter, alors que quand j’ai reçu le mail d’excuse de David l’année dernière, la première chose que je me suis dit (enfin… juste après « IT’S A TRAP ! ») c’était : « Ah mais alors c’était bien lui, je suis sûre à 100 %, maintenant. »</p>
<p id="bbf6" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Deuxième grosse surprise : j’avais oublié que mon premier réflexe avait été de porter plainte. Bref : c’était une bonne réaction, dont je ne gardais aucun souvenir.</p>
<p id="edc2" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Mais surtout, l’information capitale arrive dans le dernier mail de cet échange : j’y redécouvre que le piège téléphonique date du… mois de janvier. <strong class="fl fx">En aucun cas le canular ne peut être lié au Vinvinteur sur les trolls. </strong>David et moi avions raison de ne pas nous en souvenir puisque ce lien n’existait pas. CQFD. (Et on y lit aussi “Jusqu’à la prochaine fois…” qui prouve que j’étais déjà dans l’expectative du prochain coup.)</p>
<p id="84c4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">J’envoie toutes ces infos à Loris Guémard, d’Arrêt Sur Images, qui prépare un article. Puis j’appelle immédiatement Jean-Marc pour l’informer de ma découverte — par correction, toujours. <a href="https://www.arretsurimages.net/articles/lol-enquetes-et-contre-enquete-sur-le-cas-doucet" class="at ey fy fz ga gb" target="_blank" rel="noopener nofollow">L’article en question</a> est paru hier. Mais j’avais besoin de donner moi-même ma version des faits, et de vous livrer ces preuves, pour clore le dossier. Dont acte avec ce long post.</p>
<p id="e2e5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">La difficulté de cette affaire, c’est que les victimes ont souffert, beaucoup. Mais que les loleurs, en tout cas pour la plupart, étaient juste de jeunes hommes désinvoltes et dénués d’empathie qui prenaient Twitter comme un far west (qu’il n’était pas) et s’en donnaient à cœur joie — le plus souvent dans l’ignorance des effets dévastateurs que leur comportement pouvait induire. Evidemment qu’il est difficile de s’entendre et de se comprendre : nous avons des vécus diamétralement opposés des mêmes évènements — quand on se rappelle les uns et les autres desdits évènements…</p>
<p id="0e3a" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je crois qu’ils sont parfaitement sincères quand ils disent avoir oublié. On oublie beaucoup de choses, la mémoire est ainsi faite, on passe notre temps à oublier. On ne retient que ce qui compte, ce qui est important, ce qui marque, ce qui provoque une forte émotion. Tout le reste n’a pas d’importance, tout le reste est de l’ordre du non-événement… et s’oublie.</p>
<p id="66ee" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl"><strong class="fl fx">Les loleurs ont passé des années à pratiquer ce qui était des non-évènements pour eux mais qui étaient autant d’évènements pour celles et ceux qui les recevaient. Ils les ont oubliés. Nous nous en souvenons.</strong></p>
<p id="f5f5" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">C’est là toute la différence entre les oppresseurs et les opprimés : les oppresseurs aimeraient se souvenir mais ils continuent d’oublier, les opprimés aimeraient oublier mais ils continuent de se souvenir.</p>
<p id="3e5c" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Vincent Glad ne m’a pas agressée physiquement. David Doucet ne m’a pas harcelée. Ce serait faux, et injuste, de leur faire porter le chapeau pour la somme des souffrances que j’ai endurées — et endure toujours par certains aspects.</p>
<p id="4193" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Ils ont simplement fait partie de quelque chose de plus gros qu’eux, dont ils n’ont pas eu conscience, et qui se retournent désormais contre eux. Le tout est devenu plus grand que la somme de ses parties.</p>
<p id="fd87" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’écho médiatique a été d’une grande violence pour David Doucet, Vincent Glad et les autres, avec son lot de débordements et d’injustices — je le conçois aisément. Ils savent maintenant ce qu’on a pu vivre il y a des années : ça a changé leur rapport au monde, aux autres et à eux-mêmes — et ils ne savent pas jusqu’où ça ira, quand le prochain coup tombera, sous quelle forme, et surtout, quand ça s’arrêtera. Que la tension est permanente. Que ça rend dingue.</p>
<p id="3b83" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">L’épée de Damoclès s’est déplacée d’au-dessus de ma tête à au-dessus de la leur, et je n’ai aucune raison de m’en réjouir.</p>
<p id="6cf4" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Je leur souhaite, ainsi qu’aux autres, et à toutes celles et ceux qui ont été affectés par cette affaire, quel que soit le camp, de se reconstruire. Je leur souhaite d’aller mieux, de réussir à passer à autre chose, de laisser loin derrière eux cette sombre histoire. Et je leur souhaite d’être heureux.</p>
<p id="ad2d" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Quant à moi, j’ai dit ce que j’avais à dire, montré ce que j’avais à montrer. Je clos définitivement le dossier. Je ne souhaite plus m’exprimer sur cette affaire. Merci, ami·e·s journalistes, de respecter ce choix.</p>
<p id="8665" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Et mes trois derniers mots seront : <strong class="fl fx">NE HARCELEZ PAS.</strong></p>
<p id="e5fc" class="fj fk ct bk fl b fm fn fo fp fq fr fs ft fu fv fw cl">Florence Porcel</p>

+ 95
- 0
cache/2020/31652af3fd4757154c51aadcbe9ffb39/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="http://blog.danieljanus.pl/2019/10/07/web-of-documents/">

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

<article>
<h1>Web of Documents</h1>
<h2><a href="http://blog.danieljanus.pl/2019/10/07/web-of-documents/">Source originale du contenu</a></h2>
<p>In 1960, Ted Nelson envisioned a&nbsp;web of documents.</p>

<p>It was called <a href='https://en.wikipedia.org/wiki/Project_Xanadu'>Xanadu</a>. It was a&nbsp;grand, holistic vision: of documents that, once published, are available basically forever; of bidirectional links that could glue together not just documents, but parts thereof; of managing copyright and royalties. It was complex. And it never really came to&nbsp;fruition.</p>

<p>But thirty-one years later, another web of documents took off. A&nbsp;much more modest undertaking than Xanadu, with a&nbsp;simple markup language, simple protocol to&nbsp;retrieve the documents, unidirectional, ever-rotting links, and not much else. The World Wide Web. It was prototyped by one man in a&nbsp;few months. And then its popularity exploded.</p>

<p>As the WWW spread, it grew features. Soon, it was not enough for the documents to&nbsp;contain just text: support for images was added. People wanted to&nbsp;customize the look of the documents, so HTML gained presentational markup abilities, eventually obsoleted by CSS. It was not enough to&nbsp;be able to&nbsp;view the menu of your local pizza store – people wanted to&nbsp;actually order a&nbsp;pizza: the need for sessions yielded cookies and non-idempotent HTTP methods. And people wanted the pages to&nbsp;be interactive, so they became scriptable.</p>

<p>All these features were good. They helped the Web meet actual needs. But having them has a&nbsp;significant consequence, one that is seldom realized:</p>

<p>We&nbsp;don’t have a&nbsp;Web of Documents anymore.</p>

<p>Let me pause at this point. I’ve been using the word “document” intuitively and vaguely so far, so let’s try to&nbsp;pinpoint it. I&nbsp;don’t have a&nbsp;precise definition in mind, but I’ll share some examples. A&nbsp;book is a&nbsp;document, to&nbsp;me. So is a&nbsp;picture, an illustrated text, a&nbsp;scientific paper, a&nbsp;MP3 song, or a&nbsp;video. By contrast, a&nbsp;page that lets you play Tetris isn’t. The essence of this distinction seems to&nbsp;be that documents have well-defined <i>content</i> that does not change between viewings and does not depend on the state of the outside world. A&nbsp;document is stateless. It exists in and of itself; it is its own microcosm. It may be experienced interactively, but only insofar as it enables the experiencer to&nbsp;focus their attention on the part of their own choosing; the potential state of that interaction is external to&nbsp;the document, not part of itself.</p>

<p>Obviously, this is not very accurate: there are border cases. For example, does a&nbsp;film DVD with a&nbsp;menu qualify as a&nbsp;document? Or how about a&nbsp;choose-your-own-adventure book? Or a&nbsp;HTML page with links to&nbsp;other pages? On the surface, the latter does provide out-of-microcosm interactivity; but viewed from another angle, it is no different than putting a&nbsp;reference in a&nbsp;book. The browser just makes it very easy to&nbsp;go to&nbsp;a&nbsp;shelf and pick another book.</p>

<p>The distinction is there, and it’s important. And with it in mind, let me reiterate:</p>

<p><i>We&nbsp;don’t have a&nbsp;Web of Documents anymore.</i></p>

<p>These days, the WWW is mostly a&nbsp;<i>Web of Applications</i>. An application is a&nbsp;broader concept: it can display text or images, but also lets you interact not just with itself, but with the world at large. And that’s all well and good, as long as you consciously intend these interactions to&nbsp;happen.</p>

<p>A&nbsp;document is safe. A&nbsp;book is safe: it will not explode in your hands, it will not magically alter its contents tomorrow, and if it happens to&nbsp;be illegal to&nbsp;possess, it will not call the authorities to&nbsp;denounce you. You can implicitly trust a&nbsp;document by virtue of it being one. An application, not so much.</p>

<p>I&nbsp;don’t want to&nbsp;name names, but it’s all too easy these days to&nbsp;follow a&nbsp;link to&nbsp;a&nbsp;news site, expecting an article, only to&nbsp;be greeted with “You have read N articles this month, please register to&nbsp;continue”. Definitely an application-y thing to&nbsp;say, not a&nbsp;document-y one. Now, the purveyors of such sites typically have legitimate economic interest in doing so—but once you sign up, they are able to&nbsp;record your actions, link them with your identity and build your shadow profile. This way, we&nbsp;have applications actively <i>masquerading</i> as documents, when in reality they <i>do&nbsp;non-documenty things</i> without telling you.</p>

<p>Legislation such as the EU Cookie Law and the GDPR (insofar as it requires disclosure of data processing) tries to&nbsp;remedy this. But the more I&nbsp;think about it, the more sense it makes to&nbsp;me to&nbsp;attack the problem closer to&nbsp;its root: to&nbsp;decomplect the notions of a&nbsp;document and an application; to&nbsp;keep the Web of Applications as it is, and to&nbsp;recreate a&nbsp;Web of Documents—either parallel to&nbsp;it, or as its sub-web.</p>

<p>To&nbsp;do&nbsp;this, we&nbsp;need to&nbsp;take a&nbsp;step back. (Or do&nbsp;a&nbsp;clean start and invent a&nbsp;whole new technology, but this is unlikely to&nbsp;succeed). Fortunately, we&nbsp;don’t have to&nbsp;travel all the way back to&nbsp;1992, when the WWW was still a&nbsp;Web of Documents. (I&nbsp;still remember table-based layouts and spacer gifs, and the very memory makes me shudder). I&nbsp;think we&nbsp;can base the new Web of Documents on ol’ trusty HTTP (or, better, HTTPS), HTML and CSS as we&nbsp;know them today, with just three restraints:</p>

<ol><li><i>No methods other than GET</i> (and perhaps HEAD). POST, PUT, DELETE and friends just have no place in a&nbsp;world of documents. They are not idempotent; they potentially modify the state of the world, which documents should not be able to&nbsp;do. (I&nbsp;was also thinking “no forms”, but with #1 in place, it seems like an unnecessary refinement. After all, forms that translate to&nbsp;GET requests just facilitate creating URLs: a&nbsp;user could just as well have typed the resulting URL by hand.)</li><li><i>No scripts of any kind.</i> Not JavaScript, not WebAssembly. Not even to&nbsp;enrich a&nbsp;document, such as syntax-highlight the code snippets. This one may seem too stringent, but I&nbsp;think it’s better to&nbsp;err on the safe side, and it’s very easy to&nbsp;enforce.</li><li><i>No cookies.</i> Cookies by themselves aren’t interactive, but having them makes it all too easy to&nbsp;abuse the semantics of HTTP to&nbsp;recreate sessions, and on top of them reinvent the app-wheel and eventually forfeit the Web of Documents again.</li></ol>

<p>Again, there may be corner cases that may have escaped me. But if a&nbsp;WWW page conforms to&nbsp;these restrictions, I&nbsp;think it may be pretty safe to&nbsp;call it a&nbsp;“document” and make it a&nbsp;part of the Web of Documents.</p>

<p>How do&nbsp;we&nbsp;achieve this? I&nbsp;don’t know, really. I&nbsp;don’t have a&nbsp;concrete proposal. Perhaps we&nbsp;could have dedicated browsers for the WoD; perhaps we&nbsp;could make existing browsers prominently advertise to&nbsp;the user whether they are browsing a&nbsp;document or an application. On top of all the technical decisions to&nbsp;make, there’ll be significant campaigning and lobbying needed if the idea is ever to&nbsp;take off.</p>

<p>I&nbsp;don’t dare dream that it ever will. My intent in this article is to&nbsp;provide food for thought. All I&nbsp;ask from you, my reader, is consideration and attention. And if you got this far, chances are I&nbsp;got them. I’m grateful.</p>

<p>This page is a&nbsp;document. Thank you for reading it.</p>
</article>


<hr>

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

+ 5
- 0
cache/2020/31652af3fd4757154c51aadcbe9ffb39/index.md
File diff suppressed because it is too large
View File


+ 101
- 0
cache/2020/4bda6c744ffb55c0fc4f4bf1f740b4e3/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://conversationalist.org/2020/03/05/the-prodigal-techbro/">

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

<article>
<h1>The Prodigal Techbro</h1>
<h2><a href="https://conversationalist.org/2020/03/05/the-prodigal-techbro/">Source originale du contenu</a></h2>
<p><em>The tech executive turned data justice warrior is celebrated as a truth-telling hero, but there’s something a bit too smooth about this narrative arc.</em></p>

<p>A few months ago, I was contacted by a senior executive who was about to leave a marketing firm. He got in touch because I’ve worked on the non-profit side of tech for a long time, with lots of volunteering on digital and human rights. He wanted to ‘give back’. Could I put him in touch with digital rights activists? Sure. We met for coffee and I made some introductions. It was a perfectly lovely interaction with a perfectly lovely man. Perhaps he will do some good, sharing his expertise with the people working to save democracy and our private lives from the surveillance capitalism machine of his former employers. The way I rationalized helping him was: firstly, it’s nice to be nice; and secondly, movements are made of people who start off far apart but converge on a destination. And isn’t it an unqualified good when an insider decides to do the right thing, however late?</p>

<p>The Prodigal Son is a New Testament parable about two sons. One stays home to work the farm. The other cashes in his inheritance and gambles it away. When the gambler comes home, his father slaughters the fattened calf to celebrate, leaving the virtuous, hard-working brother to complain that all these years he wasn’t even given a small goat to share with his friends. His father replies that the prodigal son ‘was dead, now he’s alive; lost, now he’s found’. Cue party streamers. It’s a touching story of redemption, with a massive payload of moral hazard. It’s about coming home, saying sorry, being joyfully forgiven and starting again. Most of us would love to star in it, but few of us will be given the chance.</p>

<p>The Prodigal Tech Bro is a similar story, about tech executives who experience a sort of religious awakening. They suddenly see their former employers as toxic, and reinvent themselves as experts on taming the tech giants. They were lost and are now found. They are warmly welcomed home to the center of our discourse with invitations to write opeds for major newspapers, for think tank funding, book deals and TED talks. These guys – and yes, they are all guys – are generally thoughtful and well-meaning, and I wish them well. But I question why they seize so much attention and are awarded scarce resources, and why they’re given not just a second chance, but also the mantle of moral and expert authority.</p>

<p>I’m glad that Roger McNamee, the early Facebook investor, has <a href="https://www.theguardian.com/world/2020/feb/29/rebecca-solnit-younger-feminists-shift-understanding-give-new-tools">testified to the U.S. Congress</a> about Facebook’s wildly self-interested near-silence about its amplification of Russian disinformation during the 2016 presidential election. I’m thrilled that Google’s ex-‘design ethicist’, Tristan Harris, “<a href="https://www.theguardian.com/world/2020/feb/29/rebecca-solnit-younger-feminists-shift-understanding-give-new-tools">the </a><em>closest thing Silicon Valley has to a conscience,</em>“(startlingly faint praise) now runs a Center for Humane Technology, exposing the mind-hacking tricks of his former employer. I even <a href="https://www.youtube.com/watch?v=3hSrUaSNFSY&amp;t=2309s">spoke</a> —critically but, I hope, warmly—at the book launch of James Williams, another ex-Googler turned attention evangelist, who “<a href="https://en.wikipedia.org/wiki/Center_for_Humane_Technology">co-founded the movement</a>”of awareness of designed-in addiction. I wish all these guys well. I also wish that the many, exhausted activists who didn’t take money from Google or Facebook could have even a quarter of the attention, status and authority the Prodigal Techbro assumes is his birth-right.</p>

<p>Today, when the tide of public opinion on Big Tech is finally turning, the brothers (and sisters) who worked hard in the field all those years aren’t even invited to the party. No fattened calf for you, my all but unemployable tech activist. The moral hazard is clear; why would anyone do the right thing from the beginning when they can take the money, have their fun, and then, when the wind changes, convert their status and relative wealth into special pleading and a whole new career?</p>

<p>Just half an hour flipping through my contacts produced half a dozen friends and acquaintances who didn’t require a ‘road to Damascus’ conversion to see what was wrong with big tech or the ways governments abuse it. Nighat Dad runs the <a href="https://digitalrightsfoundation.pk/">Digital Rights Foundation in Pakistan</a>, defending online freedom of expression and privacy for women, minorities and dissidents. That’s real courage. <a href="https://privacyinternational.org/people/95/gus-hosein">Gus Hosein</a> has worked in tech and human rights for over 20 years, runs Privacy International, the UK-based non-profit, and is the most visionary thinker I know on how to shake up our assumptions about why things are as they are.  <a href="https://biancawylie.com/">Bianca Wylie </a>founded the volunteer-run Open Data Institute Toronto, and works on open data, citizen privacy and civic engagement. The “<a href="https://www.citylab.com/life/2018/12/bianca-wylie-interview-toronto-quayside-protest-criticism/574477/">Jane Jacobs of the Smart Cities Age</a>,” she’s been a key figure in opening up and slowing down Alphabet’s Sidewalk Labs juggernaut in Toronto. Aral Balkan runs <a href="https://small-tech.org/">Small Technology Foundation </a>and works on both the tools and the policies to resist surveillance capitalism. Unafraid of being unpopular, even with other activists, Balkan freely hammers rights organizations or conferences for taking big tech’s sponsorship money while criticizing the companies’ practices. In the western Balkans, <a href="https://hvale.me/">hvale vale</a><a href="#_ftn10" name="_ftnref10"/> works tirelessly and cheerfully on women’s rights, sexual rights and the political and practical path to a feminist internet. <a href="https://en.wikipedia.org/wiki/Robin_Gross">Robin Gross</a>,  a Californian intellectual property lawyer, could have put her persistence and sheer pizazz to work defending big entertainment companies, but instead she’s worked for decades against the copyright maximalism that strangles artists’ creativity and does nothing to increase their incomes. I would love to hear their voices amplified, not (just) the voices of those who took a decade and more to work out the rottenness at the core of big tech.</p>

<p>Ex-Google lobbyist Ross Lajeunesse left the company in 2019 over its censored search engine for China and also because of homophobic, sexist and racist work practices. He’s now running for a Democratic senate nomination, and recently wrote a classic of the ‘scales have fallen from my eyes’ genre, called “I Was Google’s Head of International Relations. <a href="https://medium.com/@rossformaine/i-was-googles-head-of-international-relations-here-s-why-i-left-49313d23065https://medium.com/@rossformaine/i-was-googles-head-of-international-relations-here-s-why-i-left-49313d23065">Here’s Why I Left</a>.” Its lede is <em>“The company’s motto used to be “Don’t be evil.” Things have changed.”</em></p>

<p>Really? Has Google really changed? Lajeunesse joined in 2008, years into Google’s multi-billion dollar <a href="https://www.bloomberg.com/news/articles/2010-10-21/google-2-4-rate-shows-how-60-billion-u-s-revenue-lost-to-tax-loopholes">tax avoidance</a>, <a href="https://www.cnet.com/news/google-hit-with-job-discrimination-lawsuit/">sexist labor practices</a> and <a href="http://news.bbc.co.uk/2/hi/technology/6740075.stm">privacy hostility</a> and continued to work there through the years of <a href="https://www.bbc.co.uk/news/technology-40406542">antitrust fines</a>, misuse of <a href="https://www.bbc.com/news/technology-40406542">personal health data</a>, <a href="https://www.cnet.com/news/judge-rejects-324-5m-wage-fixing-settlement-struck-by-apple-google-others/">wage fixing</a>, and financially <a href="https://www.nytimes.com/2017/08/30/us/politics/eric-schmidt-google-new-america.html">pressuring think tanks</a>. Google didn’t change. It just started treating some of its insiders like it already treated outsiders. That only looks like radical change if you’ve never thought too hard about what you are doing and to whom.</p>

<p>One hundred thousand people work for Google/Alphabet; some of them have much more power than others. The point isn’t whether Lajeunesse is or isn’t culpable for the many acts of the enormous company he represented—as its chief lobbyist in Asia for several years—it’s that of all the people who spent the decade of 2010-20 working thanklessly to expose and reduce the firm’s monopolistic abuse and assault on global privacy, it’s the ex-lobbyist who gets our attention now.</p>

<p>We all need second chances. Even if we don’t need those fresh starts ourselves, we want to live in a world where people have a reason to do better. But the prodigal tech bro’s redemption arc is so quick and smooth it’s barely a road bump. That’s because we keep skipping the most important part of the prodigal son story—where he hits rock bottom. In the original parable, the prodigal son wakes up in a pig sty, starving, and realizes his father’s servants now live better than he does. He resolves to go home to the people and place he did not value or respect before. He will beg to be one of his father’s servants. He accepts his complete loss of status. But instead of chastising and punishing his prodigal son, the rejoicing father greets him joyfully and heads off the apology with a huge party. It’s a great metaphor for how to run a religion, but a lousy way to run everything else.</p>

<p>Prodigal tech bro stories skip straight from the past, when they were part of something that—surprise!—turned out to be bad, to the present, where they are now a moral authority on how to do good, but without the transitional moments of revelation and remorse.  But the bit where you say you got things wrong and people were hurt? That’s the most important part. It’s why these corporatized reinventions feel so slick and tinny, and why so many of the comments on Lajeunesse’s <a href="https://medium.com/@rossformaine/i-was-googles-head-of-international-relations-here-s-why-i-left-49313d23065">train wreck post</a> on Medium were critical. The journey feels fake. These ‘I was lost but now I’m found, please come to my TED talk’ accounts typically miss most of the actual journey, yet claim the moral authority of one who’s ‘been there’ but came back. It’s a teleportation machine, but for ethics.</p>

<p>(While we’re thinking about the neatly elided parts of the prodigal tech bro story, let’s dwell for one moment on the deletion of the entire stories of so many women and people of color barely given a first chance in Silicon Valley, let alone multiple reinventions.)</p>

<p>The only thing more fungible than cold, hard cash is privilege. The prodigal tech bro doesn’t so much take an off-ramp from the relatively high status and well-paid job he left when the scales fell from his eyes, as zoom up an on-ramp into a new sector that accepts the reputational currency he has accumulated. He’s not joining the resistance. He’s launching a new kind of start-up using his industry contacts for seed-funding in return for some reputation-laundering.</p>

<p>So what? Sure, it’s a little galling, but where’s the harm?</p>

<p>Allowing people who share responsibility for our tech dystopia to keep control of the narrative means we never get to the bottom of how and why we got here, and we artificially narrow the possibilities for where we go next. And centering people who were insiders before and claim to be leading the outsiders now doesn’t help the overall case for tech accountability. It just reinforces the industry’s toxic dynamic that some people are worth more than others, that power is its own justification.</p>

<p>The prodigal tech bro doesn’t want structural change. He is reassurance, not revolution. He’s invested in the status quo, if we can only restore the founders’ purity of intent. Sure, we got some things wrong, he says, but that’s because we were over-optimistic / moved too fast / have a growth mindset. Just put the engineers back in charge / refocus on the original mission / get marketing out of the c-suite. Government “needs to step up”, but just enough to level the playing field / tweak the incentives. Because the prodigal techbro is a moderate, centrist, regular guy. Dammit, he’s a <em>Democrat</em>. Those others who said years ago what he’s telling you right now? They’re troublemakers, disgruntled outsiders obsessed with scandal and grievance. He gets why you ignored them. Hey, he did, too. He knows you want to fix this stuff. But it’s <em>complicated</em>. It needs <em>nuance</em>. He knows you’ll listen to him. Dude, he’s just like you…</p>

<p>I’m re-assessing how often I help out well-established men suddenly interested in my insights and contact book. It’s ridiculous how many ‘and I truly mean them well’s I cut out of this piece, but I really do, while also realizing I help them because they ask, or because other people ask for them. And that coffee, those introductions, that talk I gave and so much more of my attention and care—it needs to go instead to activists I know and care about but who would never presume to ask. Sometimes the prodigal daughter has her regrets, too.</p>

<p>So, if you’re a prodigal tech bro, do us all a favour and, as <a href="https://www.theguardian.com/world/2020/feb/29/rebecca-solnit-younger-feminists-shift-understanding-give-new-tools">Rebecca Solnit says</a>, help “turn down the volume a little on the people who always got heard”:</p>

<ul>
<li>Do the reading and do the work. Familiarize yourself with the research and what we’ve already tried, on your own time. Go join the digital rights and inequality-focused organizations that have been working to limit the harms of your previous employers and – this is key – sit quietly at the back and listen.</li>
<li>Use your privilege and status and the 80 percent of your network that’s still talking to you to big up activists who have been in the trenches for years already—especially women and people of colour. Say ‘thanks but no thanks’ to that invitation and pass it along to someone who’s done the work and paid the price.</li>
<li>Understand that if you are doing this for the next phase of your career, you are doing it wrong. If you are doing this to explain away the increasingly toxic names on your resumé, you are doing it wrong. If you are doing it because you want to ‘give back,’ you are doing it wrong.</li>
</ul>

<p>Do this only because you recognize and can say out loud that you are not ‘giving back’, you are making amends for having already taken far, far too much.</p>
</article>


<hr>

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

+ 29
- 0
cache/2020/4bda6c744ffb55c0fc4f4bf1f740b4e3/index.md View File

title: The Prodigal Techbro
url: https://conversationalist.org/2020/03/05/the-prodigal-techbro/
hash_url: 4bda6c744ffb55c0fc4f4bf1f740b4e3

<p><em>The tech executive turned data justice warrior is celebrated as a truth-telling hero, but there’s something a bit too smooth about this narrative arc.</em></p>
<p>A few months ago, I was contacted by a senior executive who was about to leave a marketing firm. He got in touch because I’ve worked on the non-profit side of tech for a long time, with lots of volunteering on digital and human rights. He wanted to ‘give back’. Could I put him in touch with digital rights activists? Sure. We met for coffee and I made some introductions. It was a perfectly lovely interaction with a perfectly lovely man. Perhaps he will do some good, sharing his expertise with the people working to save democracy and our private lives from the surveillance capitalism machine of his former employers. The way I rationalized helping him was: firstly, it’s nice to be nice; and secondly, movements are made of people who start off far apart but converge on a destination. And isn’t it an unqualified good when an insider decides to do the right thing, however late?</p>
<p>The Prodigal Son is a New Testament parable about two sons. One stays home to work the farm. The other cashes in his inheritance and gambles it away. When the gambler comes home, his father slaughters the fattened calf to celebrate, leaving the virtuous, hard-working brother to complain that all these years he wasn’t even given a small goat to share with his friends. His father replies that the prodigal son ‘was dead, now he’s alive; lost, now he’s found’. Cue party streamers. It’s a touching story of redemption, with a massive payload of moral hazard. It’s about coming home, saying sorry, being joyfully forgiven and starting again. Most of us would love to star in it, but few of us will be given the chance.</p>
<p>The Prodigal Tech Bro is a similar story, about tech executives who experience a sort of religious awakening. They suddenly see their former employers as toxic, and reinvent themselves as experts on taming the tech giants. They were lost and are now found. They are warmly welcomed home to the center of our discourse with invitations to write opeds for major newspapers, for think tank funding, book deals and TED talks. These guys – and yes, they are all guys – are generally thoughtful and well-meaning, and I wish them well. But I question why they seize so much attention and are awarded scarce resources, and why they’re given not just a second chance, but also the mantle of moral and expert authority.</p>
<p>I’m glad that Roger McNamee, the early Facebook investor, has <a href="https://www.theguardian.com/world/2020/feb/29/rebecca-solnit-younger-feminists-shift-understanding-give-new-tools">testified to the U.S. Congress</a> about Facebook’s wildly self-interested near-silence about its amplification of Russian disinformation during the 2016 presidential election. I’m thrilled that Google’s ex-‘design ethicist’, Tristan Harris, “<a href="https://www.theguardian.com/world/2020/feb/29/rebecca-solnit-younger-feminists-shift-understanding-give-new-tools">the </a><em>closest thing Silicon Valley has to a conscience,</em>“(startlingly faint praise) now runs a Center for Humane Technology, exposing the mind-hacking tricks of his former employer. I even <a href="https://www.youtube.com/watch?v=3hSrUaSNFSY&amp;t=2309s">spoke</a> —critically but, I hope, warmly—at the book launch of James Williams, another ex-Googler turned attention evangelist, who “<a href="https://en.wikipedia.org/wiki/Center_for_Humane_Technology">co-founded the movement</a>”of awareness of designed-in addiction. I wish all these guys well. I also wish that the many, exhausted activists who didn’t take money from Google or Facebook could have even a quarter of the attention, status and authority the Prodigal Techbro assumes is his birth-right.</p>
<p>Today, when the tide of public opinion on Big Tech is finally turning, the brothers (and sisters) who worked hard in the field all those years aren’t even invited to the party. No fattened calf for you, my all but unemployable tech activist. The moral hazard is clear; why would anyone do the right thing from the beginning when they can take the money, have their fun, and then, when the wind changes, convert their status and relative wealth into special pleading and a whole new career?</p>
<p>Just half an hour flipping through my contacts produced half a dozen friends and acquaintances who didn’t require a ‘road to Damascus’ conversion to see what was wrong with big tech or the ways governments abuse it. Nighat Dad runs the <a href="https://digitalrightsfoundation.pk/">Digital Rights Foundation in Pakistan</a>, defending online freedom of expression and privacy for women, minorities and dissidents. That’s real courage. <a href="https://privacyinternational.org/people/95/gus-hosein">Gus Hosein</a> has worked in tech and human rights for over 20 years, runs Privacy International, the UK-based non-profit, and is the most visionary thinker I know on how to shake up our assumptions about why things are as they are.  <a href="https://biancawylie.com/">Bianca Wylie </a>founded the volunteer-run Open Data Institute Toronto, and works on open data, citizen privacy and civic engagement. The “<a href="https://www.citylab.com/life/2018/12/bianca-wylie-interview-toronto-quayside-protest-criticism/574477/">Jane Jacobs of the Smart Cities Age</a>,” she’s been a key figure in opening up and slowing down Alphabet’s Sidewalk Labs juggernaut in Toronto. Aral Balkan runs <a href="https://small-tech.org/">Small Technology Foundation </a>and works on both the tools and the policies to resist surveillance capitalism. Unafraid of being unpopular, even with other activists, Balkan freely hammers rights organizations or conferences for taking big tech’s sponsorship money while criticizing the companies’ practices. In the western Balkans, <a href="https://hvale.me/">hvale vale</a><a href="#_ftn10" name="_ftnref10"/> works tirelessly and cheerfully on women’s rights, sexual rights and the political and practical path to a feminist internet. <a href="https://en.wikipedia.org/wiki/Robin_Gross">Robin Gross</a>,  a Californian intellectual property lawyer, could have put her persistence and sheer pizazz to work defending big entertainment companies, but instead she’s worked for decades against the copyright maximalism that strangles artists’ creativity and does nothing to increase their incomes. I would love to hear their voices amplified, not (just) the voices of those who took a decade and more to work out the rottenness at the core of big tech.</p>
<p>Ex-Google lobbyist Ross Lajeunesse left the company in 2019 over its censored search engine for China and also because of homophobic, sexist and racist work practices. He’s now running for a Democratic senate nomination, and recently wrote a classic of the ‘scales have fallen from my eyes’ genre, called “I Was Google’s Head of International Relations. <a href="https://medium.com/@rossformaine/i-was-googles-head-of-international-relations-here-s-why-i-left-49313d23065https://medium.com/@rossformaine/i-was-googles-head-of-international-relations-here-s-why-i-left-49313d23065">Here’s Why I Left</a>.” Its lede is <em>“The company’s motto used to be “Don’t be evil.” Things have changed.”</em></p>
<p>Really? Has Google really changed? Lajeunesse joined in 2008, years into Google’s multi-billion dollar <a href="https://www.bloomberg.com/news/articles/2010-10-21/google-2-4-rate-shows-how-60-billion-u-s-revenue-lost-to-tax-loopholes">tax avoidance</a>, <a href="https://www.cnet.com/news/google-hit-with-job-discrimination-lawsuit/">sexist labor practices</a> and <a href="http://news.bbc.co.uk/2/hi/technology/6740075.stm">privacy hostility</a> and continued to work there through the years of <a href="https://www.bbc.co.uk/news/technology-40406542">antitrust fines</a>, misuse of <a href="https://www.bbc.com/news/technology-40406542">personal health data</a>, <a href="https://www.cnet.com/news/judge-rejects-324-5m-wage-fixing-settlement-struck-by-apple-google-others/">wage fixing</a>, and financially <a href="https://www.nytimes.com/2017/08/30/us/politics/eric-schmidt-google-new-america.html">pressuring think tanks</a>. Google didn’t change. It just started treating some of its insiders like it already treated outsiders. That only looks like radical change if you’ve never thought too hard about what you are doing and to whom.</p>
<p>One hundred thousand people work for Google/Alphabet; some of them have much more power than others. The point isn’t whether Lajeunesse is or isn’t culpable for the many acts of the enormous company he represented—as its chief lobbyist in Asia for several years—it’s that of all the people who spent the decade of 2010-20 working thanklessly to expose and reduce the firm’s monopolistic abuse and assault on global privacy, it’s the ex-lobbyist who gets our attention now.</p>
<p>We all need second chances. Even if we don’t need those fresh starts ourselves, we want to live in a world where people have a reason to do better. But the prodigal tech bro’s redemption arc is so quick and smooth it’s barely a road bump. That’s because we keep skipping the most important part of the prodigal son story—where he hits rock bottom. In the original parable, the prodigal son wakes up in a pig sty, starving, and realizes his father’s servants now live better than he does. He resolves to go home to the people and place he did not value or respect before. He will beg to be one of his father’s servants. He accepts his complete loss of status. But instead of chastising and punishing his prodigal son, the rejoicing father greets him joyfully and heads off the apology with a huge party. It’s a great metaphor for how to run a religion, but a lousy way to run everything else.</p>
<p>Prodigal tech bro stories skip straight from the past, when they were part of something that—surprise!—turned out to be bad, to the present, where they are now a moral authority on how to do good, but without the transitional moments of revelation and remorse.  But the bit where you say you got things wrong and people were hurt? That’s the most important part. It’s why these corporatized reinventions feel so slick and tinny, and why so many of the comments on Lajeunesse’s <a href="https://medium.com/@rossformaine/i-was-googles-head-of-international-relations-here-s-why-i-left-49313d23065">train wreck post</a> on Medium were critical. The journey feels fake. These ‘I was lost but now I’m found, please come to my TED talk’ accounts typically miss most of the actual journey, yet claim the moral authority of one who’s ‘been there’ but came back. It’s a teleportation machine, but for ethics.</p>
<p>(While we’re thinking about the neatly elided parts of the prodigal tech bro story, let’s dwell for one moment on the deletion of the entire stories of so many women and people of color barely given a first chance in Silicon Valley, let alone multiple reinventions.)</p>
<p>The only thing more fungible than cold, hard cash is privilege. The prodigal tech bro doesn’t so much take an off-ramp from the relatively high status and well-paid job he left when the scales fell from his eyes, as zoom up an on-ramp into a new sector that accepts the reputational currency he has accumulated. He’s not joining the resistance. He’s launching a new kind of start-up using his industry contacts for seed-funding in return for some reputation-laundering.</p>
<p>So what? Sure, it’s a little galling, but where’s the harm?</p>
<p>Allowing people who share responsibility for our tech dystopia to keep control of the narrative means we never get to the bottom of how and why we got here, and we artificially narrow the possibilities for where we go next. And centering people who were insiders before and claim to be leading the outsiders now doesn’t help the overall case for tech accountability. It just reinforces the industry’s toxic dynamic that some people are worth more than others, that power is its own justification.</p>
<p>The prodigal tech bro doesn’t want structural change. He is reassurance, not revolution. He’s invested in the status quo, if we can only restore the founders’ purity of intent. Sure, we got some things wrong, he says, but that’s because we were over-optimistic / moved too fast / have a growth mindset. Just put the engineers back in charge / refocus on the original mission / get marketing out of the c-suite. Government “needs to step up”, but just enough to level the playing field / tweak the incentives. Because the prodigal techbro is a moderate, centrist, regular guy. Dammit, he’s a <em>Democrat</em>. Those others who said years ago what he’s telling you right now? They’re troublemakers, disgruntled outsiders obsessed with scandal and grievance. He gets why you ignored them. Hey, he did, too. He knows you want to fix this stuff. But it’s <em>complicated</em>. It needs <em>nuance</em>. He knows you’ll listen to him. Dude, he’s just like you…</p>
<p>I’m re-assessing how often I help out well-established men suddenly interested in my insights and contact book. It’s ridiculous how many ‘and I truly mean them well’s I cut out of this piece, but I really do, while also realizing I help them because they ask, or because other people ask for them. And that coffee, those introductions, that talk I gave and so much more of my attention and care—it needs to go instead to activists I know and care about but who would never presume to ask. Sometimes the prodigal daughter has her regrets, too.</p>
<p>So, if you’re a prodigal tech bro, do us all a favour and, as <a href="https://www.theguardian.com/world/2020/feb/29/rebecca-solnit-younger-feminists-shift-understanding-give-new-tools">Rebecca Solnit says</a>, help “turn down the volume a little on the people who always got heard”:</p>
<ul>
<li>Do the reading and do the work. Familiarize yourself with the research and what we’ve already tried, on your own time. Go join the digital rights and inequality-focused organizations that have been working to limit the harms of your previous employers and – this is key – sit quietly at the back and listen.</li>
<li>Use your privilege and status and the 80 percent of your network that’s still talking to you to big up activists who have been in the trenches for years already—especially women and people of colour. Say ‘thanks but no thanks’ to that invitation and pass it along to someone who’s done the work and paid the price.</li>
<li>Understand that if you are doing this for the next phase of your career, you are doing it wrong. If you are doing this to explain away the increasingly toxic names on your resumé, you are doing it wrong. If you are doing it because you want to ‘give back,’ you are doing it wrong.</li>
</ul>
<p>Do this only because you recognize and can say out loud that you are not ‘giving back’, you are making amends for having already taken far, far too much.</p>

+ 100
- 0
cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://medium.com/swlh/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce">

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

<article>
<h1>How is computer programming different today than 20 years ago?</h1>
<h2><a href="https://medium.com/swlh/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce">Source originale du contenu</a></h2>
<p id="4883">I saw a question on Quora asking this and I started to write an answer. But it got so long that I converted into a post here.</p>

<p id="87e6">Here are some changes I have noticed over the last 20 years, in random order:</p>

<ul>
<li id="b8aa">Some programming concepts that were mostly theoretical 20 years ago have since made it to mainstream including many functional programming paradigms like immutability, tail recursion, lazily evaluated collections, pattern matching, first class functions and looking down upon anyone who don’t use them.</li>
<li id="6b41">A desktop software now means a web page bundled with a browser.</li>
<li id="c21d">Object-Oriented Programming (OOP) has lost a lot of street cred although it’s still probably the most popular programming model. New trait-based programming models are more pervasive in modern languages like Go, Rust and Swift. Composition is preferred over inheritance.</li>
<li id="b8ae">You are not officially considered a programmer anymore until you attend a $2K conference and share a selfie from there.</li>
<li id="1f8c">Because of the immense proliferation of multi-processor CPUs, parallel programming is now usually supported at the programming language level rather than primitive OS calls of 20 years ago. It brought in asynchronous programming primitives (async/await), parallel coroutines like goroutines in Go language or channels in D, composability semantics like observables with reactive programming.</li>
<li id="154a">A pixel is no longer a relevant unit of measurement.</li>
<li id="9346">Garbage collection has become the common way of safe programming but newer safety models are also emerging like lifetime semantics of Rust and snarky jokes in code reviews.</li>
<li id="fdc8">3 billion devices run Java. That number hasn’t changed in the last 10 years though.</li>
<li id="d317">A package management ecosystem is essential for programming languages now. People simply don’t want to go through the hassle of finding, downloading and installing libraries anymore. 20 years ago we used to visit web sites, downloaded zip files, copied them to correct locations, added them to the paths in the build configuration and prayed that they worked.</li>
<li id="2e16">Being a software development team now involves all team members performing a mysterious ritual of standing up together for 15 minutes in the morning and drawing occult symbols with post-its.</li>
<li id="be52">Language tooling is richer today. A programming language was usually a compiler and perhaps a debugger. Today, they usually come with the linter, source code formatter, template creators, self-update ability and a list of arguments that you can use in a debate against the competing language.</li>
<li id="ad98">Even programming languages took a side on the debate on Tabs vs Spaces.</li>
<li id="60bf">Adobe Flash, which was the only way to provide some smooth interaction on the web, no longer exists, thankfully. Now we have to develop on three different platforms with entirely different programming models in order to provide the same level of interaction.</li>
<li id="9215">IDEs and the programming languages are getting more and more distant from each other. 20 years ago an IDE was specifically developed for a single language, like Eclipse for Java, Visual Basic, Delphi for Pascal etc. Now, we have text editors like VS Code that can support any programming language with IDE like features.</li>
<li id="e3ab">Code must run behind at least three levels of virtualization now. Code that runs on bare metal is unnecessarily performant.</li>
<li id="727e">Cross-platform development is now a standard because of wide variety of architectures like mobile devices, cloud servers, embedded IoT systems. It was almost exclusively PCs 20 years ago.</li>
<li id="9a8e">Running your code locally is something you rarely do.</li>
<li id="55ba">Documentation is always online and it’s called Google. No such thing as offline documentation anymore. Even if there is, nobody knows about it.</li>
<li id="ceca">A tutorial isn’t really helpful if it’s not a video recording that takes orders of magnitude longer to understand than its text.</li>
<li id="1e13">There is StackOverflow which simply didn’t exist back then. Asking a programming question involved talking to your colleagues.</li>
<li id="d537">People develop software on Macs.</li>
<li id="9ca7">Internet connectivity is the norm and being offline is an exception which is the opposite of how it was back then.</li>
<li id="a1e5">Security is something we have to think about now.</li>
<li id="406a">Mobile devices can now show regular web pages, so no need to create a separate WAP page on a separate subdomain anymore. We create mobile pages on separate subdomains instead.</li>
<li id="4401">We open source everything by default except the code that would really embarass us.</li>
<li id="afb9">There are many more talented women, people of color and LGBT in the industry now, thanks to everyone who fought against discrimination. I still can’t say we’re there in terms of equality but we are much better.</li>
<li id="454b">Getting hacked is a regular occurence. Losing all your user data usually circumvented by writing a blog post that recommends changing passwords and that’s pretty much it. Apology isn’t required.</li>
<li id="ba0e">Working as a programmer remotely is easier than ever thanks to the new technologies like video conferencing, ubiquitous internet access and Keurigs.</li>
<li id="40dd">We don’t use IRC for communication anymore. We prefer a bloated version called Slack because we just didn’t want to type in a server address.</li>
<li id="1f31">We run programs on graphics cards now.</li>
<li id="1dbc">Your project has no business value today unless it includes blockchain and AI, although a centralized and rule-based version would be much faster and more efficient.</li>
<li id="464a">For some reason, one gigabyte is now insufficient storage space.</li>
<li id="fdf5">Because of side-channel attacks we can’t even trust the physical processor anymore.</li>
<li id="531a">A significant portion of programming is now done on the foosball table.</li>
<li id="0db1">Since we have much faster CPUs now, numerical calculations are done in Python which is much slower than Fortran. So numerical calculations basically take the same amount of time as they did 20 years ago.</li>
<li id="d4d5">Creating a new programming language or even creating a new hardware is a common hobby.</li>
<li id="f758">Unit testing has emerged as a hype and like every useful thing, its benefits were overestimated and it has inevitably turned into a religion.</li>
<li id="0557">Storing passwords in plaintext is now frowned upon, but we do it anyway.</li>
</ul>
</article>


<hr>

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

+ 46
- 0
cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/index.md View File

title: How is computer programming different today than 20 years ago?
url: https://medium.com/swlh/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce
hash_url: 4bf3df418cd5d6e14bc6e1b2bda9b12d

<p id="4883">I saw a question on Quora asking this and I started to write an answer. But it got so long that I converted into a post here.</p>
<p id="87e6">Here are some changes I have noticed over the last 20 years, in random order:</p>
<ul>
<li id="b8aa">Some programming concepts that were mostly theoretical 20 years ago have since made it to mainstream including many functional programming paradigms like immutability, tail recursion, lazily evaluated collections, pattern matching, first class functions and looking down upon anyone who don’t use them.</li>
<li id="6b41">A desktop software now means a web page bundled with a browser.</li>
<li id="c21d">Object-Oriented Programming (OOP) has lost a lot of street cred although it’s still probably the most popular programming model. New trait-based programming models are more pervasive in modern languages like Go, Rust and Swift. Composition is preferred over inheritance.</li>
<li id="b8ae">You are not officially considered a programmer anymore until you attend a $2K conference and share a selfie from there.</li>
<li id="1f8c">Because of the immense proliferation of multi-processor CPUs, parallel programming is now usually supported at the programming language level rather than primitive OS calls of 20 years ago. It brought in asynchronous programming primitives (async/await), parallel coroutines like goroutines in Go language or channels in D, composability semantics like observables with reactive programming.</li>
<li id="154a">A pixel is no longer a relevant unit of measurement.</li>
<li id="9346">Garbage collection has become the common way of safe programming but newer safety models are also emerging like lifetime semantics of Rust and snarky jokes in code reviews.</li>
<li id="fdc8">3 billion devices run Java. That number hasn’t changed in the last 10 years though.</li>
<li id="d317">A package management ecosystem is essential for programming languages now. People simply don’t want to go through the hassle of finding, downloading and installing libraries anymore. 20 years ago we used to visit web sites, downloaded zip files, copied them to correct locations, added them to the paths in the build configuration and prayed that they worked.</li>
<li id="2e16">Being a software development team now involves all team members performing a mysterious ritual of standing up together for 15 minutes in the morning and drawing occult symbols with post-its.</li>
<li id="be52">Language tooling is richer today. A programming language was usually a compiler and perhaps a debugger. Today, they usually come with the linter, source code formatter, template creators, self-update ability and a list of arguments that you can use in a debate against the competing language.</li>
<li id="ad98">Even programming languages took a side on the debate on Tabs vs Spaces.</li>
<li id="60bf">Adobe Flash, which was the only way to provide some smooth interaction on the web, no longer exists, thankfully. Now we have to develop on three different platforms with entirely different programming models in order to provide the same level of interaction.</li>
<li id="9215">IDEs and the programming languages are getting more and more distant from each other. 20 years ago an IDE was specifically developed for a single language, like Eclipse for Java, Visual Basic, Delphi for Pascal etc. Now, we have text editors like VS Code that can support any programming language with IDE like features.</li>
<li id="e3ab">Code must run behind at least three levels of virtualization now. Code that runs on bare metal is unnecessarily performant.</li>
<li id="727e">Cross-platform development is now a standard because of wide variety of architectures like mobile devices, cloud servers, embedded IoT systems. It was almost exclusively PCs 20 years ago.</li>
<li id="9a8e">Running your code locally is something you rarely do.</li>
<li id="55ba">Documentation is always online and it’s called Google. No such thing as offline documentation anymore. Even if there is, nobody knows about it.</li>
<li id="ceca">A tutorial isn’t really helpful if it’s not a video recording that takes orders of magnitude longer to understand than its text.</li>
<li id="1e13">There is StackOverflow which simply didn’t exist back then. Asking a programming question involved talking to your colleagues.</li>
<li id="d537">People develop software on Macs.</li>
<li id="9ca7">Internet connectivity is the norm and being offline is an exception which is the opposite of how it was back then.</li>
<li id="a1e5">Security is something we have to think about now.</li>
<li id="406a">Mobile devices can now show regular web pages, so no need to create a separate WAP page on a separate subdomain anymore. We create mobile pages on separate subdomains instead.</li>
<li id="4401">We open source everything by default except the code that would really embarass us.</li>
<li id="afb9">There are many more talented women, people of color and LGBT in the industry now, thanks to everyone who fought against discrimination. I still can’t say we’re there in terms of equality but we are much better.</li>
<li id="454b">Getting hacked is a regular occurence. Losing all your user data usually circumvented by writing a blog post that recommends changing passwords and that’s pretty much it. Apology isn’t required.</li>
<li id="ba0e">Working as a programmer remotely is easier than ever thanks to the new technologies like video conferencing, ubiquitous internet access and Keurigs.</li>
<li id="40dd">We don’t use IRC for communication anymore. We prefer a bloated version called Slack because we just didn’t want to type in a server address.</li>
<li id="1f31">We run programs on graphics cards now.</li>
<li id="1dbc">Your project has no business value today unless it includes blockchain and AI, although a centralized and rule-based version would be much faster and more efficient.</li>
<li id="464a">For some reason, one gigabyte is now insufficient storage space.</li>
<li id="fdf5">Because of side-channel attacks we can’t even trust the physical processor anymore.</li>
<li id="531a">A significant portion of programming is now done on the foosball table.</li>
<li id="0db1">Since we have much faster CPUs now, numerical calculations are done in Python which is much slower than Fortran. So numerical calculations basically take the same amount of time as they did 20 years ago.</li>
<li id="d4d5">Creating a new programming language or even creating a new hardware is a common hobby.</li>
<li id="f758">Unit testing has emerged as a hype and like every useful thing, its benefits were overestimated and it has inevitably turned into a religion.</li>
<li id="0557">Storing passwords in plaintext is now frowned upon, but we do it anyway.</li>
</ul>

+ 191
- 0
cache/2020/58117f5865002118d6769cb0a7aa9786/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://perspectives-printanieres.info/index.php/2020/03/10/lepidemie-na-pas-de-vertus/">

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

<article>
<h1>L’épidémie n’a pas de vertus</h1>
<h2><a href="https://perspectives-printanieres.info/index.php/2020/03/10/lepidemie-na-pas-de-vertus/">Source originale du contenu</a></h2>
<p>Si l’on en croit la multiplication des analyses médiatiques allant dans ce sens dernièrement, l’épidémie de COVID-19 serait bonne pour la planète. Le principal bénéfice écologique évoqué se rapporte à la baisse d’1/4 des émissions chinoises de CO<sub>2</sub> sur les deux derniers mois<a href="#_ftn1" name="_ftnref1">[1]</a>, dont les effets positifs sont évidemment climatiques mais aussi sanitaires. L’intérêt autour de cette réduction de la pollution émise par la deuxième puissance mondiale a notamment été renforcé par des images satellites de la NASA illustrant très nettement le phénomène.  Quelques articles plus rares mentionnent quant à eux les effets positifs pour la biodiversité de la très récente interdiction par la Chine du commerce et de la consommation d’animaux sauvages<a href="#_ftn2" name="_ftnref2">[2]</a>. Malgré ces éléments qui semblent univoques, voir des bénéfices pour la planète dans l’épidémie en cours n’est en aucun cas un positionnement écologiste. Revenir aux conditions sociales de la production de l’épidémie ainsi qu’aux principales propositions écologistes permet de s’en convaincre. Il y a assurément une grande différence entre considérer que l’épidémie de coronavirus est en elle-même écologiquement positive et tirer (ou plutôt confirmer) des enseignements écologistes à partir des effets économiques de celle-ci.</p>

<h4>La production de l’épidémie</h4>

<p>Les origines exactes du coronavirus<a href="#_ftn3" name="_ftnref3">[3]</a> restent encore largement indéterminées. Toutefois son caractère zoonotique<a href="#_ftn4" name="_ftnref4">[4]</a> ouvre la voie à de nombreux discours sur le virus en lui-même ou sur l’épidémie y étant associé – la principale préoccupation étant de déterminer l’animal porteur du virus, qui aurait pu le transmettre aux humain-es. Aux débuts de l’épidémie, un marché de Wuhan – capitale de la province chinoise du Hubei, dont l’agglomération compte plus de 11 millions d’habitant-es – était au cœur de l’attention, puisque c’est là qu’aurait eu lieu la première transmission du coronavirus aux humain-es. L’animal rapidement considéré dans l’espace médiatique comme porteur du pathogène était la chauve-souris. Cette piste n’ayant pas été rapidement confirmée, d’autres espèces animales ont rapidement été évoquées comme potentielles sources de la transmission du virus aux humain-es, comme le serpent ou, plus probablement, le pangolin – l’espèce la plus braconnée au monde<a href="#_ftn5" name="_ftnref5">[5]</a>. Ces animaux font partie des multiples espèces sauvages qui transitent par le marché de Wuhan, d’où l’intérêt qui leur est porté ces dernières semaines. L’épidémie de SRAS du début des années 2000 – 800 victimes entre 2002 et 2003<a href="#_ftn6" name="_ftnref6">[6]</a> – est évidemment dans tous les esprits, puisqu’à l’époque, le porteur animal du virus était la civette, un petit mammifère également braconné et échangé sur les marchés chinois. Pékin a d’ailleurs strictement interdit son commerce à la suite de l’épidémie, laissant supposer que les transactions de pangolins et/ou chauve-souris pourraient également être définitivement interdites dans le pays.</p>

<p>Le caractère « sauvage » de ces animaux (potentiellement) porteurs du virus est absolument central, puisque c’est précisément ce sur quoi rebondissent nombre de discours politiques (mais qui ne le sont pas toujours explicitement) liés au coronavirus, qu’ils se présentent ou non comme écologistes. La consommation de ces animaux n’étant pas répandue en France, les réactions racistes envers les personnes et cultures asiatiques se sont multipliées sur les réseaux sociaux. Rapidement, ce ne sont plus seulement les animaux cuisinés qui sont considérés comme sauvages mais aussi les personnes qui les mangent. D’abord, ce sont les pratiques gastronomiques qui sont ciblées, des occidentaux ridiculisant des plats traditionnels chinois<a href="#_ftn7" name="_ftnref7">[7]</a>, souvent au recours d’intox et de manipulations<a href="#_ftn8" name="_ftnref8">[8]</a>. Cette concentration sur les pratiques culinaires chinoises n’est que le symptôme de la dimension raciste de l’hygiénisme avec lequel les occidentaux traitent le reste du monde. Mais rapidement, les actes discriminatoires et humiliations envers les personnes asiatiques se sont multipliés, par exemple dans les transports en commun. Nombre d’entre elles ont exprimé leur colère avec le hashtag <a href="https://twitter.com/search?q=%23JeNeSuisPasUnVirus&amp;src=typeahead_click"><strong><em>#JeNeSuisPasUnVirus</em></strong></a> sur twitter ainsi qu’à travers de nombreuses interventions télévisées. Cette recrudescence de racisme n’épargna pas le champ médiatique, puisque le quotidien régional Le Courrier Picard titrait « Alerte jaune » en une, le 26 janvier dernier. La lecture raciste de l’épidémie qui s’est construite en Occident s’est ainsi prolongée jusque dans les réponses des puissances occidentales, qui ont étudié les bénéfices d’une fermeture totale des frontières.</p>

<p>L’indétermination<a href="#_ftn9" name="_ftnref9">[9]</a> autour des conditions de la première transmission de ce dernier aux humain-es nourrit une perception de l’épidémie comme « naturelle » : le coronavirus était bien présent quelque part sur la planète, qu’il soit un jour transmis aux humain-es n’était alors qu’une question de temps (c’est-à-dire le temps que le virus arrive jusqu’à nous), conférant ainsi à l’épidémie en cours un caractère inéluctable. Cette présentation simpliste d’une origine « naturelle » de l’épidémie en cours pose évidemment de multiples problèmes. Tout d’abord, elle occulte complètement les processus biogéographiques à l’œuvre derrière l’accroissement d’émergence des épidémies : la destruction des biotopes. Devant la disparition de leurs habitats, nombre d’espèces sont en effet contraintes de se déplacer vers de nouveaux espaces, où elles se trouvent confrontées à de nouveaux agents infectieux. Si la plupart du temps, ces animaux deviennent de simples porteurs sains de ces virus, la destruction des habitats multiplie également les points de contact entre les humain-es et ces espèces condamnées à l’errance<a href="#_ftn10" name="_ftnref10">[10]</a>. L’artificialisation des sols apparaît dès lors directement responsable de l’accroissement récent des épidémies, puisqu’elle ouvre des porteurs animaux à de nouveaux pathogènes jusque-là isolés et augmente les possibles contaminations zoonotiques vers les humain-es. A cela s’ajoute le réchauffement global du climat qui accroît lui aussi les risques épidémiologiques : les dérèglements climatiques sont extrêmement propices à l’expansion virologique<a href="#_ftn11" name="_ftnref11">[11]</a>. L’intensification des précipitations, l’aggravation des sècheresses ou la destruction d’installations sanitaires par des catastrophes climatiques plus nombreuses sont autant d’effets secondaires du changement climatique qui favorisent l’accroissement du nombre d’épidémies ces dernières années.</p>

<p>Toutefois ce détour utile par la biogéographie n’est pas suffisant, les conditions sociales de ce grignotage par artificialisation des biotopes doivent elles aussi être explicitées – sinon, deux risques surviennent, celui de retomber dans une schématisation simpliste d’une société arrachée à la nature et désormais en conflit avec elle, le virus redevenant « naturel », et celui d’une homogénéisation de la société et des dominations sociales la structurant. L’anthropisation accélérée des sols est un symptôme tardif d’un « habiter colonial »<a href="#_ftn12" name="_ftnref12">[12]</a> de la Terre, imposé par l’Occident au reste du monde. Celui-ci se fonde sur 3 principes : la subordination géographique d’un espace à un autre, l’exploitation des terres de l’espace nouvellement approprié et la possibilité pour d’autres d’y habiter rendue impossible – 3 principes auxquels tout-e écologiste ne peut que s’opposer. Les intrications du changement climatique et des mécanismes capitalistes sont quant à elles largement documentées, depuis la constitution de l’économie fossile elle-même<a href="#_ftn13" name="_ftnref13">[13]</a> jusqu’à la promotion de politiques climatiques adaptationnistes par les élites néolibérales<a href="#_ftn14" name="_ftnref14">[14]</a>. L’épidémie n’est donc en rien « naturelle », vierge de toute implication humaine, mais relève bien de dynamiques fondamentalement politiques ayant trait à l’organisation sociale des sociétés modernes.</p>

<p>Enfin, la gestion répressive de la propagation du virus est elle aussi à considérer pour déconstruire l’épidémie comme « régulation naturelle ». Principale réponse apportée à l’épidémie, il faut ici essayer de détricoter les différents usages politiques du confinement. Le recours à celui-ci semble inévitable, toutes les études épidémiologiques le préconisent. Mais les conditions précises de sa mise en œuvre sont beaucoup moins consensuelles, comme en témoignent les positions divergentes entre les expert-es qui trouvent qu’on en fait trop et celleux qui trouvent que l’on en fait pas assez<a href="#_ftn15" name="_ftnref15">[15]</a>. Plusieurs grandes puissances se sont alors lancées dans un strict confinement de leurs habitant-es. Première touchée, la Chine a mis en place un système répressif extrêmement sévère, en transformant l’appareil bureaucratique du Parti Communiste Chinois en véritable police anti-épidémie : les membres des comités de quartier du PCC contrôlent les moindres allers et venues des habitant-es qui souhaitent passer les barrières dressées entre provinces, communes, quartiers et pâtés de maisons<a href="#_ftn16" name="_ftnref16">[16]</a>. Les mesures systématiques de température à l’entrée de nombreux bâtiments ne sont qu’un exemple parmi de nombreux autres du fort contrôle social exercé par l’appareil sécuritaire chinois sur la population des régions infectées. Pékin compte d’ailleurs sur la dimension humanitaire – « il faut lutter contre l’épidémie » – pour se garantir le soutien (d’au moins une partie) de la population locale<a href="#_ftn17" name="_ftnref17">[17]</a>.  En Italie, pays européen le plus touché par l’épidémie de COVID-19, le gouvernement a récemment mis en place le confinement de près de 15 millions de personnes (environ 1/3 de la population italienne), dans 11 provinces du nord du pays<a href="#_ftn18" name="_ftnref18">[18]</a>, au sein desquelles la police et l’armée auront semble-t-il toute latitude pour interroger les personnes sur les motivations de leurs déplacements. En réaction à l’interdiction des visites en prison et aux faibles mesures de protection des prisonniers vis-à-vis de l’épidémie, des mutineries ont éclaté dans le sud du pays<a href="#_ftn19" name="_ftnref19">[19]</a>, à l’issue desquelles 10 d’entre eux furent assassinés.  En France, le caractère martial du confinement est presque explicitement établi<a href="#_ftn20" name="_ftnref20">[20]</a>, puisque c’est un « conseil de défense » qu’a mis en place Emmanuel Macron pour mener la « guerre » face au virus. Cette problématisation de l’épidémie comme « guerre » est une construction politique, qui visible un ennemi invisible (le virus), permettant ainsi de justifier par l’urgence des mesures anti-démocratiques exceptionnelles en matière de sécurité<a href="#_ftn21" name="_ftnref21">[21]</a> – peut-on par exemple craindre un état d’urgence justifié par la menace que représente le coronavirus ?</p>

<p>Le confinement procède donc par contrôle spatial : la segmentation de l’espace est imposée verticalement par les autorités, qui entendent encadrer les moindres faits et gestes de la population selon ce qui leur semble nécessaire (au vu des intérêts qu’elles défendent et disent défendre). Un tel contrôle spatial – que l’on peut imaginer être un jour étendu aux relations entre humain-es et espèces sauvages en prévision des futures épidémies, si nous ne sortons pas de ce modèle – a une longue histoire coloniale, puisque découper l’espace qu’elles s’étaient approprié permit aux puissances impériales occidentales de contrôler les populations sous leur domination, jusque dans leurs interactions avec d’autres groupes sociaux ou avec des espèces sauvages<a href="#_ftn22" name="_ftnref22">[22]</a>. La gestion chinoise de l’épidémie donne froid dans le dos puisqu’elle rappelle ce contrôle colonial déshumanisé des masses, déjà reproduit par l’aide médicale internationale pour l’épidémie d’Ebola<a href="#_ftn23" name="_ftnref23">[23]</a>. Mais la maladie se propageant essentiellement par « contagion sociale »<a href="#_ftn24" name="_ftnref24">[24]</a>, ce sont toutes les relations sociales qu’il faudrait encadrer, en isolant indistinctement tous les individus. Les limites du confinement apparaissent ici clairement : toute la population ne peut être simultanément confinée, même pendant une courte période. Une certaine fraction de la société devra continuer à circuler pour assurer certains besoins fondamentaux du reste de la communauté (certain-es parlent de « vie minimale », d’« activités essentielles » ou d’« activités utiles à la nation », ces différentes appellations traduisant des visées politiques sensiblement différentes), comme l’alimentation et la santé – nous sommes toujours en contexte d’épidémie. Les appareils étatiques des grandes puissances s’épuisent donc à mettre en place un confinement toujours plus strict, adossé à un discours sécuritaire toujours plus verrouillé. Si rendre parfaitement hermétique le confinement est impossible, renoncer à toute forme de confinement serait aussi inefficace qu’un durcissement de la répression. La prévention des risques est évidemment nécessaire, mais sa forme étatique, acquise à la quantification mais peu sensible aux conditions sociales<a href="#_ftn25" name="_ftnref25">[25]</a>, ne peut aboutir qu’à une gestion autoritaire de l’épidémie – la relative désinvolture avec laquelle le gouvernement français a d’abord traité l’épidémie par rapport à d’autres pays peut s’expliquer par une approche singulière du risque pandémique<a href="#_ftn26" name="_ftnref26">[26]</a>, mais force est de constater qu’il a désormais adapté la même méthode répressive.</p>

<p>Par un glissement scalaire ahurissant, certain-es proposent pourtant sans sourciller de passer la logique répressive de confinement au niveau national en réclamant une fermeture des frontières, réactivant par là même les réflexes nationalistes de celles et ceux qui n’attendaient que ça pour en profiter politiquement<a href="#_ftn27" name="_ftnref27">[27]</a>. Qu’importe si une telle mesure aggraverait la situation sanitaire en bloquant la circulation de matériel de santé ou de nombreuses denrées alimentaires. La proposition d’une « démondialisation écologique »<a href="#_ftn28" name="_ftnref28">[28]</a> projette en quelque sorte cette idée sur le plus long terme en réintroduisant la lutte contre les épidémies dans un projet politique à coloration écologiste, mais orienté vers un fantasme protectionniste bien éloigné des principes libertaires et internationalistes qui fondent l’écologie politique depuis les années 70<a href="#_ftn29" name="_ftnref29">[29]</a>. Promouvoir une « démondialisation », c’est refuser de voir la mondialisation comme un processus profondément ambivalent sur les plans politique et écologique. Les grandes typologies de « gagnant-es » et « perdant-es » de la mondialisation qui inspirent les raisonnements à la source de la proposition de démondialisation passent systématiquement à côté de cette ambivalence fondamentale<a href="#_ftn30" name="_ftnref30">[30]</a>. Le repli nationaliste auquel appellent certain-es pour répondre à l’épidémie provoquée par le coronavirus ignore de plus les multiples études pointant l’innocuité des frontières nationales pour endiguer l’expansion géographique de la maladie : il faudrait que celles-ci soient complètement hermétiques, à la manière d’un confinement hospitalier (bien que ceux-ci ne soient finalement pas si imperméables), une opération évidemment impossible à réaliser. Les études épidémiologiques<a href="#_ftn31" name="_ftnref31">[31]</a>, s’appuyant sur des modélisations mathématiques, ont en effet démontré l’inefficacité de la fermeture des frontières pour empêcher un virus d’entrer sur le territoire.</p>

<p>Cette lecture spatiale multiscalaire de l’épidémie liée au coronavirus indique que les écologistes ne peuvent nullement se satisfaire des soi-disant bénéfices écologiques associés à la propagation du virus. Au contraire, son émergence et sa diffusion elles-mêmes sont le résultat de politiques anti-écologiques qui s’accumulent depuis des décennies, au détriment des écosystèmes et aujourd’hui des humain-es. La réponse actuelle à l’épidémie n’est que la continuité de ces politiques.</p>

<h4>Malthusianisme, panique et écologie politique</h4>

<p>Dans la continuité de cette thématisation des épidémies comme pathologies sociales, les tendances (néo)malthusiennes de la présentation de l’épidémie liée au coronavirus comme « régulation naturelle » (ou de « retour à la normale »<a href="#_ftn32" name="_ftnref32">[32]</a>) sont assez flagrantes : chez Malthus, c’est la famine qui vient inévitablement corriger le décalage entre croissances démographique et des ressources disponibles (la première étant plus rapide que la seconde) ; ici c’est l’épidémie qui joue ce rôle, régulant cette fois le développement des activités humaines face aux capacités de charge – ou limites – de la planète. L’analogie se confirme lorsque l’on s’intéresse plus en détail aux populations touchées par ces « régulations naturelles » : les pauvres chez Malthus, ou plus généralement les dominé-es – pauvres et racisé-es – dans les théories néomalthusiennes, tandis que les plus touché-es par l’épidémie due au coronavirus sont pour l’heure majoritairement chinois-es – environ 80% des personnes infectées. Cet imaginaire flirtant avec le malthusianisme s’est nourri de la constitution des épidémies en Asie comme objet d’étude privilégié de la médecine occidentale<a href="#_ftn33" name="_ftnref33">[33]</a>. Cette lecture du traitement global des épidémies comme héritage du colonialisme s’illustre par de nombreux exemples, comme ces occidentaux qui fuient littéralement les pays européens infectés vers des pays du Sud, sans subir aucun contrôle alors qu’ils transportent le virus avec eux<a href="#_ftn34" name="_ftnref34">[34]</a>. Les chiffres ne l’illustrent pas (encore) mais l’on pouvait légitimement s’en douter : au sein d’un même pays, riches et pauvres ne disposent pas des mêmes moyens pour faire face à l’épidémie<a href="#_ftn35" name="_ftnref35">[35]</a> – comme à toute catastrophe d’ailleurs. Dans certains pays du Nord largement infectés comme la France, un robuste système de santé socialisé permet à une part importante des personnes gravement malades du COVID-19 d’être hospitalisées – bien que le système public de santé soit en plein démantèlement. Les plus pauvres d’autres pays comme les Etats-Unis ne bénéficient pas d’un tel système, et se trouvent donc particulièrement exposées à l’épidémie. Les pays du Sud semblent pour l’heure relativement épargnés par la diffusion du coronavirus<a href="#_ftn36" name="_ftnref36">[36]</a>. Toutefois, cette asymétrie peut s’expliquer par les systèmes de santé beaucoup plus parcellaires, instables et inégalitaires dont disposent ces pays, rendus dépendants des interventions humanitaires occidentales en cas de catastrophe sanitaire. Les tests de dépistage y sont de fait beaucoup moins fréquents, laissant supposer que l’épidémie est dans ces pays bien plus importante que les chiffres ne le laissent penser – l’exemple égyptien est à ce titre assez frappant. Pour se représenter les choses, revenir à la situation française peut être éclairant : sur 1500 cas officiels, l’on trouve 1 ministre, plusieurs député-es, les PDG de plusieurs grandes entreprises et institutions, etc… La surreprésentation de ces cas (les seuls sur lesquels on s’attarde individuellement d’ailleurs) par rapport au reste de la population n’est que le reflet de la stratégie française de ne pas tester la présence du virus chez tous les cas potentiels, la systématisation de ces tests restant semble-t-il réservée à une certaine fraction de la population seulement – ses élites. En France, on peut légitimement supposer que le nombre de cas est bien supérieur à celui officiellement annoncé. Dans des pays du Sud déstabilisés par l’ingérence occidentale, les mêmes effets de minimisation statistique à cause du faible nombre de tests effectués ne peuvent être qu’encore plus importants<a href="#_ftn37" name="_ftnref37">[37]</a>.</p>

<p>Ce que les discours minimisant les dangers du coronavirus occultent, c’est la fragilité des systèmes publics de santé, soumis – quand ils existent encore – depuis de nombreuses années aux pressions du secteur privé. Les échanges entre professionnel-les de santé et le président de la République au début de l’épidémie en France ont particulièrement bien représenté ces impacts directs du démantèlement organisé de la sécurité sociale. Plutôt que de reconnaître les dégâts des dernières politiques en matière de santé, qui ne peuvent plus accueillir dignement toutes celles et tous ceux estimant en avoir besoin, les autorités multiplient les incitations à ne pas se rendre aux urgences, sauf en cas de graves symptômes susceptibles d’être dus au coronavirus. La responsabilité initialement collective du traitement de l’épidémie devient dès lors individuelle, reléguant dans l’irrationalisme celles et ceux qui s’inquiètent légitimement de peut-être avoir été contaminé-es.</p>

<p>Les argumentaires fustigeant celles et ceux qui cèdent à la « panique [ou à la psychose] »<a href="#_ftn38" name="_ftnref38">[38]</a> provoquée par l’épidémie sont probablement encore plus nombreux que ceux pointant ses effets écologiques positifs. La simultanéité de ces deux stratégies argumentatives informe sur les raisons pour lesquelles présenter l’épidémie comme écologiquement bénéfique est particulièrement malvenu : des gens sont morts de la même cause que celle de ces « bénéfices écologiques » – près de 4000 lors de l’écriture de cet article<a href="#_ftn39" name="_ftnref39">[39]</a>. Ce simple fait interdit de se reposer sur des événements comme des épidémies pour avancer politiquement sur les questions écologiques. Pour les personnes en bonne santé, le coronavirus est presque sans gravité, à peine plus virulent qu’une banale grippe. Aucune raison de paniquer nous dit-on, puisque seules les personnes fragiles risquent quelque chose du COVID-19<a href="#_ftn40" name="_ftnref40">[40]</a> – ici les vieux et les vieilles, puisque c’est comme tel-les que le mépris à leur égard nous conduit à les nommer, ainsi que toutes les personnes immunodéficientes. Le nombre de décès imputés au coronavirus est ainsi généralement ramené à celui du nombre de décès de la grippe saisonnière : en chiffres absolus, le second paraît énorme par rapport au premier, alors que le taux de mortalité du coronavirus est semble-t-il 20 à 25 fois plus élevé que celui de la grippe saisonnière<a href="#_ftn41" name="_ftnref41">[41]</a>.  Toutes les familles avec des personnes fragiles n’ont presque plus en tête toutes les précautions relatives aux infections courantes qu’elles prennent tant celles-ci sont devenues automatiques durant l’hiver. Prendre de nouvelles précautions relatives à l’épidémie de COVID-19 procède dès lors par la même logique que celle de la couverture vaccinale : on ne se protège pas seulement soi, mais également les autres. S’inquiéter de l’émergence d’une nouvelle épidémie avec une léthalité accrue ne relève donc pas de la panique, simplement d’une vigilance accrue quant à de potentiels nouveaux risques. Ladite panique, ce sont davantage les médias sensationnalistes qui la construisent et l’entretiennent, en inondant leurs audiences d’informations en tous genre sur l’évolution de l’épidémie. Les personnes interviewées dans les journaux télévisés semblent d’ailleurs aborder la situation avec une relative sérénité, surtout lorsque l’on sort leurs témoignages des récits journalistes au sein desquels ils sont intégrés. Cette asymétrie est le fruit d’une rupture de classes : ce sont les capitalistes qui paniquent de voir leurs profits entamés par l’épidémie en cours. La concentration médiatique autour de ce thème a évidemment pour objectif d’empêcher tout ralentissement de l’activité économique, qui leur serait temporairement défavorable.</p>

<p>Temporaire, la baisse des émissions suite à l’épidémie l’est aussi puisqu’elle n’a évidemment aucun effet à long terme : si tôt l’épidémie terminée (voire avant), les émissions reviendront à leur niveau précédent et reprendront leur progression. Son seul effet aura été de légèrement retarder la progression des émissions – une baisse d’1/4 des émissions chinoises, importante pour un pays aux engagements climatiques extrêmement réduits, mais encore bien loin de ce que l’on peut espérer dans une trajectoire écologiste. Ce ralentissement de l’économie à cause de l’épidémie – à la fois craint pour ses aspects financiers et loué pour ses aspects environnementaux – est d’ailleurs bien plus réduit que la présentation choquée dans les médias le laisse penser. D’abord parce que la chute des cours boursiers entièrement imputée au coronavirus passe sous silence tous les signes de mauvaise santé des marchés financiers ces derniers mois, bien avant l’émergence du coronavirus<a href="#_ftn42" name="_ftnref42">[42]</a>. Mais aussi, le ralentissement des grandes multinationales n’est pas aussi ralenti que ne le laisse présager les médias. Les compagnies aériennes européennes préfèrent par exemple faire voler leurs avions à vide afin de conserver leurs créneaux horaires<a href="#_ftn43" name="_ftnref43">[43]</a>, puisque leur perte augmenterait les pertes déjà importantes du secteur. Dans un tout autre domaine, le parc d’attractions Disneyland Paris reste ouvert normalement<a href="#_ftn44" name="_ftnref44">[44]</a>, exposant les salarié-es aux mêmes risques de contamination que ceux des rassemblements de plus de 1000 personnes, désormais interdits sur le territoire. Ces exemples ne sont certainement pas isolés : des usines continuent probablement de tourner même en manquant de personnel, surexploitant dès lors les travailleur-ses toujours en poste. Cette supposition relève peut-être du procès d’intention, mais les exemples du secteur aérien et de Disneyland Paris ne montrent-ils pas que les capitalistes sont prêts à tout pour garantir leurs marges, à court, à moyen comme à long terme ?</p>

<p>Souligner le caractère répressif du confinement et du calcul des risques tels qu’ils sont employés par les gouvernements de la plupart des pays infectés doit déboucher sur des propositions pour une autre gestion, écologiste, des épidémies (futures – parce que pour celle-ci, il semble que ce soit trop tard). Pour des pathogènes proches de ceux déjà étudiés, le recours au confinement ne semble en effet pas pouvoir être évité. Toutefois des services publics de santé robustes car correctement financés, un système productif démocratique libéré des objectifs capitalistes dans lequel le travail n’est plus le centre obligé de nos vies et une sortie de l’approche étatique de la prévention des risques font partie des éléments indispensables pour que le confinement ne prenne pas une tournure répressive comme c’est le cas actuellement. La bonne santé de la structure hospitalière est une évidence sur laquelle beaucoup sont déjà revenus, du dépistage efficace de la maladie à l’hospitalisation de toutes les personnes le nécessitant. Le travail étant un lieu privilégié de socialisation pour une grande partie de la population, généraliser la possibilité de ne pas s’y rendre devrait être l’action prioritaire – c’est autre chose qu’un confinement pour les suspections de contamination. Cette mesure est absolument impensable dans une économie capitaliste, seule une réorganisation démocratique de la production serait en mesure de la permettre. Cette réflexion sur la place du travail dans la société est une constante dans le cheminement théorique tracé par l’écologie politique<a href="#_ftn45" name="_ftnref45">[45]</a>. Ce projet démocratique s’opposant frontalement à la logique d’expertise qui s’est constituée dans les dernières décennies<a href="#_ftn46" name="_ftnref46">[46]</a>, il impacterait probablement le paradigme autoritaire de la gestion étatique des catastrophes : la nécessaire planification des risques ne peut faire l’économie du social, dont l’incorporation dans l’analyse chamboulerait toute l’organisation martiale de la réponse aux catastrophes – climatiques, industrielles, sanitaires etc. Ces propositions non-exhaustives s’inscrivent tout autant dans une orientation écologiste que celles qui entendent limiter l’émergence de nouveaux virus à l’avenir.</p>

<p>Des « bénéfices » écologiques évoqués ces derniers jours, des enseignements écologistes peuvent néanmoins être tirés. Tout d’abord, retarder l’émergence de nouveaux virus s’ajoute à la longue liste d’arguments pour stopper la destruction des milieux « sauvages ». Les écologistes ne peuvent ainsi vanter les très maigres maigres effets écologiques de l’épidémie puisque ceux-ci sont le résultat d’une trajectoire écocidaire des sociétés. C’est bien cette orientation générale qu’il faut infléchir, voire renverser. Ce n’est un secret pour personne : la réduction des émissions de CO2 en Chine n’est pas directement corrélée à la diffusion du coronavirus lui-même, mais bien à la baisse de l’activité productive du pays que la maladie qu’il provoque a entraînée, c’est-à-dire directement aux corps contaminés. Si les capitalistes n’avaient pas besoin d’humain-es et de leurs corps pour poursuivre leurs objectifs de profits, la propagation du virus n’aurait a priori pas d’effets économiques (du point de vue de la production), donc pas d’effets climatiques. L’impossibilité de fonctionnement du capitalisme quand les corps qu’il soumet ne sont plus fonctionnels (au sens capitaliste) révèle le darwinisme social sur lequel il s’appuie en permanence. Rappeler ces éléments semble extrêmement futile, alors que cela permet d’empiéter sur les récits hégémoniques qui gomment consciemment certains enjeux politiques fondamentaux de l’épidémie. Cette réintroduction de la dimension humaine dans la production de biens et services éclaire ce qu’il faut entraver si l’on se soucie vraiment de la « planète » : les intérêts du capitalisme fossile et de l’habiter colonial de la Terre qu’il perpétue. Ainsi, plutôt que de se reposer sur des épidémies qui viendraient « naturellement » réguler le développement des sociétés, il ne reste plus qu’à trouver d’autres moyens pour reproduire ce blocage tout en épargnant les humain-es !</p>

<p>Ces moyens ne sont évidemment plus à « trouver » puisqu’ils font déjà l’objet d’une vaste littérature discutant à la fois leurs aspects théoriques et stratégiques. Du côté théorique, les multiples propositions décroissantes offrent autant de pistes vers une société écologique. Mais toutes ne s’appuient pas sur les mêmes arguments politiques et n’auront pas les mêmes effets sociaux : articuler la nécessaire décroissance énergétique à un projet social ambitieux reste le principal défi qui nous attend<a href="#_ftn47" name="_ftnref47">[47]</a>. Une réflexion peut également être menée sur le « sauvage » au sens de ce sur quoi les sociétés humaines se gardent d’avoir la main<a href="#_ftn48" name="_ftnref48">[48]</a> : comment se tenir à l’écart de certains écosystèmes, notamment pour limiter l’émergence de nouveaux virus, sans tomber dans la logique coloniale dans laquelle se sont construits la majorité des espaces protégés ? La schématisation simpliste du problème comme sociétés luttant contre la nature est inopérante pour penser la cohabitation entre les sociétés humaines et les espèces habitant les mêmes milieux qu’elles. Du côté pratique, la grève ou plus généralement le sabotage offrent autant de prises à une réappropriation par les travailleur-ses du processus de production. Le secteur énergétique, particulièrement critique dans le contexte climatique actuel, pourrait de nouveau jouer le rôle de levier démocratique qu’il a eu lors de l’hégémonie énergétique du charbon<a href="#_ftn49" name="_ftnref49">[49]</a>, et que le choc de l’arrivée du pétrole a ensuite actionné dans l’autre sens. Ces quelques éléments stratégiques ne sauraient résoudre certaines tensions fondamentales qui s’expriment dans l’écologisation tardive des idéologies traditionnelles<a href="#_ftn50" name="_ftnref50">[50]</a>. Un travail considérable reste à faire, à la fois pour dépasser certaines impasses auxquelles fait face les mouvements sociaux et écologistes, mais aussi pour sortir l’écologie politique du bourbier politique et conceptuel dans lequel elle se trouve – le développement actuel d’une écologie réactionnaire est probablement le principal indicateur de l’existence de ce bourbier. Quelles que soient nos provenances idéologiques, il n’y a qu’à l’appui de cette restructuration démocratique que nous pourrons nous diriger vers une société écologique, libérée des multiples systèmes sociaux de domination entravant le développement d’une écologie politique.</p>

<p><a href="#_ftnref1" name="_ftn1">[1]</a> Reporterre (2020), <a href="https://reporterre.net/L-epidemie-de-coronavirus-fait-baisser-les-emissions-de-CO2-de-la-Chine-de-25"><em>L’épidémie de coronavirus fait baisser les émissions de CO2 de la Chine de 25 %</em></a></p>

<p><a href="#_ftnref2" name="_ftn2">[2]</a> Up’ Magazine (2020), <a href="https://up-magazine.info/index.php/planete/biodiversite/36483-bonne-nouvelle-pour-la-biodiversite-grace-au-coronavirus/"><em>Bonne nouvelle pour la biodiversité grâce au coronavirus ?</em></a></p>

<p><a href="#_ftnref3" name="_ftn3">[3]</a> Les « <a href="https://www.anses.fr/fr/content/les-coronavirus">coronavirus</a> » étant une famille de virus, il faudrait parler plus précisément de SARS-CoV-2. C’est ce dernier qui provoque chez les humain-es une maladie nommée COVID-19. N’étant pas infectiologue/épidémiologiste, ni même professionnel de santé, je parlerai ici de coronavirus pour désigner le virus (SARS-CoV-2) voire d’épidémie de coronavirus pour désigner l’épidémie de COVID-19 actuellement en cours dans le monde.</p>

<p><a href="#_ftnref4" name="_ftn4">[4]</a> Transmis par les animaux aux humain-es, voir <a href="https://www.cairn.info/revue-cahiers-d-anthropologie-sociale-2012-1-page-25.htm">ici</a>.</p>

<p><a href="#_ftnref5" name="_ftn5">[5]</a> Center for Biological Diversity (2019), <a href="https://biologicaldiversity.org/w/news/press-releases/pangolins-decline-deadly-poaching-continues-red-list-experts-find-2019-12-10/"><em>Pangolins Decline as Deadly Poaching Continues, Red List Experts Find</em></a></p>

<p><a href="#_ftnref6" name="_ftn6">[6]</a> Institut Pasteur (2012), <a href="https://www.pasteur.fr/fr/centre-medical/fiches-maladies/sras"><em>Fiche maladie du SRAS</em></a></p>

<p><a href="#_ftnref7" name="_ftn7">[7]</a> Voir l’explosion en France des recherches sur les soupes de chauve-souris <a href="https://trends.google.fr/trends/explore?q=soupe%20chauve%20souris&amp;geo=FR">via Google Trends</a>.</p>

<p><a href="#_ftnref8" name="_ftn8">[8]</a> Liselotte MAS (2020), <a href="https://observers.france24.com/fr/20200130-intox-chine-soupe-chauve-souris-rumeur-origine-coronavirus"><em>La soupe à la chauve-souris, un plat prisé en Chine ? Autopsie de la rumeur sur l’origine du coronavirus</em></a><em>, </em>Les Observateurs, France 24.</p>

<p><a href="#_ftnref9" name="_ftn9">[9]</a> Julie KERN (2020), <a href="https://www.futura-sciences.com/sante/actualites/coronavirus-coronavirus-mystere-origines-animales-epaissit-79290/"><em>Coronavirus : le mystère de ses origines animales s’épaissit</em></a>, Futura Santé</p>

<p><a href="#_ftnref10" name="_ftn10">[10]</a> Sonia SHAH (2020), <a href="https://www.monde-diplomatique.fr/2020/03/SHAH/61547"><em>Contre les pandémies, l’écologie</em></a></p>

<p><a href="#_ftnref11" name="_ftn11">[11]</a> Margaux MATHIS et Sylvie BRIAND (2019), <a href="https://www.revmed.ch/RMS/2019/RMS-N-649/Le-changement-climatique-les-epidemies-et-l-importancede-la-medecine-des-voyages"><em>Le changement climatique, les épidémies et l’importance de la médecine des voyages</em></a>, Revue Médicale Suisse.</p>

<p><a href="#_ftnref12" name="_ftn12">[12]</a> Malcom FERDINAND (2019), <em>Une écologie décoloniale. Penser l’écologie depuis le monde caribéen,</em> Seuil.</p>

<p><a href="#_ftnref13" name="_ftn13">[13]</a> Andres MALM (2017), « Les origines du capital fossile » in <em>L’anthropocène contre l’histoire</em>, La fabrique.</p>

<p><a href="#_ftnref14" name="_ftn14">[14]</a> Romain FELLI (2016), <em>La grande adaptation. Climat, capitalisme et catastrophe</em>, Seuil.</p>

<p><a href="#_ftnref15" name="_ftn15">[15]</a> Raffaele Alberto VENTURA (2020), <a href="https://legrandcontinent.eu/fr/2020/02/28/coronavrius-paranoia/"><em>Coronavirus, sommes-nous paranoïaques ?</em></a>, Le Grand Continent.</p>

<p><a href="#_ftnref16" name="_ftn16">[16]</a> Sébastien LE BELZIC (2020), <a href="https://www.youtube.com/watch?v=OQD_-2KI244"><em>Coronavirus : la Chine en quarantaine</em></a>, ARTE Reportage.</p>

<p><a href="#_ftnref17" name="_ftn17">[17]</a> Revue Chuang (2020), <a href="http://chuangcn.org/2020/02/social-contagion/"><em>Social Contagion. Microbiological Class War in China</em></a>, traduction française disponible <a href="https://dndf.org/?p=18327">ici</a>.</p>

<p><a href="#_ftnref18" name="_ftn18">[18]</a> C’est désormais l’intégralité du pays qui est confiné.</p>

<p><a href="#_ftnref19" name="_ftn19">[19]</a> L’envolée (2020), <a href="https://lenvolee.net/emeute-et-massacre-a-la-prison-de-modene-suite-aux-mesures-de-confinement-liees-au-covid-19/"><em>Emeute et massacre à la prison de Modène</em></a></p>

<p><a href="#_ftnref20" name="_ftn20">[20]</a> Philippe LAYMARIE (2020), <a href="https://blog.mondediplo.net/le-commandant-macron-declare-la-guerre-au"><em>Le commandant Macron déclare la guerre au coronavirus</em></a>, Défense en ligne.</p>

<p><a href="#_ftnref21" name="_ftn21">[21]</a> Regards (2020), <a href="http://www.regards.fr/la-midinale/article/frederick-keck-il-y-a-un-decalage-entre-la-petitesse-du-virus-et-l-ampleur-des">Entretien avec Frédéric KECK dans La Midinale</a></p>

<p><a href="#_ftnref22" name="_ftn22">[22]</a> Estienne RODARY (2019), <em>L’apartheid et l’animal. Vers une politique de la connectivité</em>, Wildproject.</p>

<p><a href="#_ftnref23" name="_ftn23">[23]</a> Clélia GASQUET-BLANCHARD (2012), <a href="http://geoconfluences.ens-lyon.fr/doc/transv/sante/SanteScient2.htm"><em>Lieux d’émergence et territoires de diffusion de la fièvre hémorragique à virus Ebola au Gabon et en République du Congo</em></a>, Géoconfluences</p>

<p><a href="#_ftnref24" name="_ftn24">[24]</a> Revue Chuang (2020), op. cit. Je reprends ici le titre dans un sens qui n’est pas nécessairement celui qui lui a été donné initialement.</p>

<p><a href="#_ftnref25" name="_ftn25">[25]</a> Florent GUENARD et Philippe SIMAY (2011), <em><a href="https://laviedesidees.fr/Du-risque-a-la-catastrophe.html">Du risque à la catastrophe</a></em>, La Vie des Idées</p>

<p><a href="#_ftnref26" name="_ftn26">[26]</a> Didier TORNY (2012), <a href="https://www.cairn.info/revue-reseaux-2012-1-page-45.html?contenu=article">« De la gestion des risques à la production de la sécurité. L’exemple de la préparation à la pandémie grippale »,</a> <em>Réseaux</em>, vol. 1, n°171, p. 45-66.</p>

<p><a href="#_ftnref27" name="_ftn27">[27]</a> A l’échelle européenne, <a href="https://www.lexpress.fr/actualite/monde/europe/migrants-le-coronavirus-le-pretexte-d-orban-pour-fermer-ses-frontieres_2120216.html">Viktor Orban</a> et <a href="https://www.valeursactuelles.com/politique/coronavirus-le-pen-veut-fermer-les-frontieres-macron-ironise-116555">Marine Le Pen</a> en sont de bons exemples.</p>

<p><a href="#_ftnref28" name="_ftn28">[28]</a> Pierre GILBERT (2020), <a href="https://lvsl.fr/coronavirus-la-demondialisation-ecologique-est-notre-meilleur-antidote/"><em>Coronavirus : la démondialisation écologique est notre meilleur antidote</em></a>, Le Vent Se Lève</p>

<p><a href="#_ftnref29" name="_ftn29">[29]</a> Jean JACOB (1999), <em>Histoire de l’écologie politique</em>, Albin Michel</p>

<p><a href="#_ftnref30" name="_ftn30">[30]</a> Armelle CHOPLIN et Olivier PLIEZ (2019), <em>La mondialisation des pauvres. Loin de Wall Street et de Davos</em>, Seuil.</p>

<p><a href="#_ftnref31" name="_ftn31">[31]</a> Stanislas VASAK et Eric CHAVEROU (2020), <a href="https://www.franceculture.fr/sciences/coronavirus-fermer-les-frontieres-nest-pas-efficace-les-virus-nont-pas-de-passeport"><em>Coronavirus : « Fermer les frontières n’est pas efficace, les virus n’ont pas de passeport ». Entretien avec Antoine Flahault</em></a>, France Culture</p>

<p><a href="#_ftnref32" name="_ftn32">[32]</a> Philippe RAHM (2020), <a href="https://aoc.media/opinion/2020/03/09/coronavirus-ou-le-retour-a-la-normale/"><em>Coronavirus ou le retour à la normale</em></a>, AOC.</p>

<p><a href="#_ftnref33" name="_ftn33">[33]</a> Florence BRETELLE-ESTABLET et Frédéric KECK (2014), <a href="https://journals.openedition.org/extremeorient/327">« Les épidémies entre « Occident » et « Orient »»</a>, <em>Extrême-Orient Extrême-Occident</em>, n°37, p. 5-19.</p>

<p><a href="#_ftnref34" name="_ftn34">[34]</a> Franck Daniel BATASSI (2020), <a href="https://www.237online.com/coronavirus-apeures-les-italiens-fuient-vers-lafrique/?utm_source=dlvr.it&amp;utm_medium=twitter">« Coronavirus : Apeurés, les italiens fuient vers l’Afrique »</a>, <em>237online</em>.</p>

<p><a href="#_ftnref35" name="_ftn35">[35]</a> Jonah Bromwich (2020), <a href="https://www.nytimes.com/2020/03/05/style/the-rich-are-preparing-for-coronavirus-differently.html?action=click&amp;module=Top%20Stories&amp;pgtype=Homepage"><em>The Rich Are Preparing for Coronavirus Differently</em></a>, New York Times</p>

<p><a href="#_ftnref36" name="_ftn36">[36]</a> Voir la carte et les statistiques de l’épidémie <a href="https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6">ici</a>.</p>

<p><a href="#_ftnref37" name="_ftn37">[37]</a> Xavier OLESSA-DARAGON et Fiene Marie KUIJPER (2020), <a href="https://legrandcontinent.eu/fr/2020/03/07/bilan-coronavirus/"><em>Bientôt la phase 3 : un bilan en 10 points sur le Coronavirus</em></a>, Le Grand Continent.</p>

<p><a href="#_ftnref38" name="_ftn38">[38]</a> Emilie MASSEMIN (2020), <a href="https://reporterre.net/Coronavirus-pas-de-panique"><em>Coronavirus, pas de panique !</em></a>, Reporterre</p>

<p><a href="#_ftnref39" name="_ftn39">[39]</a> Chiffres indiqués sur le <a href="https://www.santepubliquefrance.fr/maladies-et-traumatismes/maladies-et-infections-respiratoires/infection-a-coronavirus/articles/infection-au-nouveau-coronavirus-sars-cov-2-covid-19-france-et-monde">site de Santé Publique France</a></p>

<p><a href="#_ftnref40" name="_ftn40">[40]</a> Xavier OLESSA-DARAGON et Fiene Marie KUIJPER (2020), op. cit.</p>

<p><a href="#_ftnref41" name="_ftn41">[41]</a> Laurent LAGROST et Didier PAYEN (2020), <a href="https://www.lequotidiendumedecin.fr/specialites/infectiologie/la-covid-19-est-un-reel-danger-deux-scientifiques-font-le-point-sur-le-coronavirus-sars-cov-2"><em>La Covid-19 est un réel danger !</em></a>, Le Quotidien du Médecin</p>

<p><a href="#_ftnref42" name="_ftn42">[42]</a> Eric TOUSSAINT (2020), <a href="https://www.cadtm.org/Non-le-coronavirus-n-est-pas-le-responsable-de-la-chute-des-cours-boursiers?fbclid=IwAR0ge0TmCHj0lxDTKIy2S5q30LWdtHnNp8CE-TRxw5dKn3j16weMoYiQs4Y"><em>Non, le coronavirus n’est pas le responsable de la chute des cours boursiers,</em></a> CADTM</p>

<p><a href="#_ftnref43" name="_ftn43">[43]</a> Reporterre (2020), <a href="https://reporterre.net/En-pleine-crise-du-coronavirus-les-compagnies-aeriennes-volent-a-vide-pour-ne-pas-perdre?fbclid=IwAR30GdW9z2GieTy-6rHdry_5HXN_Rmxg9gHmY1lq1SSYT7qkAyUcTdo-WG8"><em>En pleine crise du coronavirus, les compagnies aériennes volent à vide pour ne pas « perdre leur place »</em></a></p>

<p><a href="#_ftnref44" name="_ftn44">[44]</a> CNT-SO Disneyland Paris (2020), <a href="https://framasphere.org/p/8859016"><em>Coronavirus DLP</em></a></p>

<p><a href="#_ftnref45" name="_ftn45">[45]</a> Jean ZIN et Jérôme GLEIZES (2005), <em><a href="http://ecorev.org/spip.php?article381">Ecologie, travail et revenu</a></em>, EcoRev.</p>

<p><a href="#_ftnref46" name="_ftn46">[46]</a> André Gorz (1992), « L’écologie politique entre expertocratie et autolimitation » in <em>L’éloge du suffisant</em>, PUF. Disponible en ligne <a href="https://collectiflieuxcommuns.fr/?264-l-ecologie-politique-entre">ici</a>.</p>

<p><a href="#_ftnref47" name="_ftn47">[47]</a> Daniel TANURO (2010), <em>L’impossible capitalisme vert</em>, La Découverte.</p>

<p><a href="#_ftnref48" name="_ftn48">[48]</a> Virginie MARIS (2018), <em>La part sauvage du monde. Penser la nature dans l’Anthropocène</em>, Seuil.</p>

<p><a href="#_ftnref49" name="_ftn49">[49]</a> Timothy MITCHELL (2013), <em>Carbon democracy. Le pouvoir politique à l’ère du pétrole</em>, La Découverte</p>

<p><a href="#_ftnref50" name="_ftn50">[50]</a> Pierre CHARBONNIER (2020), <em>Abondance et liberté. Une histoire environnementale des idées politiques</em>, La Découverte</p>
</article>


<hr>

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

+ 72
- 0
cache/2020/58117f5865002118d6769cb0a7aa9786/index.md View File

title: L’épidémie n’a pas de vertus
url: https://perspectives-printanieres.info/index.php/2020/03/10/lepidemie-na-pas-de-vertus/
hash_url: 58117f5865002118d6769cb0a7aa9786

<p>Si l’on en croit la multiplication des analyses médiatiques allant dans ce sens dernièrement, l’épidémie de COVID-19 serait bonne pour la planète. Le principal bénéfice écologique évoqué se rapporte à la baisse d’1/4 des émissions chinoises de CO<sub>2</sub> sur les deux derniers mois<a href="#_ftn1" name="_ftnref1">[1]</a>, dont les effets positifs sont évidemment climatiques mais aussi sanitaires. L’intérêt autour de cette réduction de la pollution émise par la deuxième puissance mondiale a notamment été renforcé par des images satellites de la NASA illustrant très nettement le phénomène.  Quelques articles plus rares mentionnent quant à eux les effets positifs pour la biodiversité de la très récente interdiction par la Chine du commerce et de la consommation d’animaux sauvages<a href="#_ftn2" name="_ftnref2">[2]</a>. Malgré ces éléments qui semblent univoques, voir des bénéfices pour la planète dans l’épidémie en cours n’est en aucun cas un positionnement écologiste. Revenir aux conditions sociales de la production de l’épidémie ainsi qu’aux principales propositions écologistes permet de s’en convaincre. Il y a assurément une grande différence entre considérer que l’épidémie de coronavirus est en elle-même écologiquement positive et tirer (ou plutôt confirmer) des enseignements écologistes à partir des effets économiques de celle-ci.</p>
<h4>La production de l’épidémie</h4>
<p>Les origines exactes du coronavirus<a href="#_ftn3" name="_ftnref3">[3]</a> restent encore largement indéterminées. Toutefois son caractère zoonotique<a href="#_ftn4" name="_ftnref4">[4]</a> ouvre la voie à de nombreux discours sur le virus en lui-même ou sur l’épidémie y étant associé – la principale préoccupation étant de déterminer l’animal porteur du virus, qui aurait pu le transmettre aux humain-es. Aux débuts de l’épidémie, un marché de Wuhan – capitale de la province chinoise du Hubei, dont l’agglomération compte plus de 11 millions d’habitant-es – était au cœur de l’attention, puisque c’est là qu’aurait eu lieu la première transmission du coronavirus aux humain-es. L’animal rapidement considéré dans l’espace médiatique comme porteur du pathogène était la chauve-souris. Cette piste n’ayant pas été rapidement confirmée, d’autres espèces animales ont rapidement été évoquées comme potentielles sources de la transmission du virus aux humain-es, comme le serpent ou, plus probablement, le pangolin – l’espèce la plus braconnée au monde<a href="#_ftn5" name="_ftnref5">[5]</a>. Ces animaux font partie des multiples espèces sauvages qui transitent par le marché de Wuhan, d’où l’intérêt qui leur est porté ces dernières semaines. L’épidémie de SRAS du début des années 2000 – 800 victimes entre 2002 et 2003<a href="#_ftn6" name="_ftnref6">[6]</a> – est évidemment dans tous les esprits, puisqu’à l’époque, le porteur animal du virus était la civette, un petit mammifère également braconné et échangé sur les marchés chinois. Pékin a d’ailleurs strictement interdit son commerce à la suite de l’épidémie, laissant supposer que les transactions de pangolins et/ou chauve-souris pourraient également être définitivement interdites dans le pays.</p>
<p>Le caractère « sauvage » de ces animaux (potentiellement) porteurs du virus est absolument central, puisque c’est précisément ce sur quoi rebondissent nombre de discours politiques (mais qui ne le sont pas toujours explicitement) liés au coronavirus, qu’ils se présentent ou non comme écologistes. La consommation de ces animaux n’étant pas répandue en France, les réactions racistes envers les personnes et cultures asiatiques se sont multipliées sur les réseaux sociaux. Rapidement, ce ne sont plus seulement les animaux cuisinés qui sont considérés comme sauvages mais aussi les personnes qui les mangent. D’abord, ce sont les pratiques gastronomiques qui sont ciblées, des occidentaux ridiculisant des plats traditionnels chinois<a href="#_ftn7" name="_ftnref7">[7]</a>, souvent au recours d’intox et de manipulations<a href="#_ftn8" name="_ftnref8">[8]</a>. Cette concentration sur les pratiques culinaires chinoises n’est que le symptôme de la dimension raciste de l’hygiénisme avec lequel les occidentaux traitent le reste du monde. Mais rapidement, les actes discriminatoires et humiliations envers les personnes asiatiques se sont multipliés, par exemple dans les transports en commun. Nombre d’entre elles ont exprimé leur colère avec le hashtag <a href="https://twitter.com/search?q=%23JeNeSuisPasUnVirus&amp;src=typeahead_click"><strong><em>#JeNeSuisPasUnVirus</em></strong></a> sur twitter ainsi qu’à travers de nombreuses interventions télévisées. Cette recrudescence de racisme n’épargna pas le champ médiatique, puisque le quotidien régional Le Courrier Picard titrait « Alerte jaune » en une, le 26 janvier dernier. La lecture raciste de l’épidémie qui s’est construite en Occident s’est ainsi prolongée jusque dans les réponses des puissances occidentales, qui ont étudié les bénéfices d’une fermeture totale des frontières.</p>
<p>L’indétermination<a href="#_ftn9" name="_ftnref9">[9]</a> autour des conditions de la première transmission de ce dernier aux humain-es nourrit une perception de l’épidémie comme « naturelle » : le coronavirus était bien présent quelque part sur la planète, qu’il soit un jour transmis aux humain-es n’était alors qu’une question de temps (c’est-à-dire le temps que le virus arrive jusqu’à nous), conférant ainsi à l’épidémie en cours un caractère inéluctable. Cette présentation simpliste d’une origine « naturelle » de l’épidémie en cours pose évidemment de multiples problèmes. Tout d’abord, elle occulte complètement les processus biogéographiques à l’œuvre derrière l’accroissement d’émergence des épidémies : la destruction des biotopes. Devant la disparition de leurs habitats, nombre d’espèces sont en effet contraintes de se déplacer vers de nouveaux espaces, où elles se trouvent confrontées à de nouveaux agents infectieux. Si la plupart du temps, ces animaux deviennent de simples porteurs sains de ces virus, la destruction des habitats multiplie également les points de contact entre les humain-es et ces espèces condamnées à l’errance<a href="#_ftn10" name="_ftnref10">[10]</a>. L’artificialisation des sols apparaît dès lors directement responsable de l’accroissement récent des épidémies, puisqu’elle ouvre des porteurs animaux à de nouveaux pathogènes jusque-là isolés et augmente les possibles contaminations zoonotiques vers les humain-es. A cela s’ajoute le réchauffement global du climat qui accroît lui aussi les risques épidémiologiques : les dérèglements climatiques sont extrêmement propices à l’expansion virologique<a href="#_ftn11" name="_ftnref11">[11]</a>. L’intensification des précipitations, l’aggravation des sècheresses ou la destruction d’installations sanitaires par des catastrophes climatiques plus nombreuses sont autant d’effets secondaires du changement climatique qui favorisent l’accroissement du nombre d’épidémies ces dernières années.</p>
<p>Toutefois ce détour utile par la biogéographie n’est pas suffisant, les conditions sociales de ce grignotage par artificialisation des biotopes doivent elles aussi être explicitées – sinon, deux risques surviennent, celui de retomber dans une schématisation simpliste d’une société arrachée à la nature et désormais en conflit avec elle, le virus redevenant « naturel », et celui d’une homogénéisation de la société et des dominations sociales la structurant. L’anthropisation accélérée des sols est un symptôme tardif d’un « habiter colonial »<a href="#_ftn12" name="_ftnref12">[12]</a> de la Terre, imposé par l’Occident au reste du monde. Celui-ci se fonde sur 3 principes : la subordination géographique d’un espace à un autre, l’exploitation des terres de l’espace nouvellement approprié et la possibilité pour d’autres d’y habiter rendue impossible – 3 principes auxquels tout-e écologiste ne peut que s’opposer. Les intrications du changement climatique et des mécanismes capitalistes sont quant à elles largement documentées, depuis la constitution de l’économie fossile elle-même<a href="#_ftn13" name="_ftnref13">[13]</a> jusqu’à la promotion de politiques climatiques adaptationnistes par les élites néolibérales<a href="#_ftn14" name="_ftnref14">[14]</a>. L’épidémie n’est donc en rien « naturelle », vierge de toute implication humaine, mais relève bien de dynamiques fondamentalement politiques ayant trait à l’organisation sociale des sociétés modernes.</p>
<p>Enfin, la gestion répressive de la propagation du virus est elle aussi à considérer pour déconstruire l’épidémie comme « régulation naturelle ». Principale réponse apportée à l’épidémie, il faut ici essayer de détricoter les différents usages politiques du confinement. Le recours à celui-ci semble inévitable, toutes les études épidémiologiques le préconisent. Mais les conditions précises de sa mise en œuvre sont beaucoup moins consensuelles, comme en témoignent les positions divergentes entre les expert-es qui trouvent qu’on en fait trop et celleux qui trouvent que l’on en fait pas assez<a href="#_ftn15" name="_ftnref15">[15]</a>. Plusieurs grandes puissances se sont alors lancées dans un strict confinement de leurs habitant-es. Première touchée, la Chine a mis en place un système répressif extrêmement sévère, en transformant l’appareil bureaucratique du Parti Communiste Chinois en véritable police anti-épidémie : les membres des comités de quartier du PCC contrôlent les moindres allers et venues des habitant-es qui souhaitent passer les barrières dressées entre provinces, communes, quartiers et pâtés de maisons<a href="#_ftn16" name="_ftnref16">[16]</a>. Les mesures systématiques de température à l’entrée de nombreux bâtiments ne sont qu’un exemple parmi de nombreux autres du fort contrôle social exercé par l’appareil sécuritaire chinois sur la population des régions infectées. Pékin compte d’ailleurs sur la dimension humanitaire – « il faut lutter contre l’épidémie » – pour se garantir le soutien (d’au moins une partie) de la population locale<a href="#_ftn17" name="_ftnref17">[17]</a>.  En Italie, pays européen le plus touché par l’épidémie de COVID-19, le gouvernement a récemment mis en place le confinement de près de 15 millions de personnes (environ 1/3 de la population italienne), dans 11 provinces du nord du pays<a href="#_ftn18" name="_ftnref18">[18]</a>, au sein desquelles la police et l’armée auront semble-t-il toute latitude pour interroger les personnes sur les motivations de leurs déplacements. En réaction à l’interdiction des visites en prison et aux faibles mesures de protection des prisonniers vis-à-vis de l’épidémie, des mutineries ont éclaté dans le sud du pays<a href="#_ftn19" name="_ftnref19">[19]</a>, à l’issue desquelles 10 d’entre eux furent assassinés.  En France, le caractère martial du confinement est presque explicitement établi<a href="#_ftn20" name="_ftnref20">[20]</a>, puisque c’est un « conseil de défense » qu’a mis en place Emmanuel Macron pour mener la « guerre » face au virus. Cette problématisation de l’épidémie comme « guerre » est une construction politique, qui visible un ennemi invisible (le virus), permettant ainsi de justifier par l’urgence des mesures anti-démocratiques exceptionnelles en matière de sécurité<a href="#_ftn21" name="_ftnref21">[21]</a> – peut-on par exemple craindre un état d’urgence justifié par la menace que représente le coronavirus ?</p>
<p>Le confinement procède donc par contrôle spatial : la segmentation de l’espace est imposée verticalement par les autorités, qui entendent encadrer les moindres faits et gestes de la population selon ce qui leur semble nécessaire (au vu des intérêts qu’elles défendent et disent défendre). Un tel contrôle spatial – que l’on peut imaginer être un jour étendu aux relations entre humain-es et espèces sauvages en prévision des futures épidémies, si nous ne sortons pas de ce modèle – a une longue histoire coloniale, puisque découper l’espace qu’elles s’étaient approprié permit aux puissances impériales occidentales de contrôler les populations sous leur domination, jusque dans leurs interactions avec d’autres groupes sociaux ou avec des espèces sauvages<a href="#_ftn22" name="_ftnref22">[22]</a>. La gestion chinoise de l’épidémie donne froid dans le dos puisqu’elle rappelle ce contrôle colonial déshumanisé des masses, déjà reproduit par l’aide médicale internationale pour l’épidémie d’Ebola<a href="#_ftn23" name="_ftnref23">[23]</a>. Mais la maladie se propageant essentiellement par « contagion sociale »<a href="#_ftn24" name="_ftnref24">[24]</a>, ce sont toutes les relations sociales qu’il faudrait encadrer, en isolant indistinctement tous les individus. Les limites du confinement apparaissent ici clairement : toute la population ne peut être simultanément confinée, même pendant une courte période. Une certaine fraction de la société devra continuer à circuler pour assurer certains besoins fondamentaux du reste de la communauté (certain-es parlent de « vie minimale », d’« activités essentielles » ou d’« activités utiles à la nation », ces différentes appellations traduisant des visées politiques sensiblement différentes), comme l’alimentation et la santé – nous sommes toujours en contexte d’épidémie. Les appareils étatiques des grandes puissances s’épuisent donc à mettre en place un confinement toujours plus strict, adossé à un discours sécuritaire toujours plus verrouillé. Si rendre parfaitement hermétique le confinement est impossible, renoncer à toute forme de confinement serait aussi inefficace qu’un durcissement de la répression. La prévention des risques est évidemment nécessaire, mais sa forme étatique, acquise à la quantification mais peu sensible aux conditions sociales<a href="#_ftn25" name="_ftnref25">[25]</a>, ne peut aboutir qu’à une gestion autoritaire de l’épidémie – la relative désinvolture avec laquelle le gouvernement français a d’abord traité l’épidémie par rapport à d’autres pays peut s’expliquer par une approche singulière du risque pandémique<a href="#_ftn26" name="_ftnref26">[26]</a>, mais force est de constater qu’il a désormais adapté la même méthode répressive.</p>
<p>Par un glissement scalaire ahurissant, certain-es proposent pourtant sans sourciller de passer la logique répressive de confinement au niveau national en réclamant une fermeture des frontières, réactivant par là même les réflexes nationalistes de celles et ceux qui n’attendaient que ça pour en profiter politiquement<a href="#_ftn27" name="_ftnref27">[27]</a>. Qu’importe si une telle mesure aggraverait la situation sanitaire en bloquant la circulation de matériel de santé ou de nombreuses denrées alimentaires. La proposition d’une « démondialisation écologique »<a href="#_ftn28" name="_ftnref28">[28]</a> projette en quelque sorte cette idée sur le plus long terme en réintroduisant la lutte contre les épidémies dans un projet politique à coloration écologiste, mais orienté vers un fantasme protectionniste bien éloigné des principes libertaires et internationalistes qui fondent l’écologie politique depuis les années 70<a href="#_ftn29" name="_ftnref29">[29]</a>. Promouvoir une « démondialisation », c’est refuser de voir la mondialisation comme un processus profondément ambivalent sur les plans politique et écologique. Les grandes typologies de « gagnant-es » et « perdant-es » de la mondialisation qui inspirent les raisonnements à la source de la proposition de démondialisation passent systématiquement à côté de cette ambivalence fondamentale<a href="#_ftn30" name="_ftnref30">[30]</a>. Le repli nationaliste auquel appellent certain-es pour répondre à l’épidémie provoquée par le coronavirus ignore de plus les multiples études pointant l’innocuité des frontières nationales pour endiguer l’expansion géographique de la maladie : il faudrait que celles-ci soient complètement hermétiques, à la manière d’un confinement hospitalier (bien que ceux-ci ne soient finalement pas si imperméables), une opération évidemment impossible à réaliser. Les études épidémiologiques<a href="#_ftn31" name="_ftnref31">[31]</a>, s’appuyant sur des modélisations mathématiques, ont en effet démontré l’inefficacité de la fermeture des frontières pour empêcher un virus d’entrer sur le territoire.</p>
<p>Cette lecture spatiale multiscalaire de l’épidémie liée au coronavirus indique que les écologistes ne peuvent nullement se satisfaire des soi-disant bénéfices écologiques associés à la propagation du virus. Au contraire, son émergence et sa diffusion elles-mêmes sont le résultat de politiques anti-écologiques qui s’accumulent depuis des décennies, au détriment des écosystèmes et aujourd’hui des humain-es. La réponse actuelle à l’épidémie n’est que la continuité de ces politiques.</p>
<h4>Malthusianisme, panique et écologie politique</h4>
<p>Dans la continuité de cette thématisation des épidémies comme pathologies sociales, les tendances (néo)malthusiennes de la présentation de l’épidémie liée au coronavirus comme « régulation naturelle » (ou de « retour à la normale »<a href="#_ftn32" name="_ftnref32">[32]</a>) sont assez flagrantes : chez Malthus, c’est la famine qui vient inévitablement corriger le décalage entre croissances démographique et des ressources disponibles (la première étant plus rapide que la seconde) ; ici c’est l’épidémie qui joue ce rôle, régulant cette fois le développement des activités humaines face aux capacités de charge – ou limites – de la planète. L’analogie se confirme lorsque l’on s’intéresse plus en détail aux populations touchées par ces « régulations naturelles » : les pauvres chez Malthus, ou plus généralement les dominé-es – pauvres et racisé-es – dans les théories néomalthusiennes, tandis que les plus touché-es par l’épidémie due au coronavirus sont pour l’heure majoritairement chinois-es – environ 80% des personnes infectées. Cet imaginaire flirtant avec le malthusianisme s’est nourri de la constitution des épidémies en Asie comme objet d’étude privilégié de la médecine occidentale<a href="#_ftn33" name="_ftnref33">[33]</a>. Cette lecture du traitement global des épidémies comme héritage du colonialisme s’illustre par de nombreux exemples, comme ces occidentaux qui fuient littéralement les pays européens infectés vers des pays du Sud, sans subir aucun contrôle alors qu’ils transportent le virus avec eux<a href="#_ftn34" name="_ftnref34">[34]</a>. Les chiffres ne l’illustrent pas (encore) mais l’on pouvait légitimement s’en douter : au sein d’un même pays, riches et pauvres ne disposent pas des mêmes moyens pour faire face à l’épidémie<a href="#_ftn35" name="_ftnref35">[35]</a> – comme à toute catastrophe d’ailleurs. Dans certains pays du Nord largement infectés comme la France, un robuste système de santé socialisé permet à une part importante des personnes gravement malades du COVID-19 d’être hospitalisées – bien que le système public de santé soit en plein démantèlement. Les plus pauvres d’autres pays comme les Etats-Unis ne bénéficient pas d’un tel système, et se trouvent donc particulièrement exposées à l’épidémie. Les pays du Sud semblent pour l’heure relativement épargnés par la diffusion du coronavirus<a href="#_ftn36" name="_ftnref36">[36]</a>. Toutefois, cette asymétrie peut s’expliquer par les systèmes de santé beaucoup plus parcellaires, instables et inégalitaires dont disposent ces pays, rendus dépendants des interventions humanitaires occidentales en cas de catastrophe sanitaire. Les tests de dépistage y sont de fait beaucoup moins fréquents, laissant supposer que l’épidémie est dans ces pays bien plus importante que les chiffres ne le laissent penser – l’exemple égyptien est à ce titre assez frappant. Pour se représenter les choses, revenir à la situation française peut être éclairant : sur 1500 cas officiels, l’on trouve 1 ministre, plusieurs député-es, les PDG de plusieurs grandes entreprises et institutions, etc… La surreprésentation de ces cas (les seuls sur lesquels on s’attarde individuellement d’ailleurs) par rapport au reste de la population n’est que le reflet de la stratégie française de ne pas tester la présence du virus chez tous les cas potentiels, la systématisation de ces tests restant semble-t-il réservée à une certaine fraction de la population seulement – ses élites. En France, on peut légitimement supposer que le nombre de cas est bien supérieur à celui officiellement annoncé. Dans des pays du Sud déstabilisés par l’ingérence occidentale, les mêmes effets de minimisation statistique à cause du faible nombre de tests effectués ne peuvent être qu’encore plus importants<a href="#_ftn37" name="_ftnref37">[37]</a>.</p>
<p>Ce que les discours minimisant les dangers du coronavirus occultent, c’est la fragilité des systèmes publics de santé, soumis – quand ils existent encore – depuis de nombreuses années aux pressions du secteur privé. Les échanges entre professionnel-les de santé et le président de la République au début de l’épidémie en France ont particulièrement bien représenté ces impacts directs du démantèlement organisé de la sécurité sociale. Plutôt que de reconnaître les dégâts des dernières politiques en matière de santé, qui ne peuvent plus accueillir dignement toutes celles et tous ceux estimant en avoir besoin, les autorités multiplient les incitations à ne pas se rendre aux urgences, sauf en cas de graves symptômes susceptibles d’être dus au coronavirus. La responsabilité initialement collective du traitement de l’épidémie devient dès lors individuelle, reléguant dans l’irrationalisme celles et ceux qui s’inquiètent légitimement de peut-être avoir été contaminé-es.</p>
<p>Les argumentaires fustigeant celles et ceux qui cèdent à la « panique [ou à la psychose] »<a href="#_ftn38" name="_ftnref38">[38]</a> provoquée par l’épidémie sont probablement encore plus nombreux que ceux pointant ses effets écologiques positifs. La simultanéité de ces deux stratégies argumentatives informe sur les raisons pour lesquelles présenter l’épidémie comme écologiquement bénéfique est particulièrement malvenu : des gens sont morts de la même cause que celle de ces « bénéfices écologiques » – près de 4000 lors de l’écriture de cet article<a href="#_ftn39" name="_ftnref39">[39]</a>. Ce simple fait interdit de se reposer sur des événements comme des épidémies pour avancer politiquement sur les questions écologiques. Pour les personnes en bonne santé, le coronavirus est presque sans gravité, à peine plus virulent qu’une banale grippe. Aucune raison de paniquer nous dit-on, puisque seules les personnes fragiles risquent quelque chose du COVID-19<a href="#_ftn40" name="_ftnref40">[40]</a> – ici les vieux et les vieilles, puisque c’est comme tel-les que le mépris à leur égard nous conduit à les nommer, ainsi que toutes les personnes immunodéficientes. Le nombre de décès imputés au coronavirus est ainsi généralement ramené à celui du nombre de décès de la grippe saisonnière : en chiffres absolus, le second paraît énorme par rapport au premier, alors que le taux de mortalité du coronavirus est semble-t-il 20 à 25 fois plus élevé que celui de la grippe saisonnière<a href="#_ftn41" name="_ftnref41">[41]</a>.  Toutes les familles avec des personnes fragiles n’ont presque plus en tête toutes les précautions relatives aux infections courantes qu’elles prennent tant celles-ci sont devenues automatiques durant l’hiver. Prendre de nouvelles précautions relatives à l’épidémie de COVID-19 procède dès lors par la même logique que celle de la couverture vaccinale : on ne se protège pas seulement soi, mais également les autres. S’inquiéter de l’émergence d’une nouvelle épidémie avec une léthalité accrue ne relève donc pas de la panique, simplement d’une vigilance accrue quant à de potentiels nouveaux risques. Ladite panique, ce sont davantage les médias sensationnalistes qui la construisent et l’entretiennent, en inondant leurs audiences d’informations en tous genre sur l’évolution de l’épidémie. Les personnes interviewées dans les journaux télévisés semblent d’ailleurs aborder la situation avec une relative sérénité, surtout lorsque l’on sort leurs témoignages des récits journalistes au sein desquels ils sont intégrés. Cette asymétrie est le fruit d’une rupture de classes : ce sont les capitalistes qui paniquent de voir leurs profits entamés par l’épidémie en cours. La concentration médiatique autour de ce thème a évidemment pour objectif d’empêcher tout ralentissement de l’activité économique, qui leur serait temporairement défavorable.</p>
<p>Temporaire, la baisse des émissions suite à l’épidémie l’est aussi puisqu’elle n’a évidemment aucun effet à long terme : si tôt l’épidémie terminée (voire avant), les émissions reviendront à leur niveau précédent et reprendront leur progression. Son seul effet aura été de légèrement retarder la progression des émissions – une baisse d’1/4 des émissions chinoises, importante pour un pays aux engagements climatiques extrêmement réduits, mais encore bien loin de ce que l’on peut espérer dans une trajectoire écologiste. Ce ralentissement de l’économie à cause de l’épidémie – à la fois craint pour ses aspects financiers et loué pour ses aspects environnementaux – est d’ailleurs bien plus réduit que la présentation choquée dans les médias le laisse penser. D’abord parce que la chute des cours boursiers entièrement imputée au coronavirus passe sous silence tous les signes de mauvaise santé des marchés financiers ces derniers mois, bien avant l’émergence du coronavirus<a href="#_ftn42" name="_ftnref42">[42]</a>. Mais aussi, le ralentissement des grandes multinationales n’est pas aussi ralenti que ne le laisse présager les médias. Les compagnies aériennes européennes préfèrent par exemple faire voler leurs avions à vide afin de conserver leurs créneaux horaires<a href="#_ftn43" name="_ftnref43">[43]</a>, puisque leur perte augmenterait les pertes déjà importantes du secteur. Dans un tout autre domaine, le parc d’attractions Disneyland Paris reste ouvert normalement<a href="#_ftn44" name="_ftnref44">[44]</a>, exposant les salarié-es aux mêmes risques de contamination que ceux des rassemblements de plus de 1000 personnes, désormais interdits sur le territoire. Ces exemples ne sont certainement pas isolés : des usines continuent probablement de tourner même en manquant de personnel, surexploitant dès lors les travailleur-ses toujours en poste. Cette supposition relève peut-être du procès d’intention, mais les exemples du secteur aérien et de Disneyland Paris ne montrent-ils pas que les capitalistes sont prêts à tout pour garantir leurs marges, à court, à moyen comme à long terme ?</p>
<p>Souligner le caractère répressif du confinement et du calcul des risques tels qu’ils sont employés par les gouvernements de la plupart des pays infectés doit déboucher sur des propositions pour une autre gestion, écologiste, des épidémies (futures – parce que pour celle-ci, il semble que ce soit trop tard). Pour des pathogènes proches de ceux déjà étudiés, le recours au confinement ne semble en effet pas pouvoir être évité. Toutefois des services publics de santé robustes car correctement financés, un système productif démocratique libéré des objectifs capitalistes dans lequel le travail n’est plus le centre obligé de nos vies et une sortie de l’approche étatique de la prévention des risques font partie des éléments indispensables pour que le confinement ne prenne pas une tournure répressive comme c’est le cas actuellement. La bonne santé de la structure hospitalière est une évidence sur laquelle beaucoup sont déjà revenus, du dépistage efficace de la maladie à l’hospitalisation de toutes les personnes le nécessitant. Le travail étant un lieu privilégié de socialisation pour une grande partie de la population, généraliser la possibilité de ne pas s’y rendre devrait être l’action prioritaire – c’est autre chose qu’un confinement pour les suspections de contamination. Cette mesure est absolument impensable dans une économie capitaliste, seule une réorganisation démocratique de la production serait en mesure de la permettre. Cette réflexion sur la place du travail dans la société est une constante dans le cheminement théorique tracé par l’écologie politique<a href="#_ftn45" name="_ftnref45">[45]</a>. Ce projet démocratique s’opposant frontalement à la logique d’expertise qui s’est constituée dans les dernières décennies<a href="#_ftn46" name="_ftnref46">[46]</a>, il impacterait probablement le paradigme autoritaire de la gestion étatique des catastrophes : la nécessaire planification des risques ne peut faire l’économie du social, dont l’incorporation dans l’analyse chamboulerait toute l’organisation martiale de la réponse aux catastrophes – climatiques, industrielles, sanitaires etc. Ces propositions non-exhaustives s’inscrivent tout autant dans une orientation écologiste que celles qui entendent limiter l’émergence de nouveaux virus à l’avenir.</p>
<p>Des « bénéfices » écologiques évoqués ces derniers jours, des enseignements écologistes peuvent néanmoins être tirés. Tout d’abord, retarder l’émergence de nouveaux virus s’ajoute à la longue liste d’arguments pour stopper la destruction des milieux « sauvages ». Les écologistes ne peuvent ainsi vanter les très maigres maigres effets écologiques de l’épidémie puisque ceux-ci sont le résultat d’une trajectoire écocidaire des sociétés. C’est bien cette orientation générale qu’il faut infléchir, voire renverser. Ce n’est un secret pour personne : la réduction des émissions de CO2 en Chine n’est pas directement corrélée à la diffusion du coronavirus lui-même, mais bien à la baisse de l’activité productive du pays que la maladie qu’il provoque a entraînée, c’est-à-dire directement aux corps contaminés. Si les capitalistes n’avaient pas besoin d’humain-es et de leurs corps pour poursuivre leurs objectifs de profits, la propagation du virus n’aurait a priori pas d’effets économiques (du point de vue de la production), donc pas d’effets climatiques. L’impossibilité de fonctionnement du capitalisme quand les corps qu’il soumet ne sont plus fonctionnels (au sens capitaliste) révèle le darwinisme social sur lequel il s’appuie en permanence. Rappeler ces éléments semble extrêmement futile, alors que cela permet d’empiéter sur les récits hégémoniques qui gomment consciemment certains enjeux politiques fondamentaux de l’épidémie. Cette réintroduction de la dimension humaine dans la production de biens et services éclaire ce qu’il faut entraver si l’on se soucie vraiment de la « planète » : les intérêts du capitalisme fossile et de l’habiter colonial de la Terre qu’il perpétue. Ainsi, plutôt que de se reposer sur des épidémies qui viendraient « naturellement » réguler le développement des sociétés, il ne reste plus qu’à trouver d’autres moyens pour reproduire ce blocage tout en épargnant les humain-es !</p>
<p>Ces moyens ne sont évidemment plus à « trouver » puisqu’ils font déjà l’objet d’une vaste littérature discutant à la fois leurs aspects théoriques et stratégiques. Du côté théorique, les multiples propositions décroissantes offrent autant de pistes vers une société écologique. Mais toutes ne s’appuient pas sur les mêmes arguments politiques et n’auront pas les mêmes effets sociaux : articuler la nécessaire décroissance énergétique à un projet social ambitieux reste le principal défi qui nous attend<a href="#_ftn47" name="_ftnref47">[47]</a>. Une réflexion peut également être menée sur le « sauvage » au sens de ce sur quoi les sociétés humaines se gardent d’avoir la main<a href="#_ftn48" name="_ftnref48">[48]</a> : comment se tenir à l’écart de certains écosystèmes, notamment pour limiter l’émergence de nouveaux virus, sans tomber dans la logique coloniale dans laquelle se sont construits la majorité des espaces protégés ? La schématisation simpliste du problème comme sociétés luttant contre la nature est inopérante pour penser la cohabitation entre les sociétés humaines et les espèces habitant les mêmes milieux qu’elles. Du côté pratique, la grève ou plus généralement le sabotage offrent autant de prises à une réappropriation par les travailleur-ses du processus de production. Le secteur énergétique, particulièrement critique dans le contexte climatique actuel, pourrait de nouveau jouer le rôle de levier démocratique qu’il a eu lors de l’hégémonie énergétique du charbon<a href="#_ftn49" name="_ftnref49">[49]</a>, et que le choc de l’arrivée du pétrole a ensuite actionné dans l’autre sens. Ces quelques éléments stratégiques ne sauraient résoudre certaines tensions fondamentales qui s’expriment dans l’écologisation tardive des idéologies traditionnelles<a href="#_ftn50" name="_ftnref50">[50]</a>. Un travail considérable reste à faire, à la fois pour dépasser certaines impasses auxquelles fait face les mouvements sociaux et écologistes, mais aussi pour sortir l’écologie politique du bourbier politique et conceptuel dans lequel elle se trouve – le développement actuel d’une écologie réactionnaire est probablement le principal indicateur de l’existence de ce bourbier. Quelles que soient nos provenances idéologiques, il n’y a qu’à l’appui de cette restructuration démocratique que nous pourrons nous diriger vers une société écologique, libérée des multiples systèmes sociaux de domination entravant le développement d’une écologie politique.</p>
<p><a href="#_ftnref1" name="_ftn1">[1]</a> Reporterre (2020), <a href="https://reporterre.net/L-epidemie-de-coronavirus-fait-baisser-les-emissions-de-CO2-de-la-Chine-de-25"><em>L’épidémie de coronavirus fait baisser les émissions de CO2 de la Chine de 25 %</em></a></p>
<p><a href="#_ftnref2" name="_ftn2">[2]</a> Up’ Magazine (2020), <a href="https://up-magazine.info/index.php/planete/biodiversite/36483-bonne-nouvelle-pour-la-biodiversite-grace-au-coronavirus/"><em>Bonne nouvelle pour la biodiversité grâce au coronavirus ?</em></a></p>
<p><a href="#_ftnref3" name="_ftn3">[3]</a> Les « <a href="https://www.anses.fr/fr/content/les-coronavirus">coronavirus</a> » étant une famille de virus, il faudrait parler plus précisément de SARS-CoV-2. C’est ce dernier qui provoque chez les humain-es une maladie nommée COVID-19. N’étant pas infectiologue/épidémiologiste, ni même professionnel de santé, je parlerai ici de coronavirus pour désigner le virus (SARS-CoV-2) voire d’épidémie de coronavirus pour désigner l’épidémie de COVID-19 actuellement en cours dans le monde.</p>
<p><a href="#_ftnref4" name="_ftn4">[4]</a> Transmis par les animaux aux humain-es, voir <a href="https://www.cairn.info/revue-cahiers-d-anthropologie-sociale-2012-1-page-25.htm">ici</a>.</p>
<p><a href="#_ftnref5" name="_ftn5">[5]</a> Center for Biological Diversity (2019), <a href="https://biologicaldiversity.org/w/news/press-releases/pangolins-decline-deadly-poaching-continues-red-list-experts-find-2019-12-10/"><em>Pangolins Decline as Deadly Poaching Continues, Red List Experts Find</em></a></p>
<p><a href="#_ftnref6" name="_ftn6">[6]</a> Institut Pasteur (2012), <a href="https://www.pasteur.fr/fr/centre-medical/fiches-maladies/sras"><em>Fiche maladie du SRAS</em></a></p>
<p><a href="#_ftnref7" name="_ftn7">[7]</a> Voir l’explosion en France des recherches sur les soupes de chauve-souris <a href="https://trends.google.fr/trends/explore?q=soupe%20chauve%20souris&amp;geo=FR">via Google Trends</a>.</p>
<p><a href="#_ftnref8" name="_ftn8">[8]</a> Liselotte MAS (2020), <a href="https://observers.france24.com/fr/20200130-intox-chine-soupe-chauve-souris-rumeur-origine-coronavirus"><em>La soupe à la chauve-souris, un plat prisé en Chine ? Autopsie de la rumeur sur l’origine du coronavirus</em></a><em>, </em>Les Observateurs, France 24.</p>
<p><a href="#_ftnref9" name="_ftn9">[9]</a> Julie KERN (2020), <a href="https://www.futura-sciences.com/sante/actualites/coronavirus-coronavirus-mystere-origines-animales-epaissit-79290/"><em>Coronavirus : le mystère de ses origines animales s’épaissit</em></a>, Futura Santé</p>
<p><a href="#_ftnref10" name="_ftn10">[10]</a> Sonia SHAH (2020), <a href="https://www.monde-diplomatique.fr/2020/03/SHAH/61547"><em>Contre les pandémies, l’écologie</em></a></p>
<p><a href="#_ftnref11" name="_ftn11">[11]</a> Margaux MATHIS et Sylvie BRIAND (2019), <a href="https://www.revmed.ch/RMS/2019/RMS-N-649/Le-changement-climatique-les-epidemies-et-l-importancede-la-medecine-des-voyages"><em>Le changement climatique, les épidémies et l’importance de la médecine des voyages</em></a>, Revue Médicale Suisse.</p>
<p><a href="#_ftnref12" name="_ftn12">[12]</a> Malcom FERDINAND (2019), <em>Une écologie décoloniale. Penser l’écologie depuis le monde caribéen,</em> Seuil.</p>
<p><a href="#_ftnref13" name="_ftn13">[13]</a> Andres MALM (2017), « Les origines du capital fossile » in <em>L’anthropocène contre l’histoire</em>, La fabrique.</p>
<p><a href="#_ftnref14" name="_ftn14">[14]</a> Romain FELLI (2016), <em>La grande adaptation. Climat, capitalisme et catastrophe</em>, Seuil.</p>
<p><a href="#_ftnref15" name="_ftn15">[15]</a> Raffaele Alberto VENTURA (2020), <a href="https://legrandcontinent.eu/fr/2020/02/28/coronavrius-paranoia/"><em>Coronavirus, sommes-nous paranoïaques ?</em></a>, Le Grand Continent.</p>
<p><a href="#_ftnref16" name="_ftn16">[16]</a> Sébastien LE BELZIC (2020), <a href="https://www.youtube.com/watch?v=OQD_-2KI244"><em>Coronavirus : la Chine en quarantaine</em></a>, ARTE Reportage.</p>
<p><a href="#_ftnref17" name="_ftn17">[17]</a> Revue Chuang (2020), <a href="http://chuangcn.org/2020/02/social-contagion/"><em>Social Contagion. Microbiological Class War in China</em></a>, traduction française disponible <a href="https://dndf.org/?p=18327">ici</a>.</p>
<p><a href="#_ftnref18" name="_ftn18">[18]</a> C’est désormais l’intégralité du pays qui est confiné.</p>
<p><a href="#_ftnref19" name="_ftn19">[19]</a> L’envolée (2020), <a href="https://lenvolee.net/emeute-et-massacre-a-la-prison-de-modene-suite-aux-mesures-de-confinement-liees-au-covid-19/"><em>Emeute et massacre à la prison de Modène</em></a></p>
<p><a href="#_ftnref20" name="_ftn20">[20]</a> Philippe LAYMARIE (2020), <a href="https://blog.mondediplo.net/le-commandant-macron-declare-la-guerre-au"><em>Le commandant Macron déclare la guerre au coronavirus</em></a>, Défense en ligne.</p>
<p><a href="#_ftnref21" name="_ftn21">[21]</a> Regards (2020), <a href="http://www.regards.fr/la-midinale/article/frederick-keck-il-y-a-un-decalage-entre-la-petitesse-du-virus-et-l-ampleur-des">Entretien avec Frédéric KECK dans La Midinale</a></p>
<p><a href="#_ftnref22" name="_ftn22">[22]</a> Estienne RODARY (2019), <em>L’apartheid et l’animal. Vers une politique de la connectivité</em>, Wildproject.</p>
<p><a href="#_ftnref23" name="_ftn23">[23]</a> Clélia GASQUET-BLANCHARD (2012), <a href="http://geoconfluences.ens-lyon.fr/doc/transv/sante/SanteScient2.htm"><em>Lieux d’émergence et territoires de diffusion de la fièvre hémorragique à virus Ebola au Gabon et en République du Congo</em></a>, Géoconfluences</p>
<p><a href="#_ftnref24" name="_ftn24">[24]</a> Revue Chuang (2020), op. cit. Je reprends ici le titre dans un sens qui n’est pas nécessairement celui qui lui a été donné initialement.</p>
<p><a href="#_ftnref25" name="_ftn25">[25]</a> Florent GUENARD et Philippe SIMAY (2011), <em><a href="https://laviedesidees.fr/Du-risque-a-la-catastrophe.html">Du risque à la catastrophe</a></em>, La Vie des Idées</p>
<p><a href="#_ftnref26" name="_ftn26">[26]</a> Didier TORNY (2012), <a href="https://www.cairn.info/revue-reseaux-2012-1-page-45.html?contenu=article">« De la gestion des risques à la production de la sécurité. L’exemple de la préparation à la pandémie grippale »,</a> <em>Réseaux</em>, vol. 1, n°171, p. 45-66.</p>
<p><a href="#_ftnref27" name="_ftn27">[27]</a> A l’échelle européenne, <a href="https://www.lexpress.fr/actualite/monde/europe/migrants-le-coronavirus-le-pretexte-d-orban-pour-fermer-ses-frontieres_2120216.html">Viktor Orban</a> et <a href="https://www.valeursactuelles.com/politique/coronavirus-le-pen-veut-fermer-les-frontieres-macron-ironise-116555">Marine Le Pen</a> en sont de bons exemples.</p>
<p><a href="#_ftnref28" name="_ftn28">[28]</a> Pierre GILBERT (2020), <a href="https://lvsl.fr/coronavirus-la-demondialisation-ecologique-est-notre-meilleur-antidote/"><em>Coronavirus : la démondialisation écologique est notre meilleur antidote</em></a>, Le Vent Se Lève</p>
<p><a href="#_ftnref29" name="_ftn29">[29]</a> Jean JACOB (1999), <em>Histoire de l’écologie politique</em>, Albin Michel</p>
<p><a href="#_ftnref30" name="_ftn30">[30]</a> Armelle CHOPLIN et Olivier PLIEZ (2019), <em>La mondialisation des pauvres. Loin de Wall Street et de Davos</em>, Seuil.</p>
<p><a href="#_ftnref31" name="_ftn31">[31]</a> Stanislas VASAK et Eric CHAVEROU (2020), <a href="https://www.franceculture.fr/sciences/coronavirus-fermer-les-frontieres-nest-pas-efficace-les-virus-nont-pas-de-passeport"><em>Coronavirus : « Fermer les frontières n’est pas efficace, les virus n’ont pas de passeport ». Entretien avec Antoine Flahault</em></a>, France Culture</p>
<p><a href="#_ftnref32" name="_ftn32">[32]</a> Philippe RAHM (2020), <a href="https://aoc.media/opinion/2020/03/09/coronavirus-ou-le-retour-a-la-normale/"><em>Coronavirus ou le retour à la normale</em></a>, AOC.</p>
<p><a href="#_ftnref33" name="_ftn33">[33]</a> Florence BRETELLE-ESTABLET et Frédéric KECK (2014), <a href="https://journals.openedition.org/extremeorient/327">« Les épidémies entre « Occident » et « Orient »»</a>, <em>Extrême-Orient Extrême-Occident</em>, n°37, p. 5-19.</p>
<p><a href="#_ftnref34" name="_ftn34">[34]</a> Franck Daniel BATASSI (2020), <a href="https://www.237online.com/coronavirus-apeures-les-italiens-fuient-vers-lafrique/?utm_source=dlvr.it&amp;utm_medium=twitter">« Coronavirus : Apeurés, les italiens fuient vers l’Afrique »</a>, <em>237online</em>.</p>
<p><a href="#_ftnref35" name="_ftn35">[35]</a> Jonah Bromwich (2020), <a href="https://www.nytimes.com/2020/03/05/style/the-rich-are-preparing-for-coronavirus-differently.html?action=click&amp;module=Top%20Stories&amp;pgtype=Homepage"><em>The Rich Are Preparing for Coronavirus Differently</em></a>, New York Times</p>
<p><a href="#_ftnref36" name="_ftn36">[36]</a> Voir la carte et les statistiques de l’épidémie <a href="https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6">ici</a>.</p>
<p><a href="#_ftnref37" name="_ftn37">[37]</a> Xavier OLESSA-DARAGON et Fiene Marie KUIJPER (2020), <a href="https://legrandcontinent.eu/fr/2020/03/07/bilan-coronavirus/"><em>Bientôt la phase 3 : un bilan en 10 points sur le Coronavirus</em></a>, Le Grand Continent.</p>
<p><a href="#_ftnref38" name="_ftn38">[38]</a> Emilie MASSEMIN (2020), <a href="https://reporterre.net/Coronavirus-pas-de-panique"><em>Coronavirus, pas de panique !</em></a>, Reporterre</p>
<p><a href="#_ftnref39" name="_ftn39">[39]</a> Chiffres indiqués sur le <a href="https://www.santepubliquefrance.fr/maladies-et-traumatismes/maladies-et-infections-respiratoires/infection-a-coronavirus/articles/infection-au-nouveau-coronavirus-sars-cov-2-covid-19-france-et-monde">site de Santé Publique France</a></p>
<p><a href="#_ftnref40" name="_ftn40">[40]</a> Xavier OLESSA-DARAGON et Fiene Marie KUIJPER (2020), op. cit.</p>
<p><a href="#_ftnref41" name="_ftn41">[41]</a> Laurent LAGROST et Didier PAYEN (2020), <a href="https://www.lequotidiendumedecin.fr/specialites/infectiologie/la-covid-19-est-un-reel-danger-deux-scientifiques-font-le-point-sur-le-coronavirus-sars-cov-2"><em>La Covid-19 est un réel danger !</em></a>, Le Quotidien du Médecin</p>
<p><a href="#_ftnref42" name="_ftn42">[42]</a> Eric TOUSSAINT (2020), <a href="https://www.cadtm.org/Non-le-coronavirus-n-est-pas-le-responsable-de-la-chute-des-cours-boursiers?fbclid=IwAR0ge0TmCHj0lxDTKIy2S5q30LWdtHnNp8CE-TRxw5dKn3j16weMoYiQs4Y"><em>Non, le coronavirus n’est pas le responsable de la chute des cours boursiers,</em></a> CADTM</p>
<p><a href="#_ftnref43" name="_ftn43">[43]</a> Reporterre (2020), <a href="https://reporterre.net/En-pleine-crise-du-coronavirus-les-compagnies-aeriennes-volent-a-vide-pour-ne-pas-perdre?fbclid=IwAR30GdW9z2GieTy-6rHdry_5HXN_Rmxg9gHmY1lq1SSYT7qkAyUcTdo-WG8"><em>En pleine crise du coronavirus, les compagnies aériennes volent à vide pour ne pas « perdre leur place »</em></a></p>
<p><a href="#_ftnref44" name="_ftn44">[44]</a> CNT-SO Disneyland Paris (2020), <a href="https://framasphere.org/p/8859016"><em>Coronavirus DLP</em></a></p>
<p><a href="#_ftnref45" name="_ftn45">[45]</a> Jean ZIN et Jérôme GLEIZES (2005), <em><a href="http://ecorev.org/spip.php?article381">Ecologie, travail et revenu</a></em>, EcoRev.</p>
<p><a href="#_ftnref46" name="_ftn46">[46]</a> André Gorz (1992), « L’écologie politique entre expertocratie et autolimitation » in <em>L’éloge du suffisant</em>, PUF. Disponible en ligne <a href="https://collectiflieuxcommuns.fr/?264-l-ecologie-politique-entre">ici</a>.</p>
<p><a href="#_ftnref47" name="_ftn47">[47]</a> Daniel TANURO (2010), <em>L’impossible capitalisme vert</em>, La Découverte.</p>
<p><a href="#_ftnref48" name="_ftn48">[48]</a> Virginie MARIS (2018), <em>La part sauvage du monde. Penser la nature dans l’Anthropocène</em>, Seuil.</p>
<p><a href="#_ftnref49" name="_ftn49">[49]</a> Timothy MITCHELL (2013), <em>Carbon democracy. Le pouvoir politique à l’ère du pétrole</em>, La Découverte</p>
<p><a href="#_ftnref50" name="_ftn50">[50]</a> Pierre CHARBONNIER (2020), <em>Abondance et liberté. Une histoire environnementale des idées politiques</em>, La Découverte</p>

+ 267
- 0
cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://mcfunley.com/choose-boring-technology">

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

<article>
<h1>Choose Boring Technology</h1>
<h2><a href="https://mcfunley.com/choose-boring-technology">Source originale du contenu</a></h2>
<p>Probably the single best thing to happen to me in my career was having had <a href="http://laughingmeme.org/">Kellan</a> placed in charge of me. I stuck around long enough to see Kellan’s technical decisionmaking start to bear fruit. I learned a great deal <em>from</em> this, but I also learned a great deal as a <em>result</em> of this. I would not have been free to become the engineer that wrote <a href="/data-driven-products-lean-startup-2014">Data Driven Products Now!</a> if Kellan had not been there to so thoroughly stick the landing on technology choices.</p>

<figure>
<img src="http://i.imgur.com/FRQKLCy.jpg"/>
<figcaption>Being inspirational as always.</figcaption>
</figure>

<p>In the year since leaving Etsy, I’ve resurrected my ability to care about technology. And my thoughts have crystallized to the point where I can write them down coherently. What follows is a distillation of the Kellan gestalt, which will hopefully serve to horrify him only slightly.</p>

<h5 id="embrace-boredom">Embrace Boredom.</h5>

<p>Let’s say every company gets about three innovation tokens. You can spend these however you want, but the supply is fixed for a long while. You might get a few more <em>after</em> you achieve a <a href="http://rc3.org/2015/03/24/the-pleasure-of-building-big-things/">certain level of stability and maturity</a>, but the general tendency is to overestimate the contents of your wallet. Clearly this model is approximate, but I think it helps.</p>

<p>If you choose to write your website in NodeJS, you just spent one of your innovation tokens. If you choose to use <a href="/why-mongodb-never-worked-out-at-etsy">MongoDB</a>, you just spent one of your innovation tokens. If you choose to use <a href="https://consul.io/">service discovery tech that’s existed for a year or less</a>, you just spent one of your innovation tokens. If you choose to write your own database, oh god, you’re in trouble.</p>

<p>Any of those choices might be sensible if you’re a javascript consultancy, or a database company. But you’re probably not. You’re probably working for a company that is at least ostensibly <a href="https://www.etsy.com">rethinking global commerce</a> or <a href="https://stripe.com">reinventing payments on the web</a> or pursuing some other suitably epic mission. In that context, devoting any of your limited attention to innovating ssh is an excellent way to fail. Or at best, delay success .</p>

<p>What counts as boring? That’s a little tricky. “Boring” should not be conflated with “bad.” There is technology out there that is both boring and bad <a ref="#f2" href="#f2">[2]</a>. You should not use any of that. But there are many choices of technology that are boring and good, or at least good enough. MySQL is boring. Postgres is boring. PHP is boring. Python is boring. Memcached is boring. Squid is boring. Cron is boring.</p>

<p>The nice thing about boringness (so constrained) is that the capabilities of these things are well understood. But more importantly, their failure modes are well understood. Anyone who knows me well will understand that it’s only with a overwhelming sense of malaise that I now invoke the spectre of Don Rumsfeld, but I must.</p>

<figure>
<img src="http://i.imgur.com/n8ElWr3.jpg"/>
<figcaption>To be clear, fuck this guy.</figcaption>
</figure>

<p>When choosing technology, you have both known unknowns and unknown unknowns .</p>

<ul>
<li>A known unknown is something like: <em>we don’t know what happens when this database hits 100% CPU.</em></li>
<li>An unknown unknown is something like: <em>geez it didn’t even occur to us that <a href="http://www.evanjones.ca/jvm-mmap-pause.html">writing stats would cause GC pauses</a>.</em></li>
</ul>

<p>Both sets are typically non-empty, even for tech that’s existed for decades. But for shiny new technology the magnitude of unknown unknowns is significantly larger, and this is important.</p>

<h5 id="optimize-globally">Optimize Globally.</h5>

<p>I unapologetically think a bias in favor of boring technology is a good thing, but it’s not the only factor that needs to be considered. Technology choices don’t happen in isolation. They have a scope that touches your entire team, organization, and the system that emerges from the sum total of your choices.</p>

<p>Adding technology to your company comes with a cost. As an abstract statement this is obvious: if we’re already using Ruby, adding Python to the mix doesn’t feel sensible because the resulting complexity would outweigh Python’s marginal utility. But somehow when we’re talking about Python and Scala or MySQL and Redis people <a href="http://martinfowler.com/bliki/PolyglotPersistence.html">lose their minds</a>, discard all constraints, and start raving about using the best tool for the job.</p>

<p><a href="https://twitter.com/coda/status/580531932393504768">Your function in a nutshell</a> is to map business problems onto a solution space that involves choices of software. If the choices of software were truly without baggage, you could indeed pick a whole mess of locally-the-best tools for your assortment of problems.</p>

<figure>
<svg viewbox="0 0 423 420" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">

<title>Crazy</title>
<desc>Created with Sketch.</desc>
<defs/>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="Crazy" sketch:type="MSLayerGroup" transform="translate(1.000000, -4.000000)">
<ellipse id="Solutions" stroke="#979797" sketch:type="MSShapeGroup" cx="341.5" cy="229.5" rx="79.5" ry="193.5"/>
<ellipse id="Problems" stroke="#979797" sketch:type="MSShapeGroup" cx="79.5" cy="229.5" rx="79.5" ry="193.5"/>
<g id="arrows" transform="translate(45.000000, 77.000000)" stroke="#D0011B" stroke-width="3" fill="#D0011B" stroke-linecap="square">
<path d="M19.5,26.5 L255.502121,26.5" id="Line" sketch:type="MSShapeGroup"/>
<path id="Line-decoration-1" d="M255.5,26.5 C251.72,25.45 248.48,24.55 244.7,23.5 C244.7,25.6 244.7,27.4 244.7,29.5 C248.48,28.45 251.72,27.55 255.5,26.5 C255.5,26.5 255.5,26.5 255.5,26.5 Z"/>
<path d="M19.5,26.5 L245.5,84.5" id="Line-2" sketch:type="MSShapeGroup"/>
<path id="Line-2-decoration-1" d="M245.186355,84.419507 C241.786016,82.4628271 238.87144,80.7856729 235.471101,78.8289931 C234.94908,80.8630761 234.501633,82.6065758 233.979612,84.6406589 C237.901972,84.5632557 241.263995,84.4969101 245.186355,84.419507 C245.186355,84.419507 245.186355,84.419507 245.186355,84.419507 Z"/>
<path d="M19.5,26.5 L299.5,0.5" id="Line-3" sketch:type="MSShapeGroup"/>
<path id="Line-3-decoration-1" d="M299.296324,0.518912741 C295.435434,-0.177093062 292.126099,-0.773669465 288.265208,-1.46967527 C288.459373,0.621329291 288.6258,2.41361891 288.819965,4.50462347 C292.486691,3.10962472 295.629598,1.9139115 299.296324,0.518912741 C299.296324,0.518912741 299.296324,0.518912741 299.296324,0.518912741 Z"/>
<path d="M19.5,26.5 L255.502121,26.5" id="Line-4" sketch:type="MSShapeGroup"/>
<path id="Line-4-decoration-1" d="M255.5,26.5 C251.72,25.45 248.48,24.55 244.7,23.5 C244.7,25.6 244.7,27.4 244.7,29.5 C248.48,28.45 251.72,27.55 255.5,26.5 C255.5,26.5 255.5,26.5 255.5,26.5 Z"/>
<path d="M63.5,79.5 L256.5,34.5" id="Line-5" sketch:type="MSShapeGroup"/>
<path id="Line-5-decoration-1" d="M256.327927,34.5401208 C252.408243,34.3758734 249.048513,34.2350899 245.128829,34.0708426 C245.605677,36.1159872 246.014403,37.8689684 246.49125,39.9141131 C249.934087,38.0332157 252.88509,36.4210181 256.327927,34.5401208 C256.327927,34.5401208 256.327927,34.5401208 256.327927,34.5401208 Z"/>
<path d="M63.5,79.5 L301.5,116.5" id="Line-6" sketch:type="MSShapeGroup"/>
<path id="Line-6-decoration-1" d="M300.651315,116.368062 C297.077479,114.749853 294.014192,113.362816 290.440356,111.744607 C290.117761,113.819681 289.84125,115.598316 289.518655,117.67339 C293.415086,117.216525 296.754884,116.824927 300.651315,116.368062 C300.651315,116.368062 300.651315,116.368062 300.651315,116.368062 Z"/>
<path d="M63.5,79.5 L254.5,209.5" id="Line-7" sketch:type="MSShapeGroup"/>
<path id="Line-7-decoration-1" d="M254.464216,209.475644 C251.930146,206.480751 249.758085,203.9137 247.224014,200.918806 C246.042418,202.654845 245.02962,204.142878 243.848024,205.878916 C247.563691,207.137771 250.748549,208.216789 254.464216,209.475644 C254.464216,209.475644 254.464216,209.475644 254.464216,209.475644 Z"/>
<path d="M0.5,115.5 L251.5,216.5" id="Line-8" sketch:type="MSShapeGroup"/>
<path id="Line-8-decoration-1" d="M250.981706,216.291443 C247.866929,213.906268 245.19712,211.861831 242.082342,209.476656 C241.298409,211.424847 240.626466,213.094725 239.842533,215.042916 C243.741243,215.4799 247.082995,215.854459 250.981706,216.291443 C250.981706,216.291443 250.981706,216.291443 250.981706,216.291443 Z"/>
<path d="M54.5,176.5 L300.5,193.5" id="Line-10" sketch:type="MSShapeGroup"/>
<path id="Line-10-decoration-1" d="M299.914697,193.459552 C296.216079,192.151452 293.045835,191.030224 289.347217,189.722124 C289.202441,191.817128 289.078346,193.612845 288.93357,195.707849 C292.776964,194.920945 296.071303,194.246456 299.914697,193.459552 C299.914697,193.459552 299.914697,193.459552 299.914697,193.459552 Z"/>
<path d="M54.5,176.5 L288.5,273.5" id="Line-11" sketch:type="MSShapeGroup"/>
<path id="Line-11-decoration-1" d="M288.215373,273.382013 C285.125578,270.964562 282.477183,268.892461 279.387389,266.47501 C278.58323,268.41494 277.89395,270.077737 277.089791,272.017667 C280.983745,272.495188 284.321419,272.904492 288.215373,273.382013 C288.215373,273.382013 288.215373,273.382013 288.215373,273.382013 Z"/>
<path d="M11.5,231.5 L287.5,283.5" id="Line-12" sketch:type="MSShapeGroup"/>
<path id="Line-12-decoration-1" d="M286.658962,283.341544 C283.138722,281.609837 280.121373,280.125516 276.601133,278.393809 C276.212321,280.457502 275.879054,282.226381 275.490243,284.290073 C279.399294,283.958088 282.74991,283.673529 286.658962,283.341544 C286.658962,283.341544 286.658962,283.341544 286.658962,283.341544 Z"/>
<path d="M11.5,231.5 L249.5,223.5" id="Line-13" sketch:type="MSShapeGroup"/>
<path id="Line-13-decoration-1" d="M249.36566,223.504516 C245.552519,222.582095 242.284113,221.79145 238.470973,220.869029 C238.541521,222.967844 238.601991,224.766828 238.67254,226.865643 C242.415132,225.689248 245.623068,224.68091 249.36566,223.504516 C249.36566,223.504516 249.36566,223.504516 249.36566,223.504516 Z"/>
<path d="M0.5,115.5 L248.5,156.5" id="Line-9" sketch:type="MSShapeGroup"/>
<path id="Line-9-decoration-1" d="M248.138638,156.440259 C244.580524,154.78777 241.530711,153.371351 237.972596,151.718862 C237.630068,153.790739 237.336473,155.566633 236.993945,157.63851 C240.894588,157.219122 244.237996,156.859647 248.138638,156.440259 C248.138638,156.440259 248.138638,156.440259 248.138638,156.440259 Z"/>
</g>
<g id="problems" transform="translate(33.000000, 91.000000)" stroke="#979797" fill="#4990E2" sketch:type="MSShapeGroup">
<circle id="Oval-3" cx="30" cy="14" r="14"/>
<circle id="Oval-4" cx="74" cy="66" r="14"/>
<circle id="Oval-5" cx="14" cy="103" r="14"/>
<circle id="Oval-6" cx="64" cy="163" r="14"/>
<circle id="Oval-7" cx="23" cy="219" r="14"/>
</g>
<g id="Solutions" transform="translate(293.000000, 68.000000)" stroke="#979797" fill="#7ED321" sketch:type="MSShapeGroup">
<circle id="Oval-8" cx="26" cy="37" r="14"/>
<circle id="Oval-9" cx="74" cy="69" r="14"/>
<circle id="Oval-10" cx="14" cy="99" r="14"/>
<circle id="Oval-11" cx="71" cy="129" r="14"/>
<circle id="Oval-12" cx="18" cy="168" r="14"/>
<circle id="Oval-13" cx="71" cy="205" r="14"/>
<circle id="Oval-14" cx="22" cy="229" r="14"/>
<circle id="Oval-15" cx="66" cy="14" r="14"/>
<circle id="Oval-16" cx="58" cy="289" r="14"/>
</g>
<text id="Problems" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="43" y="18">Problems</tspan>
</text>
<text id="Technical-Solutions" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="262" y="18">Technical Solutions</tspan>
</text>
</g>
</g>
</svg>
<figcaption class="text-center">The way you might choose technology in a world where choices are cheap: "pick the right tool for the job."</figcaption>
</figure>

<p>But of course, the baggage exists. We call the baggage “operations” and to a lesser extent “cognitive overhead.” You have to monitor the thing. You have to figure out unit tests. You need to know the first thing about it to hack on it. You need an init script. I could go on for days here, and all of this adds up fast.</p>

<figure>
<svg viewbox="0 0 423 420" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">

<title>Sane</title>
<desc>Created with Sketch.</desc>
<defs/>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="Sane" sketch:type="MSLayerGroup" transform="translate(1.000000, -4.000000)">
<ellipse id="Solutions-3" stroke="#979797" sketch:type="MSShapeGroup" cx="341.5" cy="229.5" rx="79.5" ry="193.5"/>
<ellipse id="Problems-2" stroke="#979797" sketch:type="MSShapeGroup" cx="79.5" cy="229.5" rx="79.5" ry="193.5"/>
<g id="arrows" transform="translate(51.000000, 102.000000)" stroke="#D0011B" stroke-width="3" fill="#D0011B" stroke-linecap="square">
<path d="M13.5,1.5 L249.5,1.5" id="Line-14" sketch:type="MSShapeGroup"/>
<path id="Line-14-decoration-1" d="M249.5,1.5 C245.72,0.45 242.48,-0.45 238.7,-1.5 C238.7,0.6 238.7,2.4 238.7,4.5 C242.48,3.45 245.72,2.55 249.5,1.5 C249.5,1.5 249.5,1.5 249.5,1.5 Z"/>
<path d="M13.5,1.5 L248.5,120.5" id="Line-15" sketch:type="MSShapeGroup"/>
<path id="Line-15-decoration-1" d="M248.132239,120.313772 C245.23431,117.669362 242.75037,115.402724 239.852441,112.758314 C238.903738,114.631803 238.090564,116.237651 237.141861,118.111141 C240.988493,118.882062 244.285607,119.542851 248.132239,120.313772 C248.132239,120.313772 248.132239,120.313772 248.132239,120.313772 Z"/>
<path d="M57.5,54.5 L249.5,8.5" id="Line-17" sketch:type="MSShapeGroup"/>
<path id="Line-17-decoration-1" d="M249.078398,8.6010088 C245.157787,8.46060711 241.797264,8.34026282 237.876654,8.19986114 C238.365932,10.2420674 238.785314,11.9925299 239.274592,14.0347362 C242.705924,12.1329316 245.647066,10.5028134 249.078398,8.6010088 C249.078398,8.6010088 249.078398,8.6010088 249.078398,8.6010088 Z"/>
<path d="M0.5,92.5 L240.5,137.5" id="Line-20" sketch:type="MSShapeGroup"/>
<path id="Line-20-decoration-1" d="M240.320814,137.466403 C236.79906,135.737776 233.780414,134.256096 230.25866,132.52747 C229.871654,134.591501 229.539934,136.360671 229.152928,138.424703 C233.061688,138.089298 236.412054,137.801808 240.320814,137.466403 C240.320814,137.466403 240.320814,137.466403 240.320814,137.466403 Z"/>
<path d="M57.5,52.5 L242.5,129.5" id="Line-18" sketch:type="MSShapeGroup"/>
<path id="Line-18-decoration-1" d="M242.1449,129.352202 C239.058585,126.930309 236.413173,124.854402 233.326858,122.432509 C232.51991,124.371281 231.828241,126.033085 231.021292,127.971856 C234.914555,128.454977 238.251637,128.869081 242.1449,129.352202 C242.1449,129.352202 242.1449,129.352202 242.1449,129.352202 Z"/>
<path d="M13.5,1.5 L248.5,183.5" id="Line-16" sketch:type="MSShapeGroup"/>
<path id="Line-16-decoration-1" d="M248.313733,183.355742 C245.968119,180.211065 243.957592,177.515627 241.611978,174.37095 C240.32613,176.031249 239.223974,177.454363 237.938125,179.114662 C241.569588,180.59904 244.68227,181.871364 248.313733,183.355742 C248.313733,183.355742 248.313733,183.355742 248.313733,183.355742 Z"/>
<path d="M0.5,92.5 L253.5,15.5" id="Line-19" sketch:type="MSShapeGroup"/>
<path id="Line-19-decoration-1" d="M253.061904,15.6333334 C249.139957,15.7294168 245.778289,15.8117739 241.856342,15.9078572 C242.467781,17.9168724 242.991872,19.6388854 243.603311,21.6479005 C246.913819,19.542802 249.751397,17.7384319 253.061904,15.6333334 C253.061904,15.6333334 253.061904,15.6333334 253.061904,15.6333334 Z"/>
<path d="M0.5,92.5 L244.5,191.5" id="Line-21" sketch:type="MSShapeGroup"/>
<path id="Line-21-decoration-1" d="M244.204221,191.379991 C241.09632,188.985863 238.432405,186.933753 235.324504,184.539624 C234.534968,186.485551 233.858223,188.153489 233.068687,190.099416 C236.966124,190.547618 240.306784,190.93179 244.204221,191.379991 C244.204221,191.379991 244.204221,191.379991 244.204221,191.379991 Z"/>
<path d="M49.5,150.5 L258.5,19.5" id="Line-22" sketch:type="MSShapeGroup"/>
<path id="Line-22-decoration-1" d="M257.939322,19.8514296 C254.178828,20.9692764 250.955547,21.9274308 247.195052,23.0452775 C248.310345,24.8246376 249.26631,26.3498034 250.381603,28.1291635 C253.026805,25.2319566 255.29412,22.7486365 257.939322,19.8514296 C257.939322,19.8514296 257.939322,19.8514296 257.939322,19.8514296 Z"/>
<path d="M3.5,207.5 L265.5,22.5" id="Line-23" sketch:type="MSShapeGroup"/>
<path id="Line-23-decoration-1" d="M264.902063,22.9222075 C261.208605,24.2448071 258.042784,25.378464 254.349327,26.7010636 C255.560618,28.4165147 256.598868,29.8869013 257.81016,31.6023523 C260.292326,28.5643016 262.419897,25.9602582 264.902063,22.9222075 C264.902063,22.9222075 264.902063,22.9222075 264.902063,22.9222075 Z"/>
<path d="M3.5,207.5 L243.5,147.5" id="Line-24" sketch:type="MSShapeGroup"/>
<path id="Line-24-decoration-1" d="M243.125198,147.593701 C239.203396,147.491836 235.841853,147.404523 231.920052,147.302658 C232.429376,149.339957 232.865941,151.086214 233.375265,153.123513 C236.787742,151.188079 239.712721,149.529135 243.125198,147.593701 C243.125198,147.593701 243.125198,147.593701 243.125198,147.593701 Z"/>
<path d="M3.5,207.5 L244.5,201.5" id="Line-25" sketch:type="MSShapeGroup"/>
<path id="Line-25-decoration-1" d="M244.425346,201.501859 C240.620384,200.546263 237.358988,199.72718 233.554026,198.771584 C233.606292,200.870934 233.651091,202.670376 233.703357,204.769726 C237.456053,203.625972 240.67265,202.645612 244.425346,201.501859 C244.425346,201.501859 244.425346,201.501859 244.425346,201.501859 Z"/>
</g>
<g id="problems-2" transform="translate(33.000000, 91.000000)" stroke="#979797" fill="#4990E2" sketch:type="MSShapeGroup">
<circle id="Oval-3" cx="30" cy="14" r="14"/>
<circle id="Oval-4" cx="74" cy="66" r="14"/>
<circle id="Oval-5" cx="14" cy="103" r="14"/>
<circle id="Oval-6" cx="64" cy="163" r="14"/>
<circle id="Oval-7" cx="23" cy="219" r="14"/>
</g>
<g id="Solutions-2" transform="translate(293.000000, 68.000000)" stroke="#979797" fill="#7ED321" sketch:type="MSShapeGroup">
<circle id="Oval-8" cx="26" cy="37" r="14"/>
<circle id="Oval-9" cx="74" cy="69" r="14"/>
<circle id="Oval-10" cx="14" cy="99" r="14"/>
<circle id="Oval-11" cx="71" cy="129" r="14"/>
<circle id="Oval-12" cx="18" cy="168" r="14"/>
<circle id="Oval-13" cx="71" cy="205" r="14"/>
<circle id="Oval-14" cx="22" cy="229" r="14"/>
<circle id="Oval-15" cx="66" cy="14" r="14"/>
<circle id="Oval-16" cx="58" cy="289" r="14"/>
</g>
<text id="Problems-3" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="43" y="18">Problems</tspan>
</text>
<text id="Technical-Solutions-2" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="262" y="18">Technical Solutions</tspan>
</text>
</g>
</g>
</svg>
<figcaption class="text-center">The way you choose technology in the world where operations are a serious concern (i.e., "reality"). </figcaption>
</figure>

<p>The problem with “best tool for the job” thinking is that it takes a myopic view of the words “best” and “job.” Your job is keeping the company in business, god damn it. And the “best” tool is the one that occupies the “least worst” position for as many of your problems as possible.</p>

<p>It is basically always the case that the long-term costs of keeping a system working reliably vastly exceed any inconveniences you encounter while building it. Mature and productive developers understand this.</p>

<h5 id="choose-new-technology-sometimes">Choose New Technology, Sometimes.</h5>

<p>Taking this reasoning to its <em>reductio ad absurdum</em> would mean picking Java, and then trying to implement a website without using anything else at all. And that would be crazy. You need some means to add things to your toolbox.</p>

<p>An important first step is to acknowledge that this is a process, and a conversation. New tech eventually has company-wide effects, so adding tech is a decision that requires company-wide visibility. Your organizational specifics may force the conversation, or <a href="https://twitter.com/mcfunley/status/578603932949164032">they may facilitate developers adding new databases and queues without talking to anyone</a>. One way or another you have to set cultural expectations that <strong>this is something we all talk about</strong>.</p>

<p>One of the most worthwhile exercises I recommend here is to <strong>consider how you would solve your immediate problem without adding anything new</strong>. First, posing this question should detect the situation where the “problem” is that someone really wants to use the technology. If that is the case, you should immediately abort.</p>

<figure>
<img src="http://i.imgur.com/rmdSx.gif"/>
<figcaption>I just watched a webinar about this graph database, we should try it out.</figcaption>
</figure>

<p>It can be amazing how far a small set of technology choices can go. The answer to this question in practice is almost never “we can’t do it,” it’s usually just somewhere on the spectrum of “well, we could do it, but it would be too hard” . If you think you can’t accomplish your goals with what you’ve got now, you are probably just not thinking creatively enough.</p>

<p>It’s helpful to <strong>write down exactly what it is about the current stack that makes solving the problem prohibitively expensive and difficult.</strong> This is related to the previous exercise, but it’s subtly different.</p>

<p>New technology choices might be purely additive (for example: “we don’t have caching yet, so let’s add memcached”). But they might also overlap or replace things you are already using. If that’s the case, you should <strong>set clear expectations about migrating old functionality to the new system.</strong> The policy should typically be “we’re committed to migrating,” with a proposed timeline. The intention of this step is to keep wreckage at manageable levels, and to avoid proliferating locally-optimal solutions.</p>

<p>This process is not daunting, and it’s not much of a hassle. It’s a handful of questions to fill out as homework, followed by a meeting to talk about it. I think that if a new technology (or a new service to be created on your infrastructure) can pass through this gauntlet unscathed, adding it is fine.</p>

<h5 id="just-ship">Just Ship.</h5>

<p>Polyglot programming is sold with the promise that letting developers choose their own tools with complete freedom will make them more effective at solving problems. This is a naive definition of the problems at best, and motivated reasoning at worst. The weight of day-to-day operational <a href="https://twitter.com/handler">toil</a> this creates crushes you to death.</p>

<p>Mindful choice of technology gives engineering minds real freedom: the freedom to <a href="/effective-web-experimentation-as-a-homo-narrans">contemplate bigger questions</a>. Technology for its own sake is snake oil.</p>

<p><em>Update, July 27th 2015: I wrote a talk based on this article. You can see it <a href="http://boringtechnology.club">here</a>.</em></p>
</article>


<hr>

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

+ 212
- 0
cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/index.md View File

title: Choose Boring Technology
url: https://mcfunley.com/choose-boring-technology
hash_url: 6723325d9229f986f6b77cc5ff6d3ef2

<p>Probably the single best thing to happen to me in my career was having had <a href="http://laughingmeme.org/">Kellan</a> placed in charge of me. I stuck around long enough to see Kellan’s technical decisionmaking start to bear fruit. I learned a great deal <em>from</em> this, but I also learned a great deal as a <em>result</em> of this. I would not have been free to become the engineer that wrote <a href="/data-driven-products-lean-startup-2014">Data Driven Products Now!</a> if Kellan had not been there to so thoroughly stick the landing on technology choices.</p>

<figure>
<img src="http://i.imgur.com/FRQKLCy.jpg"/>
<figcaption>Being inspirational as always.</figcaption>
</figure>

<p>In the year since leaving Etsy, I’ve resurrected my ability to care about technology. And my thoughts have crystallized to the point where I can write them down coherently. What follows is a distillation of the Kellan gestalt, which will hopefully serve to horrify him only slightly.</p>

<h5 id="embrace-boredom">Embrace Boredom.</h5>
<p>Let’s say every company gets about three innovation tokens. You can spend these however you want, but the supply is fixed for a long while. You might get a few more <em>after</em> you achieve a <a href="http://rc3.org/2015/03/24/the-pleasure-of-building-big-things/">certain level of stability and maturity</a>, but the general tendency is to overestimate the contents of your wallet. Clearly this model is approximate, but I think it helps.</p>

<p>If you choose to write your website in NodeJS, you just spent one of your innovation tokens. If you choose to use <a href="/why-mongodb-never-worked-out-at-etsy">MongoDB</a>, you just spent one of your innovation tokens. If you choose to use <a href="https://consul.io/">service discovery tech that’s existed for a year or less</a>, you just spent one of your innovation tokens. If you choose to write your own database, oh god, you’re in trouble.</p>

<p>Any of those choices might be sensible if you’re a javascript consultancy, or a database company. But you’re probably not. You’re probably working for a company that is at least ostensibly <a href="https://www.etsy.com">rethinking global commerce</a> or <a href="https://stripe.com">reinventing payments on the web</a> or pursuing some other suitably epic mission. In that context, devoting any of your limited attention to innovating ssh is an excellent way to fail. Or at best, delay success .</p>

<p>What counts as boring? That’s a little tricky. “Boring” should not be conflated with “bad.” There is technology out there that is both boring and bad <a ref="#f2" href="#f2">[2]</a>. You should not use any of that. But there are many choices of technology that are boring and good, or at least good enough. MySQL is boring. Postgres is boring. PHP is boring. Python is boring. Memcached is boring. Squid is boring. Cron is boring.</p>

<p>The nice thing about boringness (so constrained) is that the capabilities of these things are well understood. But more importantly, their failure modes are well understood. Anyone who knows me well will understand that it’s only with a overwhelming sense of malaise that I now invoke the spectre of Don Rumsfeld, but I must.</p>

<figure>
<img src="http://i.imgur.com/n8ElWr3.jpg"/>
<figcaption>To be clear, fuck this guy.</figcaption>
</figure>

<p>When choosing technology, you have both known unknowns and unknown unknowns .</p>

<ul>
<li>A known unknown is something like: <em>we don’t know what happens when this database hits 100% CPU.</em></li>
<li>An unknown unknown is something like: <em>geez it didn’t even occur to us that <a href="http://www.evanjones.ca/jvm-mmap-pause.html">writing stats would cause GC pauses</a>.</em></li>
</ul>

<p>Both sets are typically non-empty, even for tech that’s existed for decades. But for shiny new technology the magnitude of unknown unknowns is significantly larger, and this is important.</p>

<h5 id="optimize-globally">Optimize Globally.</h5>

<p>I unapologetically think a bias in favor of boring technology is a good thing, but it’s not the only factor that needs to be considered. Technology choices don’t happen in isolation. They have a scope that touches your entire team, organization, and the system that emerges from the sum total of your choices.</p>

<p>Adding technology to your company comes with a cost. As an abstract statement this is obvious: if we’re already using Ruby, adding Python to the mix doesn’t feel sensible because the resulting complexity would outweigh Python’s marginal utility. But somehow when we’re talking about Python and Scala or MySQL and Redis people <a href="http://martinfowler.com/bliki/PolyglotPersistence.html">lose their minds</a>, discard all constraints, and start raving about using the best tool for the job.</p>

<p><a href="https://twitter.com/coda/status/580531932393504768">Your function in a nutshell</a> is to map business problems onto a solution space that involves choices of software. If the choices of software were truly without baggage, you could indeed pick a whole mess of locally-the-best tools for your assortment of problems.</p>

<figure>
<svg viewbox="0 0 423 420" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">

<title>Crazy</title>
<desc>Created with Sketch.</desc>
<defs/>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="Crazy" sketch:type="MSLayerGroup" transform="translate(1.000000, -4.000000)">
<ellipse id="Solutions" stroke="#979797" sketch:type="MSShapeGroup" cx="341.5" cy="229.5" rx="79.5" ry="193.5"/>
<ellipse id="Problems" stroke="#979797" sketch:type="MSShapeGroup" cx="79.5" cy="229.5" rx="79.5" ry="193.5"/>
<g id="arrows" transform="translate(45.000000, 77.000000)" stroke="#D0011B" stroke-width="3" fill="#D0011B" stroke-linecap="square">
<path d="M19.5,26.5 L255.502121,26.5" id="Line" sketch:type="MSShapeGroup"/>
<path id="Line-decoration-1" d="M255.5,26.5 C251.72,25.45 248.48,24.55 244.7,23.5 C244.7,25.6 244.7,27.4 244.7,29.5 C248.48,28.45 251.72,27.55 255.5,26.5 C255.5,26.5 255.5,26.5 255.5,26.5 Z"/>
<path d="M19.5,26.5 L245.5,84.5" id="Line-2" sketch:type="MSShapeGroup"/>
<path id="Line-2-decoration-1" d="M245.186355,84.419507 C241.786016,82.4628271 238.87144,80.7856729 235.471101,78.8289931 C234.94908,80.8630761 234.501633,82.6065758 233.979612,84.6406589 C237.901972,84.5632557 241.263995,84.4969101 245.186355,84.419507 C245.186355,84.419507 245.186355,84.419507 245.186355,84.419507 Z"/>
<path d="M19.5,26.5 L299.5,0.5" id="Line-3" sketch:type="MSShapeGroup"/>
<path id="Line-3-decoration-1" d="M299.296324,0.518912741 C295.435434,-0.177093062 292.126099,-0.773669465 288.265208,-1.46967527 C288.459373,0.621329291 288.6258,2.41361891 288.819965,4.50462347 C292.486691,3.10962472 295.629598,1.9139115 299.296324,0.518912741 C299.296324,0.518912741 299.296324,0.518912741 299.296324,0.518912741 Z"/>
<path d="M19.5,26.5 L255.502121,26.5" id="Line-4" sketch:type="MSShapeGroup"/>
<path id="Line-4-decoration-1" d="M255.5,26.5 C251.72,25.45 248.48,24.55 244.7,23.5 C244.7,25.6 244.7,27.4 244.7,29.5 C248.48,28.45 251.72,27.55 255.5,26.5 C255.5,26.5 255.5,26.5 255.5,26.5 Z"/>
<path d="M63.5,79.5 L256.5,34.5" id="Line-5" sketch:type="MSShapeGroup"/>
<path id="Line-5-decoration-1" d="M256.327927,34.5401208 C252.408243,34.3758734 249.048513,34.2350899 245.128829,34.0708426 C245.605677,36.1159872 246.014403,37.8689684 246.49125,39.9141131 C249.934087,38.0332157 252.88509,36.4210181 256.327927,34.5401208 C256.327927,34.5401208 256.327927,34.5401208 256.327927,34.5401208 Z"/>
<path d="M63.5,79.5 L301.5,116.5" id="Line-6" sketch:type="MSShapeGroup"/>
<path id="Line-6-decoration-1" d="M300.651315,116.368062 C297.077479,114.749853 294.014192,113.362816 290.440356,111.744607 C290.117761,113.819681 289.84125,115.598316 289.518655,117.67339 C293.415086,117.216525 296.754884,116.824927 300.651315,116.368062 C300.651315,116.368062 300.651315,116.368062 300.651315,116.368062 Z"/>
<path d="M63.5,79.5 L254.5,209.5" id="Line-7" sketch:type="MSShapeGroup"/>
<path id="Line-7-decoration-1" d="M254.464216,209.475644 C251.930146,206.480751 249.758085,203.9137 247.224014,200.918806 C246.042418,202.654845 245.02962,204.142878 243.848024,205.878916 C247.563691,207.137771 250.748549,208.216789 254.464216,209.475644 C254.464216,209.475644 254.464216,209.475644 254.464216,209.475644 Z"/>
<path d="M0.5,115.5 L251.5,216.5" id="Line-8" sketch:type="MSShapeGroup"/>
<path id="Line-8-decoration-1" d="M250.981706,216.291443 C247.866929,213.906268 245.19712,211.861831 242.082342,209.476656 C241.298409,211.424847 240.626466,213.094725 239.842533,215.042916 C243.741243,215.4799 247.082995,215.854459 250.981706,216.291443 C250.981706,216.291443 250.981706,216.291443 250.981706,216.291443 Z"/>
<path d="M54.5,176.5 L300.5,193.5" id="Line-10" sketch:type="MSShapeGroup"/>
<path id="Line-10-decoration-1" d="M299.914697,193.459552 C296.216079,192.151452 293.045835,191.030224 289.347217,189.722124 C289.202441,191.817128 289.078346,193.612845 288.93357,195.707849 C292.776964,194.920945 296.071303,194.246456 299.914697,193.459552 C299.914697,193.459552 299.914697,193.459552 299.914697,193.459552 Z"/>
<path d="M54.5,176.5 L288.5,273.5" id="Line-11" sketch:type="MSShapeGroup"/>
<path id="Line-11-decoration-1" d="M288.215373,273.382013 C285.125578,270.964562 282.477183,268.892461 279.387389,266.47501 C278.58323,268.41494 277.89395,270.077737 277.089791,272.017667 C280.983745,272.495188 284.321419,272.904492 288.215373,273.382013 C288.215373,273.382013 288.215373,273.382013 288.215373,273.382013 Z"/>
<path d="M11.5,231.5 L287.5,283.5" id="Line-12" sketch:type="MSShapeGroup"/>
<path id="Line-12-decoration-1" d="M286.658962,283.341544 C283.138722,281.609837 280.121373,280.125516 276.601133,278.393809 C276.212321,280.457502 275.879054,282.226381 275.490243,284.290073 C279.399294,283.958088 282.74991,283.673529 286.658962,283.341544 C286.658962,283.341544 286.658962,283.341544 286.658962,283.341544 Z"/>
<path d="M11.5,231.5 L249.5,223.5" id="Line-13" sketch:type="MSShapeGroup"/>
<path id="Line-13-decoration-1" d="M249.36566,223.504516 C245.552519,222.582095 242.284113,221.79145 238.470973,220.869029 C238.541521,222.967844 238.601991,224.766828 238.67254,226.865643 C242.415132,225.689248 245.623068,224.68091 249.36566,223.504516 C249.36566,223.504516 249.36566,223.504516 249.36566,223.504516 Z"/>
<path d="M0.5,115.5 L248.5,156.5" id="Line-9" sketch:type="MSShapeGroup"/>
<path id="Line-9-decoration-1" d="M248.138638,156.440259 C244.580524,154.78777 241.530711,153.371351 237.972596,151.718862 C237.630068,153.790739 237.336473,155.566633 236.993945,157.63851 C240.894588,157.219122 244.237996,156.859647 248.138638,156.440259 C248.138638,156.440259 248.138638,156.440259 248.138638,156.440259 Z"/>
</g>
<g id="problems" transform="translate(33.000000, 91.000000)" stroke="#979797" fill="#4990E2" sketch:type="MSShapeGroup">
<circle id="Oval-3" cx="30" cy="14" r="14"/>
<circle id="Oval-4" cx="74" cy="66" r="14"/>
<circle id="Oval-5" cx="14" cy="103" r="14"/>
<circle id="Oval-6" cx="64" cy="163" r="14"/>
<circle id="Oval-7" cx="23" cy="219" r="14"/>
</g>
<g id="Solutions" transform="translate(293.000000, 68.000000)" stroke="#979797" fill="#7ED321" sketch:type="MSShapeGroup">
<circle id="Oval-8" cx="26" cy="37" r="14"/>
<circle id="Oval-9" cx="74" cy="69" r="14"/>
<circle id="Oval-10" cx="14" cy="99" r="14"/>
<circle id="Oval-11" cx="71" cy="129" r="14"/>
<circle id="Oval-12" cx="18" cy="168" r="14"/>
<circle id="Oval-13" cx="71" cy="205" r="14"/>
<circle id="Oval-14" cx="22" cy="229" r="14"/>
<circle id="Oval-15" cx="66" cy="14" r="14"/>
<circle id="Oval-16" cx="58" cy="289" r="14"/>
</g>
<text id="Problems" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="43" y="18">Problems</tspan>
</text>
<text id="Technical-Solutions" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="262" y="18">Technical Solutions</tspan>
</text>
</g>
</g>
</svg>
<figcaption class="text-center">The way you might choose technology in a world where choices are cheap: "pick the right tool for the job."</figcaption>
</figure>

<p>But of course, the baggage exists. We call the baggage “operations” and to a lesser extent “cognitive overhead.” You have to monitor the thing. You have to figure out unit tests. You need to know the first thing about it to hack on it. You need an init script. I could go on for days here, and all of this adds up fast.</p>

<figure>
<svg viewbox="0 0 423 420" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">

<title>Sane</title>
<desc>Created with Sketch.</desc>
<defs/>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="Sane" sketch:type="MSLayerGroup" transform="translate(1.000000, -4.000000)">
<ellipse id="Solutions-3" stroke="#979797" sketch:type="MSShapeGroup" cx="341.5" cy="229.5" rx="79.5" ry="193.5"/>
<ellipse id="Problems-2" stroke="#979797" sketch:type="MSShapeGroup" cx="79.5" cy="229.5" rx="79.5" ry="193.5"/>
<g id="arrows" transform="translate(51.000000, 102.000000)" stroke="#D0011B" stroke-width="3" fill="#D0011B" stroke-linecap="square">
<path d="M13.5,1.5 L249.5,1.5" id="Line-14" sketch:type="MSShapeGroup"/>
<path id="Line-14-decoration-1" d="M249.5,1.5 C245.72,0.45 242.48,-0.45 238.7,-1.5 C238.7,0.6 238.7,2.4 238.7,4.5 C242.48,3.45 245.72,2.55 249.5,1.5 C249.5,1.5 249.5,1.5 249.5,1.5 Z"/>
<path d="M13.5,1.5 L248.5,120.5" id="Line-15" sketch:type="MSShapeGroup"/>
<path id="Line-15-decoration-1" d="M248.132239,120.313772 C245.23431,117.669362 242.75037,115.402724 239.852441,112.758314 C238.903738,114.631803 238.090564,116.237651 237.141861,118.111141 C240.988493,118.882062 244.285607,119.542851 248.132239,120.313772 C248.132239,120.313772 248.132239,120.313772 248.132239,120.313772 Z"/>
<path d="M57.5,54.5 L249.5,8.5" id="Line-17" sketch:type="MSShapeGroup"/>
<path id="Line-17-decoration-1" d="M249.078398,8.6010088 C245.157787,8.46060711 241.797264,8.34026282 237.876654,8.19986114 C238.365932,10.2420674 238.785314,11.9925299 239.274592,14.0347362 C242.705924,12.1329316 245.647066,10.5028134 249.078398,8.6010088 C249.078398,8.6010088 249.078398,8.6010088 249.078398,8.6010088 Z"/>
<path d="M0.5,92.5 L240.5,137.5" id="Line-20" sketch:type="MSShapeGroup"/>
<path id="Line-20-decoration-1" d="M240.320814,137.466403 C236.79906,135.737776 233.780414,134.256096 230.25866,132.52747 C229.871654,134.591501 229.539934,136.360671 229.152928,138.424703 C233.061688,138.089298 236.412054,137.801808 240.320814,137.466403 C240.320814,137.466403 240.320814,137.466403 240.320814,137.466403 Z"/>
<path d="M57.5,52.5 L242.5,129.5" id="Line-18" sketch:type="MSShapeGroup"/>
<path id="Line-18-decoration-1" d="M242.1449,129.352202 C239.058585,126.930309 236.413173,124.854402 233.326858,122.432509 C232.51991,124.371281 231.828241,126.033085 231.021292,127.971856 C234.914555,128.454977 238.251637,128.869081 242.1449,129.352202 C242.1449,129.352202 242.1449,129.352202 242.1449,129.352202 Z"/>
<path d="M13.5,1.5 L248.5,183.5" id="Line-16" sketch:type="MSShapeGroup"/>
<path id="Line-16-decoration-1" d="M248.313733,183.355742 C245.968119,180.211065 243.957592,177.515627 241.611978,174.37095 C240.32613,176.031249 239.223974,177.454363 237.938125,179.114662 C241.569588,180.59904 244.68227,181.871364 248.313733,183.355742 C248.313733,183.355742 248.313733,183.355742 248.313733,183.355742 Z"/>
<path d="M0.5,92.5 L253.5,15.5" id="Line-19" sketch:type="MSShapeGroup"/>
<path id="Line-19-decoration-1" d="M253.061904,15.6333334 C249.139957,15.7294168 245.778289,15.8117739 241.856342,15.9078572 C242.467781,17.9168724 242.991872,19.6388854 243.603311,21.6479005 C246.913819,19.542802 249.751397,17.7384319 253.061904,15.6333334 C253.061904,15.6333334 253.061904,15.6333334 253.061904,15.6333334 Z"/>
<path d="M0.5,92.5 L244.5,191.5" id="Line-21" sketch:type="MSShapeGroup"/>
<path id="Line-21-decoration-1" d="M244.204221,191.379991 C241.09632,188.985863 238.432405,186.933753 235.324504,184.539624 C234.534968,186.485551 233.858223,188.153489 233.068687,190.099416 C236.966124,190.547618 240.306784,190.93179 244.204221,191.379991 C244.204221,191.379991 244.204221,191.379991 244.204221,191.379991 Z"/>
<path d="M49.5,150.5 L258.5,19.5" id="Line-22" sketch:type="MSShapeGroup"/>
<path id="Line-22-decoration-1" d="M257.939322,19.8514296 C254.178828,20.9692764 250.955547,21.9274308 247.195052,23.0452775 C248.310345,24.8246376 249.26631,26.3498034 250.381603,28.1291635 C253.026805,25.2319566 255.29412,22.7486365 257.939322,19.8514296 C257.939322,19.8514296 257.939322,19.8514296 257.939322,19.8514296 Z"/>
<path d="M3.5,207.5 L265.5,22.5" id="Line-23" sketch:type="MSShapeGroup"/>
<path id="Line-23-decoration-1" d="M264.902063,22.9222075 C261.208605,24.2448071 258.042784,25.378464 254.349327,26.7010636 C255.560618,28.4165147 256.598868,29.8869013 257.81016,31.6023523 C260.292326,28.5643016 262.419897,25.9602582 264.902063,22.9222075 C264.902063,22.9222075 264.902063,22.9222075 264.902063,22.9222075 Z"/>
<path d="M3.5,207.5 L243.5,147.5" id="Line-24" sketch:type="MSShapeGroup"/>
<path id="Line-24-decoration-1" d="M243.125198,147.593701 C239.203396,147.491836 235.841853,147.404523 231.920052,147.302658 C232.429376,149.339957 232.865941,151.086214 233.375265,153.123513 C236.787742,151.188079 239.712721,149.529135 243.125198,147.593701 C243.125198,147.593701 243.125198,147.593701 243.125198,147.593701 Z"/>
<path d="M3.5,207.5 L244.5,201.5" id="Line-25" sketch:type="MSShapeGroup"/>
<path id="Line-25-decoration-1" d="M244.425346,201.501859 C240.620384,200.546263 237.358988,199.72718 233.554026,198.771584 C233.606292,200.870934 233.651091,202.670376 233.703357,204.769726 C237.456053,203.625972 240.67265,202.645612 244.425346,201.501859 C244.425346,201.501859 244.425346,201.501859 244.425346,201.501859 Z"/>
</g>
<g id="problems-2" transform="translate(33.000000, 91.000000)" stroke="#979797" fill="#4990E2" sketch:type="MSShapeGroup">
<circle id="Oval-3" cx="30" cy="14" r="14"/>
<circle id="Oval-4" cx="74" cy="66" r="14"/>
<circle id="Oval-5" cx="14" cy="103" r="14"/>
<circle id="Oval-6" cx="64" cy="163" r="14"/>
<circle id="Oval-7" cx="23" cy="219" r="14"/>
</g>
<g id="Solutions-2" transform="translate(293.000000, 68.000000)" stroke="#979797" fill="#7ED321" sketch:type="MSShapeGroup">
<circle id="Oval-8" cx="26" cy="37" r="14"/>
<circle id="Oval-9" cx="74" cy="69" r="14"/>
<circle id="Oval-10" cx="14" cy="99" r="14"/>
<circle id="Oval-11" cx="71" cy="129" r="14"/>
<circle id="Oval-12" cx="18" cy="168" r="14"/>
<circle id="Oval-13" cx="71" cy="205" r="14"/>
<circle id="Oval-14" cx="22" cy="229" r="14"/>
<circle id="Oval-15" cx="66" cy="14" r="14"/>
<circle id="Oval-16" cx="58" cy="289" r="14"/>
</g>
<text id="Problems-3" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="43" y="18">Problems</tspan>
</text>
<text id="Technical-Solutions-2" sketch:type="MSTextLayer" font-family="Lato" font-size="18" font-weight="normal" fill="#000000">
<tspan x="262" y="18">Technical Solutions</tspan>
</text>
</g>
</g>
</svg>
<figcaption class="text-center">The way you choose technology in the world where operations are a serious concern (i.e., "reality"). </figcaption>
</figure>

<p>The problem with “best tool for the job” thinking is that it takes a myopic view of the words “best” and “job.” Your job is keeping the company in business, god damn it. And the “best” tool is the one that occupies the “least worst” position for as many of your problems as possible.</p>

<p>It is basically always the case that the long-term costs of keeping a system working reliably vastly exceed any inconveniences you encounter while building it. Mature and productive developers understand this.</p>

<h5 id="choose-new-technology-sometimes">Choose New Technology, Sometimes.</h5>
<p>Taking this reasoning to its <em>reductio ad absurdum</em> would mean picking Java, and then trying to implement a website without using anything else at all. And that would be crazy. You need some means to add things to your toolbox.</p>

<p>An important first step is to acknowledge that this is a process, and a conversation. New tech eventually has company-wide effects, so adding tech is a decision that requires company-wide visibility. Your organizational specifics may force the conversation, or <a href="https://twitter.com/mcfunley/status/578603932949164032">they may facilitate developers adding new databases and queues without talking to anyone</a>. One way or another you have to set cultural expectations that <strong>this is something we all talk about</strong>.</p>

<p>One of the most worthwhile exercises I recommend here is to <strong>consider how you would solve your immediate problem without adding anything new</strong>. First, posing this question should detect the situation where the “problem” is that someone really wants to use the technology. If that is the case, you should immediately abort.</p>

<figure>
<img src="http://i.imgur.com/rmdSx.gif"/>
<figcaption>I just watched a webinar about this graph database, we should try it out.</figcaption>
</figure>

<p>It can be amazing how far a small set of technology choices can go. The answer to this question in practice is almost never “we can’t do it,” it’s usually just somewhere on the spectrum of “well, we could do it, but it would be too hard” . If you think you can’t accomplish your goals with what you’ve got now, you are probably just not thinking creatively enough.</p>

<p>It’s helpful to <strong>write down exactly what it is about the current stack that makes solving the problem prohibitively expensive and difficult.</strong> This is related to the previous exercise, but it’s subtly different.</p>

<p>New technology choices might be purely additive (for example: “we don’t have caching yet, so let’s add memcached”). But they might also overlap or replace things you are already using. If that’s the case, you should <strong>set clear expectations about migrating old functionality to the new system.</strong> The policy should typically be “we’re committed to migrating,” with a proposed timeline. The intention of this step is to keep wreckage at manageable levels, and to avoid proliferating locally-optimal solutions.</p>

<p>This process is not daunting, and it’s not much of a hassle. It’s a handful of questions to fill out as homework, followed by a meeting to talk about it. I think that if a new technology (or a new service to be created on your infrastructure) can pass through this gauntlet unscathed, adding it is fine.</p>

<h5 id="just-ship">Just Ship.</h5>
<p>Polyglot programming is sold with the promise that letting developers choose their own tools with complete freedom will make them more effective at solving problems. This is a naive definition of the problems at best, and motivated reasoning at worst. The weight of day-to-day operational <a href="https://twitter.com/handler">toil</a> this creates crushes you to death.</p>

<p>Mindful choice of technology gives engineering minds real freedom: the freedom to <a href="/effective-web-experimentation-as-a-homo-narrans">contemplate bigger questions</a>. Technology for its own sake is snake oil.</p>

<p><em>Update, July 27th 2015: I wrote a talk based on this article. You can see it <a href="http://boringtechnology.club">here</a>.</em></p>

+ 113
- 0
cache/2020/77db8cc6de2906f31a4d37d91a47a3aa/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://www.trysmudford.com/blog/currying-in-css/">

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

<article>
<h1>Currying in CSS?</h1>
<h2><a href="https://www.trysmudford.com/blog/currying-in-css/">Source originale du contenu</a></h2>
<p>There were lots of interesting discoveries found whilst developing <a href="https://utopia.fyi/">Utopia</a>. This one came when declaring CSS custom properties.</p>

<p>Taking a card as an example, one would often start off with some CSS like this:</p>

<div class="highlight"><pre class="chroma"><code class="language-css" data-lang="css"><span class="p">.</span><span class="nc">card</span> <span class="p">{</span>
<span class="k">padding</span><span class="p">:</span> <span class="mi">40</span><span class="kt">px</span><span class="p">;</span>
<span class="k">background</span><span class="p">:</span> <span class="mh">#FAFAFA</span><span class="p">;</span>
<span class="p">}</span></code></pre></div>

<p>Then extract the values out for re-use across the website:</p>

<div class="highlight"><pre class="chroma"><code class="language-css" data-lang="css"><span class="p">:</span><span class="nd">root</span> <span class="p">{</span>
<span class="nv">--card-padding</span><span class="p">:</span> <span class="mi">40</span><span class="kt">px</span><span class="p">;</span>
<span class="nv">--card-background</span><span class="p">:</span> <span class="mh">#FAFAFA</span><span class="p">;</span>
<span class="p">}</span>

<span class="p">.</span><span class="nc">card</span> <span class="p">{</span>
<span class="k">padding</span><span class="p">:</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">card</span><span class="o">-</span><span class="n">padding</span><span class="p">);</span>
<span class="k">background</span><span class="p">:</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">card</span><span class="o">-</span><span class="n">background</span><span class="p">);</span>
<span class="p">}</span></code></pre></div>

<p>We’ve simply lifted the values out into the <code>:root</code> and replaced them verbatim with their variable counterparts. Nothing contentious to see here.</p>

<p>When working with <a href="https://utopia.fyi/blog/fluid-custom-properties">fluid custom properties</a>, I was desperately trying to refactor the equation to keep it as succinct as possible. It was at this point, I stumbled upon a strange property of custom properties…</p>

<blockquote>
<p>The value after the <code>:</code> in the CSS custom property does not have to be valid CSS.</p>
</blockquote>

<p>It won’t cause any errors, nor invalidate the custom property. It won’t be evaluated in the browser until used, or more specifically, placed in a <code>calc()</code> function.</p>

<h2 id="what-does-this-mean">What does this mean?</h2>

<p>This means we can write concise CSS ‘calculations’ without worrying about wrapping every line in <code>calc()</code>s, and providing its wrapped when we use the property, it will be valid. When you finally run <code>calc()</code>, the browser (appears to) gather all the associated parts of the equation, and run them in one go.</p>

<p>The <code>--f-2</code> declaration below is not ‘valid’ CSS. But when used in the <code>font-size</code> with a <code>calc()</code>, it becomes valid:</p>

<div class="highlight"><pre class="chroma"><code class="language-css" data-lang="css"><span class="p">:</span><span class="nd">root</span> <span class="p">{</span>
<span class="nv">--f-2</span><span class="p">:</span> <span class="p">((</span><span class="mi">2</span> <span class="o">/</span> <span class="mi">16</span> <span class="o">-</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">f</span><span class="o">-</span><span class="n">foot</span><span class="p">))</span> <span class="o">*</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">f</span><span class="o">-</span><span class="n">hill</span><span class="p">));</span>
<span class="p">}</span>

<span class="nt">body</span> <span class="p">{</span>
<span class="k">font-size</span><span class="p">:</span> <span class="nb">calc</span><span class="p">(</span><span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">f</span><span class="mi">-2</span><span class="p">)</span> <span class="o">*</span> <span class="mi">16</span><span class="p">);</span>
<span class="p">}</span></code></pre></div>

<h2 id="so-what">So what?</h2>

<p>To me, this feels much like the two distinct actions of:</p>

<ol>
<li>Defining a function</li>
<li>Calling that function</li>
</ol>

<p>Which is kind of cool. I don’t know whether there’s more here, but I feel like there probably is.</p>

<p>Some way of currying in CSS, perhaps? I’ve likened currying to <a href="https://www.trysmudford.com/blog/pedalboard/#closures-and-currying">priming ‘code grenades’</a>, then calling them later? Who knows, I’m definitely gonna keep digging to find out.</p>
</article>


<hr>

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

+ 55
- 0
cache/2020/77db8cc6de2906f31a4d37d91a47a3aa/index.md View File

title: Currying in CSS?
url: https://www.trysmudford.com/blog/currying-in-css/
hash_url: 77db8cc6de2906f31a4d37d91a47a3aa

<p>There were lots of interesting discoveries found whilst developing <a href="https://utopia.fyi/">Utopia</a>. This one came when declaring CSS custom properties.</p>

<p>Taking a card as an example, one would often start off with some CSS like this:</p>
<div class="highlight"><pre class="chroma"><code class="language-css" data-lang="css"><span class="p">.</span><span class="nc">card</span> <span class="p">{</span>
<span class="k">padding</span><span class="p">:</span> <span class="mi">40</span><span class="kt">px</span><span class="p">;</span>
<span class="k">background</span><span class="p">:</span> <span class="mh">#FAFAFA</span><span class="p">;</span>
<span class="p">}</span></code></pre></div>
<p>Then extract the values out for re-use across the website:</p>
<div class="highlight"><pre class="chroma"><code class="language-css" data-lang="css"><span class="p">:</span><span class="nd">root</span> <span class="p">{</span>
<span class="nv">--card-padding</span><span class="p">:</span> <span class="mi">40</span><span class="kt">px</span><span class="p">;</span>
<span class="nv">--card-background</span><span class="p">:</span> <span class="mh">#FAFAFA</span><span class="p">;</span>
<span class="p">}</span>

<span class="p">.</span><span class="nc">card</span> <span class="p">{</span>
<span class="k">padding</span><span class="p">:</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">card</span><span class="o">-</span><span class="n">padding</span><span class="p">);</span>
<span class="k">background</span><span class="p">:</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">card</span><span class="o">-</span><span class="n">background</span><span class="p">);</span>
<span class="p">}</span></code></pre></div>
<p>We’ve simply lifted the values out into the <code>:root</code> and replaced them verbatim with their variable counterparts. Nothing contentious to see here.</p>

<p>When working with <a href="https://utopia.fyi/blog/fluid-custom-properties">fluid custom properties</a>, I was desperately trying to refactor the equation to keep it as succinct as possible. It was at this point, I stumbled upon a strange property of custom properties…</p>

<blockquote>
<p>The value after the <code>:</code> in the CSS custom property does not have to be valid CSS.</p>
</blockquote>

<p>It won’t cause any errors, nor invalidate the custom property. It won’t be evaluated in the browser until used, or more specifically, placed in a <code>calc()</code> function.</p>

<h2 id="what-does-this-mean">What does this mean?</h2>

<p>This means we can write concise CSS ‘calculations’ without worrying about wrapping every line in <code>calc()</code>s, and providing its wrapped when we use the property, it will be valid. When you finally run <code>calc()</code>, the browser (appears to) gather all the associated parts of the equation, and run them in one go.</p>

<p>The <code>--f-2</code> declaration below is not ‘valid’ CSS. But when used in the <code>font-size</code> with a <code>calc()</code>, it becomes valid:</p>
<div class="highlight"><pre class="chroma"><code class="language-css" data-lang="css"><span class="p">:</span><span class="nd">root</span> <span class="p">{</span>
<span class="nv">--f-2</span><span class="p">:</span> <span class="p">((</span><span class="mi">2</span> <span class="o">/</span> <span class="mi">16</span> <span class="o">-</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">f</span><span class="o">-</span><span class="n">foot</span><span class="p">))</span> <span class="o">*</span> <span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">f</span><span class="o">-</span><span class="n">hill</span><span class="p">));</span>
<span class="p">}</span>

<span class="nt">body</span> <span class="p">{</span>
<span class="k">font-size</span><span class="p">:</span> <span class="nb">calc</span><span class="p">(</span><span class="nf">var</span><span class="p">(</span><span class="o">--</span><span class="n">f</span><span class="mi">-2</span><span class="p">)</span> <span class="o">*</span> <span class="mi">16</span><span class="p">);</span>
<span class="p">}</span></code></pre></div>
<h2 id="so-what">So what?</h2>

<p>To me, this feels much like the two distinct actions of:</p>

<ol>
<li>Defining a function</li>
<li>Calling that function</li>
</ol>

<p>Which is kind of cool. I don’t know whether there’s more here, but I feel like there probably is.</p>

<p>Some way of currying in CSS, perhaps? I’ve likened currying to <a href="https://www.trysmudford.com/blog/pedalboard/#closures-and-currying">priming ‘code grenades’</a>, then calling them later? Who knows, I’m definitely gonna keep digging to find out.</p>

+ 220
- 0
cache/2020/85e0f968f6ac8dfdd76c7a76df6ef088/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://zellwk.com/blog/overcoming-panic-towards-accessibility/">

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

<article>
<h1>Overcoming my panic towards accessibility</h1>
<h2><a href="https://zellwk.com/blog/overcoming-panic-towards-accessibility/">Source originale du contenu</a></h2>
<p>Accessibility is a big part of JavaScript. If you build anything with JavaScript, you need to make them accessible.</p>

<p>I’ve been afraid of touching accessibility for a few years now. This fear magnified when I began writing the accessibility lessons for <a href="https://learnjavascript.today">Learn JavaScript</a>.</p>

<p>Today, I want to share with you why I became afraid of accessibility, and how I overcame this fear.</p>

<h2 id="my-background">My background</h2>

<p>I grew up in an environment where I felt I was constantly scrutinised for my actions. Whenever something goes wrong, it was always my fault; it doesn’t matter whether I actually did anything wrong.</p>

<p>So I grew up being very sensitive towards whether things are “right” or “wrong”. I need to make things “right” in order not to get punished. I also grew up thinking that everyone out there is trying to harm me.</p>

<p>It’s unhealthy, I know. I just realised this a few months ago.</p>

<h2 id="why-i-was-scared-of-accessibility">Why I was scared of accessibility</h2>

<p>I keep track of dev-related conversations on Twitter. I noticed a trend whenever I see anything about accessibility: Someone fucked up.</p>

<p>There are two kinds of fuck-ups.</p>

<h3 id="first-kind%3A-made-by-companies">First kind: Made by companies</h3>

<p>The first kind is where big (and rich) companies refuse to build accessible websites. Developers all around Twitter-verse would talk negatively about these companies.</p>

<p>When I see these conversations, I can’t help but wonder whether I fucked up somewhere. I can’t help but wonder if anyone was angry at me for creating something not accessible.</p>

<p>Yes, the news is not about me. But I can’t help it. I was the kind of person where everything (that’s bad) will always be about me. Because everything is my fault. I grew up that way.</p>

<p>(I’m admitting all my flaws right in this article. It’s so freaking hard to write).</p>

<p>I became guarded against the “Accessibility” topic. I cannot afford to screw up on this topic (I told myself this unconsciously).</p>

<h3 id="second-kind%3A-made-by-individuals">Second kind: Made by individuals</h3>

<p>The second kind of fuck-ups is made by developers who make and share experiments (or discoveries). Accessibility critics will always be there to point out more accessible options. Sometimes, they’ll simply denounce the idea by saying the experiment is not accessible.</p>

<p>I was defensive against such comments because I grew up thinking everyone was scrutinising me for my actions. Everyone was judging me. Everyone was everyone out to get me. I can’t help it.</p>

<p>There was one incident where I created a calendar with CSS Grid. I shared how I made this through <a href="https://zellwk.com/blog/calendar-with-css-grid/" title="How to build a calendar with CSS Grid">an article</a>. I also tweeted about it.</p>

<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/calendar-fixed.png" alt="Calendar built with CSS Grid."/>
</figure>

<p>Guess what? The only people that jumped on this topic were the accessibility folks. They mentioned I should use a <code>&lt;table&gt;</code> element because it’s more semantically correct.</p>

<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/rik.png" alt="Rik says he would use table instead of CSS Grid."/>
</figure>

<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/meduz.png" alt="Meduz says he would use table instead of CSS Grid."/>
</figure>

<p>These weren’t troll-type comments. They were valid replies.</p>

<p>But when I saw these comments, I jumped and got angry. Why? Remember, I was at a point where I took things personally. I believed that everyone out there was trying to harm me. I grew up needing to be “correct”.</p>

<p>These comments pointed out where I was “wrong”. When I was wrong, I get punished. This process was so ingrained in me that I punished myself (by beating myself up psychologically) even when nobody was around to punish me physically. It reinforced the idea that people are out there to get me.</p>

<p>Here’s another incident. It was worse than the previous one.</p>

<p>Back in April 2019, I published an article about <a href="https://zellwk.com/blog/hide-content-accessibly/">a new way to hide content accessibly</a>. This article challenged long-standing conventions in the accessibility field. I was excited about the idea because it was a major discovery for me.</p>

<p>When I published the article, I got this email.</p>

<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/eric-1.png" alt="Email that asked if I tested this with a full range of assistive technology and browser pairings. If I didn't, then I'm being incredibly irresponsible."/>
</figure>

<p>I wasn’t trying to be irresponsible. I already mentioned explicitly (in the article) that my suggestion was new and not thoroughly tested in the article, but the email came anyway. Once again, this reaffirmed my views that people are out there are watching me and are trying to get me.</p>

<p>I tried to calm down. I understood that accessibility people were immensely concerned about accessibility. So I gave an adult reply to his message. I even added the words “disclaimer” in bold and caps in my article to emphasise the instability of the new method.</p>

<figure role="figure" aria-label="Adding a huge bold disclaimer to my article">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/disclaimer.png" alt=""/>
<figcaption>Adding a huge bold disclaimer to my article</figcaption>
</figure>

<p>What happened next was a productive discussion on Twitter about the pros/cons of this new method. Some people were more aggressive (fuckers, I would call them in my mind). Others were more understanding.</p>

<p>Overall, it was a great learning experience. Here, I realised that Scott O’Hara is probably the most understanding and nicest person in the accessibility field.</p>

<p>I then wrote about my findings and updated the article after the discussion. And I sent another email out to tell my readers about my new findings.</p>

<p>Everything above happened in a day.</p>

<p>Then, I received this in my email. From the same guy.</p>

<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/eric-2.png" alt="Person stressed curt tone was justified. And if I break accessibility, I deny people of their civil rights."/>
</figure>

<p>I blew up.</p>

<p>I raged at him for pushing my buttons (about being “wrong”, about being “irresponsible”). I raged at him for feeling justified about his crudeness by punishing me with words, and it was all my fault to begin with. (I realised much later that I was the one who punished myself. But the process was so ingrained I felt that dude punished me).</p>

<p>I’m the one who’s wrong here. Yes, even though it’s not my fault. 😡.</p>

<p>So once again, this reaffirmed my world-view that people are out to get me. This is especially prevalent when it comes to accessibility.</p>

<p>I allowed myself to let out my frustrations by writing an article <a href="https://zellwk.com/blog/advocacy/">on Advocacy</a>. I thought I let it all out.</p>

<p>But that wasn’t the end.</p>

<p>Deep down, I wanted nothing to do with accessibility anymore. I don’t want to think about it. I don’t want to touch it. And I retreated.</p>

<p>But I didn’t know I retreated. I didn’t know I would become afraid of touching accessibility.</p>

<p>The damage was done. But I was unaware.</p>

<h2 id="deciding-to-overcome-the-panic">Deciding to overcome the panic</h2>

<p>I was the kind of person who retreated when challenged. It made absolute sense why I was afraid of accessibility if you consider my background and experiences.</p>

<p>But I had a reason to overcome my panic towards accessibility. My reason? I was writing <a href="https://learnjavascript.today">Learn JavaScript</a>. JavaScript is a huge part of accessibility. If I teach people to build things with JavaScript, I need to teach them how to make it accessible for other users. It’s the right thing to do.</p>

<p>So I had to step back out into the accessibility minefield.</p>

<h2 id="overcoming-the-panic-towards-accessibility">Overcoming the panic towards accessibility</h2>

<p>I worked through two things to overcome my panic.</p>

<p><strong>First: I had to allow myself to understand why I panicked</strong>. I did this with the help of a life coach. This was how I discovered the whole background story you read above. (This was for general anxiety/panic related things. I panicked in many other parts of my life too).</p>

<p><strong>Second: I had to understand accessibility</strong>. I ate my own medicine. <a href="https://zellwk.com/blog/figure-it-out/">I sat down and figured it out</a>. I got good enough to know the field.</p>

<p>I spent one month doing these:</p>

<ol>
<li>Reading and understanding the spec</li>
<li>Reorganizing content from the spec</li>
<li>Setting up screen readers on both Mac and Windows</li>
<li>Testing properties and attributes with Voiceover and NVDA</li>
<li>Building accessible components</li>
<li>Testing components with both Voiceover and NVDA</li>
<li>Writing about accessibility</li>
</ol>

<p>In one month, I built 8 accessible components for <a href="https://learnjavascript.today">Learn JavaScript</a>. I also wrote 20+ lessons about accessibility. I figured out enough things to know the accessibility field.</p>

<p>Am I still afraid of accessibility?</p>

<p>Yes. I still get panic attacks when I think about accessibility. Heck, I even get panic attacks when I write CSS and JavaScript. I have not gotten to a point where I can manage all my panic reactions flawlessly.</p>

<p>But I moved on. I’m at a better place compared to where I was a few months ago. I’m more confident. I became a better developer and a better teacher.</p>

<h2 id="why-i%E2%80%99m-writing-this%3F">Why I’m writing this?</h2>

<p>I felt like writing an extremely righteous message here (like saying it’s for you to break out of your panic attacks towards code).</p>

<p>But if I’m honest. I would say I don’t really know.</p>

<p>On one hand, I hope learning about my experiences would help you see yourself in a new light. That it’s okay to panic. And you can continue to learn and improve even if you’re panicking.</p>

<p>I also hope you take the chance to work through any past traumas when you were a child (which led to the panic attacks).</p>

<p>But ultimately, I think I’m telling this story so I can close this panic episode with integrity and honesty. I think I want to tell myself that it’s okay to be weak and imperfect. That it was okay for me to be defensive. That it was okay for me to be angry.</p>

<p>And it’s okay to let the anger go now. Nobody out there is trying to harm me. Nobody out there is trying to force me to admit to mistakes I didn’t make. Nobody out there is trying to make me “wrong”.</p>

<p>Even if I’m wrong, I don’t have to punish myself. It’s okay to make mistakes. I don’t have to stay vigilant against the world. I don’t have to protect myself from the entire world anymore.</p>

<p>I can let go of my defensive barrier and receive the world with a pair of lenses that are less tinted compared to before. I don’t know if how long it would take for me to let this all go. But I’ve started to let go. And that’s a good thing.</p>
</article>


<hr>

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

+ 98
- 0
cache/2020/85e0f968f6ac8dfdd76c7a76df6ef088/index.md View File

title: Overcoming my panic towards accessibility
url: https://zellwk.com/blog/overcoming-panic-towards-accessibility/
hash_url: 85e0f968f6ac8dfdd76c7a76df6ef088

<p>Accessibility is a big part of JavaScript. If you build anything with JavaScript, you need to make them accessible.</p>
<p>I’ve been afraid of touching accessibility for a few years now. This fear magnified when I began writing the accessibility lessons for <a href="https://learnjavascript.today">Learn JavaScript</a>.</p>
<p>Today, I want to share with you why I became afraid of accessibility, and how I overcame this fear.</p>

<h2 id="my-background">My background</h2>
<p>I grew up in an environment where I felt I was constantly scrutinised for my actions. Whenever something goes wrong, it was always my fault; it doesn’t matter whether I actually did anything wrong.</p>
<p>So I grew up being very sensitive towards whether things are “right” or “wrong”. I need to make things “right” in order not to get punished. I also grew up thinking that everyone out there is trying to harm me.</p>
<p>It’s unhealthy, I know. I just realised this a few months ago.</p>
<h2 id="why-i-was-scared-of-accessibility">Why I was scared of accessibility</h2>
<p>I keep track of dev-related conversations on Twitter. I noticed a trend whenever I see anything about accessibility: Someone fucked up.</p>
<p>There are two kinds of fuck-ups.</p>
<h3 id="first-kind%3A-made-by-companies">First kind: Made by companies</h3>
<p>The first kind is where big (and rich) companies refuse to build accessible websites. Developers all around Twitter-verse would talk negatively about these companies.</p>
<p>When I see these conversations, I can’t help but wonder whether I fucked up somewhere. I can’t help but wonder if anyone was angry at me for creating something not accessible.</p>
<p>Yes, the news is not about me. But I can’t help it. I was the kind of person where everything (that’s bad) will always be about me. Because everything is my fault. I grew up that way.</p>
<p>(I’m admitting all my flaws right in this article. It’s so freaking hard to write).</p>
<p>I became guarded against the “Accessibility” topic. I cannot afford to screw up on this topic (I told myself this unconsciously).</p>
<h3 id="second-kind%3A-made-by-individuals">Second kind: Made by individuals</h3>
<p>The second kind of fuck-ups is made by developers who make and share experiments (or discoveries). Accessibility critics will always be there to point out more accessible options. Sometimes, they’ll simply denounce the idea by saying the experiment is not accessible.</p>
<p>I was defensive against such comments because I grew up thinking everyone was scrutinising me for my actions. Everyone was judging me. Everyone was everyone out to get me. I can’t help it.</p>
<p>There was one incident where I created a calendar with CSS Grid. I shared how I made this through <a href="https://zellwk.com/blog/calendar-with-css-grid/" title="How to build a calendar with CSS Grid">an article</a>. I also tweeted about it.</p>
<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/calendar-fixed.png" alt="Calendar built with CSS Grid."/>
</figure>
<p>Guess what? The only people that jumped on this topic were the accessibility folks. They mentioned I should use a <code>&lt;table&gt;</code> element because it’s more semantically correct.</p>
<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/rik.png" alt="Rik says he would use table instead of CSS Grid."/>
</figure>
<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/meduz.png" alt="Meduz says he would use table instead of CSS Grid."/>
</figure>
<p>These weren’t troll-type comments. They were valid replies.</p>
<p>But when I saw these comments, I jumped and got angry. Why? Remember, I was at a point where I took things personally. I believed that everyone out there was trying to harm me. I grew up needing to be “correct”.</p>
<p>These comments pointed out where I was “wrong”. When I was wrong, I get punished. This process was so ingrained in me that I punished myself (by beating myself up psychologically) even when nobody was around to punish me physically. It reinforced the idea that people are out there to get me.</p>
<p>Here’s another incident. It was worse than the previous one.</p>
<p>Back in April 2019, I published an article about <a href="https://zellwk.com/blog/hide-content-accessibly/">a new way to hide content accessibly</a>. This article challenged long-standing conventions in the accessibility field. I was excited about the idea because it was a major discovery for me.</p>
<p>When I published the article, I got this email.</p>
<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/eric-1.png" alt="Email that asked if I tested this with a full range of assistive technology and browser pairings. If I didn't, then I'm being incredibly irresponsible."/>
</figure>
<p>I wasn’t trying to be irresponsible. I already mentioned explicitly (in the article) that my suggestion was new and not thoroughly tested in the article, but the email came anyway. Once again, this reaffirmed my views that people are out there are watching me and are trying to get me.</p>
<p>I tried to calm down. I understood that accessibility people were immensely concerned about accessibility. So I gave an adult reply to his message. I even added the words “disclaimer” in bold and caps in my article to emphasise the instability of the new method.</p>
<figure role="figure" aria-label="Adding a huge bold disclaimer to my article">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/disclaimer.png" alt=""/>
<figcaption>Adding a huge bold disclaimer to my article</figcaption>
</figure>
<p>What happened next was a productive discussion on Twitter about the pros/cons of this new method. Some people were more aggressive (fuckers, I would call them in my mind). Others were more understanding.</p>
<p>Overall, it was a great learning experience. Here, I realised that Scott O’Hara is probably the most understanding and nicest person in the accessibility field.</p>
<p>I then wrote about my findings and updated the article after the discussion. And I sent another email out to tell my readers about my new findings.</p>
<p>Everything above happened in a day.</p>
<p>Then, I received this in my email. From the same guy.</p>
<figure role="figure">
<img src="https://zellwk.com/images/2020/overcoming-panic-towards-accessibility/eric-2.png" alt="Person stressed curt tone was justified. And if I break accessibility, I deny people of their civil rights."/>
</figure>
<p>I blew up.</p>
<p>I raged at him for pushing my buttons (about being “wrong”, about being “irresponsible”). I raged at him for feeling justified about his crudeness by punishing me with words, and it was all my fault to begin with. (I realised much later that I was the one who punished myself. But the process was so ingrained I felt that dude punished me).</p>
<p>I’m the one who’s wrong here. Yes, even though it’s not my fault. 😡.</p>
<p>So once again, this reaffirmed my world-view that people are out to get me. This is especially prevalent when it comes to accessibility.</p>
<p>I allowed myself to let out my frustrations by writing an article <a href="https://zellwk.com/blog/advocacy/">on Advocacy</a>. I thought I let it all out.</p>
<p>But that wasn’t the end.</p>
<p>Deep down, I wanted nothing to do with accessibility anymore. I don’t want to think about it. I don’t want to touch it. And I retreated.</p>
<p>But I didn’t know I retreated. I didn’t know I would become afraid of touching accessibility.</p>
<p>The damage was done. But I was unaware.</p>
<h2 id="deciding-to-overcome-the-panic">Deciding to overcome the panic</h2>
<p>I was the kind of person who retreated when challenged. It made absolute sense why I was afraid of accessibility if you consider my background and experiences.</p>
<p>But I had a reason to overcome my panic towards accessibility. My reason? I was writing <a href="https://learnjavascript.today">Learn JavaScript</a>. JavaScript is a huge part of accessibility. If I teach people to build things with JavaScript, I need to teach them how to make it accessible for other users. It’s the right thing to do.</p>
<p>So I had to step back out into the accessibility minefield.</p>
<h2 id="overcoming-the-panic-towards-accessibility">Overcoming the panic towards accessibility</h2>
<p>I worked through two things to overcome my panic.</p>
<p><strong>First: I had to allow myself to understand why I panicked</strong>. I did this with the help of a life coach. This was how I discovered the whole background story you read above. (This was for general anxiety/panic related things. I panicked in many other parts of my life too).</p>
<p><strong>Second: I had to understand accessibility</strong>. I ate my own medicine. <a href="https://zellwk.com/blog/figure-it-out/">I sat down and figured it out</a>. I got good enough to know the field.</p>
<p>I spent one month doing these:</p>
<ol>
<li>Reading and understanding the spec</li>
<li>Reorganizing content from the spec</li>
<li>Setting up screen readers on both Mac and Windows</li>
<li>Testing properties and attributes with Voiceover and NVDA</li>
<li>Building accessible components</li>
<li>Testing components with both Voiceover and NVDA</li>
<li>Writing about accessibility</li>
</ol>
<p>In one month, I built 8 accessible components for <a href="https://learnjavascript.today">Learn JavaScript</a>. I also wrote 20+ lessons about accessibility. I figured out enough things to know the accessibility field.</p>
<p>Am I still afraid of accessibility?</p>
<p>Yes. I still get panic attacks when I think about accessibility. Heck, I even get panic attacks when I write CSS and JavaScript. I have not gotten to a point where I can manage all my panic reactions flawlessly.</p>
<p>But I moved on. I’m at a better place compared to where I was a few months ago. I’m more confident. I became a better developer and a better teacher.</p>
<h2 id="why-i%E2%80%99m-writing-this%3F">Why I’m writing this?</h2>
<p>I felt like writing an extremely righteous message here (like saying it’s for you to break out of your panic attacks towards code).</p>
<p>But if I’m honest. I would say I don’t really know.</p>
<p>On one hand, I hope learning about my experiences would help you see yourself in a new light. That it’s okay to panic. And you can continue to learn and improve even if you’re panicking.</p>
<p>I also hope you take the chance to work through any past traumas when you were a child (which led to the panic attacks).</p>
<p>But ultimately, I think I’m telling this story so I can close this panic episode with integrity and honesty. I think I want to tell myself that it’s okay to be weak and imperfect. That it was okay for me to be defensive. That it was okay for me to be angry.</p>
<p>And it’s okay to let the anger go now. Nobody out there is trying to harm me. Nobody out there is trying to force me to admit to mistakes I didn’t make. Nobody out there is trying to make me “wrong”.</p>
<p>Even if I’m wrong, I don’t have to punish myself. It’s okay to make mistakes. I don’t have to stay vigilant against the world. I don’t have to protect myself from the entire world anymore.</p>
<p>I can let go of my defensive barrier and receive the world with a pair of lenses that are less tinted compared to before. I don’t know if how long it would take for me to let this all go. But I’ve started to let go. And that’s a good thing.</p>

+ 92
- 0
cache/2020/874765e437a144748e9438d272b1177a/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://n.survol.fr/n/vieux-developpeur-pas-manager">

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

<article>
<h1>Vieux développeur, pas manager</h1>
<h2><a href="https://n.survol.fr/n/vieux-developpeur-pas-manager">Source originale du contenu</a></h2>
<p>J’en­tends trop souvent des déve­lop­peurs se plaindre d’être forcés de passer dans le mana­ge­ment pour progres­ser en salaire. </p>

<p>Déjà ça ne reflète pas la réalité. On est dans un métier où le salaire peut doubler avec l’an­cien­neté. Je doute que ce soit vrai pour tant de métiers que ça dans le privé, pas sans chan­ger tota­le­ment de rôle voire de métier.</p>

<p><hr class="wp-block-separator"/><p>L’enjeu est cepen­dant que, effec­ti­ve­ment, la produc­ti­vité indi­vi­duelle n’est pas propor­tion­nelle avec l’an­cien­neté. On progresse souvent bien plus les premières années que les suivantes. </p></p>
<p>À péri­mètre iden­tique, on voit plus faci­le­ment la diffé­rence entre deux déve­lop­peurs avec 2 et 5 ans d’ex­pé­rience qu’entre deux déve­lop­peurs avec 10 et 13 ans d’ex­pé­rience. </p>

<p>Rien d’anor­mal, donc, que la progres­sion sala­riale le reflète.</p>

<p>Ce n’est pas « la France qui est en retard sur ces ques­tions », c’est juste l’ap­pli­ca­tion du système de marché. Le salaire dépend de ce que vous appor­tez, pas de votre ancien­neté.</p>

<p><hr class="wp-block-separator"/><p>L’avan­tage c’est qu’a­vec l’ex­pé­rience, norma­le­ment, vous pouvez appor­ter plus que votre code. Le péri­mètre n’a aucune raison d’être iden­tique avec les années.</p></p>
<p>Vous pouvez former les plus jeunes et les faire progres­ser. Vous pouvez commu­niquer avec le busi­ness, avec la commu­ni­ca­tion, avec le légal, faire l’in­ter­face, comprendre les enjeux de chacun et propo­ser des solu­tions. Vous pouvez parler coût, main­te­nance et stra­té­gie. Vous pouvez iden­ti­fier les problèmes et les solu­tions, amélio­rer l’or­ga­ni­sa­tion de l’équipe. Etc. </p>

<p>L’idée c’est de lever la tête de son code et commen­cer à embras­ser un péri­mètre plus large. Vous avez de la chance : Contrai­re­ment à beau­coup d’autres domaines, vous pouvez faire ça sans chan­ger de métier (et sans forcé­ment deve­nir mana­ger).</p>

<p>Pour ma part j’uti­lise ces termes : </p>

<ul><li>Senior : Il va guider, orga­ni­ser, former, servir de mentor ou de sage. Ce n’est pas forcé­ment le plus expert, ni même celui qui a le plus d’an­cien­neté, mais c’est lui qui va faire progres­ser tout le monde ou s’as­su­rer qu’on ne parte pas n’im­porte où. Il est souvent mana­ger mais pas forcé­ment, par contre il y a toujours un aspect de mentor et donc donc pas très loin de l’en­ca­dre­ment.</li><li>Expert : C’est lui le plus pointu mais pas forcé­ment le plus expé­ri­menté. Parfois il est même rela­ti­ve­ment jeune par rapport aux autres. Il n’y a pas forcé­ment besoin d’ex­pert dans toutes les équipes donc ce n’est pas forcé­ment un débou­ché facile. </li><li>Lead : Souvent avec du bagage tech­nique signi­fi­ca­tif mais pas forcé­ment un expert. Souvent assez expé­ri­menté mais pas forcé­ment <em>le</em> senior non plus. Souvent avec une dose d’en­ca­dre­ment mais pas forcé­ment non plus. J’at­tends de lui qu’il dirige l’équipe, l’or­ga­nise, donne l’im­pul­sion, comprenne et appré­hende les enjeux, y compris les équi­libres busi­ness, plan­ning, main­te­nance, etc. C’est souvent lui qui s’en­gage et prend les respon­sa­bi­li­tés, et qui sait parler avec tout le monde et a tendance a être suivi par tout le monde.</li></ul>

<p>Les étiquettes sont forcé­ment limi­ta­tives. Ce ne sont pas les seules façons de voir les choses mais ça permet de mettre des nom sur des rôles et des attentes.</p>

<p>Un déve­lop­peur avec beau­coup d’an­cien­neté est juste un déve­lop­peur avec beau­coup d’an­cien­neté. S’il n’agit pas comme tel, son ancien­neté ne le trans­forme pas de fait en senior, en expert ou en lead. </p>

<p>Se conten­ter de ne se préoc­cu­per que de son code person­nel tout en ayant 5 ou 10 ans d’ex­pé­rience est tout à fait respec­table, mais si on ne progresse que peu le salaire en fera autant.</p>

<p><hr class="wp-block-separator"/><p>Ce qui précède est démul­ti­plié par un effet de levier.</p></p>
<p>Si vous impac­tez plusieurs personnes, vous pouvez géné­rer une valeur supé­rieure à ce que vous pour­riez obte­nir isolé­ment. Amélio­rez les condi­tions de travail d’une équipe, les dix personnes concer­nées n’aug­men­te­ront peut-être leur produc­ti­vité que 5 % chacun, mais cumulé c’est aussi perti­nent qu’aug­men­ter votre effi­ca­cité person­nelle de 50 %… et bien plus facile.</p>

<p>Quand l’amé­lio­ra­tion de produc­ti­vité indi­vi­duelle baisse, agir sur le collec­tif a un meilleur retour sur inves­tis­se­ment. Dans mes rôles plus haut, c’est ce que font le senior et le lead. </p>

<p>L’ex­pert, non seule­ment plus rare, est aussi un rôle plus diffi­cile parce que son effet de levier est beau­coup plus complexe à obte­nir (et à quan­ti­fier). Or, quand les déve­lop­peurs parlent d’une progres­sion de carrière « sans mana­ge­ment », ils ont tendance à imagi­ner un expert.</p>

<p>Je pense que le mythe du « il faut faire mana­ger » vient en partie de là. Un déve­lop­peur avec beau­coup d’ex­pé­rience qui ne perçoit pas son rôle collec­tif a besoin de faire une sacré diffé­rence de produc­tion indi­vi­duelle par rapport aux plus jeunes pour justi­fier son salaire. Au bout d’un moment ça n’est plus viable et le salaire stagne. Le problème n’est pas de faire du mana­ge­ment ou pas, mais de lever un peu la tête pour voir ce qu’on peut appor­ter, où et comment.</p>

<p><hr class="wp-block-separator"/><p>Post-scrip­tum : On vous intro­ni­sera parfois expli­ci­te­ment comme lead alors que vous ne l’étiez pas aupa­ra­vant, plus rare­ment comme expert. Ça n’ar­ri­vera quasi­ment jamais comme senior. De mon expé­rience dire à quelqu’un « désor­mais tu es senior » n’a jamais fonc­tionné. C’est quand on l’est et qu’on agit comme tel qu’on peut ensuite s’y faire recon­naître.</p></p>
</article>


<hr>

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

+ 77
- 0
cache/2020/874765e437a144748e9438d272b1177a/index.md View File

title: Vieux développeur, pas manager
url: https://n.survol.fr/n/vieux-developpeur-pas-manager
hash_url: 874765e437a144748e9438d272b1177a

<p>J’en­tends trop souvent des déve­lop­peurs se plaindre d’être forcés de passer dans le mana­ge­ment pour progres­ser en salaire. </p>



<p>Déjà ça ne reflète pas la réalité. On est dans un métier où le salaire peut doubler avec l’an­cien­neté. Je doute que ce soit vrai pour tant de métiers que ça dans le privé, pas sans chan­ger tota­le­ment de rôle voire de métier.</p>



<hr class="wp-block-separator"/><p>L’enjeu est cepen­dant que, effec­ti­ve­ment, la produc­ti­vité indi­vi­duelle n’est pas propor­tion­nelle avec l’an­cien­neté. On progresse souvent bien plus les premières années que les suivantes. </p>



<p>À péri­mètre iden­tique, on voit plus faci­le­ment la diffé­rence entre deux déve­lop­peurs avec 2 et 5 ans d’ex­pé­rience qu’entre deux déve­lop­peurs avec 10 et 13 ans d’ex­pé­rience. </p>



<p>Rien d’anor­mal, donc, que la progres­sion sala­riale le reflète.</p>



<p>Ce n’est pas « la France qui est en retard sur ces ques­tions », c’est juste l’ap­pli­ca­tion du système de marché. Le salaire dépend de ce que vous appor­tez, pas de votre ancien­neté.</p>



<hr class="wp-block-separator"/><p>L’avan­tage c’est qu’a­vec l’ex­pé­rience, norma­le­ment, vous pouvez appor­ter plus que votre code. Le péri­mètre n’a aucune raison d’être iden­tique avec les années.</p>



<p>Vous pouvez former les plus jeunes et les faire progres­ser. Vous pouvez commu­niquer avec le busi­ness, avec la commu­ni­ca­tion, avec le légal, faire l’in­ter­face, comprendre les enjeux de chacun et propo­ser des solu­tions. Vous pouvez parler coût, main­te­nance et stra­té­gie. Vous pouvez iden­ti­fier les problèmes et les solu­tions, amélio­rer l’or­ga­ni­sa­tion de l’équipe. Etc. </p>



<p>L’idée c’est de lever la tête de son code et commen­cer à embras­ser un péri­mètre plus large. Vous avez de la chance : Contrai­re­ment à beau­coup d’autres domaines, vous pouvez faire ça sans chan­ger de métier (et sans forcé­ment deve­nir mana­ger).</p>



<p>Pour ma part j’uti­lise ces termes : </p>



<ul><li>Senior : Il va guider, orga­ni­ser, former, servir de mentor ou de sage. Ce n’est pas forcé­ment le plus expert, ni même celui qui a le plus d’an­cien­neté, mais c’est lui qui va faire progres­ser tout le monde ou s’as­su­rer qu’on ne parte pas n’im­porte où. Il est souvent mana­ger mais pas forcé­ment, par contre il y a toujours un aspect de mentor et donc donc pas très loin de l’en­ca­dre­ment.</li><li>Expert : C’est lui le plus pointu mais pas forcé­ment le plus expé­ri­menté. Parfois il est même rela­ti­ve­ment jeune par rapport aux autres. Il n’y a pas forcé­ment besoin d’ex­pert dans toutes les équipes donc ce n’est pas forcé­ment un débou­ché facile. </li><li>Lead : Souvent avec du bagage tech­nique signi­fi­ca­tif mais pas forcé­ment un expert. Souvent assez expé­ri­menté mais pas forcé­ment <em>le</em> senior non plus. Souvent avec une dose d’en­ca­dre­ment mais pas forcé­ment non plus. J’at­tends de lui qu’il dirige l’équipe, l’or­ga­nise, donne l’im­pul­sion, comprenne et appré­hende les enjeux, y compris les équi­libres busi­ness, plan­ning, main­te­nance, etc. C’est souvent lui qui s’en­gage et prend les respon­sa­bi­li­tés, et qui sait parler avec tout le monde et a tendance a être suivi par tout le monde.</li></ul><p>Les étiquettes sont forcé­ment limi­ta­tives. Ce ne sont pas les seules façons de voir les choses mais ça permet de mettre des nom sur des rôles et des attentes.</p>



<p>Un déve­lop­peur avec beau­coup d’an­cien­neté est juste un déve­lop­peur avec beau­coup d’an­cien­neté. S’il n’agit pas comme tel, son ancien­neté ne le trans­forme pas de fait en senior, en expert ou en lead. </p>



<p>Se conten­ter de ne se préoc­cu­per que de son code person­nel tout en ayant 5 ou 10 ans d’ex­pé­rience est tout à fait respec­table, mais si on ne progresse que peu le salaire en fera autant.</p>



<hr class="wp-block-separator"/><p>Ce qui précède est démul­ti­plié par un effet de levier.</p>



<p>Si vous impac­tez plusieurs personnes, vous pouvez géné­rer une valeur supé­rieure à ce que vous pour­riez obte­nir isolé­ment. Amélio­rez les condi­tions de travail d’une équipe, les dix personnes concer­nées n’aug­men­te­ront peut-être leur produc­ti­vité que 5 % chacun, mais cumulé c’est aussi perti­nent qu’aug­men­ter votre effi­ca­cité person­nelle de 50 %… et bien plus facile.</p>



<p>Quand l’amé­lio­ra­tion de produc­ti­vité indi­vi­duelle baisse, agir sur le collec­tif a un meilleur retour sur inves­tis­se­ment. Dans mes rôles plus haut, c’est ce que font le senior et le lead. </p>



<p>L’ex­pert, non seule­ment plus rare, est aussi un rôle plus diffi­cile parce que son effet de levier est beau­coup plus complexe à obte­nir (et à quan­ti­fier). Or, quand les déve­lop­peurs parlent d’une progres­sion de carrière « sans mana­ge­ment », ils ont tendance à imagi­ner un expert.</p>



<p>Je pense que le mythe du « il faut faire mana­ger » vient en partie de là. Un déve­lop­peur avec beau­coup d’ex­pé­rience qui ne perçoit pas son rôle collec­tif a besoin de faire une sacré diffé­rence de produc­tion indi­vi­duelle par rapport aux plus jeunes pour justi­fier son salaire. Au bout d’un moment ça n’est plus viable et le salaire stagne. Le problème n’est pas de faire du mana­ge­ment ou pas, mais de lever un peu la tête pour voir ce qu’on peut appor­ter, où et comment.</p>



<hr class="wp-block-separator"/><p>Post-scrip­tum : On vous intro­ni­sera parfois expli­ci­te­ment comme lead alors que vous ne l’étiez pas aupa­ra­vant, plus rare­ment comme expert. Ça n’ar­ri­vera quasi­ment jamais comme senior. De mon expé­rience dire à quelqu’un « désor­mais tu es senior » n’a jamais fonc­tionné. C’est quand on l’est et qu’on agit comme tel qu’on peut ensuite s’y faire recon­naître.</p>

+ 155
- 0
cache/2020/911b72ae5d6e140268adf8591aae7df3/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://adactio.com/journal/16404">

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

<article>
<h1>Journal-Hydration</h1>
<h2><a href="https://adactio.com/journal/16404">Source originale du contenu</a></h2>
<p>As you may have noticed, <a href="https://adactio.com/tags/progressive%20enhancement">I’m a fan of progressive enhancement</a>.</p>

<p>It’s not cool. It’s often at odds with “modern” web development, so I end up looking like an old man yelling at a cloud to get off my lawn. Or something.</p>

<p>At its heart though, progressive enhancement seems fairly uncontroversial and inoffensive to me. It’s an approach. A mindset. Here’s how I describe it in <a href="https://resilientwebdesign.com/chapter6/#Identify%20core%20functionality"><cite>Resilient Web Design</cite></a>:</p>

<ol>
<li>Identify core functionality.</li>
<li>Make that functionality available using the simplest possible technology.</li>
<li>Enhance!</li>
</ol>

<p>Progressive enhancement makes use of <a href="https://adactio.com/journal/14327">the principle of least power</a>:</p>

<blockquote>
<p>Choose the least powerful language suitable for a given purpose.</p>
</blockquote>

<p>That’s step two of the three-step process. But the third step is vital.</p>

<p>I think a lot of the hostility towards progressive enhancement comes from a misunderstanding of that three-step process, perhaps thinking that it stops at step two. I’m sure that some have intrepreted progressive enhancement as <em>preventing</em> developers from using the latest and greatest technology. Nothing could be further from the truth!</p>

<blockquote>
<p>Taking a layered approach to building on the web gives you permission to try cutting‐edge JavaScript APIs, regardless of how many or how few browsers currently implement them.</p>
</blockquote>

<p>The most common misunderstanding of progressive enhancement is that it’s inherently about JavaScript. That’s not true. You can apply progressive enhancement at every step of front-end development: HTML, CSS, and JavaScript.</p>

<p>But because of JavaScript’s strict error-handling model (at least compared to HTML and CSS), it’s in <a href="https://adamsilver.io/articles/javascript-isnt-always-available-and-its-not-the-users-fault/">the JavaScript layer</a> that the lack of a progressive enhancement mindset is most often felt.</p>

<p>That’s why I was saddened by the rise of frameworks and mindsets that <em>assume</em> the availability of JavaScript. Single page apps generally follow this assumption. Everything is delivered via JavaScript: content, markup, styles, and behaviour.</p>

<p>This leads to a terrible situation for performance. The user is left staring at a blank screen, waiting for something—anything!—to appear. Browsers are optimised to stream HTML as soon as they can. Delivering your content via JavaScript rather than HTML means you’re not taking advantage of that optimisation. Your users suffer.</p>

<p>But I was very heartened when I saw the pendulum start to swing back the other way a bit…</p>

<p>Let’s say you’re using a JavaScript framework like React. But the reason you’re using it isn’t because you’re doing anything particularly complex in the browser involving state management. You might be using React because you really like the way it encourages modularity and componentisation.</p>

<p>A few years ago, making a single page app was pretty much the only way you could use React. For you as a developer to experience the benefits of modularity and componentisation, users had to pay the price in the payload (and fragility) of client-side JavaScript.</p>

<p>That’s no longer the case. Now that we can run JavaScript on the server, it’s possible to build in a modular, componentised way and still use progressive enhancement.</p>

<p>When I first heard about <a href="https://www.gatsbyjs.org/">Gatsby</a> and <a href="https://nextjs.org/">Next.js</a>, I thought that was the selling point. Run React on the server; send pre-generated HTML down the wire to the user; then enhance with client-side JavaScript.</p>

<p>But that’s not exactly how it works. The pre-generated HTML isn’t functional. It still needs a bucketload of JavaScript before it can do anything. The actual process is: Run React on the server; send pre-generated HTML down the wire to the user; then send everything again but this time in JavaScript, bundled with the entire React library.</p>

<p>This leads to a situation for users that’s almost worse than before. Instead of staring at a blank screen, now they get HTML lickety-split—excellent! But if they try to interact with what’s on screen, they’ll find that nothing is working yet. Even worse, once the JavaScript is delivered, and is being parsed, they probably can’t even scroll—their device is too busy interpreting all that JavaScript. Your users suffer.</p>

<p>All your content is sent twice. First HTML is sent from the server. These days this is called “server-side rendering”, even though for decades the technical term was “serving a web page” (I’m pretty sure the rendering part happens in a browser). Then a JavaScript library—plus all your bespoke JavaScript—is loaded. Then all your content is loaded <em>again</em> as JSON.</p>

<p>So you’ve got a facade of an interface that you can’t actually interact with until a deluge of JavaScript has been loaded, parsed and executed. The term used for this stage of the process is “hydration”, which makes it sound more like a relaxing treatment from Gwyneth Paltrow than the horrible user experience it is.</p>

<p>The idea is that subsequent navigations—which will happen with Ajax—should be snappy. But the price has already been paid by then. The initial loading experience is jagged and frustrating.</p>

<p>Don’t get me wrong: server-side rendering is <em>great</em> …if what you’re sending from the server is functional. It’s the combination of hollow HTML sent from the server, followed by a huge browser-freezing dump of JavaScript that is an anti-pattern.</p>

<p>This use of server-side rendering followed by hydration <em>feels</em> like progressive enhancement, because it separates out the delivery of markup and scripts. But it’s missing the mindset.</p>

<p>The layered approach of progressive enhancement echoes the separation of concerns in the front-end stack: HTML, CSS, and JavaScript—each layer expressing more power. But while these concepts are related, they’re not interchangable. Separating out the layers of your tech stack isn’t necessarily progressive enhancement. If you have some HTML that relies on JavaScript to be useful, then there’s no benefit in separating that HTML into a separate payload. The HTML that you initially send down the wire needs to be functional (at least at a basic level) before the JavaScript arrives.</p>

<p>I was a little disappointed to see Kyle Simpson—who I admire greatly—conflate separation of concerns with progressive enhancement in <a href="https://www.youtube.com/watch?v=HVSkcnIJEC0">his talk from JSCamp 2019</a>:</p>

<blockquote>
<p>This content is here. I can see it, and it’s even styled. But I can’t click on the damn button because nothing has loaded in the JavaScript layer yet.</p>

<p>Anybody experienced that where you’ve been on a web page and it’s not really fully functional yet? I can see something but I can’t actually make any usage of it yet.</p>

<p>These are all things that cropped out of our thought process that said: “Let’s build the web in layers. Let’s deliver it progressively in layers. Because that’s morally right. We call this progressive enhancement. And let’s not worry too much about all these potential user experience flaws that may happen.”</p>
</blockquote>

<p>That’s a spot-on description of server-side rendering and hydration, but it’s a gross mischaracterisation of progressive enhancement.</p>

<p>That button that requires JavaScript to work? That should’ve been generated with JavaScript. (For example, if you’re building a complex web app, consider sending a read-only view down the wire in HTML—then add any interactive interface elements with JavaScript in the browser.)</p>

<p>If people are equating progressive enhancement with thoughtless server-side rendering and hydration, then I can see why they’d be hostile towards it.</p>

<p>Users would be better served with <a href="https://vimeo.com/190834530#t=7m6s">unprogressive non-enhancement</a>:</p>

<blockquote>
<p>You take some structured content, which follows the vertical flow of the document in a way that everyone understands.</p>

<p>Which people traverse easily by either dragging their scroll bar with their mouse, or operating the keyboard using the up and down keys, or using the spacebar.</p>

<p>Or if they’re using a touch device, simply flicking backwards and forwards in that easy way that we’ve all become used to. What you do is you take that, and you fucking well leave it alone.</p>
</blockquote>

<p>Alas, that’s not what tools like Gatsby offer. The latest post on their blog is called <a href="https://www.gatsbyjs.org/blog/2020-01-30-why-gatsby-is-better-with-javascript/"><cite>Why Gatsby is better with JavaScript</cite></a>:</p>

<blockquote>
<p>But what about sites or pages where there is no client-side interactivity? Even for those pages, Gatsby offers performance benefits by including JavaScript.</p>
</blockquote>

<p>I beg to differ.</p>

<p>(By the way, that same blog post also initially tried to equate the performance hit of client-side JavaScript with the performance hit of images. <a href="https://hankchizljaw.com/wrote/honesty-is-the-best-policy/">Andy explains why that’s disingenuous</a>.)</p>

<p>Hope is on the horizon for React in the form of partial hydration. I sincerely hope that it will become the default way of balancing server-side rendering with just-in-time client-side interaction.</p>

<p>The situation we have now is the worst of both worlds: server-side rendering followed by a tsunami of hydration. It has a whiff of progressive enhancement to it (because there’s a cosmetic separation of concerns) but it has none of the user benefits.</p>
</article>


<hr>

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

+ 103
- 0
cache/2020/911b72ae5d6e140268adf8591aae7df3/index.md View File

title: Journal-Hydration
url: https://adactio.com/journal/16404
hash_url: 911b72ae5d6e140268adf8591aae7df3

<p>As you may have noticed, <a href="https://adactio.com/tags/progressive%20enhancement">I’m a fan of progressive enhancement</a>.</p>

<p>It’s not cool. It’s often at odds with “modern” web development, so I end up looking like an old man yelling at a cloud to get off my lawn. Or something.</p>

<p>At its heart though, progressive enhancement seems fairly uncontroversial and inoffensive to me. It’s an approach. A mindset. Here’s how I describe it in <a href="https://resilientwebdesign.com/chapter6/#Identify%20core%20functionality"><cite>Resilient Web Design</cite></a>:</p>

<ol>
<li>Identify core functionality.</li>
<li>Make that functionality available using the simplest possible technology.</li>
<li>Enhance!</li>
</ol>

<p>Progressive enhancement makes use of <a href="https://adactio.com/journal/14327">the principle of least power</a>:</p>

<blockquote>
<p>Choose the least powerful language suitable for a given purpose.</p>
</blockquote>

<p>That’s step two of the three-step process. But the third step is vital.</p>

<p>I think a lot of the hostility towards progressive enhancement comes from a misunderstanding of that three-step process, perhaps thinking that it stops at step two. I’m sure that some have intrepreted progressive enhancement as <em>preventing</em> developers from using the latest and greatest technology. Nothing could be further from the truth!</p>

<blockquote>
<p>Taking a layered approach to building on the web gives you permission to try cutting‐edge JavaScript APIs, regardless of how many or how few browsers currently implement them.</p>
</blockquote>

<p>The most common misunderstanding of progressive enhancement is that it’s inherently about JavaScript. That’s not true. You can apply progressive enhancement at every step of front-end development: HTML, CSS, and JavaScript.</p>

<p>But because of JavaScript’s strict error-handling model (at least compared to HTML and CSS), it’s in <a href="https://adamsilver.io/articles/javascript-isnt-always-available-and-its-not-the-users-fault/">the JavaScript layer</a> that the lack of a progressive enhancement mindset is most often felt.</p>

<p>That’s why I was saddened by the rise of frameworks and mindsets that <em>assume</em> the availability of JavaScript. Single page apps generally follow this assumption. Everything is delivered via JavaScript: content, markup, styles, and behaviour.</p>

<p>This leads to a terrible situation for performance. The user is left staring at a blank screen, waiting for something—anything!—to appear. Browsers are optimised to stream HTML as soon as they can. Delivering your content via JavaScript rather than HTML means you’re not taking advantage of that optimisation. Your users suffer.</p>

<p>But I was very heartened when I saw the pendulum start to swing back the other way a bit…</p>

<p>Let’s say you’re using a JavaScript framework like React. But the reason you’re using it isn’t because you’re doing anything particularly complex in the browser involving state management. You might be using React because you really like the way it encourages modularity and componentisation.</p>

<p>A few years ago, making a single page app was pretty much the only way you could use React. For you as a developer to experience the benefits of modularity and componentisation, users had to pay the price in the payload (and fragility) of client-side JavaScript.</p>

<p>That’s no longer the case. Now that we can run JavaScript on the server, it’s possible to build in a modular, componentised way and still use progressive enhancement.</p>

<p>When I first heard about <a href="https://www.gatsbyjs.org/">Gatsby</a> and <a href="https://nextjs.org/">Next.js</a>, I thought that was the selling point. Run React on the server; send pre-generated HTML down the wire to the user; then enhance with client-side JavaScript.</p>

<p>But that’s not exactly how it works. The pre-generated HTML isn’t functional. It still needs a bucketload of JavaScript before it can do anything. The actual process is: Run React on the server; send pre-generated HTML down the wire to the user; then send everything again but this time in JavaScript, bundled with the entire React library.</p>

<p>This leads to a situation for users that’s almost worse than before. Instead of staring at a blank screen, now they get HTML lickety-split—excellent! But if they try to interact with what’s on screen, they’ll find that nothing is working yet. Even worse, once the JavaScript is delivered, and is being parsed, they probably can’t even scroll—their device is too busy interpreting all that JavaScript. Your users suffer.</p>

<p>All your content is sent twice. First HTML is sent from the server. These days this is called “server-side rendering”, even though for decades the technical term was “serving a web page” (I’m pretty sure the rendering part happens in a browser). Then a JavaScript library—plus all your bespoke JavaScript—is loaded. Then all your content is loaded <em>again</em> as JSON.</p>

<p>So you’ve got a facade of an interface that you can’t actually interact with until a deluge of JavaScript has been loaded, parsed and executed. The term used for this stage of the process is “hydration”, which makes it sound more like a relaxing treatment from Gwyneth Paltrow than the horrible user experience it is.</p>

<p>The idea is that subsequent navigations—which will happen with Ajax—should be snappy. But the price has already been paid by then. The initial loading experience is jagged and frustrating.</p>

<p>Don’t get me wrong: server-side rendering is <em>great</em> …if what you’re sending from the server is functional. It’s the combination of hollow HTML sent from the server, followed by a huge browser-freezing dump of JavaScript that is an anti-pattern.</p>

<p>This use of server-side rendering followed by hydration <em>feels</em> like progressive enhancement, because it separates out the delivery of markup and scripts. But it’s missing the mindset.</p>

<p>The layered approach of progressive enhancement echoes the separation of concerns in the front-end stack: HTML, CSS, and JavaScript—each layer expressing more power. But while these concepts are related, they’re not interchangable. Separating out the layers of your tech stack isn’t necessarily progressive enhancement. If you have some HTML that relies on JavaScript to be useful, then there’s no benefit in separating that HTML into a separate payload. The HTML that you initially send down the wire needs to be functional (at least at a basic level) before the JavaScript arrives.</p>

<p>I was a little disappointed to see Kyle Simpson—who I admire greatly—conflate separation of concerns with progressive enhancement in <a href="https://www.youtube.com/watch?v=HVSkcnIJEC0">his talk from JSCamp 2019</a>:</p>

<blockquote>
<p>This content is here. I can see it, and it’s even styled. But I can’t click on the damn button because nothing has loaded in the JavaScript layer yet.</p>
<p>Anybody experienced that where you’ve been on a web page and it’s not really fully functional yet? I can see something but I can’t actually make any usage of it yet.</p>
<p>These are all things that cropped out of our thought process that said: “Let’s build the web in layers. Let’s deliver it progressively in layers. Because that’s morally right. We call this progressive enhancement. And let’s not worry too much about all these potential user experience flaws that may happen.”</p>
</blockquote>

<p>That’s a spot-on description of server-side rendering and hydration, but it’s a gross mischaracterisation of progressive enhancement.</p>

<p>That button that requires JavaScript to work? That should’ve been generated with JavaScript. (For example, if you’re building a complex web app, consider sending a read-only view down the wire in HTML—then add any interactive interface elements with JavaScript in the browser.)</p>

<p>If people are equating progressive enhancement with thoughtless server-side rendering and hydration, then I can see why they’d be hostile towards it.</p>

<p>Users would be better served with <a href="https://vimeo.com/190834530#t=7m6s">unprogressive non-enhancement</a>:</p>

<blockquote>
<p>You take some structured content, which follows the vertical flow of the document in a way that everyone understands.</p>
<p>Which people traverse easily by either dragging their scroll bar with their mouse, or operating the keyboard using the up and down keys, or using the spacebar.</p>
<p>Or if they’re using a touch device, simply flicking backwards and forwards in that easy way that we’ve all become used to. What you do is you take that, and you fucking well leave it alone.</p>
</blockquote>

<p>Alas, that’s not what tools like Gatsby offer. The latest post on their blog is called <a href="https://www.gatsbyjs.org/blog/2020-01-30-why-gatsby-is-better-with-javascript/"><cite>Why Gatsby is better with JavaScript</cite></a>:</p>

<blockquote>
<p>But what about sites or pages where there is no client-side interactivity? Even for those pages, Gatsby offers performance benefits by including JavaScript.</p>
</blockquote>

<p>I beg to differ.</p>

<p>(By the way, that same blog post also initially tried to equate the performance hit of client-side JavaScript with the performance hit of images. <a href="https://hankchizljaw.com/wrote/honesty-is-the-best-policy/">Andy explains why that’s disingenuous</a>.)</p>

<p>Hope is on the horizon for React in the form of partial hydration. I sincerely hope that it will become the default way of balancing server-side rendering with just-in-time client-side interaction.</p>

<p>The situation we have now is the worst of both worlds: server-side rendering followed by a tsunami of hydration. It has a whiff of progressive enhancement to it (because there’s a cosmetic separation of concerns) but it has none of the user benefits.</p>

+ 99
- 0
cache/2020/a70068c881eba36604b2f4f8aec54670/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://daverupert.com/2020/02/html-the-inaccessible-parts/">

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

<article>
<h1>HTML: The Inaccessible Parts</h1>
<h2><a href="https://daverupert.com/2020/02/html-the-inaccessible-parts/">Source originale du contenu</a></h2>
<p>I’ve always abided in the idea that “HTML is accessible by default and then we come along and mess it up.” In a lot places this is very true and by just using a suitable HTML element instead of a generic <code>div</code> or <code>span</code> we can have a big Accessibility impact.</p>

<p>But that’s not always the case. There are some cases where even using plain ol’ HTML causes accessibility problems. I get frustrated and want to quit web development whenever I read about these types of issues. Because if browsers can’t get this right, what hope is there for the rest of us. I’m trying to do the best I can, use the platform, but seems like there’s a dozen “gotchas” lurking in the shadows.</p>

<p>I’m going to start rounding up those HTML shortfalls in this here post as a little living document that I can personally reference every time I write some HTML.</p>

<p><hr/>
<p><code>&lt;input type="number"&gt;</code><br/>
Gov.UK finds <a href="https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/">Number Inputs aren’t inclusive</a>. (2020)</p>
<p><code>&lt;input type="date"&gt;</code><br/>
Graham Armfield finds <a href="https://www.hassellinclusion.com/blog/input-type-date-ready-for-use/">Date Inputs not ready for use</a>. (2019)</p>
<p><code>&lt;input type="search"&gt;</code><br/>
Adrian Roselli points out <a href="https://adrianroselli.com/2019/07/ignore-typesearch.html">Search Inputs aren’t as useful as originally thought</a>. (2019)</p>
<p><code>&lt;select multiple&gt;</code><br/>
Sarah Higley tests with actual users and finds <a href="https://www.24a11y.com/2019/select-your-poison-part-2/">Select Multiple has a 25.3% success rate</a>. (2019)</p>
<p><code>&lt;progress&gt;</code><br/>
Scott O’Hara finds <a href="https://scottaohara.github.io/a11y_styled_form_controls/src/progress-bar/">numerous errors with the Progress element</a>. (2018)</p>
<p><code>&lt;meter&gt;</code><br/>
Scott O’Hara finds <a href="https://scottaohara.github.io/a11y_styled_form_controls/src/meter/">more numerous errors with the rare Meter element</a>. (2018)</p>
<p><code>&lt;dialog&gt;</code><br/>
Scott O’Hara declares <a href="https://www.scottohara.me/blog/2019/03/05/open-dialog.html">Dialog not ready for production</a>. (2019)</p>
<p><code>&lt;details&gt;&lt;summary&gt;</code><br/>
Adrian Roselli feels <a href="https://adrianroselli.com/2019/04/details-summary-are-not-insert-control-here.html">Details/Summary are only good in limited contexts</a> (e.g. <a href="https://daverupert.com/2019/12/why-details-is-not-an-accordion/">Details doesn’t work as an Accordion</a>, which is what I would expect). (2019)</p>
<p><code>&lt;video&gt;</code><br/>
Scott Vinkle goes with a third-party player after seeing that <a href="https://scottvinkle.me/blogs/blog/how-accessible-is-the-html-video-player">the native HTML Video Player is a very inconsistent experience for screen readers</a>. (2019)</p>
<p><code>&lt;div onclick&gt;</code><br/>
Technically this is JavaScript, but the screen reader <a href="https://github.com/carbon-design-system/carbon/issues/986#issuecomment-412968245">JAWS announces “Clickable” when the element or one its ancestors have a click event handler</a>. This is a bummer for trying to make tap areas bigger. (2018)</p>
<p><code>&lt;div aria-label&gt;</code><br/>
Paciello Group educates how <a href="https://developer.paciellogroup.com/blog/2017/07/short-note-on-aria-label-aria-labelledby-and-aria-describedby/"><code>aria-label</code>, <code>aria-labelledby</code> , and <code>aria-describedby</code> only work on certain elements… and not <code>&lt;div&gt;</code> elements</a>. It’s not very intuitive to me that <code>aria-label</code> would only work <em>sometimes</em> and it seems like something linters like <a href="https://www.deque.com/axe/">axe</a> should catch. (2017)</p>
<p><code>&lt;a href&gt;&lt;div&gt;Block Links&lt;/div&gt;&lt;/a&gt;</code><br/>
Adrian Roselli finds <a href="https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html">Block Links in a Card UI have usability issues</a>. (2020)</p>
<p><code>aria-controls</code><br/>
The <code>aria-controls</code> attribute is a great way to establish a relationship between two elements and is in tons of tutorials… only one problem… Heydon Pickering points out <a href="https://heydonworks.com/article/aria-controls-is-poop/"><code>aria-controls</code> doesn’t do anything</a>. (2016)</p>
<p><code>role="tablist"</code><br/>
After some user testing, Jeff Smith discovered <a href="http://simplyaccessible.com/article/danger-aria-tabs/">the best way to make accessible tabs is to remove <code>role="tablist"</code>, <code>role="tab"</code>, <code>role="tabpanel"</code> from their tabs</a>. FWIW, these <a href="https://medium.theuxblog.com/danger-testing-accessibility-with-real-people-4515f72db648">findings were contested in a 3,900 word blog post by Léonie Watson</a>. (2016)</p>
<hr/>
<p>Your mileage may vary, test with actual users. I’ll do my best to update this as the situation evolves glacially over the next 20 years.</p>
<p><em>Edit 2/28/2020:</em></p>
<ul>
<li>Added the year to each link to help reflect the potential “staleness” of the information.</li>
<li>Added a note to test with actual users.</li>
<li>Added a link to Léonie Watson’s rebuttal under the <code>tablist</code> discussion.</li>
</ul></p>
</article>


<hr>

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

+ 44
- 0
cache/2020/a70068c881eba36604b2f4f8aec54670/index.md View File

title: HTML: The Inaccessible Parts
url: https://daverupert.com/2020/02/html-the-inaccessible-parts/
hash_url: a70068c881eba36604b2f4f8aec54670

<p>I’ve always abided in the idea that “HTML is accessible by default and then we come along and mess it up.” In a lot places this is very true and by just using a suitable HTML element instead of a generic <code>div</code> or <code>span</code> we can have a big Accessibility impact.</p>
<p>But that’s not always the case. There are some cases where even using plain ol’ HTML causes accessibility problems. I get frustrated and want to quit web development whenever I read about these types of issues. Because if browsers can’t get this right, what hope is there for the rest of us. I’m trying to do the best I can, use the platform, but seems like there’s a dozen “gotchas” lurking in the shadows.</p>
<p>I’m going to start rounding up those HTML shortfalls in this here post as a little living document that I can personally reference every time I write some HTML.</p>
<hr/>
<p><code>&lt;input type="number"&gt;</code><br/>
Gov.UK finds <a href="https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/">Number Inputs aren’t inclusive</a>. (2020)</p>
<p><code>&lt;input type="date"&gt;</code><br/>
Graham Armfield finds <a href="https://www.hassellinclusion.com/blog/input-type-date-ready-for-use/">Date Inputs not ready for use</a>. (2019)</p>
<p><code>&lt;input type="search"&gt;</code><br/>
Adrian Roselli points out <a href="https://adrianroselli.com/2019/07/ignore-typesearch.html">Search Inputs aren’t as useful as originally thought</a>. (2019)</p>
<p><code>&lt;select multiple&gt;</code><br/>
Sarah Higley tests with actual users and finds <a href="https://www.24a11y.com/2019/select-your-poison-part-2/">Select Multiple has a 25.3% success rate</a>. (2019)</p>
<p><code>&lt;progress&gt;</code><br/>
Scott O’Hara finds <a href="https://scottaohara.github.io/a11y_styled_form_controls/src/progress-bar/">numerous errors with the Progress element</a>. (2018)</p>
<p><code>&lt;meter&gt;</code><br/>
Scott O’Hara finds <a href="https://scottaohara.github.io/a11y_styled_form_controls/src/meter/">more numerous errors with the rare Meter element</a>. (2018)</p>
<p><code>&lt;dialog&gt;</code><br/>
Scott O’Hara declares <a href="https://www.scottohara.me/blog/2019/03/05/open-dialog.html">Dialog not ready for production</a>. (2019)</p>
<p><code>&lt;details&gt;&lt;summary&gt;</code><br/>
Adrian Roselli feels <a href="https://adrianroselli.com/2019/04/details-summary-are-not-insert-control-here.html">Details/Summary are only good in limited contexts</a> (e.g. <a href="https://daverupert.com/2019/12/why-details-is-not-an-accordion/">Details doesn’t work as an Accordion</a>, which is what I would expect). (2019)</p>
<p><code>&lt;video&gt;</code><br/>
Scott Vinkle goes with a third-party player after seeing that <a href="https://scottvinkle.me/blogs/blog/how-accessible-is-the-html-video-player">the native HTML Video Player is a very inconsistent experience for screen readers</a>. (2019)</p>
<p><code>&lt;div onclick&gt;</code><br/>
Technically this is JavaScript, but the screen reader <a href="https://github.com/carbon-design-system/carbon/issues/986#issuecomment-412968245">JAWS announces “Clickable” when the element or one its ancestors have a click event handler</a>. This is a bummer for trying to make tap areas bigger. (2018)</p>
<p><code>&lt;div aria-label&gt;</code><br/>
Paciello Group educates how <a href="https://developer.paciellogroup.com/blog/2017/07/short-note-on-aria-label-aria-labelledby-and-aria-describedby/"><code>aria-label</code>, <code>aria-labelledby</code> , and <code>aria-describedby</code> only work on certain elements… and not <code>&lt;div&gt;</code> elements</a>. It’s not very intuitive to me that <code>aria-label</code> would only work <em>sometimes</em> and it seems like something linters like <a href="https://www.deque.com/axe/">axe</a> should catch. (2017)</p>
<p><code>&lt;a href&gt;&lt;div&gt;Block Links&lt;/div&gt;&lt;/a&gt;</code><br/>
Adrian Roselli finds <a href="https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html">Block Links in a Card UI have usability issues</a>. (2020)</p>
<p><code>aria-controls</code><br/>
The <code>aria-controls</code> attribute is a great way to establish a relationship between two elements and is in tons of tutorials… only one problem… Heydon Pickering points out <a href="https://heydonworks.com/article/aria-controls-is-poop/"><code>aria-controls</code> doesn’t do anything</a>. (2016)</p>
<p><code>role="tablist"</code><br/>
After some user testing, Jeff Smith discovered <a href="http://simplyaccessible.com/article/danger-aria-tabs/">the best way to make accessible tabs is to remove <code>role="tablist"</code>, <code>role="tab"</code>, <code>role="tabpanel"</code> from their tabs</a>. FWIW, these <a href="https://medium.theuxblog.com/danger-testing-accessibility-with-real-people-4515f72db648">findings were contested in a 3,900 word blog post by Léonie Watson</a>. (2016)</p>
<hr/>
<p>Your mileage may vary, test with actual users. I’ll do my best to update this as the situation evolves glacially over the next 20 years.</p>
<p><em>Edit 2/28/2020:</em></p>
<ul>
<li>Added the year to each link to help reflect the potential “staleness” of the information.</li>
<li>Added a note to test with actual users.</li>
<li>Added a link to Léonie Watson’s rebuttal under the <code>tablist</code> discussion.</li>
</ul>

+ 228
- 0
cache/2020/ac3266635585d387973da1c64b546990/index.html
File diff suppressed because it is too large
View File


+ 147
- 0
cache/2020/ac3266635585d387973da1c64b546990/index.md
File diff suppressed because it is too large
View File


+ 77
- 0
cache/2020/af5d5f52466dfc2f59718294faa07418/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://garrettdimon.com/2020/visitors-developers-or-machines/">

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

<article>
<h1>Visitors, Developers, or Machines</h1>
<h2><a href="https://garrettdimon.com/2020/visitors-developers-or-machines/">Source originale du contenu</a></h2>
<p>I keep my feet squarely planted in two worlds when it comes to development. One of those is all things front-end, and the other is Ruby (and Rails).</p>

<p>With Ruby/Rails, they’re frequently maligned as a not-serious programming language/framework pair because they focus on developer happiness more than pure performance. They follow a philosophy that <a href="https://m.signalvnoise.com/only-15-of-the-basecamp-operations-budget-is-spent-on-ruby/">the productivity gains from a happy developer far outweigh any performance losses from being less performant</a>. That’s not to say that they outright ignore performance, but it isn’t the only or even primary goal. Nor should it be.</p>

<p>So Ruby gets a bad reputation for not putting performance above all other things. On the other hand, despite a deeper understanding and increased attention to performance in front-end development, the most popular front-end frameworks are going in an entirely different direction. These heavy JavaScript frameworks give some benefit to perceived performance once the JavaScript is loaded and cached, but oftentimes, pages that could be trivially lightweight and work fine end up including significant overhead in the form of frameworks.</p>

<p>I’ve been trying to understand the appeal of these frameworks by giving them an objective chance. I’ve expanded my knowledge of JavaScript and tried to give them the benefit of the doubt. They do have their places, but the only explanation I can come up with is that developers are taking a similar approach as Ruby and focusing on developer convenience and productivity. Only, instead of Ruby’s performance being tied to the CPU level, JavaScript frameworks push the performance burden to the client.</p>

<p>In both cases, the tradeoff happens in the name of developer happiness and productivity, but the strategies have entirely different consequences. With Ruby, the CPU is still (mostly) the responsibility of the development team, and it can be upgraded. With JavaScript, the page weight becomes an externality pushed onto visitors.</p>

<p>Increased bandwidth costs may be somewhat of a concern to the developer, but with the exception of the savviest organizations, I’m not aware of front-end developers giving significant consideration to bandwidth bills. Bandwidth costs might receive lip service, but given that the average page weight has <a href="https://httparchive.org/reports/page-weight">gone from about 500Kb in 2010 to almost 2,000Kb in 2020</a>, the evidence shows it’s not a significant consideration.</p>

<p>The unfortunate reality with pushing the performance burden to the front-end is the lack of reliable connections, and those aren’t just about being hard-wired to fiber or on mobile. Everyone at some point has a less-than-stellar connection even if only from concrete or metal walls and roofs, and it becomes crystal clear when a site works well on a thin connection. Disasters are a great example of this. Connectivity can be incredibly limited when disasters affect infrastructure.</p>

<p>The performance tradeoff isn’t about <em>where</em> the bottleneck is. It’s about <em>who</em> has to carry the burden. It’s one thing for a developer to push the burden onto a server they control. It’s another thing entirely to expect visitors to carry that load when connectivity and device performance isn’t a constant.</p>

<p>Developer productivity is a great metric, but it can’t be isolated from the larger ecosystem. With Ruby, the tradeoff works because nothing is externalized, and it’s barely even a tradeoff these days. But with large front-end JavaScript frameworks, things aren’t just slow. If that JavaScript isn’t able to be loaded for a variety of reasons, sites don’t just become a little slower. They break entirely.</p>

<p>JavaScript isn’t inherently problematic. Using JavaScript in a way that leads to complete failure is the problem. Layering in something like <a href="https://github.com/turbolinks/turbolinks">Turbolinks</a> provides the performance benefits of the larger JavaScript frameworks, but the difference is that Turbolinks is smaller, and, even if it doesn’t load, the site can still work.</p>

<p>There’s promise in the front-end frameworks. They’re not entirely bad or wrong, but the gains in developer productivity shouldn’t come at the expense of the visitor. It may not be fashionable, but rendering usable HTML on the server and then sprinkling in progressive enhancement via CSS and JavaScript is still the best all around experience for the people visiting the site. That’s the direction these frameworks should be heading.</p>
</article>


<hr>

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

+ 25
- 0
cache/2020/af5d5f52466dfc2f59718294faa07418/index.md View File

title: Visitors, Developers, or Machines
url: https://garrettdimon.com/2020/visitors-developers-or-machines/
hash_url: af5d5f52466dfc2f59718294faa07418

<p>I keep my feet squarely planted in two worlds when it comes to development. One of those is all things front-end, and the other is Ruby (and Rails).</p>

<p>With Ruby/Rails, they’re frequently maligned as a not-serious programming language/framework pair because they focus on developer happiness more than pure performance. They follow a philosophy that <a href="https://m.signalvnoise.com/only-15-of-the-basecamp-operations-budget-is-spent-on-ruby/">the productivity gains from a happy developer far outweigh any performance losses from being less performant</a>. That’s not to say that they outright ignore performance, but it isn’t the only or even primary goal. Nor should it be.</p>

<p>So Ruby gets a bad reputation for not putting performance above all other things. On the other hand, despite a deeper understanding and increased attention to performance in front-end development, the most popular front-end frameworks are going in an entirely different direction. These heavy JavaScript frameworks give some benefit to perceived performance once the JavaScript is loaded and cached, but oftentimes, pages that could be trivially lightweight and work fine end up including significant overhead in the form of frameworks.</p>

<p>I’ve been trying to understand the appeal of these frameworks by giving them an objective chance. I’ve expanded my knowledge of JavaScript and tried to give them the benefit of the doubt. They do have their places, but the only explanation I can come up with is that developers are taking a similar approach as Ruby and focusing on developer convenience and productivity. Only, instead of Ruby’s performance being tied to the CPU level, JavaScript frameworks push the performance burden to the client.</p>

<p>In both cases, the tradeoff happens in the name of developer happiness and productivity, but the strategies have entirely different consequences. With Ruby, the CPU is still (mostly) the responsibility of the development team, and it can be upgraded. With JavaScript, the page weight becomes an externality pushed onto visitors.</p>

<p>Increased bandwidth costs may be somewhat of a concern to the developer, but with the exception of the savviest organizations, I’m not aware of front-end developers giving significant consideration to bandwidth bills. Bandwidth costs might receive lip service, but given that the average page weight has <a href="https://httparchive.org/reports/page-weight">gone from about 500Kb in 2010 to almost 2,000Kb in 2020</a>, the evidence shows it’s not a significant consideration.</p>

<p>The unfortunate reality with pushing the performance burden to the front-end is the lack of reliable connections, and those aren’t just about being hard-wired to fiber or on mobile. Everyone at some point has a less-than-stellar connection even if only from concrete or metal walls and roofs, and it becomes crystal clear when a site works well on a thin connection. Disasters are a great example of this. Connectivity can be incredibly limited when disasters affect infrastructure.</p>

<p>The performance tradeoff isn’t about <em>where</em> the bottleneck is. It’s about <em>who</em> has to carry the burden. It’s one thing for a developer to push the burden onto a server they control. It’s another thing entirely to expect visitors to carry that load when connectivity and device performance isn’t a constant.</p>

<p>Developer productivity is a great metric, but it can’t be isolated from the larger ecosystem. With Ruby, the tradeoff works because nothing is externalized, and it’s barely even a tradeoff these days. But with large front-end JavaScript frameworks, things aren’t just slow. If that JavaScript isn’t able to be loaded for a variety of reasons, sites don’t just become a little slower. They break entirely.</p>

<p>JavaScript isn’t inherently problematic. Using JavaScript in a way that leads to complete failure is the problem. Layering in something like <a href="https://github.com/turbolinks/turbolinks">Turbolinks</a> provides the performance benefits of the larger JavaScript frameworks, but the difference is that Turbolinks is smaller, and, even if it doesn’t load, the site can still work.</p>

<p>There’s promise in the front-end frameworks. They’re not entirely bad or wrong, but the gains in developer productivity shouldn’t come at the expense of the visitor. It may not be fashionable, but rendering usable HTML on the server and then sprinkling in progressive enhancement via CSS and JavaScript is still the best all around experience for the people visiting the site. That’s the direction these frameworks should be heading.</p>

+ 73
- 0
cache/2020/afb9fa99e3c43324fbe57b416562b8f9/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://css-tricks.com/why-is-css-frustrating/">

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

<article>
<h1>Why is CSS Frustrating?</h1>
<h2><a href="https://css-tricks.com/why-is-css-frustrating/">Source originale du contenu</a></h2>
<p>Here’s <a href="https://twitter.com/KevinJPowell/status/1231979370446802945">a great thread</a> by Kevin Powell that's making the rounds. He believes so many folks see CSS as a frustrating and annoying language:</p>

<blockquote class="twitter-tweet" data-width="500" data-dnt="true"><p lang="en" dir="ltr">That&#39;s just as unintuitive as JS starting to count at 0, but since you learned that and accept it, it&#39;s fine.<br><br>The real issue isn&#39;t with CSS. If you struggle with it, or ever call it unintuitive, it&#39;s probably because you don&#39;t really understand how CSS is meant to work.</p>&mdash; Kevin Powell (@KevinJPowell) <a href="https://twitter.com/KevinJPowell/status/1231979376830484481?ref_src=twsrc%5Etfw">February 24, 2020</a></blockquote>

<p>Why do people respect JavaScript or other languages enough to learn them inside-out, and yet constantly dunk on CSS? Well, all this reminds me of what Jeremy Keith wrote a while back when he argued that <a href="https://adactio.com/journal/12571">CSS is simple, but not easy</a>:</p>

<blockquote class="wp-block-quote"><p>Unlike a programming language that requires knowledge of loops, variables, and other concepts, CSS is pretty easy to pick up. Maybe it’s because of this that it has gained the reputation of being simple. It <em>is</em> simple in the sense of “not complex”, but that doesn’t mean it’s easy. Mistaking “simple” for “easy” will only lead to heartache.</p><p>I think that’s what’s happened with some programmers coming to CSS for the first time. They’ve heard it’s simple, so they assume it’s easy. But then when they try to use it, it doesn’t work. It must be the fault of the language, because they know that they are smart, and this is supposed to be easy. So they blame the language. They say it’s broken. And so they try to “fix” it by making it conform to a more programmatic way of thinking.</p></blockquote>

<p>There have been time where I’ve sat down with engineers to pair with them about a tricky layout issue and the CSS is treated as being beneath them — as if the language is somehow too unpredictable to warrant learning and mastering. Perhaps this has something to do with the past, where we’ve spent years fighting the way browsers render things differently. But this is mostly a solved problem. I can’t remember the last time I fought against browsers like that.</p>

<p>Instead, I reckon the biggest issue that engineers face — and the reason why they find it all so dang frustrating — is that CSS forces you to face the <em>webishness</em> of the web. Things require fallbacks. You need to take different devices into consideration, and all the different ways of seeing a website: mobile, desktop, no mouse, no keyboard, etc. Sure, you have to deal with that when writing JavaScript, too, but it’s easier to ignore. You can’t ignore the layout of your site being completely broken on a phone.</p>

<p><strong>Side note:</strong> We have <a href="https://css-tricks.com/centering-css-complete-guide/">a guide to centering in CSS</a> not because CSS is busted and dumb, but because there are so many variables to the extent that a simple question like, “How do I center text?” is actually much more complicated than it appears. There’s so much context that’s missed.</p>

<p>This reminds me of one of my favorite blog posts of all time, where Brandon Smith argues that <a href="https://css-tricks.com/css-is-awesome/">CSS is awesome</a> and we should respect the language and learn how it works under the hood:</p>

<blockquote class="wp-block-quote"><p>CSS is hard because its properties interact, often in unexpected ways. Because when you set one of them, you're never just setting that one thing. That one thing combines and bounces off of and contradicts with a dozen other things, including default things that you never actually set yourself.</p><p>One rule of thumb for mitigating this is, <strong>never be more explicit than you need to be</strong>. Web pages are responsive by default. Writing good CSS means leveraging that fact instead of overriding it. Use percentages or viewport units instead of a media query if possible. Use <code>min-width</code> instead of <code>width</code> where you can. Think in terms of rules, in terms of <em>what you really mean to say</em>, instead of just adding properties until things look right. Try to get a feel for how the browser resolves layout and sizing, and make your changes and additions on top of that judiciously. Work with CSS, instead of against it.</p></blockquote>
</article>


<hr>

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

+ 15
- 0
cache/2020/afb9fa99e3c43324fbe57b416562b8f9/index.md View File

title: Why is CSS Frustrating?
url: https://css-tricks.com/why-is-css-frustrating/
hash_url: afb9fa99e3c43324fbe57b416562b8f9

<p>Here’s <a href="https://twitter.com/KevinJPowell/status/1231979370446802945">a great thread</a> by Kevin Powell that's making the rounds. He believes so many folks see CSS as a frustrating and annoying language:</p>

<blockquote class="twitter-tweet" data-width="500" data-dnt="true"><p lang="en" dir="ltr">That&#39;s just as unintuitive as JS starting to count at 0, but since you learned that and accept it, it&#39;s fine.<br><br>The real issue isn&#39;t with CSS. If you struggle with it, or ever call it unintuitive, it&#39;s probably because you don&#39;t really understand how CSS is meant to work.</p>&mdash; Kevin Powell (@KevinJPowell) <a href="https://twitter.com/KevinJPowell/status/1231979376830484481?ref_src=twsrc%5Etfw">February 24, 2020</a></blockquote>

<p>Why do people respect JavaScript or other languages enough to learn them inside-out, and yet constantly dunk on CSS? Well, all this reminds me of what Jeremy Keith wrote a while back when he argued that <a href="https://adactio.com/journal/12571">CSS is simple, but not easy</a>:</p>
<blockquote class="wp-block-quote"><p>Unlike a programming language that requires knowledge of loops, variables, and other concepts, CSS is pretty easy to pick up. Maybe it’s because of this that it has gained the reputation of being simple. It <em>is</em> simple in the sense of “not complex”, but that doesn’t mean it’s easy. Mistaking “simple” for “easy” will only lead to heartache.</p><p>I think that’s what’s happened with some programmers coming to CSS for the first time. They’ve heard it’s simple, so they assume it’s easy. But then when they try to use it, it doesn’t work. It must be the fault of the language, because they know that they are smart, and this is supposed to be easy. So they blame the language. They say it’s broken. And so they try to “fix” it by making it conform to a more programmatic way of thinking.</p></blockquote>
<p>There have been time where I’ve sat down with engineers to pair with them about a tricky layout issue and the CSS is treated as being beneath them — as if the language is somehow too unpredictable to warrant learning and mastering. Perhaps this has something to do with the past, where we’ve spent years fighting the way browsers render things differently. But this is mostly a solved problem. I can’t remember the last time I fought against browsers like that.</p>
<p>Instead, I reckon the biggest issue that engineers face — and the reason why they find it all so dang frustrating — is that CSS forces you to face the <em>webishness</em> of the web. Things require fallbacks. You need to take different devices into consideration, and all the different ways of seeing a website: mobile, desktop, no mouse, no keyboard, etc. Sure, you have to deal with that when writing JavaScript, too, but it’s easier to ignore. You can’t ignore the layout of your site being completely broken on a phone.</p>
<p><strong>Side note:</strong> We have <a href="https://css-tricks.com/centering-css-complete-guide/">a guide to centering in CSS</a> not because CSS is busted and dumb, but because there are so many variables to the extent that a simple question like, “How do I center text?” is actually much more complicated than it appears. There’s so much context that’s missed.</p>
<p>This reminds me of one of my favorite blog posts of all time, where Brandon Smith argues that <a href="https://css-tricks.com/css-is-awesome/">CSS is awesome</a> and we should respect the language and learn how it works under the hood:</p>
<blockquote class="wp-block-quote"><p>CSS is hard because its properties interact, often in unexpected ways. Because when you set one of them, you're never just setting that one thing. That one thing combines and bounces off of and contradicts with a dozen other things, including default things that you never actually set yourself.</p><p>One rule of thumb for mitigating this is, <strong>never be more explicit than you need to be</strong>. Web pages are responsive by default. Writing good CSS means leveraging that fact instead of overriding it. Use percentages or viewport units instead of a media query if possible. Use <code>min-width</code> instead of <code>width</code> where you can. Think in terms of rules, in terms of <em>what you really mean to say</em>, instead of just adding properties until things look right. Try to get a feel for how the browser resolves layout and sizing, and make your changes and additions on top of that judiciously. Work with CSS, instead of against it.</p></blockquote>

+ 121
- 0
cache/2020/bdc65ed9d2657f45d13d97186072b415/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/">

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

<article>
<h1>How I think about solving problems</h1>
<h2><a href="https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/">Source originale du contenu</a></h2>
<p>Early on in my career as a software developer I thought my primary contribution was writing code. After all, software engineers are paid to ship software and writing code is a key component of that. It took several years for me to realize that there are numerous other contributions that go into shipping software (if not, why are there managers, designers, product managers, salespeople, etc.?). I slowly came to see myself less as a coder and more as a problem solver. Sometimes the problem could be solved by writing code while other times the solution didn’t involve code at all.</p>

<p>Once I realized my value as a problem solver, I set out to determine the most efficient way to address problems as they occurred. Moving into a tech lead position immediately thrust me into the middle of numerous ongoing daily problems. I had to figure out some way to act decisively, prioritize effectively, and solve as many problems as possible.</p>

<p>Eventually, I settled on a list of questions I would ask myself for each problem as it arose. I found that asking these questions, in order, helped me make the best decision possible:</p>

<ol>
<li>Is this really a problem?</li>
<li>Does the problem need to be solved?</li>
<li>Does the problem need to be solved now?</li>
<li>Does the problem need to be solved by me?</li>
<li>Is there a simpler problem I can solve instead?</li>
</ol>

<p>Each question is designed to reveal something about the problem that allows you to go to the next step, or if you’re lucky, just avoid the problem altogether. There is some nuance to each question, so it’s helpful to describe each in more detail.</p>

<h2 id="is-this-really-a-problem">Is this really a problem?</h2>

<p>The first step to addressing any problem is to determine if it actually is a problem, and that requires a definition. For the purposes of this article, I’ll define a problem as anything that leads to an objectively undesirable outcome if not addressed. That means leaving your window open over night when it’s raining is a problem because the inside will get wet and that could potentially ruin your floor, furniture, or other possessions. A solution to the problem prevents the undesirable outcome, so closing the window before you go to bed will prevent your belongings from being ruined.</p>

<p>When in a leadership role, it’s common to receive complaints that sound like problems but are just opinions. For example, I’ve spoken with many software engineers who immediately upon starting a new job or joining a new team feel like the team is doing many things wrong: the framework they are using is wrong; the code style is wrong; the way files are organized is wrong. How will they ever get around to fixing all of these problems? It’s a monumental task.</p>

<p>I ask these software engineers this question: is it a problem or is it just different?
In many cases “wrong” just means “not what I’m used to or prefer.” If you can identify that a reported problem is not, in fact, a problem, then you no longer need to spend resources on a solution. A team member being unhappy with the way things are done is not an objectively undesirable outcome. There is nothing inherently problematic with disagreements on a team.
If you’re able to determine that a problem is not a problem, then you can move on to other tasks.</p>

<h2 id="does-the-problem-need-to-be-solved">Does the problem need to be solved?</h2>

<p>After you’ve determined that there is a problem, then next step is to determine if the problem needs to be solved. A problem doesn’t need to be solved if the undesirable outcome is tolerable and either constant or slow growing. For example, if a section of a web application is used by only admins (typically five or fewer people) and is slower to load than the rest of the application, you could determine that’s something you’re okay with. The problem is narrowly contained and affects a small number of people on the rare occasion that they use it. While it would be nice to solve the problem, it’s not required and the downside is small enough that not addressing it is unlikely to lead to bigger problems down the road.
Another way to ask this question is, “what happens if the problem is never solved?” If the answer is, “not much,” then it might be okay to not solve the problem.</p>

<h2 id="does-the-problem-need-to-be-solved-now">Does the problem need to be solved now?</h2>

<p>If you have a problem that needs to be solved, then the next question is to determine whether it needs to be solved now or if it can wait until later. Some problems are obviously urgent and need to be addressed immediately: the site is down, the application crashes whenever someone uses it, and so on. These problems need to be addressed because the undesirable outcome is immediate, ongoing, and likely to grow: the longer the site is down, the more money the company loses; the more times the application crashes, the more likely a customer will use a competitor.</p>

<p>Equally important is to determine if solving the problem can be deferred. There are a surprising number of non-urgent problems that bubble up to leadership. These are problems that need to be solved eventually but not immediately. The most common problem in software that fits this description is technical debt. Technical debt is any part of your application (or related infrastructure) that is not performing as well as it should. It’s something that will not cause a significant problem today or tomorrow, but it will eventually. In my experience, tech debt is rarely addressed until it becomes an emergency (which is too late). However, tech debt isn’t something that everything else should be dropped to address. It falls into that middle area where it shouldn’t be done today but definitely needs to get done.</p>

<p>If a problem doesn’t have to be addressed now, it’s usually a good idea to defer it. By defer it, I mean plan to address it in the future, not avoid doing anything about it. If now is not the right time to solve the problem then decide when is: in a week, a month, six months? Put it on your calendar or task management system so you won’t lose track of it.
Another way to ask this question is, “is the problem urgent?”</p>

<h2 id="does-the-problem-need-to-be-solved-by-me">Does the problem need to be solved by me?</h2>

<p>This question is most applicable to anyone in a leadership position but could also apply to anyone who already has too many tasks to complete. Is this problem something that requires special skills only you possess, or is it possible someone else could complete the task?</p>

<p>This is a question I adapted from advice one mentor gave me. I was complaining about how I just seemed to be collecting tasks and couldn’t keep up. He said I should ask myself, “is this a Nicholas problem?” There were certain things only I knew how to do and those were the things I should be focusing. Anything else should be delegated to someone else. Another important tip he gave me: just because you can do something faster than someone else doesn’t mean you should do it yourself. For most non-urgent tasks, it doesn’t matter if it is completed in one day or two.</p>

<p>So if the problem can be solved by someone else, and you’re either a leader or already have too much work, then delegate.</p>

<h2 id="is-there-an-easier-problem-i-can-solve-instead">Is there an easier problem I can solve instead?</h2>

<p>The final step in the process once you’ve determined that there’s an urgent problem that you need to solve personally is to determine if there’s an easier problem to solve. The key is that the easier problem must give you the same or a similar outcome to the original problem while saving time (or other resources).</p>

<p>When I was working on the new My Yahoo! page, one of our product managers proclaimed that beta customers had requested we add resizable columns to the page. This was something that would be fairly complicated because it was 2006 and web browsers were not anywhere as capable as they are today. The task wasn’t impossible, but on a page that was already overflowing with JavaScript, adding more to manage complex mouse movements and needing to save that information back to the server was a lot of painstaking error-prone work.</p>

<p>I asked for the raw data from the customer feedback sessions to see if I could figure out what the problem was that resizable columns would solve. In turned out no customers had asked for resizable columns (the product manager had inferred this request from the complaints). Instead, they were complaining that they couldn’t get the new My Yahoo! page to look like their old My Yahoo! page. We had created completely new layouts that didn’t match the old layouts, but it turned out people really liked the old layouts. This allowed us to focus on an easier problem: recreating the old layouts.</p>

<p>So, we spent a little time recreating the old layouts in the new page and re-ran the customer sessions. People were delighted that the new page now looked very similar to the old page. By solving the easier problem, we saved a lot of development time and the customers ended up just as happy.</p>

<p>There isn’t always an easier problem to solve, but it’s worth taking a moment to check whenever a problem seems particularly large or difficult.</p>

<h2 id="conclusion">Conclusion</h2>

<p>These five questions have become the basis for my problem-solving approach not just in my work, but in my life in general. Going through these questions whenever presented with a problem has made me a more efficient problem solver and, in general, happier with the outcomes. Can’t calculate a 15% tip for my waiter? I calculate 20% instead (or 10% if I’m displeased with the service). My high school alumni office keeps sending me notices that I’m not a verified alumnus? That’s not a problem I need to solve. I need to get a new driver’s license if I want to travel within the United States? That’s a problem I need to address this year, but not right now.</p>

<p>There are many ways to approach problem solving, and I’m not sure my approach will work for everyone. What I do know is that having an approach to solving problems is better than not having any approach. Life is filled with problems, small and large, that you’ll face every day. Having a clearly defined, repeatable strategy is the easiest way to make problem solving more tolerable.</p>
</article>


<hr>

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

+ 69
- 0
cache/2020/bdc65ed9d2657f45d13d97186072b415/index.md View File

title: How I think about solving problems
url: https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/
hash_url: bdc65ed9d2657f45d13d97186072b415

<p>Early on in my career as a software developer I thought my primary contribution was writing code. After all, software engineers are paid to ship software and writing code is a key component of that. It took several years for me to realize that there are numerous other contributions that go into shipping software (if not, why are there managers, designers, product managers, salespeople, etc.?). I slowly came to see myself less as a coder and more as a problem solver. Sometimes the problem could be solved by writing code while other times the solution didn’t involve code at all.</p>

<p>Once I realized my value as a problem solver, I set out to determine the most efficient way to address problems as they occurred. Moving into a tech lead position immediately thrust me into the middle of numerous ongoing daily problems. I had to figure out some way to act decisively, prioritize effectively, and solve as many problems as possible.</p>

<p>Eventually, I settled on a list of questions I would ask myself for each problem as it arose. I found that asking these questions, in order, helped me make the best decision possible:</p>

<ol>
<li>Is this really a problem?</li>
<li>Does the problem need to be solved?</li>
<li>Does the problem need to be solved now?</li>
<li>Does the problem need to be solved by me?</li>
<li>Is there a simpler problem I can solve instead?</li>
</ol>

<p>Each question is designed to reveal something about the problem that allows you to go to the next step, or if you’re lucky, just avoid the problem altogether. There is some nuance to each question, so it’s helpful to describe each in more detail.</p>

<h2 id="is-this-really-a-problem">Is this really a problem?</h2>

<p>The first step to addressing any problem is to determine if it actually is a problem, and that requires a definition. For the purposes of this article, I’ll define a problem as anything that leads to an objectively undesirable outcome if not addressed. That means leaving your window open over night when it’s raining is a problem because the inside will get wet and that could potentially ruin your floor, furniture, or other possessions. A solution to the problem prevents the undesirable outcome, so closing the window before you go to bed will prevent your belongings from being ruined.</p>

<p>When in a leadership role, it’s common to receive complaints that sound like problems but are just opinions. For example, I’ve spoken with many software engineers who immediately upon starting a new job or joining a new team feel like the team is doing many things wrong: the framework they are using is wrong; the code style is wrong; the way files are organized is wrong. How will they ever get around to fixing all of these problems? It’s a monumental task.</p>

<p>I ask these software engineers this question: is it a problem or is it just different?
In many cases “wrong” just means “not what I’m used to or prefer.” If you can identify that a reported problem is not, in fact, a problem, then you no longer need to spend resources on a solution. A team member being unhappy with the way things are done is not an objectively undesirable outcome. There is nothing inherently problematic with disagreements on a team.
If you’re able to determine that a problem is not a problem, then you can move on to other tasks.</p>

<h2 id="does-the-problem-need-to-be-solved">Does the problem need to be solved?</h2>

<p>After you’ve determined that there is a problem, then next step is to determine if the problem needs to be solved. A problem doesn’t need to be solved if the undesirable outcome is tolerable and either constant or slow growing. For example, if a section of a web application is used by only admins (typically five or fewer people) and is slower to load than the rest of the application, you could determine that’s something you’re okay with. The problem is narrowly contained and affects a small number of people on the rare occasion that they use it. While it would be nice to solve the problem, it’s not required and the downside is small enough that not addressing it is unlikely to lead to bigger problems down the road.
Another way to ask this question is, “what happens if the problem is never solved?” If the answer is, “not much,” then it might be okay to not solve the problem.</p>

<h2 id="does-the-problem-need-to-be-solved-now">Does the problem need to be solved now?</h2>

<p>If you have a problem that needs to be solved, then the next question is to determine whether it needs to be solved now or if it can wait until later. Some problems are obviously urgent and need to be addressed immediately: the site is down, the application crashes whenever someone uses it, and so on. These problems need to be addressed because the undesirable outcome is immediate, ongoing, and likely to grow: the longer the site is down, the more money the company loses; the more times the application crashes, the more likely a customer will use a competitor.</p>

<p>Equally important is to determine if solving the problem can be deferred. There are a surprising number of non-urgent problems that bubble up to leadership. These are problems that need to be solved eventually but not immediately. The most common problem in software that fits this description is technical debt. Technical debt is any part of your application (or related infrastructure) that is not performing as well as it should. It’s something that will not cause a significant problem today or tomorrow, but it will eventually. In my experience, tech debt is rarely addressed until it becomes an emergency (which is too late). However, tech debt isn’t something that everything else should be dropped to address. It falls into that middle area where it shouldn’t be done today but definitely needs to get done.</p>

<p>If a problem doesn’t have to be addressed now, it’s usually a good idea to defer it. By defer it, I mean plan to address it in the future, not avoid doing anything about it. If now is not the right time to solve the problem then decide when is: in a week, a month, six months? Put it on your calendar or task management system so you won’t lose track of it.
Another way to ask this question is, “is the problem urgent?”</p>

<h2 id="does-the-problem-need-to-be-solved-by-me">Does the problem need to be solved by me?</h2>

<p>This question is most applicable to anyone in a leadership position but could also apply to anyone who already has too many tasks to complete. Is this problem something that requires special skills only you possess, or is it possible someone else could complete the task?</p>

<p>This is a question I adapted from advice one mentor gave me. I was complaining about how I just seemed to be collecting tasks and couldn’t keep up. He said I should ask myself, “is this a Nicholas problem?” There were certain things only I knew how to do and those were the things I should be focusing. Anything else should be delegated to someone else. Another important tip he gave me: just because you can do something faster than someone else doesn’t mean you should do it yourself. For most non-urgent tasks, it doesn’t matter if it is completed in one day or two.</p>

<p>So if the problem can be solved by someone else, and you’re either a leader or already have too much work, then delegate.</p>

<h2 id="is-there-an-easier-problem-i-can-solve-instead">Is there an easier problem I can solve instead?</h2>

<p>The final step in the process once you’ve determined that there’s an urgent problem that you need to solve personally is to determine if there’s an easier problem to solve. The key is that the easier problem must give you the same or a similar outcome to the original problem while saving time (or other resources).</p>

<p>When I was working on the new My Yahoo! page, one of our product managers proclaimed that beta customers had requested we add resizable columns to the page. This was something that would be fairly complicated because it was 2006 and web browsers were not anywhere as capable as they are today. The task wasn’t impossible, but on a page that was already overflowing with JavaScript, adding more to manage complex mouse movements and needing to save that information back to the server was a lot of painstaking error-prone work.</p>

<p>I asked for the raw data from the customer feedback sessions to see if I could figure out what the problem was that resizable columns would solve. In turned out no customers had asked for resizable columns (the product manager had inferred this request from the complaints). Instead, they were complaining that they couldn’t get the new My Yahoo! page to look like their old My Yahoo! page. We had created completely new layouts that didn’t match the old layouts, but it turned out people really liked the old layouts. This allowed us to focus on an easier problem: recreating the old layouts.</p>

<p>So, we spent a little time recreating the old layouts in the new page and re-ran the customer sessions. People were delighted that the new page now looked very similar to the old page. By solving the easier problem, we saved a lot of development time and the customers ended up just as happy.</p>

<p>There isn’t always an easier problem to solve, but it’s worth taking a moment to check whenever a problem seems particularly large or difficult.</p>

<h2 id="conclusion">Conclusion</h2>

<p>These five questions have become the basis for my problem-solving approach not just in my work, but in my life in general. Going through these questions whenever presented with a problem has made me a more efficient problem solver and, in general, happier with the outcomes. Can’t calculate a 15% tip for my waiter? I calculate 20% instead (or 10% if I’m displeased with the service). My high school alumni office keeps sending me notices that I’m not a verified alumnus? That’s not a problem I need to solve. I need to get a new driver’s license if I want to travel within the United States? That’s a problem I need to address this year, but not right now.</p>

<p>There are many ways to approach problem solving, and I’m not sure my approach will work for everyone. What I do know is that having an approach to solving problems is better than not having any approach. Life is filled with problems, small and large, that you’ll face every day. Having a clearly defined, repeatable strategy is the easiest way to make problem solving more tolerable.</p>

+ 85
- 0
cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/">

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

<article>
<h1>Integrated systems for integrated programmers</h1>
<h2><a href="https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/">Source originale du contenu</a></h2>
<p>One of the great tragedies of modern web development over the last five years or so has been the irrational exuberance for microservices. The idea that making a single great web application had simply become too hard, but if we broke that app up into many smaller apps, it’d all be much easier. Turned out, surprise-surprise, that it mostly wasn’t.</p>

<p>As Kelsey Hightower <a href="https://changelog.com/posts/monoliths-are-the-future">searingly put the fallacy</a>: “We’re gonna break it up and somehow find the engineering discipline we never had in the first place”.</p>

<p>But it’s one of those hard lessons that nobody actually wants to hear. You don’t want to hear that the reason your monolith is a spaghetti monster is because you let it become that way, one commit at the time, due to weak habits, pressurized deadlines, or simply sheer lack of competence. No, what you want to hear is that none of that mess is your fault. That it was simply because of the oppressive monolithic architecture. And that, really, you’re just awesome, and if you take your dirty code and stick it into this new microservices tumbler, it’s going to come out sparking clean, smelling like fucking daffodils.</p>

<p>The great thing about such delusions is that they can keep you warm for quite a while. A yeah, sure, maybe the complexities of your new microservices monstrosity are plain as day right from the get go, but you can always excuse them with “it’s really going to pay off once we…” bullshit. And it’ll work! For a while. Because, who knows? Maybe this is better? But it’s not. And the day you have to really admit its not, you’re probably not even still there. On to the next thing.</p>

<p>Microservices as an architectural gold rush appealed to developers for the same reason TDD appeals to developers: <a href="https://www.youtube.com/watch?v=9LfmrkyP81M&amp;t=19m59s">it’s the pseudoscientific promise of a diet</a>. The absolution of a new paradigm to wash away and forgive our sins. Who doesn’t want that?</p>

<p>Well, maybe you? Now after you’ve walked through the intellectual desert of a microservice approach to a problem that didn’t remotely warrant it (ie, almost all of them). Maybe now you’re ready to hear a different story. There’s a slot in your brain for a counterargument that just wasn’t there before.</p>

<p>So here’s the counterargument: Integrated systems are good. Integrated developers are good. Being able to wrap your mind around the whole application, and have developers who are able to make whole features, is good! The road to madness and despair lays in specialization and compartmentalization.</p>

<p>The galaxy brain takes it all in.</p>

<p>But of course, you cry, what if the system is too large to fit in my brain? Won’t it just swap and swap until I kernel failure? Yes, if you try to stick in a bloated beast of an application, sure.</p>

<p>So the work is to shrink the conceptual surface area of your application until it fits in a normal, but capable and competent, programmer’s brain. Using <a href="https://www.youtube.com/watch?v=zKyv-IGvgGE&amp;t=17m27s">conceptual compression</a>, sheer good code writing, a productive and succinct environment, using shortcuts and patterns. That’s the work.</p>

<p>But the payoff is glorious. Magnificent. SUBLIME. The magic of working on an integrated system together with integrated programmers is a line without limits, arbitrary boundaries, or sully gatekeepers.</p>

<p>Forget frontend or backend. The answer is all of it. At the same time. In the same mind.</p>

<p>This sounds impossible if you’ve cooked your noodle too long in the stew of modern <a href="https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/">astronautic abstractions</a>. If you turn down the temperature, you’ll see that the web is actually much the same as it always was. Sure, a few expectations increased here, and a couple of breakthrough techniques appeared there, but fundamentally, it’s the same. What changed was us. And mostly not in ways for the better.</p>

<p>If your lived experience still haven’t hit the inevitable wall of defeat on the question of microservices, then be my guest, sit there with your folded arms and your smug pout. It’s ok. I get it. There’s not an open slot for this argument in your brain just yet. It’s ok. I’m patient! I’ll still be here in a couple of years when there’s room. And then I’ll send you a link to this article on twitter.</p>

<p>Peace. Love. Integration.</p>
</article>


<hr>

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

+ 33
- 0
cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/index.md View File

title: Integrated systems for integrated programmers
url: https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/
hash_url: ef5d670c8473add5c3e43f8d4db2eed0

<p>One of the great tragedies of modern web development over the last five years or so has been the irrational exuberance for microservices. The idea that making a single great web application had simply become too hard, but if we broke that app up into many smaller apps, it’d all be much easier. Turned out, surprise-surprise, that it mostly wasn’t.</p>

<p>As Kelsey Hightower <a href="https://changelog.com/posts/monoliths-are-the-future">searingly put the fallacy</a>: “We’re gonna break it up and somehow find the engineering discipline we never had in the first place”.</p>

<p>But it’s one of those hard lessons that nobody actually wants to hear. You don’t want to hear that the reason your monolith is a spaghetti monster is because you let it become that way, one commit at the time, due to weak habits, pressurized deadlines, or simply sheer lack of competence. No, what you want to hear is that none of that mess is your fault. That it was simply because of the oppressive monolithic architecture. And that, really, you’re just awesome, and if you take your dirty code and stick it into this new microservices tumbler, it’s going to come out sparking clean, smelling like fucking daffodils.</p>

<p>The great thing about such delusions is that they can keep you warm for quite a while. A yeah, sure, maybe the complexities of your new microservices monstrosity are plain as day right from the get go, but you can always excuse them with “it’s really going to pay off once we…” bullshit. And it’ll work! For a while. Because, who knows? Maybe this is better? But it’s not. And the day you have to really admit its not, you’re probably not even still there. On to the next thing.</p>

<p>Microservices as an architectural gold rush appealed to developers for the same reason TDD appeals to developers: <a href="https://www.youtube.com/watch?v=9LfmrkyP81M&amp;t=19m59s">it’s the pseudoscientific promise of a diet</a>. The absolution of a new paradigm to wash away and forgive our sins. Who doesn’t want that?</p>

<p>Well, maybe you? Now after you’ve walked through the intellectual desert of a microservice approach to a problem that didn’t remotely warrant it (ie, almost all of them). Maybe now you’re ready to hear a different story. There’s a slot in your brain for a counterargument that just wasn’t there before.</p>

<p>So here’s the counterargument: Integrated systems are good. Integrated developers are good. Being able to wrap your mind around the whole application, and have developers who are able to make whole features, is good! The road to madness and despair lays in specialization and compartmentalization.</p>

<p>The galaxy brain takes it all in.</p>

<p>But of course, you cry, what if the system is too large to fit in my brain? Won’t it just swap and swap until I kernel failure? Yes, if you try to stick in a bloated beast of an application, sure.</p>

<p>So the work is to shrink the conceptual surface area of your application until it fits in a normal, but capable and competent, programmer’s brain. Using <a href="https://www.youtube.com/watch?v=zKyv-IGvgGE&amp;t=17m27s">conceptual compression</a>, sheer good code writing, a productive and succinct environment, using shortcuts and patterns. That’s the work.</p>

<p>But the payoff is glorious. Magnificent. SUBLIME. The magic of working on an integrated system together with integrated programmers is a line without limits, arbitrary boundaries, or sully gatekeepers.</p>

<p>Forget frontend or backend. The answer is all of it. At the same time. In the same mind.</p>

<p>This sounds impossible if you’ve cooked your noodle too long in the stew of modern <a href="https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/">astronautic abstractions</a>. If you turn down the temperature, you’ll see that the web is actually much the same as it always was. Sure, a few expectations increased here, and a couple of breakthrough techniques appeared there, but fundamentally, it’s the same. What changed was us. And mostly not in ways for the better.</p>

<p>If your lived experience still haven’t hit the inevitable wall of defeat on the question of microservices, then be my guest, sit there with your folded arms and your smug pout. It’s ok. I get it. There’s not an open slot for this argument in your brain just yet. It’s ok. I’m patient! I’ll still be here in a couple of years when there’s room. And then I’ll send you a link to this article on twitter.</p>

<p>Peace. Love. Integration.</p>

+ 83
- 0
cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://pjrvs.com/enough">

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

<article>
<h1>Enough</h1>
<h2><a href="https://pjrvs.com/enough">Source originale du contenu</a></h2>
<p>Exterior mindfulness (some call it <a href="https://pjrvs.com/business">minimalism</a>) only works when we solve for enough.</p>

<p>It’s not just a matter of having less stuff or having nothing or having that one carefully arranged bohemian tchotchke on your live-edge cedar coffee table. (That’s only useful if minimalism is simply an aesthetic you like for your Instagram and Pinterest posts.) If we don’t solve for enough, for our specific and personal enough, minimalism is vapid at best and a constant state of judgement at worse.</p>

<p>In order to be more aware of what makes sense for our lives and businesses, we need to be aware of what enough means.</p>

<p>Enough is different for everyone. For myself, I need far less than a family with six children, because my family is two people (and any number of pet rats). I need less money than someone living in an expensive city, because real estate and life costs less in the woods. I need less revenue than other businesses because my margins are high and my expenses are low based on the type of work I do.</p>

<p>If things were different, I’d need more. Not because I’d be a horribly capitalist consumer, hell-bent on buying everything that showed up in my inbox. I’d simply require more in my own personal life for it to be easier and less stressful. More would make sense in that case, and I’d have to do more to reach enough. This isn’t a judgement of others, nor should it be, it’s more a realization from introspection. What enough means for me, only concerns me, and should only be compared to myself: where I’m actually at versus where I’m working to get to. As in, am I presently happy or do I assume I’ll be happier in the future, and if so, why?</p>

<p>Enough is the antithesis of unchecked growth because growth encourages mindless consumption and enough requires constant questioning and awareness. Enough is when we reach the upper bound of what’s required. Enough revenue means our business is profitable and can support however many employees/freelancers we have, even if it’s just one person. Enough income means we can live our lives with a bit of financial ease, and put something away for later. Enough means our families are fed, have roofs over their heads and their futures are considered. Enough stuff means we have what we need to live our lives without excess.</p>

<h2>Enough breaks down into two camps</h2>

<p>Pre-enough means we haven’t quite reached the state of what’s truly required. When a business starts, it’s very hard to be at enough instantly—so we have to work to reach it. Pre-enough income means we don’t yet have what we need to get by. Pre-enough typically means we’ve got to work a little harder to reach our enough. We hustle, worker harder, and get things done. Growth here makes sense, because we need to grow into our own “enoughs”.</p>

<p>Where things can go awry is when we never consider what enough is as a marker. When this happens, we don’t solve for enough or optimize for it, we just keep going and going with more and more. We hit enough revenue, enough customers, enough stuff, and assume we have to do the same things we did to reach it now that it’s been reached and blaze quickly past that mark. That’s why most big companies keep growing past what makes organic or market sense. That’s why some people have what they need and don’t ever stop getting more than they need until their 524-bedroom house is filled to the brim with so much stuff that they need to rent 524 storage lockers as well.</p>

<p>So in the beginning, reaching enough is goal number one. We do whatever it takes to get there, since we need more out of necessity. We don’t need to optimize for enough because we haven’t yet reached enough. If we’re not aware of what enough is though, we can potentially hit it and keep going with the same vim and vigour, blowing past it. Once enough has been reached (different for everyone and every business, remember), our goal should then be to realize that enough is enough, and further optimize for it.</p>

<p>Bringing it back around to the problem some folks rightfully have with the entitled talk about minimalism is that when you don’t have enough, it’s hard to hear people talk about optimizing for enough or how they now live with less. It can feel like passive-aggressive (or aggressive-aggressive) shaming. It’s hard to be in pre-enough and hear about post-enough—from people urging us to live with and do with less when there’s not even enough to begin with. It’s equally difficult to have empathy for those in the pre-enough stage if we’re in post-enough, because we’re currently optimizing and making decisions based on reaching something that not everyone has yet. There’s also a massive amount of judgement going around about comparing someone’s enough to someone else’s. Just the other day I saw a comment that someone’s tiny house wasn’t small enough to be considered truly tiny. What?!</p>

<p>It’s not up to us to judge what someone else’s enough is. It’s up to us to be mindful about where we are personally, and either work towards or optimize for what our own enough actually is. And we could all do with a bit more empathy and understanding here.</p>

<p>In Sanskrit, there’s a term called <em>mudita</em>, and there’s no equivalent word in English. Essentially, it means to have sympathetic or unselfish joy for others—regardless of where they’re at in their own lives. Really, if we spend less time envying or assuming that others think less of us because they’re in a different place than we are, then it becomes easier to focus on what’s important to ourselves. We can’t figure out our own enough if we’re judging others and comparing where they’re at in their enough journey to ours. It seems to me that the point of mudita isn’t to be happy for others because we’re unselfish hippies who want bigger drum circles for our Kumbaya festivals. The point is that worrying about, comparing ourselves to, and envying others doesn’t do a whole lot for us and our own mindfulness. We can be better and more focused on finding joy in our own enough or work towards it if we stop assuming that other people’s definitions of enough exist solely to spite us and make us feel bad.</p>

<p>Personally, I struggle a lot with what enough is for me. While I’ve never found myself at a drum circle (yet?), I do feel self-judged sometimes when I read other people’s notes and ideas about how they optimize their lives for less and wonder if I’ve blown past what makes sense for my own enough. This comparison takes up so much of my thought-processes sometimes that whenever I notice myself comparing my enough to someone else’s enough I have to stop myself and get back on track. I’d be a lot happier if I was just stoked for others instead of internally comparing my shortcomings to their accomplishments. We’d all probably be a lot happier if we did just that.</p>
</article>


<hr>

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

+ 18
- 0
cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/index.md View File

title: Enough
url: https://pjrvs.com/enough
hash_url: f61e3ce56d0360e061f4b22e0bb20e47

<p>Exterior mindfulness (some call it <a href="https://pjrvs.com/business">minimalism</a>) only works when we solve for enough.</p>
<p>It’s not just a matter of having less stuff or having nothing or having that one carefully arranged bohemian tchotchke on your live-edge cedar coffee table. (That’s only useful if minimalism is simply an aesthetic you like for your Instagram and Pinterest posts.) If we don’t solve for enough, for our specific and personal enough, minimalism is vapid at best and a constant state of judgement at worse.</p>
<p>In order to be more aware of what makes sense for our lives and businesses, we need to be aware of what enough means.</p>
<p>Enough is different for everyone. For myself, I need far less than a family with six children, because my family is two people (and any number of pet rats). I need less money than someone living in an expensive city, because real estate and life costs less in the woods. I need less revenue than other businesses because my margins are high and my expenses are low based on the type of work I do.</p>
<p>If things were different, I’d need more. Not because I’d be a horribly capitalist consumer, hell-bent on buying everything that showed up in my inbox. I’d simply require more in my own personal life for it to be easier and less stressful. More would make sense in that case, and I’d have to do more to reach enough. This isn’t a judgement of others, nor should it be, it’s more a realization from introspection. What enough means for me, only concerns me, and should only be compared to myself: where I’m actually at versus where I’m working to get to. As in, am I presently happy or do I assume I’ll be happier in the future, and if so, why?</p>
<p>Enough is the antithesis of unchecked growth because growth encourages mindless consumption and enough requires constant questioning and awareness. Enough is when we reach the upper bound of what’s required. Enough revenue means our business is profitable and can support however many employees/freelancers we have, even if it’s just one person. Enough income means we can live our lives with a bit of financial ease, and put something away for later. Enough means our families are fed, have roofs over their heads and their futures are considered. Enough stuff means we have what we need to live our lives without excess.</p>
<h2>Enough breaks down into two camps</h2>
<p>Pre-enough means we haven’t quite reached the state of what’s truly required. When a business starts, it’s very hard to be at enough instantly—so we have to work to reach it. Pre-enough income means we don’t yet have what we need to get by. Pre-enough typically means we’ve got to work a little harder to reach our enough. We hustle, worker harder, and get things done. Growth here makes sense, because we need to grow into our own “enoughs”.</p>
<p>Where things can go awry is when we never consider what enough is as a marker. When this happens, we don’t solve for enough or optimize for it, we just keep going and going with more and more. We hit enough revenue, enough customers, enough stuff, and assume we have to do the same things we did to reach it now that it’s been reached and blaze quickly past that mark. That’s why most big companies keep growing past what makes organic or market sense. That’s why some people have what they need and don’t ever stop getting more than they need until their 524-bedroom house is filled to the brim with so much stuff that they need to rent 524 storage lockers as well.</p>
<p>So in the beginning, reaching enough is goal number one. We do whatever it takes to get there, since we need more out of necessity. We don’t need to optimize for enough because we haven’t yet reached enough. If we’re not aware of what enough is though, we can potentially hit it and keep going with the same vim and vigour, blowing past it. Once enough has been reached (different for everyone and every business, remember), our goal should then be to realize that enough is enough, and further optimize for it.</p>
<p>Bringing it back around to the problem some folks rightfully have with the entitled talk about minimalism is that when you don’t have enough, it’s hard to hear people talk about optimizing for enough or how they now live with less. It can feel like passive-aggressive (or aggressive-aggressive) shaming. It’s hard to be in pre-enough and hear about post-enough—from people urging us to live with and do with less when there’s not even enough to begin with. It’s equally difficult to have empathy for those in the pre-enough stage if we’re in post-enough, because we’re currently optimizing and making decisions based on reaching something that not everyone has yet. There’s also a massive amount of judgement going around about comparing someone’s enough to someone else’s. Just the other day I saw a comment that someone’s tiny house wasn’t small enough to be considered truly tiny. What?!</p>
<p>It’s not up to us to judge what someone else’s enough is. It’s up to us to be mindful about where we are personally, and either work towards or optimize for what our own enough actually is. And we could all do with a bit more empathy and understanding here.</p>
<p>In Sanskrit, there’s a term called <em>mudita</em>, and there’s no equivalent word in English. Essentially, it means to have sympathetic or unselfish joy for others—regardless of where they’re at in their own lives. Really, if we spend less time envying or assuming that others think less of us because they’re in a different place than we are, then it becomes easier to focus on what’s important to ourselves. We can’t figure out our own enough if we’re judging others and comparing where they’re at in their enough journey to ours. It seems to me that the point of mudita isn’t to be happy for others because we’re unselfish hippies who want bigger drum circles for our Kumbaya festivals. The point is that worrying about, comparing ourselves to, and envying others doesn’t do a whole lot for us and our own mindfulness. We can be better and more focused on finding joy in our own enough or work towards it if we stop assuming that other people’s definitions of enough exist solely to spite us and make us feel bad.</p>
<p>Personally, I struggle a lot with what enough is for me. While I’ve never found myself at a drum circle (yet?), I do feel self-judged sometimes when I read other people’s notes and ideas about how they optimize their lives for less and wonder if I’ve blown past what makes sense for my own enough. This comparison takes up so much of my thought-processes sometimes that whenever I notice myself comparing my enough to someone else’s enough I have to stop myself and get back on track. I’d be a lot happier if I was just stoked for others instead of internally comparing my shortcomings to their accomplishments. We’d all probably be a lot happier if we did just that.</p>

+ 197
- 0
cache/2020/fc97310297178a549eab5c5f9e8a334f/index.html View File

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

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://www.matuzo.at/blog/why-543kb-keep-me-up-at-night/">

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

<article>
<h1>Why 543 KB keep me up at night</h1>
<h2><a href="https://www.matuzo.at/blog/why-543kb-keep-me-up-at-night/">Source originale du contenu</a></h2>
<p>Some background: About three years ago I specialized in web accessibility. Now it’s not just my job to make sure that the websites I build are accessible, but the websites of others, too. I’m a front-end developer, but also a consultant and auditor. I’m employed for about a year now as well, and I have to evaluate a lot more third party web products than I used to.</p>

<h2 id="something-has-changed">Something has changed</h2>

<p>A friend recently sent me the link to a website and asked me for feedback, because I had experience with the content management system their client was using.<br/>I <a href="/blog/beyond-automatic-accessibility-testing-6-things-i-check-on-every-website-i-build/">checked a few things</a> and then browsed through the website with <a href="https://developer.mozilla.org/en-US/docs/Tools">Dev Tools</a> and the network panel open. The homepage had a page weight of <strong>4.1 MB (6.7 MB uncompressed)</strong>. I thought, “<em>Aight, that’s not great, but there are a bunch of images, so I guess it’s okay</em>”. Then I visited a page with a header, footer, sidebar navigation and a short paragraph <strong>(543 KB / 1.6 MB uncompressed)</strong> and I thought “<em>Nice, noticeably below 1 MB, that’s pretty good.</em>”.</p>

<p>And then it hit me.<br/>What the hell did just happen? <strong>543 KB</strong> on a simple text-only page is OK? Fuck no, it’s not.</p>

<p>How and when did I get to the point where I would consider a page weight of 4 MB on a large page and 500 KB on a small page normal? This got me thinking (and writing obviously). This is not an exception. The quality of most websites I audit and evaluate is bad. Somehow we've collectively decided that it’s okay to publish garbage.<br/>When I say we, I don’t just mean us developers. The reason could be a developer who doesn’t care enough, but it could also be a team lead, product owner or client who simply doesn’t give devs enough time to care about quality. Causes for that could be a lack of awareness, tough deadlines, short release cycles, or focus on development of new features instead of improvement of existing code.<br/>When I say garbage, I mean slow, inaccessible, annoying, stressful, or intrusive web experiences.</p>

<h3 id="slow">Slow</h3>

<p>I need 1.6 MB of JavaScript (7.2 MB uncompressed) to display a table with my billing history.</p>

<figure class="figure figure--full"><a href="https://res.cloudinary.com/dp3mem7or/image/upload/v1582717566/articles/543kb/adobe_j.jpg" rel="noopener"><span class="content__image-wrapper"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="lazy content__image" data-src="https://res.cloudinary.com/dp3mem7or/image/upload/c_scale,w_1300/v1582717566/articles/543kb/adobe_j.jpg" alt="Logged in on adobe.com. Screenshot."/></span></a><figcaption>Billing history on adobe.com</figcaption></figure>

<h3 id="inaccessible">Inaccessible</h3>

<p>Many accessibility issues derive from bad markup. I could show a screenshot of any website here, but you’ll find some common mistakes on <a href="https://www.htmhell.dev/">HTMHell</a>.</p>

<figure class="figure figure--full"><a href="https://www.htmhell.dev/10-section-is-no-replacement-for-div/" rel="noopener"><span class="content__image-wrapper"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="lazy content__image" data-src="https://res.cloudinary.com/dp3mem7or/image/upload/c_scale,w_1300/v1582719885/articles/543kb/htmhell.jpg" alt="htmhell.com. Screenshot."/></span></a><figcaption>A submission on HTMHell showing many nested section and article elements.</figcaption></figure>

<h3 id="annoying">Annoying</h3>

<p>No, the first thing I want to do when I visit your website is not to sign up for a newsletter.</p>

<figure class="figure figure--full"><a href="https://res.cloudinary.com/dp3mem7or/image/upload/v1582780558/articles/543kb/sitepoint.jpg" rel="noopener"><span class="content__image-wrapper"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="lazy content__image" data-src="https://res.cloudinary.com/dp3mem7or/image/upload/c_scale,w_1300/v1582780558/articles/543kb/sitepoint.jpg" alt="Overlay on the sitepoint.com hopmepage. Screenshot."/></span></a><figcaption>Sitepoint trying to lure users into signing up for their newsletter by giving away a free book.</figcaption></figure>

<h3 id="stressful">Stressful</h3>

<p>Only 5 rooms left! Limited-time deal!! 2 other people looked for your dates in the last 10 minutes!!! I will never ever book anything on your website!!!!</p>

<figure class="figure"><a href="https://res.cloudinary.com/dp3mem7or/image/upload/v1582780558/articles/543kb/booking.jpg" rel="noopener"><span class="content__image-wrapper"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="lazy content__image" data-src="https://res.cloudinary.com/dp3mem7or/image/upload/c_scale,w_800/v1582780558/articles/543kb/booking.jpg" alt="Room selection screen on booking.com. Red and orange messages stressing people to book quickly."/></span></a><figcaption>booking.com trying to stress me in 3 different places into booking a room.</figcaption></figure>

<h3 id="intrusive">Intrusive</h3>

<p>ZDNet misuses the cookie consent dialog to trigger the push notifications prompt.</p>

<figure class="figure"><a href="https://res.cloudinary.com/dp3mem7or/image/upload/v1582780558/articles/543kb/zdnet.jpg" rel="noopener"><span class="content__image-wrapper"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="lazy content__image" data-src="https://res.cloudinary.com/dp3mem7or/image/upload/c_scale,w_1300/v1582780558/articles/543kb/zdnet.jpg" alt="Cookie dialog shows, click Allow, notifications prompt shows. "/></span></a><figcaption>A tweet by Šime Vidas explaining what he discovered on ZDNet.</figcaption></figure>

<p>I don’t know if it has always been like that or if the quality of what we publish online has gotten worse with <a href="https://css-tricks.com/innovation-cant-keep-the-web-fast/">advancing technological possibilities on the web</a> (faster networks, more powerful tools and new APIs). <strong>The web is in bad shape - we need to readjust our understanding of what quality means</strong> and what we can expect our users to put up with.</p>

<p>Now you might think, “<em>Dude, chill. 543 KB? That’s not bad, even on a 3G connection that site should load in a reasonable time.</em>”.</p>

<h2 id="why-543-kb-might-be-bad">Why 543 KB might be bad</h2>

<p>Yes, I know, it depends. 543 KB aren't always bad, but on that specific page there's only a single image (the logo ~20 KB) and a single paragraph. So why then is the page still relatively large, where are the remaining 523 KB coming from?</p>

<p>Let's break it up and see what we could take into account when we evaluate the total transferred bytes.</p>

<h3 id="page-weight">Page weight</h3>

<p>Even in times of 4G or 5G, optimizing for fast download is important. People don’t always surf the web under the best conditions. Build your website for someone who visits it at Starbucks using Starbucks WIFI and not for someone who’s connected to their own fast internet at home.</p>

<p>The website we’re talking about now is an Austrian website, in German language, accessed mostly by Austrians via Austrian networks. We’re a country with affordable and fast data. Don’t get me wrong, the page weight is definitely too big, but I’d argue that it's not the biggest issue, especially if they’re caching efficiently and prioritizing asset loading correctly (spoiler alert: they’re not… ).</p>

<h3 id="dom-size">DOM size</h3>

<p>Many and deeply nested elements result in a large DOM tree, which can affect runtime, memory and load performance negatively.</p>

<p>A large DOM tree in combination with complicated styles might have a bad effect on page rendering. In his talk <em>“</em><a href="https://www.technica11y.org/performance-and-the-accessibility-tree"><em>The Intersection of Performance and Accessibility</em></a><em>”</em> <a href="https://ericwbailey.design/">Eric W. Bailey</a> gives an example of a form based on Material Design that caused the screen reader Voice Over to crash because of its massive DOM size.</p>

<blockquote><p>To make a material design radio input, you need six HTML elements containing nine attributes with a DOM depth of three. You also need 66 CSS selectors containing 141 properties which weighs in at 10k when minified. You also need 2374 lines of JavaScript which weighs in at 30k when minified. All of this will get you a radio input.</p></blockquote>

<p>Another factor is JavaScript. Updating complex DOM structures can get expensive, changes at one level in the DOM tree can cause changes at every level of the tree, which leads to more time being spent <a href="https://gist.github.com/paulirish/5d52fb081b3570c81e3a">performing reflow</a>. DOM operations can become a performance bottleneck, but there’s more to consider, like storing references to a large number of nodes, which might overwhelm the memory capabilities of devices. Creating DOM nodes only when needed and destroying them when no longer needed helps with that.</p>

<p>If you don’t write your markup carefully and enable compression on the server, your HTML document might end up having multiple hundred kilobytes, although it should be somewhere in the lower tens. By writing carefully I mean only creating DOM nodes you need and adding extra divs and spans only when necessary. In React, <a href="https://reactjs.org/docs/fragments.html">Fragments</a> might help with that.</p>

<pre class="language-js"><code class="language-js"><span class="highlight-line"><span class="token keyword">class</span> <span class="token class-name">Columns</span> <span class="token keyword">extends</span> <span class="token class-name">React<span class="token punctuation">.</span>Component</span> <span class="token punctuation">{</span></span><br/><span class="highlight-line"> <span class="token function">render</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span></span><br/><span class="highlight-line"> <span class="token keyword">return</span> <span class="token punctuation">(</span></span><br/><span class="highlight-line"> <span class="token operator">&lt;</span>React<span class="token punctuation">.</span>Fragment<span class="token operator">&gt;</span></span><br/><span class="highlight-line"> <span class="token operator">&lt;</span>td<span class="token operator">&gt;</span>Hello<span class="token operator">&lt;</span><span class="token operator">/</span>td<span class="token operator">&gt;</span></span><br/><span class="highlight-line"> <span class="token operator">&lt;</span>td<span class="token operator">&gt;</span>World<span class="token operator">&lt;</span><span class="token operator">/</span>td<span class="token operator">&gt;</span></span><br/><span class="highlight-line"> <span class="token operator">&lt;</span><span class="token operator">/</span>React<span class="token punctuation">.</span>Fragment<span class="token operator">&gt;</span></span><br/><span class="highlight-line"> <span class="token punctuation">)</span><span class="token punctuation">;</span></span><br/><span class="highlight-line"> <span class="token punctuation">}</span></span><br/><span class="highlight-line"><span class="token punctuation">}</span></span></code></pre>

<p>A fragment just returns the content within the fragment without an extra wrapper <code>div</code>.</p>

<p><a href="https://developers.google.com/web/tools/lighthouse/audits/dom-size">Google recommends</a> less than 1500 nodes total, a maximum depth of 32 nodes, and no parent node with more than 60 child nodes.</p>

<h3 id="css">CSS</h3>

<p>There are 11 style sheets with a total weight of 97 KB (566 KB uncompressed). Only by looking at the numbers it’s hard to tell if there are a lot of unused rules in there, but 566 KB of minified CSS is definitely not something that can be ignored. I'm not saying that refactoring their CSS is a must, but I’d at least consider taking another look at what goes into the CSS bundle. Sometimes it’s not even our fault that bundle sizes are too big. Many content management systems or plug-ins come with huge JS and CSS files where only a fraction of the code is needed.</p>

<p>Another thing worth considering is splitting up the main CSS file by media feature, especially if the assets are served via HTTP2.</p>

<pre class="language-html"><code class="language-html"><span class="highlight-line"/><br/><span class="highlight-line"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>link</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>stylesheet<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>main.css<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span></span><br/><span class="highlight-line"/><br/><span class="highlight-line"/><br/><span class="highlight-line"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>link</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>stylesheet<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>medium.css<span class="token punctuation">"</span></span> <span class="token attr-name">media</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>(min-width: 768px)<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span></span><br/><span class="highlight-line"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>link</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>stylesheet<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>large.css<span class="token punctuation">"</span></span> <span class="token attr-name">media</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>(min-width: 1024px)<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span></span><br/><span class="highlight-line"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>link</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>stylesheet<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>print.css<span class="token punctuation">"</span></span> <span class="token attr-name">media</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>print<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span></span></code></pre>

<p>Before HTTP2 this was kinda considered a bad practice, but with HTTP2 multiplexing, the number of requests that can be sent to the server at the same time is no longer limited. The big advantage of splitting CSS into multiple files is that browsers will download all of them, but only those needed to fulfill the current context will block rendering,</p>

<p>Read more about the topic in Harry Roberts fantastic article <a href="https://csswizardry.com/2018/11/css-and-network-performance/">CSS and Network Performance</a>.</p>

<h3 id="fonts">Fonts</h3>

<p>Font files can get pretty big, a <a href="https://www.zachleat.com/web/comprehensive-webfonts/">good font loading strategy</a> is essential. Fonts are sometimes a necessary evil, but one file is a 34 KB Font Awesome file. SVGs might be a better choice, because they're more flexible than icon fonts for animation and styling, and a SVG sprite with just the icons needed and not the whole set of icons might end up being much smaller.</p>

<p>It’s been years since I’ve used services like Font Awesome, SVGs have so much <a href="https://css-tricks.com/icon-fonts-vs-svg/">more advantages over icons fonts</a>.</p>

<h3 id="javascript-and-bundle-sizes">JavaScript and bundle sizes</h3>

<p>There are 22 JS files with a total file size of 320 KB (886 KB compressed). This is way too much considering that there’s only a navigation and a share button on this page.</p>

<p>I will not bash JavaScript, I love JS and I enjoy writing it. I’m not great at it though, and I’d argue that most of us aren’t. Lack of knowledge paired with a language that can easily fuck up performance is dangerous. That’s why I’m very cautious of what I’m doing and which 3rd party plugins I’m using.</p>

<figure class="figure figure--full"><a href="https://res.cloudinary.com/dp3mem7or/image/upload/v1582780558/articles/543kb/addy.jpg" rel="noopener"><span class="content__image-wrapper"><img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="lazy content__image" data-src="https://res.cloudinary.com/dp3mem7or/image/upload/c_scale,w_1300/v1582780558/articles/543kb/addy.jpg" alt="Addy Osmani on the left on stage at #PerfMatters conf. A slide on the right “Stop taking fast networks, CPU &amp; high RAM for granted”."/></span></a></figure>

<p>I’ve watched Addy Osmani’s <a href="https://www.youtube.com/watch?v=X9eRLElSW1c&amp;feature=emb_title">The Cost of JavaScript</a> the other day, which is also one reason I’m writing this article. I was blown away by so many things he said. Here’s a summary of my highlights:</p>

<ul><li>JavaScript is one of the most expensive parts of your site, reduce how much JS you ship.</li><li>Small JavaScript bundles improve download speeds, lower memory usage, and reduce CPU costs.</li><li>Avoid large bundles <strong>(50KB+)</strong>.</li><li>Post-Download, executing JavaScript is the dominant cost.</li><li>The differences between a low-end phone and high-end phone are huge.</li><li>Fast JavaScript means fast at download, parse and compile, and execute.</li><li>Avoid large inline scripts.</li><li>If possible, split your JS code.</li><li>Audit JS regularly.</li><li>Make performance part of the conversation.</li><li>Stop taking fast networks, fast CPU, and high RAM for granted.</li><li>Test on real phones and networks.</li></ul>

<p>Watch the talk or <a href="https://v8.dev/blog/cost-of-javascript-2019">read the article</a>, I promise you’ll love it.</p>

<p>If you know more about performance than I do (and you probably do), you might be shouting at the screen <em>“You didn’t consider this and that”</em>. Fair enough, but this post is not about how to optimize those 543 KB. It was my attempt to show you that we can’t expect whatever we produce and put online to be fine. We have to be much more considerate, we have to take a second and third look, and constantly challenge our decisions. Sometimes, even just slowing down can make a difference. As <a href="https://hankchizljaw.com/wrote/keeping-it-simple-with-css-that-scales/">Andy Bell recently discovered</a> while reviewing a larger codebase, stepping back and ignoring time pressure for a moment can help with seeing things clearly.</p>

<blockquote><p>We had two or three grid systems, some fluid type and some utility driven type that conflicted <strong>and</strong> a card component that was pretty much a website in itself. If I had slowed down and stepped back, I could have seen these problems, but I didn’t. So seriously, slow down and you will save so much time.</p></blockquote>

<p><a href="https://hankchizljaw.com/" rel="noopener">Andy Bell</a></p>

<p>By the way, the 543 KB page scored 11 points on the Lighthouse performance test.</p>

<h2 id="why-bother">Why bother?</h2>

<p>Why is a website I'll probably never visit again bothering me so much?<br/>Because someone decided that it was good enough to go live. The problem is not this specific website or how fast it loads, but that <strong>shipping seems to be so much more important than performance, usability, accessibility, or user experience</strong>. Again, I know it’s not always up to us, because often we just have to publish something we don’t agree with, but the least we can do is to educate others why some decisions might be harmful, and try to improve things in whatever ways we can.</p>

<blockquote><p>It’s becoming increasingly clear that web performance isn’t solely an engineering problem, but a problem of people.</p></blockquote>

<p><a href="https://css-tricks.com/innovation-cant-keep-the-web-fast/">Jeremy Wagner</a></p>

<h2 id="whats-good-enough">Whats good enough?</h2>

<p>I started this article with the question “how good is <em>good enough</em>”. I can’t answer it for all of us, because it depends on our personal experience and capabilities. What I consider good enough might not live up to the expectations of others, but there are standards and best practices we can follow.</p>

<p>Here are a few things I (as a front-end dev) believe have to happen before a website can go online.</p>

<ul><li><a href="https://validator.w3.org/">Validate your HTML.</a></li><li>Test in many browsers. There’s a world beyond Firefox and Chrome. Check Opera, Firefox Mobile, Brave, Edge, or Samsung Internet, just to name a few. Safari can be a bitch, too.</li><li>Test on low budget phones, if you really want to see how well your website performs.</li><li><a href="https://developers.google.com/web/tools/lighthouse">Run Lighthouse</a> and try to score 100 in the accessibility, best practices, and SEO audits. Scoring 100 in performance is hard, but strive for a score above 90.</li><li>Check how your site performs on a slow connection by <a href="https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor/Throttling">throttling it in Dev Tools</a>.</li><li>Put <a href="https://www.youtube.com/watch?v=H4FzW9oFObs">your mouse aside</a> and use your website with the keyboard only.</li><li><a href="https://dequeuniversity.com/screenreaders/">Test your site with screen readers</a>.</li><li>Go through <a href="https://thedaviddias.dev/">David Dias</a>' fantastic <a href="https://frontendchecklist.io/">Frontend Checklist</a>.</li></ul>

<p>There’s more, but if we all did at least that, our users would be much happier. I know you might be thinking: <em>“We don’t have the budget for that.”</em>. But that’s the point: you should have it. <em>“It’s online and works in most browsers”</em> is not enough. We have to make performance, accessibility, usability, and user experience part of the conversation.</p>

<p>By the time you’ve reached this paragraph, you’ve downloaded 837 KB of data. Can that be improved? Most definitely. Is this website 100% accessible? Probably not. Did you get the best possible user experience? I guess no, I don’t know shit about UX.<br/>If my own website isn’t perfect, who am I to lecture you? Well it’s not about publishing perfect websites. That’s not possible for many different reasons, but it’s important that we’re conscious of what we’re shipping to our users. It’s important that we care about our users and about the quality of our products and that our standards become higher than they are at the moment.</p>

<blockquote><p>Good websites need time.<br/>Great websites need a lot of time.</p><p>For content, for graphics, for interaction, for organization, for findability, usability, accessibility and that dash of delight that makes it special.</p><p>Don’t build throw-away websites, build websites that last.</p></blockquote>

<p><a href="https://mobile.twitter.com/yatil/status/1230899701802770442">Eric Eggert</a></p>

<h2>Resources</h2>

<ul><li><a href="https://www.technica11y.org/performance-and-the-accessibility-tree">Performance and the Accessibility Tree</a></li><li><a href="https://developers.google.com/web/tools/lighthouse/audits/dom-size">Uses An Excessive DOM Size</a></li><li><a href="https://areknawo.com/dom-performance-case-study/">DOM performance case study</a></li><li><a href="https://developers.google.com/web/fundamentals/performance/rendering/">Rendering Performance</a></li><li><a href="https://css-tricks.com/innovation-cant-keep-the-web-fast/">Innovation Can’t Keep the Web Fast</a></li><li><a href="https://www.filamentgroup.com/lab/5g/">5G Will Definitely Make the Web Slower, Maybe</a></li><li><a href="https://hankchizljaw.com/wrote/keeping-it-simple-with-css-that-scales/">Keeping it simple with CSS that scales</a></li></ul>
</article>


<hr>

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

+ 15
- 0
cache/2020/fc97310297178a549eab5c5f9e8a334f/index.md
File diff suppressed because it is too large
View File


+ 38
- 0
cache/2020/index.html View File

<li><a href="/david/cache/2020/f7f37a2f04e53d5fef5189fbd172f5b7/" title="Accès à l'article caché">Un Français sur dix paie un abonnement à Netflix</a> (<a href="https://www.numerama.com/business/599695-un-francais-sur-dix-paie-un-abonnement-a-netflix.html" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/f7f37a2f04e53d5fef5189fbd172f5b7/" title="Accès à l'article caché">Un Français sur dix paie un abonnement à Netflix</a> (<a href="https://www.numerama.com/business/599695-un-francais-sur-dix-paie-un-abonnement-a-netflix.html" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/911b72ae5d6e140268adf8591aae7df3/" title="Accès à l'article caché">Journal-Hydration</a> (<a href="https://adactio.com/journal/16404" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/ad8fd9818243ad950a794021d3dc794c/" title="Accès à l'article caché">De l’alternumérisme : d’autres numériques sont-ils possibles ?</a> (<a href="http://www.internetactu.net/2020/02/13/de-lalternumerisme-dautres-numeriques-sont-ils-possibles/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/ad8fd9818243ad950a794021d3dc794c/" title="Accès à l'article caché">De l’alternumérisme : d’autres numériques sont-ils possibles ?</a> (<a href="http://www.internetactu.net/2020/02/13/de-lalternumerisme-dautres-numeriques-sont-ils-possibles/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/3006691afcf79e8a0fa83b2f0f64e91a/" title="Accès à l'article caché">Redesign: Wants and Needs</a> (<a href="https://frankchimero.com/blog/2020/wants-and-needs/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/3006691afcf79e8a0fa83b2f0f64e91a/" title="Accès à l'article caché">Redesign: Wants and Needs</a> (<a href="https://frankchimero.com/blog/2020/wants-and-needs/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/9a3fecdca72af16f1403b9e77b6e8e04/" title="Accès à l'article caché">“Hey Google, stop tracking me”</a> (<a href="https://www.magiclasso.co/insights/hey-google/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/9a3fecdca72af16f1403b9e77b6e8e04/" title="Accès à l'article caché">“Hey Google, stop tracking me”</a> (<a href="https://www.magiclasso.co/insights/hey-google/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/58117f5865002118d6769cb0a7aa9786/" title="Accès à l'article caché">L’épidémie n’a pas de vertus</a> (<a href="https://perspectives-printanieres.info/index.php/2020/03/10/lepidemie-na-pas-de-vertus/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/662f4136a25b828f662a6e822d85575d/" title="Accès à l'article caché">Who Listens to the Listeners?</a> (<a href="https://librarianshipwreck.wordpress.com/2019/12/06/who-listens-to-the-listeners/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/662f4136a25b828f662a6e822d85575d/" title="Accès à l'article caché">Who Listens to the Listeners?</a> (<a href="https://librarianshipwreck.wordpress.com/2019/12/06/who-listens-to-the-listeners/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/4d81a301bbb7936312cd16e6674f3ff6/" title="Accès à l'article caché">A Group Is Its Own Worst Enemy</a> (<a href="http://shirky.com/writings/group_enemy.html" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/4d81a301bbb7936312cd16e6674f3ff6/" title="Accès à l'article caché">A Group Is Its Own Worst Enemy</a> (<a href="http://shirky.com/writings/group_enemy.html" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/67c8c54b07137bcfc0069fccd8261b53/" title="Accès à l'article caché">Mercurial's Journey to and Reflections on Python 3</a> (<a href="https://gregoryszorc.com/blog/2020/01/13/mercurial%27s-journey-to-and-reflections-on-python-3/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/67c8c54b07137bcfc0069fccd8261b53/" title="Accès à l'article caché">Mercurial's Journey to and Reflections on Python 3</a> (<a href="https://gregoryszorc.com/blog/2020/01/13/mercurial%27s-journey-to-and-reflections-on-python-3/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/6723325d9229f986f6b77cc5ff6d3ef2/" title="Accès à l'article caché">Choose Boring Technology</a> (<a href="https://mcfunley.com/choose-boring-technology" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/afb9fa99e3c43324fbe57b416562b8f9/" title="Accès à l'article caché">Why is CSS Frustrating?</a> (<a href="https://css-tricks.com/why-is-css-frustrating/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/cf5eab15b9590499ccb6d989f50fe5e3/" title="Accès à l'article caché">Against Black Inclusion in Facial Recognition</a> (<a href="https://digitaltalkingdrum.com/2017/08/15/against-black-inclusion-in-facial-recognition/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/cf5eab15b9590499ccb6d989f50fe5e3/" title="Accès à l'article caché">Against Black Inclusion in Facial Recognition</a> (<a href="https://digitaltalkingdrum.com/2017/08/15/against-black-inclusion-in-facial-recognition/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/dfada08049ab34a1200974e7e46cb646/" title="Accès à l'article caché">Unlocking the commons</a> (<a href="https://www.niemanlab.org/2019/01/unlocking-the-commons/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/dfada08049ab34a1200974e7e46cb646/" title="Accès à l'article caché">Unlocking the commons</a> (<a href="https://www.niemanlab.org/2019/01/unlocking-the-commons/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/4bda6c744ffb55c0fc4f4bf1f740b4e3/" title="Accès à l'article caché">The Prodigal Techbro</a> (<a href="https://conversationalist.org/2020/03/05/the-prodigal-techbro/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/abb215ff6b7cb9c876db622d42385aca/" title="Accès à l'article caché">La Licence Contributive Commons</a> (<a href="https://contributivecommons.org/la-licence-contributive-commons/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/abb215ff6b7cb9c876db622d42385aca/" title="Accès à l'article caché">La Licence Contributive Commons</a> (<a href="https://contributivecommons.org/la-licence-contributive-commons/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/f61e3ce56d0360e061f4b22e0bb20e47/" title="Accès à l'article caché">Enough</a> (<a href="https://pjrvs.com/enough" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/a72c83494fc6636cde5b73bd2b064958/" title="Accès à l'article caché">La nature est un champ de bataille</a> (<a href="https://www.editions-zones.fr/lyber?la-nature-est-un-champ-de-bataille" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/a72c83494fc6636cde5b73bd2b064958/" title="Accès à l'article caché">La nature est un champ de bataille</a> (<a href="https://www.editions-zones.fr/lyber?la-nature-est-un-champ-de-bataille" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/82e58e715a4ddb17b2f9e2a023005b1a/" title="Accès à l'article caché">Wordsmiths | Getting Real</a> (<a href="https://basecamp.com/gettingreal/08.6-wordsmiths" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/82e58e715a4ddb17b2f9e2a023005b1a/" title="Accès à l'article caché">Wordsmiths | Getting Real</a> (<a href="https://basecamp.com/gettingreal/08.6-wordsmiths" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/b33f1c0179a41a26c9c75499fdc970d8/" title="Accès à l'article caché">Garder une trace de ses lectures</a> (<a href="https://bribesdereel.net/traces-de-lectures" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/b33f1c0179a41a26c9c75499fdc970d8/" title="Accès à l'article caché">Garder une trace de ses lectures</a> (<a href="https://bribesdereel.net/traces-de-lectures" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/ef5d670c8473add5c3e43f8d4db2eed0/" title="Accès à l'article caché">Integrated systems for integrated programmers</a> (<a href="https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/73a689d4932b2952affd040014e9b85b/" title="Accès à l'article caché">The empty promises of Marie Kondo and the craze for minimalism</a> (<a href="https://www.theguardian.com/lifeandstyle/2020/jan/03/empty-promises-marie-kondo-craze-for-minimalism" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/73a689d4932b2952affd040014e9b85b/" title="Accès à l'article caché">The empty promises of Marie Kondo and the craze for minimalism</a> (<a href="https://www.theguardian.com/lifeandstyle/2020/jan/03/empty-promises-marie-kondo-craze-for-minimalism" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/31652af3fd4757154c51aadcbe9ffb39/" title="Accès à l'article caché">Web of Documents</a> (<a href="http://blog.danieljanus.pl/2019/10/07/web-of-documents/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/58add7873e65625beba4c859d40a278b/" title="Accès à l'article caché">TikTok and the coming of infinite media</a> (<a href="http://www.roughtype.com/?p=8677" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/58add7873e65625beba4c859d40a278b/" title="Accès à l'article caché">TikTok and the coming of infinite media</a> (<a href="http://www.roughtype.com/?p=8677" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/31d18361d64bd5e98d4199f2f40d2a4d/" title="Accès à l'article caché">Coup d’État sur la " loi haine "</a> (<a href="https://www.laquadrature.net/2020/01/22/coup-detat-sur-la-loi-haine/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/31d18361d64bd5e98d4199f2f40d2a4d/" title="Accès à l'article caché">Coup d’État sur la " loi haine "</a> (<a href="https://www.laquadrature.net/2020/01/22/coup-detat-sur-la-loi-haine/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/874765e437a144748e9438d272b1177a/" title="Accès à l'article caché">Vieux développeur, pas manager</a> (<a href="https://n.survol.fr/n/vieux-developpeur-pas-manager" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/2343cdf9e5f75cc6bfba098799f0f2fd/" title="Accès à l'article caché">A Future with No Future: Depression, the Left, and the Politics of Mental Health</a> (<a href="https://lareviewofbooks.org/article/future-no-future-depression-left-politics-mental-health/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/2343cdf9e5f75cc6bfba098799f0f2fd/" title="Accès à l'article caché">A Future with No Future: Depression, the Left, and the Politics of Mental Health</a> (<a href="https://lareviewofbooks.org/article/future-no-future-depression-left-politics-mental-health/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/cbef115a80c646c9eddc61ac077a6891/" title="Accès à l'article caché">Sonos in bricked speaker 'recycling' row</a> (<a href="https://www.bbc.co.uk/news/technology-50948868" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/cbef115a80c646c9eddc61ac077a6891/" title="Accès à l'article caché">Sonos in bricked speaker 'recycling' row</a> (<a href="https://www.bbc.co.uk/news/technology-50948868" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/42b02cc81a7fface539dfb3397f0a464/" title="Accès à l'article caché">How to Fake a Traffic Jam on Google Maps</a> (<a href="https://www.vice.com/en_us/article/9393w7/this-man-created-traffic-jams-on-google-maps-using-a-red-wagon-full-of-phones" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/42b02cc81a7fface539dfb3397f0a464/" title="Accès à l'article caché">How to Fake a Traffic Jam on Google Maps</a> (<a href="https://www.vice.com/en_us/article/9393w7/this-man-created-traffic-jams-on-google-maps-using-a-red-wagon-full-of-phones" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/85e0f968f6ac8dfdd76c7a76df6ef088/" title="Accès à l'article caché">Overcoming my panic towards accessibility</a> (<a href="https://zellwk.com/blog/overcoming-panic-towards-accessibility/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/4c5cc5e59531ef04e068c883a1a0e166/" title="Accès à l'article caché">Running a Paid Membership Program</a> (<a href="https://craigmod.com/essays/membership_programs/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/4c5cc5e59531ef04e068c883a1a0e166/" title="Accès à l'article caché">Running a Paid Membership Program</a> (<a href="https://craigmod.com/essays/membership_programs/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/bfce8545a2d7c8d51d3af19f61208134/" title="Accès à l'article caché">On Pair Programming</a> (<a href="https://martinfowler.com/articles/on-pair-programming.html" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/bfce8545a2d7c8d51d3af19f61208134/" title="Accès à l'article caché">On Pair Programming</a> (<a href="https://martinfowler.com/articles/on-pair-programming.html" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/bdc65ed9d2657f45d13d97186072b415/" title="Accès à l'article caché">How I think about solving problems</a> (<a href="https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/59dac1925636ebf6358c3a598bf834f9/" title="Accès à l'article caché">Un pédophile est un client Apple comme les autres.</a> (<a href="https://www.affordance.info/mon_weblog/2020/01/pedophile-client-apple.html" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/59dac1925636ebf6358c3a598bf834f9/" title="Accès à l'article caché">Un pédophile est un client Apple comme les autres.</a> (<a href="https://www.affordance.info/mon_weblog/2020/01/pedophile-client-apple.html" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/4bf3df418cd5d6e14bc6e1b2bda9b12d/" title="Accès à l'article caché">How is computer programming different today than 20 years ago?</a> (<a href="https://medium.com/swlh/how-is-computer-programming-different-today-than-20-years-ago-9d0154d1b6ce" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/af5d5f52466dfc2f59718294faa07418/" title="Accès à l'article caché">Visitors, Developers, or Machines</a> (<a href="https://garrettdimon.com/2020/visitors-developers-or-machines/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/a1ba10f6326b0ed4c9ca343a214f671d/" title="Accès à l'article caché">Végétarien carnivore</a> (<a href="https://oncletom.io/2020/01/12/vegetarien-carnivore/" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/a1ba10f6326b0ed4c9ca343a214f671d/" title="Accès à l'article caché">Végétarien carnivore</a> (<a href="https://oncletom.io/2020/01/12/vegetarien-carnivore/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/d562b547dc4833f0eb84a67ec2a8465d/" title="Accès à l'article caché">Technology Can't Fix Algorithmic Injustice</a> (<a href="http://bostonreview.net/science-nature-politics/annette-zimmermann-elena-di-rosa-hochan-kim-technology-cant-fix-algorithmic" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/d562b547dc4833f0eb84a67ec2a8465d/" title="Accès à l'article caché">Technology Can't Fix Algorithmic Injustice</a> (<a href="http://bostonreview.net/science-nature-politics/annette-zimmermann-elena-di-rosa-hochan-kim-technology-cant-fix-algorithmic" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/efc69100e48d4016a6e167797da7ee13/" title="Accès à l'article caché">Researchers Find 'Anonymized' Data Is Even Less Anonymous Than We Thought</a> (<a href="https://www.vice.com/en_us/article/dygy8k/researchers-find-anonymized-data-is-even-less-anonymous-than-we-thought" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/efc69100e48d4016a6e167797da7ee13/" title="Accès à l'article caché">Researchers Find 'Anonymized' Data Is Even Less Anonymous Than We Thought</a> (<a href="https://www.vice.com/en_us/article/dygy8k/researchers-find-anonymized-data-is-even-less-anonymous-than-we-thought" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/a70068c881eba36604b2f4f8aec54670/" title="Accès à l'article caché">HTML: The Inaccessible Parts</a> (<a href="https://daverupert.com/2020/02/html-the-inaccessible-parts/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/566b71b4e3a0217d7a224f71aa255a35/" title="Accès à l'article caché">Which tech companies are doing the most harm?</a> (<a href="https://slate.com/technology/2020/01/evil-list-tech-companies-dangerous-amazon-facebook-google-palantir.html" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/566b71b4e3a0217d7a224f71aa255a35/" title="Accès à l'article caché">Which tech companies are doing the most harm?</a> (<a href="https://slate.com/technology/2020/01/evil-list-tech-companies-dangerous-amazon-facebook-google-palantir.html" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/2c6ccd57b9f0f1c39706013d026de507/" title="Accès à l'article caché">L’affaire de la Ligue du LOL, ou la fabrique de l’oubli</a> (<a href="https://medium.com/@florence.porcel/laffaire-de-la-ligue-du-lol-ou-la-fabrique-de-l-oubli-df4ad3f5f2b5" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/fc97310297178a549eab5c5f9e8a334f/" title="Accès à l'article caché">Why 543 KB keep me up at night</a> (<a href="https://www.matuzo.at/blog/why-543kb-keep-me-up-at-night/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/1d190443e06aa99b44dd2a4d55b1b58e/" title="Accès à l'article caché">The Secretive Company That Might End Privacy as We Know It</a> (<a href="https://www.nytimes.com/2020/01/18/technology/clearview-privacy-facial-recognition.html" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/1d190443e06aa99b44dd2a4d55b1b58e/" title="Accès à l'article caché">The Secretive Company That Might End Privacy as We Know It</a> (<a href="https://www.nytimes.com/2020/01/18/technology/clearview-privacy-facial-recognition.html" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/de93ff8ea46e134a57ecd2671897abee/" title="Accès à l'article caché">Bientôt dans presque tous les commissariats, un logiciel pour fouiller dans vos portables</a> (<a href="https://www.streetpress.com/sujet/1579520319-police-gendarmerie-un-logiciel-pour-fouiller-portables" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/de93ff8ea46e134a57ecd2671897abee/" title="Accès à l'article caché">Bientôt dans presque tous les commissariats, un logiciel pour fouiller dans vos portables</a> (<a href="https://www.streetpress.com/sujet/1579520319-police-gendarmerie-un-logiciel-pour-fouiller-portables" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/685842ac9d1a3206af33dbd51d08cbf0/" title="Accès à l'article caché">The modern web is becoming an unusable, user-hostile wasteland</a> (<a href="https://omarabid.com/the-modern-web" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/685842ac9d1a3206af33dbd51d08cbf0/" title="Accès à l'article caché">The modern web is becoming an unusable, user-hostile wasteland</a> (<a href="https://omarabid.com/the-modern-web" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/ac3266635585d387973da1c64b546990/" title="Accès à l'article caché">Ligue du LOL : un an après</a> (<a href="https://medium.com/@vincentglad_67276/ligue-du-lol-un-an-apr%C3%A8s-aeee7784cf4d" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/195a2ecd81fa25a7cf43248b809bf724/" title="Accès à l'article caché">Honesty is the best policy</a> (<a href="https://hankchizljaw.com/wrote/honesty-is-the-best-policy/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/77db8cc6de2906f31a4d37d91a47a3aa/" title="Accès à l'article caché">Currying in CSS?</a> (<a href="https://www.trysmudford.com/blog/currying-in-css/" title="Accès à l'article original">original</a>)</li>
<li><a href="/david/cache/2020/ceecad22409cbd161b85bf5f18b09413/" title="Accès à l'article caché">Estimating NetNewsWire for iOS Demand</a> (<a href="https://inessential.com/2020/01/03/estimating_netnewswire_for_ios_demand" title="Accès à l'article original">original</a>)</li> <li><a href="/david/cache/2020/ceecad22409cbd161b85bf5f18b09413/" title="Accès à l'article caché">Estimating NetNewsWire for iOS Demand</a> (<a href="https://inessential.com/2020/01/03/estimating_netnewswire_for_ios_demand" title="Accès à l'article original">original</a>)</li>
</ul> </ul>

Loading…
Cancel
Save