Salut à Toi au FOSDEM ce week-end

goffi 29/01/2019, 17:56 SàT projet libre jabber-xmpp planet-libre seenthis

Salut à Vous,

une petite note pour vous indiquer que je serai présent au FOSDEM et que j'y ferai 2 conférences:

  • « XMPP Beyond Instant Messaging » où je montrerai qu'XMPP est bien plus qu'un protocole de messagerie instantanée. Salle H.1309 (Van Rijn) dimanche à 9:25
  • « Salut à Toi: A Python Based Social Network And More » qui sera une présentation de l'écosystème Salut à Toi. Salle UD2.120 (Chavanne) dimanche à 16:00

Je serai régulièrement au « XMPP lounge », mais je compte aussi voir certaines conférences et autres stands, aussi n'hésitez pas à me pinguer sur le salon XMPP sat@chat.jabberfr.org (accessible également via ce lien) si vous souhaitez discuter et/ou une démonstration.

Salut à Toi est en cours de stabilisation, et la version 0.7 à venir verra l'arrivée de la nouvelle interface bureau/appareils portables (Android en particulier), du partage de fichiers avancé, des événements, de la base d'une forge décentralisée (tickets et « merge requests »), du chiffrement via OMEMO, etc.

À noter aussi l'arrivée d'un cadriciel (framework) web unique en son genre, puisqu'il permet de créer des sites naturellement décentralisés en liant XMPP et Python.

Au plaisir de vous voir !

Salut à Toi à la Pycon à Lille dès demain

goffi 03/10/2018, 09:44 SàT projet release libre GNU-linux jabber-xmpp planet-libre seenthis

Pour les libristes habitant près de Lille, je serai à la Pycon cette semaine avec 2 jours de sprint autour de « Salut à Toi », puis une conférence le samedi à 16:30.

Si vous n'allez pas à la Pycon (et même si vous y allez ;) ), on peut aussi se voir pour une petite bière dans le vieux Lille en soirée. Bref n'hésitez pas à me contacter si vous voulez parler décentralisation, réseaux « sociaux », XMPP et/ou politique !

Salut à Toi 0.7 alpha, contributrices, contributeurs, à vos claviers !

goffi 05/07/2018, 14:05 SàT projet release libre GNU-linux jabber-xmpp planet-libre seenthis

C'est avec plaisir que je vous annonce la sortie de la première version alpha de Salut à Toi 0.7. Cela permet d'une part de vous montrer l'état, les avancées et l'orientation du projet, mais aussi de faire un appel à la contribution. Je vais dans la suite de cet article vous présenter une partie des capacités de Salut à Toi, ainsi que vous expliquer briévement comme les utiliser.

Vous trouverez un lien vers un fichier .apk pour tester sur Android dans la section « Testez ! ».

Pour mémoire, Salut à Toi est un écosystème collaboratif, multi interfaces (web, bureau, appareils portatifs, terminal, ligne de commande), multi-plateformes, et multi-usages. Il permet de gérer vos communications, de vous organiser, de partager vos fichiers, etc. C'est aussi, et avant tout un projet engagé qui prend en compte l'impacte des nouvelles technologies sur nos vies, et qui cherche à stimuler le débat public.

Nous allons nous concentrer sur les interfaces Web, et bureau/appareils portatifs, car ce sont celles qui sont les plus susceptibles d'intéresser le plus grand nombre.

Interface web (appelée « Libervia »)

Libervia a entamé des changements très importants, avec l'apparition d'un cadriciel (« framework » en anglais) web.

L'idée, expliquée dans un billet de blog est de fournir les composants de base (comptes et authentification, permissions, commentaires, etc.) directement utilisables et décentralisés grâce à XMPP. On construit ainsi facilement des sites automatiquement décentralisés et fédérés.

Notez que tout est prévu pour la traduction dans différentes langues, mais que pour l'instant seul l'anglais est disponible. De l'aide serait grandement appréciée pour améliorer cela !

Voyons les fonctionnalités déjà disponibles :

Chat

capture d'une discussion avec le « chat » de Libervia

Probablement le plus évident, il y a une application de messagerie instantanée. Pour l'utiliser il faut cliquer sur « Chat », et vous connecter si ce n'est pas encore fait.

Vous arrivez alors dans un panneau indiquant les salons contenus dans vos marque-pages, il vous suffit de cliquer sur l'un d'eux, ou d'indiquer l'identifiant (jid) d'un nouveau salon. C'est pour le moment assez basique, vous pouvez toutefois entrer « /help » pour avoir accès à liste des commandes textuelles.

Blog

mon blog, qui tourne avec Libervia Une des fonctionnalités phares de SàT, et peu courante dans le monde XMPP (le seul client activement développé le permettant également étant Movim), est le blog (qui est donc décentralisé).

Un clique sur le menu vous amènera sur une page de « découverte » où vous pourrez voir vos contacts ayant un blog. Cliquez sur l'un d'eux pour le lire, ou indiquez un identifiant pour en lire un qui n'est pas dans vos contacts.

Forums

un forum décentralisé qui tourne sur XMPP

Fonctionnalité unique dans le monde XMPP, SàT propose un système de forums, qui permet en pratique d'organiser des discussions dans des catégories. Les forums étant en arrière plan la même chose que les blogs, il est possible d'utiliser un blog comme forum et vice versa.

La création de forums se fait par un ou une administrateur/ice en ligne de commande avec l'outil « jp » (voir ci-dessous).

Événements

la liste personnelle des événements

Autre fonctionnalité unique dans le milieu XMPP (et en décentralisé ?), SàT permet de créer des événements, et bien sûr d'y inviter du monde.

Comme pour les autres fonctionnalités, la page est prévue pour être simple à utiliser : vous avec un bouton « créer un événement », qui vous mène à un formulaire. Un nom, un lieu et une date plus tard (et éventuellement une photo pour le représenter), et votre événement est créé. Vous arrivez alors sur la page d'administration où vous pouvez indiquer les personnes à inviter.

Les événements sont pour le moment privés, uniquement vous et vos invités y ont accès, mais des événements publiques sont prévus.

un invité répond à la demande RSVP d'un événement

À noter qu'il est possible (mais pas encore depuis l'interface web) d'ajouter des champs arbitraires à vos événements, permettant par exemple de préciser ce que vos invités amènent à un pique-nique.

Partage de fichiers

le partage de fichier depuis le navigateur

Là on touche à une fonctionnalité utile au quotidien, et dans beaucoup de circonstances. Salut à toi permettait depuis longtemps de s'envoyer des fichiers, ou d'en déposer sur votre serveur, mais il s'agit ici de partager un ou des répertoires, ou de déposer des fichiers sur un serveur.

Tout ceci est expliqué dans un récent billet de blog, mais je vous donne tout de même 2 exemples pour bien comprendre :

  • vous êtes chez vous, vous venez de prendre une vidéo et des photos sur votre téléphone que vous voulez voir sur votre ordinateur. Vous avez installé Cagou, l'interface bureau/Android de SàT sur votre appareil et partagé votre répertoire photo. Depuis votre ordinateur de bureau, dans la partie « partage de fichiers » vous voyez votre appareil et pouvez télécharger directement la vidéo et les photos. La connexion se fera directement sur le réseau local d'appareil à appareil, vos fichiers ne transiteront pas par un serveur situé on ne sait où.

  • vous avez des fichiers que vous voulez accéder de n'importe où n'importe quand (des photos ou des documents de travail par exemple). Vous les mettez dans un répertoire virtuel sur votre composant de partage de fichier (une instance SàT également, voir plus bas), et vous y accédez aussi simplement que dans l'exemple précédent.

Notez que bien qu'avec Cagou la connexion se fait directement quand c'est possible, ça n'est pas encore le cas pour Libervia qui téléchargera d'abord le fichier sur le serveur avant de la fournir en HTTPS. La connexion directe nécessitera WebRTC qui est prévu pour la version 0.8.

Les permissions se gèrent très simplement : vous indiquez qui a le droit d'accéder à vos fichiers en quelques cliques.

Les fichiers passent pour le moment en clair (non chiffré), mais ceci ne devrait plus être le cas d'ici la version finale.

Albums photos

un album photo avec un commentaire

Basé sur la fonctionnalité précédente, un mode album photos permet de présenter un dossier qui ne contient que des photos avec une vue adaptée, et de le commenter.

Les permissions sont très utiles ici, permettant de ne laisser, par exemple, que votre famille visionner un album.

Il n'est pas encore possible d’accéder à un album depuis l'interface de Libervia, pour tester vous allez devoir changer l'URL à la main depuis le partage de fichiers (en remplaçant files/list par photos/album).

Tickets

les tickets de SàT, les premiers ont été importés de Bugzilla

Développé pour nos propres besoins, SàT permet désormais de gérer des tickets à la façon d'une forge logicielle. On est dans le classique ticket de suivi, rapport de bogue, tâche à faire, etc.

Les champs sont libres, il est ainsi très facile d'utiliser cette fonctionnalité pour tout type de listes : tâches à faire, mais aussi, par exemple, liste de courses.

Requêtes de fusion

un patch essentiel est en cours de revue

Dans la lignée des tickets, SàT gère également les « requêtes de fusion » (ou « merge requests » en anglais). Développé et utilisé en premier lieu pour le développement de SàT lui-même, ce système a l'avantage de ne pas être lié à un outil particulier (comme Git ou Mercurial). Il est actuellement utilisé avec Mercurial, mais il est possible de l'utiliser avec ce que l'on souhaite, et cela n'est pas réservé au développement de code logiciel.

Ces 2 dernières fonctionnalités font de SàT une forge décentralisée. Même si elle est encore basique, elle a l'avantage d'être simple d'utilisation, souple et facilement adaptable, et surtout il n'existe pas ou peu de forge décentralisées à l'heure actuelle (on peut sans doute compter Fossil, et peut être d'autres).

Encore une fois, l'arrivée de contributions permettrait d’accélérer les choses et d'en faire un outil très puissant.

Application

la partie dynamique, qui est en maintenance minimal et sera réécrite pour la 0.8

Pour conclure ce petit tour de Libervia, notons l'application qui vous amènera à une version entièrement dynamique, plus élaborée mais également plus difficile à utiliser, la version de base voulant être facile à prendre en main.

L'application web Libervia permet d'utiliser des widgets que vous pouvez déposer côte à côte, de faire du chiffrement de bout en bout (via OTR), ou de publier des billets de blog en mode simple ou WYSIWYG, avec la syntaxe qui vous convient (Markdown par exemple).

Il s'agit de l'application historique qui pour des raisons techniques n'est plus qu'en maintenance minimale et comporte un certain nombre de problèmes (comme le contact qui apparait 2 fois, visible dans la capture ci-dessus). Elle sera réécrite pour SàT 0.8, mais est laissée dans cette version en l'état pour ceux qui souhaitent toujours l'utiliser.

Cagou (bureau/Android)

Promise suite à notre campagne de financement, qui nous a permis de récolter un peu plus de 3000 €, Cagou est notre nouvelle interface de bureau et pour appareils Android. Elle se veut moderne, facile à utiliser, et puissante.

Son interface originale est inspirée de Blender, elle permet de diviser l'écran pour afficher plusieurs widgets en même temps. Cette interface a été pensée pour qu'on puisse l'utiliser même sans connaître cette capacité de division, tout en étant évidant à utiliser une fois celle-ci découverte.

Pour utiliser un widget, cliquez tout simplement sur l’icône en haut à gauche du widget en cours pour sélectionner un autre.

Pour le moment, 5 widgets sont disponibles : chat, liste de contacts, partage de fichiers, sélectionneur de widgets et paramètres.

Tout en haut, vous avez un menu (uniquement sur le bureau) et une zone de notification, ou les messages apparaissent quelques secondes (et sont visibles en entier en cliquant sur la tête de Cagou gauche). De l'autre côté, une autre tête de Cagou peut apparaître quand vous recevez des notifications nécessitant une action de l'utilisateur (nouveau contact par exemple, ou demande d'authentification, voir ci-dessous). Ainsi pas de popup qui vole le focus quand vous tapez un message ou autre.

Split

Originalité de Cagou, inspirée de Blender, il est possible de diviser l'écran à volonté en cliquant sur les zones avec 3 points (en haut et à gauche) puis en les faisant glisser. Si la barre apparaît en rouge, cela veut signifie que vous allez fermer la zone. Une image animée devrait rendre les choses plus claires :

démonstration des capacités de séparation des widgets (split) de Cagou

Vous pouvez ainsi vous organiser comme vous l'entendez, et surveiller plusieurs choses en même temps. À terme il devrait être possible de garder les dispositions pratiques pour les remettre en place facilement.

Chat

capture du mode « chat » de Cagou

Le chat devrait être relativement intuitif. La zone du haut indique le salon ou l'identifiant (JID) de la personne avec laquelle vous discutez. Il est possible d'entrer un autre identifiant manuellement pour changer de salon, par exemple entrez sat@chat.jabberfr.org pour venir sur le salon de Salut à Toi.

Toujours en haut, l’icône « cadenas » à droite (visible uniquement dans les conversations 1/1) vous permet de chiffrer de bout en bout la conversation, avec OTR uniquement pour l'instant (voir plus bas).

Si vous avez plusieurs conversations en cours, vous pouvez passer de l'une à l'autre en balayant l'écran avec votre doigt horizontalement (mouvement aussi appelé « swipe »). Seules les conversations non déjà visibles sur l'écran seront disponibles, et pour le moment elles sont dans un ordre alphabétique (il est fort probable que les conversations récentes soit disponibles en premier d'ici la version stable).

Enfin dans la zone du bas, outre la zone de saisie vous voyer un bouton + cerclé qui permet d'ouvrir le panneau d'envoi de médias. Sur bureau vous n'avez pour le moment que la possibilité de choisir un fichier, mais sur Android vous pouvez sélectionner/prendre une photo, une vidéo, sélectionner un fichier, ou encore enregistrer un message audio. Dans tous les cas, vous pouvez choisir si vous voulez téléverser le fichier sur votre serveur, ou l'envoyer directement à votre correspondant, sans passer par le serveur.

Transfert de fichiers

Le principe a déjà été expliqué pour Libervia, voici une animation montrant comment partager un répertoire sur Cagou :

partager un répertoire depuis Cagou

Comme vous le voyez, il suffit de faire un clique/appui long sur le répertoire ou fichier à partager, et de sélectionner les personnes qui y auront accès.

Si vous cliquez sur le bouton « share local files » dans la zone d'en-tête pour changer de mode et voir les appareils qui partagent. Vous verrez alors apparaître – comme sur Libervia – 3 zones : la première avec les éventuels composants de partage, la deuxième avec vos propres appareils (votre téléphone ou ordinateur de bureau par exemple), et enfin les appareils de vos contacts. Là encore, la zone de saisie permet de filtrer les appareils affichés.

voir les appareils qui peuvent partager des fichiers

Authentification sur un site externe

SàT est un projet qui pousse à l'exploitation des différentes possibilités de XMPP, et notamment l'authentification sur des sites externes. Le principe est de pouvoir vous authentifier sans créer de compte sur n'importe quel site en indiquant juste votre JID.

Démonstration en vidéo, grâce au site de démo mis en place par jnanar, l'écran sur la droite est un téléphone (capturé avec scrcpy):

s'authentifier très simplement avec XMPP

Vous pouvez très facilement intégrer cela dans votre propre site soit en utilisant le composant de Chteufleur (qui est d’ailleurs à l'origine de l'implémentation dans SàT, un grand merci à lui), soit en utilisant un serveur où c'est déjà en place (c'est pas exemple le cas sur jabberfr grâce aux GA – gentils admins – de ce site).

Notez bien qu'une fois ceci en place, dans votre site vous n'avez besoin d'effectuer qu'une seule requête HTTPS pour valider une authentification (et ça serait super qu'un lecteur fasse l'implémentation pour LinuxFr).

Contacts

Pas besoin de s'éterniser sur ce mode, mais il est bon de savoir qu'il permet d'ajouter un contact en cliquant sur le bouton idoine en haut. Un/une clique/touche long(ue) permet également de supprimer un contact.

Un clique simple va lancer le mode discussion avec la personne choisie.

Ligne de commande (JP)

Il y a beaucoup trop de choses nouvelles dans jp pour tout décrire ici.

Quelques informations utiles tout de même :

  • dans jp on met toujours les commandes puis les arguments (jp [commande] [sous-commande] --arg_1 --arg_2 --etc)
  • jp [commande] --help vous permet de savoir comment utiliser une commande
  • jp shell vous permet d'avoir une invite de commande REPL
  • il est possible d'avoir des commandes haut niveau et bas niveau. Par exemple pour le blog, vous pouvez avoir les billets d'un blog mis en forme en faisant jp blog get -s blogueur@quelquepart.ext -O fancy, ou le XML bas niveau avec jp pubsub get -s blogueur@quelquepart.ext -n urn:xmpp:microblog:0
  • beaucoup de commandes disposent d'un système de mise en forme avec --output (ou -O). ainsi jp blog get -s blogueur@quelquepart.ext -O json vous permet de retrouver les métadonnées d'un fil de blog en JSON
  • jp est capable de générer des sites statiques grâce à --output template
  • quand le générateur de site le supporte, vous pouvez directement utiliser l'URL d'un blog pour l'éditer. Par exemple, je peux éditer un de mes derniers billets de blog en faisant jp blog edit -u https://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpphttps://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpp est l'URL de la page générée en HTML. Je me retrouve alors avec mon éditeur de texte affichant le code de ma page d'un côté (dans la syntaxe de mon choix) et les métadonnées de l'autre. Notez que cela fonctionne avec les sites générés par Libervia, mais également avec Movim.

Petite démonstration du shell pour lire un blog :

lecture d'un blog depuis le shell (jp)

Testez !

Vous pouvez tester tout cela, les instructions d'installations sont disponibles (en anglais seulement, nous manquons de moyens pour traduire) sur le wiki en cliquant ici.

SàT (backend + jp (CLI) + Primitivus (TUI)) est disponible dans Debian experimental (merci à Robotux, Naha, Debacle et les autres empaqueteurs).

SàT et ses frontaux (jp, Primitivus, Cagou, Libervia) sont disponibles sur Arch Linux (merci à jnanar et Link Mauve)

Nous avons eu confirmation que SàT et Cagou fonctionnent sur Mac OS X (merci à xma), nous aimerions du monde pour tester également sur Windows, BSD*, ou autre.

Vous pouvez tester sur Android en cliquant sur ce lien depuis votre appareil (il faut avoir autorisé les installations depuis les sources externes).

Notez bien qu'il s'agit d'une version alpha, ce qui signifie :

  • que ça plante, le code n'est pas encore stable
  • que toutes les fonctionnalités ne sont pas finies, ou présentes
  • que ça n'est pas optimisé
  • que ça n'est pas poli (graphiquement, il ne va vous insulter si vous êtes gentil avec lui)

Ah, en parlant de fonctionnalité non encore présente, il y a de très fortes chances que le chiffrement de bout en bout avec OMEMO soit implémenté d'ici la version finale, grâce entre autres à la disponibilité d'un nouveau module Python (merci à Syndace, son auteur). Le chiffrement de bout en bout est déjà disponible depuis plusieurs années, mais via OTR uniquement jusqu'ici.

Participez !

Une dernière animation pour vous montrer la détection automatique de la langue, une fonctionnalité expérimentale :

détection de la langue, puis filtrage des messages

Arrêtons-nous là pour les fonctionnalités, mais nous n'avons pas fait le tour.

Comme vous le voyez, il y a de quoi s'amuser et il y en a pour tous les goûts dans ce projet. Et ça tombe bien, avec les grandes vacances, vous avez certainement du temps devant vous, idéal pour contribuer sur un projet unique et engagé (engagez-vous qu'il disait) !

Vous pouvez commencer, par exemple, avec ce tutoriel pour écrire un greffon qui fonctionnera avec tous les frontaux.

N'hésitez pas à passer sur le salon XMPP de SàT (sat@chat.jabberfr.org, aussi accessible sans compte via le web).

Si jamais vous n'avez pas le temps (les pique-niques à plage c'est bien aussi), un soutien sur Liberapay et/ou une adhésion à l'association nous aide.

Essayez de faire passer le mot autour de vous, le projet manque de visibilité et a besoin de vous. Si vous souhaitez héberger une instance, vous pouvez commencer à tester (dans une partie « expérimentale/non stable » de votre site), et à nous faire des retours. Nous cherchons aussi du monde pour nous aider à empaqueter partout où c'est possible.

Merci d'avance, et à bientôt !

E

edhelas 05/07/2018, 14:11

Tickets et « merge-requests » basés sur XMPP avec SàT

goffi 05/12/2017, 11:04 SàT projet nouveauté libre GNU-linux planet-libre seenthis

Beaucoup de travail a été effectué lors des derniers mois, me laissant peu de temps pour parler des nouveautés. Jetons un coup d'œil à la dernière.

Pour le développement de Salut à Toi nous ne voulons pas utiliser de logiciels propriétaires ou centralisés et nous utilisons Mercurial, aussi nous avons jusqu'ici été réfractaires à utiliser les plateformes actuellement à la mode. Avec les améliorations récentes de notre composant SàT Pubsub (vous pouvez lire – en anglais – l'article de jnanar pour plus d'infos), et de Libervia, notre interface web, il est devenu clair que notre vieille idée d'utiliser XMPP et SàT pour gérer les tickets était à portée de main, nous l'avons donc fait.

SàT est maintenant capable de gérer les tickets via XMPP, en utilisant pubsub. Il a de nombreux avantages à cela :

  • c'est décentralisé et fédéré, pas besoin de X comptes pour utiliser X gestionnaires de tickets. Vous pouvez également importer des tickets de projets tiers (par exemple des greffons pour votre projet) dans votre propre site web.
  • c'est standard : il est possible de retrouver ou gérer des tickets sur un serveur extérieur facilement, sans API propriétaire.
  • c'est extrêmement souple : n'importe quel champ peut être utilisé, et le mécanisme peut être utilisé pour toute liste (rapports de bogues, choses à faire, liste de courses, etc.).
  • étant basé sur SàT, c'est multi-plateformes
  • on peut utiliser des passerelles, pour par exemple intégrer de manière transparente les tickets d'autres services (par exemple Gitlab ou Github)

Le fonctionnement est basé sur pubsub avec une extension expérimentale (non standard pour le moment): les schémas de nœud qui permettent de spécifier une mise en forme des données (en utilisant les « data forms » qui devra être respectée pour chaque élément (chaque ticket). De cette façon, les tickets publiés par des clients tiers peuvent être vérifiés et validés. Pubsub a également un système de permissions qui permet d'avoir des collections de tickets publiques ou privées (des nœuds dans la terminologie pubsub). Les commentaires utilisent l'extension microblogage de XMPP (qui aurait plutôt dû s'appeler « blog »).

Mais ça n'est pas tout ! Une autre fonctionnalité a été implémentée par-dessus ça : les requêtes de merges (« merges requests »). L'idée ici et d'avoir un moyen de proposer des modifications/améliorations à un projet sans être lié à un outil particulier, c'est-à-dire que l'on peut les utiliser avec Mercurial, Git ou potentiellement n'importe quel outil. Encore une fois, nous profitons de la décentralisation, et nous pouvons avoir des collaborations/contributions en personnes sur des serveurs différents.

Ci-dessous vous avez une petite vidéo (en anglais) qui montre les requêtes de merge. On utilise jp (l'interface CLI de SàT) pour envoyer les modifications à un serveur. Par défaut, le serveur va essayer tous les gestionnaires de « merge requests » jusqu'à ce qu'il trouve lequel peut gérer le dépôt demandé. Il y a une petite couche autour des commandes pour faire les opérations de base (en particulier créer les données à exporter), puis les données et métadonnées sont mises en forme et envoyées sur le nœud pubsub. Pour le moment, seul Mercurial est implémenté, mais Git va bien entendu suivre, et peut-être un gestionnaire de base utilisant un diff pour les cas les plus simples.

Note : si vous voulez faire une « merge request » pour Salut à Toi sur https://bugs.goffi.org, il vous suffit de faire depuis votre répertoire de travail:

jp merge-request set

Bien sûr, la fonctionnalité est nouvelle et encore basique : il n'est pas encore possible de préciser les lignes du code auxquelles un commentaire se réfère, ou d'utiliser une mise en forme riche. Cela va bien sûr venir plus ou moins vite, mais si vous voulez accélérer les choses, eh bien, les « merge requests » sont les bienvenues ;).

Vous pouvez le voir en œuvre sur le gestionnaires de tickets de SàT

Pour celles et ceux qui sont à Paris, je serais au « Paris Open Source Summit » (POSS) demain et jeudi (au stand A2, « Salut à Toi »). Si vous voulez aider le projet, nous sommes sur Liberapay.

Bientôt d'autres billets sur les nouveautés dans SàT…

XMPP based tickets and merge requests with SàT

goffi 05/12/2017, 01:53 SàT projet nouveauté libre GNU-linux jabber-xmpp-en

Lot of work has been done in the past months, letting little time to talk about the novelties. Let's have a look at the most recent one.

For Salut à Toi development, we don't want to use proprietary or centralized software and we use Mercurial, so we have been reluctant to use current popular platforms. With the recent improvments of our SàT pubsub component (see https://blog.agayon.be/sat_pubsub.html), and of Libervia, our web frontend, it became clear that our old idea of using XMPP and SàT to handle tickets became close at hand, so we did it.

SàT is now able to handle tickets on top of XMPP, using Pubsub. There are many advantages

  • it's decentralized and federated, no need to have X accounts to use X tickets handlers. You can also import tickets from third party projects (e.g. plugins for your project) into your website.
  • it's standard: we can handle or fetch tickets in third party servers easily, without proprietary API.
  • it's very flexible: any field can be used, and the mechanism can be used for any list (bug tracker, TODO list, shopping list, etc.)
  • being based on SàT, it's usable on any platform
  • it can be used with gateways, allowing to use transparently tickets from other services (think about Gitlab or Github for instance)

The working is based on pubsub with an experimental addition: node schema which allows to specify a form (using data forms) which will be enforced on each item. This way tickets published by third party clients can be checked and validated. Pubsub offers permission mechanisms allowing to have public or private collections of tickets (nodes in pubsub terms). Comments are using the microblog (which really should have been called blog) feature of XMPP.

But that's not all! On top of that an other feature has been implemented: merge requests. The idea is to have a way to propose contributions in a agnostic way, meaning this can be used with Mercurial, Git, or potentially any tool. Once again we enjoy decentralisation here, and we can have contributions between people on different servers.

Below is a small video showing an example of merge request. We use jp (SàT's CLI frontend) to send a modification to a server. By default, the backend will try all registered merge requests handlers until it find one which can manage the given repository. There is a small wrapper around the command to do basic operations (notabily creating the data to export), the data and metadata are then formatted and send to the pubsub node. For now, only Mercurial is implemented, but git will definitely follow, and maybe a simple diff based handler for basic cases.

Note : if you want to do a merge request for Salut à Toi on https://bugs.goffi.org, you'll just have to enter from your working directory:

jp merge-request set

Of course the feature is new and it's quite rough: it is not yet possible to specify which lines of a patch we comment, or to use rich formatting. This will of course come soon, but if you want to have it faster, well, merge requests are welcome ;)

You can see it on our bug tracker.

For people in Paris, I'll be at Paris Open Source Summit (booth A2, "Salut à Toi") on Wednesday and Thursday. If you want to support the project, we are on Liberapay.

See you soon for an other post on SàT novelties…

Publiez sur votre blog XMPP depuis Libervia ou jp (SàT)

goffi 24/03/2016, 17:55 jabber-xmpp projet GNU-Linux planet-libre SàT seenthis Libre Tutorial Libervia_installation

Articles précédents de la série : Installer une instance de Libervia (SàT) en moins de 10 min, Configuration avancée du conteneur Libervia et Importer un blog Dotclear dans XMPP.

Pour ce dernier article de la mini série sur l'installation d'un blog XMPP avec Libervia, je vais vous expliquer comment publier sur le blog que nous avons mis en place. Ceci fonctionnera également si vous avez un compte Movim (testé), et devrait fonctionner avec Jappix (non testé).

Je vais décrire 2 méthodes : via Libervia, l'interface web, qui est graphique, et la deuxième, pour les utilisateurs avancés, qui se fait via jp, l'interface en ligne de commande.

D'abord quelques explications

Avec XMPP, les blogs sont diffusés en texte pur ou en XHTML, aucun autre langage de balisage n'est utilisé à l'heure actuelle.

Dans SàT, nous faisons la distinction entre billet de blog et microblog avec l'utilisation du titre : nous considérons comme billet de blog un article ayant un titre, et supposé être travaillé, tandis qu'un message court (ou pas, nous n'avons pas de limite artificielle de caractères comme d'autres) sera plus une pensée « sur l'instant », et n'aura pas de titre. À terme nous fournirons sans doute plusieurs flux Atom pour suivre soit la totalité des messages, soit uniquement les billets de blog ou de microblog. Pour le moment les flux diffusent la totalité des messages (ou uniquement ceux correspondant à une étiquette).

D'autre part, nous avons un système permettant d'utiliser n'importe quelle syntaxe pour rédiger un billet. Comme nous ne voulions pas rester bloquer sur telle ou telle syntaxe à la mode, nous permettons la conversion d'une syntaxe à une autre et publions le résultat final en XHTML.

Évidemment la conversion d'une syntaxe à une autre peut provoquer de la perte d'informations de formatage, mais en pratique ça fonctionne relativement bien, et nous comptons faire des améliorations par la suite notamment pour garder le brouillon dans la syntaxe d'origine.

Aujourd'hui, vous pouvez utiliser XHTML bien sûr, mais également Markdown (par défaut) ou la syntaxe wiki de Dotclear pour rédiger un article.

Enfin, tout est unicode avec XMPP, vous pouvez donc utiliser les caractères spéciaux que vous voulez.

Publication via Libervia

La méthode la plus simple pour publier. Dans l'interface de Libervia, sélectionner un « panneau » blog (le panneau que vous voyez à l'ouverture en est un), et cliquez sur la zone de saisie tout en haut. Par défaut vous êtes en mode microblog et en texte simple, il vous suffit de taper votre message et d'appuyer sur [Majuscule] + [entrée] ou de cliquer sur le lien en bas à gauche pour publier votre message.

publication d'un microbillet

Pour un billet plus avancé, vous avez le lien en bas à droite « switch to blog » (passer en mode « blog »). Vous allez ainsi accéder à une zone plus élaborée, avec possibilité de mettre un titre, des étiquettes (« tags ») ou de faire de la mise en forme. Par défaut la syntaxe Markdown est utilisée, mais il est facile de changer dans les préférences via le menu Settings/Parameters/Composition

publication d'un billet de blog

Enfin, notez la case à cocher « preview » (aperçu), qui permet de taper avec un rendu direct un peu comme sur un traitement de texte, fonctionnalité associée à l'acronyme barbare « WYSIWYG ». Voici ce que vous obtenez en cliquant dessus :

publication d'un billet de blog avec aperçu

Une fois satisfait du résultat, vous n'avez plus qu'à cliquer sur « Send message ». En cas d'erreur pas de problème, il est possible d'éditer le message quand vous voulez. En effet les 3 icones sur la droite permettent respectivement de répondre, modifier ou supprimer le message.

icones du message

Tout ce qui vient d'être dit s'applique également aux commentaires.

Les billets que nous venons de publier sont publics, visible par tout le monde y compris les personnes qui n'ont pas de compte XMPP. Mais, spécificité de SàT dans le monde XMPP, il est possible de ne publier que pour un groupe de votre liste de contacts. Pour cela il suffit de cliquer sur le groupe désiré, ou de faire un glissé/déposé de groupe vers la zone des widgets. Un nouveau panneau dédié à ce groupe apparaîtra, vous n'aurez plus qu'à écrire dedans comme précédemment. Il est ainsi facile de ne publier que pour ses amis, ses collègues ou sa famille.

Méthode avancée : publication avec jp

Passons maintenant à la méthode « avancée ». Ici il vaut mieux avoir une version installée normalement plutôt qu'utiliser l'image Docker, car vous pourrez utiliser votre éditeur courant avec sa configuration. Une alternative est de modifier vous-même l'image Docker de jp (salutatoi/jp) en installant votre éditeur favori et en le configurant.

Cette méthode utilise jp, l'interface en ligne de commande de SàT, et donc demande de savoir utiliser un shell, mais elle offre un avantage indéniable de rapidité et d'efficacité : en une commande vous êtes dans votre éditeur de texte favori en train de rédiger votre billet.

Cette commande c'est :

      jp blog edit

    

Une fois validée, vous allez voir votre éditeur s'ouvrir avec le contenu de votre billet dans la syntaxe renseignée dans vos préférences. Un deuxième fichier est créé, avec le même nom que le billet mais qui se termine par « _metadata.json », qui contient les métadonnées de l'article, c'est à dire les informations comme son titre, les étiquettes utilisées, est-ce qu'il faut autoriser les commentaires, etc. Si vous utilisez un éditeur comme Vim ou Emacs, ce deuxième fichier devrait s'ouvrir automatiquement à côté du contenu. Une option particulièrement utile est « publish », que vous pouvez mettre à « false » pour interdire la publication de l'article, évitant toute publication accidentelle tant que votre article n'est pas fini. Une fois satisfait, vous n'aurez qu'à supprimer la ligne et quitter votre éditeur pour voir votre billet publié.

Ci-dessous, une capture de cet article pendant que je le rédige sous Vim :

édition depuis vim

Si vous voulez utiliser un autre éditeur, il suffit de le spécifier avec la variable d’environnement EDITOR, voici par exemple comment éditer avec kate :

      EDITOR=kate jp blog edit

    

Il est également possible de spécifier la commande à utiliser dans sat.conf, avec l'option « editor » dans la section « [jp] ».

En plus de créer un nouveau billet, il est possible d'éditer un billet existant, ou de continuer un brouillon non publié. 3 mots clefs sont utilisables à l'heure actuelle :

  • new permet de créer un nouveau billet, c'est l'option par défaut et nous venons donc de l'utiliser

  • last édite le dernier billet publié, particulièrement pratique pour corriger une faute

  • current édite le brouillon en cours (billet avec la métadonnée « publish » mise sur « false »)

ainsi pour faire une mise à jour du dernier billet, il suffit d'entrer:

      jp blog edit last

    

Plutôt simple non ?

Prévisualisation

Passons la plupart des options pour indiquer titre ou étiquette — il vous suffit de taper « jp blog edit --help » pour les connaître — et attardons-nous sur l'option « --preview ».

jp est capable d'ouvrir le brouillon en cours et d'afficher une prévisualisation dans le navigateur par défaut, et il va le mettre à jour à chaque enregistrement du fichier.

Par défaut, un nouvel onglet sera ouvert à chaque enregistrement, pas très pratique. Il est cependant possible de mettre à jour l'onglet en cours, soit via D-Bus pour un navigateur comme Konqueror (qui a la bonne idée de permettre ainsi de rafraîchir la page), soit via un outil externe, « xdotool » qui permet de piloter une application sur un serveur X (il faut donc installer cet outil pour que cela fonctionne).

2 options dans sat.conf sont prévues pour contrôler la prévisualisation : blog_preview_open_cmd pour l'ouverture du fichier, et blog_preview_update_cmd pour la mise à jour. Ces 2 options demandent des commandes shell, dans lesquelles {url} sera substituées par L'URL du fichier (de la forme file:…) et {preview_file} sera substitué par le chemin vers le fichier de prévisualisation.

Voici la recette pour une prévisualisation automatique avec Konqueror (qdbus doit être installé), à mettre dans sat.conf section [jp] :

      blog_preview_open_cmd = konqueror {url}
blog_preview_update_cmd = /bin/sh -c "qdbus $(qdbus org.kde.konqueror\*) /konqueror/MainWindow_1 reload"

    

Et celle pour Firefox (ou autre, changez « Mozilla Firefox » par ce qui vous intéresse) :

      blog_preview_open_cmd = firefox -new-tab {url}
blog_preview_update_cmd = /bin/sh -c "WID=$(xdotool search --name 'Mozilla Firefox' | head -1); xdotool windowactivate $WID; xdotool key F5"

    

Vous pouvez maintenant tester avec jp blog edit --preview. Si vous avez oublié le --preview, vous pouvez lancer la prévisualisation après coup grâce à jp blog preview.

Éditer un billet déjà publié

Si vous voulez éditer un billet déjà publié (et autre que le dernier, sinon last suffira), vous pouvez entrer directement son URL XMPP. Ainsi, si je veux éditer le premier article de cette série, je n'ai qu'à faire :

      jp blog edit --preview "xmpp:goffi@goffi.org?;node=urn%3Axmpp%3Amicroblog%3A0;item=067646bd-9439-430a-98c2-c655f5a63e40"

    

Mais il y a encore plus simple ! Vous pouvez entrer directement l'URL HTTP(S), et si le client XMPP fournir l'URL xmpp: dans la page (ce qui est le cas de Libervia), jp retrouvera le billet. Ainsi je peux entrer directement :

      jp blog edit --preview "http://www.goffi.org/blog/goffi/067646bd-9439-430a-98c2-c655f5a63e40"

    

Oui ça semble assez magique, c'est la standardisation qui permet cette magie !

Conclusion

Voilà qui conclut cette petite série sur l'installation d'un blog XMPP. La dernière partie est clairement pour utilisateurs avancés, mais il semblait intéressant de la mettre pour montrer une partie des possibilités de SàT. Par la suite je ferai des articles de temps en temps quand une fonctionnalité intéressante aura été ajoutée.

Si vous avez installé un blog XMPP, que ce soit avec Libervia ou autre, n'hésitez pas à me contacter que je vous ajoute dans mes contacts (ou ajoutez-moi directement ! goffi@jabber.fr, ce blog est sur une autre adresse : goffi@goffi.org).

Les prochains articles — en dehors d'un épisode de « parlons XMPP » en attente de publication — parleront très probablement de l'avancement sur « Cagou », la future interface bureau/Android, promise suite au succès de notre financement participatif, à bientôt !

X

xavier 15/04/2016, 20:54

Je crois que, au dela de libervia, je trouve jp excellent !

SàT: quelques nouvelles en vrac

goffi 26/04/2016, 22:04 jabber-xmpp projet GNU-Linux planet-libre SàT seenthis Libre

Salut à vous,

j'ai assez peu de temps devant moi, alors je vais faire bref pour les quelques nouvelles sur notre avancement.

Déjà je voulais annoncer que nous ne sommes plus à plein temps sur SàT, Souliane et moi avons repris un travail salarié. Le rythme de développement s'en retrouve bien sûr réduit, mais reste relativement soutenu.

Le développement sur Cagou, notre prochaine interface bureau/appareils portables promise suite à notre financement participatif, est d'ailleurs en cours, il est possible de se connecter depuis, et il y a une gestion basique des widgets.

Voici une petite vidéo avec les premières images. La gestion des widgets est inspirée de l'excellente interface de Blender : l'idée est d'avoir à la base un seul widget que l'on peut changer en cliquant sur une icône (un widget pouvant être une conversation, un fil de blogs, des fichiers en partage, la liste de contacts, etc), et de pouvoir séparer l'écran en faisant glisser une barre. Ne faites pas attention à l’aspect graphique qui va changer (j'ai pris une barre du thème par défaut de Kivy pour le développement, mais ça va changer par la suite).

Mais ça n'est pas tout ! Un autre frontal est en cours de développement, destiné à Emacs le bien connu système d'expl éditeur de texte. Il répond au doux nom de « Sententia », et c'est Xavier Maillard qui s'est lancé dedans, et vous pouvez suivre son avancement (ou lui filer un coup de pouce *clin d'œil* *clin d'œil*) sur http://git.maillard.im/xma/sententia.
Une petite mise en appétit :

Première image de sententia

Il y a pas mal de développements en cours, mais je commence à fatiguer, alors je détaillerai une autre fois.

Enfin, pour ceux qui sont dans cette zone, nous serons Souliane et moi à la « Linuxwochen » ce samedi à Vienne (Autriche) pour présenter SàT : https://cfp.linuxwochen.at/de/LWW16/public/events/398.

À bientôt !

X

xavier 27/04/2016, 04:50

\o/ l'invasion est en marche ! :) (bon la capture est franchement moche, j'espere que les personnes qui utiliseront sententia auront plus de gout que moi :) ).

goffi 27/04/2016, 08:48

xavier: j'aime bien moi, notamment l'horloge à droite c'est pas mal :). J'attends la suite avec impatience…

X

xavier 27/04/2016, 11:15

Le premier commit vient d'etre envoye. Maintenant, reste a reprendre le brouillon de buffer et le mettre dans le fichier et d'envoyer tout cela ;) Ce soir, certainement.

Presentation of Libervia/Salut à Toi at Linuxwochen (Wien)

goffi 10/05/2016, 20:05 SàT projet libre jabber-xmpp-en

Hello,

a short message to give you the link to our talk explaining Salut à Toi and Libervia at Linuxwochen in Vienna (Austria), 2 weeks ago.
The talk is in english, and we do a live demo of an installation with docker images, and publishing to the blog graphically with Libervia or directly in console with Vim. Thanks to the Linuxwochen team for inviting us and organising this nice event!

Talking about Vim, a new Emacs frontend has been started by Xavier Maillard (screenshot below), so nobody is jealous ;)

We have also started working on Cagou, our new desktop/mobile device frontend.

For more details, you can come to talk in our room: sat@chat.jabberfr.org.

First image of Sententia, the new Emacs frontend:

first image of Sententia

Premiers jappements de Cagou

goffi 14/09/2016, 07:05 seenthis jabber-xmpp projet GNU-Linux planet-libre SàT Libre

Salut à vous,

Cagou commençant à prendre sérieusement forme, il est temps de faire un billet sur l'avancement.

Avant le début du développement de l'interface elle-même, des changements nécessaires ont été faits en particulier sur la gestion des messages. Outre la gestion des langues dont j'ai parlé dans des précédents billets, le plus important est que nous pouvons désormais changer l'état d'un message après réception, ou y faire référence. Ceci permet d'implémenter des fonctionnalités comme les accusés de réception, ce qui a été fait par une contribution de Chteufleur (merci :)). D'autres fonctionnalités qui attendaient comme la correction du dernier message vont bientôt pouvoir suivre.

Il était nécessaire de faire ce travail avant d'implémenter la messagerie instantanée sur Cagou, pour pouvoir partir sur de bonnes bases.

Ensuite il a fallu intégrer l'interface sous Kivy à SàT, et en particulier D-Bus et QuickFrontend, notre modèle pour faire des frontaux en Python.

Tout ceci s'est relativement bien passé, et voici une petite vidéo pour vous mettre en appétit :

Quelques explications maintenant.

Comme vous le voyez, l'interface peut-être divisée facilement. Cette idée est inspirée de l'excellente interface de Blender, et permettra de s'adapter facilement à un petit ou grand écran en choisissant le nombre de widgets et leur disposition.
Au lieu d'être un logiciel discret qu'on utilise uniquement quand on veut répondre à quelqu'un, Cagou est une interface qui s'utilise principalement en plein écran, avec une disposition adaptée à la situation et les outils importants directement visibles (si la taille de l'écran le permet).

Autre point important, la liste de contacts n'est pas l'élément central comme c'est souvent le cas dans les logiciels de messagerie. Vous pouvez y accéder en sélectionnant le widget, voire la mettre sur le côté pour reproduire le comportement traditionnel, mais elle n'est pas affichée par défaut et n'est pas indispensable.

sélection de widget

Tous les widgets sont des greffons, a terme il devrait être possible d'en télécharger, ou de changer complément le fonctionnement d'un widget de base. Comme effet de bord, et surtout grâce au travail de l'équipe derrière Kivy, Cagou sera une plate-forme qui permettra d'échanger facilement des scripts Python sur Android (reste à voir comment on va gérer les permissions).

En ce qui concerne les notifications, le fonctionnement va être différent sur bureau et sur les plates-formes qui ont déjà un système de notification (comme Android). Dans ce dernier cas, le système de la plate-forme va être utilisé.
Sur bureau, un en-tête spécifique est utilisé. 2 icônes de Cagou (merci à Muchoslava pour ses contributions) peuvent apparaître : une à gauche pour les notes (c.-à-.d les messages court qui ne s'affichent que quelques secondes), et une à droite pour les notifications plus importantes, nécessitant l'action de l'utilisateur.
Un clique sur l’icône de gauche permet d'afficher les 10 dernières notes, et un sur l’icône de droite affiche la notification importante suivante.

Ceci a été pensé pour éviter les popups, ces dernières ne sont affichées que suite à une action de l'utilisateur, et n’apparaissent pas d'elles même si un quelconque événement les déclenche.

exemple de notification

Les menus ont également été implémentés, ils apparaissent en haut sur bureau. Sur petits écrans (téléphones), ils ne seront sûrement visibles que suite à l'appui de la touche idoine.

Grâce au fonctionnement de Salut à Toi, ceux-ci permettent déjà de faire des actions de base comme ajouter ou modifier un contact et avancées comme piloter son serveur.

Enfin le lancement d'une conversation peut se faire de plusieurs manières. On peut en commencer une en cliquant sur un contact dans le widget « liste de contacts », ou en tapant son jid dans un widget « chat » (il devrait rapidement être possible de taper quelques lettres pour avoir les suggestions). Les conversations ne se ferment pas quand on change de widget, on peut accéder aux conversations en cours en faisant passer son doigt (ou sa souris pendant un clique) rapidement vers la droite ou la gauche, cf. la vidéo ci-dessous. Il sera bientôt possible de les fermer via un menu dédié.

Voilà l'état des lieux actuel. Il y a déjà eu beaucoup de travail, et l'interface commence à être vraiment utilisable. Côté bureau le plus gros est fait, il s'agit maintenant d'adapter l'interface aux fonctionnalités (afficher l'accusé de réception par exemple), et à faire de nouveaux widgets. Un gros morceau reste toutefois l'affichage du contenu HTML, vu que ça n'est pas géré de base par Kivy (mais il y a différentes solutions possibles).

En ce qui concerne Android, il va y avoir une partie qui risque d'être un peu difficile pour faire le port, mais je ne m'inquiète pas plus que ça.

J'envisage également de faire un port sur Ubuntu Touch, j'ai commandé à cette fin une tablette d'occasion qui devrait me permettre de l'installer (ce n'est pas une promesse, juste une éventualité).

Ah et bien sûr, Cagou va profiter des fonctionnalités de SàT, y compris le chiffrement de bout en bout (OTR pour le moment, mais OpenPGP est envisagé pour la 0.7, et peut-être OMEMO également).

Petite note pour les programmeurs : une fois la prise en main passée (qui n'est pas très difficile), j'apprécie beaucoup travailler avec Kivy, c'est souple, agréable à utiliser et ça fonctionne jusqu'ici très bien, félicitation aux équipes derrière.

Je conclus sur une bouteille à la mer : c'est un travail absolument énorme de travailler sur SàT, et à l'heure actuelle je suis pratiquement seul dessus, et en plus de mon emploi salarié. Le projet avance toujours à bon train, mais j'ai besoin d'aide. La base de code est importante, mais il n'est pas insurmontable de s'y mettre : Chteufleur mentionné plus haut a pu rapidement écrire des greffons et a fait les implémentations des XEP-0070 et XEP-0184.

Il est aussi possible de contribuer en dehors du code : empaquetage pour des distributions, tests, graphismes, traductions, installation de serveurs, etc. Contribuer à une bibliothèque utilisée par SàT (comme l'implémentation de XMPP dans Twisted ou Kivy) est également très utile.

Au passage, je rappelle à ceux qui ont participé à la campagne de financement, qu'ils peuvent nous contacter sur « contact chez salut-a-toi point org » pour réclamer leur contrepartie, ou la demander plus tard s'ils préfèrent.

À très bientôt pour la suite :)

Cagou: XMPP based social network on its way to reach your desktop and Android

goffi 14/09/2016, 20:56 SàT projet libre jabber-xmpp-en

Hi to you,

It's time for a blog post on Cagou development.
Cagou is the new desktop/Android frontend for "Salut à Toi" (SàT), the full-featured social network based on standards (XMPP) and with a strong emphasis on ethics.

This frontend is using the very nice Kivy framework, and is already usable on desktop.

Let's see a video on the current state:

As you can see, the interface can be divided easily. This idea is inspired by the excellent Blender interface, and make it easy to adapt to a small or big screen by choosing the number of widgets accordingly.
Instead of being a discreet software that you'll use only when you want to answer to somebody, Cagou is an application which should be used full-screen, with a layout suiting the current needs.

Other important point: the contact list is not the central element (as it is usually in instant messaging software). You can access it by selecting the widget, or put it on the side to simulate traditional layout, but it is not visible by default and you can spend a whole session without using it.

widget selection

About notifications, it will be slighly different on desktop and on platforms with their own notification system (like Android). In the later case, the native way will be used.
On desktop, a specific header is used. 2 cagou icons (thanks to Muchoslava for its contributions) can appear: one on the left for notes (i.e. short messages which will automatically disappear), and one of the right for more important notifications, needing attention from the user.
A click on the left icon will show the last 10 notes, and one the right one show the next important notification.

This was made to avoid popups: they are displayed only after an interaction of user, and will not appear all of a sudden while you are writting a message.

notification example

Thanks to the architecture of SàT, menus are already available with a couple of useful actions.

There are several ways to start a chat: you can click on an item in the contact list, or enter a jid (XMPP identifier) in a chat widget.
Discussions are not closed when you switch widget, and they can be later accessed by swiping the current one (see video below).

There have been a lot of work done and the interface starts to be really usable. Concerning the desktop the greatest part is already finished, the most important remaining thing is to adapt interface to features (e.g. displaying of delivery reciept) and to make new widgets.

The other big thing to cope with would be displaying of HTML content and of course the Android port. An Ubuntu touch port is an eventuality.

And for those who wonder: Cagou will as well benefit from end-to-end encryption (for now OTR, but OpenPGP is planned for next release, OMEMO is considerated), and other SàT features

The project is still in active progress, but it is really demanding. If you can contribue in any way – code, distributions packages, tests, graphics, translations, etc. – please contact us by any mean shown on our website.

Last but not least, we reminds all of the Aziruka contributors of the crowdfunding campaign, that they can claim their counterpart if not done yet (or request it later).

See you soon :-)