Goffi non-hebdo

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

Mot-clé - jabber-xmpp

Fil des billets - Fil des commentaires

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.

jeudi 2 février 2012

Radio collective (avec vidéo)

Salut à vous,

j'avais dit que je commencerais à m'amuser sur les fonctionnalités: après le tube par XMPP, voici la radio collective.

Le principe ici est que vous êtes dans un salon de discussion, et que chacun peut mettre une musique à la suite: la même musique est jouée simultanément pour tout le monde, créant ainsi une expérience de radio collective.

Pour l'instant il y a 2 éléments maximum en queue, et dès qu'un élément se libère, n'importe qui peut en ajouter un; mais par la suite on peut imaginer un système plus élaboré pour choisir qui peut mettre la musique (chacun son tour par exemple, selon un système de vote si les musiques passées sont appréciées, ou encore avec un jeu: celui qui répond bien aux questions peut choisir la musique).

On peut ainsi voir arriver des salons à thème: jazz, rock, expérimental, découverte, chansons à texte, etc. Ou alors passer des soirées à faire découvrir des morceaux à vos amis, chacun à tour de rôle, faire des blind test, voire animer des fêtes de manière collective.
Si en plus vous ajoutez cette possibilité sur votre téléphone, vous voilà acteur de votre propre radio pendant vos trajets en train :)

Ci-dessous une petite vidéo qui montre la maquette actuelle fonctionner (Proof of Concept comment disent les anglophones).

À noter que je serai présent au FOSDEM à Bruxelles ce week-end: j'y ferai une démonstration du projet au stand XSF, n'hésitez pas à passer pour en discuter :). Je ferai également une conférence de 15 min dans la devroom XMPP samedi à 18h00, vous pouvez cliquer sur ce lien pour plus de détails.

Comme d'habitude, pour lire la vidéo, vous devez utiliser un butineur récent (Firefox 4 ou le dernier Chromium 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_5_radio_collective.webm
Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_5_radio_collective.webm"

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

jeudi 1 décembre 2011

Nouvelles rapides

Salut à tous,

un petit billet très rapide pour vous dire que j'ai fait un entretien pour DLFP: https://linuxfr.org/news/entretien-avec-goffi-d%C3%A9veloppeur-de-s%C3%A0t-client-de-messagerie-instantan%C3%A9e-libre où j'indique notamment que je souhaite lancer un site basé sur libervia avant la fin de l'année (si j'y arrive, ce n'est pas gagné), et que j'ai commencé une interface basée sur Qt.

D'autre part j'ai été aux Journées Du Logiciel Libre à Lyon récemment, et j'y ai fait ma première conférence. L'ambiance était très familiale, ça m'a bien plu, j'espère y retourner l'année prochaine.

Je suis particulièrement débordé en ce moment, c'est assez difficile de trouver du temps à consacrer à SàT, mais j'y arrive tant bien que mal.

À bientôt...

vendredi 7 octobre 2011

Ligne de commande: envoyez vos tubes (pipes) par XMPP (avec vidéo)

Salut à vous,
une nouvelle vidéo, très courte, pour vous montrer 2 choses:
  • la copie (transfert de fichier pour faire plaisir à Neustradamus) qui a été améliorée, vous avez ici un exemple avec jp - le frontal en ligne de commande -. J'avais déjà fait une démo dans la première vidéo, mais cette fois la syntaxe est simplifiée (plus besoin de fournir le jid complet), et sous le capot les protocoles ont été améliorés (gestion de in-band bystreams et gestion du proxy dans Socks5), bien que pas tout à fait fini.
  • j'en ai profité pour ajouter une nouvelle fonctionnalité qui devrait plaire aux amoureux de la ligne de commande: la possibilité d'envoyer la sortie d'un tube (pipe) par XMPP.
    La vidéo montre ça en action en streamant une vidéo par XMPP.

    C'est un test que j'ai fait, et c'est juste une légère modification de la XEP-0096. Ça peut être intéressant d'essayer de standardiser ça, peut être en passant par jingle.
Tout ça est encore très expérimental - et en cours de finition -, tout retour est le bienvenu.

Comme d'habitude, pour lire la vidéo, vous devez utiliser un butineur récent (Firefox 4 ou le dernier Chromium 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_4_copie_et_pipe.webm

Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_4_copie_et_pipe.webm"

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

vendredi 30 septembre 2011

De l'urgence d'agir

À force de discussions, je me rends compte que beaucoup de gens ne comprennent pas forcément l'énergie que je mets dans mon projet (Salut à Toi), ou sentent qu'il y a un problème avec des services comme Facebook (FB), mais ne savent pas exactement quoi. Aussi, je vais expliquer ici certains des principaux problèmes que posent ce dernier.

La centralisation

Un des problèmes majeurs de FB est sa centralisation, c-à-d la concentration des informations qui y sont déposées ou y circulent au sein d'une même entité, et a fortiori une entité privée à but commercial ayant déjà eu des actes et paroles douteux (nous y reviendrons).
La centralisation permet la censure et le contrôle (par FB, pas par vous), facilite l'analyse de données (comprendre la lecture de votre vie), et éventuellement les mesures répressives d'état ou autre suivant le contexte.

Ces problèmes inexistants ? Chine, Iran, Corée du Nord, Turquie...
Ces problèmes inexistants dans des pays « démocratiques » ? La France et L'Australie sont sur la liste des pays sous surveillance [1] quant à liberté sur Internet.
Dites vous bien que le maccarthisme ce n'est pas si loin... Dites vous bien qu'avril 2002 ce n'est pas si loin; dites vous bien que les Lumières et les Droits de l'Homme, ça commence à être un peu trop loin...

Les risques informatiques d'aujourd'hui

Une chose qu'il est peut-être difficile de comprendre, c'est ce qu'on peut faire aujourd'hui avec toutes ces informations. Je vous passe toutes les techniques d'analyses de données de masse [2] qui notamment permettent aux grandes chaînes de bien placer les rayons pour mieux vous faire dépenser, pour se concentrer sur des cas plus évidents.

Tout site qui a un bouton « j'aime » ou « partager » qui pointe sur le site de FB leur transmet des informations, et permet à FB de tracer les sites que vous visitez, même si vous n'êtes pas connecté... ou même si vous n'êtes pas inscrit [3]. Ainsi il peut leur être possible de savoir que vous avez lu tel article, que vous vous intéressez à tel produit, tel livre, que vous regardez telle vidéo.

Imaginez que vous soyez militant, pour une quelconque cause - écologie, politique, syndicat, nucléaire, ou autre - et que cela ne plaise pas forcément aux autorités (d'entreprise, locales, nationales, peu importe). Sachant les ennuis que cela peut vous causer, vous faites bien attention à ce que vous faites sur internet, et notamment vous vous gardez bien de mettre vos opinions politiques, religieuses, ou autre sur votre profil FB.

Maintenant, de fil en aiguille, suivant votre activité, vous rencontrez d'autres militants, que vous ajoutez, et qui eux ne prennent pas toujours les mêmes précautions que vous.

Même à supposer qu'il ne mettent pas de photo de vous pendant une action, ou aucun commentaire du genre « tu viens à la manif demain ? », le simple fait d'être amis avec vous, et que vous en ayez plusieurs peut vous trahir.

D'autre part, les techniques de reconnaissance d'images, et en particulier de visages, on beaucoup progressé ces dernière années. Une simple photo de vous - anonyme dans la rue - peut vous associer automatiquement [4] à votre compte FB, votre nom, votre adresse IP, vos amis, et toutes les informations que vous avez entrées. Fini les policiers qui parcourent le journal pour savoir qui était dans telle ou telle manifestation.

Sans même aller jusqu'au cas militant, votre vie et vos contacts évoluent, et il peut être ennuyeux de laisser votre historique depuis votre naissance [5] sur des machines que vous ne maîtrisez pas. Quand on pense qu'il y a 10 ans on prenait peur de laisser son numéro de téléphone sur un forum ou au tollé qu'a provoqué le fichier EDVIGE. Et qu'on ne me parle pas du sempiternel «Je n'ai rien à cacher», signe d'un effarant manque de réflexion et d'ouverture. J'espère bien que vous avez des choses à cacher; j'ai des choses à cacher.

Les risques humains

La curiosité, vilain défaut ou pas, est humaine.

Je ne sais pas comment sont gérées les bases de données au sein de l'entreprise, ni combien elle a d'employés, ni qui a accès à quoi, ni comment et pour combien de temps tout est stocké.

Ce que je sais, c'est qu'il y a des risques pour tous les gens ayant accès aux données que vous mettez sur FB, qu'ils soient 10 ou 10000, de les récupérer, les lire et les analyser. Que ce soit un patron, un employé, une entreprise à qui on a vendu ces données, n'importe quelle entité sur le chemin de ces données comme votre fournisseur d'accès à Internet et ceux qui y travaillent, quelqu'un chez qui vous avez consulté votre compte, ou un pirate informatique; ces informations sont consultables d'autant plus facilement qu'elle ne sont pas chiffrées, c'est à dire qu'elle ne sont pas protégées.Cela revient à envoyer des courriers avec une enveloppe ouverte ou à avoir des conversation « intime » au milieu d'une pièce remplie de monde.

Le simple fait de consulter votre compte FB dans une bibliothèque ou sur un hotspot risque de permettre à n'importe quel apprenti pirate d'accéder à tout votre compte. [6]

La publicité

Peut-être êtes vous habitué à voir des trucs qui clignotent partout, que ça ne vous dérange pas pour lire ou regarder des photos/vidéos. Peut-être que vous acceptez que les données que vous envoyez soient diffusées à des entreprises commerciales. Peut-être que vous êtes résolu à vivre avec cette pollution visuelle, parfois sonore, et qui utilise votre connexion internet (la bande passante), que vous pensez que c'est un mal nécessaire. Peut-être que appréciez qu'on vous dise quoi acheter, où sortir, comment vous habiller, quoi manger, bref qu'on pense à votre place...

Moi non.

Le remplacement de l'existant

Jusqu'ici nous avions des moyens simples, efficaces, décentralisés et standards pour communiquer, tel que le courrier électronique ou les abonnements aux sites (flux atom). Ces moyens ont leur défauts, mais sont (étaient ?) répandus, et installables/utilisables par n'importe qui. Aujourd'hui - il s'agit là d'une simple constatation - j'ai le sentiment que ces moyens disparaissent au profit du confort aseptisé de FB. J'ai de plus en plus de mal à joindre mes connaissances - y compris les amis - par courrier électronique classique, qui ne devient plus qu'un outil pour les messages officiels. Ceci contraint à soit créer un compte sous la pression sociale, soit à avoir des difficultés à joindre ses proches.

On assiste purement et simplement à une privatisation du web.

L'uniformisation, la perde d'identité

Au début du web (et de sa démocratisation, dans les années 90), on voyait de nombreux sites de tous les styles, faits parfois avec amour (et plus ou moins bon goût), qui avaient une touche personnelle, un côté créatif.

Aujourd'hui, par soucis de simplification (moins de choses à gérer), d'efficacité (contacts et pubs facilités) ou pour je ne sais quelle autre raison, de plus en plus d'entités, sites, associations, sources d'informations choisissent de faire une page FB. Vous savez, ces pages qui ressemblent à un profil de personne, avec les infos, commentaires, les statistiques, les produits, les pubs; vous savez ces pages qui ressemblent à ces autres pages... toutes les mêmes.
Non seulement elles sont tributaires de ce que leur permet (et change parfois sans préavis) FB, mais surtout elles sont uniformes, identiques.
Depuis mon plus jeune âge j'entends des gens parler avec effroi (et il y a de quoi) du spectre de la pensée unique... Qu'en est-il du site web unique ?

Ce qu'on sait déjà, ce à quoi on peut s'attendre

Je parlais plus haut de paroles et d'actes douteux, revenons y. Il n'est même pas question ici de mentionner les courriels qui auraient circulé par le passé et des déclarations attribuées au (présumé) fondateur de FB, ou à ce qu'on trouve dans les médias (livre, film) parus récemment, mais de ce qui a été officiellement déclaré et assumé.

début 2010 Mark Zuckerberg déclare « Les gens sont maintenant à l’aise avec l’idée de partager plus d’informations différentes, ils sont aussi plus ouverts et à plus d’internautes […] La norme sociale a évolué depuis quelques temps » et « Les enfants se sont toujours préoccupés du respect de leur vie privée, c’est juste que, pour ces jeunes, la notion de « vie privée » est très différente de ce qu’elle est pour les adultes » [7]

FB cherche ouvertement à devenir un point d'entrée, et un point central du web, notamment avec le protocole « Open Graph ». [8]

En juillet 2011, la directrice marketing déclare la guerre à l'anonymat: «Je pense que l'anonymat sur Internet doit disparaître. Les gens se comportent beaucoup mieux lorsque leur véritable nom est visible. Je pense que les gens se cachent derrière l'anonymat et ont le sentiment de pouvoir dire ce qu'ils veulent derrière des portes closes». [9]

Plusieurs cas de censure ou fermeture sauvage de comptes sont connus. Ainsi ce danois qui s'est vu fermer son compte pour avoir posté « l'Origine du monde » de Gustave Courbet [10], ce groupe « Boycott BP » supprimé (puis rétabli devant la pression) « par accident » [11], ou la désactivation de comptes sous pseudonymes (ou supposés comme tel), comme celle d'un activiste chinois [12].

De la responsabilité de tous

Créer un compte est une chose - j'en ai moi même un [13] -, il y a des tas de raisons valables pour le faire: curiosité, amis qui nous invitent, utilisation des fonctionnalités comme le partage de photos, etc. Le problème est quand on prend la peine d'y réfléchir, qu'on en comprend les dangers, et qu'on continue à souffler sur les braises.

Chaque statut posté, chaque commentaire, chaque photo ajoutée (de vous, ou  - pire - d'une connaissance), chaque bouton « j'aime » ou « partager » cliqué alimente la chose; chaque « site » créé dessus, chaque bouton « j'aime » ou « partager » placé quelque part augmente et légitime leur emprise.
Plus personne ne peut dire désormais qu'il ne « savait pas », c'est maintenant une question de choix et de prise de responsabilité.
Je ne cherche pas ici à avoir un ton accusateur ou condescendant, ayant moi même ma part dans l'histoire, je cherche juste à montrer qu'il y a une prise de conscience à avoir, et ce sans plus attendre. Nous avons une responsabilité vis à vis de nous et de nos proches, et vis à vis des générations à venir.

Bien qu'ici il soit question du site le plus connu, la plupart des réflexions s'appliquent également à d'autres, en particulier Google. Et j'ai fait l'impasse sur de nombreux autres problèmes, comme la géolocalisation. [14]

Quelles sorties ?

Il existe des alternatives, plus ou moins avancées. Salut à Toi en est une, et je souhaite bien entendu son succès, mais il en existe d'autres comme Movim, Jappix, Retroshare, Gnu Social, etc. Et certaines dont je me méfie (Diaspora) mais qui ont le mérite d'être libres (du moins pour l'instant [15]).

Le monde dans lequel nous sommes évolue, et j'ai la nette impression que nous en perdons le contrôle. Notre génération se contente de suivre ce qu'on lui présente, alors que c'est la première fois dans l'Histoire qu'elle a de tels moyens pour le changer, le réinventer; et pour cela je lui en veux un peu. Où est passée cette rage si présente par le passé ? Où est le mouvement de la jeunesse ?

---

Notes et références

[3] Une région d'Allemagne a même fait interdire l'utilisation du bouton « j'aime » pour les sites hébergés sur son territoire: http://www.01net.com/editorial/537828/un-land-allemand-veut-interdire-le-bouton-j-and-039-aime-de-facebook/
[10] http://www.rue89.com/2011/02/17/au-danemark-facebook-censure-lorigine-du-monde-190992?page=4 . Le profil a ensuite été rétabli - sans l'image -, et des pages FB consacrées au tableau ont été supprimées suite à la médiatisation (http://fr.wikipedia.org/wiki/L%27Origine_du_monde#cite_ref-5)
[13] compte créé au début à l'invitation d'une amie, je m'en sers désormais comme point d'observation de l'interface et de l'utilisation qu'ont du réseau mes contacts.
[14] un point de départ pour approfondir: http://fr.wikipedia.org/wiki/Critiques_de_Facebook

jeudi 4 août 2011

Salut à Toi: Petit état des lieux en images

Salut à vous,

Près d'un mois après les RMLL, une petite mise au point sur l'avancement de SàT:

déjà, je n'ai pas encore eu les contributions que j'espérais pour accélerer le développement, il commence à y avoir de plus en plus de personnes qui s'intéressent au projet, mais ça reste timide. Heureusement, j'ai depuis un petit moment maintenant l'aide précieuse de Raiden, un graphiste qui a fait un super boulot sur Libervia (l'interface web), vous pouvez voir le résultat dans les captures ci-dessous, et également sur le jeu de quiz qui est en cours de finalisation. J'espère que nous pourrons continuer à travailler ensemble, et ainsi commencer une véritable équipe autour de SàT (cela semble bien parti pour).

Libervia donc, n'a plus grand chose à voir avec l'interface de démo (qui est toujours en ligne), et est proche d'être utilisable. Son utilisation est fortement basée sur les groupes, notamment au niveau du microblogage, ce qui permet de bien choisir les personnes à qui vous destinez vos messages. Petit détail amusant, depuis la mise en ligne de la démo la firme au moteur de recherche a lancé un (énième) service dit « social », et beaucoup de monde s'est extasié sur les « cercles » qui ne sont rien de plus que les groupes tel qu'ils existent dans XMPP, et qui sont donc utilisés dans Libervia.


libervia_login.png
Cette capture montre l'écran que vous voyez quand vous arrivez sur le site, avec la fenêtre de connexion. Le logo à gauche est le logo du projet.

libervia_discussions.png
Ici vous voyez la page principale, qui n'a plus grand chose à voir avec la dernière version. Encore une fois, c'est grâce au travail de Raiden (qui a également dessiné le logo et les graphismes du jeu de quiz ci-dessous) que nous avons pu en arriver là. Quelques remarques sur cette capture:
  • Kde ne veut pas me capturer le pointeur (bien que je lui ai demandé), il est au dessus de « Nouvelle-Calédonie », c'est pour ça qu'elle est en rouge, ainsi que Louise qui appartient à ce groupe
  • L'interface est comme vous pouvez le voir basée sur des widgets, que vous placez par glisser/déposer: Par exemple pour avoir le widget « famille », vous déplacez le groupe « famille » sous « contacts » à l'emplacement voulu
  • Vous pouvez mettre des widgets sur plusieurs lignes et/ou colonnes, permettant ainsi d'avoir plus de place quand nécessaire, et de vous organiser comme vous voulez. Vous n'êtes plus limités à 3 colonnes comme dans la démo, vous en faites autant que vous voulez (idem pour les lignes bien sûr)
  • la barre du haut est la barre principale pour les entrées, c'est pour cela que vous n'avez pas de barre de saisie en dessous des widgets. Cette barre est redimensionnable à souhait, ce qui peut être utile si vous rédigez un long message
  • le widget « louise@tazar.int » a sa barre de titre en rouge parce qu'il est sélectionné, vos saisies lui sont envoyées. Si vous êtes étourdis, un panneau de couleur vous indique clairement à qui vous envoyez le message pendant la saisie
  • Les onglets en bas permettent d'avoir plusieurs pages de widget, ou un widget demandant plus de place (comme le jeu de Tarot) séparé. L'onglet que l'ont voit ici est un salon de discussions.
Cette interface est fonctionnelle, et sera disponible à la prochaine version d'ici quelques semaines (avant la fin du mois d'août), ou via le dépôt de développement pour les plus aventureux. Il reste cependant quelques problèmes à régler avant de remplacer la démo par un service d'essai, mais ça ne devrait plus tarder (j’espérais le lancer avant fin juillet, maintenant il faut plutôt s'y attendre pour la fin de l'été).

quiz.png
Ici vous voyez l'état actuel du jeu de quiz. Il n'est pas encore fini comme vous pouvez le remarquer, mais est quasi-jouable (sur Wix uniquement pour l'instant, il viendra ensuite sur d'autres frontends dont Libervia).
Tout ceci a été présenté aux RMLL il y a un mois. Suite à une petite pause, le code reprend désormais vie, avec en particulier un nouveau frontend dont j'espère vous parler rapidement, restez en ligne ;)

PS: si vous voulez une idée du fonctionnement, vous pouvez voir le billet et la vidéo postés il y a quelques mois.

mardi 31 mai 2011

(SàT 0.2) Salut à toi, le web !

Salut à vous,

ça faisait un moment que j'en parlais, voici la nouvelle interface web, qui se nomme Libervia, accompagnée de la sortie de la version 0.2 de SàT.
Je ne vais pas faire un trop long discours ici, mais juste évoquer les points les plus importants:

  • un service web va être associé à cette interface, et j'espère pouvoir le mettre sur pied très rapidement
  • les groupes vont être au centre de la gestion des droits, vous comprendrez en voyant la vidéo
  • oui parce qu'une nouvelle vidéo est disponible
  • et une version de démonstration aussi, elle est pas belle la vie ?
  • et le point le plus important: un contrat social à été rédigé, et indique les lignes suivies par tout le projet « Salut à Toi ». Vous pouvez le consulter ici: http://www.libervia.org/contrat_social.html, ou directement depuis Libervia
  • ça fait longtemps que je travaille seul sur ce projet, de manière assez confidentielle. Je voulais atteindre un certain point: pour apporter une crédibilité au projet, et pour en montrer les grandes lignes. Je considère ce point désormais atteint: même si le client n'est pas encore utilisable au quotidien, et qu'il manque certaines choses essentielles, je pense qu'il est maintenant véritablement lancé
  • Je vais avoir besoin d'aide !!! Les priorités actuelles sont la consolidation de l'existant, la traduction, la documentation. Si vous aimez Python (le projet est 100% en Python, y compris Libervia) ou même d'autres langages (on peut coder une interface dans n'importe quel langage qui peut parler à DBus), ou même si vous n'êtes pas développeur, je pense que ce projet est excitant, et touche à beaucoup de technologies et de domaines intéressants. N'hésitez pas à me contacter: goffi@goffi.org (courriel) ou goffi@jabber.fr (jid), et surtout à vous inscrire à une des 2 listes de diffusion, j'aimerais atteindre une dizaine d'inscriptions pour commencer à les utiliser.

Enfin, quelqu'un m'a récemment proposé de l'aide (Raiden) pour travailler l'aspect, et pour le prochain jeu (quizz) et à commencé des maquettes pour le site: c'est très bien parti :)

Pour tester la nouvelle interface: www.libervia.org mais je vous recommande très fortement de voir la vidéo avant
La nouvelle version de SàT se trouve sur le serveur ftp.

Comme d'habitude, pour lire la vidéo, vous devez utiliser un butineur récent (Firefox 4 ou le dernier Chromium 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_3.webm

Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_3.webm"

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

dimanche 8 mai 2011

Présentation vidéo de Salut à Toi #2: jeu de tarot et client courriel

Une deuxième vidéo de présentation est disponible.
Cette fois on s'intéresse au jeu de tarot et à l'utilisation d'un client courriel avec SàT, expliquée dans un précédent billet.

Notez bien que les jeux vont être une composante importante dans SàT, et qu'il y aura aussi une volonté de standardisation: le jeu de tarot était un prototype dans le but de définir une XEP sur les jeux de cartes en général, n'hésitez pas à me contacter si vous êtes intéressés. Les cartes utilisées dans Wix viennent - comme indiqué dans le README - de Wikimedia Common, et j'ai fait un petit script pour les séparer, avis aux autres développeurs de jeux de tarot.

Tout n'est pas parfait: il y a quelques petits bugs, et tout n'est pas complètement fini; le jeu de tarot ne permet pour le moment de jouer qu'à 4 (les variantes sont prévues) et ne gère pas encore toutes les règles (pas de poignée par exemple), mais ça va s'améliorer avec le temps. Toute aide est la bienvenue :)

Ah et j'ai fait un lapsus, ce n'est pas SàT qui a toutes les qualités pour remplacer le courriel classique, mais XMPP bien sûr ;)

Encore une fois, pour lire la vidéo, vous devez utiliser un butineur récent (Firefox 4 ou le dernier Chromium 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_2.webm

Enfin, vous pouvez utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T_2.webm"

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

lundi 2 mai 2011

Présentation vidéo de Salut à Toi

Salut à vous !

Comme ce n'est pas forcément évident d'installer pour tester, et que les concepts derrière « Salut à Toi » semblent encore flous pour pas mal de monde, j'ai décidé de faire une petite vidéo de présentation.

Cette vidéo explore vraiment la surface, d'autres devraient suivre (notamment assez rapidement pour montrer le jeu de Tarot et l'utilisation d'un client courriel avec SàT).

Quelques remarques:

  • Je n'ai pas parlé de deux idées importantes derrière SàT: il se veut aussi un outil de prototypage rapide (expérimenter rapidement des idées), et est destiné à être multi-plateforme (fonctionner sur plusieurs types de machines/environnement)
  • Il y a plusieurs « bogues » dans la vidéo (dont au moins 1 qui concerne SàT), je vous laisse les trouver dans les commentaires ;)
  • Ne prenez pas peur pour la console noire derrière et ce qui y est affiché, c'est juste des informations de débogage (bréf, surtout utiles pour le développement)
  • Désolé pour le vocabulaire parfois technique, n'hésitez pas à demander en commentaire pour expliquer au besoin
  • Je montre les interfaces console (en mode texte), mais d'autres interfaces graphiques sont également sur le feu (comme dit dans la vidéo d'ailleurs)

Pour lire la vidéo, vous devez utiliser un navigateur récent (Firefox 4 ou le dernier Chromium 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.webm

Enfin, vous pouvez aussi utiliser mplayer: mplayer "http://www.goffi.org/videos/pr%c3%a9sentation_S%c3%a0T.webm"

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

dimanche 17 avril 2011

RMLL: Avis aux équipes de développement de projets XMPP (bis)

Bonjour à tous,

je m'occupe de recenser les personnes qui veulent être présentes au stand commun XMPP que nous ferons aux RMLL 2011.

Afin de s'organiser un peu, toutes les personnes qui souhaitent êtres présentes doivent m'envoyer un courriel ( à goffi@goffi.org ) sous la forme suivante:

sujet: [RMLL] Stand XMPP

Corps du message:
Prénom *:
Nom:
Surnom*:
Courriel:
Téléphone:
Projet*:
Site du projet*:
Disponibilités*:

Les * indiquent les champs qui seront publics (mis sur le wiki).
Le surnom est facultatif, il permet de vous reconnaître si vous êtes sur les salons XMPP ou que vous postez sur le forum.
Le [RMLL] est indispensable dans le sujet: les messages sont filtrés.
J'ajouterai les participants au fur et à mesure sur le wiki: http://wiki.goffi.org/wiki/RMLL_2011

Notez que j'enverrai systématiquement une réponse pour confirmer la bonne réception de votre courriel (sous 2 à 3 jours au plus), aussi renvoyez moi un courriel si vous ne l'avez pas reçue et que votre nom n'apparaît pas dans le wiki.

Enfin, si vous n'avez pas de projet mais que vous souhaitez quand même participer au stand, vous êtes les bienvenus (enfin, à condition de ne pas être 50 au stand).

N'hésitez pas à me contacter pour toute question, ou à aller sur jabberfr@chat.jabberfr.org

vendredi 8 avril 2011

RMLL: Avis aux équipes de dév XMPP

Petit message destiné aux équipes de dév de projets libres XMPP/Jabber: j'ai pris contact avec les organisateurs des Rencontres mondiales du logiciel libre (RMLL), qui auront lieu à Strasbourg du 9 au 14 juillet, pour tenir un stand commun XMPP, l'idée serait non seulement de présenter les différents projets, mais aussi d'avoir une occasion de rencontrer les autres membres de la communauté XMPP.

Pour le moment, l'auteur de Poezio et moi serons présents, n'hésitez pas à me contacter si ça vous intéresse. On peut également en discuter sur le salon jabberfr@chat.jabberfr.org

mardi 18 janvier 2011

Recevez et envoyez vos messages XMPP/Jabber avec votre lecteur de courriel grâce à Salut à Toi !

Le courriel est un outil extrêmement pratique, mais qui souffre de plusieurs défauts majeurs. Par exemple, il est très facile de faire de l'usurpation d'identité (e-mail spoofing): juste en changeant les paramètres de n'importe quel lecteur courriel, vous pouvez faire croire que le courriel que vous avez envoyé vient d'une autre personne, une banque, ou autre. C'est une technique très utilisée par les pirates du dimanche pour avoir un mot de passe (en se faisant passer par exemple pour une banque et en disant que le mot de passe a été perdu) ou les spammeurs (une technique courante est d'utiliser votre propre adresse pour tenter de berner les filtres anti-spam).

XMPP/Jabber ne souffre pas de ce problème: les serveurs sont chargés de vérifier que l'émetteur d'un message est bien celui qu'il prétend être.

Or, XMPP définit un type de message, "normal", qui est très proche du courriel classique: il dispose d'un sujet et attend une réponse. Ces messages sont gérés par les clients classiques (c'est dans la norme de base), mais souvent de manière relativement basique.

Voulant gérer correctement ces messages avec SàT, je me suis dit qu'il me faudrait beaucoup trop de travail pour arriver au niveau de fonctionnalités d'un client courriel (ou MUA) correct. Aussi, je me suis dit « Pourquoi ne pas tout simplement réutiliser ces clients ? ».

Et c'est ainsi que j'ai développé un petit serveur courriel qui permet de déléguer la charge des messages de type "normal" à votre client courrier usuel (KMail, Mutt, Thunderbird, Roundcube ou que sais-je d'autre). L'idée est que la messagerie instantanée (messages de type "chat", "groupchat" - salon de discussion -, etc) reste affichée via les interfaces usuelles (Wix/Primitivus), et les messages normaux soient stockées par SàT et gérés par votre client courriel. C'est un pas vers le remplacement du courriel vers un protocole qui a de nombreux atouts.

Quelques raisons qui me font penser que XMPP/Jabber peut remplacer avantageusement (et pratiquement de manière transparente) le courriel:

  • les identifiants jabber (JID) sont similaires aux adresses courriel
  • si une passerelle courriel est disponible côté serveur, on peut utiliser aussi le réseau courriel normal, la boucle est bouclée :)
  • l'usurpation d'identité (spoofing) n'est (théoriquement) pas possible avec XMPP (les serveurs se chargent de vérifier ça)
  • Jabber n'est (pour le moment) pas touché par les messages indésirables autant que le réseau de courriels traditionnel
  • les serveurs XMPP sont souvent plus stricts à l'inscription, et il est plus difficile d'envoyer un message anonymement, pas de relai ouvert: une bonne protection contre le pourriel
  • vous pouvez configurer un compte XMPP pour ne recevoir des messages que depuis quelqu'un de connu (dans votre liste de contacts - roster list- )
  • les connections entre les serveurs Jabber sont chiffrées
  • Toutes les fonctionnalités du courriel (accusé de réception, message HTML, etc) sont soit déjà disponibles sur XMPP, soit peuvent l'être avec une extension
  • ...

De plus, il me semble peu probable qu'une adresse jabber ( ex.: errico@caserte.it ) et une adresse courriel similaire appartiennent à 2 personnes différentes. Il me semble tout à fait possible par la suite que SàT envoie automatiquement le message à la bonne adresse: d'abord tester si l'adresse XMPP existe, et dans le cas contraire envoyer via une passerelle courriel. Quitte à faire une petite bidouille syntaxique pour spécifier si on veut envoyer à une adresse Jabber ou à un serveur de courriel. L'avantage le plus évident d'une adresse courriel est sont côté standard: tout le monde ou presque en a une. Avec XMPP et ses passerelles, la transition entre messagerie courriel et Jabber est possible et quasi-transparente.

Les considérations techniques maintenant

Les serveurs utilisés sont IMAP v4 et SMTP: ce sont des protocoles que pratiquement tous les lecteurs de courriels connaissent. IMAP a l'avantage de permettre une synchronisation avec SàT (y compris l'état du message: est-ce qu-il est lu ? Est-ce qu'on y a répondu ?), et permet d'envoyer des notifications en temps réel de l'arrivée de nouveaux messages. SMTP est utilisé pour l'envoi de messages, c'est tout simplement le protocole le plus utilisé, et ça fonctionne bien. Les identifiants et mots de passes utilisés sont ceux du profil SàT à utiliser (identifiant: nom du profil, mot de passe: mot de passe du compte jabber). Les ports par défaut sont le port 10143 pour IMAP, et 10125 pour SMTP, j'ai pris soin de prendre des ports utilisables sans les droits root, et qui n'ont pas d'utilisation connue.

Les messages sont sauvés dans une boite de type Maildir , idéal pour l'archivage et l'utilisation avec IMAP. De plus, de très nombreux outils existent pour faire à peu près ce que vous voulez avec ces messages. La boîte se trouve dans votre répertoire SàT personnel: ~/.sat/[nom_du_profil]/Maildir

Pourquoi faire ça côté client (SàT) et non côté serveur XMPP ? Déjà au niveau sécurité c'est clairement un plus: le serveur IMAP est local, pas besoin d'ouvrir un nouveau port et donc une brèche éventuelle sur un serveur public plus sujet aux attaques, et une simple règle iptable (pare-feu) interdira les connexions en dehors de votre machine. Ensuite, il faudrait élaborer une XEP, et attendre qu'elle soit implémentée et répandue dans les serveurs. Et puis, j'ai pu faire ça rapidement (merci Twisted), et SàT permet de choisir d'utiliser ou pas cette fonctionnalité (grâce aux extensions), pourquoi s'en priver ? Un des buts de SàT est justement le prototypage rapide d'idées de ce genre...

L'installation

Si vous voulez essayer ça, installez la dernière version de développement, les détails sont sur le wiki.
Sur une *buntu, vous pouvez faire (en console):
sudo apt-get install python-pip python-dev mercurial
sudo pip install "hg+http://repos.goffi.org/sat/"

Évidemment, tout ceci est en développement: il n'est pas encore possible de créer un dossier avec IMAP par exemple, et y'a des tas de petites bricoles du genre qui vont s'améliorer avec le temps. Mais ça permet déjà de se donner une idée.

PS: petite précision: j'utilise parfois XMPP, parfois Jabber. XMPP est le nom du protocole utilisé par SàT (ce qui lui permet de communiquer avec d'autres logiciels similaires), et Jabber est le nom du réseau global qui utilise ce protocole.

mercredi 12 janvier 2011

On s'organise un peu

Bonjour à tous,

après ce long silence, et une fin d'année très chargée (avec entre autres, le retour d'Australie), voici quelques nouvelles pour mes projets.

Les outils

J'attendais mon retour en France pour organiser un peu la gestion des projets, et ouvrir les dépôts au public, c'est désormais chose faite. J'ai passé pas mal de temps à tester et installer de nombreux outils, dont les liens suivent:

  • Un wiki est disponible (http://wiki.goffi.org), qui servira principalement à la documentation, autant pour l'utilisateur final que la documentation technique. Même si la documentation est son intérêt principal, tout sujet touchant de prêt ou de loin aux projets y auront leur place. Chacun peut y contribuer, et il est disponible pour le moment en français et en anglais.
  • Les dépôts Mercurial sont désormais publics et disponible à http://repos.goffi.org . Ceci devrait faciliter les contributions et le suivi des développements
  • Un bugtracker, et le plus connu en l'occurrence: Bugzilla est disponible à http://bugs.goffi.org . J'y attends aussi vos suggestions pour des fonctionnalités que vous aimeriez voir implémentées.
  • un serveur ftp public: vous trouverez la dernière version et toutes les précédentes sur ftp://ftp.goffi.org
  • des listes de diffusion (http://lists.goffi.org): aucune n'est créée pour le moment, mais l'infrastructure est en place pour créer une liste pour les développeurs et/ou utilisateurs si le besoin s'en fait sentir.

Les projets vont ainsi pouvoir s'ouvrir vraiment à contribution.

Les projets

Au niveau des projets en eux-mêmes, quelques nouveautés.

SàT

Salut à Toi dispose enfin d'un script d'installation, qui simplifie énormément la tache. Sous une Ubuntu ou dérivée par exemple, avec une installation fraîche de la dernière version stable, il suffit de faire:

sudo apt-get install python-pip python-dev
sudo pip install "ftp://ftp.goffi.org/sat/sat.tar.bz2"

Vous aurez plus de détails sur la page du wiki: http://wiki.goffi.org/wiki/Salut_à_Toi

D'autre part, les widgets pour Urwid (la bibliothèque qui permet de faire une interface pour un terminal) ont été mis dans un projet séparé sous LGPL à la demande du développeur principal d'Urwid. C'est ainsi que Urwid's SàT extensions suit sa propre voie (bien que toujours lié à SàT).
Enfin, la numérotation suit désormais un schéma standard; à savoir Version_Majeure.Version_Mineure.Incrément + une éventuelle lettre pour les versions particulières (D pour version de dév par exemple).

gcp

Pas de nouveauté de mon côté sur gcp, mais une très agréable surprise: j'ai reçu un mail d'un mainteneur Debian m'indiquant que mon projet était en voie d'intégration à cette magnifique distribution (cf le dépôt git). Ceci dit cela devrait prendre un peu de temps car il y a des vérifications à faire (en particulier au niveau de la licence) pour confirmer que ça correspond aux critères de Debian. Ça fait un petit quelque chose de voir mon premier projet (même si c'est un petit :) ) intégrer cette distribution majeure et collaborative, qui met l'accent sur les libertés des utilisateurs. Un grand merci à Thomas Preud'homme pour cela.
D'autre part, quelques patchs ont été fait pour l'occasion, avec en particulier une manpage (page de manuel Unix), que je n'ai malheureusement pas encore eu le temps d'intégrer, mais ça viendra.

urwid-satext

De la même manière que SàT, la nouvelle bibliothèque Urwid's SàT extensions est facile à installer. Les commandes sont similaires:

sudo apt-get install python-pip python-dev
sudo pip install "ftp://ftp.goffi.org/urwid-satext/urwid_satext.tar.bz2"


J'en ai profité pour mettre un petit exemple montrant comment afficher une boite de sélection de fichiers. D'autres suivront.

lm

List Movies lui n'a pas bougé du tout, si ce n'est qu'il a aussi profité de l'infrastructure mise en place. J'ai eu un patch il y a un moment que je n'ai même pas encore eu le temps de regarder, j'essaierai de trouver du temps à lui consacrer mais ce n'est vraiment pas évident.


La suite

Maintenant que la grosse et nécessaire étape de l'infrastructure est faite, le code de SàT lui même va pouvoir retrouver un peu plus d'attention. Il manque encore un système de tests, que je mettrai en place tôt ou tard.
Dans l'immédiat, j'ai quelques fonctionnalités en tête dont je parlerai j'espère très bientôt (nouvelle interface), et y'a pas mal de code a améliorer, en particulier au niveau de la copie. J'espère que les scripts d'installation et les outils mis en place permettront à un peu plus de monde d'essayer tout ça et de commencer à reporter les bogues.

jeudi 19 août 2010

Salut à Toi v0.0.3

Après des mois de travail dans des conditions pas toujours faciles (un ordinateur qui m'affiche un écran blanc toutes les 5 s, je suis sur les routes donc trouver un accès au net - et même de l'électricité - n'est pas toujours facile, et des choses mises de côté pour avancer le projet), voici la nouvelle version de SàT.

Bon ce n'est toujours pas utilisable par le grand public, utilisateurs avertis uniquement. Comme des captures d'écran valent parfois mieux qu'un long discours, enjoy... :)

update: comme on m'a conseillé de les ajouter, voici les liens vers les 2 journaux que j'ai posté sur DLFP, ils sont un peu plus techniques mais expliquent plus le projet:

Lire la suite...

- page 1 de 2