Étant proche du projet Movim et m'intéressant à OneSocialWeb, je me suis dit une chose concernant mon projet de web-client XMPP libre, Jappix : "on a déjà de solides bases, alors pourquoi stagner dans de la messagerie instantanée alors que Jappix peut faire bien plus ?".

Et voilà : maintenant Jappix est, en sa version de développement, un réseau social à part entière. À part entière, certes, mais il nous reste une masse de travail conséquente, notamment le partage de photos avec ses proches, voire de tout type de fichiers, l'organisation d'évènements, et plus et si affinités.
1. Chez les autres
Le projet Diaspora semble bien avancer, et je pensais fermement qu'il en aurait été le contraire jusqu'à ce que leur équipe publie un nouveau billet sur leur blog. Je pense que leur projet aboutira assez vite en quelque-chose de très complet. Après, il va falloir qu'ils travaillent avec les autres projets de la communauté pour faire quelque-chose de global. Ne serait-ce pas génial de pouvoir avoir un réseau décentralisé multi-plateformes ?
À côté de cela, d'autres projets similaires provenant aussi d'étudiants commencent à se concrétiser ! Je pense notamment à Movim (premiers mockups d'interface réalisés, et je peux vous dire que ça en jette, beau boulot Timothée !), mais aussi OneSocialWeb, développé par des ingénieurs de Vodafone (des spécifications XMPP ont été écrites, les clients Android, web et en console marchent et permettent déjà d'en tirer quelque-chose).
Maintenant, voyons voir avec Jappix, un projet qui se disait messagerie instantanée à ses débuts, mais qui va maintenant pouvoir se dire plateforme sociale.
2. Techniquement parlant...
Jappix se base en totalité sur le protocole XMPP, ce qui apporte une extensibilité énorme et une grande simplicité dans son développement : en effet, la partie la plus complexe du fonctionnement de XMPP est gérée par les serveurs eux-mêmes. Et des serveurs de qualité, on en a déjà quelques-uns (ejabberd notamment), voire de très légers (Prosody). Sans la lourdeur de la partie serveur, il est ainsi aisé d'améliorer Jappix et de maintenir son code.
Le principal avantage de XMPP est son ouverture et sa décentralisation. Ainsi, n'importe qui peut créer son instance Jappix pour offrir un réseau social à sa commune, son organisation ou à lui-même. De plus, la plateforme fraîchement déployée sera déjà mise en relation avec l'ensemble du réseau XMPP, ce qui vous permet de retrouver vos amis d'une autre commune, par exemple. Magique, n'est-ce pas ?
Bâtir une infrastructure mondiale distribuée, libre, et à l'abri de tout contrôle, voire d'une destruction entière (il faudrait d'abord détruire l'Internet lui-même pour détruire le réseau XMPP) est primordial pour nos libertés individuelles. Mais cette organisation qui nous est chère ne protège pas pour autant ses utilisateurs d'éventuel indiscrets s'intéressant (trop) à leur vie privée... À tout problème solution !
En effet, si vous utilisez quotidiennement ces réseaux, vous avez sûrement remarqué l'extrême contrôle qui vous est offert sur votre activité personnelle. En général, tout ce qui est privé dans XMPP se base sur les autorisations de présence. Ainsi, si vous donnez le droit à une personne de voir quand vous êtes en ligne, cette entité pourra aussi voir votre nœud PubSub (publication/abonnement) : PEP. Mais qu'est-ce donc ? PEP permet de partager tout type d'information structurée, telle que la musique que vous écoutez actuellement, votre humeur, votre activité, votre position géographique ou votre microblog. Jappix intègre déjà tout ça. Voilà pourquoi il est devenu une plateforme sociale.
C'est bien beau ce PEP, mais comment ça marche ? Comment tous mes contacts peuvent-ils recevoir en temps réel mon flux d'activité à travers ce réseau énorme, cette gigantesque fourmilière ? Comment je l'ai dit plus haut, la partie complexe est exclusivement réservée aux serveurs, qui, dans ce cas-ci, se contentent de notifier en temps réel le client (Jappix) par ce que l'on appelle des "push". Ainsi, votre serveur XMPP agit comme une sorte d'entonnoir qui vous envoie toute l'activité à laquelle vous vous intéressez. Jappix n'a plus qu'à afficher, devant vos yeux émerveillés, le résultat !
Mais ce n'est pas tout : PEP ne se limite pas aux fonctionnalités énoncées plus haut, et permet à tout un chacun d'envoyer son propre modèle de données structurées. Ceci permet, en outre, de partager des choses non normalisées par la XSF (l'organisation en charge de XMPP), comme le partage de photos, d'évènements, de vidéos, de liens... On se rapproche des fonctionnalités que propose Facebook, non ? C'est pourtant simple de proposer une alternative avec un tel protocole.
Ainsi, quand vous utilisez Jappix, tout est privé par défaut, à part bien sûr les informations que vous soumettez volontairement sur votre profil public, mais qui ne révèlent en rien vos activités personnelles. Ce profil permet juste de vous retrouver dans les annuaires des serveurs. Nous avons exactement la même philosophie que le projet Movim, qui est de redonner aux utilisateur le contrôle sur tout ce qui les concerne.
Cerise sur le gâteau : vu que Jappix utilise XMPP, que OneSocialWeb fait de même et que Movim y bosse, les utilisateurs auront aussi le choix de la plateforme. Si c'est pas beau la liberté !
3. Et l'utilisateur ?
Nous le savons tous, le grand public n'aime pas le changement. Après tout, si Facebook et MySpace conviennent à Mme Michu, pourquoi aller perdre son temps à se créer un compte autre part et à tout réapprendre ?
Ce qu'il faut, c'est que ces projets de plateformes sociales ouvertes soient des viviers et des vecteurs d'innovations. Ainsi, dans le développement de la future version de Jappix (la 0.2), nous avons porté un très grand intérêt à l'interface utilisateur, afin de simplifier l'usage de Jappix au maximum et de le rendre le plus agréable possible.
Un utilisateur qui arrive sur un nœud Jappix est guidé pour son inscription, un serveur lui est proposé, et il n'a qu'à remplir les champs correspondant à son identifiant et à son mot de passe. Puis, il n'a plus qu'à se connecter et retrouver ses amis sur le réseau. Je pense qu'il serait difficile de faire plus simple (en tout cas dans la version 0.2, pour le futur nous attendons vos propositions !). Je vous ai préparé un bref aperçu ci-dessous :

En ce qui concerne la vie privée, nous voulons aider les gens à comprendre combien elle est importante et doit être protégée. Ainsi, lorsque celui-ci modifie son profil, un cadre jaune à titre informatif lui prévient de faire très attention aux informations qu'il soumet, telles que son vrai nom, ses coordonnées, sa date de naissance, sa photo... Je trouve qu'il est est du devoir des futures plateformes sociales libres d'informer et de mettre en garde les utilisateurs sur des quelconques dangers à leur sujet (nous l'avons beaucoup évoqué lors des réunions Movim et nous avons appliqué cette manière de penser à Jappix).
D'ailleurs, nous mettons à disposition de quiconque voulant se mettre à XMPP un serveur (im.jappix.com) avec un module de salons de discussions (muc.jappix.com) et une passerelle MSN (msn.jappix.com). Nous fournissons aussi d'autres modules, utilisez l'outil de découverte de services de Jappix ou de Gajim pour les connaître.
4. Perspectives
À l'avenir, nous souhaitons que Jappix devienne une des multiples futures plateformes sociales formant un ensemble, un réseau unifié, libre et décentralisé.
En ce qui concerne le développement, nous espérons que le W3C publiera rapidement ses standards sur la webcam en HTML5 et que les navigateurs web l'intègreront rapidement. J'ai moi-même hâte de pouvoir faire des vidéoconférences depuis Jappix !
Aussi, et afin d'éviter de passer par un relai HTTP (le serveur BOSH), nous pensons abandonner la librairie JS JSJaC et passer à Strophe, qui, à ce que j'ai entendu, se penchera prochainement sur l'intégration de websockets.
Nous espérons que Jappix permettra à un bon nombre de personnes de découvrir XMPP et de rejoindre la communauté d'utilisateurs et de contributeurs !
5. Aidez-nous !
Il y a de multiples moyens d'aider le projet Jappix, et à tous les niveaux d'ailleurs.
La première chose à faire serait de rejoindre notre liste de diffusion, en utilisant le formulaire d'inscription situé sur le site du projet, rubrique "mailing list" (ou "contact" sur la future version).
Si vous êtes un développeur (JS, PHP, HTML, CSS, Java), rejoignez-nous sur notre salon de discussion XMPP, ou sur notre espace de développement. Notez que le Java servirait uniquement à améliorer Palladium, le servlet Tomcat permettant un accès BOSH indépendant à tout serveur XMPP, nous aurions besoin d'aide sur le TLS/SSL notamment, qui ne marche pas très bien.
Vous souhaitez aider à la traduction ? Nous avons une interface web permettant à quiconque de contribuer. Si une langue que vous parlez n'est pas encore référencée, dites-le nous et nous l'ajouterons afin que vous puissiez aider à sa traduction.
Puis, si vous préférez documenter le projet, ou en parler autour de vous, nous sommes aussi ouverts ! Enfin, vous pouvez suivre, en instantané, l'actualité de notre projet en rejoignant notre groupe sur Identi.ca.