• Movim, des nouvelles de la 0.9.1

    Timothée Jaussoin – Saturday, 19 March, 2016 - 22:24 – 7 April, 2016

  • Voilà un mois que Movim 0.9 - Tchouri est sorti et déjà plein de nouvelles fonctionnalités ont été intégrées pour la prochaine version !

    Le travail effectué sur la 0.9.1 (qui n'a pas encore de nom pour le moment) se concentre essentiellement sur la partie chat du projet.

    Il est déjà possible d'éditer le précédent message envoyé (en utilisant l'extension XEP-0308: Last Message Correction de XMPP) mais aussi de savoir quand un message a été reçu par le destinataire (voir XEP-0184: Message Delivery Receipts).

    Petit surprise pour les movimiens: le support des stickers (voir la page Wikipedia pour comprendre de quoi il s'agit) a été ajouté dans le projet (via l'intégration de XEP-0231: Bits of Binary). Ce qui est intéressant avec cette fonctionnalité, c'est qu'il n'y a pas de restriction sur la liste des stickers envoyés ou reçus et qu'il est déjà possible d'envoyer des stickers de Movim vers Pidgin ou Gajim. Un cache est créé par Movim pour éviter de transférer plusieurs fois l'image sur le réseau.

    Je travaille également avec des dessinateurs (et dessinatrices !) pour intégrer des stickers exclusifs au projet ! Un premier pack, créé par Corine Tea, est déjà disponible sous licence Creative Commons BY-NC-SA. Je donnerai plus d'informations prochainement là dessus ;)

    Dans le reste du projet, quelques retouches esthétiques mineures. La page "Accueil" a été supprimée et son contenu a été fusionné avec la page "Actualité". Plein de petits bugs ont été corrigés ici et là dont un sur la gestion des étiquettes des publications (qui supportent désormais les accents et certains caractères spéciaux !).

    Une mise à jour de la librairie Modl a permis d'appliquer de meilleures restrictions sur la base de données et ainsi de la rendre plus cohérente.

    Une nouvelle version de l'application bureau de Movim est également sortie pour Debian et Ubuntu. Elle est disponible, comme toujours, sur le dépôt APT officiel du projet apt.movim.eu. Elle corrige certains soucis de navigation et les liens externes sont maintenant ouverts dans le navigateur par défaut.

    Le pod nl.movim.eu est passé à la version PHP 7.0 ainsi qu'au HTTP/2 avec un gain de performances à la clef ! N'hésitez pas à utiliser ce pod qui possède exactement les mêmes fonctionnalités que pod.movim.eu.

    Il reste encore un petit peu de travail à faire avant la sortie de la 0.9.1. N'hésitez pas à venir discuter avec nous sur le salon officiel du projet, à me poser des questions et à ouvrir des bugs si vous en trouvez !

  • Read more 0 0

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

  • Read more

  • 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

  • Read more

  • Cypouz - Installation de la plate-forme sociale Movim

    Timothée Jaussoin – Friday, 20 November, 2015 - 08:54 – 7 April, 2016

  • Un super article sur Movim et son installation sur un serveur Debian/Ubuntu. Merci à toi Cypouz !

    • Installation de la plate-forme sociale Movim

      Movim est un logiciel libre permettant d'exploiter les fonctionnalités offertes par XMPP directement depuis son navigateur web. Par conséquent, notre réseau social est accessible partout, quel que soit le terminal client utilisé. Il est important de bien comprendre le mécanisme. Toutes les informations relatives à XMPP sont gérées par le serveur XMPP. La liste des contacts, les messages publiés, les salons de discussion ou tout autre type de données sont détenues par le serveur XMPP. Quel que soit le client utilisé, on accède aux mêmes informations. On peut donc utiliser plusieurs clients, qui verront automatiquement leur contenu synchronisé !


    • logo_movim.png

  • Read more 0 0

  • Libervia - Réseau social éthique, libre et sans publicité

    Timothée Jaussoin – Thursday, 22 October, 2015 - 12:41 – 7 April, 2016