Home » Archive by category "Science et High-Tech"

★ Inclusive Python

After 12 years of hacking in Python, what did I learn the hard way? From biology to the web, across startups and now French government, I realized one thing: making your code resilient requires empathy.

It is the subject of a talk (slides) I gave at the Montreal-Python meetup.

I’ve been using Python for more than a decade now. Such a ride. And still, time doesn’t really matter. It’s more the diversity of projects and interactions that made me who I am as a developer. As such, I’m more and more concerned about the life of the code than ever. The transmission of the associated knowledge is the key to success of a project and to achieve this you have to think as a team. Lone wolves are burning out with their products. And it’s a real loss of energy. And happiness. And that sucks.

But first, let’s define inclusive. Given the Wiktionary the first definition is:

Including (almost) everything within its scope.

For this article, I would like to slightly rephrase that definition:

Including (almost) everybody within its scope.

I prefer that definition because coding is a social and political act. As such, each and every line of Python you produce should be put into that context. With whom. And why.

So, how do you make everybody capable of working with you(r Python code)?

Include yourself

Yesterday I was clever, so I wanted to change the world. Today I am wise, so I am changing myself. — Jalaluddin Rumi

That might seem obvious but do yourself a favour and do not reject yourself from your own code! We all have (please confirm :p) a project with no tests, no docs and yet critical and running in production that you have to maintain. Reshaping the project is not an option because you are short on attention/budget so it became a patchwork of ugly bug fixes. At that point, even you are unable to fix something without a week of procrastination to avoid that painful task. The challenge is not technical but the amount of motivation required is tremendous.

Try to be empathetic with a older wiser self. Ease the installation process, reduce dependencies, have fixtures. Document, automate, speed up the feedback loop when you are modifying something. All basic things that I rarely saw well implemented (including my projects).

Include your colleagues

— “But if all of our programmers are pairing, won’t they write half as much code?”
— “No, hopefully they’ll write even less than that.”

Ben Rady

Being part of a team is a way to duplicate the knowledge around the project. And that’s clearly not a lack of time or energy when you see the turn-over within our profession. I see three ways to do it:

  1. before: discussing strategies all together regularly, your mileage may vary on the frequency. The whole team needs to have a clear picture of what will be developed and why.
  2. during: pair-programming and/or quick sessions to discuss a particular issue mainly focused on the how.
  3. after: performing code-reviews and user-testing on each and every pull/merge-request. Check that the “why” of point 1. has been addressed and tested. Do not hesitate to trash everything at that point if it’s not relevant anymore.

Besides that, newcomers are a chance to rethink together a better process to onboard people. It only happens once per people, do not miss it and block at least half a day dedicated to that task. Observe them installing your project and trying to figure out how to make it run. Observe, do not help, do not say anything, let them find out alone. It’s not a user-testing session but a developer one. Collect everything to improve the developer experience later. Once the task is performed or worse your colleague is stuck, it’s time to discuss of the improvements. Is that a documentation issue? Or an environment one? Are you really explaining the purpose of your project? Which are the communication channels? And so on. We all have an illusion of the simplicity of our processes until they confront the diversity of others’ experiences.

The knowledge of your product is in your team, not in your code. We probably need new practices to get rid of that situation, it’s still too hard to find the right cursor between documenting and delivering value. Not only sharing how it works but why it failed and how do we addressed it at that time.

Include your (re)users

My suggestions can be expensive in time, money and energy. When you’re building something for the first time, all of this comes down to you. Focus on the documentation in the beginning. By doing that, you’ll create a welcoming place for others and then they can start helping you with the rest of it.

Lowering the barriers (cache)

This is a particular case that might be biased by my situation but when you are open-sourcing your developments and working for a government citizens you want people to be able to contribute to your work one way or another. Lowering the barriers of the contributions is still very hard.

Labelling some easy-picking issues (cache) might be worth it and your reactivity to answer to declared issues is key. Especially by people who just created an account just to submit them. Which does happen more than I expected in my case! Performing pedagogic reviews might be worth it on the long term to help contributors level up and produce better code with you.

Note: if your project only runs on top-of-the-market computers and requires to download megabytes of dependencies, you are closing the door to a lot of potential contributors.

Include maintainers

While I empathize with maintainers burning out and asking for support, trying to tackle sustainability from a maintainer centric view is a to paddle against the flow of the river. We continue to see barriers to adoption and participation fall away, enabling a new generation of contributors to be involved as long as we can view them as part of the solution rather than the problem itself.

Developers like to think they code their way out of any problem. We know how to scale servers but most of us are inexperienced with scaling people.

Maintainer vs. Community (cache)

Each and every time you contribute to an open-source project, you give your technical debt to a maintainer. Sad but true so help them with tests and documentation too! Lowering the barriers to other contributors is a way to increase the sustainability of the project which directly benefits to you.

As a maintainer, try to involve more people in the governance and maintenance of your project (I’m terrible at this…). This is somehow your escape lane because interest in projects will vanish from time to time. If you are the only one keeping the keys it will be lost forever once abandoned. At least, be a Minimally-nice Open Source Software Maintainer (cache).

Include beginners

Write code for complex logic so elegantly simple that it won’t make you look smart.

Think about it each and every time you plan to add a metaclass, a signal, a decorator or introduce the latest hyped lib to name a few. The beauty of your code is somewhat ugly to somebody having a hard time understanding these concepts. Really, nobody will blame you for writing dumb code that anyone understand at first sight. Not to mention yourself when you are stressed by a deadline or reopening this code six months later.

The best programmers write code beginners understand. It is as simple as this. You can write idiomatic Python and still be readable by a developer using another programming language. Make it a target and enjoy crossed code-reviews to identify these issues.

Document tools you use for your project (pycodestyle, isort to name a few), you can even add pre-commit hooks or automated checks via the pull/merge-request.

Include citizens

In an ever-more intricate and connected world, where software plays a larger and larger role in everyday life, it’s irresponsible to speak of coding as a lightweight activity. Software is not simply lines of code, nor is it blandly technical. In just a few years, understanding programming will be an indispensable part of active citizenship.

Coding is not ‘fun’, it’s technically and ethically complex (cache)

I’m not only talking about fixing typos in documentation here. How do you include people in the process of building the product? How do you make them aware that they can have a direct impact on what is done with their taxes? That part is yet to be experimented because it requires a shift in minds. A nation is a cooperative that scaled and as such each individual should act as part of a community.

Maybe some day, micro-payments will be available to remunerate the time spent by citizens on collective projects but — apart from the technical issue — the complexity to evaluate the value of each contribution is a real problem.

Include conclusion

An important point of maturity as a developer is realizing that writing code is a relatively insignificant part of software development.

Steven R. Baker

Embrace the diversity of others point of views, make them count. Your code is not a book, it’s a continuous discussion on a given goal. You are maybe familiar with the concept of progressive enhancement, you can push the first draft of your code/documentation as a proof of concept and then progressively enhance the inclusivity of your project too. As for Web literacy, it’s a matter of Python literacy. We have the chance to use a language that is easy to learn, let’s be worthy of it.

I had to confess that I’m not doing half of the things I described, it is mostly self-criticism here. And that’s OK, really, because inclusiveness is a journey. Just be sure to keep moving toward a direction that makes you feel good at the end of each and every day.

Include discussions

What makes a good pull-request for a developer and a good code review from a maintainer?

On the developer side, documenting clearly what is the aim of your contribution is key. It looks obvious but that’s not always the case. Adding clean code, tests and documentation is great. We use to add an entry in the changelog with every pull-request nowadays to ease the communication with our international team.

A good code review is a one that is both respectful and engaging. You can be inspired (cache) by a checklist (cache) but once again, don’t take it too dogmatically. It’s up on your team to define its own check points.

How do you handle technical debt and contributions?

We actually (and sadly) don’t have pull-requests related to technical debt clean up. We mostly initiate that kind of change during workweeks (about twice per year) when everybody is in the same room to coordinate and evaluate alternatives together.

Continue reading »

★ Espace et temps

In other words, we should not take too much comfort from the fact that the global internet first evolved thanks to cooperative capitalists, not competitive socialists: the story of the Soviet internet is a reminder that we internet users enjoy no guarantees that the private interests propping up the internet will behave any better than those greater forces whose unwillingness to cooperate not only spelled the end of Soviet electronic socialism but threatens to end the current chapter in our network age.

How the Soviets invented the internet and why it didn’t work (cache)

J’ai de plus en plus le sentiment que les cycles (d’ouverture aux autres ⟳ repli sur soi) sont intimement liés à notre rapport à la technologie. Et plus particulièrement aux effets que la technologie a sur notre relation à l’espace et au temps. Comme un mécanisme d’auto-protection, lorsque les autres se rapprochent de trop, on se renferme d’autant plus dans notre bulle : égoïsme, survivalisme, nationalisme. Il faut alors le temps de l’acceptation de ces changements et certains évènements comme la guerre favorisent probablement la prise de recul nécessaire à large échelle.

Le numérique (incluant le Web) contribue à la compression de l’espace et du temps. Il permet de prendre conscience à la fois du côté des privilégiés qu’ils le sont d’autant plus et du côté des exploités qu’ils sont nombreux. Ce ne sont pas tant les inégalités que leur visibilité qui est critique dans une société. Lorsqu’un outil accroit cette visibilité instantanément et en tout lieu, il est normal que des processus de rétro-actions se mettent en route au service d’une stabilité sociale qui s’apparente au fascisme.

Dans quelle mesure est-ce que cette cyclicité est inéluctable ? Est-ce qu’il est souhaitable de participer au contre-pouvoir ou au contraire de l’accélérer pour passer plus rapidement au prochain cycle ? Mes propres explorations dans la dualité allouée au numérique en tant que pharmakon me font douter de sa nature éducative au sens où l’entend Seymour Papert :

A few talked about the computer as a teaching machine. This book too poses the question of what will be done with personal computers, but in a very different way. I shall be talking about how computers may affect the way people think and learn. I begin to characterize my perspective by noting a distinction between two ways computers might enhance thinking and change patterns of access to knowledge.

Mindstorms, Seymour Papert

Le passage à l’échelle est trop brutal pour qu’il soit compréhensible et intégrable, l’accompagnement requérant un temps long s’il doit se faire sans violence. Notre capacité à entrevoir les possibles se trouve être masquée par nos dégoûts de l’actuel que nous n’arrivons pas à changer suffisamment rapidement alors qu’ils se trouvent être chaque jour plus visibles.

L’acceptation de ces fake news est un moyen d’auto-défense envers une réalité qui nous dépasse. De protection d’une intégrité qui pourrait voler en éclats en cas de déstabilisation trop forte. Il s’agit d’un criant besoin de repères sur un territoire nouveau qui manque de mécanismes de contrôle traditionnels, le fascisme étant avant tout un mal-être externalisé.

Lorsqu’une activité outillée dépasse un seuil défini par l’échelle ad hoc, elle se retourne d’abord contre sa fin, puis menace de destruction le corps social tout entier.

Ivan Illich cité dans Rencontre improbable entre von Foerster et Snowden (cache)

Chacun essaye de (sur)vivre dans son propre processus d’individuation, composant avec les altérités des différents niveaux qui l’entourent. En embrassant la complexité du monde d’une part, en acceptant la fragilité du soi d’autre part. Comment revenir à des outils numériques proposant une échelle compréhensible par tous ? Quelle est notre limite cognitive actuelle vis-à-vis des liens facilités par la technologie ?

En relisant la définition des outils conviviaux, je ne peux m’empêcher de penser que ScuttleButt donne des pistes en matière de stockage et d’échanges mais surtout de moyens de mise en relation. Une FAQ vient d’être publiée afin de mieux comprendre les concepts sous-jacents et notamment comment les connexions sociales sont réalisées.

La où la disruption mène à la violence, la réduction favorise l’apaisement. C’est l’un de mes objectifs actuels en tant que développeur web de résister à l’un et de tendre vers l’autre.

Merci à Aurélien de m’avoir ouvert des perspectives, vous devriez travailler avec lui.

Continue reading »

★ Spectre et autisme

I like being alone. I have control over my own shit. Therefore, in order to win me over, your presence has to feel better than my solitude. You’re not competing with another person, you are competing with my comfort zones.

Horacio Jones

J’ai offert La différence invisible à Noël. Ce qui signifie que je l’ai lu car j’offre rarement un livre sans savoir ce qu’il y a dedans. Et au fil des pages, j’ai commencé à me dire qu’il y avait beaucoup de similitudes entre ce que l’héroïne ressentait et certaines de mes expériences. J’ai gardé ça dans un coin de ma tête pensant que le biais était bien trop énorme pour être pertinent. Au détour d’une nuit d’insomnie, je commence à lire des articles sur le sujet (merci Aurélien !) ainsi qu’à consulter la documentation locale. Puis me résoudre à remplir un quiz puis d’autres et toujours me retrouver à la limite sur le spectre en présentant un nombre non négligeable de traits neuro atypiques. Je ne ressens pas le besoin d’aller plus loin pour l’instant en le faisant diagnostiquer de manière sérieuse.

Les retours (cache) de découvertes (cache) tardives ont ceci de commun qu’ils sont une libération. Pour ma part, je ne sais pas si je me sens rassuré ou résigné. Ni diminué, ni augmenté, cela me conforte dans l’idée que l’adaptation est pour moi de la survie. Et qu’elle me demande énormément d’énergie selon les situations. À travers ce prisme, j’ai des pistes pour tenter de comprendre pourquoi certains bruits, certaines lumières et même certains sites me sont insupportables (cache) mais aussi pourquoi je travaille de la maison, à l’étranger en ayant ma propre entreprise (cache). Et beaucoup d’autres choses encore (confort, inclusion, résilience) qui prennent un éclairage différent à la lumière de cette éventualité.

Difficile de savoir si la prévalence de l’autisme (cache) est bien réelle ou provient d’un changement dans son interprétation, elle semble prépondérante dans l’informatique en tout cas. Il semblerait aussi que le facteur héréditaire (cache) soit non négligeable et c’est peut-être ce qui me préoccupe le plus dans mon accompagnement. Quoi qu’il en soit, cela m’a plongé dans une profonde introspection ces derniers mois qui a menée notamment à la mise en pause de mes correspondances. J’espère que la publication de ce billet permettra de relancer la machine, j’ai l’impression d’être dans la phase d’acceptation qui précède la reconstruction.

Je suis loin d’être le premier à me servir de mon blog pour partager des atypies psychologiques, Kenneth Reitz (cache), Benjamin Bayart (cache), Pep (cache) et d’autres (cache) l’ont fait avant moi et je les remercie car cela m’a aidé à écrire à mon tour. Constater au quotidien que ce monde n’est pas binaire et que les différences de chacun en font sa force est un grand pas vers l’acceptation d’autrui.

Note : il parait que les autistes ont participé à l’évolution (cache) de l’espèce humaine (cache) ce que je trouve à la fois enthousiasmant et malheureux.

Continue reading »

★ Confiance et transparence

Dans un univers en état d’équilibre thermique, aucun événement ne pourrait plus se produire en raison de l’absence de dénivellation. Dans un cercle en état d’équilibre d’information, il n’y a plus aucune information. Dans un groupe en état d’équilibre humain, d’homogénéité humaine, il y a entropie. Mais l’entropie, c’est exactement l’équilibre de la mort. Il nous faut être attentif, si nous acceptons les généralisations qui ont été faites par d’autres, à ce que l’adaptation parfaite des uns et des autres dans un groupe signifie en réalité la disparition de la vie de ce groupe au profit de sa mécanisation. L’unité accomplie dans le mouvement politique signifie la disparition de la vie dans un système donné. […]

Or, je peux dire que l’orientation vers une conception unitaire de la nation sous la puissance organisatrice de l’État, comme l’orientation vers l’adaptation généralisée de l’homme à son milieu sont des tendances qui accroissent l’entropie et diminuent la vie. Dans ce mouvement, l’illusion politique a son rôle fort précis à jouer, qui est de présenter un simulacre, un faux-semblant d’information, de courant vivant, de fixer les passions sur de fausses réalités, cependant que les mécanismes adaptateurs fonctionnent, et d’éviter les heurts et les refus au niveau de la réalité de la société nouvelle.

La seule voie pour maintenir l’État dans son cadre et sa fonction, pour restituer à la problématique vie privée-vie politique une réalité, pour dissiper l’illusion politique, c’est de développer et de multiplier les tensions. Cela est également vrai pour l’individu et pour le corps politique. Je pense que seuls les processus de tension et de conflits sont formateurs de la personne. Non seulement sur le plan le plus élevé mais aussi sur le plan collectif.

L’illusion politique, Jacques Ellul.

La faible réactivité de l’État est parfois nécessaire pour laisser le temps à ces tensions de s’installer. Vouloir niveler trop tôt (cache) est une occasion perdue d’une appropriation citoyenne. C’est proposer une escalator là où quelques marches et encouragements auraient suffit. Sans compter le coût de mise en place et de maintenance.

Mastodon est un réseau distribué fondé sur la confiance entre les personnes d’une même micro-culture puis à une autre échelle entre ces micro-cultures à travers les connexions entre instances. Il y a l’opacité des relations humaines dans ces différentes relations de confiance. Certaines sont rendues publiques, d’autres pas. Certaines ont une gouvernance collective, d’autres pas. Certaines sont légales dans certains pays, pas dans d’autres. Cette complexité est propre à chaque communauté et ne peut être résolue à l’échelle d’un pays ou d’une administration. Du moins de manière démocratique.

Lorsque la confiance est rompue, il reste la transparence. Je creuse depuis quelques jours les technologies et concepts autour de Secure ScuttleButt (SSB pour les intimes). À la différence de Mastodon, il ne s’agit pas de technologies web (cache) et Robin a fait un excellent article d’introduction (cache) que je vais tenter de résumer en trois points clefs :

  1. Chaque périphérique est une identité (plus spécifiquement possède une clé privée) qui va émettre un flux incrémental de messages signés.
  2. Les messages du flux s’échangent en pair à pair, je ne stocke que ceux de mes amis et de leurs propres amis pour suivre les discussions et rendre le réseau plus résilient.
  3. Le stockage est chiffré et sa représentation (interface utilisateur) est à la libre interprétation de l’implémenteur. Il existe actuellement des clients graphiques mais c’est l’API qui fait référence.

Autant dire que c’est à des années lumières d’un Twitter décentralisé :-). Ici chaque nœud comporte ses données et devient le centre de son propre réseau pouvant être connecté ou non à Internet. On touche mine de rien avec ces technologies à une certification forte de l’identité/la clé utilisée. Je pense que c’est trop intelligent pour pouvoir percer et qu’il faudra encore quelques itérations pour une prise de conscience collective de ces enjeux mais le cap est techniquement enthousiasmant.

Au niveau des inconvénients, il y a bien sûr ceux relatifs à la performance car le pair-à-pair consomme forcément davantage de ressources pour chaque nœud mais le stockage des flux des amis des amis limite les pics que j’avais pu avoir avec d’autres réseaux du même type. Qui dit chiffrement dit forcément aussi problématiques associées à la gestion des clefs, pour l’instant une clef est générée par périphérique et au passage il n’y a pas à ma connaissance d’implémentation pour téléphone intelligent(-mais-pas-trop-sinon-on-pourrait-faire-du-mesh-sans-payer-une-dîme-aux-constructeurs-et-opérateurs…).

On retrouve la dualité confiance humaine (Mastodon) vs. transparence algorithmique (SSB), observer où vont se déployer les intérêts personnels, politiques et économiques sur ce curseur est fascinant à plus d’un titre. Plus que jamais, les réseaux que l’on rejoint en disent beaucoup sur nos affinités politiques et notre conception du monde.

Entre la Pachysphère et le Scuttleverse, je ne saurais trancher. D’un côté la communauté francophone qui redécouvre les avantages et les inconvénients d’être en comité restreint, de l’autre des personnes qui expérimentent sur des concepts qui me tiennent à cœur. Après tout les deux ne sont pas antithétiques, mais mon attention est limitée :-).

Continue reading »

★ Micro-cultures and governance

A new system of governance or collaboration that does not follow a competitive hierarchical model will need to employ stigmergy in most of its action based systems. It is neither reasonable nor desirable for individual thought and action to be subjugated to group consensus in matters which do not affect the group, and it is frankly impossible to accomplish complex tasks if every decision must be presented for approval; that is the biggest weakness of the hierarchical model.

Stigmergy (cache)

The recent hype within the French community about Mastodon is fascinating and raises some questions about decentralisation. At first, everybody jumps on main instances for the sake of simplicity and that’s normal. Consider it as freemium, you have 15 days (followers?) to evaluate the product and invest some time to choose and/or install the instance that fits you. The next step is to stick to traditional model and join an instance you trust (like being employed by a company) or to be tech-savy/confident enough to install and maintain your own instance (like acting as a freelance). And then come cooperatives-alike instances, the ones requiring to care about values and ethics.

Why is that important? Each Mastodon instance creates a micro-culture and links between these micro-cultures are done by humans. One line of “code” added, thousands of new connections made possible. Another one is removed and a lot of relations are broken without even being noticeable for users. Having that responsibility should be daunting for each instance administrator. That’s why I decided to co-create a cooperative after years of freelancing. It was both too easy and too difficult to deal with moral questions alone. Efficiency versus exploration. How do we decide collectively which instances we would like to be linked to? How much time can we dedicate to that task?

There are already initiatives to finance and share the responsibility of instances and that’s great. I’m more inclined to host an instance at scopyleft.fr than at larlet.fr for the same reasons. And invite peers to join the governance, discussing and sharing together before doing and working together.

The more I think about all that, the more I realise that federating identities into a unique one is an old model we may want to avoid with real decentralisation. Even with strong self-integrity you do not (re)act the same way given the group you’re in, multiple identities may allow to generate multiple circles of trust (hello G+). Either inter-connected or not. How these relations will evolve at scale based on governance and self-interest is still to be observed. Oh, and acted. Wait, tooted.

Note: disconnected instances will probably hurt Slack too, maybe more that Twitter actually.

Continue reading »

✍ Lettre à Brice

Brice,

Je profite d’être à Confoo pour te répondre (cache) sur ma façon d’articuler une intervention tant que c’est encore chaud. En général, ça commence par un truc qui me trotte en tête depuis un petit moment et j’essaye de formuler un titre et son résumé qui s’en approchent. Parfois j’ai déjà rédigé un billet sur le sujet et je l’ajoute pour les personnes qui doivent sélectionner. D’autres fois j’ai un brouillon que je mets en ligne sans qu’il soit pour autant lié (en public). Dans ce dernier cas, le billet sera de toute façon publié.

Lorsque le sujet est accepté, je creuse davantage en commençant par retenir les cinq choses que les personnes présentes devront idéalement retenir de l’intervention. J’itère beaucoup à cette étape ce qui change parfois complètement l’orientation et il arrive que ça ne soit même plus cohérent avec le titre initialement proposé. Je me suis longtemps résolu à coller au sujet retenu mais depuis quelques temps j’assume et je l’annonce en début d’intervention. Je préfère égoïstement être au plus proche de ce que j’ai envie de présenter plutôt que de me forcer et que ça se voit.

Une fois le fil conducteur trouvé, j’enlève deux des points précédemment choisis. C’est l’étape la plus difficile. Il faut trouver le compromis entre pertinence et bourrage de crâne. Ensuite je commence à rédiger/continuer le billet et le support pour mettre à plat les idées. Je ne sais jamais au final si ça va être trop long ou trop court, pour cette dernière intervention je suis tombé pile mais une horloge au fond de la salle m’aidait beaucoup.

David

Continue reading »

✍ Lettre à Éric

Éric,

Je comprends tes réticences (cache) vis-à-vis de Mastodon, j’ai eu les mêmes assez rapidement mais je continue de creuser en me posant des questions sur la fédération d’identités ou l’expérience utilisateur. C’est la beauté d’un réseau naissant avec les tâtonnements de chacun. Proposer une solution compliquée et découvrir qu’il en existe une plus simple. La communauté itère dans un voyage initiatique qui est nécessaire pour atteindre les limites de la décentralisation. Celui-ci doit se faire ensemble sans brûler les étapes au risque d’en perdre en chemin et de créer un réseau plus élitiste que ce qu’il n’est déjà.

Je suis ravi que l’instance la plus populaire n’arrive pas à tenir la charge, ne surtout pas l’optimiser et laisser d’autres prendre le relais pour atteindre un réseau réellement décentralisé. Je ne pense pas que tu aies eu tout de suite ton nom de domaine et ton hébergeur de confiance pour tes courriels, il en est de même pour ton identifiant Mastodon. Il évoluera au cours du temps, des données seront perdues mais tu auras probablement sauvegardé ton graphe de relations en attendant mieux (le CSV d’export est une liste des différents identifiants).

Quelle chance de pouvoir faire une expérience de cette échelle qui implique de la décentralisation et de la liberté. Il n’y a pas de stratégie, de gros acteurs ou quoi que ce soit, juste un joyeux bordel qui apporte du fun. Et ça fait du bien.

David

Continue reading »

★ Des données aux communs

Le numérique auquel nous aspirons est différent. Il ne menace ni l’économie, ni l’environnement, ni la démocratie, ni la culture. Il permet au contraire de renouveler ces domaines dans leurs fondements par une perspective centrée sur l’humain. Il protège nos libertés tout en nous donnant des moyens puissants d’exercer nos droits. Il ne concentre pas de nouveaux pouvoirs ainsi que les ressources entre les mains d’un petit nombre. Il contribue plutôt à redistribuer équitablement les pouvoirs et les richesses d’une manière durable. Il pose que nous sommes tous égaux et interdépendants, il vise à restaurer notre relation au monde et en prendre soin dans une démocratie inclusive.

Ce numérique auquel nous aspirons est un commun, une ressource partagée par les communautés qui se mobilisent et s’organisent pour la produire, la créer, la protéger, la valoriser au bénéfice de toutes et de tous. Ce numérique existe et prospère. Pour des communautés engagées dans le partage des savoirs co-créés, ces pratiques issues du modèle des communaux trouvent, par l’entremise du numérique, un territoire qui n’aura jamais été aussi vaste. Le domaine public, les logiciels libres sont des exemples de communs de la connaissance, de communs numériques, qui sont vitaux pour le travail, l’éducation, la science, la culture, la liberté d’expression aujourd’hui. De surcroit, ce numérique constitue la dorsale d’une économie collaborative en plein essor mobilisant les ressources, le talent et l’énergie des citoyen.ne.s dans la concrétisation de projets inédits et porteurs.

Nous aspirons à voir ce numérique humaniste reconnu et soutenu.

SavoirsCom1 salue la « Déclaration des communs numériques » au Québec (cache)

Ceci est un résumé de mon intervention à Confoo, il s’agit même d’une suite de ce que j’ai pu partager l’année dernière autour de l’OpenData. Le déroulé était ponctué de fragments de Python que je n’ai pas reproduits ici mais que vous pourrez retrouver sur le support.

1. Données ouvertes

Data.gouv.fr est la plateforme ouverte des données publiques françaises. Il s’agit d’un moyen de publier ses données brutes et de consulter celles des autres. Elle s’adresse aussi bien aux ministères et collectivités publiques qu’aux citoyens ou aux entreprises et associations. Elle est ouverte à tous et la modération se fait a posteriori. Elle est gratuite et tous les développements sont publiés en open-source. D’autres pays réutilisent le code de la plateforme.

Je participe à son évolution depuis bientôt deux ans.

2. Données exploitables

La publication des données n’est que la première étape d’un long processus d’appropriation par les personnes intéressées. Un format de fichier propriétaire ou un encoding non spécifié et cela devient plus compliqué de plonger le nez dedans. Une archive corrompue ou un site inaccessible et l’on arrive rapidement à une frustration ainsi qu’une perte de confiance qui seront difficiles à aller récupérer.

Les discussions permettent aujourd’hui d’exprimer ces freins de la part des consommateur potentiels et d’engager une discussion avec les producteurs de la donnée.

3. Données compréhensibles

Une fois le fichier ouvert, il s’agit de comprendre ce qu’il y a dedans. C’est loin d’être intuitif dans la majorité des cas s’il n’y a pas une documentation exhaustive associée à la donnée. La description des jeux de données et de leurs ressources permet à ceux qui soumettent leurs données de préciser à quoi correspondent les termes métier par exemple ou les intitulés de colonnes peu explicites.

Il est parfois pertinent de proposer une interface simplifiée à une documentation PDF de plusieurs centaines de pages.

4. Données interopérables

Même documentées, certaines données sont difficiles à appréhender du fait de leur complexité ou de leur taille. Retraiter cette donnée brute en aval est ce que j’ai tenté de faire avec GeoHisto pour le diff du Code Officiel Géographique de l’INSEE ou avec Ulysse pour traiter le fichier volumineux du SIRENE.

Il ne s’agit aucunement de remplacer les données initialement publiées mais de proposer des outils et éventuellement leurs résultats pour être à même de les exploiter plus rapidement.

5. Données requêtables

Par exemple, l’une des problématiques à laquelle nous sommes confrontés est de pouvoir découper des fichiers CSV à la volée en fonction de certains paramètres. Un petit sécateur nous permettrait de réaliser ceci de manière asynchrone et de proposer des liens vers des sous-ensembles propres à des territoires par exemple.

Lorsque le fichier est trop volumineux, il est possible de fournir les outils pour réaliser cela de manière relativement performante.

6. Données conviviales

Parfois le simple fait de proposer un sous-ensemble des données générées facilite leur représentation et donc leur compréhension. C’est une suite de petits détails qui semblent insignifiants mais qui une fois mis bout à bout montrent que vous prenez soin de vos données et de leurs utilisateurs potentiels.

Encore une fois, la documentation est critique pour encourager l’adoption et la réutilisation. Fournir des exemples de réutilisations réalisés ou imaginés peut également aider. Expliquer ce qui ne peut pas être fait avec est encore mieux en documentant par exemple les précédentes tentatives qui ont échouées. De même qu’il peut être pertinent de décrire la façon dont les données sources sont générées pour en comprendre les contraintes.

7. Données résilientes

La rapidité avec laquelle la Maison Blanche a vidé son portail opendata soulève forcément des questions (cache) lorsqu’on a en charge un tel portail dans un pays qui pourrait prochainement devenir tout aussi totalitaire. L’hébergement des données en utilisant un outil décentralisé comme git permet de les répliquer (et de les enrichir) à l’infini tout en conservant l’historique des modifications apportées.

Il y aurait beaucoup à faire à partir de git-lfs ou dat par exemple. Je ne suis pas loin de prendre le temps de faire ça en tant que citoyen à partir de l’API.

8. Données pérennes

Les problématiques liées à l’historique sont intéressantes car l’on peut distinguer les versions de la donnée brute et celles des sujets qu’elle traite. Je me suis par exemple focalisé sur ce second point avec GeoHisto et l’évolution des communes ainsi qu’avec l’historique des entreprises du fichier SIRENE. Il s’agit d’un angle d’attaque qui se focalise sur une exploitation particulière des données, celle de travailler sur des versions/diffs pour une commune ou une entreprise précise.

Dans le cas des départements, cela m’a permis de revoir mon Histoire d’une manière pratique et assez ludique.

9. Gouvernance ouverte

Il ne s’agit pas de s’en tenir à publier des données et à les rendre utilisables mais d’être à l’écoute de la communauté des réutilisateurs pour l’améliorer. Aussi bien dans le fond que dans la forme, il est difficile de savoir a priori ce qui va être pertinent pour un type de données. Prendre en compte les retours dans une boucle de rétro-action vertueuse constitue le graal de la donnée ouverte.

Avoir un lieu d’expression et de décision qui soit documenté et ouvert à tous permet de fédérer une communauté autour d’un besoin et d’itérer, aussi bien sur le plan technique que politique.

10. Biens communs

Au même titre que la libération du code, au début on souhaite garder le contrôle et nombreux sont les projets open-source qui ne dépassent pas cette étape. Puis l’on s’ouvre à l’autre, à ses différences de points de vues et d’expériences et on prend le temps de l’écouter pour améliorer le produit. Et enfin on s’en remet à l’intelligence collective de la communauté pour continuer d’avancer et alors seulement la résultante prend vie.

La libération d’une donnée est un lâcher-prise progressif.

Un bien ne peut se transformer en commun sans que son initiateur dépasse son propre ego et accepte les divergences de la communauté qui vient itérativement polliniser cette production.

Administration ?

Le rôle de l’État dans cette démarche n’est plus d’administrer mais de mettre en relation des personnes autour de la donnée pour faciliter la production d’externalités positives. La finalité n’étant pas le bien commun en lui-même mais le faire en commun qui nous permet de vivre en commun.

Je pense pour ma part que nous pouvons opposer à ces deux options un État qui serait au service des communs, où les communs seraient le moyen de créer de la valeur pour les citoyens. Cet État serait centré sur les citoyens, son rôle serait de faciliter et de responsabiliser ; il serait au service des citoyens et c’est ainsi qu’il se percevrait.

Confrontation Constructive ou Tension Constructive - l’État et les Communs (cache)

Il y avait une dizaine de personnes durant la session et voici les retours proposés par Confoo dans l’heure qui suit (!) par email.

Continue reading »

★ Politique et reliance

Ainsi de la formation scolaire : plus on s’oriente vers la fonction pratique, technique, adaptée au monde moderne, et plus on interdit toute connaissance vraie, toute réflexion, toute prise de conscience par l’adaptation préalable. L’enseignement des jésuites de 1830 me parait bien plus apte à cela que le plus moderne et pédagogique de nos enseignements audiovisuels qui n’est jamais rien d’autre qu’un mécanisme d’adaptation pure et simple à la société et donc interdit a priori toute prise de conscience et toute réflexion. Il en est de même en ce qui concerne l’information. Il ne s’agit pas de plus informer le citoyen. Il ne l’est déjà que trop. Il est faux que le citoyen très informé soit plus apte… il est plongé dans l’actualité, présente le type même de l’illusion politique, et se trouve plus facilement livré à la propagande. Bien entendu nous ne voulons pas dire par là qu’il faut supprimer enseignement et information, mais simplement tels qu’ils sont conçus (et j’entends par là les plus ultimes pointes du progrès pédagogique et de la bonne information), ils ne peuvent que préparer l’homme à se gaver d’illusion. Le connaître et le comprendre ne peuvent être le fait que de la personne privée, et non de l’être social. C’est ici que réside le malentendu de base.

Il nous faut bien évidemment savoir que « le sujet de la pratique politique et la personne privée sont le même », mais le sujet de la pratique politique ne peut être qu’une personne privée existant en tant que telle et se livrant en tant que telle à l’exercice politique : il s’agit d’un homme conscient de soi avant d’être responsable de la vie publique, et il s’agit dans l’enseignement et dans l’information de permettre la création du premier et non du second.

L’illusion politique par Jacques Ellul.

Merci Thomas pour ce livre que je lis avec assiduité (sur le trône, je le con-fesse (ça commence bien cet exercice). Il a sur moi l’effet d’un pharmakon, rassurant de se sentir moins seul et déprimant de voir que la situation a si peu évoluée en 40 ans. Tiens d’ailleurs en parlant de déprime, je n’ai toujours pas répondu à Cascador sur mon manque de distinction entre le burn-out et le bore-out. Ils ont pour moi tout deux la même origine qui est un manque d’écoute de soi et d’identification des burn-in et bore-in annonciateurs. Je me disais l’autre jour que le sport m’aide beaucoup en ce sens, je ne veux surtout pas écouter de musique dans ces moments là car ils me permettent d’être à l’écoute de mon corps et de mon esprit.

Par triple association d’idée, j’en viens à penser à Aurélien. Je n’arrive pas à réagir à ses récents articles et j’ai du mal à en identifier les causes. Peut-être vouloir rester accessible, peut-être l’incapacité d’atteindre ce niveau. Je continue de réfléchir à l’éthique des algorithmes vs. la morale de leurs implémentations. La réflexion est comme une marée dont les idées fluctuent avec le ressac. J’ai cette même approche avec le Cercle des diodes (cache) (à distance) qui consiste à réfléchir ensemble en jouant un rôle. Si les sujets « Peut-il y avoir rencontre à distance ? » et « Tout est-il politique ? » ont été traités très rapidement, ils ne cessent de se rappeler à moi au gré d’insomnies.

Pour moi, en une première approche très générale, la reliance possède une double signification conceptuelle :

  1. l’acte de relier ou de se relier : la reliance agie, réalisée, c’est-à-dire l’acte de reliance ;

  2. le résultat de cet acte : la reliance vécue, c’est-à-dire l’état de reliance.

Reliance, déliance, liance : émergence de trois notions sociologiques (cache)

Je me souviens d’Élodie qui souhaitait introduire la reliance comme valeur de scopyleft. Ou peut-être était-ce lors d’une autre discussion, difficile de savoir. Il faudrait que je prenne de ses nouvelles et lui faire savoir que certaines graines continuent de germer longtemps après son passage. Et si c’étaient les défaillances de la mémoire qui permettaient d’affaiblir et de renforcer les liens ? On s’enrichit d’un côté, on encaisse de l’autre et on progresse ainsi en essayant de survivre.

Dans résilience il y a lien.

À force d’écrire sur du papier, j’ai mal au poignet gauche. Heureusement que je me suis fait un entorse à droite, j’aurais été frustré de ne plus pouvoir écrire du tout. Bientôt rééducation avec sa numérisation ?

Texte rédigé lors d’un exercice d’écriture libre (cache) ce qui explique le fouillis incompréhensible de mes pensées, publié tel quel après quelques jours pour mémoire. Une fois re…lié.

PS : si vous êtes en tension tout comme moi, j’abrège votre souffrance), intéressant de constater qu’à l’écrit je n’ai pas eu de problème à l’oublier, je me demande si ce TOC est sur-représenté chez les développeurs :-).

Continue reading »

★ Web developer

what is a web developer? How do you define one? What knowledge and skills does it take to be one?

To me, a web developer is a programmer who is not only able to write HTML, CSS, and JavaScript by hand, but also has a deep understanding of what browsers can do to that code.

What is a web developer? (cache)

To me, a web developer is a human with enough empathy, humility and practicality to publish resilient and usable webthings. Even better if s·he is part of an inclusive team focused on value(s).

And now I’ll have to define each term.

Human because if you forget this simple fact you are not considering the culture, the experience, the relationships or even the mood of the person you are talking about.

Empathy because you have to care about yourself, about your peers and about your users all day long. Preserving the motivation of all these people to achieve their respective tasks is key and partly depends on you.

Humility because you have to accept the futility of what you are developing for. You have to accept the obsolescence of your knowledge. You have to try, learn, fail, share. And try again.

Practicality because sometimes you have to put your ego, your best practices, your purity aside (hopefully) for a short amount of time and keep going. Better having room for improvement on a public product than working on a perfect private vaporware.

Resilient by using tools that last and are accepted by the team. It may not be pertinent though but it has to be explicit in this case.

Usable by making fast and accessible products, otherwise coding is “just adding bugs to an empty text file” to quote Louis Srygley. A web developer has to understand the biological complexity of the Web.

Webthing because the definition of a website or a webapp is not anymore pertinent. And that is a good thing. Defining is not important after all. Oh wait!

Inclusive team in order to develop inclusive products.

Value(s) both to focus on what is delivered and why.

All that being said, is it really relevant to know how to “write HTML, CSS, and JavaScript by hand”? I’m not sure it really matters and it probably changes from one developer to another. It’s part of the pleasure for me to have as few as possible layers between what I type and what is being finally rendered because I like that simplicity. An editor, a few lines of code, a browser and something understandable happens. An Electron app, yarn install, webpack […] and something magic happens.

And I’m tired of debugging magic, it’s not part of my definition.

Continue reading »

✍ Lettre à Jean-Pierre

Jean-Pierre,

Tu fais partie des anonymes qui m’écrivent pour réagir sur un ancien article — en l’occurence 2009 — car cet espace a le (mal|bon)heur de n’être pas trop mal indexé parfois. Je ne sais pas comment gérer ces échanges sur des positions qui ne sont plus forcément les miennes. Le contexte a évolué, j’ai évolué.

Internet oublie toujours tout mais cet endroit constitue une part de ma mémoire et de mon histoire que j’essaye toutes deux de préserver. Petit plaisir narcissique, expérience personnelle et génératrice d’échanges que j’encourage lorsqu’ils sont bienveillants. Je me demande souvent ce qui motive l’envoi d’un courriel à un inconnu pour lui prouver qu’il a tort. Une question d’égo ou de paternalisme inconscient peut-être.

Qui sait, peut-être un jour irons-nous discuter de tout cela… à Arles ?

David

Continue reading »

★ Guerre et suicide

Toutes les fois qu’à notre époque éclate une guerre, alors éclate aussi et surtout parmi les plus nobles fils du peuple un désir secret : ils s’exposent eux-mêmes au nouveau danger de mort parce que dans leur sacrifice pour leur patrie, ils croient qu’ils ont enfin trouvé la permission qu’ils n’ont cessé de chercher, la permission d’échapper à leur destinée humaine. La guerre est pour eux une forme plus aisée du suicide, elle leur permet de se suicider la conscience en paix.

Nietzsche

Cette citation a la puissance de remettre en question la bêtise que j’associais à la guerre et au patriotisme. Je me suis longtemps demandé comment autant de personnes pouvaient accepter d’aller tuer leur prochain pour le pouvoir de quelques uns sans forcément y associer le mal-être de toute une frange de la population. Cela est peut-être dû à la façon dont l’Histoire est enseignée, il n’y a dans mon souvenir que l’origine de la seconde guerre mondiale que l’on transmet sur ces bases de frustrations de tout un peuple.

Si j’ai fui l’Asie, puis l’Europe, c’est en partie par peur de la guerre. Mais aussi car je ne veux pas me retrouver dans ce mal-être et l’auto-alimenter. Avant la guerre il y a la perte d’enthousiasme et de bienveillance, des tensions qui se cristallisent autour des cultures et des possessions. J’ai besoin d’un environnement propice à l’expression de ces qualités, j’ai besoin d’être entouré de cultures différentes pour m’enrichir, j’ai besoin de me sentir libre de mes possessions pour ma propre (r)évolution (cache).

C’est parce que je suis incapable de réaliser le bien dans ma vie que je projette sur l’État qui doit le réaliser par procuration à ma place. C’est parce que je suis incapable de discerner la vérité, que je réclame que l’administration la discerne pour moi, me dispense de cette quête pénible, et me la remette toute produite. […] Ce sont les mêmes motifs, c’est le même processus, c’est la même mystification qui conduisaient l’homme dans la religion et à attendre de Dieu l’accomplissement de ce qu’il ne savait pas faire, et qui le conduisent aujourd’hui dans la politique à attendre de l’État ces mêmes choses.

Rejeter sur l’organisation de la société la solution de tous les problèmes personnels, la réalisation des valeurs, c’est réaliser une opération très commode d’absentéisme humain.

L’illusion politique, Jacques Ellul.

Mes voisins ont cédé à cette pulsion suicidaire et questionnent les valeurs des autres humains :

  • Êtes-vous aussi désespérés que nous au point de vouloir avoir recours à un suicide collectif ?
  • Avez-vous si peu appris des faiblesses humaines au cours de l’Histoire ?
  • Est-ce que votre vie a encore une quelconque saveur lorsqu’elle est privée de savoirs ?

Cet aveu de manque d’éducation est terrible et se concrétise logiquement par la mise au pouvoir d’un CEO :

The final thing I’ll say is that government will never run the way Silicon Valley run because, by definition, democracy is messy. This is a big, diverse country with a lot of interests and a lot of disparate points of view. And part of government’s job, by the way, is dealing with problems that nobody else wants to deal with.

So sometimes I talk to CEOs, they come in and they start telling me about leadership, and here’s how we do things. And I say, well, if all I was doing was making a widget or producing an app, and I didn’t have to worry about whether poor people could afford the widget, or I didn’t have to worry about whether the app had some unintended consequences – setting aside my Syria and Yemen portfolio – then I think those suggestions are terrific. (Laughter and applause.) That’s not, by the way, to say that there aren’t huge efficiencies and improvements that have to be made.

But the reason I say this is sometimes we get, I think, in the scientific community, the tech community, the entrepreneurial community, the sense of we just have to blow up the system, or create this parallel society and culture because government is inherently wrecked. No, it’s not inherently wrecked; it’s just government has to care for, for example, veterans who come home. That’s not on your balance sheet, that’s on our collective balance sheet, because we have a sacred duty to take care of those veterans. And that’s hard and it’s messy, and we’re building up legacy systems that we can’t just blow up.

Extract of a speech at Frontiers Conference 2016, Barack Obama

Barack Obama s’adressait probablement davantage aux CEO de la Silicon Valley et peut-être plus directement à Mark Zuckerberg (cache) à ce moment là, il n’empêche que le président actuel apporte avec lui tout le champ lexical guerrier du commerce. Ainsi qu’une incompréhension de la diversité nécessaire à la démocratie et du temps long associé pour rendre assimilables des valeurs par une culture.

Continue reading »

✍ Lettre à Marion

Marion,

Merci pour ta réaction au sujet de la vitesse et de l’écriture qui est ton domaine. Je voulais à mon tour rebondir sur la différence entre un ouvrage et un blog. Dans le premier cas, on est dans l’expression d’une thèse qui demande un temps long. Dans le second, je pense que l’on est dans la construction d’une thèse qui demande également un temps long. Dans les deux cas, cela requiert des itérations empreintes d’humilité pour revoir sa copie et continuer à partager tout de même avec son éditeur ou avec son lectorat. Lorsqu’on tente de transformer son lectorat en éditeur, cela peut avoir des effets de bord non négligeables (cache) par contre, voir aussi mes propres déboires avec LEAN.

Néanmoins, le blog est le fruit d’une évolution personnelle grâce à l’intelligence du collectif qui a pris la peine d’échanger, de proposer d’autres voies. Un journal qui n’est plus un curriculum vitae mais un chemin de pensée montrant une progression au fil des années. J’y vois une sorte d’impressionnisme qui donne l’image de l’auteur lorsqu’on prend suffisamment de recul. Une vidéo peut-être plus qu’une image pour sa nature évolutive et vivante. Un manuscrit si l’on file la métaphore ressemble davantage au tableau académique d’une nature qui est morte lors de sa mise sous presse.

La différence fondamentale entre les deux approches réside peut-être dans la nature publique ou privée du processus d’amélioration continue. Le blog se rapproche de l’open-source sur ce plan là qui consiste à exposer son code à la critique collective en vue de le rendre plus pertinent. La gouvernance change alors et réduit les intermédiaires, on se rapproche également des AMAP et des circuits courts. Chaque lecteur pouvant à son tour devenir auteur le temps d’un échange.

Et tisser les liens qui font la toile.

David

Continue reading »

✍ Lettre à Pep

Pep,

J’ai suivi avec intérêt tes réflexions (cache) relatives aux modes de publications. Elles s’orientent déjà trop pour moi dans la technique et dans la complexité pour avoir envie de rejoindre un tel mouvement. J’ai le sentiment d’avoir fait ce chemin et d’en être revenu en raison de l’entre-soi qu’il accentue sous couvert d’adoption précoce. Je suis aujourd’hui davantage dans l’aide à la simplicité de publication qui me semble être la première étape libératrice, laissant les interactions et les algorithmes aux plateformes filtrantes. Au moins pour un temps.

Je réinvente des générateurs statiques, je m’inspire du travail de collègues et j’essaye au moins de répondre à mes propres besoins. Je me suis longtemps retenu de publier quoi que ce soit en laissant des briques à assembler soi-même. De la publication naissant la responsabilité, la culpabilité et la naissance d’un nouveau silo. Aussi petit soit-il. Et d’un autre côté l’envie de créer un outil convivial dont puisse s’emparer l’auteur en touchant à trois variables qui donnent goût à la programmation. Telle que je l’ai découverte en tout cas.

Tout cela étant dit, je ne voudrais freiner aucune initiative qui amène des alternatives à la situation actuelle. J’espère me tromper complètement et il y a de toute façon un public pour toutes ces expérimentations. Une question de variabilité locale pour une évolution globale.

David

Continue reading »

★ Algorithmes et public relations

Mais il est un moyen pour diminuer ce sentiment d’arbitraire et de toute-puissance. C’est l’application des public relations à l’administration : il s’agit d’amener le citoyen à comprendre le pourquoi des décisions prises et, bien plus, à le faire collaborer activement avec l’administration. Des services spécialisés vont alors être à la disposition des administrés pour leur montrer comment fonctionne le service, quelles sont les règles appliquées, pourquoi telle décision plutôt que telle autre a été prise, en quoi ceci est juste, etc. Dès lors disparait le sentiment d’angoisse : l’individu se trouve devant un univers explicable, où les actes ne sont pas absurdes, mais au contraire rationnels et réfléchis. Il est dans le système. La décision qui le révoltait devient absolument normale à ses yeux aussi. Le comportement de tel corps de police qui lui paraissait scandaleux devient exactement explicable quand on se situe dans le service et l’optique de ce corps ; les public relations sont donc une méthode pour incorporer psychologiquement l’administré dans l’administration, pour lui faire accepter de bonne grâce l’acte commis, pour le faire adhérer à ses raisons.

Autrement dit, il s’agit de réduire le conflit, de créer de bonnes relations, mais celles-ci fondées non sur le fait que l’administration serait au service de l’administré (ce qui est impossible ; la formule est souvent employée, mais elle n’a tout simplement pas de contenu réel imaginable !), mais sur le fait que l’administré, ayant compris, ne rouspète plus. Comme dans tous les domaines, les public relations sont un mécanisme de conformisation : qui ne fait qu’accentuer l’autorité, la toute-puissance administrative et ne la compense absolument pas.

Or c’est bien ici que réside l’illusion politique : croire que le citoyen par la voie politique pourrait maîtriser ou contrôler cet État, pourrait le changer.

L’illusion politique par Jacques Ellul.

La lecture du chapitre relatif au Contrôle de l’État ne cesse de m’évoquer le rapport que l’on a aujourd’hui aux plateformes et à leurs algorithmes. Il y aurait des pages entières que l’on pourrait remettre au goût du jour en intervertissant l’État et les plateformes ce qui pose réellement la question de leur nature politique (cache).

Tout le débat actuel sur l’ouverture et la documentation des algorithmes s’y retrouve. Comprendre sans pouvoir influer. Une autre forme de bureaucratie opaque que l’on essaye de rendre davantage supportable à ceux qui en font les frais. Un bien commun soustrait au collectif de par son passage à l’échelle. Civisme d’un côté, attention de l’autre. Tout deux sacrifiés sur l’autel d’un capitalisme confisquant le temps nécessaire au respect et à la confiance, eux-mêmes garants de notre humanité. On parle beaucoup de biens communs ces temps-ci sans préalablement explorer les maux collectifs. Et si l’on repartait des besoins ?

L’antinomie entre bureaucratie et démocratie est bien connue, bien étudiée. Mais l’illusion est de croire que la bureaucratie peut être dominée par la démocratie.

Toutefois la nouvelle notion de la démocratie (populaire) concorde bien avec la bureaucratie sur le plan totalitaire : la démocratie n’est plus un moyen de contrôler le pouvoir, mais un moyen d’encadrer les masses.

Ibid.

Continue reading »

★ Web et génétique

En ce moment et sur les conseils de Christian den Hartigh, je me regarde les vidéos du Marathon des Sciences comme on le ferait d’une série TV. En plus instructif. Et ce sont notamment celles de Pierre-Henri Gouyon « Le fil de la vie : où l’ordre de la vie est-il écrit ? » et de Guillaume Lecointre « La biologie à la lumière du désordre » qui m’ont fait prendre conscience du parallèle existant entre la génétique et le web. Dans les deux cas, il s’agit d’évaluer quelle est la façon la plus pérenne de faire transiter une information. On peut même aller dans l’extrême et reprendre l’une des phrases chocs de la première présentation :

Les individus sont des artifices inventés par les gènes pour se reproduire.

Ce que je m’empresse de paraphraser ainsi (il faut voir la vidéo pour comprendre la référence aux memes) :

Le web est un artifice inventé par les cultures pour se propager (meme).

Le web acquérant son importance dans les idées qu’il véhicule. Une histoire de contenu et de contenant. Défendre la liberté d’expression des cultures est un enjeu lié à celui de la neutralité du Net par exemple, l’un n’allant pas sans l’autre. Mais je m’égare, revenons à notre ADN. Dans le cas de la génétique, la solution qui semble prévaloir jusqu’à présent est triple et correspond à :

Message → Décodeur → Contexte

L’information qui est finalement transmise repose sur ces trois facteurs que les généticiens traduisent en :

Génétique → Épigénétique → Environnement

On a l’ADN qui se trouve être interprété d’une certaine manière et qui s’exprime ensuite en fonction de la pression environnementale. Je reste vague car on ne connait pas encore vraiment les mécanismes fins de ce processus. Or, on retrouve le même triptyque dans le web avec :

Code → Navigateur → Situation

Le HTML/CSS/JS contient le message qui a besoin d’un navigateur pour être décodé. Message qui va être lu dans un contexte donné (mobilité, attention, etc). Le couplage de l’une de ces étapes avec l’autre affaiblit le processus de transmission. Les deux conférenciers souhaitent tordre le cou à la notion de « code génétique » alors que je la trouve pertinente dans ce cadre là. Ou alors faudrait-il relativiser ce que l’on entend par « programme » informatique de manière plus générale ?

En biologie, il y a besoin d’avoir de la variabilité à chacune de ces étapes locales pour arriver à une stabilité globale. Les cas de stabilités locales étant sujettes à des extinctions de masse à moyen terme. Laissant la place à l’expression d’une nouvelle diversité qui stabilise au niveau macro. En informatique, les plateformes/silos et/ou la mono-culture Webkit et/ou le biais culturel au sens large mettent en péril cette diversité. Si votre information est publiée sur Medium, lisible par Chrome uniquement et/ou à destination des riches, il y a statistiquement moins de chance qu’elle soit à l’épreuve du temps.

En tant que développeur web, je ne peux avoir d’influence que sur le code. L’universalité du code produit est garante de la résilience de l’information sur le long terme. Lorsque je cible un navigateur ou une situation, je l’affaiblis et je lui fais prendre des risques. Vouloir être précurseur d’une nouvelle ère est d’un pari à court terme, avec pour enjeu les données d’autrui qui risquent de se retrouver dans un cul-de-sac phylogénétique, signifiant l’extinction d’un message.

Un autre point qui m’a fait tiquer est l’opposition historique inné/acquis qui se matérialise par le couple conservateurs/libéraux en politique. Les premiers étant dans l’analytique, les seconds dans l’empathie. Le code comme notion de Droite et son interprétation comme notion de Gauche. La création rapide et égoïste vs. la collaboration lente et plurielle. Le repli et l’ouverture. Montre moi ta façon de transmettre une information et je te dirai pour qui tu vas voter :-).

Continue reading »

★ Code et vitesse

Alors cela fait sens pour moi d’écrire et de publier vite, comme on ferait de la photographie : c’est un portrait de soi à un instant précis. Y revenir plus tard, ce serait comme ajouter des rides sur une image de soi plus jeune. J’ai donc beaucoup de respect pour celles et ceux qui écrivent et publient vite. Je ne préjuge pas de la valeur de leurs écrits en fonction du ratio temps écoulé/nombre de caractères. C’est mystérieux, une bonne histoire. Personne ne sait vraiment comment ça fonctionne. Et s’il suffisait de passer cinq ans sur un roman pour le rendre parfait, ça se saurait, non ?

Peut-on écrire trop vite ? Peut-on publier trop ? (cache)

Est-ce qu’un bon code est tout aussi mystérieux ? Personne ne sait trop comment cela fonctionne non plus, il y a bien quelques principes ou patterns mais ça ne garantit pas grand chose au final. Ce qui me parait certain à ce jour c’est qu’en passant cinq ans sur un produit on est davantage enclin à le rendre bouffi de fonctionnalités et croulant de dette technique que parfait.

J’ai tendance à penser qu’il y a autant de façons de coder qu’il y a de façon d’écrire. Je me base sur l’observation des différentes personnes avec lesquelles j’ai pu pair-programmer (ce qui se pratique moins en écriture). Cela permet d’apprendre à se connaître au regard de ses différences. Je sais par exemple que sur du tactique je suis davantage dans l’essai-erreur quitte à comprendre ensuite. En revanche sur du stratégique, je vais collecter des données pendant un long moment avant de passer à l’acte de code qui sera parfois très rapide, brutal même, mais plus solitaire aussi. Il en est de même dans ma façon d’écrire.

Que ce soit pour du code ou des mots, j’ai beaucoup de mal à me retenir de publier. Lorsque les idées, concepts, algorithmes sont formalisés, la dernière étape est de les offrir au monde. Il s’agit d’un rite de passage avant de pouvoir s’en libérer. Avant cela ils n’existent pas. Un travail invisible m’est frustrant et c’est peut-être pourquoi l’open-source me tient tant à cœur. Les rares fois où j’ai pu écrire sans avoir la libération rapide du produit ont été déprimantes (il y a bien une fois où ça a duré neuf mois mais c’est une autre histoire :-P).

Il y a un certain plaisir dans l’édition (cache) aussi. Que ce soit via les code reviews ou les optimisations de performances ou les découplages ou même les réécritures. Mais l’acte de création égoïste n’est plus et l’envolée lyrique est retombée. C’est terrible car j’aimerais laisser davantage d’espace à la part de designer (cache) qui est en moi, celle qui affine et se rapproche progressivement du besoin réel de l’utilisateur. J’y retrouve le tiraillement de cette dualité dans mon rapport au monde : entre confort et utilité.

Without requirements or design, programming is the art of adding bugs to an empty text file.

Louis Srygley

Difficile de terminer un billet sur le code et la vitesse sans parler du mythe des 10x engineers (je me demande s’il existe chez les écrivains tiens). Est-ce que vous voulez dans votre équipe quelqu’un qui code dix fois plus rapidement ou quelqu’un qui produit un code compréhensible et maintenable par au moins dix personnes ? Je trouve cela plus valorisant aujourd’hui d’être un 10x inclusive developer.

Continue reading »

✍ Lettre à E.

E.,

Je me demande souvent si la douleur se réduit lorsqu’on la partage. Je l’espère lorsque je la reçois et j’hésite lorsque je la transmets. Accepter d’un côté, renoncer de l’autre.

Un mal à délivrer, des mots à délier. Expliquer l’inexplicable et faire expérimenter des situations pleines de vie afin qu’elles deviennent majoritaires. Le pouvoir de l’exemple, le devoir de l’humain. Essayer d’un côté, espérer de l’autre.

Lorsque le vélo ne suffit plus, il reste l’avion… une façon de ne plus questionner ce qui est acceptable mais avec qui (cache).

David

Continue reading »

✍ 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

Continue reading »

★ 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?

Continue reading »

★ 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.

Continue reading »

✍ 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

Continue reading »

✍ 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 respectives.

Ton dernier billet publié parle d’équilibre 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.

Continue reading »

★ É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

Continue reading »

★ 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.

Continue reading »

★ 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 ! (TODO : mettre la liste en cache en janvier)

Continue reading »

★ 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.

Continue reading »

★ 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.

Continue reading »

★ Blogrolls et découverte

Il faut également ouvrir de nouvelles routes. Sous l’influence de Google, nos blogs se sont repliés sur eux-mêmes. Nous devons en revenir au principe des blogrolls. Créer des liens vers les blogs amis. Non dans un but de référencement, mais avec l’espoir que nos visiteurs effectuent un pas de côté, cela depuis chez nous, sans remonter jusqu’à Google ou un réseau social.

Comment sauver notre Web ? (cache)

Les derniers billets de Thierry Crouzet étaient assez pessimistes, et puis celui-ci donne des pistes pour améliorer la situation. En remettant notamment à l’ordre du jour l’usage de la blogroll, ce réseau social numérique avant l’heure. Je l’avais supprimée de cet espace car ce n’est pas évident à maintenir (techniquement et émotionnellement) et je trouve que mon OPML est trop personnel pour le publier fréquemment.

Je me suis mis en quête de blogs en français, encore alimentés, un minimum techniques et relativement intimes — dans l’idée que je m’en fais, ils sont peut-être très populaires — pour proposer de nouvelles pistes de lectures. L’algorithme pour arriver à cette liste est humain, il n’a pas la neutralité d’une plateforme et il est explicitement anti-Medium.

Le constat est assez terrible de ne pas réussir à en lister davantage. Du coup j’étends un peu en acceptant la veille :

Quelle difficulté pour trouver 15 liens… je ne sais pas trop ce que je dois en conclure si ce n’est que ma bulle est toute petite. J’espère que #nowwwel (cache) sera l’occasion de découvrir de nouvelles sources. J’espère surtout que vous allez m’en envoyer d’autres par courriel :-).

PS : vous remarquerez que j’utilise le nom des personnes dans mon agrégateur, c’est pour moi très important dans la lecture de pouvoir mettre un visage ou au moins un humain. Si vous voulez une liste d’entreprises, je vous conseille celle compilée par Éric D (cache).

Réactions (ajout manuel)

La blogroll est une bonne idée. Les blogs avec la possibilité de commenter aussi, tout autant que ceux qui permettent de les rétrolier.

Blogrolls et blogs (cache)

Ça ressemblerait presque à des commentaires distribués avec cache local !

Continue reading »

★ Accompagner un enfant

Alexandre,

Voici le compte-rendu d’une expérience, celle de ces trois dernières années. Je ne sais pas si tu auras la volonté ou la capacité de lire ce texte à un moment de ta vie, je le produis en guise de mémoire et peut-être de pistes à explorer pour toi ou d’autres. Ou pas, sa durée de vie est liée à l’attention que je porte à mes textes. Il est empli d’incertitudes et de doutes que je te souhaite d’avoir un jour à ton tour.

Ces années ont été parsemées d’émotions, de peurs, d’apprentissages, de culpabilités, de bonheurs, de stress en tout genres, d’amour, de contradictions et de bienveillance. À tel point qu’il est difficile de classifier ou d’ordonner cela. Je vais tenter de m’en référer à la souvenance que j’en ai.

Conception

La crise consiste justement dans le fait que l’ancien meurt et que le nouveau ne peut pas naître : pendant cet interrègne on observe les phénomènes morbides les plus variés […] Le vieux monde se meurt, le nouveau monde tarde à apparaître et dans ce clair-obscur surgissent les monstres.

Antonio Gramsci

Ta conception biologique a été simple. C’est tout le processus en amont qui a été très long pour accepter de mettre au monde un nouvel être. Pour gagner la confiance suffisante en moi, en nous et dans les autres. J’envie parfois presque les personnes qui ne se posent pas toutes ces questions mais j’ai l’illusion de croire qu’elles passent peut-être à côté de l’essentiel : cette remise en question permanente.

J’espère me tromper en voyant surgir petit à petit des monstres qui ont de plus en plus de pouvoir. Il va sûrement falloir apprendre à vivre avec car nous évoluons au sein du même environnement. Je souhaite pour autant ne faire peser aucun espoir sur tes épaules. Sois.

Être

Pensez-y en cette nouvelle année scolaire, vos élèves apprendront beaucoup plus ce que vous êtes que seulement ce que vous savez. Vous êtes ce que vous savez. Si les apprenants apprennent ce que vous êtes, ils apprendront nécessairement ce que vous savez. Par contre, ils ne deviendront jamais ce que vous êtes en apprenants seulement ce que vous savez. Vous pouvez relire ce paragraphe plus d’une fois.

Il vous restera à régler la question qui tue: « Les élèves sont-ils intéressés à devenir ce que vous êtes ? »

Être ce que l’on enseigne! (cache)

Lorsque tu as découvert l’air libre, j’ai envoyé un message à la famille proche : « Alexandre est né » et l’on m’a reproché d’avoir été trop bref. Je pense au contraire avoir été trop long. « Alexandre est » aurait amplement suffit. Et pourtant je ne saurais dater précisément ta naissance qui a eue lieue bien avant cette libération. Si la vie est un état, la mise au monde est davantage un processus qu’une date, et celui-ci est toujours en cours.

Vivant

Un adulte créatif est un enfant qui a survécu.

Ursula K. Le Guin

Trois ans et tu es toujours vivant. J’aime ta vitalité et j’essaye d’interférer le moins possible avec ta créativité et tes expériences car je considère que ce sont des instants très importants. J’aime voir l’étincelle dans cet œil qui préfigure de nouvelles connexions neuronales. J’aime que tu t’essayes à l’humour. J’aime ta capacité de concentration quand tu souhaites comprendre quelque chose. Ou quand tu t’enfermes dans ta chambre pour dessiner un cachalot.

Tu as vu très peu d’écrans pour l’instant. Ton imaginaire s’alimente beaucoup dans les livres dont la sélection s’avère être de plus en plus compliquée pour éviter la violence sans pour autant tomber dans le moralisateur. Tu n’as pas été sur beaucoup d’écrans non plus, ton existence numérique semble tellement futile en regard de la richesse d’autres interactions.

(Non)Violence

Enfance sans confiance n’est que ruine de l’Humanité.

C’est la principale raison pour laquelle nous sommes allés au Québec. L’envie de trouver un cadre différent, avec moins de violence à la fois physique et psychologique. L’humain est ainsi fait qu’il a besoin de boucs-émissaires, les régions inhospitalières ont cet avantage de moins s’en prendre aux minorités qu’au climat. Ce choix fut particulièrement difficile car il impliquait une mise à distance vis-à-vis de la famille.

En te faisant confiance, je n’ai pas besoin de violence. En limitant les stress, je réduis les sources de tensions. C’est un luxe qui demande de l’espace et du temps. Et de la volonté. Le résultat est pour l’instant bien au-delà de mes espérances et je me demande ce que cela va produire par la suite.

Mimétisme

Grandir c’est se spécialiser. L’adulte n’est pas moins intelligent, il est spécialisé : spécialisé dans sa langue, dans sa culture, dans sa pensée, dans ses comportements sociaux, etc. Et vivre avec l’enfant, c’est participer à sa spécialisation. Nos façons de parler, de réagir, ce que nous faisons avec lui ou devant lui, va littéralement participer au câblage de son cerveau.

Les lois naturelles de l’enfant (cache)

Je constate chaque jour à quel point l’inné est mince face à l’acquis. La co-évolution culture-génome théorique me semble être clairement déséquilibrée en pratique et ce déséquilibre tend à s’accentuer. Cela donne une incroyable responsabilité à l’accompagnant qui en vient à guider quasi malgré lui. Partager ses expériences sans orienter est un vrai challenge. Faire s’épanouir un libre arbitre et un esprit critique qui ne soient pas les nôtres.

Je ne cherche pas pour autant à me mettre en spectateur comme pourrait le faire un photographe. Je préfère égoïstement partager avec toi sans penser aux likes des proches. J’aime participer à cet apprentissage et j’essaye autant que possible d’avoir des moments explicites d’échanges qui ne soient pas encombrés de flatulences numériques. La seule chose que je puisse et veuille t’offrir c’est de l’attention.

Alimentation

Tu manges ce que tu veux et presque quand tu veux. Tu manges souvent froid. On mange souvent devant un spectacle bien plus enthousiasmant que la télévision. Je finis beaucoup de plats (froids aussi). Aucun repas n’est équilibré. Aucune semaine ne semble déséquilibrée pour autant. Tes goûts évoluent d’un jour sur l’autre et me font reconsidérer cette notion.

Il y a des moments où le parasitisme devient symbiose et cela me met en joie. Je réalise que l’accompagnement est réciproque, ce qui garantit sa pérennité. En plus du savoir-faire et du savoir-être, il y aurait un savoir-échanger à développer ensemble, la famille étant ce pot commun dont nous sortons tous grandis.

Instruction

Je me suis renseigné sur de nombreuses formes d’instructions. On a visité des écoles plus ou moins traditionnelles. Difficile de trouver un lieu qui soit en accord avec nos valeurs. Peut-être que l’instruction en famille sera finalement choisie au prix d’une certaine marginalisation. Si c’est l’option retenue, il faudra absolument que l’on trouve d’autres sources de connaissances et d’émotions que tes parents, aussi incroyables (et modestes !) soient-ils :p.

De multiples inspirations pour une expérience forcément unique. Et en même temps avoir la volonté de partir d’une page blanche pour apprendre à l’écrire ensemble, d’expériences en réajustements. Chaque déséquilibre motivant le prochain pas, vaincre la peur récurrente du vide en se faisant confiance mutuellement.

Tabous

Appartenance, fierté, amour, chantage, beauté. Il y a des jugements que je me refuse à ton égard car je ne les trouve pas sains. Je ne veux pas que tu aies besoin de mon regard pour te trouver beau. Je ne souhaite pas introduire de chantage entre nous, encore moins affectif, c’est trop facile. Il ne peut y avoir d’amour dans une relation imposée comme celle d’un lien de filiation. C’est autre chose. Dans la fierté réside un espoir initial égoïste, une projection que l’on atteint enfin.

Ces termes ne sont pas tabous pour autant et nous aurons l’occasion d’échanger beaucoup plus longuement sur ces sujets. Et plein d’autres. Tu m’auras vraisemblablement fait changer d’ici là.

Conclusion

Il n’y a pas de conclusion. La futilité du quotidien reprend son droit. La beauté de l’éphémère et du moment présent. La conscience de vivre ensemble pleinement. L’inconscience de savoir que ça ne pourra durer éternellement. L’intime croyance qu’un lien se tisse durablement entre deux hommes qui se transforment.

Aujourd’hui c’était une chouette journée. Hier pas mal non plus. Et demain ? On verra bien. Ensemble ? Avec plaisir !

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Tools and teams

Use the right tool for the job.

I had been guilty for so many years failing to apply that simple old saying. Until I realised that if your job is not well designed you cannot find the right tool. Until I realised that you cannot know every existing tools. Until I realised that knowing your tools is sometimes more effective than picking the perfect one. Until I learnt the hard way that in an evolving context you have to adapt your tool across time. Today I’m more inclined to say: “Use the right toolset for the team at a given moment.”

It might be counter-intuitive at first but after all our job is to solve pretty basic technical problems: display that data, allow interactions with this one, make sure everything is smooth for everybody, secure as much as you can. Nothing more.

We’re not paid to write code, we’re paid to add value (or reduce cost) to the business. Yet I often see people measuring their worth in code, in systems, in tools—all of the output that’s easy to measure. I see it come at the expense of attending meetings. I see it at the expense of supporting other teams. I see it at the expense of cross-training and personal/professional development. It’s like full-bore coding has become the norm and we’ve given up everything else.

You Are Not Paid to Write Code (cache)

The problem arises when we introduce layers to solve these basic needs, even worse when they are not resilient enough to guarantee their accessibility toward as much people as we can. Frameworks are popular today — bashing them too. We are often forgetting that framework starts with frame. This is the frame within which the author of the framework have (or worse, has?) his own job. When you choose a framework you are betting that your job will stay within his frame. Otherwise it’s a nightmare because breaking the frame will dismantle the consistency you were looking for at first with that solution. When all you have is a framework, everything you achieve looks like a patchwork.

A micro-framework tends to extend that frame and to turn it into something more loose that you will strengthen yourself for a given domain in order to accomplish the initial job. The result is still a frame but your current job hopefully is at the center with more room to evolve and find his audience. The trade-off is that you will have to write more code and your team must be concept-competent, not framework-competent.

When your team acquires experience about a given tool it is a short-term advantage over your competitors, you will be able to iterate quickly. When your team acquires knowledge on a given concept it is a long-term goal for your product, you will be able to pivot faster. The balance on the business side is to still be alive when it happens. The goal on the developers side is to still be competent when the framework and/or the product fades.

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Si c’est gratuit…

Si c’est gratuit, c’est toi le produit.

Martelé. Jusqu’à l’écœurement. Cette idée d’être consommé pour ce qui nous est propre. Nos données personnelles. Nos déplacements personnels. Nos envies personnelles. Nos possessions personnelles. Pour un graphe impersonnel.

Si c’est gratuit, c’est toi qui produis.

On passe de la consommation à la production. Micro-tâches. Agrégation de travail non rémunéré. Annotations collectives. Liens multiples. Masse critique. Prolétarisation.

Si c’est gratuit, c’est toi qui enseigne.

Sujets d’apprentissage pour intelligences artificielles. Addiction volontaire. Ludification généralisée. Infantilisation éhontée. Transmettre sans comprendre. Déshumanisation de l’autre. De la confiance à la preuve (cache).

Si c’est gratuit, c’est nous qui échangeons.

Réciprocité. Gain mutuel. Le bien commun n’étant plus une production de la société civile mais de l’Homme et de la Machine. Jusqu’à ce que la symbiose soit évaluée comme un parasitisme. Auquel cas, cela pourrait finir par nous coûter cher.

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Senior developer

Defining “senior” is an ongoing and surprisingly difficult process, but we do it because it’s business-critical for us. Without a clear definition of “senior developer", we have no clear path for our own employees to get there. We have no concrete way to evaluate people joining the team, no way to hold ourselves accountable, and no way of improving the process.

The Conjoined Triangles of Senior-Level Development (cache)

There is a moment in your developer career when you wonder if you’re senior enough to depict yourself as a senior developer. This is not at all a matter of how old you are (cache), neither how much you’re being paid. This is more related to how many and diverse experiments you made, how many different peers you helped onboarding a project, how easy it becomes to transmit your knowledge, how much confidence you accumulated and how fast you can admit you’re totally wrong. Actually, this is all about the fluidity you can have with a team within an evolving complex context. That is the moment you realize you are more valuable than the code you produce.

You’re here to speed up the learning process but not too much, otherwise your fellow companions are totally missing the potential failures and are pursuing without accumulating knowledge. Going fast is useful only if everybody within the boat is aware of what has been tried before and what was wrong (and right!) for that particular journey. It can only be achieved with a ton of communication.

When you’re lucky enough to be part of a team of highly skilled developers, you know that everybody will still progress technically because it’s part of the team’s DNA. Besides some long-running trolls, you know that the hard part will not be about technical capabilities anymore, the team is confident enough on that side to learn quickly if necessary. The hard part will be to consider the team — present and future — as a whole. It requires a tremendous amount of empathy to make the right social decisions.

Senior team members should be expected to spend half their time mentoring and helping others on the team get better. Their job isn’t just to be the code hero bottleneck.

Want to be an Engineering Manager? (cache)

Here the important word is bottleneck and I think that better than trying to reach the senior label individually, it has to be gained as a team. It’s way more challenging to be part of something bigger than yourself. You can mesure how “senior” a team is by how good it is at reducing bottlenecks and sharing responsibilities.

Finally, it also creates social problems as well. Bugs that span multiple services and require many changes can languish as multiple teams need to coordinate and synchronize their efforts on fixing things. It can also breed a situation where people don’t feel responsible, and will push as many of the issues onto other teams as possible. When engineers work together in the same codebase, their knowledge of each other and the system itself grows in kind. They’re more willing and capable when working together to tackle problems, as opposed to being the kings and queens of isolated little fiefdoms.

Microservices - Please, don’t (cache)

Choosing carefully which trends you’re following is key. Some are particularly destructive for the social interactions. I already talked about GraphQL, I think that microservices are even worse. This is a particular case when there is so much tensions within the team that you need to separate people and their products to still be able to deliver some value. A senior developer has to be inclusive in his productions and reactions, sometimes at the expense of speed or relevance.

The last step is to write about it. This could be a blog post, a book, or a conference talk. When I write about a topic, I explore the edges of what I know, the edges outside of what I needed to initially implement the idea.

How do I learn? (cache)

One part of becoming a senior developer is to be able to go just a bit deeper than the average developer and be able to share it. That’s a tiny advantage that makes all the difference. Sharing can take many forms, from blogging to giving a presentation or pushing some code on a repository. The end-result is not the most important (except for ego maybe). The moment you dig into the concrete issue and spend some time on it, the process of acquiring that knowledge and being capable of transmitting it. That’s the key point.

We are knowledgeable and productive, yes, but we also understand that we may actually know fewer (useful) things than we did at a prior point in our career. A non-trivial amount of our knowledge has decayed, and we may not have had the time to accumulate enough new knowledge to compensate.

[…]

We realize that it’ll require real effort to just maintain our level proficiency - and without that effort, we could be worse at our jobs in 5 years than we are today.

Reflections of an "Old" Programmer (cache)

The combination of our knowledge decay being extremely fast and our knowledge accumulation rate being quite slow leads to burnouts and endless questioning. Both being quite destructive on the long term. Senior developers are survivors. The ones finding a steady pace in their learning and a clear balance between theory and practice on a day-to-day basis. The ones taking the time to transmit their experience and to be kind enough (cache) to reduce the pain for newcomers. The ones avoiding depression and dead-ends like management and entrepreneurship. The ones escaping the craftsmanship and perfection rabbit holes. The ones considering themselves not senior enough to push the limits of its definitions. What is your one?

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Slow Data

In our search for answers to a problem which appears if not intractable then complex, is the speed of the media’s technology – and the politicians’ willing participation in the 24/7 news cycle – obscuring rather than illuminating the issues?

Are we simplifying the arguments if only by default, by not investigating them fully, or by appealing to an emotional response rather than an explanatory one?

[…]

But it does not mean we are covering the news more deeply or more analytically. We may be generating heat. But are we really delivering light?

[…]

We may think we are absorbing more information. In fact we are simply giving in to the temptation of the easy over the hard, the quick over the slow.

BBC Radio Director Helen Boaden resigns, criticising state of journalism (cache)

The idea of slow journalism is not new (see The Slow Media Manifesto (cache)) and I recently discovered that it can be applied to data too (cache). For quite a long time actually:

Data is growing in volume, as it always has, but only a small amount of it is useful. Data is being generating and transmitted at an increasing velocity, but the race is not necessarily for the swift; slow and steady will win the information race. Data is branching out in ever-greater variety, but only a few of these new choices are sure. Small, slow, and sure should be our focus if we want to use data more effectively to create a better world.

The Slow Data Movement: My Hope for 2013 (cache)

As a member of a team building an OpenData portal, these are questions we’re discussing on a regular basis. I wondered what would happened if I had to build something new from scratch. A few months ago, I made that experiment using Riot and Falcon (eventually not published because I don’t want to maintain it). The goal was to play with technical concepts from these frameworks and to deal with the complexity to serve data from various sources and qualities. My budget was quite constrained with less than ten evenings. After a while, I realized how hard the task was. Not (only) on a User eXperience point of view but because current data are so messy that you can’t easily pick up — even manually — some datasets and make them shine.

Maybe what we need the most is a Chief Data Editor, not a Chief Data Officer. Someone in charge of refining, storytelling and finally caring about the data. And when I say someone, this is actually a whole team that is needed given how ambitious the task is. Indexing data submissions is only the stage 1 of what could be achieved with OpenData and we experienced how limited it is in its externalities. Raw data yesterday, curated data tomorrow?

What if hackathons were not gigantic buzzword bingo sprints. Maybe we can turn these events into marathons. Put together a team for a week that focuses on a unique dataset, not necessarily full-time. The goal is to deliver a usable version at the end of the week and to celebrate what has been accomplished. Turn the shiny investor/mentor crap demo into a useful explanation of dead-ends and tools in use for the clean up that can be useful to the whole community. Curathons, really?!

Another option is to improve data directly at the source. Data is somehow a static API and as such a conversation too! Both producers and consumers of the data would benefit from more communication on how they actually (re)use it, why they are blocked, which are technical/political challenges to provide a better version and so on. The OpenData cannot succeed with the current one-shot approach, it has to be a continuous process.

It takes way more time to understand the actual issues in the lack of reutilizations and maybe it would lead to less datasets released at the end of the day. But hopefully of better quality. And quality matters to lower barriers to (re)adoption. Giving thousands of datasets to a couple of geeks does not produce the same results as giving a hundred of reusable datasets to millions of citizens. Don’t get me wrong, we desperately need geeks to make them reusable in the first place…

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Inclusive communities

It’s extremely hard to build inclusive communities. Communities where a stranger can come and take part of the discussion without feeling like a weirdo or an impostor. Communities where members do not feel ashamed of not welcoming newcomers too! From my experience these last weeks — I attended a few technical meetups in Montreal — I can say that it’s always hard to be the one not knowing anybody :-).

A few things I’d give a try as a community:

  • have a dedicated group of very inclusive people at the entrance that targets new people and give some directions, the group can rotate during the event but should be labeled as it one way or another.
  • have a way to identify newcomers, stickers, funny hats, whatever. The community should know that these people will feel lonely for their first time.
  • have a place to introduce yourself as a newcomer before the event for everybody else to know why you’re here and what’s your background.
  • have some kind of “icebreaker” that attributes a voluntary mentor for each new people. Even if that’s symbolic, it’s good to know that there is a person that you can bother during the event.

With these propositions, you will definitely feel more vulnerable as a newcomer. But hopefully, the fact to be explicitly recognized as a new member of the community will drive more care and attention toward you from all the other members. And I hope there are more people willing to include you than to bully you. Otherwise that’s probably not the community you’re looking for anyway.

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Passion et définition

Following your passion is a very “me”-centered view of the world. When you go through life, what you’ll find is what you take out of the world over time — be it money, cars, stuff, accolades — is much less important than what you’ve put into the world. So my recommendation would be follow your contribution. Find the thing that you’re great at, put that into the world, contribute to others, help the world be better and that is the thing to follow.

Don’t Follow Your Passion: Career Advice for Recent Graduates (cache)

J’ai toujours tourné autour de la passion pour me définir numériquement « passionné par le Web », « mon métier est une passion », etc. Je trouve la passion de plus en plus dangereuse et inexacte dans mon cas. J’essaye justement de résoudre des problèmes de manière dépassionnée pour être en mesure d’écouter ceux que je vais tenter d’aider. De la même manière, se passionner pour le Web ou pour un outil est relativement stérile, c’est ce que l’on arrive à en faire qui est exaltant.

Se définir est un exercice extrêmement difficile, j’ai du mal à m’en tenir à une définition technique (cache) ou simpliste (cache) car mon rôle ne se limite pas à résoudre des problèmes mais de manière plus large à en prendre conscience et à avoir l’empathie suffisante pour être pertinent. Quitte à m’y reprendre plusieurs fois. Quitte à ne jamais y arriver. Quitte à devoir le raconter pour pouvoir m’en souvenir. Quitte à faire le deuil de la performance pour bénéficier des externalités de la collaboration. Ces différentes étapes de lâcher-prise sont loin d’être techniques.

La quête de la perfection rend immobile, me dit-il. L’immobilisme est une pulsion de mort. Le bricolage, imparfait, est l’expression du désir. Le geste de jeter au monde une création imparfaite, une idée en développement, un outil plus ou moins bancal. Tout cela. C’est l’expression de la vie, a-t-il dit. Une pulsion de survie.

Hack is life ! (cache)

Cette friction qui existe dans l’imperfection est une piste intéressante. Peut-être est-ce ma pulsion de survie : Générer des imperfections qui tendent vers un monde singulier. Un espace-temps dans lequel chacun aurait le luxe d’expérimenter, de s’accomplir et de rencontrer. Sans forcément juger les expériences des autres (cache), ni poursuivre les mêmes accomplissements. En s’inspirant des imperfections d’autrui pour se remettre en question et pourquoi pas faire un bout de chemin ensemble. Le temps de s’augmenter l’un et l’autre.

On stigmatise les gens qui « ne font rien », en oubliant les gens qui font et « qui ne sont rien », dont l’identité est totalement broyée par leur travail, et qui représentent une part bien plus importante de la société que les premiers nommés. Évidemment qu’il existe un équilibre. Le rechercher passe par des phases d’explorations alternées du faire et de l’être, pour ensuite pouvoir faire en étant, et être en faisant, dans la joie.

[…]

Qui es-tu, quand tu ne fais rien ?

Je suis un fainéant. Ou pas. (cache)

Peut-être que le changement débute par son rapport à l’autre ; auquel on ne commence pas par demander ce qu’il fait dans la vie mais ce qu’il est dans la vie. Très personnel, assez brutal, à tenter :-).

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Delivery and value(s)

Edelman said that people tend to trust businesses more than governments, in part because “business gets stuff done” while government is seen as “incapable.” People trust technology companies in particular because “they deliver value.”

Trust in Government Is Collapsing Around the World (cache)

I’m working with the French government for more than a year now in a small team where delivery prevails upon meetings and infinite validations. I clearly understand the motivations to push forward what can be achieved by a government. To be inspired by the startup “culture” might be seen as highly positive. At least at first.

The maintenance remains a problem though. Where startups are delivering value as fast as possible in order to be bought or to raise more money, a government doesn’t have these escape plans. A startup joining the dead pool is acceptable, when you remove or neglect a service from a government it will have a direct impact on citizens. Not quite the same responsibility here. You still have the right and duty to kill a product if it doesn’t find its audience but the measurement is harder to define because it’s not purely based on profit.

The more I work on data.gouv.fr, the more I realize that my goal is not (only) to deliver but to challenge the previous processes and cultures. To show that there are other ways to do some things, another angle to see that particular problem and to communicate on its resolutions. New things to experiment both as a team and an international community.

The goal of a group is not only to deliver value but to challenge current values.

The level of trust within governments should be related to their abilities to question their actions, listen to feedback and adapt. This is way more than to deliver punctually or even continuously value. This is about where we are going. Together.

Optimists explain good things as being personal, general, and permanent, and explain away bad things as being impersonal, specific, and temporary. And if you point out the contradiction in their explanations, they see no contradiction. To them, the bad stuff really isn’t about them, it’s just that one thing that one time.

Optimism (cache)

Maybe turning a culture from pessimism to optimism is “just” a matter of making people aware of a new level of consciousness. A level that is not only personal but includes others for heading towards a new vision for this world. Mocking governments for their incapacity is easy, trying to be part of the long-term solution is way more challenging.

Never forget that a nation is a cooperative that scaled.

Trust is clearly broken these days for many reasons but it cannot be restored without a positive attitude and an incredible amount of energy. Working with a government was (and still is!) quite enlightening to me. If you want to change the world and have a big impact (not my ambition but that’s the top reasons given by my peers), think twice before starting/joining a tax-optimized company with no other goal than being bought by a big one. There is a solution probably closer and healthier for everybody.

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Communities and leadership

I am a member of a community of thinkers.

I believe that communities exist as homes for professionals to learn, teach, and reflect on their work.

I challenge each community in the software industry to:

  • reflect and honor the practitioners who make its existence possible;
  • provide an excellent experience for its members;
  • support the excellent experience its members provide for their clients and colleagues in all aspects of their professional interactions;
  • exemplify, as a body, the professional and humane behavior of its members;
  • engage and collaborate within and across communities through respectful exploration of diverse and divergent insights;
  • embrace newcomers to the community openly and to celebrate ongoing journeys; and,
  • thrive on the sustained health of the community and its members through continual reflection and improvement.

I believe that leaders in each community have a responsibility to exhibit these behaviors, and that people who exhibit these behaviors will become leaders.

I am a member of a community of thinkers. If I should happen to be a catalyst more than others, I consider that a tribute to those who have inspired me.

A Community of Thinkers (cache)

I was re-reading that old declaration lately and the two last sentences bugged me. It seems that I’m not the only one in that case given the extract of the reaction I found on InfoQ (sadly the complete original article vanished since then):

Unlike those who inspired me, I am a practitioner. Agile/Lean/Kanban is secondary to me. My job is to delivery business value and these communities provided tools that helped me do it. As a practitioner I discovered problem that I need to solve. I feed these solutions back to the communities. I AM NOT A LEADER AND I RESIST THE NOTION OF BEING ONE. I would like to think I am a member of ”a community of thinkers”. AND I would like to be respected for the contribution I make to those communities. I would like that community to respect me enough to keep giving me new ideas rather than insist I subscribe to an orthodoxy.

[…]

So what is the difference between Leaders and Leadership?

A leader feels like a commitment (something we only like if we have to):

  • “Do it this way if you want to be part of my club.”,
  • “My way or the highway”,
  • “You’re either with us or against us”

Leadership feels like an option (this is what we like as it allows freedom of choice):

  • “Here is a way you can do it, it worked for me in a certain context.”,
  • “You might want to check out X it seems related to what you’re doing.”

A Community of Thinkers (cache)

I really like that definition of leadership, it reflects my thoughts on mentoring and teaching new things. I wonder how much mentalities have changed during these last 6 years and if the same kind of statement would be different today regarding the evolution of the reflexion about the role of leaders vs. leadership. Maybe we’re heading toward more inclusive and horizontal communities or maybe I’m just a victim of the bubble effect showing me only what I want to agree with.

Because of that personal nature, we wanted to avoid putting our statement up as some kind of manifesto that people can sign. If you feel strongly enough about this statement that you would want to sign up, copy it. Post it on your own site. Attribute it to wherever you got your copy from – the act of sharing is more important to us than the act of creation – and feel free to change it so that it reflects your own values. I don’t think that any statement like this can ever be perfect, nor will we perfectly live up to it.

Ibid., emphase is mine.

Given that the original initiative encourages re-appropriation, here is my personal take on the end of the statement:

I believe that people in each community have a responsibility to exhibit these behaviors, and that people who exhibit these behaviors will create resilient and friendly communities.

I am a member of a community of thinkers. If I should happen to be a catalyst more than others, I consider that a threat for other participants and I would step down. Healthy communities are acentered graphs, not pyramids or silos.

Now I feel like I can be part of a community of thinkers that doesn’t promote leaders as an achievement to look for but as something to fear and be extremely cautious with. From my experience, free thinking is at that price.

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »

★ Collaboration debt

There is an old proverb (with many variants) that said:

If you buy quality, you only cry once.

I want to make an analogy with development. Let me rephrase it:

If you collaborate, you only loose time once.

Collaboration is clearly time consuming. You have to explain what you did and why you did it that way to at least another person in the team. Everything is questioned. Pairing is even harder given that you are doing this in real-time. So much time lost “just” by communicating you might think at first. It appears that by sharing your knowledge from the beginning, there are now two developers who are able to transmit that information to other collaborators. Event better, the potential of that transmission is exponential, no more single point of human failure (a.k.a. bus factor). Additionally, the quality of your product increases given that everybody is giving his insights.

Don’t get me wrong, sometimes you have to be fast and/or your resources are highly constrained. The thing you have to remember is that you create collaboration debt that will hit you one way or another. You have to be careful not to go too deep in that coding loneliness if you plan to keep that service for a few years. There are two keys for the success of a product: adoption and evolution. If you favor too much the first at the price of the second you’re doomed. Restarting from scratch is rarely a good option and splitting an unmaintainable monolith is incredibly time consuming and will slow down the evolution way too much to be competitive enough.

A product is the cumulated experience of a team that will be confident enough to make more experiments. And these experimentations are the only way to continue to innovate and stay ahead of copies of your product. I can hardly name a single project in my whole career (solo or not) where I was truly confident on the code base. Today, I let go about that and I focus on the confidence within the team to be able to tackle legacy parts which are core features of the product. Chop them down, remove the clutter, transmit the knowledge and iterate. If a team care about itself and communicate enough, the resulting code will hopefully be more maintainable, aesthetic and pertinent.

La suite et d'autres publications de ce blog sur larlet.fr/david/blog/

Continue reading »