✍ Lettre à Cascador

Cascador,

J’ai apprécié que tu pointes les contradictions dans un texte qui est justement là pour en garder la trace. Le témoignage d’un tiraillement que connais j’imagine chaque accompagnant qui se plonge dans les notions de risque et de vitesse. Encourager l’expérimentation lorsqu’elle n’est pas invalidante. Prendre le temps de pratiquer avant d’acquérir les concepts. Ces curseurs sont propres à chaque relation et évoluent dans le temps. Je pense aujourd’hui qu’un apprentissage itératif et bienveillant est davantage approprié. Je me trompe probablement et mon moi-dans-six-jours/mois/ans sera peut-être là pour lire ces lignes et sourire.

Le choix délibéré de le laisser trouver une place dans ce monde en limitant les (dés)orientations vient de la croyance qu’il pourrait trouver ainsi des chemins auxquels je n’avais pas pu songer. Pas forcément meilleurs mais qui lui sont propres avec un sentiment d’accomplissement personnel et/ou collectif.

Pour autant, je ne considère pas cela comme un espoir. Lorsque l’on prend le temps d’apprécier l’instant présent, je ne pense pas que l’on ait besoin de formuler des espérances. Mon seul espoir c’est que l’on soit bien ensemble là et maintenant. Se projeter au-delà n’apporte que de l’anxiété inutile vu le peu de contrôle que l’on a dessus. Ce monde est malade de ses propres projections erronées qu’il s’épuise à rattraper.

David

★ Resilient Web and Tools

Changing a workflow or a process can be particularly challenging if it clashes with the tools being used. A tool is supposed to help people get their work done in a more efficient way. The tool should be subservient to the workflow. All too often, tools instead dictate a preferred way of working. Whether it’s WYSIWYG editors, graphic design programs, content management systems, or JavaScript frameworks, tools inevitably influence workflows.

If you are aware of that influence, and you can recognise it, then you are in a better position to pick and choose the tools that will work best for you. There are many factors that play into the choice of frameworks, for example: “Is it well‐written?”, “Does it have an active community behind it?”, “Does it have clear documentation?”. But perhaps the most important question to ask is, “Does its approach match my own philosophy?”

Every framework has a philosophy because every framework was written by people. If your philosophy aligns with that of the framework, then it will help you work more efficiently. But if your philosophy clashes with that of the framework, you will be fighting it every step of the way. It might even be tempting to just give up and let the framework dictate your workflow. Then the tail would be wagging the dog.

Choose your tools wisely. It would be a terrible shame if you abandoned the resilient approach to web design because of a difference of opinion with a piece of software.

Differences of opinion often boil down to a mismatch in priorities. At its heart, the progressive enhancement approach prioritises the needs of people, regardless of their technology. Tools, frameworks, and code libraries, on the other hand, are often built to prioritise the needs of designers and developers. That’s not a bad thing. Developer convenience is hugely valuable. But speaking personally, I think that user needs should trump developer convenience.

When I’m confronted with a problem, and I have the choice of making it the user’s problem or my problem, I’ll make it my problem every time. That’s my job.

Resilient Web Design - Chapter 7 (cache)

The Resilient Web Design (cache) web book by Jeremy Keith is inspiring, to say the least. I knew that it would be a good reading so I savoured it, one chapter at a time. Nothing really new but there is a moment in your life you realise that everything is cyclic and very old concepts are just going to be the next trend. Let’s call it maturity to stay polite and because I think I reached it :-P.

That particular extract of the chapter related to “Challenges” hit me. That’s part of my job to ease processes and reduce frictions. That’s part of my job to take into account from the early beginning of a product its lasting qualities. That’s part of my job to produce resilient websites. Resilient not only by the underneath concepts but by the technologies we put into practice to achieve our goals. That’s why I’m more inclined to use Falcon over Django these days. It’s not anymore about using the right tool for the job, I can do whatever I want with both frameworks. The difference will be building on one hand and deconstructing on the other. You have to be confident enough to start building and you have to deconstruct a lot to acquire it. This is a process you have to accomplish by yourself to be able to identify complexity at first sight.

Good engineering involves finding simple solutions to sometimes complex problems. Repurposing code may make development easier, but ease of development is not the end goal.

Developers need to continue to learn to code before they learn to include frameworks.

You don’t need a framework for that (cache)

As a starter (cache), I have a responsibility to choose my tools wisely. I have to care enough about the maintainer and the future team as a whole. When you are coding public facing interfaces — like websites — you obviously have to care about your users too. It means identifying their needs and adapting constantly your product.

Even if I’m seduced by the three‐step approach (I’m so jealous of these “clever” hashes!), I think it misses a fourth one: Mesure and remove. We spend our time adding features without considering at the same pace the removal of useless ones. And still the true resilience (or is it perfection Antoine?) is when there is nothing more to take away. What are you removing on Monday to make our Web more resilient?

★ Bitcoin and energy

One of the obvious objections to Bitcoin has been that the consensus mechanism based on proof-of-work (PoW) is wasteful. […] The cost of running Bitcoin is the exact cost of running a system that puts all its trust in a network without privileged nodes.

[…]

If you produce surplus electricity, then Bitcoin mining is your battery […] The combination of the above ideas might bring to fruition the vision held by the likes of Henry Ford and Thomas Edison of the energy dollar

2016 in Review (cache)

Besides from being a hell of a year for the people at ▲ZEIT — just look at how much they achieved — the shared ideas at the bottom of the post are quite enlightening, especially the one about Bitcoin as a battery. This is the first time I see that technology mentioned without thinking to my neighbours drowning into the Arctic Sea a.k.a. polar bears. And still, using that “money” as a mesure of energy spent is relevant in a context where supply from clean energy can have hiccups.

Let’s say you have a sunny Monday, you use that extra energy to mine some bitcoins. Later that week you’re short on energy because of the rain, you can use that money to buy energy from another source, for instance a dam to be consistent. That’s quite ingenious. Bitcoin can be a way to store extra clean energy.

Now what if the time spent on a given website was in use to mine bitcoins for the author of the website? There is maybe a business model here, the visitor allowing to use his energy for a given amount of time per website. As a bonus all these shiny CSS transforms and useless JS will be avoided to let the CPU focus on mining. Yay! Each and every website acting as a micro-battery to create an energy grid at the scale of the Web. Maybe the future is not about micro-payments but pico-gifts of energy.

✍ Lettre à Stéphane et Vincent

Stéphane et Vincent,

Voici quatre ans que nous avons créé scopyleft, l’occasion d’évoluer à bien des niveaux. De tisser des liens avec des humains et de challenger des valeurs communes. Lorsque je regarde autour de moi, je ne peux que constater le rapport privilégié que nous avons au travail grâce à ce cadre.

Et pourtant, même si nous avons longtemps cherché à travailler ensemble, je ne pense plus que ce soit un cap aujourd’hui. Ces années ont eu pour externalité de construire de la confiance. C’est elle qui a participé à ma paternité et à ma récente expatriation. La confiance est la base qui nous permet d’expérimenter de nouvelles formes de vies avec la solidarité et l’empathie suffisantes pour prendre des risques de manière apaisée.

Vos envols (cache) respectifs me permettent d’alimenter mes réflexions depuis ma branche, dans mon petit nid. Peut-être un intermédiaire entre l’arbre et l’oiseau ?

Merci pour votre bienveillance.

David

✍ Lettre à Karl

Karl,

Ton silence numérique est difficile à accepter. Il a rythmé mes lectures ces dernières années, c’est un vide poétique qui ne peut être remplacé. Et pourtant je le comprends. J’ai l’espoir qu’il ne soit que passager et que nous puissions échanger sur nos expériences (cache) respectives.

Ton dernier billet publié parle d’équilibre (cache) et je voudrais y adjoindre mon propre murmure. Je me pose beaucoup de questions sur la temporalité ces jours-ci. Dans cet équilibre, je ressens une immobilité nécessaire à l’appréciation de l’instant présent. Or, j’ai parfois du mal à m’en contenter, happé par la dynamique qui nous donne l’illusion d’avancer. Ce déséquilibre synonyme de mouvement dans un perpétuel risque de chute en avant exhibitionniste. Se tenir enfin debout, mais pour aller où ?

Peut-être accepter de se perdre en forêt pour prendre le temps d’écouter les brindilles craquer sous nos pieds et le sous-bois nous enivrer de ses senteurs. Regarder filer le ruisseau et imaginer son parcours, les méandres qui l’attendent et les affluents qu’il va rencontrer. Y déposer une feuille, la suivre un moment et l’observer s’éloigner. S’allonger et sourire, au bruit des cigales stridulantes.

Dissocier tout en restant intime, là pourrait être l’équilibre.

David

PS : hasard heureux d’une publication décalée, La Grange s’est réveillée depuis.

★ Échanger, supprimer et rebondir

Some of the things I have looked at those days is resilience. How can you survive bad moments, build again, start from scratch, after an incident that is affecting you (whatever its cause). Again, just like for bad emotion, or anger, here are some articles I identified as bringing some pieces of answers. Those are not the answer, but an opportunity to deal with notions and play with it.

Middle Life Crisis Toolbox : about resilience (cache)

La tentative d’établissement d’un lexique l’année dernière a été un échec. Je suis content d’arriver à le reconnaitre. Manque de rythme et l’impression de tourner en rond dans ma propre noirceur.

Échanger

It’s this kind of storytelling that I think is maybe critical to understanding the web today: it’s not just that the web made all of us writers—or potential writers, at least. It’s that the speed of distribution on the web, and the connectedness of hypertext, creates a space for iteration and revision, for call and response, that means each act of writing is by definition collaborative.

Hypertext as an agent of change (cache)

J’ai envie d’encourager la découverte de manière plus active, non plus en ouvrant des portes mais en tendant la main pour un échange. De la réaction à la discussion. J’ai initié cela à travers des correspondances qui prennent la forme de lettres. Des Lettres persanes à Dear data en passant par le Manuel d’écriture et de survie, ce format m’a toujours intéressé et offre de nombreuses possibilités de réponses. Passer d’une contemplation de la toile à son tissage assidu, avec un rythme que j’espère hebdomadaire.

Toute la difficulté est de rester dans l’extime en étant compréhensible. Un exercice de style qui s’avère être compliqué ce qui n’est pas sans me plaire.

Supprimer

The present is always compromised, always rushed. We muddle through with half the information we need, praised for our speed and faulted when we stop to contemplate or even breathe. Frameworks built on newish worst practices seem like the way out, but they end up teaching and permanently ingraining bad habits in a generation of web makers. Semantics, accessibility, and clarity matter. Reusability is not out of reach. All it takes is clarity and communication.

Kiss My Classname (cache)

Je suis de plus en plus convaincu que la meilleure des protections est la suppression (heureusement que je ne suis pas garde du corps). J’avais déjà commencé avec la suppression de plus d’une décennie de logs IRC, je compte bien continuer avec les courriels, les photos, etc. En contrepartie, les données restantes seront systématiquement chiffrées et redondées. D’expérience il est beaucoup plus facile de s’astreindre à cette hygiène numérique en gérant moins de données.

Cette année je vais également tenter professionnellement de supprimer des fonctionnalités. Avec de plus en plus le sentiment d’être un développeur décroissant qui se détourne des couches qui viennent immanquablement s’empiler chaque année au détriment de leur compréhension. Il est plus que temps que j’accorde davantage d’attention à l’universalité ainsi qu’à la résilience de ce que je produis. Sans oublier la nature politique de chacune de mes lignes de code.

Rebondir

Alors mon plan, si tant est qu’il y en ait un, c’est de trouver ma place, dans l’ici et maintenant de cette mystérieuse incarnation, sans faire de mal à quiconque, et surtout pas à moi. Je reconnais l’existence et l’importance dans l’équilibre global de toutes les initiatives que j’ai découvertes. Je me reconnais dans beaucoup d’entre elles, étant toute à la fois pragmatique, intellectuelle, agissante et contemplative.

C’est quoi ton plan ? (cache)

Faire un reset dans ma vie avec le départ à Montréal m’a (re)fait prendre conscience de tout ce que j’ai pu accumuler ces trois dernières années. Et du gaspillage que cela occasionne à chaque déplacement. Je vais davantage me concentrer sur des objets moins spécifiques au détriment de leurs technicité. Il en est de même des communautés que je souhaite rencontrer, davantage participer à des communs qui ne se concrétisent pas (seulement) par du code.

Une autre piste que je voudrais explorer est de rendre cet espace auto-suffisant en terme de financement (domaine, hébergement, etc). Un billet plus complet arrive sur le sujet.

Nouveaux lieux, nouvelles communautés, nouveaux terrains de jeux et d’expérimentations.

Dans les épisodes précédents

★ Team building

People willing to pursue more senior roles in leadership still find these positions scarce in the world of remote. While distributed developer force is growing strong, aforementioned management opportunities are often limited to on-site offices, with small exception of fully remote organisations.

Building remote-first teams (cache)

Building a team is a process. The complexity of human relations makes it almost impossible to work on the long term. It’s a matter of momentum, context and luck combined. It has to be reshaped constantly to handle new challenges. Anyway, I think you increase your chances to achieve that goal if you align these three planets:

Motivation

All members of the team have to be more concerned about the well being of the group than their own egos or goals. It doesn’t mean that you have to put individualities aside but to bet on externalities created by knowledge and experience put in common.

I see motivation as waves and difficulties appear during extrema. These particular moments requires shared…

Values

When you reach the bottom (or the top), you have to put your feet on something to bounce back. That “something” are values defined by the team, tightening the links to move forward together.

I don’t see it as a strong cement but as a loose web that has to evolve. Because at one point, something will change: your…

Vision

It should be the beacon of your boat, sometimes you know you will not be able to go straight to it, sometimes you will have to pivot to stay alive, sometimes it leads to unexpected paths. But it has to be the light that everyone within the team is aiming for at a given moment.

Knowing that each other colleague is heading toward the same direction feeds your… motivation. And with that the loop is over.

A team is an evolving collection of individualities recognising themselves into common values and sharing the same journey. When the team is distributed, it’s even harder to put together these energies because communication is often worse than in person meetings. It’s both scaring and exciting to know that everything has to be experimented in this area.

★ Militantisme festif

The main point I want to make is that you, dear reader, are almost certainly in the top category of computer skills, level 3. […] Overall, people with strong technology skills make up a 5–8% sliver of their country’s population, whatever rich country they may be coming from. Go back to the OECD’s definition of the level-3 skills, quoted above. Consider defining your goals based on implicit criteria. Or overcoming unexpected outcomes and impasses while using the computer. Or evaluating the relevance and reliability of information in order to discard distractors. Do these sound like something you are capable of? Of course they do.

What’s important is to remember that 95% of the population in the United States (93% in Northern Europe; 92% in rich Asia) cannot do these things.

You can do it; 92%–95% of the population can’t.

The Distribution of Users’ Computer Skills: Worse Than You Think (cache)

Les vieux sont dépassés, les jeunes savent à peine jouer (cache) et votre génération ne comprends pas grand chose non plus (cache). Si vous me lisez, il y a de grandes chances que vous fassiez partie des 5% évoqués. Pourquoi ne pas profiter de l’ambiance festive entre les trolls sportifs et les discussions politiques (ou l’inverse) pour éduquer sur l’état du web (cache) et pointer quelques pistes pour améliorer la situation ? Je vais essayer de découper ça en quelques usages concrets et pistes d’outils à proposer, vous pouvez aller beaucoup plus loin avec macOS (cache).

Navigation

Le pitch : votre navigation laisse des traces qui sont exploitées, les limiter permet de respecter votre vie privée et d’améliorer les performances de navigation.

N’importe quel bloqueur de publicité sera déjà mieux que rien. Je recommande uBlock et Ghostery comme base pour les utilisateurs de Firefox. Votre voisin de droite va probablement évoquer le business-model associé et celui de gauche la rémunération des auteurs, soyez prêt :-).

Ces jours-ci j’utilise plutôt uMatrix en mode très agressif. La moitié du Web se retrouve être très blanche mais je considère que c’est la mauvaise. En gros si le mode Lecteur de Firefox ne trouve pas votre contenu et/ou si vous dépendez d’un CDN pour inclure dynamiquement le contenu de vos articles (ça arrive plus souvent que vous ne le croyez…) il y a peu de chance que je continue.

Dernière chose pour les plus aguerris, j’ai longtemps utilisé hosts zero et je suis récemment passé à une base consolidée. Si vous trouvez que c’est redondant avec vos extensions navigateurs, sachez que des solutions comme Electron (cache) contournent justement vos protections. L’utilisation de LittleSnitch permet de le vérifier (oui, Slack « Desktop » vous traque avec Google Analytics par exemple).

Vous pouvez en profiter pour évoquer DuckDuckGo ou Qwant.

Communication

Prétendre que votre droit à une sphère privée n’est pas important parce que vous n’avez rien à cacher n’est rien d’autre que de dire que la liberté d’expression n’est pas essentielle, car vous n’avez rien à dire.

Edward Snowden

Pitch : vos échanges personnels passent par les ordinateurs de plusieurs autres personnes (le claoude), qui peuvent très probablement les lire au passage.

Remplacer les messageries d’Apple ou Facebook est très difficile car cela demande aux interlocuteurs de le faire ensemble, s’ils sont dans la même pièce c’est beaucoup plus facile pour se coordonner ! Hop, entre les huitres vegan et le fois gras sans gluten Signal party pour tous. Pour les plus téméraires il y a aussi Ricochet. Les secrets de famille resteront dans la famille.

Au passage, si vous avez l’occasion d’échanger en visio avec vos proches — au hasard car un océan vous sépare — vous pouvez montrer la simplicité de WebRTC, via Jitsi par exemple. Pour les utilisateurs du courriel, vous pouvez aussi orienter vers ProtonMail ou entreprendre des changements plus profonds. Possible si le repas dure aussi plus de quatre heures chez vous.

Partage

Pitch : quand vous pensez partager des photos avec une personne en les téléversant vers une plateforme, il y a beaucoup plus de monde qui y a et/ou y aura accès.

Encore une fois c’est le type de besoin où il vaut mieux être ensemble pour faire le grand saut face à des positions monopolistiques (coucou Dropbox). Mon choix actuel repose sur Tresorit qui fonctionne plutôt bien et permet de partager des fichiers avec expiration, limitation du nombre de téléchargements et mot de passe.

Pour ceux qui ont reçu une lettre de la Haute Autorité DOPI, vous pouvez donner quelques pistes pour rester en dessous des radars (limitation de bande passante, port aléatoire, blacklist, etc) et pointer vers des VPN mais je n’ai malheureusement trouvé aucun fournisseur recommandable pour l’instant. Idéalement il m’en faudrait un avec au moins une sortie au Canada et une autre en France (merci Arte).

Sauvegarde

The condition of any backup is unknown until a restore is attempted.

Pitch : les plateformes ne sont pas des solutions de sauvegarde, elles vont disparaitre et vous n’aurez pas les compétences techniques pour récupérer l’ensemble de vos productions.

Il y a beaucoup d’options dans le domaine, j’ai tendance à privilégier Arq pour cet usage car Tresorit ne permet pas de sauvegarder plus d’un téraoctet. Arq permet de choisir le lieux de stockage (qui peut aussi être n’importe quel SFTP) et comme c’est chiffré avant envoi c’est moins problématique d’aller déposer ça sur l’ordinateur d’un autre.

Il faudra que je tente bup à l’occasion mais ça demande de savoir manier la ligne de commande alors on est hors-sujet.

Mots de passe

Pitch : inutile d’avoir un coffre fort si la clé est sous le paillasson.

Ici les usages divergent un peu, entre ceux qui font confiance à leur navigateur, ceux qui alternent entre plusieurs mots de passe forts et ceux qui ont des solutions système. Mais certaines utilisations peuvent vous surprendre, la miss utilise systématiquement le lien pour se faire envoyer un nouveau lien de connexion par exemple et met un truc random (imaginez les dégâts si vous êtes en two-factor auth suivi d’un départ à l’étranger…).

Au final, la recommandation est peut-être de ne surtout pas retrouver son mot de passe dans les listes connues. Idem pour les codes (cache) et patterns (cache) des téléphones.

Militer festivement c’est prendre le temps d’accompagner, pour une fois cela ne sera pas (seulement) pour « réparer la wifi ». Il ne s’agit pas de rester dans la théorie mais bien de manipuler des ordinateurs, aussi miniaturisés soient-ils. Il ne s’agit pas non plus d’imposer, le droit à l’oubli peut être volontaire, la publicité ciblée une nécessité capitaliste et l’enrichissement des 1% un accomplissement personnel.

Joyeux Nowwwel (cache) !

Quelques liens pour aller plus loin :

★ Inclusive developer

So where have we got to? Access is important, but inclusion is bigger than access. Inclusive design means making something valuable, not just accessible, to as many people as we can.

What the Heck Is Inclusive Design? (cache)

Job titles are hard. I always wondered which is mine. I think Heydon Pickering nailed it with his last article on 24ways. I’m working on inclusiveness due to recent changes within my team and as part of my road to become a senior developer. Being inclusive means a lot of things to me:

  • help newcomers jumping into projects smoothly with explicit documentation of governance and participation
  • enjoy nonviolent communication during developments (pair-programming, code-reviews and so on) and quick feedback loop on iterative releases
  • avoid burn-out/isolation for co-workers with healthy lifestyle and solidarity
  • turn open-source into free software (more in a future article)

Inclusive developers lead to inclusive teams. Inclusive teams lead to inclusive products. Not the other way around. The values you share within your team will be the ones transmitted by your product. It’s hard to have empathy for your users if you don’t have empathy for your colleagues first. I’m paying the price these days for not being careful enough about people I’m working with. It will be one of my take-aways from 2016. No matter the importance of your achievements, you are interacting with humans and taking the time to listen to them is important.

I hope I’ll be able to qualify myself as an inclusive developer, someday.

★ Cultural Intimacy

I just came across that campaign from Spotify titled “Thanks, 2016. It’s been weird.” where we can read on billboards things like:

Dear 3,749 people who streamed “It’s the End of the World As We Know It” the day of the Brexit vote, Hang in there.

or

Dear person who played “Sorry” 42 times on Valentine’s Day, What did you do?

When a campaign like this is cheered as being “Brilliant”, I’m afraid that we lost our collective mind (and my battles about privacy). It literally means that people at Spotify are aggregating data to make fun of you. And you enjoyed it. Smiled at it. Shared it. Even paid for it!

In that case, they are dealing with big data — maybe anonymised — so it doesn’t elect as a privacy issue, right? Well, it’s maybe worse than that. Something affecting communities in a deeper sense. It’s a matter of cultural intimacy. Revealing such moments is segregating more than being inclusive. And you should be ashamed of that. More insidious is the fact a company can deliberately report playing with customers’ data on gigantic billboards and nobody reacts. It makes me so sad.

My FLAC library doesn’t spy me each and every time I play a music file. I can listen to Wicked Game interpreted by James Vincent McMorrow 20 times in a row if I want to and nobody will judge me, except maybe my neighbours. Think about it next time you play something on someone else’s computer (a.k.a. cloud), he knows it and will make fun of it. A torrent file does not.

Thanks, Spotify. YOU are creepy.