Pleroma/Gegeweb

Je demandais ce qu'était ce #gemini, un début de réponse :

https://blog.gegeweb.org/c-est-quoi-gemini.html

gemini://home.gegeweb.org/c_est_quoi_gemini.gmi
replies
4
announces
14
likes
11

@gerald Bon ! j'ai toujours pas tout compris sinon que les articles geminis ne sont pas lisibles via https donc via Firefox

J'avais lu l'article de @ploum https://ploum.net/gemini-le-protocole-du-slow-web/
et essayé celui de @bortzmeyer
https://www.bortzmeyer.org/statistics-gemini.html 😱 c'était en English
mais je viens de le trouver en french 😍
https://www.bortzmeyer.org/gemini.html
et pour le coup ils sont lisible par firefox 😉

@lrde @gerald @ploum Il faut se rappeler que Gemini, ce n'est pas le Web, c'est un truc différent. (Plus sobre.)

Et attention, mes deux articles sont très différents, pas une version traduite.

ah ! merci pour les précisions , comme je ne comprends pas bien l'Anglais , je me suis fait avoir . @bortzmeyer @gerald @ploum
pas le Web donc pas interprétable par un navigateur Web
Je crois que c'est la seule chose que j'ai compris 😉 😀

@lrde
> Bon ! j'ai toujours pas tout compris sinon que les articles geminis ne sont pas lisibles via https donc via Firefox

Ah merde !
Ça veut dire que je n'ai pas été assez clair et didactique dans mes explications !

@ploum @bortzmeyer

si si ! En fait je veux dire que je comprends sans comprendre vraiment
comme d'hab quoi !
je n'arrive pas à comprendre comment celui ou (surtout celle) qui voudrait aller sur place et voir comment fonctionne gemini doit faire
Mais j'ai encore un peu le temps de finir par comprendre @gerald
y a @ploum qui en parlant de Gopher va m'obliger à regarder ce que c'est que ce machin qui date du temps des dinosaures 😉 et puis je n'ai pas encore lu l'article de @bortzmeyer

@lrde

Je viens de modifier un peu mon article (sur le blog, donc sur "internet") afin d'être un poils plus explicite sur ce point.

En gros pour aller sur "internet" tu utilises un navigateur comme Firefox ou Chrome qui va parler le protocole HTTP avec le serveur qui généralement va lui renvoyer du text/html qu'il sait (ou pas…) afficher.

Pour les liens gemini:// il va donc te falloir un logiciel (navigateur) spécifique qui "parle" ce protocole avec un serveur #gemini et qui sais lire et afficher le format text/gemini.

@ploum @bortzmeyer

@lrde

Gopher est un protocole plus ancien, qui existait avant "Internet" et qui peut être transporté (pour échanger entre ordinateurs) sans utiliser la couche TCP/IP.
Ça date de l'époque ou on contactait une machine de modem à modem sans passer par des routeurs, via le téléphone. (si je dis pas de conneries…)
Gemini s'en inspire sur le principe je crois.

Ça risque de t'embrouiller l'esprit. ;)

Mais pour la culture générale "Internet", c'est bien d'être curieuse !

@bortzmeyer @ploum

@gerald @ploum @lrde Pas d'accord avec le choix des termes. Gopher n'était pas avant l'Internet, il a toujours fonctionné sur l'Internet et, oui, avec TCP/IP.

Et quand on utilisait des modems il y avait des routeurs quand même. Dès qu'il y a plus d'une machine il faut un routeur.

@lrde
Pour simplifier, et que
@bortzmeyer et @ploum me corrigent si je raconte des conneries, un protocole c'est ce qui défini (via des spécification, les "RFC" en sont) la façon (le "langage") que doivent employer les logiciels pour échanger du contenu.
On peut considérer ActivityPub utilisé par Mastodon comme un protocole au dessus du protocole HTTP pour le fediverse.

En gros ton logiciel client il ouvre une "socket" en tapant à une porte spécifique (le port) et commence par se présenter puis demander une ressource.
C'est la définition de ce dialogue qu'on appelle un protocole.

c'est en fait ce serveur qui me fait poser question ... ton serveur par exemple , sait tout lire ? Comment vous faites pour utiliser plusieurs navigateurs.. J'ai déjà du mal à surveiller un +Thunderbird . Je n'ouvre même plus Dino en même temps (De toute façon, personne ne cause sur Xmpp 😉) ni Liferea . J'ai déjà tellement facilement la mauvaise habitude de butiner partout 😉
@gerald @ploum @bortzmeyer

@bortzmeyer

Merci de me corriger !

Des vagues souvenirs du premier réseau de machine client serveur TO7/MO5 en boucle en cours de techno/info au lycée (j'ai pas poursuivi plus loin… pour aller faire le saltimbanque) je n'ai pas mémoire qu'il y avait un routeur.
Le TO7 était le serveur les MO5 les clients. Et le signal faisait une boucle.

J'ai aussi souvenirs d'avoir "joué" avec des copains à se contacter de modem à modem en composant le n° de la ligne.
Mais en effet, il n'y avait que deux machines.

J'ai fait une longue pause loin des ordinateurs ensuite jusque fin 90…

@ploum @lrde

@gerald @ploum @lrde Oui, j'aurais dû dire « plus d'une machine *et* une communication en dehors du réseau local »

pour les protocoles, je crois avoir compris qu'il fallait un langage commun pour pouvoir dialoguer entre serveurs. Pour les RFC j'ai aussi compris qu'ils ont été mis en place pour que dans le monde entier tout le monde suivent des mêmes règles

Quand je dis compris . Cela ne va pas jusqu'à la capacité à transmettre ce que je pense savoir 🙂 @gerald @ploum @bortzmeyer

@lrde

Le serveur désigne la machine et les logiciels, c'est trompeur.
Un serveur (logiciel) c'est comme le client.
Il sait pas tout lire et comprendre.
Il est programmé pour parler un ou plusieurs langage (protocole) spécifique.

Sur me Rpi à la maison, le "serveur physique", j'ai un serveur web (nginx) qui sert du contenu statique (HTML) et qui sert de "proxy" pour l'instance Mastodon.
Et j'ai un autre logiciel serveur pour le protocole Gemini.
De même que pour les mail, le transport et la distribution : SMTP. La lecteur en IMAP un autre logiciel serveur.

@ploum @bortzmeyer

@gerald @bortzmeyer @lrde:

Internet = réseaux d’ordinateurs interconnectés.
Protocole = langue utilisée entre les ordinateurs pour échanger des informations
Client = logiciel utilisé pour traduire les requêtes/réponses d’un humain dans le langage du protocole.
Serveur = logiciel qui permet à un ordinateur de répondre à des demandes venant d’un autre ordinateur.

Le web, le mail, gemini et gopher sont 4 protocoles (4 languages différents) qui fonctionnent sur Internet… (suite)

@gerald @bortzmeyer @lrde :

(note : ils peuvent fonctionner hors-Internet, par exemple sur un intranet).

Chaque protocole nécessite donc ses propres clients et ses propres serveurs. On ne peut pas surfer sur Google avec Thunderbird, on ne peut pas envoyer un mail ou surfer sur Gemini avec Firefox.

Sauf que sont apparus des "clients web" qui permettent d’envoyer des mails depuis Firefox. Firefox traduit traduit ton texte en protocole web (http) et l’envoie à Gmail. Gmail se charge ensuite .…

@gerald @bortzmeyer @lrde

…de le traduire en langage mail.

Pareil avec Gemini. Il existe des « proxys » qui te permettent de surfer sur Gemini depuis Firefox. Bref, ils font le traducteur.

Mais sinon, tu peux installer Lagrange pour surfer sur Gemini.

Et pour répondre à « un truc de plus » (qui est très pertinent), Gemini est pour moi justement l’occasion de butiner sans ouvrir mon navigateur web. Je cherche à m’en passer le plus possible pour retrouver ma concentration ;-)

ah ok ! sur un serveur , tu as donc plusieurs logiciels serveur qui peuvent lire plusieurs protocoles @gerald

on va enlever @ploum de notre discussion car je crois que masto fait trop de bruit pour lui

@bortzmeyer

@lrde

> on va enlever @ploum de notre discussion car je crois que masto fait trop de bruit pour lui

C'est dommage, il vient d'expliquer les choses bien mieux que moi ! ;)

@bortzmeyer

ah @ploum 😍 je croyais que notre conversation allait te déranger
Donc je peux installer Lagrange sur mon ordi si je n'ai pas de serveur ? @gerald @bortzmeyer

non non tu as raison, on continue avec nous 4 😀 @gerald @bortzmeyer

@lrde @gerald @bortzmeyer : bien entendu. Comme tu peux installer Firefox sans avoir de serveur web pour faire tourner ton propre site.

Mais je veux bien être retiré de la conversation, merci de penser à moi :-)

d'accord et merci pour ton apparition @ploum 🙂 @gerald @bortzmeyer

@lrde

> ah ok ! sur un serveur , tu as donc plusieurs logiciels serveur qui peuvent lire plusieurs protocoles

Voilà c'est un peu ça.
Tu as la machine (l'ordinateur) : le serveur physique.
Et les logiciels "serveurs".

Sur un serveur physique tu peux avoir un ou plusieurs "services" (donc logiciels serveurs). Ça dépend des moyens et de l'infrastructure.

@ploum @bortzmeyer, si vous ne voulez plus des notif', mais vous êtes bien plus compétents que moi ! ;)

@lrde Un logiciel serveur écoute les requête qu'on lui envoie sur un ou plusieurs ports (80 pour HTTP, 443 pour HTTPS généralement par exemple), et "sert" la réponse au logiciel client qui a envoyé la requête.

@gerald @ploum @bortzmeyer

@lrde

> Donc je peux installer Lagrange sur mon ordi si je n'ai pas de serveur ?

Oui ! Certainement !

Lagrange est à Gemini ce que Firefox ou Chrome sont au web.

C'est le navigateur (le "client") qui va te permettre d'aller sur "Gemini" et suivre les liens du type :

gemini://home.gegeweb.org/c_est_quoi_gemini.gmi

gemini://purexo.mom/blog/2020/12-01-reflexions-autour-de-gemini.gmi

gemini://gemeaux.bortzmeyer.org/

@lrde C'est d'ailleurs ce que j'essais d'expliquer sur mon billet pour un public non technophile…

Si tu pose la question, c'est que je n'y suis pas clair ! ;)

@gerald ce n'est pas ton article qui n'est pas clair
Je pense que beaucoup de gens vont être ravis de le lire
Mais cela fait appel à beaucoup de notions que je connais parce que j'en ai entendu parler avec vous ici
Mais cela reste des notions, pas des trucs que je comprends totalement.
C'est abstrait ! et l'abstrait demande de gros efforts de concentration. J'ai plein de bouts de connaissances grâce à vous et à toutes mes recherches mais il me manque toujours des petits morceaux de puzzle

@gerald
Et puis par exemple pour installer Lagrange
Comme souvent avec les logiciels c'est en Anglais
Quelquefois j'arrive à m'y retrouver sur github mais là j'y comprends rien
je crois que j'ai retrouvé la bonne ligne pour moi https://github.com/skyjake/lagrange/commit/46b609c9e8df1077a5e187fce0ba77c810aa71bf
Mais je ne sais pas quoi faire avec
Et puis peut être que ce n'est pas là du tout qu'il faut que je récupère les lignes de code à entrer dans mon terminal 😂

@lrde Je vais quand même essayer d'y expliquer ce qu'est un protocole (sur la version web) du coup.
Je crois que c'est ça qui manque.
En essayant d'être le plus imagé possible.

Si @bortzmeyer est d'accord pour aller y jeter un œil et vérifier que je ne raconte pas n'importe quoi… welcome !

@lrde
Tu es sur quel système ?
Linux, Mac, Windows ?

Sous Linux il faut le compiler, j'ai suivi ces instructions pour l'installer sur Linux sur un Rapberry.

Je peux t'aider au cas où.

Tu as déjà compilé des trucs en ligne de commande ?

tu veux bien essayer d'expliquer "Et pour l'instant il est possible d'utiliser son propre certificat auto-signé sans faire hurler le navigateur."
c'est quoi un certificat auto signé , c'est quand tu utilises ton serveur physique ?

@gerald @bortzmeyer

@gerald
je suis sous Ubuntu
c'est pour ça que j'ai cru que c'était la bonne ligne sur github 😀
quand c'était écrit "Use git-archive-all also in Ubuntu build "

Non, je n'ai jamais compilé ou alors j'ai pas su ce que je faisais 😀

@gerald c'est ce que je disais là https://mastodon.tedomum.net/@lrde/105487391256349007
comme c'est en Anglais, je ne sais pas ce qu'il me faut faire

@lrde

:D

Oui c'est coté serveur, de ton coté "client", tu n'en a que faire.
Le protocole "sécurisé" c'est une communication chiffrée qui utilise un "certificat" public et une clef privé. Je schématise, parce que techniquement je comprend pas tout non plus.
Ce certificat doit être signé par une "autorité" avec un autre certificat.

Pour le WEB l'autorité qui a signé le certificat doit être considéré comme de confiance par le navigateur (ou être indiqué comme confiance par toi).
Donc si tu signe toi même (coté serveur) cette autorité n'est pas reconnue.
Et Firefox ou Chrome disent « Attention on fait pas confiance ».
Donc on utilise (les pauvres) Let's Encrypt. Ou on paye (cher) une autorité reconnue.
Ça dépend du niveau de sécurité recherché.

Gemini permet de signer soi même le certificat (coté serveur) sans que le navigateur (Lagrange par exemple) dise "Attention je fais pas confiance au certificat".

@bortzmeyer

@lrde Ton lien pointe pas au bon endroit.

L'important c'est le README.

Commence par télécharger :
https://github.com/skyjake/lagrange/archive/v1.0.1.tar.gz

wget https://github.com/skyjake/lagrange/archive/v1.0.1.tar.gz

Puis

tar xvzf v1.0.1.tar.gz

Ensuite

cd langrande-1.0.1

Pour aller dans le répertoire, normalement c'est son nom.

@lrde

Si pas installé sur ta machine :

sudo apt install build-essential cmake pkg-config

C'est le pré-requis pour compiler.

Pouet précédent c'est l'étape 1. download and extract du readme

@gerald j'ai téléchargé le premier lien mais ensuite je ne comprends pas ce que tu dis
là je suis complètement perdue

@lrde

Quand tu auras téléchargé puis décompressé les sources.
Dans le répertoire des sources :

mkdir build
cd build/

-> créér le répertoire 'build' et se placer dedans.

puis :

cmake ../ -DCMAKE_BUILD_TYPE=Release

@lrde

T'as téléchargé comment ?
Depuis le terminal avec la commande wget ?

C'est une archive qu'il faut décompresser.
Avec la commande tar et les options 'xvzf' (le v, verbeux, est optionnel)
Tout ça dans le terminal

@gerald j'essaierai demain
là, je n'arrive plus à comprendre quoi que ce soit

@lrde

OK, si on y arrive ensemble, note, ça fera un tuto ! ;)

N'hésite pas à me pinguer.

@gerald non j'ai téléchargé avec le navigateur et j'ai décompressé l'archive ensuite
puis ouvert le readme
mais j'comprend rien !

@gerald 😍 je le ferai depuis mon compte lareinedeselfes
mais ça n'a pas beaucoup d'importance puisque tu y es, là bas aussi 🙂

@lrde OK.

Il faut que tu ouvre un Terminal et que tu aiiles dans le répertoire avec la commande cd.

Sous Ubuntu ça devrait être (copie/colle) :
cd ~/Téléchargements/lagrange-1.0.1

Je vais aller le faire sur une Ubunutu, je vais essayer de noter pour faire un tuto. ;)

@lrde ça n'a pas d'importance, du moment que tu ping @gerald !

C'est plus pratique depuis Pleroma ! ;)

@lrde Pleroma et Masto, ça se parle, c'est le fediverse ! ;)

@gerald j'y suis lareinedeselfes@lareinedeselfes-ThinkCentre-M82:~/Téléchargements/lagrange-1.0.1$

@lrde

Nickel :

mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release

Ensuite on va prendre les problèmes un par un ! ;)

@gerald ok il m'a demandé d'installer cmake
ce que j'ai fait
et j'en suis là
lareinedeselfes@lareinedeselfes-ThinkCentre-M82:~/Téléchargements/lagrange-1.0.1/build$

@lrde

Il faut relancer la dernière commande cmake, remonte dans l'historique avec la flèche du haut du clavier.

Ensuite si tu as des erreurs c'est qu'il manque des paquets. On les installera au fur et a mesure :

cmake ../ -DCMAKE_BUILD_TYPE=Release

@lrde

Il faudra peut être faire :

sudo apt install libunistring-dev libsdl2-dev

@lrde

Et peut être aussi

sudo apt-install libssl-dev

C'est pour télécharger les "header" des librairies avec lesquelles lier le binaire produit.

@gerald 🤔 c'est bizarre ce truc
-- Configuring incomplete, errors occurred!
lareinedeselfes@lareinedeselfes-ThinkCentre-M82:~/Téléchargements/lagrange-1.0.1/build$ put.log".

@lrde

Non, c'est nromal. Il manque une librairie.

Mais il manque la partie importante du message pour savoir laquelle ! ;)

@gerald c'est quoi ce put log

@lrde Tu t'en moques. ;)

Il doit parler quelque par d'un ficher xxx.h (.h) manquant.

@lrde J'ai pas eu ça…

Bon, je vais descendre sur la machine Ubuntu… et je fais les manips from scratch.
Je reviens… ;)

@gerald ou on fait ça demain , quelle heure t'arrangerait ?

@lrde Comme tu veux, je suis un lève tôt.
Si il fait pas trop moche je risque de pédaler le matin.

Je vais aller faire l'install sur une Ubunutu et je note toutes les étapes !
Comme ça je ferais un billet tuto. ;)

@gerald ben je reste comme ça je le fais en direct
je me fais une pause clope 😂

@lrde OK.

Si pas fait :
sudo apt install cmake libsdl2-dev libssl-dev libpcre3-dev zlib1g-dev libunistring-dev

Je descend sur la machine ubuntu…

@lrde
Bon… des taches ménagères m'appellent…

On peut voir ça plus tard ? ;)

@gerald
comme tout à l'heure il me proposait 2 solution pour installer cmake
je lui ai demandé d'installer l'autre proposition

@gerald oui, on reprend quand tu veux ! 😀

@lrde OK.
J'ai fini de vider et ranger le lave vaisselle, je descend sur l'ubuntu…
En éspérant avoir fini avant que ça crie « À TAAAABBBBLEEEEE !!!! » ! :D

@gerald 😀 quand ça criera à table j'irai faire de même ! 😉 je rallume mon terminal

@lrde

J'utilise pas snap. :/

Installe les dépendances avec ça :

sudo apt install cmake libsdl2-dev libssl-dev libpcre3-dev zlib1g-dev libunistring-dev

@gerald libssl-dev : commande introuvable
j'ai essayé sans le tiret et libssl : commande introuvable

@gerald en fait tout a l'air bon

@lrde J'ai la même erreur que toi.
Je pense qu'il faut installer depuis git, il doit manquer un truc dans l'archive.
Reviens dans ton répertoire Téléchargements :

cd ~/Téléchargements/

puis

git clone --recursive --branch release https://git.skyjake.fi/skyjake/lagrange

Si il le faut

sudo apt install git

puis relancer la commande précédente.

C'est indiqué dans le README qu'il manque un truc dans les archives...

@gerald
il redit que tout est bon

@lrde

Ensuite...

1. installation dépendances si pas fait :
sudo apt install cmake libsdl2-dev libssl-dev libpcre3-dev zlib1g-dev libunistring-dev

2.
cd lagrange
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
sudo make install

@lrde OK.

Alors la suite...

@lrde

Tu veux que je récapitule en récupérant depuis git ?
Je viens de l'installer.
Marche nickel.

Je vais avoir l'air con je sais pas faire une copie écran ! :D
Suis sous LXDE. Pas Gnome.

@gerald là c'est moche ! 😂

@gerald 😀

@lrde

Il te manque :

1. (si pas fait)
sudo apt install git

2.
git clone --recursive --branch release https://git.skyjake.fi/skyjake/lagrange

3.
cd lagrange
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
sudo make install

Normalement ça devrait le faire !

@gerald on dirait bien ! 😍

@gerald
je fais install the projet ou une des lignes en dessous ?
"Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/bin/lagrange
-- Installing: /usr/local/share/applications/fi.skyjake.lagrange.desktop
-- Installing: /usr/local/share/icons/hicolor/256x256/apps/fi.skyjake.lagrange.png
-- Installing: /usr/local/share/lagrange/resources.binary"

@lrde

Une foi terminé tu fais juste

sudo make install

(toujours dans 'build')

@gerald il me repropose differentes install

@lrde
tape
sudo make install

et te poses pas de questions ! :D

@gerald 😂 mais c'est ce que j'ai fait ! 😀

@lrde

Je récapitule toutes les étapes, dans un Terminal :

1. on installe les dépances :

sudo apt install build-essential cmake libsdl2-dev libssl-dev libpcre3-dev zlib1g-dev libunistring-dev

2. on se place dans Téléchargements :
cd ~/Téléchargements

3. on récupère les sources
git clone --recursive --branch release https://git.skyjake.fi/skyjake/lagrange

4. on se place dans le répertoire
cd lagrange

5. on crée le répertoire build et on se place dedans
mkdir build && cd build

5. on compile
cmake ../ -DCMAKE_BUILD_TYPE=Release

6. on installe
sudo make install

@lrde

Ah bah c'est fini alors.
Tu dois le trouver dans les applications.

Il te dis juste ce qu'il a installé et où. ;)

@gerald ah ok ! et oui, il est dans les applications 😍

@lrde

Yes ! \o/ 🍾

@lrde

Si tu veux faire un tuto, tu as toutes les étapes dans un de mes pouets précédents.

Tu viens de compiler et installer ton premier logiciel ! ;)

@gerald par contre je vais galérer pour l'utiliser , il est en Anglais uniquement

@gerald oui, mais grâce à toi (merci beaucoup ! ) et je ne saurai pas recommencer toute seule pour un autre logiciel 😂

@lrde

C'est pas compliqué.
C'est comme un navigateur.

Dans le champs où c'est écrit 'about:lagrange' c'est la que tu tapes l'url, par exemple :

gemini://home.gegeweb.org

@gerald oui, c'est ce que je pensais

@lrde

C'est presque toujours le même principe.

En général ça coince à cause de dépendances non satisfaites.
Il suffit de les installer.

C'est souvant moins galère sous Linux que sous FreeBSD ! ;)

@gerald mais à part new tab et quit je ne comprends pas bien ce qu'il y a entre les deux 😀

@gerald oui, le terminal te dis quand il lui manque des trucs
mais c'est le démarrage et la suite qui me manque à chaque fois 😂

@lrde

Open location :
Ouvrir une destination (aller à une url)

https://www.deepl.com/translator

pour traduire les termes.

Ça fonctionne comme un navigateur.
On s'y retrouve même en anglais.

Faut attendre que quelqu'un traduise...

@gerald et ben j'ai pu aller sur ton blog gemini
tu sais comment on conserve les url

@lrde

Le démarrage c'est toujours :

- télécharger
- décompresser
- aller dans le répertoire
- configurer
- compiler
- installer

Si c'est bien documenté, ça passe comme une lettre à la poste.

Et la majorité des devs sont sous Linux Debian et dérivé.

Bon... ça y est, à table ! ;)

@gerald j'ai trouvé comment mettre en favori

@gerald
c'est la bonne conscience de pinnocchio. wala.

@gerald Tes liens vers le site de @bortzmeyer et celui de @ploum ne sont pas bons, ils mènent à l'article de @Purexo

juste pour te dire que ça y est @ploum j'ai installé Lagrange sur mon ordi (grâce à l'accompagnement de Gérald.) Reste plus qu'à pouvoir t'y lire comme @gerald et @bortzmeyer
*On ne répondra pas à ce post pour ne pas polluer Ploum 😉

@Nasher

Merci c'est corrigé.
J'ai du merder dans les copier/coller en voulant aller trop vite.
C'est difficile de faire la même erreur (de ne pas la voir) avec le gemtext !

@bortzmeyer @ploum @Purexo

@gerald
Merci pour le partage

@Dyphiloptere De rien. :)