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 !

SàT news: control your media player from SàT + OMEMO

goffi 20/09/2018, 06:04 jabber-xmpp-en SàT project release libre GNU-linux

Time is running so fast that I can barely find some to write about the advancement of Salut à Toi, and there's a lot to say.

I'll be short this time (no more long list of features like alpha release ;) ).

If you are following SàT for long time, you may remember the experiment to have an universal remote control, and the demonstration with VLC.

Well, this is now implemented in a cleaner way, and it's user friendly. With Cagou running on your mobile device, it's quite useful as you can see in the video below.

Note: I'm testing Peertube to diffuse SàT demo videos, you can also see the video on the instance I'm trying.

If you have already SàT running on your desktop, all you have to do is run your media player (VLC for instance). Then on Cagou click on the new "remote control" icon, and you should see an icon for your media player. Note that this is working only on GNU/Linux (and probably *BSD) as it is relying on D-BUS which is not available everywhere.

The other thing to mention is that OMEMO support is now available in SàT (thanks to the work of Syndace on python-omemo, and his prompt reactions to feedback). It's not fully finished yet: fingerprint management is missing, encryption is only available on one2one conversations, and it's not yet available on Android, but the biggest part is done and working on desktop.

Note: this video is also available on Peertube

That's it. I'll publish a new alpha release in a couple of days. The list of features to implement before release become narrow, stabilisation phase should start soon.

Once again help is needed for packaging (Debian, Arch, or other GNU/Linux distributions, Docker, etc.), testing/packaging on many platforms (*BSD, Windows and Mac for instance), and would be welcome for development too. Also we have a very low visibility, don't hesitate to shout out loud about the project :).

E

errormovim 04/12/2018, 21:07

Salut à Toi 0.7 alpha: contributors, take your keyboards!

goffi 05/07/2018, 20:01 jabber-xmpp-en SàT project release libre GNU-linux

It's my pleasure to announce the release of the first alpha version of Salut à Toi 0.7.

This is the occasion on one hand to show the state, advancement and direction of the project, and on the other hand to launch a call for contributions.

In this article I will show you a part of Salut à Toi capabilities, and explain briefly how to use them.

You'll find a link to an .apk file to test Cagou on Android in the "Test it!" section.

As a reminder, Salut à Toi is a collaborattive ecosystem, which is multi-frontends (web, desktop, mobile devices, terminal, command line), multi-platforms, and multipurpose. It let you handle your communications, organise yourself, share your files, etc. It is also, and above all, an activist project which think about the impact of new technologies on our lives, and which tries to stimulate public debate.

We'll concentrate on the web and desktop/mobile frontends, because those are the ones which will most probably be of interest to the mass.

Web frontend (named "Libervia")

Libervia has seen major changes, with a new web framework.

The idea, which has been explained in a blog post is to offer base components (account authentification, permissions, comments, etc.) ready-to-use and decentralised thanks to XMPP. This way we easily build website which are automatically decentralised and federated.

Please note that everything is prepared for translation, but for now only English is available. Help would be much appreciated to improve on that!

Let's check the available features:

Chat

screenshot of a "chat" discussion in Libervia

Let's start with the most obvious, there is an instant messaging page. To use it, you just have to click on "chat", et to log in if it's not already done.

You'll land on a panel with the rooms in your bookmarks, you just have to click on one of them, or to specify an identifier (jid) of a new room/contact.
It is for now quite basic, but still you can enter "/help" to check textual commands.

Blog

my own blog, powered by Libervia

One of the flagship features of SàT, really rare in XMPP world (the only actively developed other client implenting it being Movim), is the blog (which is then decentralised).

A click on the menu will bring you to a "discover" page where you'll find your contacts with a blog. Click on one of them to read, or specify an identifier to read a blog which is not in your contacts.

Forums

XMPP powered decentralised forums

Unique feature in XMPP world, SàT propose forums, allowing to organise discussions in categories. Because forums are under the hood the same thing as blogs, it is possible to use a blog as forum and vice versa.

The addition of new forums is done by an administrator using command line tool "jp" (see below).

Events

personal list of events

Other feature not seen elsewhere in XMPP (and in decentralised software?), SàT allows you to create events, and of course to invite people.

As with other features, the page is thought to be easy to use: you have a button "create an event" which bring you to a form. A name, location and date later (and optionally a picture to associate), and your event is created. You'll then land to an admin page where you'll have the possibility to invite people.

Events are private for now, only your guests and you have access to it, but public events are also planned.

a guest is answering to an event RSVP

Please note that it's possible (but not yet from the web interface) to add arbitrary fields to your events, for instance to let your guest specify what they'll bring to a picnic.

File sharing

sharing file from browser

Here we are talking about a feature useful daily, and in many circonstances. Salut à Toi has long been able to send files, or to upload them on your server, but we are talking here about sharing one or many directories, or to upload in an advanced way on a serveur component.

All of this is explained in a recent blog post, but let me add 2 use cases to understand well:

  • you are home, you've just taken a video and some photos on your phone that you want to get on your computer. You have installed Cagou, the desktop/Android frontend of SàT on your device and already shared your photo directory. From your desktop computer, in the "file sharing" mode you see your device and you can directly download the video and the photos from there. The connection will be done directly on your local network, from device to device, and your files will not go throught a external server located whoever knows where.

  • you have files that you want to access at any time from anywhere (pictures or working documents for instance). You put them in a virtual directory on your file sharing component (a SàT instance too) and you can access it as simply as for the previous example.

Note that while with Cagou the connection is done directly when possible, it's not the case for Libervia which will first download the file on the server, before taking it throught HTTPS. WebRTC will be needed for the direct connection, and that's planned for 0.8 release.

Permission are handled easily: you specify who can access your files in a couple of clicks.

Files are transfered in clear for now (unencrypted), but this should not be the case anymore once finale release is here.

Photos albums

a photos album with a comment

Based on previous feature, a photos album mode display a directory containing only photos with adapted view, an with comments.

Permissions are really useful here, allowing to let, for instance, only your family see an album.

It's not yet possible to access an album from the interface of Libervia, to test it you'll have to change the URL by hand from the file handling page (by replacing files/list by photos/album).

Tickets

SàT tickets, first ones have been imported from Bugzilla

Developed from our own needs, SàT now handles tickets in pretty much the same way as a code forge. This is classical issue tracking, bugs report, tasks to do, etc.

Fields are free, it's really easy to use this feature for any kind of list: TO-DO tasks, but also, for instance, shopping lists.

Merge requests

a major patch is being reviewed

In the same spirit as tickets, SàT also handle "merge requests". Developed and used primarly for SàT itself, this system has the benefit or not being tied to a specific tool (like Git or Mercurial). Il is currently used with Mercurial, but it is possible to use it with whatever we want, and I'm not only talking about software code here.

Those 2 features means that SàT is a decentralised code forge. Even if it's still relatively basic, it has the benefit of being easy to use, flexible and adaptable. Furthermore there are only a few decentralised code forge at the moment (we can probably count Fossil, maybe some others).

Once again, contributions would accelerate things and would permit to have a very powerful tool.

Application

the dynamic part, which in under minimal maintenance and will be re-written for 0.8

To conclude this small tour of Libervia, we have to mention the application which is an entirely dynamic page, more elaborated but also more complicated to use (one of the main base version goal is to be easy to use).

Libervia web application allows to use widgets that you can drop next to each other, to do end to end encryption (OTR), or to publish blog post in simple or WYSIWYG mode, with the syntax you like (Markdown for instance).

It's the historic application which, for technical reasons, is now under minimal maintainance and have a few issues (like the contacts which can appear 2 times as seen in the screenshot above). It will be re-written for SàT 0.8, but it's let in place in this release for people who want to use it.

Cagou (desktop/Android)

Promised after the success of our crowfunding campaign, which allowed us to get a bit more than 3000 €, Cagou is our new frontend for desktop and Android devices. Its goals are to be modern, easy to use, and powerful.

Its original UI is inspired from Blender, and let split the screen to show several widgets at once. This UI has been thought in a way that it can be used even without knowing this split capacity, while being straightforward to use once the feature has been discovered.

To change mode, you just have to click on the top left icon.

For now, 5 modes are available: chat, contacts, file sharing, widget selector, and settings.

On the very top, you have a menu (only on desktop), and a notification zone, where messages appear for a few seconds and are visible entirely when clicking on the head of the left Cagou. On the other side, an other Cagou head can appear when you get notifications needing a user interaction (new contact for instance, or authentification request – see below –). This way, no popup will steal your focus while you are writing a message or doing something else.

Split

It is possible de split the screen as much as you want by clicking on the 3 dots area (on top and left borders), and then moving your mouse/finger. If the bar is red, this means that you'll close the area.

Here is a small animation to make things more clear:

demo of Cagou's widget split ability

You can organise the way you want, and monitor several things at the same time. In the future, it should be possible to keep handy widgets organisations so you can re-use them easily.

Chat

Cagou "chat" mode screenshot

The chat should be relatively intuitive. The top area show the current room or the identifier (JID) of the person you're talking to. It is possible to enter an other identifier manually to change room. For instance you can enter sat@chat.jabberfr.org to come on Salut à Toi room.

Still on the top area, the "padlock" icon on the right (only visible in 1/1 discussions) allows you to encrypt the conversation end to end, with OTR only for now (see below).

If you have several discussions at the same time, you can switch from one to the other by swiping your finger horizontally. Only discussions not already visible somewhere on the screen will be available, and for now they are in alphanumeric order (most certainly recent discussions will be available first when stable release will be out).

Finally, in the bottom area, in addition to the text input, you can see a + button with a circle which allows you to open a media transfer panel. On the desktop for now you can only select a file from your file-system, but on Android you can select/take a picture/video, a file or record an audio message. In every cases you can choose if you want to upload the file on your server, or send it directly to your contact, without transiting by the server.

file sharing

The principle has already been explained for Libervia, here is an animation showing how to share a directory with Cagou:

sharing a directory from Cagou

As you can see, you just have to do a long click/touch on the directory or file to share, and to select people which will have access to it.

You can click on "share local files" button, in the header zone, to change mode and see the device which are sharing. You'll then see – as with Libervia – 3 areas: the first one with sharing component, if any, the second one with your own devices (your phone or desk computer for instance), and finally the devices of your contacts. Once again, the input area let your filter devices to show.

see devices which can share files

Third party website authentification

SàT is a project which push the use of XMPP in every directions, and this include authentifying on third party websites. The idea is to be able to authenticate yourself without having to create an account on any website just by giving your JID.

Here is a video demo, thanks to the demo website made by jnanar, the screen on the right is a phone (displayed thanks to scrcpy):

super easy authentication with XMPP

You can implement this in your own website either by using Chteufleur component (Chteufleur is actually the original implementer of the feature in SàT, many thanks), either by using a server where it's already available (it's for instance the case on jabberfr, thanks to the admins of this server).

Please note that once it's in place, in your website you just have to do a single HTTPS request to validate authentication.

Contacts

No need to take much time on this mode, but it's good to know that you can add a new contact there (with the top button), or delete an existing one with a long click/touch.

A simple click will launch the chat mode with the selected contact.

Command line (JP)

There are far too many new things in jp to describe everything here.

Some useful informations anyway:

  • in jp we always put commands first, then arguments (jp [command] [subcommand] --arg_1 --arg_2 --etc)
  • jp [command] --help tells you how to use a command
  • jp shell let you use a REPL shell
  • it is possible to have high level and low level commands. For instance with the blog, you can have blog posts in a nice way by using jp blog get -s bloger@somewhere.tld -O fancy, or the raw XML with jp pubsub get -s bloger@somewhere.tld -n urn:xmpp:microblog:0
  • many commands have an output mechanism with --output (or -O). For instance jp blog get -s bloger@somewhere.tld -O json let you find metadata of a blog feed in JSON
  • jp can generate static websites thanks to --output template
  • when the website generator handle it, you can directly use the blog URL to edit it. For instance, I can edit one of my last posts by using jp blog edit -u https://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpp where https://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpp is the URL of the HTML generated page. I then have my text editor showing the code of my page on one side (in my favorite syntax) and the metadata on the other. Note the this works with webpage generated by Libervia, but also by Movim.

A small demo of the shell to read a blog:

checking a blog from shell (jp)

Test it!

You can test all this, the installation instructions are available (in English only, we are lacking resources to translate) on the wiki by clicking here.

SàT (backend + jp (CLI) + Primitivus (TUI)) is available in Debian experimental (thanks to Robotux, Naha, Debacle and other packagers).

SàT and its frontends (jp, Primitivus, Cagou, Libervia) are available on Arch Linux (thanks to jnanar and Link Mauve)

We got confirmation that SàT and Cagou are working on Mac OS X (thanks to xma), we would like help of people to also test it on Windows, BSD*, or anything else.

You can test on Android by clicking on this link from your device (installation from external resources must be activated from settings).

Note that this is an alpha version, that means:

  • it crashes, the code is not stable
  • all features are not finished, or even here
  • it's not optimised yet
  • it's not polished

Oh, and while we are talking about features not yet implemented, there are strong possibilities that end to end encryption with OMEMO will be implemented before final release, thanks notably to the new Python module available (thanks to Syndace, the author). End to end encryption is already available for years in SàT, but only with OTR so far.

Participate!

A last animation to show you the automatic language detection, an experimental feature:

language detection, then messages filtering

Let's stop here for the features, but we have not seen all of them.

As you can see, there's a lot to play with, and there is enough for every taste in this project.

And that's good, with summer holidays you'll have more time, a perfect occasion to contribute to a unique project, ethics and activist.

Do not hesitate to come on SàT XMPP room (sat@chat.jabberfr.org, also available without account, from the web).

If you are lacking time (picnic on the beach is nice too), support on Liberapay and/or adhering to the association is also helping.

Try to spread the word around you, our project lack visibility and needs you. If you are willing to host an instance, you can start to test (in a "experimental/not stable" part of your website), and give us feedbacks. We are also looking for people helping to package in every place where it's possible.

Thanks in advance, and see you soon!

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…