Goffi non-hebdo

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

Mot-clé - jabber-xmpp

Fil des billets - Fil des commentaires

vendredi 24 octobre 2014

Astuce du jour: utiliser Konqueror pour avoir un aperçu temps réel.

Salut à vous,


comme je fais actuellement de l'édition de XEP (extension XMPP), je dois utiliser les outils fournis par la XSF (XMPP Standards Foundation) en console. Moi ça me va, je peux utiliser mon vim habituel, avec syntastic qui me dit quand il y a une erreur, etc. Seulement j'aimerais bien avoir un aperçu en temps réél de ce que j'édite. Pas de soucis, Konqueror vient à la rescousse, car il a le bon goût d'être pilotable via D-Bus.

J'entre la commande magique suivante dans une console:

$ while true; do; inotifywait -e modify xep-proto-namespace-delegation.xml; echo transformation; xalan -in xep-proto-namespace-delegation.xml -xsl xep.xsl  -out xep-proto-namespace-delegation.html -html; echo rafraichissement; qdbus $(qdbus org.kde.konqueror\*) /konqueror/MainWindow_1 reload; done

et maintenant, à chaque enregistrement de mon fichier, Konqeror m'affichera l'aperçu en cours.

Explications:

while true; do;

ça c'est facile, on tourne en boucle jusqu'à ce que je presse C-c pour tout stopper.

inotifywait -e modify xep-proto-namespace-delegation.xml;

Cette commande très pratique permet de réagir à un évenement inotify. inotify est une fonction du noyau Linux qui fournit des notifications en cas d'évenement. Là je demande à la commande de bloquer jusqu'à ce que le fichier xep-proto-namespace-delegation.xml que je suis en train d'éditer soit modifié. En d'autres termes, ça bloque jusqu'à ce que je fasse mon :w dans vim.

echo transformation; xalan -in xep-proto-namespace-delegation.xml -xsl xep.xsl  -out xep-proto-namespace-delegation.html -html;

Là on est dans la partie spécifique à XMPP, j'indique que je veux transformer mon fichier xml en HTML (xalan est un outil qui utilise XSLT pour transformer de l'XML, le xep.xsl étant fourni par la XSF). Le echo étant bien sûr juste pour m'indiquer qu'on fait la transformation.

echo rafraichissement; qdbus $(qdbus org.kde.konqueror\*) /konqueror/MainWindow_1 reload;

Ici on a la partie intéressante. D'abord j'indique avec le echo qu'on va faire un « rafraichir » sur le Konqueror en cours. Le problème c'est que le nom de service de Konqueror n'est pas toujours le même, c'est org.kde.konqueror-[pid du konqueror en cours]. Il serait assez facile de retrouver le pid, mais ici je préfère utiliser une fonctionnalité de qdbus pas forcément connue (qdbus étant très mal documenté), à savoir l'utilisation du métacaractère (wild card) « * » pour chercher tous les noms de services.

Ici donc, $(qdbus org.kde.konqueror\*) nous donne le nom du service voulu (à supposer qu'il n'y a qu'un Konqueror qui tourne). Nous utilisons à nouveau qdbus pour appeler la méthode « reload » de Konquy (il est possible d'utiliser D-Feet pour retrouver facilement le nom et le chemin de la méthode).

Et nous finissons la boucle avec done. Voilà, plus qu'à appuyer sur [entrée] et dégainer votre vim favori.

Bien évidemment, j'applique ici à l'édition de XEP parce que je suis en plein dedans, mais vous pouvez vous en servir pour, par exemple, faire un aperçu Markdown (avec la commande... markdown), ou pour tout ce qui se transforme en (X)HTML.

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:

./libervia_cont.sh

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 Stéphane (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

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.

overview_libervia

Sécurité

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

static_blog

Ré-usinage

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

announcement_admin

adhoc_administration

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...).

logging

logging_primitivus

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.

Rencontres

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...

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: 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:

Microblogage

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.
vue_globale.png
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.
sat_capture_rich.png
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).
sat_params.png
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.
sat_wysiwyg.png
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.
sat_static_blog.png

Messagerie

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


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.

sat_chat_states.png
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

Divers

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.
sat_radiocol.png

sat_radiocol_invit.pngsat_radiocol_invit_2.png
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

telecommande_-_libervia_-_4.png
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

sat_notifs.png
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

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

sat_directory.png

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

Futur

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 ».

Remerciements:

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.

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.
telecommande_-_jp_-_1_-_aide.png


La syntaxe peut sembler compliquée, mais en réalité elle est vraiment simple:
telecommande_-_jp_-_2_-_vlc.png
  • « 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):



telecommande_-_libervia_-_1.png

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


telecommande_-_libervia_-_2.png
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


telecommande_-_libervia_-_3.png
vlc apparaît bien dans les commandes


telecommande_-_libervia_-_4.png
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.


telecommande_-_gajim_-_1.png

telecommande_-_gajim_-_2.png
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.

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 :)

Goffi

vendredi 22 février 2013

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:

#!/usr/bin/python
#-*- coding: utf-8 -*-
import sys

class QuickBot(object):

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

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

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

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

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

mardi 12 février 2013

Hackathon « Salut à Toi » les 23 et 24 février à Paris.

Les 23 et 24 février prochain aura lieu un hackathon autour du projet « Salut à Toi » dans les locaux du loop à Paris (XIVème). Ce sera l'occasion à la fois de faire avancer certaines fonctionnalités rapidement, et de permettre à ceux qui veulent contribuer de découvrir le code.

Pour mémoire « Salut à Toi » est un client XMPP multi-interfaces qui propose des fonctionnalités comme le microblogage, vous pouvez consulter les billets précédents pour mieux le connaître/essayer la démo.
Le projet est principalement développé en Python, mais on peut utiliser pratiquement n'importe quel langage pour développer un frontal. Le frontal « Bellaciao » est d'ailleurs développé en C++/Qt.

Contactez moi (via les commentaires ci-dessous par exemple ou par courriel à goffi@goffi.org, ou via XMPP à goffi@jabber.fr) si vous souhaitez participer.
Un grand merci au loop pour prêter leur local.

Accès au loop: http://wiki.leloop.org/index.php/Accès

L’événement devrait commencer aux alentours de 10h.

Edit: une liste de choses à faire a été commencée sur le wiki: http://wiki.goffi.org/wiki/Hackathon_22_02_2013, n'hésitez pas à la compléter, ou indiquer si vous souhaitez voir plus particulièrement une des fonctionnalités implémentée (ou y contribuer).

vendredi 11 janvier 2013

Salut à Toi version 0.3.0 (avec la démo en ligne !)

Salut à vous !

Pas de nouvelle, bonnes nouvelles comme on dit ! Le manque d'infos sur le blog ces derniers temps vient du temps passé sur Salut à Toi, qui nous arrive dans une version 0.3.0.

Vraiment beaucoup de nouveautés dans cette version, la 0.2 datant de plus d'un an. Si vous suivez le blog, vous avez pu voir certaines comme la radio collective, l'envoi de tube par XMPP, Primitivus qui devient modal, le passage de tout le project en AGPL v3 ou l'amélioration du microblogage par groupes. D'autres sont encore à l'état d'embryon comme le nouveau frontal « Bellaciao », qui est basé sur Qt, ou le jeu de quiz. Cette version a vu également l'arrivée d'un nouveau site, et divers autres ajouts plus ou moins importants. Je ne vais pas revenir en détails sur tout cela, il y a déjà eu des billets pour la plupart des fonctionnalités citées. Les instructions d'installation se trouvent tout en bas.

Parlons plutôt de la nouvelle démo en ligne qui accompagne cette sortie. Vous pourrez la trouver sur http://www.libervia.org, et il vous suffira de cliquer sur « register » (la version française n'est pas encore disponible) pour créer facilement un compte. Ce compte est associé à une adresse Jabber (un Jabber Id ou jid) qui vous permettra de communiquer avec le reste du monde. N'hésitez pas à rejoindre le salon de SàT (menu « Groups / join room » puis laisser l'adresse par défaut qui est celle du salon: sat@chat.jabberfr.org) pour poser vos questions ou discuter du projet.

Interface web

Cette démo permet principalement de tester l'interface web.


Libervia v0.3.0: envoi d'un message à Louise

Vous pouvez ajouter les composants (widgets) comme désiré par glisser/déposer. Ainsi en déplaçant le nom d'un groupe (bon bien sûr il vous faudra quelques contacts dans votre liste ;) ) vers le centre, vous créez un panneau avec les microblogs de ce groupe. Si vous faites de même avec un contact, vous entamez une discussion. Faites glisser le titre « Contact » de la même manière, et vous aurez un panneau avec tous les microblogs, de tous les groupes. Dans le futur, il devrait être possible de sauvegarder la mise en page pour la retrouver facilement au besoin.

Pour envoyer un message dans une discussion, vous devez cliquer sur la discussion (la barre de titre devient alors rouge, comme pour Louise dans la capture ci-dessus). Quand vous tapez un message, un bandeau vert vous confirme que vous discutez avec une personne ou un salon.

Si vous voulez désélectionner la fenêtre, vous pouvez soit cliquer sur une autre, soit cliquer sur la bandeau gris en dessous de la barre de saisie (c'est la zone de statut). Si vous entrez un texte sans fenêtre sélectionnée, ce sera votre message de statut.

Pour le microblogage par groupe, entrez le groupe à qui vous voulez envoyer un message en écrivant sous la forme « @groupe: message ». Par exemple « @amis: Salut à Vous ! ». Un message sous la forme « @@: salut à tous » sera public (y compris pour des gens non inscrits, cf ci-dessous). Notez le bandeau qui s'affiche en bleu pour un message de groupe, et en rouge pour dire « attention, ce message sera public, y compris pour des personnes que vous ne connaissez pas ».

Vous pouvez également tester la radio collective ou le jeu de tarot (en espérant qu'il fonctionne correctement).

microblogage public

la page de messages publics se trouve à l'adresse http://www.libervia.org/blog/pseudo (par exemple: http://www.libervia.org/blog/goffi). Ici vous trouverez les microbillets ouverts (ceux écrits sous la forme « @@: message ») de la personne, un peu à la manière d'un identi.ca ou d'un Twitter. Cette page est pour le moment très basique, il va sans dire qu'elle s'étoffera un peu avec l'âge.

utilisation avec un client courriel (MUA)

Comme déjà évoqué précédemment, vous pouvez utiliser un logiciel de courriel tel que Thunderbird, KMail ou Mutt pour vous connecter à SàT.


Thunderbird connecté à SàT affiche un message envoyé en XMPP depuis Psi

Pour le moment c'est encore relativement basique (il n'est pas encore possible de créer des dossiers avec IMAP, le compte doit être connecté pendant la consultation, pas d'envoi sur le réseau de courriel traditionnel), mais cela devrait s'améliorer progressivement pour arriver à un serveur de courriel complet.

Cette fonctionnalité ouvre la voie à beaucoup d'expérimentations via les transport XMPP ou des projets tels que Weboob. Grâce à elle, on peut par exemple envoyer des messages via KMail sur IRC, SIP ou SMS (via les transports de Spectrum entre autres). Couplé à Weboob (via une passerelle XMPP que j'ai en projet), on pourra envoyer des messages vers des sites comme DLFP .

On peut envisager des renvois « intelligents »: ça ne vous énerve jamais de recevoir des notifications de messages pour un site, et de devoir vous y connecter via un butineur pour le lire et/ou y répondre ? Il sera tout à fait possible d'automatiser la chose pour tout faire directement depuis votre lecteur de courriel favori.

J'ai d'autres idées en tête, qui devraient venir petit à petit.

Pour configurer, il faut indiquer votre jid (de la forme pseudo@libervia.org) comme adresse courriel, les serveurs IMAP et SMTP à mettre sont www.libervia.org (pour les 2) et les ports respectifs sont 10143 et 10125. Pour le moment, il faut que vous soyez connecté sur l'interface web pour pouvoir consulter avec le lecteur de courriel, inconvénient bien évidemment temporaire. Autre problème: vous ne pouvez pas encore créer de dossier IMAP, aussi il vous faudra enregistrer les messages/brouillons et autres modèles localement (sous Thunderbird, dans les paramètres de votre compte, il faut tout mettre à « Local Folders » dans « Copies et dossiers »).

Une fois la configuration faite, vous pouvez tester avec un contact Jabber: demandez lui de vous envoyer un message normal (les messages avec un sujet) avec - par exemple - Psi ou Gajim, et répondez lui via votre client courriel :)

Installation

L'installation devrait être très facile (pour les GNU/Linuxiens: le multi-plateformes n'est pas encore géré; tout vient à point à qui sait attendre ;) ), le projet étant sur pypi. Ainsi un simple « pip install sat » (en root) devrait suffire. Si vous êtes sur Arch, un paquet dédié a déjà été fait (merci à Link Mauve). Sous une Debian fraîche, les instructions suivantes devraient permettre l'installation (à faire en root):

#apt-get install python-pip python-dev
#pip install sat

Une fois SàT installé, vous pouvez le lancer (en tapant « sat »), puis utiliser l'interface console (en tapant « primitivus »). Pour utiliser Wix, vous devez installer les médias comme indiqué sur le wiki. Et n'oubliez pas qu'il y a désormais un site avec les liens/captures qui vont bien: http://sat.goffi.org

Bon je crois que ce billet est suffisamment long, à bientôt...

Goffi

lundi 3 décembre 2012

Nouvelles de SàT + conférences

Salut à tous,

voici quelques infos en vrac sur l'évolution du projet, ainsi que les vidéos des dernières conférences (voir plus bas).

Une nouvelle version est proche (oui je sais ça fait longtemps que je l'annonce, mais c'est vraiment le cas), je suis actuellement en train d'implémenter les dernières fonctionnalités que je voulais voir dans Libervia.

Primitivus est désormais modal, à la vi: cela signifie que l'ont peut utiliser un mode adapté à ce que l'on fait (pour l'instant il y a 3 modes: normal, commande et insertion). L'intérêt est encore limité (il n'y a qu'une commande :quit), mais le but était de préparer le terrain pour des futures fonctionnalités (je pense notamment à des commandes du style :split et :vsplit).

Une nouvelle extension a vu le jour: un perroquet (parrot). Cette extension simple permet de répéter tous les messages entre 2 contacts. L'idée est de pouvoir faire communiquer 2 personnes (ou plus) sur 2 réseaux différents (par exemple IRC et SIP) sans que celles-ci n'aient besoin de créer un compte ou faire quoi que ce soit de particulier.
Certains bots faisaient déjà ça, l'avantage ici est que la mise en place est simple et rapide. Grâce aux transports XMPP, de nombreuses combinaisons sont possibles. Le principe sera peut-être étendu à terme au microblogage (ainsi en postant un microbillet XMPP, on pourrait le voir copié automatiquement sur d'autres réseaux - par exemple identi.ca, IRC, un forum, etc -).

Une autre extension permet désormais d'utiliser les commandes textuelles de type IRC (par exemple: « /nick nouveau_pseudo » dans une discussion de groupe). Ainsi un perroquet se met en place entre 2 contacts en écrivant « /parrot mon_autre_contact » à un contact.

Après avoir hésité à implémenter le partage de fichiers avant de sortir une nouvelle version, je pense qu'il est plus sage de le faire après, pour éviter de repousser sine die.

J'ai fait cet été une conférence aux RMLL à Genève (voir ci-dessous). Le salon était intéressant, Salut à Toi était à côté des projets amis Weboob et MOVIM.

Une autre conférence a eu lieu aux JDLL. N'étant pas officiellement filmée, nous avons fait une vidéo de fortune que vous trouverez ci-dessous. Les diapos ne sont pas visibles, aussi la présentation est jointe au billet.

Les deux vidéos (et la présentation) sont sous licence CC By-SA. J'en profite pour remercier les organisateurs de ces 2 salons, c'est agréable de pouvoir discuter directement avec les gens qui s'intéressent au projet.

À bientôt, probablement pour l'annonce de la nouvelle version.

Goffi

RMLL 2012

Cette vidéo est sous licence Creative Common BY-SA (merci à l'équipe des RMLL pour la prise de vidéo, vous trouverez cette conférence ainsi que les autres sur http://video.rmll.info)

JDLL 2012

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

Présentations

mercredi 1 août 2012

RMLL + nouveau site pour SàT

Salut à vous,

un rapide billet pour vous annoncer l'ouverture d'un nouveau site de présentation de Salut à Toi: http://sat.goffi.org . Le but était d'avoir un site un peu plus accessible que la page du wiki, et permettant de rapidement se faire une idée du projet. Il est disponible en français et en anglais (tout aide pour une traduction dans une autre langue est la bienvenue).

D'autre part, je suis allé aux Rencontres Mondiales du Logiciel Libre à Genève ce mois-ci, et j'y ai fait une conférence que vous trouverez à cette adresse: http://video.rmll.info/videos/salut-a-toi-communication-libre-federee-decentralisee-et-standard/ . Le salon s'est très bien passé. Je faisais stand commun avec Romain du projet ami Weboob, et j'ai également pu revoir les équipes d'autres projets tels que MOVIM (nous étions voisins), Jappix ou Newebe.

Les visiteurs avaient l'air intéressés par SàT, et de plus en plus de monde connaissait le projet au moins de nom. Espérons que l'année prochaine la version courante sera utilisable par tous...

dimanche 24 juin 2012

Permissions fines pour PubSub

Attention ce billet est technique.

Comme vous le savez peut-être, « Salut à Toi » permet de faire du microblogage par groupes, c'est à dire que vous pouvez envoyer des messages réservés à un groupe de votre roster (par exemple « famille » ou « amis »). Cette fonctionnalité est disponible depuis près d'un an, mais était basée sur un bidouillage assez sale (et qui ne fonctionne qu'avec OpenFire), qui permettait surtout de tester le concept.

Il est nécessaire d'obtenir un système de permissions simple qui va au delà du microblogage, quelque chose de générique, qui étendrait PubSub.
Plutôt que de partir sur des tonnes de nœuds pubsub avec des accès différents à chaque fois (par exemple, un nœud pour la famille, un pour les amis), il faut un moyen de gérer plus finement les permissions, par élément (item).

Aussi j'ai commencé un composant pubsub qui permet de valider le concept, et qui va être utilisé par SàT pour gérer le microblogage. Si l'idée se montre solide en pratique, je vais en parler sur une des listes de diffusion de la XSF pour tenter de la faire standardiser.

Le fonctionnement est assez simple: on prend exactement la même syntaxe que les accès du nœud (« Node Access Models » (http://xmpp.org/extensions/xep-0060.html#accessmodels) qu'on applique aux éléments.
L'accès du nœud est appliqué en premier, puis celui des éléments (c'est à dire qu'un élément avec un accès ouvert (open) ne sera pas accessible à quelqu'un qui n'est pas dans le groupe prévu si le nœud a un accès par groupe (roster)).
Le composant PubSub parse l'élément, applique les permissions, puis le sauvegarde (sans la partie configuration).
Quand quelqu'un veut récupérer les éléments du nœud, le composant pubsub vérifie d'abord qu'il a accès au nœud (en vérifiant le « access model »), puis lui envoi uniquement les élements qui correspondent à son accès.

Imaginons que Louise a un nœud avec 3 éléments: 1 qui a un accès ouvert (A), 1 qui a un accès par groupes, autorisé pour le groupe « famille » (B), et un qui a un accès par groupes, autorisé pour les groupes « Amis », et « Collègues » (C).
Pierre qui est un ami de Louise aura accès aux élements A et C. Le frère de Louise aura accès aux éléments A et B.

Il y a là 2 avantages principaux: premièrement ce protocole reste compatible avec la XEP-0060 - il n'y a donc aucun changement à faire côté client pour retrouver les élements -, et deuxièmement les clients n'ont qu'un seul nœud à surveiller par entitée suivie.

Quelques mots sur l'implémentation de test: j'ai pris pour base le composant PubSub « Idavoll », fait par Ralph Meijer*, que j'ai légèrement modifié pour faire les tests. La difficulté principale est qu'actuellement un composant a un accès très limité au serveur, et ne peut notamment pas acceder au roster des entités.
Pour contourner le problème, j'utilise un protocole expérimental, qui permet d'accéder à un roster distant. Malheureusement, ce protocole ne permet que d'accéder à une partie du roster, aussi j'ai du modifier l'implémentation de Prosody pour récupérer le roster complet.
Enfin, j'ai simplifié en considérant que le créateur du nœud était aussi son propriétaire, et l'auteur des billets (creator = owner = publisher). Ce qui est souvent vrai pour du microblogage, mais limite beaucoup les possibilités offertes par la XEP-0060.

Bref, ça fonctionne, mais il y a encore du travail à faire (et qui doit passer par une phase de standardisation) avant que ça soit propre.

Voici un exemple de dialogue avec le serveur. Nous avons ici Pierre et Louise qui sont amis, Louise est dans le groupe « amis » de Pierre. Ce dernier publie un microbillet comme suit**:
<iq from="pierre@example.net/SàT" type="set" id="H_77" to="sat-pubsub.example.net">
  <pubsub xmlns="http://jabber.org/protocol/pubsub">
    <publish node="urn:xmpp:groupblog:pierre@example.net">
      <item id="8f532cc8-be1d-11e1-b5d3-00c0ca4f1546">
        <entry xmlns="">
          <title>Salut les amis !</title>
          <id>8f532cc8-be1d-11e1-b5d3-00c0ca4f1546</id>
          <updated>2012-06-24T18:56:36+02:00</updated>
          <author><name>pierre@example.net</name></author>
        </entry>
        <x xmlns="jabber:x:data" type="submit">
          <field var="FORM_TYPE" type="hidden">
            <value>http://jabber.org/protocol/pubsub#item-config</value>
          </field>
          <field var="pubsub#access_model">
            <value>roster</value>
          </field>
          <field var="pubsub#roster_groups_allowed">
            <value>amis</value>
          </field>
        </x>
      </item>
    </publish>
  </pubsub>
</iq>

En recevant ceci, le serveur analyse les données de configuration (le formulaire « http://jabber.org/protocol/pubsub#item-config »***), supprime cette partie du message, stocke l'élements avec les permissions voulues (accès par groupes, uniquement pour le groupe « amis »), et envoi une notification uniquement aux membres du groupe « amis », soit à Louise.

La notification est envoyée comme suit:

<message to="louise@example.net" from="sat-pubsub.example.net">
  <event xmlns="http://jabber.org/protocol/pubsub#event">
    <items node="urn:xmpp:groupblog:pierre@example.net">
      <item id="8f532cc8-be1d-11e1-b5d3-00c0ca4f1546">
        <entry xmlns="">
          <title>Salut les amis !</title>
          <id>8f532cc8-be1d-11e1-b5d3-00c0ca4f1546</id>
          <updated>2012-06-24T18:56:36+02:00</updated>
          <author><name>pierre@example.net</name></author>
        </entry>
      </item>
    </items>
  </event>
</message>

Rien ne permet de savoir à quel groupe Louise appartient dans le roster de Pierre (c'est une notification traditionnelle). Même si un client XMPP ne gère pas les permissions fines, il recevra les notifications et pourra les traîter comme d'habitude.

J'ai relicencié le composant en AGPL V3, vous pouvez trouver le code dans mon dépôt (http://repos.goffi.org/sat_pubsub/). J'invite les différents membres de la communauté XMPP (auteur de clients/serveurs ou autre) à utiliser le code, ou à apporter des critiques au principe.

Les permissions fines sont à mon avis une fonctionnalité essentielle et nécessaire dans XMPP, et elles vont être de plus en plus utilisées par le projet « Salut à Toi ». Il s'agissait de la dernière grosse brique de l'architecture de SàT, une nouvelle version devrait suivre rapidement.


Restez en ligne :)
Goffi

* Ralph Meijer est aussi un contributeur de Twisted et l'auteur de la bibliothèque « Wokkel » qui sont au cœur de SàT, en plus d'être un des auteurs de la XEP PubSub. Un grand merci à lui pour ses précieuses contributions.
** Normalement le microblogage utilise PEP, mais les limitations des composants évoquées plus haut m'ont obligé à utiliser une variante du protocole qui ne passe pas par PEP.
*** J'ai du utiliser un espace de nommage en « jabber.org » plutôt qu'un « goffi.org », comme j'aurais du le faire pour une fonctionnalité expérimentale, pour pouvoir être parsé par le service PubSub de Wokkel.

- page 1 de 2