XMPP Entretien avec Movim

Posté par (page perso) . Édité par Davy Defaud, baud123 et patrick_g. Modéré par patrick_g. Licence CC by-sa
22
25
nov.
2011
XMPP

Movim (Mopen virtual identity manager) est un logiciel libre sous licence AGPL v3, LGPL v3 et FDL.

Il peut être présenté de différentes manières :

  • réseau social libre et décentralisé ;
  • client XMPP ;
  • interface Web.

Lisez l’entretien avec son développeur principal…

Logo de Movim

LinuxFr.org : T’es qui toi ?

I’m an Anonymous!

LinuxFr.org : C’est quoi Movim ? Qu’est‐ce que ça fait, et comment ?

Movim est un projet de réseau social, libre et décentralisé (les informations ne sont pas toutes stockées sur un seul et unique serveur, mais sont réparties sur les nœuds du réseau).

LinuxFr.org : C’est sous quelle(s) licence(s) ?

Le projet est distribué en quasi totalité sous la licence AGPL v3, sauf un élément sous licence LGPL v3, la documentation étant sous GNU FDL.

LinuxFr.org : C’est développé autour de quelles « technos » ?

Movim est en très grande partie développé en PHP 5 pur, avec un petit peu du reste des technos Web (CSS 3, JS…), le dialogue entre les « nœuds » du réseau se faisant via le protocole XMPP.

LinuxFr.org : Ça se compare à quoi de libre ou proprio ?

Je n’aime pas qu’on compare le projet à un « Facebook libre », même si l’interface est orientée social (conversations, flux…), tout le reste ne colle pas à l’idéologie et à la philosophie de Facebook. Après, la comparaison peut se faire à plusieurs niveaux. Des réseaux sociaux libres, il en existe déjà quelques‐uns, décentralisés, ça commence à se faire plus rare (Diaspora*, SocialZE…), et utilisant XMPP, nous sommes les seuls (je ne rentre pas Jappix dans cette définition, son interface étant plutôt orientée « chat » que « social », du moins pour le moment). Donc, pour le moment, nous sommes à peu près les seuls à rentrer dans cette définition. :)

LinuxFr.org : Quelles sont les tueries de ce logiciel ?

Parler de tuerie pour un truc pas encore sorti est difficile. Je dirais le fait qu’il arrive à s’interconnecter avec pas mal de trucs (via XMPP, toujours). À l’inscription, vous avez donc potentiellement déjà des centaines de contacts avec qui échanger. La gestion des flux (l’équivalent du « Mur » sur le réseau de Zuckerberg) se base en intégralité sur PubSub (une extension de XMPP), grâce à ça, les postages des flux sont reçus en « Push » depuis le serveur, vous les voyez donc arriver instantanément à la publication.

LinuxFr.org : Y a‐t‐il un business model autour ?

Le business model, ça se mange ? En gros, de la méthode Agile pour le dev et « démerdage » pour trouver du matos et des hébergements pour tester. :)

LinuxFr.org : Quels sont les déploiements publics ou privés (dont vous pouvez parler) les plus significatifs ?

Pour le moment, le déploiement s’est fait sur un nombre très limité de serveurs, principalement en interne. Nous préférons ne pas nous hâter et ne pas déployer le projet en masse, tant qu’il n’est pas encore fini.

LinuxFr.org : Vous êtes combien de contributeurs ?

Trois :

  • Etenil, qui s’est occupé du développement d’une grosse partie du « noyau » du projet ;
  • Vincent, qui s’occupe de toute la partie communication du projet ;
  • et moi‐même, qui m’occupe… euh, du reste. :D

LinuxFr.org : Comment est né le projet ? Comment a‐t‐il évolué ? Quels sont les faits marquants ?

L’idée du projet a germé progressivement, il y a un peu plus de trois ans ; je souhaitais à l’époque créer une page qui rassemblerais et synthétiserais les informations de mes comptes sur Internet, un ami m’a proposé de le lier à une « liste de contacts » et, de fil en aiguille, j’en suis venu à abandonner l’idée initiale pour me concentrer sur la création du projet actuel. Le but étant aussi de me motiver à apprendre la programmation.

Il y a un peu plus d’un an ½, nous avons fait plusieurs grosses réunions ouvertes au public pour « débroussailler » un peu tout ça et essayer de savoir ce qu’on souhaitait mettre dans Movim. Nous avons alors fait un « draft » global, puis nous avons commencé le développement à l’été 2010. Au printemps 2011, nous avons sorti la version 0.1, la 0.2 deux mois plus tard et la 0.3 cet été. La 0.3 ayant amené la finalisation d’une grande partie du « core », je travaille actuellement sur la 0.4 qui s’occupe de l’exploiter (en corrigeant les bogues du core que je rencontre bien sûr).

LinuxFr.org : Quels problèmes avez‐vous rencontrés ?

Nous avons rencontré de très nombreux problèmes, surtout liés au fait que l’architecture du projet est inédite (mêler XMPP et PHP, à cette ampleur, c’est de la folie ^^). Et encore actuellement, je rencontre de nombreux problèmes de stabilités de session (l’utilisateur se fait déconnecter). Nous sommes aussi les premiers à implémenter et utiliser certaines extensions de XMPP d’un point de vue « social ». On peut dire qu’on essuie un peu les plâtres à tous les niveaux.

LinuxFr.org : Quelle est votre feuille de route ?

http://wiki.movim.eu/roadmap

LinuxFr.org : Quelle est votre relation avec la XSF ?

J’aimerais participer activement à l’écriture des XEP de la XSF, mais par manque de temps, je ne peux hélas le faire. Nous sommes donc des simples acteurs « passifs » qui implémentons les XEP déjà écrites.

LinuxFr.org : Quelles sont les relations avec les autres développeurs de clients ? Et de serveurs ? Menez‐vous des tests d’interopérabilité ?

Nous travaillons avec les membres de Jappix, et nous faisons aussi de nombreux tests avec les clients XMPP existants (Pidgin, Empathy, PSI, Google Talk…).
Les serveurs étant un peu à la traîne pour l’implémentation de certaines extensions (la 0060 en stable pour Prosody, par exemple) les tests d’intérop Movim‐Serveur sont très souvent limités à notre serveur XMPP actuel (eJabberd), mais nous essayons de nous coller au plus aux XEP et non aux serveurs, pour garantir cette intérop.

LinuxFr.org : La voix et la vidéo dans Movim, c’est prévu ?

Tant que rien de simple ne sera fait pour récupérer les flux webcam et microphone en HTML 5, nous ne ferons rien.

LinuxFr.org : Pourquoi Jingle peine‐t‐il à décoller sur XMPP ?

De nombreux formats, implémentations et protocoles de partages complexifient énormément la tâche.

LinuxFr.org : Dans la même veine, PubSub et PEP peinent encore plus à décoller. Est‐ce parce que c’est plus difficile à appréhender ? Qu’est‐ce qui est implémenté dans Movim ?

PubSub, PEP et toutes les XEP annexes sont un beau merd*** à comprendre et à implémenter ; je puis comprendre que beaucoup de gens préfèrent passer par autre chose qu’essayer de comprendre ces XEP. Movim implémente actuellement partiellement la XEP microblogging (PubSub + PEP + Atom) pour la lecture/publication de postages.

LinuxFr.org : On a beaucoup parlé de fonctionnalités « sociales » dans XMPP, mais celui‐ci est social par défaut… Des initiatives comme Jappix, OneSocialWeb ou BuddyCloud ont été lancées, ont fait parler, mais rien de tout cela ne semble réellement « prendre » à ce stade. Qu’est‐ce que vous implémentez dans Movim ?

Nous sommes en contact avec ces autres projets, mais nous nous focalisons sur l’implémentation du standard XSF et non ceux publiés par OSW, BC… Tout ça ne semble pas prendre, car rien d’utilisable à grande échelle n’a été aujourd’hui lancé. Je ne sais pas si Movim va « marcher », mais disons que c’est peut‐être une seconde chance pour la partie « sociale » de XMPP.

LinuxFr.org : Par rapport à des Twitter, Facebook et Google+, est‐ce que Movim est plus respectueux de la vie privée ? Y a‐t‐il une exportation de données ? Des procédures de migration ?

C’est dans l’idéologie du projet, nous nous devons, en tant que réseau social libre et décentralisé, de tout faire pour protéger les données de l’utilisateur. Mais déjà, sans se pencher sur les spécificités du projet, Movim inclut un fort respect de la vie privée de par sa propre structure. Le fait qu’il soit décentralisé implique une impossibilité de contrôler l’intégralité des informations disponibles sur le réseau.
Une exportation des données (et donc une migration d’un serveur à un autre) est en réflexion, mais pour le moment nous n’avons pas le temps ni les moyens de le faire.

J’en profite également pour faire un appel à toute contribution, que ce soit pour de la traduction, du développement (PHP, JS, CSS, XMPP) ou de la gestion de projet. Je me retrouve presque tout seul sur le code, et j’accepterais volontiers d’autres paires d’yeux pour relire et corriger (voire améliorer) le code du projet. :)
Nous allons aussi réaliser des premiers tests d’envergure sur le réseau, donc si vous disposez d’un serveur pouvant accueillir Movim, faites‐le moi savoir. ;)

LinuxFr.org : Merci beaucoup !

  • # Mmmmh...

    Posté par . Évalué à  4 .

    Je n’aime pas qu’on compare le projet à un « Facebook libre », même si l’interface est orientée social (conversations, flux…), tout le reste ne colle pas à l’idéologie et à la philosophie de Facebook. Après, la comparaison peut se faire à plusieurs niveaux. Des réseaux sociaux libres, il en existe déjà quelques‐uns, décentralisés, ça commence à se faire plus rare (Diaspora*, SocialZE…), et utilisant XMPP, nous sommes les seuls (je ne rentre pas Jappix dans cette définition, son interface étant plutôt orientée « chat » que « social », du moins pour le moment). Donc, pour le moment, nous sommes à peu près les seuls à rentrer dans cette définition. :)

    Donc en gros, il ne veut pas se comparer à Facebook parce qu'il n'y a pas que le "social" dans la vie, mais il ne veut pas non plus se comparer à Jappix parce que ce dernier ne fait pas de "social". J'ai bon?

    Jappix, au moins, avait eu la brillante idée de tout faire dans le navigateur (i.e. l'application Web sur le serveur n'a aucune connaissance de tes identifiants Jabber). Movim se connecte au jabberd depuis le code PHP. C'est, je trouve, beaucoup moins rassurant pour l'utilisateur.

    Et puis il ne faudrait pas oublier OneSocialWeb et Buddycloud, qui sont tous les deux des réseaux sociaux basés sur XMPP : Movim n'est pas seul au monde.

    • [^] # Re: Mmmmh...

      Posté par (page perso) . Évalué à  7 .

      Euh... Et SàT qui se fait un peu systématiquement oublier (pourtant DLFP est un des seuls site où j'en parle régulièrement). Là où c'est fort, c'est qu'edhelas et moi avons fait nos conférences à la suite aux JDLL, et Jappix et SàT étaient voisins aux RMLL.

      • [^] # Re: Mmmmh...

        Posté par . Évalué à  1 .

        Exact, pardon. Et j'aurais aussi pu rajouter Wave, mais il est mort. Enfin tout ça pour dire que l'anonyme interviewé a une vision un peu étroite de la concurrence ;)

      • [^] # SàT

        Posté par (page perso) . Évalué à  2 .

        à propos de Salut à Toi, pourquoi ne pas avoir repris le projet Telepathy qui à une architecture relativement similaire ?

        • [^] # Re: SàT

          Posté par (page perso) . Évalué à  3 .

          Principalement parce que je voulais apprendre Twisted et me perfectionner en Python. Telepathy existait quand j'ai commencé (mais n'était pas encore aussi populaire), et j'y ai songé un temps mais j'ai rapidement écarté.

          Ensuite je voulais me focaliser sur XMPP, et ce n'est qu'une partie de Telepathy. Certes qui peut le plus peut le moins, mais ça voulait dire un risque que l'architecture soit parfois plus générique que ne l'aurait été un framework purement XMPP (mais je ne connais pas l'archi de Telepathy, donc peut être que je me trompe).

          Corrige moi si je me trompe, mais Telepathy permet de faire des clients séparés tandis que SàT est un seul et même client.(tout est commun: l'historique, les paramètres, les profils, les plugins, etc).

          Enfin, en plus du côté « je voulais apprendre Twisted », ça me permet aussi d'orienter le projet vraiment comme je le souhaite, et de bien connaître son fonctionnement. Par exemple avec SàT, je peux remplacer D-Bus par un autre IPC de manière quasi transparente (le code D-Bus est généré depuis un fichier .ini, et le reste de l'appli n'a pas vraiment « conscience » de parler avec du D-Bus, il me suffit de modifier le générateur pour gérer un autre IPC), est-ce que c'est possible avec Telepathy ?

    • [^] # Casque à pointe

      Posté par (page perso) . Évalué à  3 .

      Movim se connecte au jabberd depuis le code PHP.

      Dans ce cas, c'est dommage que Movim impose d'utiliser Bosh, ça fait un truc de plus à configurer côté serveur. Pour l'autohébergement, je rêve d'un logiciel qui regroupe les fonctions serveurs et clients XMPP qui ne demande aucune configuration après l'installation...

      Newton Adventure est sur Lumière Verte : http://steamcommunity.com/sharedfiles/filedetails/?id=187107465

      • [^] # Re: Casque à pointe

        Posté par (page perso) . Évalué à  3 .

        Perso je travaille un peu là dessus mais le prob c'est que ton server jabber devra être associé à un domaine quelconque et donc sans doute bricoler du DNS. Si on pouvait utiliser une DHT pour stocker un jabberid associé à une ip, ça permettrait d'être indépendant des DNS et donc de simplifier la configuration, de n'avoir rien à faire en cas de changement d'ip du serveur, la DHT serait mise à jour. Sans parler de ne plus être impacté par la censure d'un nom de domaine.

        http://nodecast.github.com/ncs/ bitmessage : BM-2DCNWJomzSWRQ54WcuVGF7XvKEybhdmLJ9

        • [^] # Re: Casque à pointe

          Posté par (page perso) . Évalué à  2 .

          En solution de secours, il y a les dns dynamiques.

          Dans le genre, Retroshare gère ce problème avec plusieurs stratégies:

          • IP fixe.
          • dyndns.
          • DHT.

          Newton Adventure est sur Lumière Verte : http://steamcommunity.com/sharedfiles/filedetails/?id=187107465

        • [^] # Re: Casque à pointe

          Posté par . Évalué à  4 .

          Une autre solution serait que les FAI proposent des fonctions utiles dans leurs box. Du genre:
          - IPv6,
          - affecter automatiquement un reverse à une machine (adresse MAC) donnée.

          Ça permettrait d'avoir, chez soi, un PC qui automatiquement ait un nom du genre "machine.cequejeveux.perso.FAI.tld" sans mettre trop les mains dans le cambouis.

          THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

        • [^] # Re: Casque à pointe

          Posté par . Évalué à  2 . Dernière modification : le 27/11/11 à 19:54

          Le projet Dot-BIT a ce but là et il fonctionne avec le logiciel namecoin.

          Il est :

          • décentralisé (fonctionne en p2p)
          • sécurisé (cryptographie asymétrique pour signer les enregistrements)
          • extensible (utilisé actuellement pour stocker des noms de domaine en .bit mais peut accueillir n'importe quel couple clé/valeur grâce au rangement en "namespaces" : identités publiques, hash de documents, etc)

          Si vous voulez tester rapidement les noms de domaine en .bit, il y a ce bundle.
          Voici qq sites pour tester :

          • [^] # Re: Casque à pointe

            Posté par . Évalué à  1 .

            “Namecoin is a distributed naming system based on bitcoin technology (a cryptocurrency)”

            Hum, en d'autres termes, c'est un système de nommage basé sur une escroquerie organisée par des nostalgiques du Far West ?

            • [^] # Re: Casque à pointe

              Posté par . Évalué à  1 .

              Pas vraiment :p (car ça n'utilise pas les bitcoins.)

              L'utilité que ça soit basé sur une "monnaie" (les namecoins : NMC), que sa valeur soit élevée ou faible, est de limiter le nombre d'enregistrements par personne, d'éviter que quelqu'un réserve 1 millions de noms de domaines. Si tu connais une meilleure solution à ce problème (limiter qqchose tout en le fournissant le moins cher possible, sans point de contrôle central, etc) dans une architecture décentralisée je suis preneur (plus par curiosité intellectuelle qu'autre chose).

              De plus, depuis 2 mois nous avons ajouté le "merged mining" qui permet à une personne générant des bitcoins de générer en même temps des namecoins. Cela a pour effet de générer gratuitement (sans effort supplémentaire) des namecoins, ce qui fait que leur valeur est en constante baisse. Difficile de faire de la spéculation et des profits là-dessus, et la monnaie (NMC) a une valeur qui correspond à son utilité : les noms de domaines (+ les éventuels autres utilités futures du système extensible).

  • # Serveur perso

    Posté par (page perso) . Évalué à  2 .

    Nous allons aussi réaliser des premiers tests d’envergure sur le réseau, donc si vous disposez d’un serveur pouvant accueillir Movim, faites‐le moi savoir. ;)

    Pour ma part j'ai un petit serveur personnel, certes modeste, mais qui héberge déjà un ou deux sites Web et qui fait tourner eJabberd. Je manque un peu de temps, mais je peux peut-être me pencher sur la question et tenter une installation de Movim ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.