lucidiot's cybrecluster

Introduction à twtxt

Lucidiot Informatique 2020-12-01
Comment j'ai arrêté de m'intéresser au Fediverse, et l'alternative que j'ai choisi


Introduction

En avril 2017, j'ai quitté Twitter pour Mastodon en suivant une des vagues d'utilisateurs francophones qui ont débarqué dans le Fediverse. Quitter Twitter a été assez simple vu que je communiquais finalement peu et que je ne m'étais pas vraiment fait d'amis ; il m'a juste fallu voir que Mastodon était pareil et qu'il y avait de l'activité pour me dire que j'allais supprimer mon compte. Je suis toujours sur Mastodon aujourd'hui, après des périodes où je m'étais coupé de ce réseau, et c'est maintenant plus compliqué de quitter le fediverse que de quitter Twitter vu que je me suis fait des bons contacts.

J'ai l'intention de m'éloigner du fediverse en général pour plusieurs raisons, notamment que j'y gaspille beaucoup de temps. Mastodon, Pleroma, ou PixelFed copient Twitter et Instagram, donc des interfaces conçues pour capter notre attention. On m'a recommandé de regarder le documentaire The Social Dilemma sur le sujet, qui doit probablement résumer ce que je pense de ça ; ces interfaces, bien que libres, bien que décentralisées, bien qu'ayant des options de protection de la vie privée, d'accessibilité, etc., gardent leur design toxique pour notre mental. C'est probablement pour ça que j'y perds beaucoup de temps.

Une autre raison importante réside dans le côté technique du fediverse, qui n'est pas compatible avec ma nouvelle approche d'internet liée aux tildes. Parlons donc un peu de la naissance de ActivityPub, le standard qui fait aujourd'hui fonctionner la plupart du Fediverse.

ActivityPub et Activity Streams sont des standards du World Wide Web Consortium (W3C), qui est une instance qui standardise le Web. Attention à ne pas confondre ici Web et Internet ; le Web est une sous-partie d'Internet qui utilise les protocoles HTTP et HTTPS, et Internet est bien plus ça. Les e-mails, les serveurs de jeux, les imprimantes en réseau, MSN ou Skype sont des protocoles sur Internet, mais ne faisant pas partie du web. Internet est régi par l'Internet Society, qui chapeaute d'autres acronymes comme IAB, IESG, IETF ou IANA. L'IETF standardise HTTP et HTTPS, qui font fonctionner le Web sur Internet, et le W3C s'occupe de ce qui est sur le Web.

À chaque fois que j'entends parler du W3C en ce moment, c'est quand Google utilise son monopole avec le navigateur Chrome pour imposer un nouveau standard au W3C et complexifier encore un peu plus le Web. Ensembles, toutes les normes du W3C qui affectent un navigateur Web représentent déjà plus d'une dizaine de fois les normes qui permettent de constituer un système d'explotation, du manuel des instructions processeur X86 à la norme POSIX, et on continue à le complexifier inutilement. J'assume donc toujours une mauvaise nouvelle lorsque je vois que quelque chose sort du W3C, et c'est cette préconception que j'ai eu avec ActivityPub.

À sa création, Mastodon utilisait initialement OStatus, pour être compatible avec GNU social qui était un des rares logiciels qui implémentaient le concept de fédération. L'intention était de créer une interface agréable et accessible au grand public pour OStatus. Le mainteneur du projet a vivement soutenu les auteurs de ActivityPub et a fait la transition vers ce nouveau protocole alors qu'il était encore à l'état de brouillon et pas de recommandation du W3C. La fin du support de OStatus était annoncée pour Mastodon 3.0, fin 2019, et avec la base d'utilisateurs de probablement plusieurs ordres de magnitude plus grande que celle de GNU social ou d'autres plateformes qui utilisaient OStatus, Mastodon a donc annoncé l'arrêt de mort de OStatus.

Du côté du W3C, un Community Group avait été créé pour supporter OStatus tandis qu'un Working Group travaillait à l'élaboration de ActivityPub. Dans le jargon du W3C, un Community Group est en quelque sorte une mailing list et un site que le W3C héberge mais ne soutient pas tellement, et un Working Group est plus officiel et important et élabore de vrais standards. Maintenant qu'ActivityPub a été adopté, OStatus a été abandonné par le W3C aussi.

Je ne me suis jamais vraiment beaucoup approché du côté « libristes » du Fediverse, où j'aurais pu voir des développeurs parler de cette transition à ActivityPub, du coup je suis longtemps resté dans l'ombre concernant le protocole ; j'en avais juste vaguement entendu parler. Mais je me suis renseigné un peu et je ne peux maintenant que conclure que Mastodon a agi exactement de la même manière que Google, en utilisant une base d'utilisateurs de plusieurs ordres de magnitude plus grande que ses « concurrents » pour forcer tout le monde à passer sur un nouveau standard.

Ce n'est pas le premier geste controversé de Eugen Rochko, le principal mainteneur du projet. Si vous voulez trouver du drama interne au Fediverse, vous avez le choix. C'est une des raisons pour lesquelles j'ai quitté pendant certaines périodes le fediverse.

L'imposition d'ActivityPub, un standard d'une grande complexité, mal implémenté par tout le monde, réellement compris par personne, et d'une façon assez déloyale, va dans un sens contraire à ma propre éthique qui tend plus vers la simplification, l'utilitaire. J'ai observé parmi le « drama » qui a passé outre mes filtres que les différents projets subissent les exacts mêmes problèmes que j'ai rencontrés avec IIIF dans mon emploi actuel, un standard écrit dans le style du W3C et se basant sur d'autres standards du W3C : c'est juste trop compliqué pour tout le monde.

Alors je suis resté ouvert à tester d'autres possibilités pour avoir un système de microblogging semblable à Twitter et Mastodon, et j'ai entendu parler de twtxt.

Présentation

I have nothing to say, but by god I'm going to spend a lot of time looking for tools to help me say it
@jack, 2019-10-04T09:14:45-04:00

twtxt est un réseau social décentralisé, mais pas fédéré. Il est explicitement conçu pour les hackers et pas pour tous les publics, et veut revenir aux sources de Twitter sans oublier les problèmes actuels des plateformes centralisées et en allant au plus simple. Et quoi de plus simple que des fichiers texte sur n'importe quel serveur ?

Le protocole était suffisamment simple pour que l'ajouter à Brainshit me prenne moins d'une heure, même si je suis totalement rouillé en PHP. Vous pouvez le trouver dans la barre de navigation, à côté du flux RSS, ou ici si vous avez la flemme de retourner en haut. Vous pouvez aussi suivre mon twtxt personnel.

Le format se résume à une date au format ISO 8601, une tabulation, et du texte. C'est tout.

Pour les mentions, puisque chacun a son nom et son URL, on indiquera @<nom https://url/twtxt.txt>. Certains programmes client peuvent nous simplifier la vie et traduire d'eux mêmes le @nom d'une personne connue en cette forme étendue.

Pour les hashtags, on utilise bêtement #hashtag. Il n'y a pas vraiment de signification concrète à un hashtag.

Pour joindre des images, des vidéos, etc., on mettra le contenu ailleurs, et on partagera juste un lien.

La principale critique que j'ai eu au sujet de twtxt quand je l'ai mentionné à mes contacts est cette limitation à 140 caractères, alors j'insiste : Tout le monde dépasse 140 caractères, et on se fiche de la limitation. On rend les lignes de texte aussi longues qu'on veut.

Clients

twtxt est conçu pour être utilisable avec des outils basiques de ligne de commande, comme curl ou vim, mais ça devient très vite lassant. Il existe donc des clients, qui s'occupent de vous donner une interface un peu plus confortable pour poster des tweets et construire votre « timeline ». twtxt fournit son propre client, twtxt, qui n'est plus maintenu par son créateur.

Il existe d'autres clients comme twet, rustwtxt, ou twsh, mais je ne les ai pas beaucoup explorés en détail.

Mon client préféré est txtnish, qui est très facile à installer sur un système Linux (je l'ai même sur mon téléphone via Termux), facilement extensible, et avec des fonctionnalités assez sympathiques. Je l'ai notamment configuré pour pouvoir poster automatiquement sur Mastodon à ma place, donc je peux tweeter et quand même apparaître comme étant en vie à mes contacts sur le fediverse. Je ferai probablement un autre article, suite à la demande de quelques contacts, sur cette configuration.

Découvrabilité

Un des premiers problèmes qu'on va rencontrer en voulant commencer à utiliser twtxt, c'est de trouver des utilisateurs à suivre. Il y a plusieurs options pour cela.

we-are-twtxt

we-are-twtxt est une initiative non officielle qui vise à lister des utilisateurs de twtxt, ainsi que les bots, de simples scripts qui génèrent régulièrement des tweets. N'importe qui peut créer une pull request sur le projet et demander à être ajouté ou retiré, et moi par exemple. On peut utiliser cette liste pour se former une liste d'utilisateurs initiale, et ajouter ensuite selon ses goûts.

User-Agent

Une fois qu'on commence à communiquer un peu, on se retrouve aussi avec un autre problème : comment savoir qui nous suit ? C'est un peu par conception que twtxt rend difficile de savoir comment on est suivi, mais ça ne facilite pas la communication bi-directionnelle et les mentions. Si je ne suis pas quelqu'un mais qu'il ou elle me mentionne, je ne vais pas facilement pouvoir le savoir.

Le client officiel de twtxt propose une solution en modifiant le header User-Agent qui est envoyé durant chaque requête HTTP faite vers un twtxt.txt. Le User-Agent est souvent inclus dans les journaux des serveurs HTTP, donc on peut les consulter et voir qui nous suit. D'autres clients ont implémenté cette fonctionnalité et peuvent avoir une option pour enlever cette information si on ne veut pas partager son identifiant.

Cette solution n'est pas parfaite, vu que les utilisateurs d'instances gérées par d'autres personnes ou ceux utilisant des hébergements gratuits comme GitHub Pages n'ont pas accès aux journaux HTTP, mais c'est un bon début.

Les registres

Le concept de registre a été introduit un peu plus tard dans la spécification de twtxt, et est un concept qui n'a pas tant que ça pris dans la communauté parce qu'il commence à réclamer une application, plus seulement un simple fichier texte.

Le registre est un peu la version « industrielle » et décentralisée de we-are-twtxt : on peut s'inscrire soi-même sans rien demander à personne, lister tous les utilisateurs inscrits, lister tous les tweets mentionnant une personne (ce qui peut aider pour le problème des mentions cités plus haut), ou contenant un hashtag, ou juste lister tous les tweets de tous les utilisateurs inscrits. On notera que c'est ici la seule mention qui est faite des hashtags.

Le registre peut donc aider à voir et à être vu, et ne demande pas de serveur particulier pour un utilisateur lambda. Quelques registres existent notamment au sein des tildes, comme twtxt.envs.net et twtxt.tilde.institute.

Re-fédération

Ce qui rend le protocole probablement le plus difficile pour le grand public est qu'il faut l'héberger soi-même sur un serveur. Certains se sont donc mis en tête de créer des instances qui hébergent votre fichier twtxt.txt à votre place, telles que twt.social et son instance principale twtxt.net. En quelque sorte, cela conduit à une re-fédération du protocole, ce qui m'a fait craindre une nouvelle tentative d'extension, à la manière de la pratique Embrace, Extend, Extinguish appliquée notamment par Microsoft : adopter un protocole open source, l'étendre pour le rendre encore plus intéressant aux utilisateurs, acquérir un monopole, puis refermer le protocole pour imposer aux utilisateurs de rester sur la plateforme propriétaire.

On en est déjà à la phase d'extension, avec le support de Markdown et des hashtags similaires aux mentions : #hashtag devient #<hashtag https://twtxt.net/search?tag=hashtag>. J'ai donc fait le choix, personnellement, de ne pas interagir avec tout utilisateur de twt.social ou twtxt.net. Un avantage de twtxt, c'est qu'il me serait beaucoup plus rapide d'implémenter ce blocage directement dans mon client par exemple.

Cette extension du protocole n'est probablement pas faite avec une mauvaise intention, vu que la communauté de twtxt n'est de toute façon pas assez grande et unifiée pour qu'on puisse parler du moindre monopole ; cependant, étendre le protocole implique d'autres problèmes qui ont été notamment évoqués en long et en large en ce qui concerne Gemini, qui fera l'objet d'encore un autre article.

À noter qu'il existe quand même des instances plus « classiques » comme twtxt.xyz, qui combine un ancêtre des registres décrits plus haut avec une instance hébergeant des twtxt.txt.

Conclusion

twtxt n'est certainement pas un remplacement pour le fediverse ou pour d'autres réseaux sociaux, et ça n'en est clairement pas l'intention ; c'est juste un moyen simple pour toute personne jouant déjà avec un terminal de partager des pensées dans un esprit hacker. J'y ai trouvé quelque chose qui me correspond plus et m'encourage aussi à publier et passer à autre chose, sans être piégé dans un système cherchant à capter mon attention. J'y trouve aussi des personnes que je n'aurais pas croisés sur le fediverse, vu que le public voulu est bien différent. Le fait qu'il y ait moins de monde aide aussi à y passer moins de temps !

Si vous êtes curieux et voulez vous lancer dans l'aventure, voilà comment me suivre si vous utilisez txtnish. Pensez à me contacter dans les commentaires de cet article, bien qu'ils soient voués à disparaître, ou envoyez-moi un mail, pour me dire où je peux vous trouver et qu'on puisse se parler.

txtnish follow lucidiot https://tilde.town/~lucidiot/twtxt.txt
txtnish follow brainshit https://brainshit.fr/twtxt.txt

Commentaires

Il n'y a pour l'instant aucun commentaire. Soyez le premier !