Show newer
Cedric boosted
Cedric boosted

In this version just released I contributed with new features related to compressed and fixtures . 🗜️

I've explored into the topic and produced some sample in this article. 👇

🦄 🐍

paulox.net/2021/04/06/django-3

Cedric boosted
Cedric boosted
Cedric boosted
Cedric boosted
Cedric boosted
Cedric boosted
Cedric boosted
Cedric boosted

I've been working on an example website/webserver implementation for #haskell programmers, using #wai and #warp. This proof of concept will serve as a basis for several of my own applications.

I'm making it available as #FOSS:
git.sr.ht/~aev/example-haskell

Cedric boosted
Cedric boosted
Cedric boosted

Aujourd’hui je voudrai vous présenter Gemini, un petit espace sur le Web qui  est encore assez nouveau. Peut-être le connaissez vous déjà. Dans ce cas, passez votre chemin. C’est un billet bâclé de toute façon.

Ainsi Gemini est un nouveau protocol Internet permettant d’accéder à du contenu de type “text/gemini”. C’est assez ressemblant à Markdwown. “text/gemini” est un sous-ensemble du media de type “text” avec un charset par défaut UTF-8. Il est uniquement possible d’afficher un lien par ligne afin d’encourager les structures sous forme de liste. Les lignes sont très importantes et ont un type (par exemple les lignes de texte ou une ligne pour un lien). Les trois premiers caractères d’une ligne permettent d’identifier le type d’une ligne sans ambiguïté. Je vous renvoie à la documentation pour les détails. C’est très intéressant. Il faut la lire.Avec Gemini il n’y a donc pas de contenu HTML. Mais non plus pas de JavaScript, pas de cookies, pas de session, pas de headers dans les requêtes et pas de méthode POST (pour soumettre des formulaires). Alors comment fait on pour s’authentifier à un service ? Et bien on utilise la fonctionnalité de certificat client de TLS. Il est donc important d’utiliser un bon navigateur. Personnellement, j’utilise Lagrange. La capture suivante est bon un exemple.

Si vous essayez d’aller à cette adresse vous verrez qu’il n’y a pas de formulaire d’authentification. Il suffit de se générer un certificat client TLS en cliquant sur l’icône juste à gauche de la barre de navigation. Vous pourrez alors choisir un CN (Common Name), une date d’expiration et le serveur pour lequel votre certificat sera utilisé. C’est donc du self-signed. Par la suite le navigateur présentera automatiquement ce certificat au serveur. Concernant ce service – gemreader, un agrégateur de nouvelles – vous n’aurez même pas besoin de vous créer un compte. La porte vous est ouverte pour autant que vous ayez généré votre certificat. Aucune page d’authentification.

La sécurité repose sur le principe de TOFU, Trust On First Use. Voici un exemple d’implémentation de TOFU d’un client Gemini vraiment sympa. Basiquement, c’est comme lorsque vous accepté une clé publique d’un serveur dans votre fichier ~/.ssh/known_hosts. Ce fichier sert à vérifier l’identité d’autres systèmes (qui sont déjà connus). C’est un principe ancien, simple et efficace. Et surtout qui va à l’encontre du modèle des PKI qui a, il faut l’avouer, certains défauts. Mais ce n’est pas le sujet. Voici juste un extrait de la documentation sur ce point:

Clients can validate TLS connections however they like (including not at all) but the strongly RECOMMENDED approach is to implement a lightweight “TOFU” certificate-pinning system which treats self-signed certificates as first- class citizens.”

C’est assez clair.

Alors maintenant la question: y-a t’il quelque chose à lire dans ce coin de l’Internet ? J’ai un peu donné la réponse au début. Ce protocole est jeune, donc ne vous attendez pas à des milliards de serveurs. Mais cependant, la communauté semble assez dynamique et il est vrai que cet espace ne cesse de grandir.

Taille de l’espace Gemini dans le temps.

Ce graphique provient de Wikipedia, mais je ne peux faire de référence avec un lien hypertexte. Vous avez qu’à chercher.

J’aime beaucoup lire des pages Gemini. Elles sont épurées et c’est vachement agréable. On peut trouver des choses assez intéressantes. Parfois, même souvent, un peu décalées (question de point de vue, me direz vous). Et pas seulement d’auteurs avec des profils très techniques. Également des artistes. J’ai trouvé quelques blogs sympas. C’est rigolo de trouver des blogs actifs et flux de nouvelles. Mais ne vous attendez pas à trouver des photos de chats, de licornes ou de seins. Désolé. Par contre, il n’y a aussi pas de publicité et pas de tracker.

Bref, si vous voulez tester. Je vous invite à le faire. Cherchez un navigateur qui vous convient.

Si vous désirez essayer un serveur, je ne peux que vous conseiller gmnisrv. Super simple à installer et à configurer. Il gère ce que l’on pourrait appeler des hôtes virtuels ainsi que la génération de certificat TLS.

# Space-separated list of hosts listen=0.0.0.0:1965 [::]:1965[:tls] # Path to store certificates on disk store=/var/lib/gemini/certs# Optional details for new certificates organization=gmnisrv user[cedricbonhomme.org] root=/srv/gemini/cedricbonhomme.org[newspipe.org] root=/srv/gemini/newspipe.org

Et c’est tout. Lorsque le serveur est exécuté avec ce fichier de configuration, les certificats pour ces deux “virtualhosts” (je ne sais comment appeler ceci…) seront générés dans le store. Les chemins définis dans les variables root sont des dossiers où il y aurait par exemple un fichier index.gmi. Donc dans un format proche de Markdown.

J’ai testé le serveur gmnisrv en dix minutes, sur localhost. Ne vous étonnez pas de voir bientôt mon espace dans le Gemini Space. Et aussi quelques modifications dans Newspipe.

Sachez aussi que curl supporte Gemini. Oui, vous avez bien lu. curl supporte Gemini. J’adore encore plus curl.

À bientôt dans le Gemini Space.

#gemini #internet #protocol #tls #tofu

https://blog.cedricbonhomme.org/2021/03/13/gemini/

Cedric boosted
Cedric boosted
Show older
Fosstodon

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.