Planete JabberFR

Libervia/Salut à toi aux RMLL à Beauvais toute la semaine

Salut à tous,

Nous serons présents avec Libervia/Salut à Toi pendant toutes les Rencontres Mondiales du Logiciel Libre à Beauvais, avec présence aux journées grand public (moi je n'y serai qu'à partir de dimanche, Souliane dès demain), puis au village associatif, et 3 conférences:

  • conférence « Libervia : repenser nos communications » lundi 6 juillet de 14h40 à 15h20 (salle 124) ;
  • table ronde/débat sur les nouveaux médias avec Timothée Jaussoin (Edhelas) de Movim, Pouhiou (Framasoft), Luc Fievet (April), Arno* (SPIP/SeenThis), Souliane et moi pour SàT, le lundi 6 juillet de 16h20 à 18h (amphi Brunuel) ;
  • PubSub, microblogage et XMPP jeudi 9 juillet de 15h00 à 15h20 (salle 203/204).

Si vous passez dans le coin, c'est l'occasion de discuter de vive voix.

Parlons XMPP - épisode 3 - le cœur et les extensions (suite)

(pour lire les épisodes précédents, suivez l'étiquette correspondante).
 
En plus de cette partie centrale, des fonctionnalités peuvent être ajoutées, d'où le X de XMPP (pour eXtensible).
 
Les extensions sont rédigées sous la forme de « XEP » (XMPP Extension Protocol), idée héritée — si je ne m'abuse — de Python. C'est de cela qu'on parle quand on voit les cryptiques XEP-0XXX dans les fonctionnalités gérées d'un serveur ou d'un client. Pas besoin évidemment de savoir cela pour utiliser un client XMPP, mais il peut être utile de lire une extension (elles se trouvent sur https://xmpp.org/xmpp-protocols/xmpp-extensions/) pour bien comprendre à quoi sert une fonctionnalité. Deux parties sont particulièrement utiles sans avoir à entrer dans les détails d'implémentation : la partie « abstract » (résumé) tout en haut qui indique ce que la XEP fait, et la section « introduction » (la toute première section) qui explique un peu plus les raisons et les cas d'utilisations de l'extension.
 
résumé de la XEP-0045
 
Une XEP peut décrire une fonctionnalité, une procédure (par exemple la XEP-0001 explique le cycle de vie des XEPs elles-mêmes), un héritage historique (c'est à dire le fonctionnement de quelque chose créé avant la XMPP Standard Foundation), une information (comme des bonnes pratiques), voire une blague (si si, y'a des histoires de toto dans les XEPs aussi !). Elle peut avoir plusieurs statuts (expliqués dans la XEP-0001, je ne sais pas s'il existe une version traduite en français quelque part). Il est intéressant de noter que beaucoup de XEPs sont « experimentales », et donc techniquement pas (encore) des standards, mais souvent implémentées tout de même. De telles XEPs peuvent changer fortement avant le passage au statut de « brouillon » (« Draft »), puis de standard final.
 
Pourquoi je vous parle de tout ça ? Pour que vous compreniez bien une chose: XMPP ce n'est pas que de la messagerie instantanée !
 
Voici quelques exemples d'extensions intéressantes:
 
  • Extended Stanza Addressing (Adressage de « stanzas » étendue, XEP-0033): permet d'envoyer un message à plusieurs destinataires à la fois, ou de faire des copies carbones ou des copies carbones invisibles (comme le … oui oui vous voyez où je veux en venir)
  • Multi-User Chat (Discussions multi-utilisateurs, XEP-0045): les discussions de groupes, à la IRC.
  • Ad-Hoc Commands (commandes de circonstance, XEP-0050): un système générique pour gérer tout type de commandes. Lié aux permissions des utilisateurs, c'est un outil absolument génial !
  • vcard-temp (Cartes virtuelles, version temporaire, XEP-0054): la façon historique de gérer des cartes de visites, une sorte de profil public. Une nouvelle extension va la remplacer à terme (la XEP-0292)
  • Jabber Search (Recherche Jabber/XMPP, XEP-0055): pour chercher des jid, utilisé en général par les annuaires.
  • Publish/Subscribe (Publication/Abonnement, XEP-0060): un très gros morceau, qui permet la publication de tout type d'information, et sa récupération en fonction de permissions, avec un système de notification en temps réel.
  • XHTML-IM (XEP-0071): pour publier avec un sous-ensemble de XHTML, c'est à dire avec une mise en forme (écrire en gras ou mettre une image par exemple).
  • Gateway Interaction (Communication avec les passerelles, XEP-0100): permet de gérer les passerelles, c'est à dire des liens avec des réseaux extérieurs
  • Personal Eventing Protocol (protocole d'événements personnels, XEP-0163): une sorte de Publish/Subscribe simplifié
  • Jingle (XEP-0166): Négociation de session pair à pair (P2P), avec un grand nombre d'applications possibles, la plus connue étant la visioconférence.
  • Serverless Messaging (Communication sans server, XEP-0174): permet, comme indiqué, de se passer des serveurs
  • Message Archive Management (gestion des archives des messages, XEP-0313): permet de récupérer des messages ou autre (ça fonctionne aussi avec publish/subscribe) selon certains critères comme une date. Utilisé notamment pour avoir votre historique de conversations sur votre serveur (et ainsi y accéder depuis tous vos clients).
 
Et dites-vous bien qu'on ne vient que de gratter la surface.
 
Plusieurs de ces extensions seront expliquées dans de futurs articles.
À noter aussi qu'on utilise souvent des noms courts pour désigner les extensions par exemple « MAM » pour « Message Archive Management ». Ces noms sont normalement indiqués en fin de XEP, dans les appendices (« Document information »): c'est le « short name » (nom court).
 
Avec toutes ces extensions, on va se retrouver avec des clients ou serveurs qui gèrent l'une ou l'autre, comment se mettre d'accord ? Eh bien grâce à une autre extension (mais tellement indispensable et couramment implémentée qu'on peut presque la considérer comme standard de base): « Service Discovery » (découverte de services, XEP-0030, nom court : « disco »)).
 
Le principe est simple, chaque client ou serveur ou composant (un composant est un service qui vient se greffer à un serveur, voir plus bas) dit qui il est, ce qu'il sait faire, ou les éléments associés.
 

qui il est

Une adresse XMPP (le jid) peut être utilisée par beaucoup de monde: un serveur, un client, un « bot » (robot, nom qu'on utilise pour un programme qui automatise des tâches, agissant souvent comme un client), une passerelle, etc.
 
Quand un client (ou autre) en voit une, il est utile de savoir à quoi on parle, par exemple pour afficher de telle ou telle façon dans l'interface (c'est grâce à cela que votre client peut afficher une passerelle d'une autre façon que les clients normaux).
 
C'est l'identité de disco qui permet ça, et elle donne une catégorie (par exemple « client » ou « serveur »), un type (dans client par exemple ça peut être « bot », « web », « game » — jeu —), et un nom libre (par exemple « ejabberd »). Vous avez une liste des différentes catégories et les types associés ici : https://xmpp.org/registrar/disco-categories.html.
 

ce qu'il sait faire

 
XMPP grâce à son côté extensible, est très riche en fonctionnalités, aussi il est indispensable de savoir ce que le logiciel avec lequel on discute est capable de faire. Ce sont les « features » (fonctionnalités) indiquées par disco, c'est pour cette raison que parfois quand vous discutez avec quelqu'un une icône est grisée, par exemple la visioconférence: cela indique que le client en face indique qu'il ne sait pas la faire, ou plus exactement n'indique pas qu'il sait la faire.
 
Ces fonctionnalités sont liées à des espaces de nommage (namespaces) qui sont indiqués dans les XEPs concernées, vous avez aussi une liste qui permet de retrouver une partie des XEPs depuis un espace de nommage ici : https://xmpp.org/resources/schemas.
 

les éléments associés

 
En plus de l'identité et des fonctionnalités disponibles, une entité XMPP peut avoir des éléments associés. Ce peut être un serveur qui indique que des salons de discussions sont disponibles à telle adresse, ou une passerelle vers tel réseau.

 

essayons

Pour que cela soit plus clair, prenons un exemple. « jp », l'interface en ligne de commande de Salut à Toi, permet d'obtenir le disco d'une entité avec la commande « jp info disco », essayons avec le serveur jabber.fr :
 
 
% jp info disco jabber.fr
Features:
 
http://jabber.org/protocol/commands
http://jabber.org/protocol/disco#info
http://jabber.org/protocol/disco#items
http://jabber.org/protocol/stats
iq
jabber:iq:register
jabber:iq:time
jabber:iq:version
msgoffline
presence
presence-invisible
urn:xmpp:time
vcard-temp
--
Identities:
 
ejabberd (server/im)
--
Extensions:
 
http://jabber.org/network/serverinfo
 
--
Items:
 
[chat.jabberfr.org]
[irc.jabberfr.org]
[j2j]
[presence.jabberfr.org]
[proxy.jabberfr.org]
[users.jabberfr.org]
 
 
On voit ici que jabber.fr sait gérer la version historique des vcards (vcard-temp, XEP-0054) ou les commandes ad-hoc (http://jabber.org/protocol/commands, XEP-0050), qu'on discute avec un serveur (server/im) qui s'appelle « ejabberd ». On voit également que plusieurs services sont disponibles, par exemple chat.jabberfr.org. Regardons de plus près :
 
% jp info disco chat.jabberfr.org
Features:
 
http://jabber.org/protocol/disco
http://jabber.org/protocol/muc
http://jabber.org/protocol/muc#unique
jabber:iq:browse
jabber:iq:last
jabber:iq:register
jabber:iq:time
jabber:iq:version
urn:xmpp:ping
vcard-temp
--
Identities:
 
Public Chatrooms (conference/text)
--
Items:
 
[...]
JabberFR (13) [jabberfr@chat.jabberfr.org]
[...]
 
 
On voit qu'on a affaire à un service de salons de discussions (conference/text), qui utilise le protocole « Multi-User Chat » (discussions multi-utilisateurs, http://jabber.org/protocol/muc), qui est à ce jour le seul disponible pour les discussions de groupes (nous y reviendrons). Les éléments « Items » contiennent ici la liste des salons, avec le nom, le nombre d'occupants, et le jid correspondant, j'ai tronqué la liste qui était très longue.
 
Dans les informations de jabber.fr, vous avez peut-être remarqué la section « extensions », il s'agit d'une XEP (la XEP-0128) qui permet d'étendre disco pour tout type d'informations, dans le cas d'ejabberd ici, c'est pour indiquer les adresses de contact du serveur, mais elles ne sont pas renseignées pour jabber.fr.
 
Ci-dessous, la fenêtre disco de Gajim:
 
disco chez Gajim
La première fois que j'ai essayé XMPP, avec Psi au début des années 2000, j'ai été un peu intimidé par le menu « service discovery », qui permet d'afficher quasi directement les informations que nous venons de voir. Ce genre de menu est souvent, à mon sens, affiché un peu trop « brut » dans les clients XMPP : utiliser disco directement (c.-à-d. en dehors de ce qui est automatisé par le client) relève déjà de l'utilisation avancée.
 
 
En bonus, je vais rapidement évoquer l'extension « software version » (version logicielle, XEP-0092) qui permet, comme son nom l'indique, de savoir à quel logiciel on parle, et le système d'exploitation utilisé. jp permet d'afficher ces informations avec « jp info version », essayons sur jabber.fr :
 
% jp info version jabber.fr
Client name: ejabberd
Client version: 2.1.13
Operating System: unix/linux 3.2.0
 
On connaît désormais la version d'Ejabberd utilisée, pratique quand on veut savoir si une fonctionnalité est présente, ou un bogue corrigé. Et cela fonctionne avec toute entité qui implémente la XEP, pas uniquement les serveurs:
 
% jp info version chat.jabberfr.org
Client name: MU-Conference
Client version: 0.9-svn (Jan 27 2014)
Operating System: Linux 3.2.0-4-amd64
 
Voilà, connaître les extensions permet de vraiment savoir ce qu'on peut faire avec un client ou un serveur. La prochaine fois je pense m'attaquer aux discussions de groupes, et voir ce qui change par rapport à IRC.

Parlons XMPP - épisode 2 - le cœur et les extensions

Maintenant qu'on sait de quoi on parle, voyons à quoi ressemble le cœur du protocole.
 
 
À la base XMPP c'est 3 (anciennement 2) RFCs: la 6120, la 6121, et la 6122 (il y en a d'autres, mais ces 3 là sont les principales). Elles expliquent tout le cœur comme l'envoi de messages, les informations de présence, les statuts, etc.
 
Sans trop entrer dans les détails qui vont concerner surtout les développeurs, on peut rapidement expliquer que XMPP se base sur 3 types d'éléments, ou « stanzas »:
 
  • <presence/> pour indiquer principalement… notre information de présence (parfois on y accroche aussi d'autres choses comme des infos sur notre avatar ou nos capacités, mais ne nous égarons pas). La présence est relayée par votre serveur à toutes les personnes à qui vous avez donné l'accès (voir plus bas).
      On peut associer un état et un message à notre présence. L'état peut être un des suivants (les noms peuvent changer selon votre client)
    • disponible (par défaut): vous êtes en ligne normalement
    • away (absent): vous êtes absent pour une courte période
    • chat (discussion): vous avez particulièrement envie de parler
    • dnd (do not disturb – ne pas déranger): vous êtes occupé (souvent appelé « busy » aussi dans les clients)
    • xa (eXtended Away – durablement absent): vous êtes absent pour une longue période
      Le message de statut permet spécifier en langage clair votre disponibilité (par exemple « je regarde un film, ne pas déranger »), même si en pratique c'est utilisé pour tout type de message (beaucoup de gens mettent une citation par exemple).
  • <message/> un envoi de message de type j'envoie et j'oublie. Il existe 5 types de messages :
    • chat (discussion): le plus connu, celui qui sert à la messagerie instantanée simple
    • error (erreur): celui-là est normalement géré par les logiciels directement, il se traduit souvent par un fenêtre vous indiquant dans votre client que quelque chose s'est mal passé
    • groupchat (discussion de groupe): comme « chat », mais pour les discussions à plusieurs. En pratique la différence ne concerne que les développeurs et cela devrait être transparent dans le client
    • headline (manchette): un message important, une annonce. Normalement, ces messages ne sont pas gardés hors ligne, aussi si vous n'êtes pas connecté au moment du message, vous ne devriez pas l'avoir. Ces messages ne sont pas faits pour y répondre. Un exemple typique est une annonce de maintenance du serveur imminente
    • normal : un type méconnu et pourtant intéressant. Il s'agit d'un message ayant généralement un sujet, et en dehors d'une conversation instantanée. Oui oui, exactement comme un courriel ! C'est plus ou moins son équivalent XMPP.
    À cela s'ajoute la gestion des « thread » (fils de discussion), mais nous en parlerons une autre fois.
  • <IQ/> (Info/Query – information/requête): utilisé pour tout ce qui est de type question/réponse (il est obligatoire de répondre à une requête <IQ/>, au pire par une erreur). Son utilisation concerne plutôt les développeurs, c'est la base de la plupart des fonctionnalités que vous utilisez : cet élément sert à dire « je veux connaître ou modifier telle information »
 
Je ne veux pas trop entrer dans les détails techniques, mais il me semble essentiel de connaître les différents types de messages et de présences pour bien comprendre son client.
 
À noter un point excellent avec XMPP, et largement sous exploité : XMPP sait nativement gérer les différentes langues, grâce à son héritage de XML (xml:lang). Autrement dit, vous pouvez spécifier un message normal ou de statut à la fois en français, en allemand et en slovaque. C'est un atout majeur que nous comptons bien exploiter dans Libervia.
 
Passons maintenant à une autre partie essentielle : la liste de contacts.
 
Dans le monde XMPP, on l'appelle « roster » (qui se traduit par « liste » ou « tableau de service »). À chaque contact que vous y ajoutez, vous pouvez associer 0, 1 ou plusieurs groupes (« famille », « amis », etc), un nom (donné par l'utilisateur et non le contact), ainsi qu'une information d'abonnement (« subscription »).
 
L'abonnement permet de savoir si vous avez autorisé votre contact à avoir votre information de présence, et si le contact vous a autorisé à voir la sienne. C'est pour cela que quand quelqu'un vous ajoute dans sa liste de contacts, votre client, par exemple Gajim, vous demande si vous l'autorisez à connaître votre information de présence. Il est tout à fait possible d'avoir autorisé un contact à vous voir sans qu'il ne vous autorise à le voir (et inversement évidemment), voir qu'aucun des deux ne soit autorisé à voir la présence de l'autre (mais je pense que la plupart des clients suppriment le contact du roster dans ce cas).
 
Les groupes sont associés aux contacts, et non l'inverse (ce n'est pas une liste  liste de groupes qui contiennent des contacts), c'est la raison pour laquelle il est impossible d'avoir un groupe sans contact associé (c.-à-d. vide).Là encore les groupes sont à mon sens sous-exploités dans le monde XMPP, nous y reviendrons.
 
 
Voilà pour aujourd'hui. J'ai finalement préféré couper la partie extensions pour le prochain article, pour éviter de trop charger.
 

Parlons XMPP - épisode 1 - les bases

Salut à Vous,
 
Bon, comme je trouve vraiment dommage que XMPP soit mal connu ou compris, j'ai décidé de commencer une série d'articles pour vous expliquer ce que c'est.
 
Ces articles sont destinés à un public averti, mais pas forcément de développeurs, et j'espère qu'il vous aidera à comprendre les intérêts de ce protocole et à mieux utiliser vos logiciels.
 
Étant développeur du projet Salut à Toi, je donnerai probablement souvent des exemples avec.
 
Donc commençons par les bases.
 
XMPP c'est quoi ? C'est un protocole de messagerie et de présence standard, et extensible (XMPP signifie « eXtensible Message and Presence Protocol », soit « protocole de présence et messagerie extensible »), c'est à dire qu'il est documenté et utilisé comme une référence (ici validée par un organisme de standardisation : l'IETF). Ceci permet à tous les logiciels qui l'utilisent de parler la même langue, et d'être interopérables. Il s'agit d'un protocole libre, c'est à dire que vous pouvez obtenir la documentation et l'utiliser gratuitement, sans restriction légale ou technique, et que vous pouvez l'améliorer ou le modifier (mais si vous déviez et que vous ne proposez pas vos modifications, vous risquez de perdre la compatibilité avec les autres logiciels).
 
XMPP est décentralisé et fédéré, c'est à dire que vous pouvez avoir des serveurs un peu partout, ils pourront (s'ils ne l'interdisent pas explicitement dans leur configuration) communiquer entre eux.
 
C'est un protocole populaire, de nombreux logiciels permettent de l'utiliser : en serveurs on peut citer Prosody, Ejabberd, Open Fire, Tigase, Mongoose.im, Metronome, etc. En client: Gajim, Poezio, Pidgin, Psi, Swift, Jappix, Movim, et bien sûr Libervia/Salut à Toi (je vous laisse chercher les sites officiels vous-même). Une liste plus complète (serveurs, clients et bibliothèques) est disponible ici: https://xmpp.org/xmpp-software/.
 
Si vous ne voulez pas installer un serveur chez vous, de nombreux serveurs publics sont disponibles: en France on peut citer ceux de l'APINC (jabber.fr, im.apinc.org, etc), de La quadrature de Net, etc. Une petite liste (la page n'est pas à jour, n'hésitez pas à contribuer !) est disponible ici en français, sinon vous pouvez regarder sur https://xmpp.net/directory.php ou http://www.jabberes.org/servers/ (oui il y en a beaucoup !). Mais je vous recommande très fortement d'installer votre propre serveur ou de vous approcher d'une association locale avec qui vous pouvez communiquer facilement : d'une part si vous installez vous-même, ça vous permet de mieux maîtriser vos données, et d'autre part si vous voulez une fonctionnalité en particulier, il vaut mieux pouvoir demander facilement aux administrateurs une mise à jour.
 
Bon maintenant qu'on sait tout ça, essayons de créer un compte.
 
Une fois un serveur installé ou un serveur public choisi, vous pouvez créer un compte. Vous aurez alors une adresse, un « jid » (pour Jabber ID, « Jabber » est l'ancien nom du procole, ce nom appartient désormais à une société privée, il est juste gardé ici pour des raisons historiques).
 
Cette adresse est de la forme nom_local@domaine.tld/ressource, ou en forme canonique (ce qu'on appelle le « bare jid ») nom_local@domaine.ext. Par exemple la mienne est goffi@jabber.fr . Celà ne vous rappelle rien ? Et oui ça ressemble beaucoup aux adresses de courrier électronique !
 
Mais alors c'est quoi la ressource ? La ressource est liée au logiciel client que vous utilisez pour vous connecter : XMPP a été pensé dès l'origine pour permettre à plusieurs clients de se connecter en même temps (il y a 10 ans, peu de protocoles de messagerie le permettaient, et se reconnecter ailleurs signifiait souvent la déconnexion du premier client), et cette ressource permet de les identifier. Autrement dit, vous n'avez une ressource que quand vous êtes connectés, et elle est différente pour chaque client que vous utilisez : si je me connecte avec Libervia, Gajim et Movim, j'aurais 3 ressources différentes.
 
Il y a eu plusieurs écoles pour nommer la ressource, parfois on s'en servait pour indiquer le lieu de connexion (« maison », « bureau »), les clients mettaient souvent leur nom par défaut (« gajim », « psi »). Aujourd'hui, il est admis qu'il vaut mieux avoir une ressource non prédictible, car sinon quelqu'un peut savoir si vous êtes connectés ou pas (même si vous ne souhaitez pas que ça se sache) en faisant une requête à cette ressource. Il vaut donc mieux laisser le serveur choisir la ressource pour nous.
 
Enfin, votre ressource est associée à une priorité: elle permet de déterminer, si plusieurs ressources sont connectées, laquelle va recevoir le message. Mais nous y reviendrons plus tard.
 
Dans le prochain épisode je vous parlerai des extensions et de la découverte de fonctionnalités.
 
Voilà, dites-moi si vous êtes intéressés par cette série, si cela vous semble trop technique, ou si vous avez des remarques ou des corrections à faire. Je publie la série en même temps sur DLFP, et le tout est sous licence CC By-SA, donc n'hésitez pas à réutiliser, diffuser ou modifier !

Campagne d'adhésion pour financer le développement de Libervia

Salut à vous !
 
 
Ça y est, on y est, c'est le lancement de la campagne d'adhésion à l'association « Salut à Toi ». Cette campagne, si elle réussit, va nous permettre de nous salarier et développer le projet pendant 1 an, de sortir une version stable pour la fin d'année, et de préparer plusieurs évolutions.
 
Avant tout un petit rappel, sur Libervia et Salut à Toi. Ci dessous une vidéo courte (3 min) expliquant le projet:
Libervia est donc un outil de communication (ou « réseau social » comme disent certains) qui se distingue par plusieurs points. Il est multi-interfaces, et non web uniquement, il se base sur un standard (XMPP) ce qui le rend compatible avec d'autres logiciels comme Gajim, Jappix ou Movim, et il suit une ligne éthique et philosophique claire, notamment expliquée dans son contrat social.
 
Le projet est déjà bien avancé et utilisable, il est disponible dans des distributions GNU/Linux comme Debian ou Arch (mais les versions commencent à dater, nous en avons une nouvelle proche de sortir), et vous pourrez voir en consultant le site officiel qu'il offre des fonctionnalités originales.
 
Nous souhaitons qu'il soit développé dans un cadre éthique et solidaire aussi nous cherchons à nous salarier à travers une association loi 1901 autogérée.
 
Si la campagne est un succès, nous prévoyons les évolutions suivante:
  • une version stable et utilisable par le grand public pour la fin d'année 2015
  • des passerelles vers d'autres réseaux libres, comme Diaspora*, SeenThis, ou SMTP
  • une version permettant des connexions anonymes (via TOR)
Ceci est réalisable en 2015. Pour l'année 2016 nous envisageons:
  • la création d'un boitier pré-installé, qu'il suffira de brancher sur sa connexion Internet
  • l'intégration du projet dans d'autres logiciels libres comme Blender, GIMP ou Inkscape, afin de pouvoir travailler avec ses contacts sans quitter lesdits logiciels. Cette partie est particuièrement excitante et ambitieuse, mais demandera beaucoup de travail.
 
Afin de ne pas surcharger ce billet je n'entrerai pas plus dans les details, nous avons rédigé une dépêche pour le site de référence linuxfr expliquant plus en longueur (et de façon plus technique) les projets à venir (je mettrai le lien quand la dépêche sera publiée). Le site officiel est bien sûr une autre source d'informations, et vous pouvez nous rejoindre sur le salon XMPP sat@chat.jabberfr.org.
 
Nous travaillons à plein temps sur le projet avec nos propres resources, aussi la question du financement se pose sérieusement. Si vous voulez soutenir un projet qui a de nombreuses possibilités, libre et éthique, c'est le moment ! http://salut-a-toi.org/adhesion.html
 
Vous pourrez nous rencontrer cet été:
  • à Pas Sage En Seine cette semaine: conférence « Libervia : repenser nos communications » jeudi 18 juin de 13h à 14h
  • au RMLL à Beauvais, avec 3 conférences et la présence au village toute la semaine:
    • conférence « Libervia : repenser nos communications » lundi 6 juillet de 14h40 à 15h20 (salle 124) ;
    • table ronde/débat sur les nouveaux médias avec Timothée Jaussoin (Edhelas) de Movim, Pouhiou (Framasoft), Luc Fievet (April), Arno* (SPIP/SeenThis), Souliane et moi pour SàT, le lundi 6 juillet de 16h20 à 18h (amphi Brunuel) ;
    • PubSub, microblogage et XMPP jeudi 9 juillet de 15h00 à 15h20 (salle 203/204).
  • en Allemagne les 22 et 23 août pour la FrOSCon (University of Applied Sciences Bonn-Rhein-Sieg), pas de conférence cette fois, mais un stand.
 

Maintenance le dimanche 26 avril 2015

Comme vous l’avez sûrement remarqué, nos certificats pour les domaines jabber.fr et jabberfr.org sont expirés. La plupart des clients affichent un message d’avertissement à chaque connexion à cause de ça.

De nouveaux certificats ont été générés, et seront mis en place ce dimanche 26 avril 2015 aux environs de 10h du matin, heure française, entraînant une coupure de quelques minutes.

Comme à notre habitude, vous serez informés de l’état de la maintenance par des mises à jour de ce billet. :)

Mise à jour du 26/04/2015 à 11h15 : après quelques péripéties avec le nouveau certificat, la maintenance est terminée !

Maintenance exceptionnelle le dimanche 29 mars 2015

Bonjour à tous !

Suite à une faille présente dans une bibliothèque que Prosody utilise, ce serveur a été redémarré en urgence. Pour plus d’informations sur cette faille, vous pouvez lire les notes de version de Prosody 0.9.8 (en anglais)

mu-conference, notre serveur de conférences, sera redémarré ce mercredi premier avril à 20h (et c’est pas une blague !) afin de corriger quelques problèmes de connexion.

Votre nouvel administrateur, Link Mauve. :)

Mise à jour du 01/04/2015 à 21h45 : mu-conference a été correctement relancé, la connexion à la base de données est rétablie.

Changement dans l’équipe d’administration du serveur JabberFR

Bonjour,

Suite à une décision unanime des administrateurs du serveur JabberFR, une nouvelle personne rejoint l’équipe : il s’agit d’Emmanuel Gil Peyrot (Link Mauve). Certains d’entre vous le connaissent déjà vu qu’il est un membre actif de JabberFR.

J’en profite également pour officialiser le départ de Grégoire Menuel (omega). Merci à toi pour toutes ces années de bonheur. Dif tor heh smusma.

L’équipe d’administration est donc actuellement composée de deux personnes : Link Mauve et moi-même (elghinn).

Maintenance exceptionnelle le dimanche 22 mars 2015

Une maintenance exceptionnelle du serveur de JabberFR, entraînant l’arrêt complet de tous les services, aura lieu dans la journée.

Vu le caractère exceptionnel, pas d’heure de début ni d’heure de fin, et encore moins de programme. Plus d’informations en fin de journée.

Mise à jour de 12h00 : Mise à jour de prosody vers la 0.9.7 et désactivation du mod legacyauth.

Firefox OS: pas encore convaincu

C'est pas que j'aime les téléphones, mais j'ai un petit côté curieux et mon dernier téléphone premier prix a lâché dans des circonstances pour le moins mystérieuses (et pile 2 mois après la fin de la garantie). Manque de bol, ça tombe à un moment où je n'ai pas de ligne fixe ni Internet, et où j'ai besoin d'être joignable.

C'est pas que j'aime acheter des trucs un peu gadgets, mais on parle de Firefox OS en ce moment. Vu qu'il y a un téléphone à vraiment pas cher, et que j'envisage de porter « Salut à Toi » sur cette plate-forme, c'est l'occasion.

Premier essai: une boîte qui fait parler d'elle pour sa campagne de pub sexiste actuellement (j'ai commandé avant ladite campagne). Tout se passe normalement, confirmation, j'attends un peu. Et je reçois un gentil courriel qui me traite de pirate (potentiel), et me demande tenez-vous bien: une photocopie recto-verso de ma carte d'identité et un justificatif de domicile, rien que ça ! Y'a des gens qui acceptent ça sérieusement ? En tout cas j'ai gentiment annulé ma commande et été voir ailleurs, en laissant un message pour l'occasion.

Deuxième essai plus concluant, j'ai tout de même perdu une semaine au passage, à un moment où j'avais besoin d'être joignable...

Le gadget arrivé, je peux tester. Pas trop de commentaires sur le téléphone, ce sont tous des clones aujourd'hui de toute façon.

Ça démarre, le petit renard/panda avec sa queue en feu est joli, ça donne une impression de fini, c'est sympatoche. On me demande si je veux être géolocalisé: bon on me demande c'est déjà ça, mais pourquoi ? Je réponds bien évidemment non. Plus tard la page d'accueil me le redemandera, je ne sais pas pourquoi, mais je sais que ça ne me plait pas du tout. Petit message sur les logiciels libres et l'esprit d'ouverture, j'aime bien.

Après ça ressemble à du très classique: des boutons, des applications. J'ai le regret de voir des saletés comme fb et twitter pré-installées, je suppose que ça vient du constructeur et je supprime. Le système de recherche est pas mal.

Je vérifie la version, c'est Firefox OS 1.3. Je regarde rapidement le « firefox marketplace », là encore du très classique. Je regrette beaucoup l'absence d'indication « logiciel libre »: ça m'aiderait à choisir beaucoup plus sereinement ce que je peux installer. C'est d'autant plus malheureux que Mozilla en fait son cheval de bataille. F-droid devrait être pris en exemple ici, non seulement tout est libre dessus, mais en plus on a des liens vers le code source, et les « anti-fonctionnalités » (espionnage, publicité, etc) sont indiquées clairement.

Aussi j'ai l'impression que beaucoup « d'applications » sont en fait des sites webs déguisés, et là ça me ferait une belle jambe d'avoir du libre. J'espère que Firefox OS ça ne veut pas dire tout avoir sur des serveurs distants: je veux des vrais logiciels sur mon téléphone, qui marchent hors ligne.

Je cherche une application de navigation GPS, qui gère au possible le hors ligne, Evernav me semble la plus adaptée. C'est une application très basique de navigation, qui se proclame la seule sur Firefox OS qui fait de la navigation avec indication des tournants. Il est marqué « fonctionne sans connexion », bien je cherche justement de la navigation hors ligne. La description n'est pas traduite, et l'application n'est pas disponible en français... moi ça ne me gêne pas, mais je pense que ça ne doit pas être le cas de tout le monde.

En pratique, l'application est quasi inutilisable: la « navigation hors ligne » est en fait un cache et je ne vois pas trop comment on peut lui indiquer quelles cartes on veut précisément. Je n'ai pas pu trouver ce que je cherchais, pas gégé. En plus la création d'un compte est obligatoire pour utiliser le guidage  (!), j'en ai fait un vite fait en utilisant une adresse jetable, mais le principe m'énerve. L'application est propriétaire et payante. Bref, je n'aime pas du tout et supprime.

L'application installée de base, « Here » de Nokia arrive à trouver ce que je cherche, et le chemin est calculé facilement. Mais il n'y a pas de guidage, et là encore c'est du proprio. Au moins la création de compte n'est pas obligatoire.

Un des intérêts principaux d'un ordiphone pour moi, c'est d'avoir une application de guidage qui fonctionne hors ligne, et qui ne m'espionne pas. OsmAnd~ (la version compilée par F-droid) est parfaite de ce point de vue, j'espère la voir portée sur Firefox OS (ce qui devrait être possible avec emscripten, l'application étant en C++, mais ça va sûrement demander beaucoup de travail). L'absence d'un équivalent est un frein majeur pour utiliser Firefox OS de mon point de vue.

En dehors de ça, l'absence de copier/coller ne me gêne pas, l'absence d'écriture par les gestes un peu plus mais ça n'est pas indispensable. Par contre l'absence de bouton « retour » qui oblige a chercher dans l'application l'équivalent me gêne *énormément*, je ne comprends pas cette décision de Mozilla. C'est peu intuitif, pas pratique du tout, voire carrément insupportable.

Au niveau téléphonie ça marche comme on l'attend, rien à dire. Ah si je n'ai pas réussi à avoir les détails d'un message (heure de réception), je n'ai trouvé que l'heure du début de la conversation, ce qui est assez gênant pour un message du type « on se retrouve dans 20 min ».

À noter aussi des redémarrages intempestifs, problème de jeunesse qu'on pouvait prévoir, mais dommageable sur une version stable en production. Enfin je suis dév, je sais ce que c'est.

J'ai voulu faire une mise à jour pour voir si ça corrigeait ça, rien d'officiel sur le site du constructeur (ma 1.3 semble la plus récente), je cherche donc sur le net et tombe sur un billet de développeur qui m'indique comment faire. Aïe, il faut windows et je n'en ai pas... La faute au constructeur encore une fois, mais c'est plus que malheureux. Tant pis je tente le coup en téléchargeant quand même et en tentant de flasher moi même. M'intéressant assez peu aux téléphones, je n'ai pas encore l'habitude des archi Android (Firefox OS utilisant la même base), mais je trouve rapidement de quoi faire: fastboot est disponible dans ma Debian, et m'évite l'installation du SDK Android à la main. Dans l'archive pour rooter le téléphone, je trouve des images notamment pour les partitions recovery, boot et system. Les deux premières se flashent sans soucis, mais pas moyen d'envoyer la 3ème, probablement à cause de sa taille. Résultat, je n'ai plus de partition système, et mon téléphone ne boot bien évidemment plus (ma faute, pas celle de Mozilla ou du constructeur :)).

Ne voyant pas de solution simple pour rattraper le coup avec Firefox OS, je décide de temporairement passer à CyanogenMod, à l'aide de cette version, je l'installe sans les google apps.

Au final, je me retrouve avec tout ce que je veux: F-Droid, OsmAnd~, j'ai pu récupérer mes contacts grâce à SlightBackup, et je n'ai pas de compte google lié au téléphone. Le port marche très bien et c'est fluide, et en plus les application Firefox OS peuvent marcher via Firefox dispo sur F-Droid. Je ne vois pas pour le moment ce que Firefox OS m'apporte de plus au niveau vie privée. Aussi, il ne faut pas oublier que l'utilisation d'un téléphone portable est déjà une grave atteinte à la vie privée, et que l'opérateur sait à tout moment où on se trouve avec ces saletés :(.

Enfin bref, je salue tout de même l'arrivée de Mozilla qui reste une boîte en qui j'ai à peu près confiance, et l'effort des équipes de dév, je pense juste que c'est encore jeune. Je reviendrai sûrement rapidement à Firefos OS, ne serait-ce que pour porter « Salut à Toi ».

Ce que j'aimerais:

  • une indication « logiciel libre » dans le gestionnaire d'applications (enfin « marketplace » pour son terme commercial)
  • une vraie application libre de navigation hors ligne, un port de OsmAnd~ serait idéal
  • la possibilité de coder en python. Pour le moment je vois 2 solutions: un transpileur à la Pyjamas, ou le port de Python (déjà fait) via emscripten, reste à voir si on peut accéder à tout le nécessaire pour une véritable application, et ce que donnent les performances. Un port de Kivy serait idéal.
  • un bouton « retour » !!!
  • moins important, mais agréable: la possibilité d'écrire avec des gestes

et bien sûr, je suis très gêné par l'accord entre Mozilla et Foxconn, même si j'ai conscience que mon téléphone premier prix vient de là et qu'il n'a pas dû être fait dans des conditions de travail exemplaires. J'ai un peu honte de financer ça en l'achetant :(. La solution idéale serait de jeter ces fichus téléphones aux chiottes, mais c'est une autre histoire.

Ceci dit, je pense que Mozilla est assez proche d'arriver à quelque chose de pas trop mal, et je souhaite bon courage aux équipes qui bossent dessus. Je vais suivre de plus ou moins loin l'évolution, et tenter de développer dessus sous peu j'espère.

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.

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

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

Enregistrement SRV pour XMPP sur les DNS de Gandi

Si vous lisez la documentation sur les enregistrements SRV pour XMPP, vous verrez qu’il est indiqué de mettre quelque chose comme ça dans votre zone DNS :

_xmpp-client._tcp.example.net. 86400 IN SRV 5 0 5222 example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 5 0 5269 example.net.

Manque de bol, ca ne marche pas si votre DNS est chez Gandi. Il faut mettre plutôt ceci :

_xmpp-client._tcp 86400 IN SRV 5 0 5222 example.net.
_xmpp-server._tcp 86400 IN SRV 5 0 5269 example.net.

Vous pouvez vérifier vos enregistrement SRV avec ce site (Attention, la propagation des modifications de votre DNS peut prendre du temps)

J'aime(2)Ferme-la !(0)

Related Posts:

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.

overview_libervia

Security

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

static_blog

Refactorisation

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

announcement_admin

adhoc_administration

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

logging

logging_primitivus

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.

Meetings

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.

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.

Maintenance le samedi 13 septembre 2014

Une maintenance du serveur de JabberFR, entrainant l’arrêt complet de tous les services, aura lieu le samedi 13 septembre 2014 de 18h à 20h.

Au programme : activation d’IPv6 pour prosody et ejabberd.

Veuillez noter qu’il y a de fortes chances que la maintenance dure moins longtemps que prévu, auquel cas, vous en seriez informés via une mise à jour de ce billet.

Mise à jour de 19h00 : La maintenance est finie (ejabberd a bien voulu se laisser faire). Les serveurs répondent bien en IPv6, mais il y a un soucis au niveau des configurations DNS pour les domaiens jabber.fr et jabberfr.org qui seront corrigés d’ici peu. En attendant, vous pouvez toujours forcer dans votre client (s’il le permet) le serveur de connexion sur (respectivement) im.apinc.org ou im2.apinc.org.

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

Notes

[1] https://linuxfr.org/users/goffi/jou...

[2] https://linuxfr.org/nodes/102745/co...

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

Maintenance le samedi 21 juin 2014

Une maintenance du serveur de JabberFR, entrainant l’arrêt complet de tous les services, aura lieu le samedi 21 juin 2014 de 18h à 20h.

Pas grand chose au programme si ce n’est le redémarrage d’ejabberd qui s’est permis de couper le service des messages offline tout seul comme un grand… Je profiterai de l’occasion pour réaliser quelques opérations de maintenance mineures.

Veuillez noter qu’il y a de fortes chances que la maintenance dure moins longtemps que prévu, auquel cas, vous en seriez informés via une mise à jour de ce billet.

Mise à jour de 21h00 : Suite à un contretemps, la maintenance commence seulement maintenant. Désolé pour le retard.

Mise à jour de 21h25 : La maintenance est finie. Les messages offline refonctionnent sur jabber.fr et im.apinc.org. À noter le passage à prosody 0.9.4.