Existe t’il une alternative au Web actuel, avec ses publicités à tout va, son suivi infernal, sa lourdeur de page? Project Gemini tente de l’être.
Introduction
Aujourd’hui, la plupart des sites web sont saturés de publicités (sauf ici), surchargés de cookies permettant d’analyser tout ce que fait le lecteur (sauf ici), truffés de vidéos et sons en auto-play (sauf ici). Et on ne parle même pas du contenu, une bonne partie des articles sont des puta-clics (sauf ici) que renierait Morandini, c’est tout dire. Alors, est-ce qu’on peut partager du contenu de manière plus efficace?
Project Gemini, son histoire
En réponse à un Web de plus en plus lourd (images, vidéos, publicités, cookies et javascript) et complexe (combien de plugins en moyenne pour un site wordpress?), le protocole Gemini a fait son apparition et ne propose rien d’autre que télécharger du texte, dans une version allégée de MarkDown. Pas d’image, d’animation, de cookie, de Javascript ni de CSS. Rien que du texte et des liens. L’objectif de Gemini est simple: pour éviter de rejouer le scénario “Web 2.0”, pour y parvenir il limite les possibilités au maximum: du texte, des titres, des citations et des liens. Bonjour, Merci, Au revoir.
Par contre, soyons clair, Gemini ne veut pas remplacer le Web actuel. Ce protocole ne permet pas la diffusion de contenu multimédias (oui je sais, dans de nombreux cas ce serait finalement mieux) pas plus que la création de sites marchands (là ça serait fort dommage). Pour faire un parallèle avec la vraie vie, le Web actuel est une voiture tandis que Gemini est un vélo. Ces deux moyens de transport existent, cohabitent et répondent à des besoins différents.
Sécurité et suivi
Gemini impose l’utilisation de TLS/SSL par défaut, c’est très bien surtout à une époque où Let’s Encrypt propose des certificats gratuits. De plus côté client, on expose deux choses en consultant une page Gemini: son adresse IP et le nom de la page qu’on consulte. Comme il n’y a ni cookie ni image ni javascript, le pistage est forcément extrêmement limité, voire impossible.
Écrire une page Gemini
La syntaxe est simple (et forcément limitée):
- Trois niveaux de titres avec #, ## et ###
- Pas de lien dans le texte, uniquement sur une ligne avec =>
- Du texte préformaté encadré par ``` au début et **```**à la fin
- Des listes mono niveau avec *
- Le reste du texte s’écrit tel quel
C’est simple, c’est rapide à écrire, on ne se perd pas dans les possibilités. En guise d’exemple, je vais reprendre le début de l’article mais en version Gemini:
1# Project Gemini, l'autre Web?
2## Introduction
3Aujourd'hui, la plupart des sites web sont saturés de publicités (sauf ici), surchargés de cookies permettant d'analyser tout ce que fait le lecteur (sauf ici), truffés de vidéos et sons en auto-play (sauf ici). Et on ne parle même pas du contenu, une bonne partie des articles sont des puta-clics (sauf ici) que renierait Morandini, c'est tout dire. Alors, est-ce qu'on peut partager du contenu de manière plus efficace?
Installer un serveur Gemini
Dans la section “Software” du site du projet, on trouve plusieurs serveurs, écrits dans différents langages (Go, C, PHP, Rust, etc). Je voulais tester mais il n’y a aucun package disponible, c’est franchement un facteur limitant. Du coup, le temps que je trouve la motivation pour tester (ou écrire une version Java), je n’ai pas de tuto express à proposer ici.
Quand à faire un serveur “de production” (auto-hébergé et public), gros hic: je n’ai pas d’adresse IP fixe ni de machine dédiée donc ça va être la galère pour proposer un service de qualité au quotidien.
Solution intermédiaire: installer un client HTTP
Il existe une mini-application PHP nommée “HtmGem” qui permet d’afficher des pages Gemini dans un browser. L’application s’installe facilement, la magie opère via une “rewrite rule” Apache pour transformer les urls *.gmi en page Web via un script PHP. C’est assez sympa
Clients Gemini
Pour consulter les capsules Gemini (l’équivalent d’un site web), il faut utiliser un client. Il y en existe plusieurs, écrits en plusieurs langages et certains disponibles sous Android. J’ai sélectionné AV-98 (python), Zain (Tcl/Tk) et Amfora (Go). AV-98 et Amfora s’affichent dans le terminal alors que Zain est en mode graphique.
Présentation de AV-98
Réalisé par SolderPunk, l’application AV-98 s’affiche en mode texte et est écrit en python. Il n’y a qu’un seul script de 64Ko. C’est plutôt incroyable lorsqu’on sait qu’aujourd’hui la moindre application pèse plusieurs Mo. Ce client propose plusieurs commandes permettant de naviguer (go, back, next), de gérer les bookmarks (add, bookmarks) et d’effectuer des recherches (search et gus). C’est plutôt complet mais l’ergonomie est assez peu intuitive.
Page d’accueil
Saisie de l’url et page d’accueil du moteur de recherche\
Saisie de la recherche
Résultats de recherche
Présentation de Zain
Zain est écrit en Tcl/Tk (ça me ramène à l’époque -pas si lointaine. Bande de nazes!- de l’université). Il faut installer la libraie TLS pour Tcl avec un petit “sudo apt-get install tcl-tls”. Ici, on a droit à une fenêtre graphique comportant une zone pour l’url et 3 boutons. C’est bien plus facile à prendre en main (on dirait Netscape v1.0) mais on n’a pas de quoi gérer les bookmarks.
Page d’accueil
Page d’accueil du moteur de recherche
Saisie de la recherche
Résultats de la recherche
Présentation de Amfora
Amfora est un autre client en mode texte qui se trouver un peu à la croisée de Zain et AV-98: l’ergonomie est plus intuitive (la touche Tab permet de naviguer dans les liens d’une page) mais on conserve le fonctionnement en mode “commande”. A voir dans le temps mais au bout de quelques heures c’est mon préféré.
Page d’accueil
Page d’accueil du moteur de recherche
Saisie de l’url
Résultats de la recherche
Conclusion
Project Gemini repose sur une idée intéressante et prometteuse. Par contre, la nécessité de mettre en place de nouveaux serveurs et l’aspect un peu rebutant des clients ainsi que la présentation plutôt austère des pages risque d’être un facteur vraiment limitant auprès du “grand public”. Mais pour avoir surfé, c’est vrai que c’est rapide et qu’on se concentre sur le contenu.
Quelques liens
- Le site du projet
- La page Wikipedia
- Article “Revenir à du simple et sûr?”
- Article “Le protocole du slow web”
- Article “Avenir du web?”
- Article “C’est quoi Gemini?”
- HtmGem:
- Le site de l’application
- La présentation sur LinuxFR