Goffi non-hebdo

Aller au contenu | Aller au menu | Aller à la recherche

lundi 20 octobre 2014

Salut à Toi disponible en docker + passage à la radio

Salut à vous,

nous venons de mettre en place des images Docker pour simplifier l'installation et l'utilisation de Salut à Toi/Libervia.

Pour ceux qui ne connaissent pas, Docker est un logiciel de gestion de conteneurs, une sorte de chroot boosté. En gros l'idée c'est que vous distribuez un système complet avec toutes les versions des dépendances qui vont bien, et que vous faites tourner le tout de manière isolée mais sur un noyau Linux existant, avec un impact faible sur les performances.

Dans notre cas c'est idéal, car Salut à Toi est pour le moment complexe à installer (surtout Libervia: on y travaille, mais on a besoin de faire bouger les standards XMPP pour ça, et ça prend du temps).

Avec Docker, l'installation est très simple, et en prime nous avons fait un script pour faciliter encore tout ça.

Pour installer et lancer Libervia, il vous suffit d'entrer la commande suivante:

wget http://repos.goffi.org/sat_docs/raw-file/tip/docker/libervia_cont.sh && chmod a+x libervia_cont.sh

Qui va télécharger et rendre exécutable le script de gestion du conteneur Libervia. Ensuite, et si Docker est bien installé chez vous, il vous suffit d'entrer:


Le téléchargement la première fois devrait prendre quelques minutes, ensuite le tout est executé avec quelques instructions sur l'utilisation.

Vous pourrez ainsi tester la version en cours de développement de Libervia. pour mettre à jour, il suffit d'entrer:

./libervia_cont.sh update

Vous aurez tous les details ici (en anglais seulement pour le moment, toute aide à la traduction bienvenue): http://wiki.goffi.org/wiki/Docker/en

N'hésitez pas à nous signaler si quelque chose ne fonctionne pas comme prévu ou est mal expliqué (le mieux étant de venir sur le salon XMPP de Salut à Toi: sat@chat.jabberfr.org).

Sinon je n'avais pas donné le lien ici: j'ai été invité il y a quelques semaines par radio « Ici et maintenant », une radio libre parisienne, avec d'autres acteurs du libre comme Benjamin Bayart (FDN, minitel 2.0), Julien et Valérian (Jappix), Éric et Julien (Franciliens.net), Thuban (Host@Home), et Tanguy (Planet auto-hébergement). L'émission est longue (3h30), et divisée en 2 parties principales, celle qui cause de SàT est à partir de 2:20. Vous la trouverez ici (ou mieux via bittorrent).

vendredi 26 septembre 2014

Salut à Toi (à nouveau) à la radio demain (samedi) à 14h

Salut à vous,

un rapide message pour vous annoncer que j'ai été gentiment invité à participer à « Cyberculture », une émission de radio « Ici et maintenant ». Le thème de l'émission sera l'initiation à « l'internet libre » en présentant des outils. Au programme du beau monde:

Donc ce samedi 27, RDV sur 95.2 FM si vous êtes à Paris, ou sur le web: http://icietmaintenant.com (écoute en direct dans le menu).

Pour mémoire j'avais déjà été invité à l'émission Symbiose pour parler de Salut à Toi, émission passé notamment sur divergence FM: http://symbiose.bonnes-ondes.fr/ep/...

vendredi 19 septembre 2014

Salut à Toi v0.5.1

We are happy to announce the release of Salut à Toi v0.5.1! This version focuses on security and code refactorisation to ease the add of new features and maintenance.

We remind you that SàT is a multi-purposes and multi-frontends XMPP client, mainly developed in Python. The more advanced frontends are Primitivus (console) and Libervia (web). Jp (command line) can be used for administrative tasks. Wix (desktop/WxWidgets) will be deprecated and replaced with Bellaciao (desktop/Qt). An Android frontend is also planned.



A new parameter has been added to define a password for the SàT profile, it is stored hashed in the database. Its raw version is used to cipher the other passwords - including the one for the XMPP account - which are encrypted. A scheme on the wiki explains how this all works: encryption.

Libervia now handles HTTPS. The administrator can choose the service(s) to enable: HTTP, HTTPS or both.

You can uses OTR for instant messaging end-to-end encryption. Primitivus console interface uses the Python library potr while Libervia is based on the Javascript implementation otr.js. Thus, your encrypted discussions on Libervia are really private because the encryption is done directly by your browser; you may encounter some slowdowns, especially when starting OTR.

http<em />unsecure</em>warning

stdui<em />profile</em>manager<em>primitivus</em>1

stdui<em />profile</em>manager<em>primitivus</em>2

Other additions

You will notice:

  • the add of chat rooms bookmarks;
  • the display of the composing states in chat rooms;
  • a better integration of the ad-hoc commands, e.g. to allow the administration of the server from Primitivus or Libervia;
  • the possibility to erase all your blog posts, change your password or delete your account from Libervia;
  • contextual menus on the roster contacts and the discussion panels;
  • a couple of new stuff concerning the static blog pages.

bookmarks<em />manager</em>primivitus

manage<em />account</em>delete_blogposts



We care to redesign the code when some conception issues are found, or if we imagine a new mechanism which would work better. It is especially important for a project like SàT which is multi-interfaces and still in development. For this version we made several refactorisations concerning:

  • XMPP service discovery;
  • messages sending and reception;
  • textual commands management;
  • contact list management;
  • hierarchical organization of the constants;
  • Libervia's source files hierachy;
  • Primitivus keyboard shortcuts.

These modifications are not of a big interest for the users, but they ease our life, and maybe those of the people who would like to give us a hand! We see them as required first steps to initiate the development of the mobile phone frontend and the add of new features.

We extended the usage of XMLUI, our internal micro-format for describing user interfaces. We use it to manage frontend's dialogs from the backend. The user actions are now better integrated and we will keep on improving it for the next versions.

stdui<em />contact</em>list_primitivus



To be mentioned

The backend is now launched as a Twisted plugin and starts by default in daemon mode, just as Libervia. The initialisation sequence backend / frontends has been improved; this fixes the issues that could occur when SàT and Libervia were launched from a script within a short time. Moreover, we added a .service file for D-Bus to automatically launch the backend when a frontend needs it.

The default paths for the user files are now compliant to the XDG recommendations: configuration file in ~/.config/sat, database and the rest in ~/.local/share/sat. Any previously existing default configuration file will be retrieved and eventually updated.

If the XMPP server address and port are left empty in the connection parameters, the actual values can be retrieved from a DNS SRV record - if one is set for the "domain" part of your JID.

There's a new log system, fully customisable and managing the colors, formatting, filtering and outputs (files, memory...).



Administrative aspects

We submitted the file for the creation of the association "Salut à Toi"... which has been accepted without any trouble, positively surprising us. Our working mode is indeed a bit special for a French "1901-law" association: a collegial board with no president, secretary nor treasurer but two co-administrators. We remind you that there is behind this project a desire to fully involve ourselves, and this is not compatible with the pursue of another professional activity. This means, for the developers, the necessity to find a funding source. We will start with testing / adapting our idea of a good funding model for SàT, of course meeting the ethical and moral commitments that are defined by our social contract.

The association memberships are our favorite source of income! We defined in the internal rules several amounts for the annual subscription, between 0 and 100 euros and every one is free to choose. There's no typo! For the persons who would like to support us without being able or willing to contribute financially, that's possible - because moral support is important too. So there's no reason not to join ;-)

We are unfortunately not ready yet to offer you the possibility to make it online. We actually plan to open a bank account for the association at the end of this month, then we will prepare the online form to manage the subscriptions.


We attended this year the "Free Software Days" (aka JDLL in French) in Lyon, "Pas Sage en Seine" in Paris and the "Libre Software Meeting" (aka RMLL) in Montpellier - see the links to watch the recorded conferences (in French). We met or saw again some nice people at the stands and during the speeches Goffi made. Many thanks to the organizers of these events, and to Reflets.info which wrote an article about SàT following the last version's release, allowing a larger public to get to know about the project.

We also participated last week to the "XMPP Summit" and its hackaton in Berlin. We met there some XMPP developers, including two with whom we have regular contact, such as Edhelas from Movim. We presented together our issues with the protocol and will suggest new XEPs to standardize some practices (especially regarding Publish-Subscribe and blogging), and push their implementations.

Saturday, September the 27th between 2pm and 5:30pm, Goffi will participate to a radio program from "Ici et maintenant", recorded in Paris and about self-hosting. There will be many guests including two from the Jappix project.

We would like to organize some gatherings via the association, at least once per year as a general assembly and maybe more often. The date and the location haven't been discussed yet.

Please also notice the recent creation of a "users" mailing list for SàT, it completes the chat room and the "dev" mailing list.

And then?

We would like to migrate our own blogs to SàT. The version 0.6 will focus on blogging (in SàT, it is based on a fine access permission system, so you only write to the people you want), pictures storage and tags implementation. These are essentials features and maybe the last important works before the publication of the first public release, which has been a bit delayed and should be stamped 0.7 or 0.8.

Salut à Toi v0.5.1

Salut à vous,
nous avons le plaisir de vous annoncer la version 0.5.1 de Salut à Toi, petite mise à jour de la version 0.5 dont je vous mets l'annonce ci-dessous. Nous avançons bien, et même si nous avons un peu de retard sur nos prévisions (nous avions prévue une version grand publique pour la rentrée, nous pensons maintenant plus à la fin d'année), les choses vont dans le bon sens.

Vous trouverez également un récit de notre passage à Berlin pour le « XMPP Summit », une rencontre entre développeurs XMPP, sur DLFP: https://linuxfr.org/users/goffi/journaux/retour-de-berlin

Nous sommes heureux de vous annoncer la sortie de Salut à Toi, version 0.5. Nous nous sommes cette fois-ci concentrés sur la sécurité et le ré-usinage de certains mécanismes qui vont faciliter l'ajout de futures fonctionnalités et la maintenance.

Pour rappel SàT est un client XMPP multi-usages et multi-interfaces principalement développé en Python. Les interfaces les plus avancées sont Primitivus (console) et Libervia (web), Jp (ligne de commande) facilite les tâches d'administration, Wix (bureau/WxWidgets) est vouée à disparaître et sera remplacée par Bellaciao (bureau/Qt). Est également prévue une interface pour Android.



Un nouveau paramètre a été ajouté pour définir un mot de passe pour le profil SàT, qui est stocké haché dans la base de données. Sa version claire permet de sécuriser les autres mots de passes, dont celui du compte XMPP, qui sont eux chiffrés dans la base. Un schéma détaille comment tout ça fonctionne sur le wiki du projet : chiffrement.

Libervia supporte désormais le HTTPS. L'administrateur peut choisir quel(s) service(s) activer : HTTP, HTTPS ou les deux.

Vous pouvez utiliser OTR pour chiffrer de bout en bout vos discussions instantanées. L'interface en console Primitivus utilise la librairie python potr tandis que Libervia s'appuie sur l'implémentation javascript otr.js. Ainsi, vos discussions chiffrées sur Libervia sont vraiment sécurisées puisque le chiffrement est effectuée directement par votre navigateur ; il faut par contre prévoir des ralentissements, surtout au lancement d'OTR.

http<em />unsecure</em>warning

stdui<em />profile</em>manager<em>primitivus</em>1

stdui<em />profile</em>manager<em>primitivus</em>2

Autres nouveautés

On notera :

  • l'ajout des marque-pages de salons de discussion ;
  • l'affichage des états dans les salons de discussion ;
  • une meilleure intégration des commandes ad-hoc, permettant par exemple d'administrer le serveur depuis Primitivus ou Libervia;
  • la possibilité de supprimer tous ses messages, modifier son mot de passe ou supprimer son compte depuis Libervia ;
  • des menus contextuels sur les contacts et fenêtres de discussion ;
  • quelques nouveautés concernant les pages de blogs statiques.

bookmarks<em />manager</em>primivitus

manage<em />account</em>delete_blogposts



Il est important, pour un projet comme SàT (multi-interfaces), de veiller à remanier le code lorsqu'on lui trouve des défauts de conception ou bien qu'on imagine un nouveau mécanisme. Ont subis entre autre un ré-usinage pour davantage de souplesse ou de généricité :

  • la découverte de services XMPP ;
  • l'envoi et la réception de messages ;
  • la gestion des commandes textuelles ;
  • la gestion de la liste de contact ;
  • l'organisation hiérarchique des constantes ;
  • les raccourcis clavier de Primitivus ;
  • l'arborescence des fichiers source de Libervia.

Ces modifications n’intéressent pas directement l'utilisateur mais elles nous facilitent la vie, et peut-être celles des personnes qui souhaiteraient plus tard nous filer un coup de main ! Il s'agit aussi de premiers pas pour amorcer le développement de l'interface pour téléphones portables et de nouvelles fonctionnalités.

Par ailleurs, nous misons toujours davantage sur XMLUI, le micro-format interne de description d'interface utilisateur que nous utilisons pour commander les frontaux depuis le backend. Désormais, les actions de l'utilisateur sont mieux intégrés et nous comptons améliorer le système, toujours davantage à chaque version.

stdui<em />contact</em>list_primitivus



Mais encore...

Le backend est maintenant distribué en tant que plugin pour Twisted et se lance par défaut en mode démon, tout comme Libervia. La séquence d'initialisation backend / frontaux a été améliorée, ceci corrige les problèmes qui pouvaient survenir lorsque SàT et Libervia étaient lancés depuis un script à peu d'intervalle. De plus, nous avons rajouté un fichier .service pour D-Bus, ce qui permet de lancer automatiquement le backend lorsqu'un frontal en a besoin.

Les chemins par défaut des fichiers utilisateurs respectent désormais les recommandations XDG : fichier de configuration dans ~/.config/sat, base de donnée et le reste dans ~/.local/share/sat. L'ancien fichier de configuration sera récupéré et éventuellement mis à jour.

Si l'adresse et le port du serveur XMPP sont laissés vides dans les paramètres de connexion, les bonnes valeurs peuvent être récupérées depuis un enregistrement DNS SRV qui correspond à la partie « domaine » du JID.

Un nouveau système de log fait son apparition, il est pleinement configurable et gère les couleurs, le formatage, le filtrage et le type de sortie (fichiers, mémoire...).



Aspect administratif

Nous avons déposés en préfecture les papiers pour la création de l'association « Salut à Toi »... ça a été accepté du premier coup, ce qui nous a agréablement surpris car le mode de fonctionnement de l'association est un peu particulier : direction collégiale, pas de président / secrétaire / trésorier mais deux co-administrateurs. Pour rappel, derrière ce projet il y a une volonté d'implication qui est incompatible avec l’exercice d'une autre activité professionnelle. Cela se traduit, pour les développeurs, par la nécessité de trouver une source de financement. Nous allons donc commencer à tester / adapter notre idée de modèle économique et ceci, bien entendu, dans le respect des engagements éthiques et moraux qui sont définis par notre contrat social.

Les adhésions à l'association sont notre source de financement privilégié ! Nous avons défini dans le règlement intérieur plusieurs montant de cotisation annuelle entre 10 et 100 euros, libre à chacun de choisir ce qu'il veut. Pour les personnes qui souhaiteraient nous soutenir sans pouvoir ou vouloir verser de contribution financière, c'est aussi possible : l'adhésion sans cotisation est prévue par le règlement intérieur. Comme ça, plus d'excuse ;-)

Il va par contre falloir attendre encore un peu avant que tout cela soit faisable par internet. Nous allons ouvrir un compte en banque pour l'association et il faudra ensuite préparer un formulaire en ligne pour gérer les adhésions.


Nous étions présents cette année aux Journées du Logiciel Libre à Lyon, Pas Sage en Seine à Paris et aux Rencontres Mondiales du Logiciel Libre à Montpellier (voir les liens pour les vidéos des conférences). Nous avons pu rencontrer ou revoir quelques personnes grâce aux stands, et aux conférences de Goffi. Merci aux organisateurs de ces événements ainsi qu'à Reflets, qui a écrit un article sur SàT suite à la sortie de la dernière version, ce qui a permis de faire connaitre le projet à un plus large public.

Nous allons participer mercredi et jeudi prochain au « XMPP Summit » et à son hackaton qui se déroulent à Berlin. Serons notamment présents deux autres développeurs XMPP avec qui nous sommes en contact, dont Edhelas de Movim, et ensemble nous espérons pouvoir peser davantage pour faire standardiser de nouvelles extensions (notamment autour de Publish-Subscribe et pour le blogage) et encourager leurs implémentations.

Le samedi 27 septembre entre 14h et 17h30, Goffi participera à une émission de la radio « Ici et maintenant » enregistrée à Paris sur le thème de l'auto-hébergement. Il y a aura plusieurs autres invités dont deux développeurs de Jappix.

Nous souhaitons aussi organiser des rencontres au travers de l'association, au moins une fois par an sous forme d'assemblée générale ordinaire, et peut-être davantage. Le lieu et la date n'ont pas encore été discuté.

A noter aussi la création récente d'une liste de diffusion « users » pour les utilisateurs de SàT, qui vient compléter le salon de discussion et la liste de diffusion « dev ».

Et après ?

Nous souhaitons transférer nos propres blogs sur SàT. La version 0.6 se concentrera donc sur le blogage (qui dans SàT est basé sur un système de permissions fines pour n'écrire qu'aux personnes de votre choix), le stockage d'images et l'implémentation des tags. Il s'agit de fonctionnalités essentielles et peut-être des derniers grands travaux avant la publication de la première version grand public, qui a pris un peu de retard et devrait être estampillée 0.7 ou 0.8.

mardi 22 juillet 2014

Petite histoire des RMLL 2014

Les RMLL se sont achevées il y a maintenant plus d'une semaine, et une bonne partie des conférences (dont celle sur Salut à Toi) est en ligne. J'en profite pour raconter un peu ce que nous avons vécu.

Tout d'abord parlons d'un superbe projet qui n'est pas assez connu: BeWelcome. C'est un site d'hébergement dont le moteur est libre, qui a une politique de prise de décisions communautaire, et une communauté très agréable. Ayant été pendant longtemps membre de CS, on peut dire qu'on y retrouve l'esprit des débuts mais sans les inconvénients (logiciel et contenu non libres, prises de décisions autoritaires, hiérarchie, etc. Lire à ce sujet mon billet sur DLFP [1]). Nous avons, Souliane et moi, utilisé BeWelcome pour trouver un hébergement pendant l'événement, et en avons trouvé 2 très biens. L'intérêt de ce genre de site est, outre les économies réalisées, de rencontrer des gens du coin, des façons de vivre parfois différentes, des gens qui vous montreront « leur » ville loin des clichés.

C'est fort dommage que ce projet ne soit pas mis en avant vu qu'il colle parfaitement à la philosophie, et qu'il est libre. J'aurais beaucoup aimé voir un stand/une conférence BeWelcome également, peut⁻être l'année prochaine ? D'autant plus qu'il semble qu'il y ait eu quelques couacs dans l'hébergement aux RMLL, la situation aurait été plus confortable.

Les journées grand public ont été particulièrement intéressantes: nous étions très bien placés au centre de Montpellier, et avions vraiment de tout comme visiteur; du néophyte aux personnes très techniques (qui venaient la plupart des autres stands, comme souvent dans ce genre d'événement). Notons suite à la polémique sur les caméras que les gens qui sont venus à notre stand pour nous filmer et/ou prendre en photo ont été très corrects et nous ont demandé avant si ça ne nous dérangeait pas. Là encore, j'ai écris un commentaire sur DLFP à ce sujet [2]. Il y a eu du monde en permanence au point qu'il a fallu fuir le stand par moments pour se reposer... Le week-end s'est achevé sur un dimanche très venteux (le soleil n'était pas de la partie à Montpellier, mais on s'en est sortis pas trop mal au final).

Pendant la semaine de conférences, nous étions au village placés à côté de Liberté 0, une association naissante (nous avons pu assister à son intéressante assemblée constitutive) qui a pour but d'améliorer l'accessibilité pour tous. Nous allons suivre avec intérêt leur évolution, ne serait-ce que pour être conseillés sur la meilleure façon de rendre notre projet le plus accessible possible. En face nous avions des gens comme Haiku (réécriture libre de BeOS), DoudouLinux (distribution éducative pour les tout petits), nos oignons (association pour la création de gros nœuds de sortie Tor) ou encore Floss Manuals qui fait des manuels libres et collaboratifs sur des projets libres (Arduino, Cinelerra, Gimp, Scribus, etc), livres qui sont tout à fait abordables et ont l'air bien faits (j'ai acheté pour 7 € le livre sur l'Arduino qui m'a l'air pas mal du tout à première vue).

Le village associatif a aussi été l'occasion de rencontrer ou revoir des gens et des projets très intéressants, comme Gelnior de Cozy Cloud/Newebe qui est devenu un ami depuis le temps qu'on se croise, Liberté 0 dont j'ai parlé plus haut, Cryptie qui nous file un gros coup de main pour le futur chiffrement des microblogs, Bookynette qu'on a aussi croisé à la foire de l'autogestion et qui est - entre autres - un des membres fondateurs de liberté 0, devnewton qui bosse sur Newton adventure/Ned et les makis, etc. Nous avons eu des discussions diverses allant de l'Esperanto à la possibilité d'intégrer Tor dans XMPP/SàT, et quelques (trop rares !) débats politiques.

Les RMLL ont aussi été l'occasion pour Souliane de monter son TV-B-Gone avec Mitch Altman. Nous avons pu voir le mat omnidirectionnel de Foxel, tester Haiku, j'ai pu discuter avec un développeur Kde (donc j'ai oublié le nom et de prendre le contact... Si tu me lis :) ), nous avons pu voir le projet Apertium auquel participe Bech qui nous a hébergé (il travaille aussi sur LibreMail, collection de scripts pour lire ses messages en console), et et... nous avons eu nos premiers dons ! Oui parce que SàT est maintenant une association, mais j'y reviendrai très vite. Ce fut un grand plaisir de voir qu'une majorité des gens connaissaient SàT au moins de nom, et nous avons eu beaucoup d'encouragements.

Bref, nous étions très heureux de participer à ces RMLL, mais aussi contents d'en partir après une semaine à répéter les mêmes choses et dans un milieu parfois trop technique (mais pas que !). Un grand merci aux organisateurs, aux participants et aux gens qui sont venus nous voir (ou pas d'ailleurs), c'était une excellente édition.

Pour finir une petite sélection de conférences: étant au village nous n'avons pas pu en voir beaucoup, aussi c'est loin d'être exhaustif:

Bon, il y a des tas d'autres conférences intéressantes, mais ce billet est déjà suffisamment long. De même, comme j'ai la flemme et que de toute façon on perd la lecture linéaire (voir ma conf), je ne mettrai pas les liens vers tous les projets que je cite...

Bon ben j'ai encore perdu 2 heures moi

vendredi 27 juin 2014

Salut à Toi à Pas Sage en Seine et aux RMLL

Salut à vous,

à l'origine je pensais écrire un billet sur mon expérience à La Navette, coopérative autogérée dans la Creuse où je viens de passer 1 semaine, afin de voir leur fonctionnement et de s'en inspirer pour la création de la notre, mais je suis trop débordé en ce moment par le développement, la préparation des conférences et la création de l'association qui gérera « Salut à Toi »

Donc pour faire bref, nous sommes en train de créer une association en autogestion, c'est à dire sans hiérarchie (pas de patron), avec égalité des salaires et partage des tâches. Nous espérons donc nous salarier avec le projet « Salut à Toi » tout en restant cohérent avec nos idées (et notamment le contrat social), chose peu aisée en refusant toute forme de publicité, en ayant le projet sous licence libre et en refusant la vente d'informations (mais nous avons plusieurs idées en tête pour nous financer).

J'espère avoir un peu plus de temps bientôt pour raconter mon expérience à Faux-la-Montagne, village petit par la taille mais grand par son dynamisme et les gens qu'on y croise.

En attendant vous pourrez me trouver à Pas Sage en Seine (à Paris) ce samedi à 16h, où je ferai une conférence pour expliquer le projet « Salut à Toi » et en particulier ses enjeux politiques, ainsi qu'aux Rencontres Mondiales du Logiciel Libre à Montpellier du 5 au 11 juillet, nous y tiendrons un stand et j'y ferai une conférence le jeudi à 9h30 (oui je sais, c'est tôt !). Je vous conseille également de vous rendre à la foire à l'autogestion qui aura lieu ce week-end à Montreuil, nous y seront présents (en simples visiteurs) le dimanche.

À bientôt Goffi

P.-.S.: nous avons une version 0.5 sur le feu qui ne devrait pas tarder du tout...

dimanche 1 juin 2014

Salut à Toi la planète libre !

Salut à vous,

comme je viens d'arriver sur planet-libre, je pense qu'il est plus correct de se présenter...

Je suis un des développeurs du projet « Salut à Toi » (SàT), un outil de communication décentralisé. Cet outil permet de faire de nombreuses choses allant du microblogage aux jeux, et fonctionne sous différents environnements (il est multi-interfaces): web, bureau, interface console, ligne de commande, etc.

Mon blog (du moins le flux utilisé pour planet-libre) parlera principalement de ce projet ou de XMPP, le protocole qu'il utilise, mais également de réflexions plus générales: nous développons avec une vision critique des nouveaux médias, et pas seulement en ce qui concerne la vie privée.

Un article publié récemment sur reflets.info présente SàT et son contrat social, et un billet que j'ai écris en 2011 parle de quelques-unes des motivations.

Nous sommes en cours de réflexion pour monter une coopérative (ou autre statut) autogérée pour développer SàT, et essayer d'en vivre en cohérence avec nos idées.

À bientôt, et merci à l'équipe de planet-libre (en particulier antistress et theClimber) pour avoir pris en compte rapidement mes critiques.


mardi 20 mai 2014

Salut à Toi à l'Ubuntu party ce dimanche

Salut à vous,

je ferai une conférence ce dimanche à l'Ubuntu party, à la cité des sciences et de l'industrie à Paris. La conférence aura lieu au « studio » à 11h. N'hésitez pas à venir poser vos questions et discuter.

mercredi 9 avril 2014

SàT aux JDLL à Lyon ce week-end

Salut à vous,

un petit billet pour vous rappeler que nous serons présents aux JDLL ce week-end à Lyon à la Maison pour Tous (Salle des Rancy, 249 rue Vendôme). J'y donnerai une conférence samedi à 12:30 pour expliquer un peu les dernières nouveautés et l'avenir du projet. N'hésitez à venir nous rencontrer et poser vos questions :)

jeudi 3 avril 2014

SàT sur Reflets ! Et bientôt aux JDLL

Salut à vous,

un petit billet pour vous annoncer que Reflets a publié un article sur Salut à Toi, qui non seulement explique bien le projet (plus clairement que je ne le fais moi même :) ), mais en plus met l'accent sur le contrat social et le côté politisé du projet, qui sont souvent passés à la trappe bien que ce soient des éléments fondateurs. Le billet se trouve ici: http://reflets.info/sat-le-couteau-..., un grand merci à Drapher pour ce papier.

D'autre part Souliane et moi serons présents - comme tous les ans - aux Journées Du Logiciel Libre à Lyon les 12 et 13 avril. J'y donnerai une conférence pour expliquer les dernières nouveautés et notre projet de coopérative.

À bientôt :)

mercredi 26 février 2014

Salut à Toi 0.4.0: a new version of the powerful XMPP/Social software


We are pleased to announce « Salut à Toi » version 0.4, which comes with many important changes, also regarding the project's life.

Salut à Toi is a powerful communication tool, free and multi-frontends. It offers some features like micro-blogging, instant messaging, an easy way to manage groups permissions (elsewhere called « aspects » or « circles »), games and much more.

Constantly designed with ethical and social thoughts (politically speaking), Salut à Toi (abbr.: SàT) is also bound to its social contract.
Being based on XMPP, SàT is decentralised and compatible with the other projects that use this protocol.

Before starting with the traditional listing of the new features, a few words about the evolution of the project. We are now two persons working full-time on SàT: so did Souliane, a friend for a long time, join me. We would like to live from the project, but we also want to respect our ideals (cf. the social contract) : we are firmly opposed to commercial advertisements, selling data or any similar behaviors.

We decided to organize ourselves as a self-managed entity, probably under the terms of a cooperative and we would like to start it this summer.
There are 3 economical models that we are thinking about:
  • the first would be based on donations. This is a precarious model but it would offer us the largest independance in our decisions taking process.
  • the second, more trendy, is the use of the so-called crowdfunding platforms. It is finally very close to the donations system, but it requires more work to file the applications etc. Moreover, we would need to select with care the platforms to be used.
  • the third one runs more classically, based on services : technical support, specific customizations etc. This is the one model which would leave us the least interdependancy, and the least time to focus on the project itself.
We often discuss about the project organisation, the features to be implemented, etc. We not only agree that privacy is primordial, we also believe that it is not the sole aspect to be studied, and that the impact these kinds of tools have on our lives deserve some special attention. Technology is not neutral, so we are thinking about how to implement and design things, and we are open to discuss (in real life better then behind a screen) ; feel free to launch a discussion with us.

That being said, let's have a look at the change log!
The list is quite long (the last version was more than a year ago), here is a selection:


The micro-blogging has been much improved. Comments are now handled, still using the fine access tuning for Pubsub: comments inherit the permissions from the micro-blogs they are replying to. The unibox of Libervia was disturbing many people and it is now optional, the default behavior for typing messages being more classic.


Rich texts have been implemented. The system is quite versatile and it's easy to add new syntaxes that would be available for all frontends.


When you update some content, you can edit it using the syntax of your choice, even if it has been published with another one. Thus it is possible to edit in Markdown a post that has been originally created in XHTML.

For now, XHTML, Markdown and raw text are available, more should arrive soon (for instance Dokuwiki and Dotclear's syntax).


The textual (micro)blogs are now recognizing and displaying inline URLs.
In addition to the rich text edition, a WYSIWYG edition (also to be used as a preview feature) is available in Libervia.

And there's still the static blog to display your public messages. It is now completed with an Atom feed. We are getting closer to a full decentralised blog engine and we plan to
move our own blogs to SàT by the next release, so some import tools to migrate from Dotclear and Dokuwiki are to be expected.



It is possible to send messages in carbon copy or blind carbon copy, according to the XEP-0033

The MUC configuration has been implemented (the menu is currently only available in Primitivus)
Chat states notifications have been implemented, letting you know if someone is writing to you or if she/he left.


one plugin is adding some IRC-like commands e.g. /nick or /join

Command line

thanks to Dal, jp – the command line frontend – has been upgraded to ArgParse, allowing a proper commands refactorisation and confirming jp as being an XMPP “swiss knife”.

it's easy to forward a command or pipe output to a contact, but also to create a remote control (see below) or to transfer a file. Some more commands to publish micro-bloggs, manage your roster etc. are planned.

there's a bundled script to offer you the auto-completion with Zsh
Complètement de jp dans zsh


important work on the extra-features for the discussion rooms. The Collective Radio (allowing the members of a discussion room to upload some music and listen to it at the same time) has been improved, it also handles the user leaving and return.


Ad-Hoc commands are available, allowing to remotely control an entity with any XMPP client

based on the Ad-Hoc commands, a universal remote control has been implemented to offer the possibility to control most of the softwares. A post on my blog is presenting this feature, there's also a short demonstration video featuring VLC


command export
: command export : another original feature - it's possible to redirect the input/output of a process to any of your contact (including to another network via a gateway), again the easy way with the fine accesses tuning. There is a demonstration on my blog with an FTP session export to a contact using Gajim

messages notifications are available in Libervia (a contribution from Link Mauve): if someone is talking to you while the tab is hidden, a message should appear on your desktop.


In Libervia: in addition to the drag and drop which was already available, you can click on a contact or a group to open the associated widget. Widgets can now be moved from one tab to another.

considering the importance of the groups in SàT (used a lot to manage the permissions), a roster management user interface has been added to Libervia


a mini XMPP discovery service has been started, it's already running on the libervia.org demonstration server.

Under and around the hood:

Some heavy refactorisations have been done to ease the development of future frontends e.g for small screen devices.
The SQLite database is automatically upgraded.

Some work has been done on the testing system, with the installation of a buildbot ( https://buildbot.goffi.org ) which is running a test batch after each commit.
Some SàTellites projects:
  • SàT Pubsub (based on Idavoll) is a Pubsub component for Prosody to manage fine access tuning, it's used for micro-blogging
  • Urwid SàText (based on Urwid) is a widgets library for console display, used by the frontend Primitivus.
  • "Salut" is a XMPP directory, at a very early development stage

Did you know ?

Some reminders about a couple of (hidden) features:

In Libervia you can position your widgets over several columns / lines

SàT comes with an IMAP server that let you use a MUA like Firefox or KMail to read your messages


Beside our projects regarding the cooperative, the following should happen from the technical perspective:
  • an important work concerning the security. Until now, we left on purpose this aspect behind, to not do things by halves and fully focus on it when the time has come. So we plan to integrate HTTPS to Libervia, end to end encryption and password encryption in the database.
  • finish the micro-blogging support and migrate our own blogs to SàT
  • (hash)tags
  • frontends/ports for telephones and tablets, Windows (and Mac?)
  • update the Bellaciao frontend (Qt-based)
  • RSS/Atom feed integration
  • event and calendar management, etc.
We plan to release a public version this summer, it would be the first named version and, as already announced, it will be named « la Commune ».


A big thank to contributors:
  • Link Mauve (Emmanuel Gil Peyrot): notifications Twisted plugin for Libervia, style improvments
  • Dal: jp profiles management, ArgParse in jp
  • Robotux (Thomas Preud'homme): locales correction, distribute update
thanks also to packagers (Naha and Robotux for Debian, Link Mauve for Arch, and surely other that we don't know, don't hesitate to contact us).
thanks to Elefantom for using daily the demo, and to give us several feedbacks
thanks to Parinux and Nanterrux to invite me for a talk, and to the JDLL where we'll be again this year.
thanks to the Loop to host the first Salut à Toi hackathon :). Ambiance and location where great.
thanks to Luc and Manu for the interview in the "Symbiose" emission, and for the following discuss.

Come and join us on XMPP MUC room sat@chat.jabberfr.org

Salut à Toi 0.4.0: toujours en chemin

Salut à vous !
Nous avons le plaisir d'annoncer « Salut à Toi » version 0.4, qui marque de très gros changements dans la vie du projet.
Avant d’entamer la traditionnelle liste de nouvelles fonctionnalités, quelques notes sur l'évolution du projet. Nous sommes désormais 2 à travailler dessus, et à plein temps : Souliane, un ami de longue date, m'a ainsi rejoint. Nous souhaitons vivre du projet, mais nous voulons respecter nos idéaux (dont une partie est déclarée dans le contrat social) : aussi nous refusons toute publicité, toute vente d'information ou assimilé, etc.
Nous avons choisi de nous organiser en autogestion, probablement sous la forme d'une coopérative et nous espérons pouvoir débuter cet été.
Il y a 3 modèles économiques que nous envisageons:
  • le premier serait un fonctionnement basé sur les dons. C'est un modèle précaire mais qui nous offrirait la plus grande indépendance dans nos décisions.
  • le deuxième, plus à la mode aujourd'hui, est l'utilisation de plate-formes de financement collaboratif (crowdfunding). Au final c'est assez proche d'un fonctionnement par dons, mais ça demande plus de travail pour la préparation des dossiers etc. De plus nous devrions choisir avec soin les plate-formes à utiliser.
  • la troisième est un fonctionnement plus classique basé sur les services : support technique, développement de fonctionnalités particulières etc. C'est le modèle qui nous laisserait le moins d'indépendance, et le moins de temps à consacrer au projet lui même.
Nous débattons régulièrement de l'organisation du projet, des fonctionnalités à implémenter, etc. La vie privée est certes primordiale, mais nous pensons que ce n'est pas le seul point à étudier, et que l'impact qu'a ce genre d'outil sur nos vies mérite qu'on s'y attarde. La technologie n'est pas neutre, aussi nous réfléchissons aux façons d'implémenter et de disposer les choses, et nous sommes ouverts au débat (et si possible en vis à vis et non derrière l'écran) ; n'hésitez pas à venir discuter avec nous.
Ceci dit, passons un peu aux nouveautés...
La liste est très longue (la dernière version a plus d'un an), en voici une sélection:


Le microblogage a beaucoup évolué. Les commentaires sont désormais gérés, toujours avec les permissions fines: les commentaires ont la permission du microblog qu'ils commentent. L'unibox de Libervia qui perturbait beaucoup de monde est désormais optionnelle, par défaut la saisie se fait de manière plus classique.
Les textes riches ont été implémentés. Le système est très souple, et il est facile d'ajouter de nouvelles syntaxes, qui seront disponibles pour tous les frontaux.
Quand vous éditez un contenu, vous pouvez l'éditer dans la syntaxe de votre choix même s'il a été publié autrement. Il est ainsi possible d'éditer en Markdown un billet publié en XHTML.
Pour le moment, XHTML, Markdown et du texte simple sont disponibles, et d'autres devraient arriver rapidement (notamment Dokuwiki ou la syntaxe Dotclear).
Les (micro)billets en texte pur disposent désormais d'une détection d'URL.
En plus de l'édition riche, une édition WYSIWYG (qui sert aussi de pré-visualisation) est possible avec Libervia.
Et il y a toujours le blog statique qui affiche vos billet publics. Il dispose désormais d'un flux Atom. Nous sommes proches d'avoir un moteur de blog décentralisé complet, et nous envisageons de passer nos propres blogs sur SàT d'ici la prochaine version, aussi des outils d'import gérant Dotclear et Dokuwiki sont à prévoir.


Il est désormais possible d'envoyer des messages en copie carbone ou copie carbone invisible, suivant la XEP-0033

La configuration MUC a été implémentée (le menu n'est pour le moment disponible que dans Primitivus)
les notifications d'état de discussion ont été implémentées, vous permettant de savoir si quelqu'un est entrain de vous écrire ou parti.

un plugin ajoute les commandes à la IRC, de type /nick ou /join

ligne de commande

grâce à Dal, jp - le frontal en ligne de commande - est désormais passé à ArgParse. Ceci a permis de réorganiser les commandes proprement, et d'affirmer jp comme couteau suisse XMPP.
il est facile de transmettre la sortie d'une commande ou d'un tube (pipe) à un contact, mais aussi de créer une télécommande (voir plus bas) ou d'envoyer un fichier. Sont a prévoir des commandes pour publier un microblog, gérer son roster, etc.
un script d'auto-complétion est fourni pour Zsh
Complètement de jp dans zsh


gros travail sur les extras des salons de discussions. La Radio Collective (qui permet aux membres d'un salon de discussion d'uploader de la musique et de l'écouter en même temps) a été améliorée, et gère la sortie et le retour dans un salon.

Les commandes Ad-Hoc sont disponible, permettant de contrôler une entité à distance avec n'importe quel client XMPP
basée sur les commandes Ad-Hoc, une télécommande universelle a été implémentée vous permettant de contrôler la plupart des logiciels à distance. Un billet sur mon blog en fait la présentation, et il y a également une courte vidéo de démo avec VLC

export de commande : autre fonctionnalité originale, il est possible de rediriger les entrées/sorties d'un programme à n'importe lequel de vos contact (y compris sur un autre réseau à travers une passerelle), toujours en gérant les permissions simplement. Mon blog fait une démo avec l'export d'une session ftp à un contact sous Gajim
les notifications sont disponibles dans Libervia (contribution de Link Mauve): si on vous parle alors que l'onglet est caché, un message devrait apparaître sur votre bureau

Dans Libervia: en plus du glisser/déposer déjà disponible, un simple clic sur un contact ou un groupe ouvre maintenant le widget correspondant. Les widgets sont désormais déplaçables d'un onglet à l'autre.
vu l'importance des groupes dans SàT (très utilisés pour la gestion des permissions), une interface de gestion du roster a été ajoutée à Libervia

un mini annuaire XMPP a été commencé, il est déjà exploité par le serveur de démonstration sur libervia.org.


Sous et autour du capot:

De gros ré-usinages ont été faits, qui devraient entre autres faciliter la création de futurs frontaux, comme ceux pour petits écrans.
La base de données SQLite est mise à jour automatiquement.
Un travail a été fait sur les tests, avec l'installation d'un buildbot ( https://buildbot.goffi.org ) qui permet de les lancer à chaque commit.
Il y a aussi des projets satellites :
  • « SàT Pubsub » (basé sur Idavoll) est un composant Pubsub pour Prosody qui gère les permissions fines, utilisé pour le microblogage ;
  • « Urwid SàText » (basé sur Urwid) est une bibliothèque de widgets pour l'affichage en mode console, utilisé par le frontal Primitivus.
  • « Salut » est un très jeune annuaire XMPP. Vraiment basique pour le moment

Le saviez vous ?

Quelques rappels sur certaines fonctionnalités pas forcément connues :
Dans Libervia vous pouvez disposer vos Widget sur plusieurs lignes et/ou colonnes
SàT dispose d'un serveur IMAP qui permet d'utiliser un MUA tel que Firefox ou KMail pour lire vos messages


En dehors de nos projets de coopérative, sur le plan technique voici ce qui devrait arriver:
  • un gros travail sur la sécurité. Nous avons volontairement laissé de côté cette question pour ne pas faire les choses à moitié et s'y consacrer pleinement, aussi l'intégration du https pour Libervia, le chiffrement de bout en bout, et le chiffrage des mots de passe en base sont à prévoir
  • finir le support microblogage et passer nos propre blogs sur SàT
  • étiquettes (aussi appelé (hash)tags)
  • frontaux/ports pour téléphones et tablettes, ainsi que pour Windows (et Mac ?)
  • remise à jour du frontal Bellaciao, basé sur Qt
  •  intégration des flux RSS/Atom
  • gestion des événements, calendrier, etc.
Nous envisageons une version grand public pour cet été, ce sera la première version nommée et elle se nommera, comme déjà annoncé, « la Commune ».


Un grand merci au contributeurs:
  • Link Mauve (Emmanuel Gil Peyrot): notifications et passage en plugin Twisted pour Libervia, améliorations de style
  • Dal: gestion profils dans jp, passage de jp à ArgParse
  • Robotux (Thomas Preud'homme): correction locales, mise à jour distribute
merci également aux empaqueteurs (Naha et Robotux pour Debian, Link Mauve pour Arch, et probablement d'autres qu'on ne connaît pas, n'hésitez pas à nous contacter).
merci à Elefantom d'utiliser régulièrement la démo (qui n'était pas prévue pour ça) et de nous avoir ainsi transmis des messages d'encouragements ou des demandes d'améliorations
merci à Parinux et à Nanterrux pour m'avoir invité à faire des conférences, ainsi qu'aux JDLL auxquelles nous participerons de nouveau cette année.
merci au Loop pour avoir hébergé le premier hackathon Salut à Toi :). L'ambiance et le lieux étaient géniaux.
merci à Luc et Manu pour m'avoir interviewé dans l'émission « Symbiose », ainsi que pour les conversations qui ont suivi.

mardi 18 février 2014

A universal remote for your softwares

Salut à Toi (SàT) now allows to easily create a remote for most of your softwares, and to share it with permissions management.
Suppose that you are in a flatshare, and you want that your flatmates can change the music of the Amarok running in your living room: the following command is all you need for that:

jp ad-hoc remote -g flatmates -- amarok

where "flatmates" is the name of the group which can control Amarok. You may also want to remote control Okular (e.g. for a talk), or VLC on your phone.
Below is an example with VLC.

The syntax may seem complex in apparence, it's actualy very simple:
  • " jp ad-hoc remote" tell that we want a remote control
  • "-pgoffi" say thaat we want to use the profile "goffi", but if it's the default profile, it's not needed
  • "-cl" the "-c" means "connect this profile if it's not already done", the "-l" means that we want to loop on commands (after launching a command, we will return to the command menu instead of finishing the ad-hoc session).
  • "-g coloc" is a filter (coloc mean "flatmates" in french): it tells that in addition of your own jid, the jids from the group "coloc" are allowed to use the remote
  • " -- vlc" the "--" is just here to terminate optional arguments, and "vlc" is the name of the software to control.

once the command entered, SàT fill look in D-Bus's Session bus to find buses which have "vlc" in their names, and add commands which don't need arguments. The output show what has been found.

Now, let's see how we can use the remote in Libervia (web interface of SàT):


We use the remote with the ad-hoc "commands" menu

we enter the jid which exported the remote. So far, we have to enter manualy the full jid, but in the future, a simple right click should be enough.

vlc is indeed visible in commands

and voilà ! Commands are available. Once again, it's a bit unfriendly at the moment, but it will be easy to replace common names like "play", "stop", "previous", etc with nice icons...


And it's of course working with every XMPP clients featuring ad-hoc commands, like Gajim or Psi (here Louise can use the remote control created by Goffi because she is in her group "coloc").
There are many advantages: ease of use, it's generic (the software just need to have its commands exported via D-Bus, which is pretty common on freedesktop environments like Kde, Gnome or XFCE), authorisation can be easily managed, and it works everywhere where an XMPP client featuring ad-hoc commands is available. An another proof that XMPP can be used for far more than just instant messaging, and a demonstration of the potential of jp, the command line frontend of SàT...

To conclude, a short demo video (in french).

As usual, to watch the video you can use a recent browser (the last Firefox/Iceweasel for example).
You can also use VLC (version >=1.1 only), by using the "Media/Open Netword Stream" menu and by entering this URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_7_t%c3%a9l%c3%a9commande_universelle.webm
Last but not least, you can use mplayer:: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_7_t%c3%a9l%c3%a9commande_universelle.webm"

this video is licenced under Creative Common BY-SA

lundi 17 février 2014

Une télécommande universelle pour vos logiciels

Salut à vous,
SàT permet désormais de créer très facilement une télécommande pour la plupart de vos logiciels, et de la partager avec une gestion des permissions.
Imaginons que vous soyez en colocation, et que vous vouliez que tous vos colocataires puissent changer la musique sur le Amarok qui tourne dans le salon: la commande suivante suffira:

jp ad-hoc remote -g coloc -- amarok

où coloc est le nom du groupe qui a le droit de piloter Amarok. On peut aussi imaginer que vous vouliez piloter Okular (pour une conférence), ou VLC depuis votre téléphone.
Ci-dessous un exemple avec VLC.

La syntaxe peut sembler compliquée, mais en réalité elle est vraiment simple:
  • « jp ad-hoc remote » indique qu'on veut une télécommande
  • « -pgoffi » indique qu'on utilise le profil « goffi », si c'est le profil par défaut, c'est inutile de le préciser
  • « -cl » le « -c » indique qu'on veut se connecter si le profil est déconnecté, le « -l » indique qu'on veut boucler sur les commandes (après avoir utilisé une commande, on reviendra au menu des commandes au lieux de finir la session ad-hoc).
  • « -g coloc » est un filtre: il indique qu'en plus de votre propre jid, les jids du groupe « coloc » pourront utiliser la télécommande
  • « -- vlc » le « -- » indique la fin des arguments optionnels, et « vlc » est le nom du programme.

une fois la commande validée, SàT va chercher sur le bus session de D-Bus les bus qui comportent « vlc » dans leur nom, et ajouter les commandes qui ne prennent pas d'argument. La sortie indique ce qui a été trouvé.

Maintenant voyons comment on utilise la télécommande dans Libervia (interface web de SàT):


La télécommande s'utilise avec le menu des commandes ad-hoc

on entre le jid qui a déclaré la télécommande. Pour le moment il faut entrer l'adresse complète à la main, mais dans le futur un clic droit sur le nom devrait permettre d'y accéder facilement

vlc apparaît bien dans les commandes

et voilà ! Les commandes sont accessibles. Là encore c'est un peu austère pour le moment, mais il sera facile par la suite d'associer des icônes à des noms génériques comme « play », « stop », « previous », etc.


et ça fonctionne bien entendu avec les clients XMPP qui gèrent les commandes ad-hoc, comme Gajim ou Psi (ici Louise peut utiliser la commande déclarée par Goffi parce qu'elle est dans son groupe « coloc »).
Les avantages sont donc nombreux: facilité d'utilisation, c'est générique (il suffit que le logiciel exporte ses commandes via D-Bus), les permissions sont gérées, et ça fonctionne partout où un client XMPP qui gère les commandes ad-hoc existe. Une preuve de plus que XMPP peut être utilisé bien au delà de la messagerie, et une démonstration de ce que jp - l'interface en ligne de commande de SàT - peut permettre...

Pour finir, une courte vidéo de démo...

Comme d'habitude, pour lire la vidéo, vous devez utiliser un butineur récent (le dernier Firefox/Iceweasel par exemple).
Vous pouvez aussi utiliser VLC (version >=1.1 uniquement), en allant dans le menu « Média/Ouvrir un flux réseau » et en mettant cette URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_7_t%c3%a9l%c3%a9commande_universelle.webm
Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_7_t%c3%a9l%c3%a9commande_universelle.webm"

Cette vidéo est sous la licence Creative Common BY-SA

lundi 10 février 2014

Ligne de commande: passage de jp à argparse

Salut à vous,

jp, l'interface en ligne de commande de « Salut à Toi », vient de subit un gros ré-usinage. C'était auparavant un script fait rapidement qui permettait d'appeler quelques méthodes de SàT. Il est passé à argparse, grâce notamment à la contribution de Dal - merci à lui - et est désormais mieux organisé.

En effet, un des gros intérêts de argparse est sa gestion des sous-commandes, similaire à ce qu'on voit dans les gestionnaires de versions (comme svn co ou hg push). On peut ainsi élaborer des lignes de commandes complexes relativement facilement.
Par exemple, les commandes pour envoyer un message se forment avec « jp message »: « echo 'Salut à Toi !' | jp message -p goffi louise » enverra ainsi un message au contact nommé « louise » présent dans la liste (le roster). Ces commandes sont associées à des modules python (auparavant tout était dans un gros blog unique) plus ou moins court, ce découpage va permettre d'étendre jp facilement.

J'en ai profité pour faire un script de complètement pour zsh, qui s'adapte en fonction des commandes disponible. Il est également capable de compléter le profil quand nécessaire, et il devrait à terme être capable de compléter les jids ou les groupes selon ce qui est disponible dans votre roster.

Complètement de jp dans zsh

Bref, jp a tout ce qu'il faut pour devenir un couteau suisse XMPP, et permettre une utilisation simple et efficace de SàT en ligne de commande ou dans un script.

dimanche 2 février 2014

Ça bouge

Salut à tous,

quelques nouvelles vu que ça fait longtemps que je n'ai pas mis ce blog à jour, et que ça a beaucoup bougé ces derniers mois.

Je travaille désormais à temps plein sur « Salut à Toi », et je ne suis plus tout seul: un ami de longue date, Adrien Cossa (ou « Souliane »), m'a rejoint sur le projet, également à plein temps. Nous avons pour objectif une version grand public pour l'été 2014, et la création d'une coopérative. Une version 0.4 est proche de sortir, avec entre autres de grosses améliorations sur le microblogage. Pour le moment, nous concentrons nos efforts sur l'interface web (Libervia) et console (Primitivus): la première car c'est la plus accessible, et la deuxième parce que c'est celle que nous utilisons principalement. Wix (l'interface WxWidgets) est maintenue au minimum, à terme l'interface Qt (Bellaciao) devrait être l'interface de bureau principale. Nous envisageons égalments des ports sur FirefoxOs, Android et Windows dans un premier temps (bien qu'il soit déjà possible d'utiliser SàT sous windows).

Bref, il y a beaucoup de mouvement. Je vais probablement faire quelques billets dans les semaines à venir pour présenter certaines nouveautés.

dimanche 7 avril 2013

Correction licence dans les fichiers d'Urwid SàText / Licence fix in Urwid SàText files

english below,


comme on me l'a fait remarquer, les en-têtes d'Urwid SàText étaient incorrects, ils indiquaient une GPL v3+ alors que ce projet est désormais en LGPL v3+ (attention, on parle bien d'Urwid SàText, Salut à Toi est lui en AGPL v3+). Les en-têtes sont maintenant corrigés (rev 5cef69971f23).



as somebody pointed out, the Urwid SàText headers were incorrects, they were annoucing a GPL v3+ while the project is now a LGPL v3+ one (carreful, we are talking about Urwid SàText, the « Salut à Toi » project is AGPL v3+). The headers are now fixed (rev 5cef69971f23).


mercredi 13 mars 2013

Conférence à Paris le 18 Mars

Salut à tous,

Grâce à Parinux, je vais faire une conférence lundi prochain pour présenter le projet « Salut à Toi », n'hésitez pas à venir pour discuter si vous vous y intéressez, en tant qu'utilisateur, contributeur potentiel, ou autre.

La conférence aura lieu à l'Espace Public Numérique la Bourdonnais, à côté du Champs de Mars, et commencera vers 19h15. Il faut vous inscrire: l'entrée est libre, mais il faut estimer le nombre de participants. Toutes les infos sont ici: http://www.parinux.org/content/conference-de-presentation-du-projet-%C2%AB-salut-toi-%C2%BB-par-goffi.

Le projet bouge bien en ce moment, c'est le bon moment pour venir discuter :)


vendredi 22 février 2013

Export command to a contact (with video)

G'day everybody,

I have made a small plugin for fun which export the input/outputs of an Unix command to a contact. The principle is really simple: you enter a command (so far it's not implemented in the frontends, so you'll have to directly use the D-Bus API, throught e.g. D-Feet or qdbus), then the contacts allowed to communicate with it, with options if necessary, and voilà !

There are 2 mains advantages by doing this:

the first one is that you can give access to an interpreter to any of your contacts (I'm doing this with FTP in the video, I have also made tests with bc, ipython or zsh), without using heavy tools like ssh which need to create an access account, a client, an opened port, etc. Of course, it's not elaborated, it's not a terminal, but it can help out. The escape sequences (what bring colors and others things in your interpreter) are not managed yet, and it can scramble your output (I had the case with ipython). I'm thinking about catching them, and convert to color with XHTML-IM (well, a first step would be that SàT manage XHTML-IM :p ).

the second one is to help to write bots really quickly: you just have to make a script with read stdin and react to it. You can make a bot in a couple of minutes with any scripting language (sh, Python, Ruby, etc) or others. And you can directly debug it from a terminal, without the need of an XMPP server to test it. To show you how easy it is, I have made a little test in Python, here what it looks like:

#-*- coding: utf-8 -*-
import sys

class QuickBot(object):

    def out(self, msg):
        sys.stdout.write((u"%s\n" % msg).encode('utf-8'))

    def start(self):
            _input = raw_input().decode('utf-8','ignore')
            if _input.startswith('!'):
                args = _input[1:].split()
                    getattr(self, "cmd_%s" % args[0].encode('ascii').lower())(args[1:])
                except (IndexError, AttributeError, UnicodeEncodeError):

    def cmd_salut(self, args):
        self.out(u"à Toi !")

if __name__ == "__main__":
    bot = QuickBot()

The contact just have to enter !command [arguments] to make it do something (here !salut). To add a new command, you just have to create a new method named cmd_my_command, e.g. cmd_toto will add the command !toto. Easy isn't it ?

I have made a short video to show you this, it's in french but easy to understand even without sound, where I export a FTP server.

I have also made a small web widget for Libervia (it's not pushed on the repository yet). Of course it's limited (because of javascript security restrictions), but it allow to show whatever you want beside your conversations, and to enjoy Libervia's layout management (you'll can, for example, put 4 websites on a grid).

See you soon

As usual, to watch the video you can use a recent browser (the last Firefox/Iceweasel for example).
You can also use VLC (version >=1.1 only), by using the "Media/Open Netword Stream" menu and by entering this URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_6_export_commande.webm
Last but not least, you can use mplayer:: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_6_export_commande.webm"

this video is licenced under Creative Common BY-SA

Export de commande à un contact (avec vidéo)

Salut à tous,

edit: la vidéo a été à peu près resynchronisée :)

je me suis amusé à faire un greffon qui exporte les entrées/sorties d'une commande Unix à un contact. Le principe est très simple: vous entrez une commande (pour l'instant ce n'est pas implémenté dans les frontaux, aussi il faut utiliser directement l'API D-Bus, via D-Feet ou qdbus par exemple), ainsi que les contacts autorisés à communiquer avec, quelques options éventuelles et c'est parti !

Il y a 2 intérêts principaux à faire ceci:

le premier est que vous pouvez donner l'accès à un interprète à n'importe lequel de vos contacts (je fais un exemple avec FTP dans la vidéo, j'ai également fait des tests avec bc, ipython et zsh), sans utiliser de machineries lourdes telles que ssh qui demandent la création d'un accès, d'avoir un client, un port ouvert etc. Bon évidemment ça reste très simpliste, ce n'est pas un terminal, mais ça dépanne. Les caractères d'échappements (ce qui donne des couleurs par exemple dans un interprète) ne sont pas gérés, et ça peut donner de la bouillie (j'ai eu le cas avec ipython). J'envisage de les intercepter et les convertir en couleur via XHTML-IM à terme (enfin faudrait déjà gérer XHTML-IM dans SàT :p ).

le second est de permettre de faire des bots très facilement: il suffit de faire un script qui lit l'entrée standard et réagit en conséquence. Vous pouvez faire ainsi un bot en quelques minutes avec n'importe quel langage de script (sh, Python, Ruby, etc) ou autre. Et vous pouvez directement le déboguer dans un terminal, sans avoir besoin de serveur XMPP pour tester. Pour vous montrer la simplicité de la chose, j'ai fait un petit essai en Python, voici ce que ça donne:

#-*- coding: utf-8 -*-
import sys

class QuickBot(object):

    def out(self, msg):
        sys.stdout.write((u"%s\n" % msg).encode('utf-8'))

    def start(self):
            _input = raw_input().decode('utf-8','ignore')
            if _input.startswith('!'):
                args = _input[1:].split()
                    getattr(self, "cmd_%s" % args[0].encode('ascii').lower())(args[1:])
                except (IndexError, AttributeError, UnicodeEncodeError):

    def cmd_salut(self, args):
        self.out(u"à Toi !")

if __name__ == "__main__":
    bot = QuickBot()

Le contact n'a qu'à faire !commande [arguments] pour le faire réagir (ici !salut). Pour ajouter une commande, il suffit de faire une nouvelle méthode nommée cmd_ma_commande, par exemple cmd_toto ajoutera la commande !toto. Facile non ?

J'ai fait une petite vidéo pour vous montrer ça à l'œuvre, désolé pour le décalage du son, j'ai probablement mal réglé un paramètre, et je n'ai pas trop le temps de recommencer 15 fois.

Bon sinon j'ai également fait un petit widget web pour Libervia (il n'est pas encore poussé sur le dépôt). Évidemment c'est limité (à cause des restrictions javascript), mais ça permet d'afficher ce que vous voulez à côté de vos discussions, et de profiter des possibilités de mise en page de Libervia (on pourra par exemple, mettre 4 sites dans une grille).

Enfin, n'oubliez pas que demain aura lieu un hackathon dans les locaux du Loop, cf mon précédent billet.

À bientôt

Comme d'habitude, pour lire la vidéo, vous devez utiliser un butineur récent (le dernier Firefox/Iceweasel par exemple).
Vous pouvez aussi utiliser VLC (version >=1.1 uniquement), en allant dans le menu « Média/Ouvrir un flux réseau » et en mettant cette URL: http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_6_export_commande.webm
Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_6_export_commande.webm"

Cette vidéo est sous la licence Creative Common BY-SA

- page 1 de 3