Le fédiverse, c'est le bordel

Publié par Richard Dern le 01/07/2019 - Aucun commentaire

Mises à jour

Je cherche à me mettre au fediverse. Donc, en même temps que je fais quelques essais (entrecoupés de quelques mois), je me documente. Ce qui est cool, c'est que c'est basé sur un standard, dont le W3C est - encore - en charge, ActivityPub. En fait, c'est clairement le bordel.

Des langages exotiques

Mon premier grief concerne les langages de programmation exotiques mis en oeuvre:

Je pourrais aussi parler de toutes les applications qui reposent sur nodejs avec ce que ça présente comme inconvénients, mais c'est tout de même plus facile à installer que Ruby ou Elixir. Quelques unes sont écrites en Go ou en Python, donc faciles à installer et presque universelles, mais elles restent rares.

En fait, il n'y a que les vieilles applications qui reposent sur du bon vieux PHP des familles: GNU Social et Friendica. Cependant, il semble que Hubzilla commence à prendre un peu d'ampleur.

Je ne dis pas que PHP est mieux, ce n'est pas le propos. Je dis juste qu'une stack complète PHP s'installe et se configure beaucoup, beaucoup plus vite et plus facilement que Ruby ou Elixir, en plus d'être plus accessible sur le plan technique.

Peu de containers

C'est probablement dû à la jeunesse relative des applications, mais j'ai constaté l'absence de docker "dans des conditions normales d'utilisation". C'est-à-dire qu'on peut souvent générer une image docker, mais que rares sont les applications à proposer leur image - officiellement - sur le hub. Cela rend l'utilisation d'outils comme portainer plus délicate. Je pense que c'est aussi un frein à une installation en masse: je ne compte plus les fois où j'ai saboté mon OS avec des installs foireuses. Une stack docker m'aurait épargné du temps et de la frustration. De plus, cela permettrait leur intégration dans des outils comme Yunohost.

Une coopération difficile entre les apps

J'aimerais bien pouvoir utiliser plusieurs applications différentes sur le fédiverse: par exemple, Pleroma pour du micro-blogging, Plume pour mes articles plus synthétiques, PeerTube pour partager des vidéos, Pixelfed pour mes photos. Intuitivement, je me suis dis que j'allais installer Pleroma sur microblog.my-freedom.space, Plume sur articles.my-freedom.space, Pixelfed sur pics.my-freedom.space, etc., et que, d'une façon ou d'une autre, je pourrais bénéficier d'un SSO (connecté sur une plateforme = connecté à toutes les plateformes, même moyennant un peu de configuration), et être reconnu par ces plateformes comme étant @richard@my-freedom.space. Il me semblait que cela serait possible en désignant une de ces applications comme étant mon "serveur d'identité", et que les autres applications pourraient lui demander les informations me concernant.

L'idée derrière cette architecture serait évidemment d'avoir un outil pour une tâche. C'est la philosophie Unix. Plume est plus adapté aux articles issus de la rubrique Réflexions de ce site par exemple, tandis que j'aurai utilisé Pleroma pour partager un simple lien ou pour papoter entre utilisateurs, voire en système de commentaires.

Malheureusement, la réalité est tout autre. Théoriquement, il me semble que rien, dans les specs d'ActivityPub, empêche l'utilisation d'une application pour gérer mon identité (selon les termes d'ActivityPub, il s'agirait de mon actor, inbox, outbox, les followers et les likes), et laisser d'autres applications gérer des objets spécifiques (par exemple, un objet de type Video serait géré par PeerTube).

L'idée, c'est qu'on puisse être identifié par @moi@mon_domaine.tld sur tout le fediverse, un peu comme une adresse email . Or, il me semble que pour le moment, il n'y a que Mastodon qui permet l'installation dans un sous-domaine, tout en conservant un acct (ce fameux identifiant) pointant vers le domaine principal. Donc, si j'installe Pixelfed dans pics.my-freedom.space, mon acct sur Pixelfed sera @richard@pics.my-freedom.space, donc sans aucun lien avec @richard@my-freedom.space, qui est censé être mon acct universel, le seul et l'unique. Malheureusement, il semblerait que cela relève plus du hack dégueulasse que de la véritable fonctionnalité.

L'autre frein à l'usage de plusieurs applications concerne le SSO. Là encore, j'attendais que ces applications soient capables de communiquer entre elles pour que, étant identifié sur l'une d'elles, je sois identifié sur toutes. Ce n'est pas dans les specs d'ActivityPub puisque ça ne le concerne pas, mais encore une fois, intuitivement, je pensais que ça coulait de source.

Techniquement, c'est faisable, même en passant par des outils externes. J'ai vu que Mastodon et Pleroma supportaient, par exemple, l'identification via LDAP ou OAuth. Mais il faudrait que les autres en fasse de même, à terme.

Un standard sujet à interprétations...?

Mastodon ne supporte pas "nativement" le fediverse. C'est-à-dire qu'au lieu de produire et utiliser nativement des objets définis par le standard, il produit des objets dotés de propriétés spécifiques, qu'il empaquette dans un format compréhensible par les autres acteurs du fediverse, avec le risque que ces objets ne parviennent pas sur le fédiverse de la même façon qu'ils ont été produits.

L'auteur de Pleroma précise dans son article "What is Pleroma" que:

Mastodon is, internally, based around the concept of “Statuses”. It uses ActivityPub to federate, but it has no internal concept of Activities, it just generates ‘fake’ Activities for message exchange.

Mastodon est basé, en interne, sur le concept de "Status". Il utilise ActivityPub pour se fédérer, mais n'a aucun concept d'Activités en interne (ndr: les Activités font partie du standard ActivityPub), il génère simplement de "fausses" Activités pour l'échange de messages

Le même cas de figure se présente avec PeerTube, mis en lumière par la librairie ActivityPub pour PHP écrite par landrok.

A priori, le standard ActivityPub n'interdit pas de produire des types d'objets spécifiques dotés de propriétés non standards, ceci afin de couvrir des besoins spécifiques non prévus par le standard lui-même. Le problème, c'est de créer des objets spécifiques dérivés d'objets pré-définis. C'est notamment le cas pour PeerTube et Mastodon: alors que ActivityPub défini bien des objets de type Video, PeerTube ajoute des propriétés spécifiques qui peuvent ne pas être utilisées (puisqu'inconnues) d'une autre application, réduisant par conséquent l'interopérabilité. Si l'envie me prend de créer un "concurrent" à PeerTube, sachant que ses utilisateurs exploitent déjà ces propriétés d'objets spécifiques, il faudra que je les exploite aussi sous peine de n'attirer aucun utilisateur, voire de contribuer à fragmenter le fédiverse (ce qui est, par définition, complètement incohérent).

Non pas un mais plusieurs standards

Je parle essentiellement d'ActivityPub, mais ce n'est pas le seul protocole à être employé sur le fédiverse. Il y a, par exemple, diaspora*, qui utilise son propre protocole du même nom, mais aussi OStatus, entre autres. À moins que les applications supportent plusieurs de ces protocoles, il y a une fragmentation du fédiverse. De là, complexification du développement des applications, voire lourdeurs dans leur utilisation.

Ceci dit, il faut tempérer mes propos: je ne parle pas de supprimer tous les protocoles sauf un. Matrix n'a pas la même finalité que ActivityPub par exemple. Et puis cette variété des protocoles n'est pas le pire handicap du fédiverse.

C'est pas compliqué pourtant !

Je récapitule:

Mise à jour du 02/07/2019 à 10:44

Test de Prismo et Pixelfed

J'ai passé ma soirée à tester Prismo et Pixelfed, et je ne suis pas du tout convaincu. Sur le papier, un mini-reddit et un Instagram auto-hébergés, Libres et fédérés, ça envoie du bois. Mais concrètement, soit je n'ai rien compris au fediverse, soit il y a encore énormément de travail à accomplir.

Concernant Prismo, il y a quelques petits bugs de jeunesse mais rien de méchant: l'application s'installe relativement facilement via docker et est parfaitement utilisable. Par contre, il faut être connecté sur la même instance pour pouvoir suivre un utilisateur. J'espère que là encore, c'est dû à la jeunesse de l'application, sinon je ne vois pas comment ni pourquoi c'est "fédéré".

Concernant Pixelfed, je suis démuni. J'ai pu envoyer une photo. Les autres m'envoient chier avec une erreur 401 (demande d'authentification alors que je suis connecté). De plus, la procédure d'installation est décrite de façon quelque peu... désordonnée. Pixelfed est basé sur Laravel que je connais comme ma poche. J'ai donc pu ajuster la procédure et m'en sortir. Mais impossible de l'utiliser. Sans compter les bugs de génération de miniatures, le cache roulette-russe, etc.

Mais là encore, impossible de comprendre comment suivre mon instance depuis une autre: impossible donc de savoir si un utilisateur sous pleroma peut suivre mon instance pixelfed. Mais peut être qu'encore une fois, je n'ai rien compris au fonctionnement du fediverse...

Pour être clair, je pensais que si je dispose d'une instance Pixelfed, ou Prismo, ou Mastodon, ou Pleroma, n'importe qui pouvait me suivre depuis n'importe laquelle de ces applications, commenter depuis ces applications, liker, etc. Par exemple, en publiant une photo sur Pixelfed, un follower pourrait la commenter depuis son Mastodon. Si je publie un lien sur Prismo, un follower le verrait dans Pleroma, et pourrait le liker de là.

Mais s'il n'y a qu'un utilisateur Pixelfed pour liker une photo publiée via Pixelfed, et que seule une personne sur Prismo peut suivre quelqu'un d'autre sur Prismo, je trouve l'intérêt du fediverse particulièrement limité.

Du coup, je ne suis même pas sûr de voir l'intérêt (pour moi) de rester sur le fediverse pour l'instant.

Mise à jour du 05/07/2019 à 10:45

Après quelques jours d'utilisation

Le harcèlement

En effet, sur le fediverse, il y a un sérieux problème de harcèlement, que j'ai pu moi-même constater (sans en être la cible). Les populations de couleur, les femmes, la communauté LGBT, etc., il y a toujours l'une ou l'autre personne pour se montrer particulièrement violent. Du simple mysogyne au suprémaciste blanc, on trouve de tout.

La communauté du fediverse aimerait des outils plus efficaces pour lutter contre ces violences. Par exemple, redonner un peu de pouvoir aux utilisateurs-même au lieu de confier la modération aux seuls administrateurs de l'instance. Mais, apparemment, en particulier chez Mastodon, les devs semblent peu enclins à les implémenter.

Comme je l'ai dit ci-dessus, c'est un problème humain, pas logiciel. Les gens foncièrement mauvais, intolérants, incapables de réserve ou de retenue, le resteront sur Internet comme IRL. Il n'y a pas de solution logicielle à ce problème, pas plus qu'il n'y a de solution sociale. Le harcèlement sur Internet fait la une, mais uniquement parce qu'Internet est un nouveau vecteur du harcèlement. Ce qui me permet de glisser ici mon opposition totale à une responsabilisation des plateformes. C'est nous, en tant qu'humains, le problème, et j'insiste lourdement là-dessus. Pas les plateformes, pas les logiciels, pas l'informatique. L'humain.

Tout ce qu'on peut faire avec des outils de modération, c'est appliquer une rustine technique temporaire sur un problème social permanent.

Les standards ignorés

La communauté du Logiciel Libre a voulu des alternatives à facebook et twitter, par exemple. On a donc créé le protocole OStatus. Et ActivityPub. Tous deux des standards. Sauf que c'est un terme qui ne veut plus dire grand'chose, apparemment.

Or, il se trouve qu'ActivityPub, dont mastodon revendique la compatibilité, permet la gestion de groupes, une demande apparemment récurrente chez ses utilisateurs. Via les types d'acteurs. C'est là. Il suffit de l'implémenter correctement. Mais pour l'implémenter correctement, il faut le comprendre correctement. C'est généralement à cette étape qu'on perd les devs.

Selon @lord, dont j'affectionne particulièrement le blog, les devs du fédiverse travaillent dans le désordre, c'est-à-dire que les protocoles de fédération sont implémentés en fin de projet:

Réflexion de @lord concernant le dev sur le fédiverse

Réflexion de @lord concernant le dev sur le fédiverse

Je considère que c'est une bien mauvaise pratique, pour des applications censées être fédérées et interopérables. Pire, cela défie la logique: comment espérer implémenter correctement un protocole s'il n'est au pas au coeur même du développement ? Et pourquoi ne l'implémenter qu'aussi partiellement, si ce n'est à cause d'un manque de compréhension des spécifications, ou par fénéantise ?

On pourrait m'opposer que les spécifications sont chiantes à lire, qu'elles ont des défauts, etc. Je suis peut être idéaliste, mais pour moi, c'est l'implémentation (en général) qui est défectueuse, pas la définition. Il y a des points qui sont laissés à l'appréciation de l'implémentation, évidemment, comme la sécurisation des échanges ou l'identification des acteurs, mais globalement, le W3C fournit presque tout ce dont les développeurs ont besoin, en particulier le modèle des données (du genre "tout ou presque hérite de Object ou de Link"), et, forcément, les interactions font l'objets de paragraphes descriptifs, qui peuvent être chiants à lire.

Mais les specs de SMTP, de HTTP, de DNS, etc. sont aussi des documents très synthétiques (une quinzaine de RFC par protocole que je viens de citer). Si, pour des protocoles et des technologies aussi importantes, les devs des implémentations les plus populaires concernées avaient fait preuve d'aussi peu d'engagement que pour ActivityPub, je n'imagine même pas où en serait le web aujourd'hui.

Le fediverse est totalement bancal

Je l'affirme: le fediverse d'aujourd'hui est totalement bancal, et il le restera tant que les devs ne se sortiront pas les doigts du cul, ou qu'ils feront preuve d'autant de totalitarisme. Ça, c'est pour la partie technique et pour me faire des amis.

Pour la partie sociale, honnêtement, si ces problèmes de harcèlement persistent, le fediverse n'est pas mieux que facebook ou twitter. Sauf que là, ça ne concerne plus ni les specs, ni les implémentations. C'est un problème humain, contre lequel aucune solution informatique n'est envisageable.

Par conséquent, le fediverse, qu'il repose sur ActivityPub, OStatus, Matrix ou XMPP, restera toujours bancal, parce qu'il repose sur l'humain.

Mais au moins, si les implémentations étaient techniquement meilleures, on pourrait se concentrer sur le problème humain.

Mise à jour du 06/07/2019 à 10:56

Le fediverse au-delà du fédiverse

Depuis quelques jours, mon flux de pouets est monopolisé par @aeris, victime d'un déferlement à son égard, démarré par un tweet "maladroit". Je n'ai pas tous les éléments en main pour comprendre de quoi il en retourne, et il ne m'appartient pas de communiquer une opinion quelconque à ce sujet: je ne connais ni les scènes ni les acteurs. Toutefois, cela me permet de rebondir sur quelque chose qui me semble avoir été perdu de vue par les acteurs des réseaux non-commerciaux.

Il semblerait que cette fâcheuse histoire ait mis en exergue un défaut de modération de la part des gestionnaires des instances Mastodon de chez framasoft et mamot.fr.

Je ne connais pas le passif de mamot.fr, mais je connais framasoft: ils oeuvrent depuis longtemps déjà à la promulgation des Logiciels Libres, et, plus récemment, à la dé-Googlisation d'Internet. En gros, ils font tourner une instance de toute application destinée à remplacer un service commercial. Par exemple, mastodon pour remplacer twitter.

Il y a un effet de bord désastreux et qui a déjà été évoqué plusieurs fois un peu partout: le but de ces applications Libres est de remplacer leur équivalent commercial et donc centralisé. Or, en proposant eux-même des instances ouvertes de ces applications (mastodon n'est qu'une application parmi une trentaine), ils centralisent chez eux, ce qui ne fait que déplacer le problème: au lieu de centraliser les utilisateurs chez twitter, ils les centralisent chez framasoft. On voit bien l'un des problèmes que cela pose: tout utilisateur qui bénéficie de leurs services tombe par conséquent sous leurs propres règles de modération, ou sous leur absence de règles, ou sous les capacités de modération proposées par l'application mise en oeuvre.

Je le répète: le but de ces Logiciels Libres est de se décentraliser, ou dit autrement, de s'affranchir d'une autorité centrale. Je soutiens donc bien l'idée de framasoft de promouvoir les réseaux décentralisés, mais je suis en total désaccord avec l'idée qu'ils en hébergent des instances ouvertes (c'est-à-dire que tout le monde peut s'y inscrire).

Construisons maintenant une analogie avec le monde "réel".

Framasoft, mamot, etc., sont des hôtels: même les criminels peuvent s'héberger à l'hôtel, sans que ce dernier ait connaissance des intentions ou du passé de ses clients. Le jour où il y a une alteraction importante, nuisible aux autres usagers, l'hôtel prend ses dispositions, et fout tout le monde dehors, sans chercher à comprendre qui est fautif ou pas. Ils vendent de l'hébergement, et ne sont pas là pour investiguer, ou jouer à la police des moeurs, parce que quand ils le font, c'est mal fait: ce n'est pas leur métier. Ils sont là pour héberger. Il n'empêche qu'il y a des règles, qui, dans un monde idéal, ne sont pas nécessaires, puisqu'on est censés pouvoir compter sur le bon sens de cette créature si socialement et technologiquement avancée qu'est l'humain... Ces règles sont simples, universelles: le respect d'autrui.

Nous ne sommes pas, bien sûr, dans un monde idéal, et le respect d'autrui, c'est une notion bonne pour les sociétés utopiques.

Pour beaucoup d'humains, s'héberger à l'hôtel ne peut être l'affaire que de quelques jours: on n'est jamais aussi bien que chez soi. Donc, on cherche à s'héberger soi-même, voire construire sa propre maison.

Tout le monde n'a pas les compétences pour construire sa propre maison, mais on peut toujours en acheter une déjà construire: dans mon analogie, acheter une maison construite reviendrait à utiliser un outil comme Yunohost, voire, à plus bas niveau, docker, tandis que construire sa maison reviendrait à installer le Logiciel Libre de son choix sur son propre serveur.

Ça ne résoudrait pas le problème du harcèlement, évidemment. En se fédérant, on s'expose. En se rendant public, on s'expose. Que ce soit sur Internet ou non, d'ailleurs. Mais au moins, on aurait le choix de masquer les indésirables, sans être dépendant d'une plateforme (en l'occurrence, framasoft ou mamot). C'est-à-dire qu'on est en mesure de décider qui rentre chez nous ou non.

Les problèmes qui surviennent sur le fédiverse ne sont pas spécifiques au fédiverse. Je pense en particulier au forum 18-25 du site d'actualités jeuxvideo.com. Ces problèmes ne sont même pas spécifiques à Internet.

Internet a rapproché les gens: il leur a permis de communiquer, qu'ils soient voisins ou distants de milliers de kilomètres. Et donc, on peut plus facilement communiquer avec les autres, positivement ou non. C'est un choix personnel, qui dépasse de loin les réseaux sociaux ou Internet.

On choisi d'avoir un regard positif ou négatif face aux autres, en fonction de nos propres valeurs. On choisi d'être un suprémaciste blanc, ou un terroriste. On choisi d'être mysogyne ou féministe. On choisi de bannir ou tolérer les individus disruptifs sur nos instances de réseaux décentralisés. On choisi de s'exposer au jugement des autres ou de les juger soi-même. On choisi de harceler ou de récompenser un employé. On fait ces choix parce qu'intrinsèquement, consciemment ou non, même si on pense le contraire, on a pesé le "pour" et le "contre" des conséquences de nos choix au moment où on y est confrontés. Mais quand on devient sociaux, nos choix ont toujours des conséquences sur les autres.

J'essaye d'éviter la notion du bien et du mal, parce que c'est une notion typiquement humaine, née par l'évolution de notre pensée. Mais je considère que c'est impossible. Pour beaucoup de gens (la majorité ?), le monde n'est pas binaire: il n'y a pas de "bien" et de "mal" (ce qui me parait totalement opposé à notre historique religieux d'ailleurs - à l'échelle de l'espèce). Ce n'est pas mon cas. Même si cela dépend d'un nombre variable de paramètres, chaque situation peut être définie comme étant, de façon absolue, positive ou négative. L'irrespect est invariablement un comportement négatif, tout comme le harcèlement, quelles qu'en soient les raisons.

Seuls les plus téméraires seront parvenus à lire toutes ces lignes d'un sujet qui ne saurait être résumé, et dont je ne saurai trouver une conclusion adéquate. Malgré tout, je tenterai celle-ci, que je ne prétends en aucun cas universellement satisfaisante: il est malheureux que les personnes qui ne sont pas concernées par les règles sociales (c'est-à-dire, qui les respectent naturellement) sont trop souvent les mêmes qui en sont victimes.

Commentaires

Vous pouvez utiliser markdown dans votre commentaire. Si vous indiquez une adresse email, elle sera utilisée pour vous notifier des commentaires publiés sur cette page. Elle ne sera utilisée qu'à cette fin et ne sera jamais transmise à un tiers.