• Mo

    Korben - Movim - Un réseau social basé sur XMPP

    Timothée Jaussoin – pubsub.movim.eu / Movim – Tuesday, 27 September, 2016 - 07:20 - Wednesday, 12 April, 2017 - 21:29

Un petit article de Korben sur Movim. Merci à lui :) !

  • Movim - Un réseau social basé sur XMPP

    Trop rebelle pour aller sur Facebook et trop saoulé par l'ergonomie de Diaspora ? Alors, pourquoi ne pas tester Movim ? Movim est une plateforme sociale totalement open source, reposant sur le protocole XMPP et décentralisée. Une fois inscrit, vous pouvez compléter votre profil, rechercher et ajouter des contacts, échanger avec eux, leur partager des > Lire la suite

  • Mo

    Movim 0.10 - Holmes

    Timothée Jaussoin – pubsub.movim.eu / Movim – Thursday, 18 August, 2016 - 22:04 - Tuesday, 30 August, 2016 - 22:29

A few months after Movim 0.9 - Tchouri, here comes a new release of Movim, the decentralized social network! Labeled 0.10, it offers many major improvements both in the project core and in the features offered to end users.

This new release confirms Movim's position as a serious alternative to other messaging solutions such as Telegram, WhatsApp or Slack. Movim’s goal is to finally deliver a free (as in free speech) communication platform, built with ease-of-use and pleasantness in mind, on top of very reliable standards such as XMPP and Atom, already widely deployed and tested.

Indeed, instead of creating yet-another closed network as many other projects (whether free or not) have done before, Movim uses the XMPP protocol and actively takes part in improving it.

Articles management

Articles management has been a bit reworked:

  • you can now assign tags with accents and special chars to your piece of news
  • public articles will be accessible throughout the whole XMPP network, not just the Movim pod where it was published
  • the « News » page now displays latest public articles from the whole network

Furthermore, tags and comments of deleted articles are now correctly cleaned (on the XMPP network but also in the Movim local cache database). Pictures management inside content of articles was a little bit reworked as well.

Instant Messaging

One of the main goals of this new release was to improve user experience and add some new features to the IM side of the project.

Last Message Correction

In this release, Movim implements XEP-0308 : Last Message Correction allowing users to correct the previous message using the ↑ key. This modification is compatible with many clients such as Conversations or Gajim.


Stickers support has been added to the project once again via the extension XMPP XEP-0231 : Bits of Binary allowing Movim users to send stickers to other clients such as Pidgin or Gajim.

To celebrate this new feature, two sets of Creative Commons-licensed stickers have been created exclusively for the project.

A racoon-themed set of 16 stickers drawn by Corine Tea (CC BY-SA), and a ZeMarmot movie set of 10 stickers drawn by Aryeom Han (CC BY-SA 4.0).

The idea with these sets is to promote projects that share our values while offering people to use and share nice free stickers with their contacts.

Thanks to the artists for their work! If you want to add your own stickers to the project, do not hesitate to contact us (room: movim@conference.movim.eu). :)

And many other things...

Along with the small user interface fixes and other user experience tweaks, some other changes have also been introduced.

You can now edit the chat rooms configuration after adding them. You are also notified of new messages published in those chat rooms.

Some new emojis have been added to the existing ones ;)

A new algorithm for displaying chat bubbles now allows us to save some space by grouping messages sent by the same person within the same minute.

Elsewhere in the project

A new version of the Android client (available in the Playstore and in F-Droid) has been released following a redo of the notification system.

The desktop client, based on Electron, has also been released in a new version. For now, it has only been packaged for Debian and Ubuntu, but we welcome all packaging effort for any other distributions or OS.

More generally, the whole project interface has been through a redo to be correctly displayed on small screen.

Be also advised that all Movim clients can be configured to work with non-official project instances. It means that if you set up your project's own instance (or pod), you'll be able to add it manually through the client loading screen.

Global search

In one click or using the Ctrl M shortcut you can now launch the new global search panel. It will allow you to search instantly through your articles and contacts.

This version has been named after this new feature; Holmes is indeed the family name of a respectable private eye but also the name of one of our solar system comet.


Thanks again to all the translators who have done some incredible work translating Movim to so many languages. The project is now (almost) completely translated to French, Polish, Danish, German, Spanish, Chinese, Dutch, Portuguese, Hebrew, Czech, Italian… and many other!

Don't hesistate to come and help us on the translating tool Transifex ;)

Performances, stability and memory

Many improvements have been brought to the daemon which was introduced in the last version. It comes with improved performances but more importantly a noticeable decrease of memory consumption thanks to the sharing of some librairies between subprocesses (with a gain of more than 5Mo per session!).

An important bug concerning Websockets handling which often led to an early shutdown of the session has been fixed. If you use Movim daily, this session can now stay open for several days or weeks!

Interface and administration

Administrators can now specify their own XMPP server when signin up into their instance. This is also part of the will of not limiting users wishing to set up their own instances without depending on the official servers.

More generally, some parts (like story heads and lists) of the interface have been reworked to make browsing through Movim easier. The same has been done for the article style which now offers a better rendering of some HTML tags (like paragraphs, titles, quotes, or code extracts).

File upload

Some small improvements have been brought to the file uploading functionnality (which again is based on XMPP, XEP-0363: HTTP File Upload).

Upload errors are now clearer and big images are resized and compressed on the fly.

In short

Initially thought as a minor update of the 0.9 version which had introduced an important rework, this release has finally turned into its own version: the 0.10.

The heart of the project can now be considered as stable (even if there is still changes down the hill to optimize and improve Movim). Future versions will most likely look like this one in terms of content: better integration of the existing in the user environments, new functionalities which will complete the existing ones and better overall coherence.

What's coming in Movim 0.11

The project is still going strong, and the main lines of the futur version are already shaping up.

One of the key feature of this version will be the improvement of information sharing inside Movim but also with its environment. For example, we plan to allow article sharing with contacts and chat room invites in only a few clicks.

This version also marks the big return of Jingle in the project (which had dispappeared some versions ago following troubles concerning support and stability). Audio calls will most likely be implemented first. Some tests are also planned for the Android app.

Integration with desktops client for Windows and MacOS will also among our development efforts. The main idea behind that being to be able to be present on a maximum of OS with large audience.

Other surprises will also be coming in this new version. We'll tell you more in a coming article, stay tuned ;)

Thanks to jaes, Christine Ho and all the other translators of this releasenote. The original article in French was published on LinuxFr.org!

  • Mo

    Chinwag Messaging moves to Movim

    Timothée Jaussoin – pubsub.movim.eu / Movim – Wednesday, 22 June, 2016 - 20:18 - Wednesday, 12 April, 2017 - 21:29

Chinwag Messaging an Australian IM service based on XMPP just moved to Movim for their web client solution.

  • Moving to Movim

    Since I started this little project, one of the main things I've been looking for is a decent web interface for chatting. I've tested and rejected a lot of things. Some options came really close to being what I wanted but just didn't seem to have any momentum behind them and stagnated. I wanted t

  • Mo

    Movim 0.9 - Tchouri

    Timothée Jaussoin – pubsub.movim.eu / Movim – Saturday, 20 February, 2016 - 16:31 - Wednesday, 18 May, 2016 - 14:34

After one year and three months of waiting, here is (at last) the new version of Movim. Before going into details, here are some reminders about the project.

The architecture of Movim is unique in its own style. It's an XMPP client that's able to manage many simultaneous sessions, but also a web application that's deployable on a server and can be used in browsers and on mobiles.

Movim logo

Although it's defined as a social network, it may be better to see it as a new tool that mixes the social and Instant Message functionalities of XMPP, and is fully compliant with XMPP messaging standards.

In fact, Movim isn't a network itself (unlike Facebook, Diaspora, WhatsApp). One of the project's goal is to show that it's perfectly possible to use a standard and unique protocol (which create a communication network by itself) and allow the users and administrators to have the choice of the tools (clients and servers) to interact with it.

Even if the version number isn't a major one, version 0.9 of the project is a real step forward in the architecture; the interface, and the features. The core of the project is now mature and from now on, will allow contributors to build and complete the missing features.

Movim chat interface

A new visual identitiy

This new version allowed us to totally rethink the User Interface of the project. The new UI is now strongly inspired by the Google Material Design graphical codes. We have worked on three main topics for this new release : simplicity, integration and lightness.

This is a challenge we gave ourselves: how shall we integrate all these functionalities in a nice and unified interface, which scales to all screens sizes?

First, we chose to use a three columns layout on (almost) all the pages of the project. We then based our approach on Material Design which orders information in the smartest way possible, while guaranteeing rapid access to functionalities. There's still a lot of possible improvements, but we're pretty satisfied with the result.

The app is now divided in four pages :

  • News, which groups all publications made on feeds you subscribed to, or contacts you have in your list. Tabs allow to easily filter these publications. It is also on this page, that you can publish a message to your feed; edit it; delete it, and comment on other messages
  • Contacts, where you will find your contacts list, invite new ones, and explore profiles
  • Groups, which allows you to subscribe, create and publish public feeds with all the users who have an XMPP account
  • Chat, where you can chat privately with contacts, or in chat-rooms

Important work was done on the interface to keep it lightweight and guarantee good performance. A major part of the interface is based on simple HTML5 and CSS3, only a few JavaScript libraries are used and the majority of data processing is done on the server-side. This is particularly enjoyable on smartphone where the app shows very good performance.

A little daemon driving the machine

Another major change in this version, is how data is processed in Movim. Older versions used BOSH and parallelized requests sent to the XMPP server. Version 0.9 comes with a daemon which directly connects to an XMPP server using a standard XMPP socket (with a TLS encryption layer). We don't need BOSH anymore!

This daemon has a particular architecture, such that each user session is in an independent subprocess to avoid crashing the whole platform (in case a single session meets some difficulties or error).

Related to this, the project's internal XML parser has been rewritten and now works in feed mode (tags are parsed when they come into the socket, avoiding having to wait the entire block reception before parsing it). This little change allowed to strongly enhance performance. Logging in to an account which has 400 contacts takes only a few seconds (approaching performance of native clients such as Pidgin or Gajim).

The only drawback brought by this architecture is the particularly high memory consumption of the daemon (between 10 and 30 MB per user). A large amount of work has been done to fix memory leaks, and lower and stabilize memory consumption. This could rise to several hundreds of MB during development phases! A substantial amount of work will be done in the coming versions in order to minimize even more of this footprint (the goal of less than 10 MB per session has been set). So far, the first tests done with PHP7 are very encouraging.

Full of features!

Beyond these two big steps forward it is a set of new features that have been integrated into the project. Let's review the most important ones.

New publishing interface

The posting of articles has been completely reworked and incorporates several new features. The ability to upload an image or file attachment via the XEP-0363: HTTP File Upload; Automatic "cards" if you share a link (like this article for example), and adding tags to your post for easy searching.

Creating an article on Movim it

Now, you can also edit the articles you published.

On the server side, Movim now generates a feed based on your posts, that conforms to the Atom standard.

Your blog on Movim

All the articles you publish can be made public and available outside Movim with a single click! Movim creates a public Atom feed which can be shared with anyone. It contains all of the public articles published on your profile or in Groups

In the settings, you can provide an additional CSS stylesheet to customize the display of your blog (as in this blog). An Atom feed is also created for those who want to add your feed to their news aggregator. Check out the feed of the Official Movim group.

The writing of articles uses the Markdown format, which makes it possible to use advanced layouts and to include links and images.

New contact list

The contact list has been rewritten and now runs on Angular (thank you to Christine Ho for this great work!). Be aware that slowdowns may be experienced by users who possess a rather large contact list (In the hundreds range). Improving this specific performance issue, will be addressed in future releases.

New chat interface

Chats now have a dedicated page, and lots of small features were added. For example, we added support for Emoji; the first basic implementation of XEP-0313: Message Archive Management which will be improved in future releases, and the ability to send attachments directly from the interface (as long as your XMPP server supports it). You can also change the subject of your chat room with just a couple of clicks.

Support for Ad-Hoc Commands

The support of the Ad-Hoc commands (XEP-0050: Ad-Hoc Commands) is specifically for administrators who wish to manipulate their XMPP server directly from within Movim. You can find it in the action tab of the configuration page.

XMPP account management

From the Configuration page, you can now manage your subscriptions to gateways offered by your XMPP server. You can also change your password or permanently delete your account.

Share web pages on Movim

One click is all it takes to share all the pages you want to Movim. A Universal Share button is available on the home page of your favorite Pod once you have logged in. This button takes the form of a bookmarklet that you can slip in your browser. Whenever you want to share a page, just click it and Movim does the rest! All you have to do is make a quick comment; add a title, then publish!

But also…

The Administration Panel has also been redesigned and streamlined to make life easier for administrators. The generation of the XML parsing process has also been reviewed, to minimize the possibility of malicious code injection.

Around the project

Movim v0.9 is not just great news about the code and architecture, but is full of small updates!

Landing on mobile and desktop applications for the first time

Movim is available on both Firefox OS and Android! You can download Movim from the Google Play Store; via F-Droid (Android 5.0 minimum), or the Firefox OS Marketplace.

The mobile chat interface

Work is also underway to package the project with Electron and deploy a desktop Movim client. The first packages for Debian and Ubuntu are expected in the coming weeks. If you want to give us a hand and help package Movim for your Operating System, please have a look at the GitHub project.

YunoHost package

Thanks to the wonderful work of Src386 a Yunohost package is also available for the project. Thanks for your hard work!

New web site and move to GitHub

To improve access to the project, we've decided to move it on GitHub where we now have our organization. The official Wiki has also been moved on this platform and is available here.

Finally, the official website was reworked to better represent the project. Don't hesitate to take a quick look, for a good overview of the current status of the project.

But It's not over…

Here is a little preview of what awaits you in version 0.9 of the Movim project. We don't want to rest on our laurels, and good things are being prepared for future releases.

The version cycle will be considerably reduced. The current version is an exception, due to the fact that the work was particularly difficult. This should explain the long months leading up to its release. The coming versions of the project will be lighter in features and focus on a particular theme.

To give you a little insight into the next version (which will certainly be a 0.9.1), it will focus on the chat part of the project with the integration of lots of small features and improved user experience.

The purpose of Movim is not only to provide a new social media client. The main motivation of the project is to integrate seemlessly into our daily lives. To do this we continually reflect on how best to deal with topics such as User Experience; the integration of Industry Standards (at all levels); respect for personal information, and integration of the platform in the users environment and XMPP network.

The idea behind Movim is choice. Not only letting you choose where you put your information, but also choosing the client (and server) that you use to access it.

We don't want to lock customers into Movim, but to show how the use of a communication standard (even though it has defects that we're trying to fix) is paramount. To access the network behind Movim (XMPP) there's no API but simple libraries already available in all languages.

Thanks to everyone for the growing community support of Movim, and to all the people involved :) To help us with building Movim, you can come and help translate the project; you can submit a bug report on GitHub, or come talk to us. We also accept donations via PayPal or Flattr to help us cover our costs (infrastructure; travel; promotional, etc.), you will find links on the official Movim website.

That’s all folks!

Thanks to Stroggle, Nÿco, Christine Ho, Alex and TheThinker for the French to English translation. Originally published in French on LinuxFr.org.

  • Mo

    Movim will be at the FOSDEM !

    Timothée Jaussoin – pubsub.movim.eu / Movim – Wednesday, 13 January, 2016 - 08:42 - Wednesday, 12 April, 2017 - 21:30

Want to meet us ? Having some questions or toughs about Movim ? We will be here at the FOSDEM the 30 January 2016 and we have a little conference at 17:40 room H.2215.

Richard Stallman preaching

  • Mo

    Questions/Réponses sur Movim

    Timothée Jaussoin – pubsub.movim.eu / Movim – Tuesday, 12 January, 2016 - 08:31 - Wednesday, 18 May, 2016 - 14:35

Voici quelques questions posées par un utilisateur de Movim récemment. Je les partages ici car je pense que ça pourrait aider d'autres personnes.

Problèmes rencontrés:

Où est-on censé rapporter ses problèmes? Pas de forum, juste une mailing list?

Le bugtracker est un bon endroit, même pour poser des questions (y'a un label "question" d'ailleurs pour ça, par exemple https://github.com/movim/movim/issues/104). Sinon tu peux passer directement par notre salon de discussion officiel. Peut être serait-il intéressant d'ouvrir un Groupe public sur Movim pour ces interrogations.

L'installation parle à peine du serveur XMPP. Pourtant, c'est certainement une pièce maitresse, et il m'a fallu fouiner à gauche et à droite avant de comprendre que le serveur BOSHn'est pas activé par défaut, par exemple (Prosody).

Je ne détaille pas l'installation de la partie XMPP car elle n'est pas de mon ressort, il y a également d’excellent tutoriels pour cette partie sur d'autres projets (comme ici https://github.com/jappix/jappix/wiki/XmppServer). Depuis la version 0.9 BOSH n'est plus requit pour faire fonctionner Movim, Movim agit depuis comme un simple client XMPP comme précisé ici https://github.com/movim/movim/wiki/Install-Movim#general-behaviour.

J'ai pu vérifier que le serveur XMPP marche avec Psi. Je peux lancer le démon de Movim sans message d'erreur, encore que: à chaque démarrage, il mentionne des choses à faire dans Apache/Nginx, ce qui me faisait me demander s'il manquait encore des choses. N'y-a-t-il pas moyen de faire disparaitre ces messages si le serveur web est correctement configuré? Sinon, ça me laisse dans la plus grande confusion (pourquoi me redemander de faire un truc que j'ai déjà fait?)

Oui cette information est générée à chaque démarrage du démon car je n'ai pas moyen de vérifier si elle est présente dans la documentation Apache/nginx (ce qui serait un grave problème de sécurité en soit si c'était le cas).

Créer un compte depuis Movim ! J'ai cliqué sans doute 100 fois de façon différente sur "Ce serveur ici" (de mémoire, le message était peut-être un peu différent) en espérant atteindre un formulaire à remplir avec l'adresse du serveur ou un truc dans le genre. C'est vraiment pas clair. Il faudrait reformuler et faire ressortir la case pour ne pas qu'elle semble être le dernier bouton de la liste!

Je ne voit pas par où tu es passé pour ça. Peut être parle tu de :

"Votre serveur ici ?

Contactez-nous pour ajouter le vôtre à la liste des serveurs officiellement pris en charge • https://movim.eu/ "

Comme expliqué dans la seconde ligne du message il faut nous contacter pour que nous ajoutons ton serveur à la liste. Cette liste est chargée depuis notre API et est donc partagée entre tous les pods de Movim.

Je n'ai jamais réussi à me connecter (j'y ai passé pas mal d'heures déjà...). Et j'ai eu le plus grand mal du monde à comprendre pourquoi, vu que Movim ne me renvoyait aucun message d'erreur utile, à part "timeout on read select()" dans le log php qui me disait que quelque part, quelque chose ne répond pas. Et je m'en doute, vu qu'il ne se passe rien.

J'imagine l'utilisateur final dans la même situation.

Un message d'erreur ne ferait pas de mal (est-ce que c'est le serveur BOSH qui ne répond pas? est-ce que c'est le serveur XMPP? est-ce que c'est autre chose? l'utilisateur final ne peut même pas regarder les logs, il ne verra que sa fenêtre désespérément statique!)

Il y a plein de raisons possible à des soucis de connexion, chaque cas est unique et Movim a beau être codé pour être le plus universel possible il y a encore plein plein de cas qui ne sont pas couverts (c'est pour ça que je maintient une liste de serveurs compatibles).

Les erreurs sont multiples et pas forcément "catchables", un timeout peut venir de plein de cas particuliers qui ne sont peut être pas de mon ressort.

J'ai finalement trouvé quasiment par hasard que ça ne marcherait jamais sans certificat signé. J'ai passé encore un bon moment pour générer des certificats auto-signés pour mon serveur Prosody (toujours en localhost).

Je ne sais toujours pas si c'est le problème ou pas, mais à un moment, sans la moindre idée de ce qui ne marchait pas, j'ai fini par abandonner.

Oui un certificat signé est requit (ce qui en effet devrait être écrit quelque part). Il n'est pas possible d'utiliser un certificat auto-signé comme expliqué ici https://github.com/movim/movim/issues/6. PHP ne me permet pas de le faire.

J'ai donc essayé de me connecter au serveur https://pod.movim.eu/ avec un antique compte jabber.fr (qui miracle marche encore!). Connexion sans problème, bien sûr. J'ai pu lancer une pseudo discussion avec un contact (en fait envoyer des messages à mon adresse gmail sans pouvoir répondre, évidemment).

Mais nouveau problème: je voulais créer un salon de discussion, pour voir, et pas moyen: je vois bien le bouton, j'ai un formulaire qui apparait avec l'adresse du salon à entrer.

Alors encore une fois: si ma mère tombe sur un truc comme ça, elle abandonne de suite. Même pour moi, ce n'est pas clair:

  • est-ce que c'est pour se connecter à un salon existant?
  • est-ce que c'est pour créer un nouveau salon?
  • est-ce que l'adresse du salon, c'est censé être sur le serveur XMPP (jabber.fr) ou le pod Movim??

Bref: pas réussi non plus, et là encore, absolument aucun message d'erreur pour l'utilisateur quand ça ne fait rien, qui ne peut que recommencer la procédure en espérant comprendre ce qu'il est censé changer.

La partie salon de discussion est encore très très incomplète et sera l'une des priorités des prochaines versions. Il faut te trouver un service "chatroom" (comme conference.movim.eu) et te créer ton salon dessus (de la forme monsalon@conference.movim.eu), une fois fait tu le rejoint et dans la configuration du salon tu le rend persistent, il ne reste plus qu'à donner l'adresse à tes contacts et à configurer tout ça.

Vrai bug, ce coup-ci: sur mon écran 1440x900, la fenêtre de statut ne s'affiche pas entièrement, et en particulier, je ne vois qu'une partie de la ligne de déconnexion. Je ne peux en pratique pas me déconnecter!

Le bugtracker est ton ami, j'ai tenté ta résolution et tout semble marcher de mon coté, mais ouvres un bug et on en discute là bas

Après tout ça, quelques suggestions de plus:

J'utilise maintenant régulièrement "WeChat" (réseau fermé et proprio chinois, les Chinois, c'est comme les autres, sauf que la loi chinoise se fout éperdument de la vie privée et les Chinois aussi, alors c'est sans doute l'un des pires réseaux au monde pour la vie privée). Mais WeChat est très bon pour plusieurs choses:

  • Pensé dès le début pour usage sur téléphone. En fait, le client bureau est très très récent, avant c'était uniquement téléphone.
  • Messages vocaux: dans un chat ou un salon, on peut, depuis le client Android, presser un simple bouton et commencer à enregistrer un message vocal pour le publier simplement. C'est bête, mais ça évite de taper au clavier de smartphone. Dans la lignée, un "message vidéo" pourrait être tout aussi intéressant.
  • Pleins d'autres fonctionnalités toutes bêtes (autoriser la géolocalisation pour trouver des contacts à proximité, les Chinois qui vivent à l'étranger en raffolent!). Bref, je suppose que tu abhorres les réseaux fermés, mais rien que pour être inspiré sur les usages et les fonctionnalités, c'est pas mal.

Oui je connais aussi WeChat. La v0.9 de Movim a aussi été pensée pour les mobile mais peut être pas à ce point. Pour les messages vocaux/vidéos c'est un travaille titanesque pour le "faire bien" comme tu peux le voir il y a encore encore beaucoup à faire sur les autres fonctionnalités. Donc je privilégie pour le moment l'amélioration de l'existant avant de partir dans tout les sens et d'ajouter des fonctionnalités "pas finies".

Mais pour les points 1--6, je pense que le problème, et corrige-moi si je me trompe, c'est ça:

Movim a été créé et testé par des gens qui ont déjà des contacts XMPP?

Du coup, pour ceux qui partent vraiment de 0, vous n'avez peut-être pas réalisé à quel point la barrière d'entrée est élevée?

Movim a été créé pour des gens qui ont déjà des contacts mais aussi pour ceux qui en ont pas. Le fait que le réseau soit décentralisé rend la tâche difficile car il faut "trouver" des gens sur le réseau qui pourrait intéresser le nouvel arrivant. Cette partie est également une priorité pour nous pour faciliter la vie aux nouveaux arrivants.

Merci Matthieu pour tes questions

  • This content is private, please login to see it - Login

  • This content is private, please login to see it - Login