tag:linuxfr.org,2005:/users/edhelas/newsLinuxFr.org : les dépêches de edhelas2018-08-15T11:11:45+02:00/favicon.pngtag:linuxfr.org,2005:News/387202018-08-13T22:03:35+02:002018-08-14T14:07:01+02:00 Movim, mode d’emploi — Première partie : l’architectureLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Je travaille maintenant depuis presque dix ans sur Movim et je n’ai jamais réellement eu l’opportunité d’expliquer comment le projet fonctionne. Prenons un peu le temps de mettre tout ça par écrit !</p>
<p>Cette présentation sera divisée en plusieurs articles. Je vais commencer par présenter le projet de façon globale avant d’aller progressivement vers son fonctionnement interne et ses détails techniques.</p>
</div><ul><li>lien nᵒ 1 : <a title="https://movim.eu" hreflang="en" href="https://linuxfr.org/redirect/102445">Movim — Site Officiel</a></li><li>lien nᵒ 2 : <a title="https://nl.movim.eu/?blog/edhelas%40movim.eu/how-s-made-movim-part-i-the-architecture-CCA7If" hreflang="en" href="https://linuxfr.org/redirect/102446">Article original : How’s Movim made? Part I - The Architecture </a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-cr%C3%A9ons-un-r%C3%A9seau-social-tempsr%C3%A9el">Créons un réseau social temps réel</a></li>
<li><a href="#toc-un-peu-dhistoire">Un peu d’histoire</a></li>
<li><a href="#toc-un-d%C3%A9mon-quelques-tuyaux-et-voil%C3%A0">Un démon, quelques tuyaux et voilà !</a></li>
<li>
<a href="#toc-optimisations">Optimisations</a><ul>
<li><a href="#toc-analyseur-de-flux-xml">Analyseur de flux XML</a></li>
<li><a href="#toc-hello-zeromq">Hello ZeroMQ !</a></li>
<li><a href="#toc-de-modl-%C3%A0-eloquent">De Modl à Eloquent</a></li>
</ul>
</li>
<li><a href="#toc-ce-que-jai-appris">Ce que j’ai appris</a></li>
<li><a href="#toc-du-coup-movim-est-rapide">Du coup, Movim est rapide ?</a></li>
</ul>
<p>J’utilise les plates‐formes sociales depuis pas mal d’années maintenant et je suis toujours surpris de voir que malgré les milliards de dollars investis par les géants du Web elles fonctionnent toutes plus ou moins selon la même architecture.</p>
<p>Même avec toutes les technologies qui sont apparues ces dernières années les choses se présentent toujours plus ou moins de la même façon : vous publiez du contenu via des requêtes AJAX (ou au travers d’un Websocket), c’est sauvegardé dans une base de données et vos contacts vont périodiquement envoyer une requête au serveur pour voir si il y a quelque chose de nouveau à afficher.</p>
<p>C’est au final assez facile à construire et si vous souhaitez le faire vous‐même il existe de nombreux cadriciels qui offrent tous les outils nécessaires pour réaliser cette architecture aisément (typiquement Laravel, Ruby on Rails, Django, Symfony ou Zend, connectés à une base de données SQL, une API REST, une jolie interface et hop vous avez un réseau social).</p>
<p>Mais pourquoi donc devoir attendre pour récupérer les publications des autres contacts ?</p>
<p>Nous avons depuis des décennies maintenant des technologies de messagerie instantanée qui nous permettent d’envoyer, en temps réel, tout autour du globe, du contenu sans le moindre souci. Pourquoi ne pouvons‐nous pas faire de même avec les réseaux sociaux ?</p>
<p>Et c’est ici que réside l’idée de base du projet Movim.</p>
<h2 id="toc-créons-un-réseau-social-tempsréel">Créons un réseau social temps réel</h2>
<p>Donc, l’une des erreurs à éviter quand le projet a démarré, c’était de réinventer la roue. Vous verrez que Movim est principalement composé de technologies basiques et déjà éprouvées.</p>
<p>Pour fabriquer un réseau social fonctionnant en temps réel, il me fallait transférer du contenu instantanément sur le réseau. Il devait donc être transporté au sein d’un système « connecté » et donc construit sur des <em>sockets</em> (contrairement aux systèmes construits sur des requêtes).</p>
<p>Cela exclut déjà toutes les récentes technologies sociales standardisées par le W3C (bye bye <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> et <a href="https://www.w3.org/TR/websub/">WebSub</a>), ces dernières étant construites sur HTTP. Loin de moi l’idée de remettre en question ces standards, ce sont des solutions sérieuses et parfaitement valides, mais pas pour les besoins de Movim.</p>
<p>Je cherchais donc un protocole qui soit :</p>
<ul>
<li>temps réel ;</li>
<li>standard (avec des RFC sérieuses) ;</li>
<li>et si possible déjà éprouvé et largement déployé.</li>
</ul>
<p>Cela nous amène donc à XMPP (je ne vais pas expliquer en détail comment le protocole est construit, vous pouvez trouver plus d’informations sur la <a href="https://fr.wikipedia.org/wiki/XMPP">page Wikipedia</a> et sur le <a href="https://xmpp.org">site officiel de la fondation</a>).</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f6d696e64626f777365722e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031352f30372f786d70705f6c6f676f2e706e67/xmpp_logo.png" alt="Logo de XMPP" title="Source : http://mindbowser.com/wp-content/uploads/2015/07/xmpp_logo.png"></p>
<p>Dans la pratique, XMPP nous offre quelques précieux avantages :</p>
<ul>
<li>c’est un protocole temps réel (super !), les données sont échangées dans le format XML (oui, je vous vois déjà venir, vous les défenseurs du JSON ! Mais gardons de côté ce différend pour plus tard ;)) sous forme de paquets (appelés « <em>stanzas</em> » dans le cas présent) envoyés en TCP et chiffrés avec TLS ;</li>
<li>XMPP offre un cadriciel très simple et générique qui comprend de (très !) nombreuses extensions que l’on peut combiner afin de développer la solution désirée (<a href="https://github.com/movim/movim/tree/master/lib/moxl#xmpp-support">voici pour l’exemple celles utilisées pour construire Movim</a>) ; et parce que XMPP est basé sur XML, il est très facile de l’étendre au moyen d’espaces de noms (<em>namespaces</em>) existants : prenez <a href="https://fr.wikipedia.org/wiki/Atom">Atom</a>, ajoutez‐y <a href="https://xmpp.org/extensions/xep-0060.html">Pubsub</a> et voilà, vous obtenez un système de publication de contenu complet, temps réel, pour vos articles avec pièces jointes, bien défini et tout à fait spécifié ;</li>
<li>vous pouvez faire bien plus que de simples choses « sociales » avec XMPP ; pas besoin de composer avec dix autres protocoles, XMPP offre déjà tout pour faire du clavardage et des salons de discussion, de la vidéoconférence, des solutions de publication-abonnement et beaucoup d’autres choses. Et cela offre l’avantage de conserver un code assez concis puisqu’il n’y a qu’un unique protocole dans le <em>back‐end</em> ;</li>
<li>XMPP est fédéré et utilise un réseau un peu similaire à celui du courrier électronique ; les comptes sont créés sur les serveurs (c’est pourquoi les identifiants sont également similaires : <code>nomutilisateur@serveur.tld</code>), les clients se connectent ensuite à ces serveurs XMPP ; en plus de ça, vous pouvez avoir plusieurs clients connectés, en même temps, à votre compte et ils seront tous synchronisés en temps réel :) ;</li>
<li>il y a déjà une grande communauté, avec des serveurs sérieux qui peuvent gérer des millions de connexions simultanément sans aucun problème (<a href="https://www.ejabberd.im/">ejabberd</a> <3).</li>
</ul>
<p>C’est aussi un gros avantage pour Movim. Je n’ai pas à m’occuper de tous les problèmes de réseau. C’est « juste » un client simple et stupide qui se connecte aux serveurs XMPP, en obtient du contenu et leur en envoie.</p>
<p>Si vous comparez cette solution avec d’autres solutions de réseau fédéré telles que <a href="https://joinmastodon.org/">Mastodon</a> ou <a href="https://joindiaspora.com/">Diaspora</a>, il y a là une grande différence : pour Movim, les comptes sont sur un serveur distinct. Je n’ai donc pas besoin de créer une autre API pour communiquer avec Movim. Tout le monde peut échanger avec Movim en implémentant simplement XMPP (et il y a déjà <a href="https://xmpp.org/software/libraries.html">beaucoup de bibliothèques et de solutions dans la nature pour le faire</a>).</p>
<p>OK, nous avons choisi le protocole, maintenant nous devons construire le <em>back‐end</em>.</p>
<h2 id="toc-un-peu-dhistoire">Un peu d’histoire</h2>
<p>J’ai créé Movim en 2008 afin d’apprendre à programmer et essayer de construire par la même occasion une plate‐forme sociale sur laquelle j’aimerais échanger avec mes proches. Ayant choisi d’apprendre le langage PHP par la même occasion j’ai tout naturellement choisi celui‐ci pour commencer les travaux.</p>
<p>Avec les connaissances acquises au cours de mes études, l’aide d’un ami (Etenil, si tu me lis…) et de ce que j’ai pu apprendre de façon autodidacte j’ai progressivement amélioré Movim et rajouté les nombreuses fonctionnalités qui me paraissaient intéressantes pour construire une plate‐forme sociale digne de ce nom.</p>
<p>Puis au cours de l’été 2014 j’ai décidé d’entièrement réécrire le cœur de Movim afin d’en faire une plate‐forme entièrement temps réel. En effet, jusqu’ici le projet était construit sur une « émulation » de temps réel construite au dessus de HTTP via les connections XMPP (en utilisant l’extension <a href="https://xmpp.org/extensions/xep-0124.html">BOSH</a>).</p>
<p>Ces changements apportèrent également une importante réécriture de l’architecture interne et d’une refonte de l’interface utilisateur.</p>
<p>À cette période un nouveau cadriciel commençait à faire parler de lui au sein de la communauté. <a href="https://github.com/reactphp/">ReactPHP</a> permettait en effet de construire très facilement des architectures entièrement en temps réel en PHP et offrait tout ce que je recherchais pour cette réécriture.</p>
<h2 id="toc-un-démon-quelques-tuyaux-et-voilà">Un démon, quelques tuyaux et voilà !</h2>
<p>ReactPHP est un ensemble d’outils s’interconnectant entre eux et permettant de créer toutes sortes d’architectures fonctionnant entièrement en temps réel.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f61766174617273332e67697468756275736572636f6e74656e742e636f6d2f752f313639363836363f733d32303026763d34/1696866?s=200&v=4" alt="ReactPHP is handling most of the core features of Movim" title="Source : https://avatars3.githubusercontent.com/u/1696866?s=200&v=4"></p>
<p>J’utilise à ce jour les modules suivants :</p>
<ul>
<li>
<a href="https://github.com/reactphp/event-loop">react/event-loop</a>, le cœur de React, s’occupant de la gestion de toutes les entrées‐sorties ;</li>
<li>
<a href="https://github.com/reactphp/dns/">react/dns</a>, un résolveur DNS asynchrone ;</li>
<li>
<a href="https://github.com/reactphp/promise-timer">react/promise-timer</a>, pour exécuter périodiquement des évènements ;</li>
<li>
<a href="https://github.com/reactphp/socket">react/socket</a>, pour se connecter à XMPP en utilisant des <em>sockets</em> TCP (avec une couche de chiffrement TLS par dessus) ;</li>
<li>
<a href="https://github.com/reactphp/child-process">react/child-process</a>, pour lancer et gérer des sous‐processus ;</li>
<li>
<a href="https://github.com/reactphp/stream">react/stream</a>, afin de connecter toutes ces choses ensemble ;</li>
<li>
<a href="https://github.com/reactphp/zmq">react/zmq</a>, une bibliothèque <a href="http://zeromq.org/">ZeroMQ</a> pour pouvoir gérer efficacement les communications au sein de Movim.</li>
</ul>
<p>Il m’a fallu ensuite quelques mois de recherche avant de trouver une architecture stable, qui n’a que peu changé par la suite.</p>
<p>Rentrons un peu dans les détails.</p>
<p>Toute la structure de Movim est prise en charge par un démon central (qui s’appelle <code>daemon.php</code>, c’est fou !). Ce démon s’occupe de tous les <a href="https://fr.wikipedia.org/wiki/WebSocket">WebSockets</a> des navigateurs des utilisateurs (mobiles et bureau) et lance un sous‐processus pour chaque utilisateur connecté. Finalement, il se comporte comme un routeur tout bête qui transfère les messages entre les WebSockets des utilisateurs et leurs processus respectifs</p>
<p>Cette architecture offre plusieurs avantages :</p>
<ul>
<li>les sessions utilisateur sont isolées et n’influent pas sur les performances les unes des autres ;</li>
<li>elles peuvent être contrôlées plus facilement (tuer une session ne supprimera pas les autres) ;</li>
<li>le démon principal est minimal (il agit comme un simple routeur).</li>
</ul>
<p>Cela présente néanmoins un inconvénient : la consommation de mémoire est supérieure. Le code est chargé plusieurs fois entre les différents sous‐processus. Il faut compter environ 10 à 20 Mio par utilisateur connecté. La situation s’est bien améliorée depuis les dernières versions puisque la consommation mémoire de Movim lui‐même a été réduite en retirant des dépendances et en mettant à jour PHP (PHP 7.0+). La consommation mémoire reste un point d’amélioration pour les versions à venir puisqu’elle pourrait devenir un goulot d’étranglement. Le cadriciel peut facilement supporter des milliers de connexions simultanées mais la mémoire vive manquera bien avant d’y arriver.</p>
<p>Chacun des ces sous processus se connecte au serveur XMPP de l’utilisateur puis prend en charge toutes ses communications. Il se connecte aussi à la base de données SQL commune qui fait office de cache pour chaque compte et permet l’échange de données entre eux (via la découverte de ressources publiques par exemple)</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6d6f76696d2e65753a353238302f75706c6f61642f333733336238386363376639353964346438373666353030633636353861653236303931393938632f63755a4961616e4d4f747031767954346e42784e44337766333576494d6b6277726b367653514a542f6172636869746563747572652e706e67/architecture.png" alt="The Movim simplified architecture" title="Source : https://movim.eu:5280/upload/3733b88cc7f959d4d876f500c6658ae26091998c/cuZIaanMOtp1vyT4nBxND3wf35vIMkbwrk6vSQJT/architecture.png"></p>
<p>Pour finir, ces processus gèrent aussi tout ce qui est relatif au frontal, mais cette partie sera expliquée plus en détail dans un article à venir.</p>
<h2 id="toc-optimisations">Optimisations</h2>
<p>Certaines optimisations ont été faites pour améliorer les performances globales de cette architecture. En voici les trois principales, celles qui je pense, ont eu le plus grand impact sur le projet.</p>
<h3 id="toc-analyseur-de-flux-xml">Analyseur de flux XML</h3>
<p>Une connexion XMPP peut être ramenée à un flux XML bidirectionnel. Le client envoie des requêtes XML (appelées stanzas) et analyse (d’un point de vue lexical) les requêtes entrantes. Le point important ici est que les requêtes entrantes font partie d’un seul et même « document » XML. À l’origine, Movim détectait chacune de ces <em>stanzas</em> et les analysait séparément.</p>
<p>L’analyseur a donc été remanié pour travailler en flux (voir <a href="https://secure.php.net/manual/fr/book.xml.php">analyseur syntaxique XML</a>). Cela permet à Movim de préparer les <em>stanzas</em> entrantes et de lancer les événements qui leur sont relatifs dès que les premières balises XML sont reçus dans le <em>socket</em>. Le petit changement a vraiment amélioré les performances XMPP globales du projet. En particulier pendant la phase de connexion puisque Movim peut maintenant traiter plusieurs milliers de stanzas en quelques secondes.</p>
<h3 id="toc-hello-zeromq">Hello ZeroMQ !</h3>
<p>Les communications entre le démon principal et les sous‐processus (qu’on appelle « <em>linkers</em> » dans Movim) sont à l’origine de simples <em>stdin/stout</em>. Cela a créé des problèmes de tampons et de performance et j’ai finalement choisi d’utiliser un outil spécifique à la tâche : <a href="http://zeromq.org/">ZeroMQ</a>.</p>
<p>À chaque fois que le démon principal invoque un linker pour un utilisateur, il crée deux flux <a href="https://en.wikipedia.org/wiki/Inter-process_communication">IPC</a> dédiés (un pour les messages entrants et un pour les messages sortants) puis gère tout ce qui les traverse.</p>
<p>Cela m’a permis d’éviter la création de certains tampons dédiés au transit de messages et ainsi d’améliorer les performances globales, en particulier pour la partie interface utilisateur.</p>
<p>ZeroMQ est aussi très léger et est déjà disponible et empaqueté sur la majeure partie des distributions GNU/Linux.</p>
<h3 id="toc-de-modl-à-eloquent">De Modl à Eloquent</h3>
<p>Movim dépendait au début d’un ORM spécifiquement créé pour le projet (Modl). La version qui arrive (0.14) utilisera la bibliothèque reconnue <a href="https://laravel.com/docs/master/eloquent">Eloquent</a> (utilisée par le cadriciel Laravel).</p>
<p>Ce changement m’a permis d’utiliser des fonctionnalités comme le <a href="https://en.m.wikipedia.org/wiki/Lazy_loading"><em>eager loading</em> et le <em>lazy loading</em></a>, mais aussi d’écrire des migrations proprement et d’optimiser certaines requêtes.</p>
<p>Plus d’informations dans <a href="https://nl.movim.eu/?node/pubsub.movim.eu/Movim/from-modl-to-eloquent-or-how-to-change-an-airplane-engine-while-in-flight-gr6f8b">l’article dédié</a>.</p>
<h2 id="toc-ce-que-jai-appris">Ce que j’ai appris</h2>
<p>Après toutes ces années à travailler sur ce project temps réel, je peux maintenant tirer certaines conclusions sur les choix et changements que j’ai réalisés :</p>
<ul>
<li>PHP n’est pas un problème la plupart du temps : PHP est rapide, vraiment rapide ; la plupart des optimisations que j’ai obtenues étaient liées à la façon dont je gérais les flux et leur contenu ainsi qu’aux requêtes dans la BDD ; passer à PHP 7 puis aux versions suivantes a un peu amélioré les performances, mais le gain a été négligeable par rapport à ce qui a découlé des autres changements réalisés dans le code ;</li>
<li>chercher le goulot d’étranglement : quand on travaille en temps réel, même si certaines parties sont gérées par des promesses et autres systèmes asynchrones, il y a toujours du code synchrone et donc bloquant ; il faut s’assurer que ce code n’est pas « trop lent ». Dans Movim, par exemple, les requêtes BDD sont toujours considérées comme bloquantes (c’est une autre optimisation qui pourrait être apportée…) ce qui fait qu’une requête qui prend 200 ms à être déclenchée va retarder l’exécution du reste du code de 200 ms ;</li>
<li>tester en « conditions réelles » : je pensais que Movim était rapide jusqu’au moment où j’ai vu des utilisateurs galérer avec (Nik, si tu me lis…) ; certains utilisateurs de Movim avaient beaucoup plus de salons de discussion et avaient souscrit à beaucoup plus de flux que prévu, ce qui a créé de gros ralentissements, en particulier pendant la phase de connexion ; grâce à quelques optimisations bien pensées (et parfois très simples), les choses sont revenues à la normale ;</li>
<li>et peut‐être la plus importante de toutes : <em>Keep It Simple!</em>
</li>
</ul>
<p>J’ai l’impression que beaucoup de projets accordent trop d’importance au principe DRY — <em>Don’t Repeat Yourself</em>). Parfois il n’est pas nécessaire d’importer une bibliothèque entière, écrire une fonction qui correspond exactement à la situation peut faire l’affaire. Il est préférable de garder aussi peu de dépendances que possible.</p>
<p>Questionnez‐vous sur ce dont votre projet a besoin pour fonctionner. Est‐ce que tout est vraiment indispensable ?</p>
<p>Et pour finir, n’ayez pas peur d’un grand ménage de printemps de temps en temps (j’ai passé 50 heures à remplacer Modl par Eloquent) pour simplifier et nettoyer votre code si nécessaire.</p>
<h2 id="toc-du-coup-movim-est-rapide">Du coup, Movim est rapide ?</h2>
<p>Movim est rapide. Dans certains cas, Movim est même plus rapide que certains clients XMPP natifs comme Pidgin ou Gajim. Movim est aussi plus rapide que certaines autres plates‐formes de discussion en ligne, de par son <em>back‐end</em>, mais aussi grâce à la façon dont son frontal est mis en œuvre. J’en reparlerai dans un prochain article.</p>
<p>Sur mon compte (400 contacts, 50 salons de discussion) s’authentifier et obtenir une interface réactive ne prend qu’une poignée de secondes, surtout sachant que les données viennent d’un serveur tiers (votre serveur XMPP) et sont re‐synchronisées pour certaines lorsque vous vous connectez.<br>
Si vous voulez voir le résultat par vous‐même, faites un tour sur le <a href="https://movim.eu/">site officiel</a>. ;)</p>
<p><em>That’s all folks!</em></p>
</div><div><a href="https://linuxfr.org/news/movim-mode-d-emploi-premiere-partie-l-architecture.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/114984/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/movim-mode-d-emploi-premiere-partie-l-architecture#comments">ouvrir dans le navigateur</a>
</p>
edhelasXavier TeyssierYves BourguignonRoM1Benoît SibaudNils RatusznikDavy Defaudpalm123NÿcoM5oulBruno Michelhttps://linuxfr.org/nodes/114984/comments.atomtag:linuxfr.org,2005:News/382612017-11-02T14:05:23+01:002018-09-16T20:14:36+02:00Movim 0.12 — LovejoyLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Movim est un client Web pour le protocole <a href="https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol">XMPP</a> (anciennement nommé Jabber). Il est écrit en PHP (pour la partie serveur) et JavaScript (pour la partie client). Il dispose des fonctions de discussions 1‐à‐1, en salons, et des fonctions orientées réseau social. Il permet aussi la visioconférence en version bêta.</p>
<p>La nouvelle version 0.12 de Movim, <em>Lovejoy</em>, apporte un grand nombre de nouvelles fonctionnalités. Au sein de cet article nous passerons en revue les plus importantes.</p>
</div><ul><li>lien nᵒ 1 : <a title="https://movim.eu/" hreflang="en" href="https://linuxfr.org/redirect/100851">Site officiel du projet</a></li><li>lien nᵒ 2 : <a title="https://github.com/movim/movim" hreflang="en" href="https://linuxfr.org/redirect/100852">GitHub officiel</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-une-nouvelle-fa%C3%A7on-de-parcourir-votre-liste-de-contacts-et-vos-communaut%C3%A9s">Une nouvelle façon de parcourir votre liste de contacts et vos communautés</a></li>
<li><a href="#toc-publiez-dun-simple-clic">Publiez d’un simple clic</a></li>
<li>
<a href="#toc-organiser-et-explorer-les-publications">Organiser et explorer les publications</a><ul>
<li><a href="#toc-contenu-inappropri%C3%A9-au-travail-nsfw">Contenu inapproprié au travail (NSFW)</a></li>
</ul>
</li>
<li><a href="#toc-nouveau-look-pour-les-publications">Nouveau look pour les publications</a></li>
<li><a href="#toc-movim-%EF%B8%8F-votre-mobile">Movim ❤️ votre mobile</a></li>
<li>
<a href="#toc-chat-et-salons-nouvelles-fonctionnalit%C3%A9s-et-nouveau-design">Chat et salons, nouvelles fonctionnalités et nouveau design</a><ul>
<li><a href="#toc-marqueurs-de-discussion">Marqueurs de discussion</a></li>
<li><a href="#toc-stickers">Stickers !</a></li>
<li><a href="#toc-historique">Historique</a></li>
</ul>
</li>
<li>
<a href="#toc-mais-aussi">Mais aussi…</a><ul>
<li><a href="#toc-migration-de-notre-serveur-xmpp-officiel-vers-ejabberd">Migration de notre serveur XMPP officiel vers ejabberd</a></li>
</ul>
</li>
<li><a href="#toc-aideznous">Aidez‐nous !</a></li>
</ul>
<h2 id="toc-une-nouvelle-façon-de-parcourir-votre-liste-de-contacts-et-vos-communautés">Une nouvelle façon de parcourir votre liste de contacts et vos communautés</h2>
<p>La page <em>Contacts</em> de Movim a été entièrement repensée. Elle donne maintenant un accès direct aux publications de vos amis et aux informations générales. Le panneau latéral permet aussi de découvrir plus de nouvelles publications et personnes.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f636f6e746163745f6d69686f2e706e67/contact_miho.png" alt="Contact Miho" title="Source : https://apt.movim.eu/lovejoy/contact_miho.png"></p>
<p>La page <em>Communauté</em>, introduite dans la version 0.11, a été réorganisée et vous permet maintenant de voir ce qui se passe sur votre <em>#pod</em> dNun regard.</p>
<h2 id="toc-publiez-dun-simple-clic">Publiez d’un simple clic</h2>
<p>Vous voulez envoyer rapidement une photo à vos amis ? Partagez vos émotions et réflexions ? Le nouveau <em>widget</em> <em>Publication Rapide</em> vous le permet simplement.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f717569636b5f7075626c6973682e706e67/quick_publish.png" alt="Quick publish" title="Source : https://apt.movim.eu/lovejoy/quick_publish.png"></p>
<p>Si vous voulez toujours écrire une publication plus sophistiquée avec formatage, vous pouvez utiliser le bouton <code>+</code> pour accéder à l’éditeur complet.</p>
<p>En outre, Movim sauvegarde automatiquement le brouillon de vos publications, afin que vous puissiez y revenir plus tard.</p>
<h2 id="toc-organiser-et-explorer-les-publications">Organiser et explorer les publications</h2>
<p>Étiqueter les articles dans Movim a été grandement simplifié. En ajoutant simplement des <em>#hastags</em> vous pouvez ranger vos publications par catégories. Vous pouvez aussi désormais explorer les articles publiés publiquement possédant des étiquettes similaires.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f7461675f6361742e706e67/tag_cat.png" alt="tag cat" title="Source : https://apt.movim.eu/lovejoy/tag_cat.png"></p>
<h3 id="toc-contenu-inapproprié-au-travail-nsfw">Contenu inapproprié au travail (NSFW)</h3>
<p>Pour protéger les jeunes enfants explorant le réseau, nous avons ajouté un filtre automatique des contenus pour adulte (activé par défaut). Quand vous publiez des contenus inappropriés ou pouvant heurter leur sensibilité, vous pouvez les étiqueter en tant que tels en ajoutant l’étiquette « NSFW ».</p>
<p>Si vous souhaitez néanmoins obtenir l’accès à ces contenus, vous pouvez les autoriser dans la configuration.</p>
<h2 id="toc-nouveau-look-pour-les-publications">Nouveau look pour les publications</h2>
<p><em>Lovejoy</em> est également livré avec un nouveau design pour les articles. Avec une meilleure intégration des liens partagés et la possibilité de « liker » les articles en les parcourant.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f61727469636c655f636172642e706e67/article_card.png" alt="Article card" title="Source : https://apt.movim.eu/lovejoy/article_card.png"></p>
<p>Le nouveau design simplifie également l’exploration et la navigation sur les appareils mobiles.</p>
<h2 id="toc-movim-️-votre-mobile">Movim ❤️ votre mobile</h2>
<p>L’interface de Movim a été revue pour les appareils mobiles.</p>
<p>Un nouveau menu permet de basculer rapidement entre les quatre principales sections du client. Vous pouvez toujours accéder au menu complet en glissant votre doigt depuis la gauche de votre écran.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f6d6f62696c652e706e67/mobile.png" alt="Lovejoy mobile" title="Source : https://apt.movim.eu/lovejoy/mobile.png"></p>
<h2 id="toc-chat-et-salons-nouvelles-fonctionnalités-et-nouveau-design">Chat et salons, nouvelles fonctionnalités et nouveau design</h2>
<p>Nous avons énormément travaillé sur les fonctionnalités liées aux salons de discussions. Ils possèdent désormais la même apparence que les discussions 1‐à‐1. Vous pouvez intégrer des images dans les discussions en les téléversant ou en envoyant un lien direct vers celles‐ci. Vous pouvez enfin facilement auto‐compléter les pseudos à l’aide de la touche <code>Tab</code> lors de la rédaction d’un message dans un salon de discussion.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f63686174726f6f6d2e706e67/chatroom.png" alt="Salon de discussion" title="Source : https://apt.movim.eu/lovejoy/chatroom.png"></p>
<p>Depuis <em>Lovejoy</em>, vous pouvez démarrer une discussion privée avec un membre d’un salon d’un seul clic et inviter vos contacts à rejoindre celui‐ci en leur envoyant un message d’invitation ou un lien.</p>
<p>Grâce à la nouvelle fonction de participation automatique, vous pouvez demander à Movim de rejoindre automatiquement vos salons favoris quand vous vous connectez.</p>
<h3 id="toc-marqueurs-de-discussion">Marqueurs de discussion</h3>
<p>Movim implémente maintenant le récent standard XMPP <a href="https://xmpp.org/extensions/xep-0333.html"><em>Chat Markers</em></a> qui vous permet de savoir si un contact a lu vos messages. Cette fonction est également implémentée dans des clients tels que <a href="https://conversations.im/"><em>Conversations</em></a> et <a href="https://github.com/dino/dino">Dino</a>.</p>
<h3 id="toc-stickers">Stickers !</h3>
<p>Et voici <a href="https://nl.movim.eu/?blog/miho@movim.eu">Miho</a>, la nouvelle mascotte du projet Movim.</p>
<p>À chaque version majeure, le projet finance la création d’un jeu d’autocollants, qui est intégré à Movim et permet de soutenir la création artistique libre et les artistes. Le jeu d’autocollants Miho a été créé par <a href="https://hey-xander.deviantart.com/">Hey‐Xander</a> et est maintenant disponible dans Movim.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f6d69686f2e706e67/miho.png" alt="Miho" title="Source : https://apt.movim.eu/lovejoy/miho.png"></p>
<h3 id="toc-historique">Historique</h3>
<p>Avec la prise en charge du standard XMPP de <a href="https://xmpp.org/extensions/xep-0313.html">gestion de l’archivage des messages</a>, vous pouvez à présent resynchroniser l’historique en vous reconnectant à Movim, pour vos discussions privées mais aussi dans les salons. Ne perdez plus jamais un message entre vos appareils !</p>
<h2 id="toc-mais-aussi">Mais aussi…</h2>
<p>Sous le capot, nous continuons à corriger de nombreux soucis, optimiser et refactoriser le code source de Movim et conserver le cœur propre et sûr. Ceci est rendu possible par un retour continu de notre communauté, via notre <a href="xmpp:movim@conference.movim.eu">salon officiel</a> et notre <a href="https://github.com/movim/movim/">page GitHub</a>.</p>
<p>À mesure que notre communauté est de plus en plus impliquée, de nouveaux <em>pods</em> ont été lancés en <a href="https://movim.se/">Suède</a>, au <a href="https://jp.mov.im/">Japon</a>, en <a href="https://de.movim.eu">Allemagne</a> et en <a href="https://movim.feder8.ru/">Russie</a>. Merci à tous les mainteneurs !</p>
<h3 id="toc-migration-de-notre-serveur-xmpp-officiel-vers-ejabberd">Migration de notre serveur XMPP officiel vers ejabberd</h3>
<p>L’une des plus grosses tâches de ces derniers mois a été de migrer notre serveur officiel depuis le serveur obsolète Metronome vers <a href="https://www.ejabberd.im/">ejabberd</a>. Cette migration contient plus de 11 000 comptes, des milliers d’articles, messages et relations.<br>
<img src="//img.linuxfr.org/img/68747470733a2f2f6170742e6d6f76696d2e65752f6c6f76656a6f792f656a6162626572642e6a7067/ejabberd.jpg" alt="ejabberd" title="Source : https://apt.movim.eu/lovejoy/ejabberd.jpg"></p>
<p>Merci à l’équipe de <a href="https://www.process-one.net/en/">ProcessOne</a> et en particulier à <a href="https://github.com/cromain">Christophe Romain</a>, <a href="https://github.com/zinid">Evgeny Khramtsov</a> et <a href="https://github.com/weiss">Holger Weiß</a>. Nous avons largement amélioré le script de migration des données d’un serveur à l’autre et plusieurs fonctions utilisées par Movim après la migration.</p>
<p>Le serveur XMPP ejabberd est maintenant officiellement recommandé par l’équipe Movim. Pour que Movim fonctionne parfaitement avec votre serveur, veuillez vous référer à notre <a href="https://github.com/movim/movim/wiki/Configure%20ejabberd">page wiki de configuration d’ejabberd</a>.</p>
<p>Nous sommes proches des 300 utilisateurs connectés simultanément sur nos <em>pods</em> officiels. :)</p>
<h2 id="toc-aideznous">Aidez‐nous !</h2>
<p>Depuis neuf ans maintenant, l’équipe Movim et la communauté ont travaillé gratuitement pour développer la plate‐forme et les projets afférents. Nous hébergeons les <em>pods</em> officiels pour permettre à nos utilisateurs de bénéficier de Movim au quotidien.</p>
<p>Pour continuer à maintenir et étendre nos infrastructures, nous avons besoin d’aide. Vous pouvez contribuer via un don ponctuel sur notre compte <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=8QHPJDAQXT9UC">Paypal</a> ou notre <a href="https://www.patreon.com/movim">Patreon</a> officiel.</p>
<p>Vous pouvez aussi contribuer en rapportant votre expérience avec Movim, traduisant le projet, ou en nous aidant à déboguer et améliorer la plate‐forme. :)</p>
<p>Vous pouvez trouver toutes les informations sur notre <a href="https://movim.eu">site officiel</a>.</p>
<p><em>That’s all folks!</em></p>
</div><div><a href="https://linuxfr.org/news/movim-0-12-lovejoy.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112935/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/movim-0-12-lovejoy#comments">ouvrir dans le navigateur</a>
</p>
edhelasMaclagM5oulDavy DefaudNÿcoRyDroidjnanarBenoît Sibaudhttps://linuxfr.org/nodes/112935/comments.atomtag:linuxfr.org,2005:News/378282017-03-20T21:29:22+01:002017-03-21T11:55:48+01:00Movim 0.11 — TuttleLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Six mois après Movim 0.10 <em>Holmes</em>, voici enfin venue la nouvelle mouture « d’hiver » du projet Movim.</p>
<p>Petit rappel : Movim est un projet qui vise à construire une solution de messagerie instantanée et de réseau social (<em>social IM</em>) entièrement basé sur le protocole XMPP.</p>
<p>Cette version 0.11 raffine de nombreuses fonctionnalités tout en introduisant quelques gros changements, principalement au niveau de la navigation et de l’interface du projet.</p></div><ul><li>lien nᵒ 1 : <a title="https://movim.eu/" hreflang="en" href="https://linuxfr.org/redirect/99266">Site officiel</a></li><li>lien nᵒ 2 : <a title="https://github.com/movim" hreflang="en" href="https://linuxfr.org/redirect/99284">Movim sur GitHub</a></li><li>lien nᵒ 3 : <a title="https://linuxfr.org/news/movim-0-10-holmes" hreflang="fr" href="https://linuxfr.org/redirect/99285">Movim 0.10 – Holmes sur LinuxFr.org</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#fonctionnalit%C3%A9s">Fonctionnalités</a><ul>
<li><a href="#nouvelle-liste-de-contacts">Nouvelle liste de contacts</a></li>
<li><a href="#onboarding-embarquement">« <em>Onboarding</em> », embarquement</a></li>
<li><a href="#am%C3%A9lioration-du-partage">Amélioration du partage</a></li>
<li><a href="#communaut%C3%A9s">Communautés</a></li>
<li>
<a href="#articles">Articles</a><ul>
<li><a href="#d%C3%A9couverte">Découverte</a></li>
</ul>
</li>
<li><a href="#messagerie">Messagerie</a></li>
<li><a href="#visioconf%C3%A9rence-b%C3%AAta">Visioconférence (bêta)</a></li>
<li><a href="#refonte-du-syst%C3%A8me-de-sessions">Refonte du système de sessions</a></li>
</ul>
</li>
<li>
<a href="#autour-de-movim">Autour de Movim</a><ul>
<li><a href="#client-android">Client Android</a></li>
<li><a href="#client-electron-bureau">Client Electron (bureau)</a></li>
<li><a href="#atomtopubsub">Atomtopubsub</a></li>
</ul>
</li>
<li><a href="#movim-europe">Movim Europe</a></li>
<li><a href="#quelques-chiffres">Quelques chiffres</a></li>
<li>
<a href="#movim012">Movim 0.12</a><ul>
<li><a href="#oui-nid-iou">Oui nid iou</a></li>
</ul>
</li>
</ul><h2 id="fonctionnalités">Fonctionnalités</h2>
<h3 id="nouvelle-liste-de-contacts">Nouvelle liste de contacts</h3>
<p>La liste de contacts (ou « <em>roster</em> » pour les intimes) a toujours été un élément très complexe à gérer au sein de Movim. Elle avait été portée sur Angular 1 il y a quelques versions mais souffrait d’énormes problèmes de performance en partie inhérentes à cette solution (pouvant bloquer le chargement de la page pendant plusieurs secondes).</p>
<p>Cette nouvelle version est une réécriture complète et beaucoup plus légère en pur PHP (avec un peu de JavaScript). Les contacts sont désormais regroupés en une liste simple. La recherche au sein de celle‐ci a été améliorée et permet maintenant de chercher instantanément parmi les contacts par nom, identifiant XMPP, groupe ou encore pseudo.</p>
<h3 id="onboarding-embarquement">« <em>Onboarding</em> », embarquement</h3>
<p>Au premier lancement, Movim vous demandera désormais d’ajuster certains des paramètres de votre navigateur ou de votre compte, tels que les notifications ou l’autorisation des <em>pop‐ups</em> (utilisés pour la fonctionnalité de visioconférence).<br><img src="//img.linuxfr.org/img/687474703a2f2f692e696d6775722e636f6d2f304b59705463772e706e67/0KYpTcw.png" alt="Onboarding" title="Source : http://i.imgur.com/0KYpTcw.png"></p>
<h3 id="amélioration-du-partage">Amélioration du partage</h3>
<p>Chose promise, chose due : le partage des articles au sein et autour du projet Movim a été grandement amélioré. Il est désormais possible de partager un article (comprendre « écrire un article en réponse à ») sur son propre blog. Cette fonctionnalité repose sur la norme IETF — <em>Atom Threading Extensions</em> (<a href="https://tools.ietf.org/html/rfc4685">RFC 4685</a>). Ici encore, Movim souhaite montrer qu’il est parfaitement possible de construire une solution sociale en se reposant uniquement sur des standards existants.</p>
<p>Le partage de liens depuis l’extérieur de Movim a également été étendu. Movim prend désormais en charge les adresses <a href="https://fr.wikipedia.org/wiki/URI" title="Définition Wikipédia">URI</a> XMPP. En un clic vous allez pouvoir ouvrir un lien vers un contact, un salon ou une communauté depuis n’importe quelle page Web.</p>
<h3 id="communautés">Communautés</h3>
<p>Les Communautés, parlons‐en ! Anciennement nommées « groupes », les communautés sont le fruit d’une profonde refonte de l’interface d’affichage des articles et de la navigation au sein de ceux‐ci. Cette réorganisation du contenu rend, en effet, l’exploration plus simple et logique. Le nouveau nom clarifie également certaines ambiguïtés qu’il pouvait y avoir avec les discussions en groupe (salons de discussion) ou les groupes dans la liste de contacts.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6d6f76696d2e65752f696d672f6d61696e5f746f702e706e67/main_top.png" alt="Une communauté sur Movim" title="Source : https://movim.eu/img/main_top.png"><br>
La gestion des communautés s’en trouve grandement simplifiée. Tant pour les utilisateurs que pour les administrateurs qui peuvent désormais gérer plus finement les accès et rôles assignés aux utilisateurs.</p>
<p>Mais rassurez‐vous, côté XMPP rien n’a changé, donc Movim sera pleinement compatible avec les anciennes versions. ;)</p>
<h3 id="articles">Articles</h3>
<p>Deux petites fonctionnalités ont été ajoutées sur la page affichant les articles. Un raccourci vers l’article précédent et suivant de la même communauté ou du même contact et un bouton « <em>Like</em> ». :)</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f692e696d6775722e636f6d2f6455544d4a4a4c2e706e67/dUTMJJL.png" alt="Les nouvelles fonctionnalités liées aux articles" title="Source : http://i.imgur.com/dUTMJJL.png"><br>
Un petit bloc <em>Notifications</em> sur la page d’accueil vous informe désormais des commentaires et <em>likes</em> publiés sur les articles que vous avez publiés.</p>
<h4 id="découverte">Découverte</h4>
<p>La refonte de l’interface apporte également de nouvelles fonctionnalités de découverte de contenu.</p>
<p>Movim propose désormais aux utilisateurs des articles publics publiés sur les blogs ou dans les communautés en relation avec la page affichée. Les suggestions sont pour l’instant plutôt basiques mais devraient s’affiner dans les prochaines versions.</p>
<h3 id="messagerie">Messagerie</h3>
<p>La partie messagerie n’est également pas en reste. Des petites modifications ont été faites à l’interface pour faciliter la navigation sur les petits et grands écrans (suppression des espaces inutiles) et corriger quelques bogues (sur Android notamment). Un nouveau pack d’autocollants en Creative Common BY-SA a également été ajouté !<br><img src="//img.linuxfr.org/img/68747470733a2f2f6769746875622e636f6d2f6d6f76696d2f6d6f76696d2f7261772f6d61737465722f6170702f776964676574732f537469636b6572732f737469636b6572732f6d6f6368692f393931396338333431383261363833633664633238626133303539663139333736666631353265652e706e67/9919c834182a683c6dc28ba3059f19376ff152ee.png" alt="Nouveaux autocollants sur Movim" title="Source : https://github.com/movim/movim/raw/master/app/widgets/Stickers/stickers/mochi/9919c834182a683c6dc28ba3059f19376ff152ee.png"><br>
Le téléversement et le partage des fichiers a été revu et repose désormais sur l’une des toutes dernières normes XMPP, la XEP-0385 : <em>Stateless Inline Media Sharing</em> (SIMS) (<a href="https://xmpp.org/extensions/xep-0385.html">https://xmpp.org/extensions/xep-0385.html</a>). Cela permet à Movim de mieux intégrer le partage de ceux‐ci au sein des discussions.<br><img src="//img.linuxfr.org/img/687474703a2f2f692e696d6775722e636f6d2f54586b717551452e706e67/TXkquQE.png" alt="Aperçu de l’image dans une discussion" title="Source : http://i.imgur.com/TXkquQE.png"></p>
<h3 id="visioconférence-bêta">Visioconférence (bêta)</h3>
<p>Cette version marque également le grand retour de la visioconférence dans Movim. Ici encore pas de surprise, tout repose sur des standards (en l’occurrence WebRTC et la norme XMPP Jingle). Néanmoins, de nombreux bogues subsistent encore et il faudra sûrement attendre la version 0.12 pour voir cette fonctionnalité complètement stabilisée. Sachez également que cette fonctionnalité n’a pas encore été adaptée pour les mobiles.</p>
<h3 id="refonte-du-système-de-sessions">Refonte du système de sessions</h3>
<p>Le code gérant les sessions des utilisateurs au sein de Movim était très certainement l’un des plus vieux code encore présents dans le projet. Celui‐ci a subi une profonde réécriture qui a remis à plat la gestion des <em>cookies</em>, des variables de session en mémoire et en base de données.</p>
<h2 id="autour-de-movim">Autour de Movim</h2>
<p>De plus en plus de contributions externes viennent également soutenir Movim et les projets annexes.</p>
<h3 id="client-android">Client Android</h3>
<p>Merci à <em>schlusslicht</em>, qui a intégré le sélecteur de fichier natif du système au sein de l’application. Cela vous permet désormais de téléverser des fichiers depuis votre téléphone Android.</p>
<p>Une petite mise à jour de sécurité relative à la gestion des certificats a également été ajoutée dans la foulée (les certificats non valides ne sont désormais plus acceptés).</p>
<p>L’application Android est disponible sur le <a href="https://play.google.com/store/apps/details?id=com.movim.movim">Google Play</a> et <a href="https://f-droid.org/repository/browse/?fdfilter=movim&fdid=com.movim.movim">F-Droid</a>.</p>
<h3 id="client-electron-bureau">Client Electron (bureau)</h3>
<p>Le client Electron a été mis à jour. Mike Barnes (<em>bremensaki</em>) a ajouté la gestion des menus contextuels dans l’interface, merci à lui !</p>
<p>De nouveaux paquets Debian et RPM ont été générés suite à cela. Movim est désormais également disponible sur Windows et macOS, les applications sont toutes disponibles sur le <a href="https://movim.eu">site officiel du projet</a>.</p>
<h3 id="atomtopubsub">Atomtopubsub</h3>
<p>Atomtopubsub est le petit outil magique qui, comme son nom l’indique, analyse des flux Atom et les injecte sur des nœuds Pubsub. Cela permet à Movim de proposer de très nombreux flux d’actualité au sein des communautés. Un grand merci à <em>Link Mauve</em>, qui a pris un peu de son temps pendant le <em>33c3</em> pour porter atomtopubsub en Python 3 et mieux répartir le traitement des articles et leur publication au sein du processus.</p>
<h2 id="movim-europe">Movim Europe</h2>
<p>Movim Europe est une structure fournissant du support pour le projet Movim. Déclarée aux Pays‐Bas, elle offre actuellement deux services :</p>
<ul>
<li>du support technique et du conseil pour le déploiement de la plate‐forme (et des services liés, tels que le serveur XMPP ou la base de données SQL) et/ou sur les technologies liées au projet ;</li>
<li>la possibilité de financer, en tant qu’entreprise, association ou particulier, le développement des fonctionnalités initialement non prévues sur les feuilles de route officielles ou émanant d’un besoin particulier.</li>
</ul><p>Les fonds récupérés serviront en premier lieu à financer les frais de fonctionnement actuels (domaines, hébergements, déplacements…), qui sont pour l’instant couverts personnellement par le fondateur, mais aussi pour dégager plus de temps par la suite pour développer le projet et son environnement (administration, projets annexes, conférences…).</p>
<p>N’hésitez pas à prendre contact en vous connectant sur le salon officiel du projet.</p>
<h2 id="quelques-chiffres">Quelques chiffres</h2>
<p>Movim c’est aussi deux serveurs officiels : un hébergé à Amsterdam qui totalise à ce jour 4 000 inscrits et 50 connectés, et un hébergé à Roubaix avec 2 800 inscrits et une vingtaine de connectés simultanément.</p>
<p>Chaque jour, 4 000 messages de clavardage (simples ou de salons de discussions) sont publiés ou reçus et une vingtaine d’articles sont écrits par les utilisateurs sur <a href="https://nl.movim.eu"><em>nl.movim.eu</em></a>.</p>
<p>Les statistiques remontées (volontairement) par les instances déployées sur <a href="https://api.movim.eu/"><em>api.movim.eu</em></a> totalisent 8 000 inscrits pour environ 250 personnes utilisant simultanément Movim au cours de la journée. Le serveur XMPP <em>movim.eu</em> atteint également les 300 connectés en journée.</p>
<p>Des préparations sont en cours pour ouvrir de nouveaux serveurs en Australie et en Russie.</p>
<h2 id="movim012">Movim 0.12</h2>
<p>Une feuille de route est en préparation pour la version 0.12 de Movim qui devrait sortir cet été. Deux principaux changements sont prévus dans cette version :</p>
<ul>
<li>Movim consomme beaucoup de mémoire vive, cela peut monter autour de 50 Mio pour certains utilisateurs connectés sur un serveur. Ce souci n’est pas dû à de possibles fuites de mémoire mais plutôt à certains choix architecturaux qui dupliquent en mémoire, pour chaque session, des parties du code de Movim. De gros travaux de mutualisation de ces parties redondantes sont donc prévus, ce qui devrait alléger significativement l’empreinte en mémoire vive du projet lors de son fonctionnement ;</li>
<li>l’implémentation, très demandée par la communauté, du protocole OMEMO. Un travail de recherche préliminaire a été effectué en janvier et il semblerait qu’il soit possible d’implémenter ce protocole de chiffrement de bout en bout sur Movim. Cette fonctionnalité fera sûrement l’objet d’une publication plus détaillée dans les prochains mois.</li>
</ul><h3 id="oui-nid-iou">Oui nid iou</h3>
<p>Et n’oubliez pas, le projet Movim a besoin de vous ! En tant que contributeur sur le code, mais aussi en tant qu’administrateur, empaqueteur, traducteur ou même dessinateur (si vous souhaitez ajouter vos propres autocollants à Movim !).</p>
<p>Toutes les contributions sont les bienvenues, donc n’hésitez pas à venir discuter avec nous sur <em><a href="xmpp:movim@conference.movim.eu">xmpp:movim@conference.movim.eu</a></em>. :)</p>
<p><em>That’s all folks!</em></p></div><div><a href="https://linuxfr.org/news/movim-0-11-tuttle.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/111260/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/movim-0-11-tuttle#comments">ouvrir dans le navigateur</a>
</p>
edhelasDavy Defaudpalm123NÿcoM5oulBAudhttps://linuxfr.org/nodes/111260/comments.atomtag:linuxfr.org,2005:News/374712016-08-04T17:41:30+02:002016-08-06T14:34:22+02:00Movim 0.10 - HolmesLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Quelques mois après <a href="https://nl.movim.eu/?node/pubsub.movim.eu/Movim/f5f883e31223abc28b5be3fec5a71bb3">Movim 0.9 - Tchouri</a>, voici enfin la nouvelle version du projet de réseau social décentralisé Movim ! Estampillée 0.10, elle offre de nombreuses avancées majeures tant au cœur du projet que sur les fonctionnalités offertes.</p>
<p>Cette nouvelle version positionne toujours plus Movim en tant qu'alternative sérieuse face aux autres solutions de messagerie telles que Telegram, WhatsApp ou Slack. L'idée derrière Movim est d'offrir (enfin) une plateforme de communication libre, simple et agréable à utiliser tout en se reposant exclusivement sur des standards déjà largement déployés et éprouvés tels que <a href="http://xmpp.org/">XMPP</a> ou Atom.</p>
<p>En effet, plutôt que de fonder un nouveau réseau fermé comme bon nombre d'autres projets l'ont fait auparavant (qu'ils soient propriétaires ou libres), nous privilégions l'utilisation et la participation aux améliorations du protocole <a href="https://xmpp.org">XMPP</a>.</p></div><ul><li>lien nᵒ 1 : <a title="https://movim.eu/" hreflang="en" href="https://linuxfr.org/redirect/97863">Site officiel du projet</a></li><li>lien nᵒ 2 : <a title="https://github.com/movim/movim" hreflang="en" href="https://linuxfr.org/redirect/97864">Dépôt GitHub du projet</a></li><li>lien nᵒ 3 : <a title="https://linuxfr.org/news/movim-0-9-tchouri" hreflang="fr" href="https://linuxfr.org/redirect/97865">Movim 0.9 - Tchouri sur LinuxFr.org</a></li><li>lien nᵒ 4 : <a title="https://play.google.com/store/apps/details?id=com.movim.movim" hreflang="en" href="https://linuxfr.org/redirect/97873"> Movim pour Android, sur le Google Play Store</a></li><li>lien nᵒ 5 : <a title="https://f-droid.org/repository/browse/?fdfilter=movim&fdid=com.movim.movim" hreflang="en" href="https://linuxfr.org/redirect/97874">Movim pour Android, sur F-Droid</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#nouvelles-fonctionnalit%C3%A9s">Nouvelles fonctionnalités</a><ul>
<li><a href="#gestion-des-articles">Gestion des articles</a></li>
<li>
<a href="#messagerie">Messagerie</a><ul>
<li><a href="#%C3%89dition-du-dernier-message">Édition du dernier message</a></li>
<li><a href="#autocollants-ou-stickers">Autocollants (ou <em>stickers</em>) !</a></li>
<li><a href="#et-plein-dautres-choses">Et plein d'autres choses…</a></li>
</ul>
</li>
<li>
<a href="#dans-le-reste-du-projet">Dans le reste du projet</a><ul>
<li><a href="#recherche-globale">Recherche globale</a></li>
<li><a href="#langues">Langues</a></li>
<li><a href="#performances-stabilit%C3%A9-et-m%C3%A9moire">Performances, stabilité et mémoire</a></li>
<li><a href="#interface-et-administration">Interface et administration</a></li>
<li><a href="#versement-de-fichiers">Versement de fichiers</a></li>
</ul>
</li>
<li><a href="#en-bref">En bref</a></li>
<li><a href="#%C3%80-venir-dans-movim-011">À venir dans Movim 0.11</a></li>
</ul>
</li>
</ul><h2 id="nouvelles-fonctionnalités">Nouvelles fonctionnalités</h2>
<h3 id="gestion-des-articles">Gestion des articles</h3>
<p>La gestion des articles au sein de Movim a été légèrement revue :</p>
<ul>
<li>vous pouvez désormais assigner des étiquettes avec des accents et caractères spéciaux à vos articles ;</li>
<li>les articles partagés publiquement le seront sur tout le réseau et non plus seulement au sein du pod de leur publication ;</li>
<li>la page « Actualité » affiche désormais les derniers articles de blog publics publiés sur le réseau.</li>
</ul><p>De plus, les tags et commentaires des articles supprimés sont correctement nettoyés (sur le réseau XMPP mais aussi dans la base de données). La gestion des images au sein du contenu des articles a également été légèrement revue.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f75706c6f61642e6d6f76696d2e65752f6765742f6e5a516a6370695a56564c3645304e6b49426c66764b5132334f632f516f58526135783769633647372f61727469636c652e6a7067/article.jpg" alt="Un article comportant une image envoyée par un membre sur son blog XMPP" title="Source : https://upload.movim.eu/get/nZQjcpiZVVL6E0NkIBlfvKQ23Oc/QoXRa5x7ic6G7/article.jpg"></p>
<h3 id="messagerie">Messagerie</h3>
<p>L'un des principaux buts de cette nouvelle version était d'améliorer l'expérience utilisateur et d'ajouter de nouvelles fonctionnalités à la partie « Chat » du projet.</p>
<h4 id="Édition-du-dernier-message">Édition du dernier message</h4>
<p>Movim implémente depuis cette version <a href="http://www.xmpp.org/extensions/xep-0308.html">XEP-0308: Last Message Correction</a> qui permet donc de corriger le précédent message via l'utilisation de la touche <code>↑</code>. Cette modification est compatible avec de nombreux autres clients comme <a href="https://play.google.com/store/apps/details?id=eu.siacs.conversations">Conversations</a> ou <a href="https://gajim.org/">Gajim</a>.</p>
<h4 id="autocollants-ou-stickers">Autocollants (ou <em>stickers</em>) !</h4>
<p>Le support des autocollants a été ajouté au projet. Encore une fois via l'implémentation de l'extension XMPP <a href="http://xmpp.org/extensions/xep-0231.html">XEP-0231: Bits of Binary</a> ce qui permet aux utilisateurs de Movim d'envoyer des autocollants aux autres clients comme Pidgin ou Gajim.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6e6c2e6d6f76696d2e65752f6170702f776964676574732f537469636b6572732f737469636b6572732f7a656d61726d6f742f306535353539623032626164623831313133623439653733353431343736626630616338356339392e706e67/0e5559b02badb81113b49e73541476bf0ac85c99.png" alt="ZeMarmot sur Movim !" title="Source : https://nl.movim.eu/app/widgets/Stickers/stickers/zemarmot/0e5559b02badb81113b49e73541476bf0ac85c99.png"></p>
<p>Pour fêter ça, deux lots d'autocollants en Creative Commons ont été créés exclusivement pour le projet.</p>
<p>Un lot <a href="https://lechocobo.wordpress.com/portfolio/stickers-emoticones-raton-laveur/">Racoon</a> dessiné par <a href="https://lechocobo.wordpress.com/">Corine Tea</a> comprenant 16 autocollants en <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr">Creative Commons BY-NC-SA</a> et un lot <a href="http://film.zemarmot.net/">ZeMarmot</a> dessiné par <a href="http://girinstud.io/">Aryeom Han</a> comprenant 10 autocollants en <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons BY-SA 4.0</a>. L'idée derrière ces deux lots est également de promouvoir des projets partageant nos valeurs tout en offrant aux utilisateurs la possibilité d'utiliser et de partager de jolis autocollants libres avec leurs contacts. </p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f75706c6f61642e6d6f76696d2e65752f6765742f6e5a516a6370695a56564c3645304e6b49426c66764b5132334f632f4e636f37763964766f526b437a2f737469636b6572732e706e67/stickers.png" alt="Envoyer un autocollant Racoon en un clic" title="Source : https://upload.movim.eu/get/nZQjcpiZVVL6E0NkIBlfvKQ23Oc/Nco7v9dvoRkCz/stickers.png"></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6c75742e696d2f7173323531706f6173692f474a54767a766e7345317870485176392e706e67/GJTvzvnsE1xpHQv9.png" alt="Envoyer un autocollant ZeMarmot en un clic" title="Source : https://lut.im/qs251poasi/GJTvzvnsE1xpHQv9.png"></p>
<p>Merci aux deux dessinatrices pour leur travail ! Si vous aussi vous souhaitez ajouter vos propres autocollants au projet, n'hésitez pas à nous contacter (salon: <a href="xmpp:movim@conference.movim.eu?join">movim@conference.movim.eu</a>). :)</p>
<h4 id="et-plein-dautres-choses">Et plein d'autres choses…</h4>
<p>En plus des petites corrections concernant l'interface et la fluidité de navigation, d'autres petits changements ont également été introduits.</p>
<p>Vous pouvez maintenant éditer la configuration des salons de discussion après les avoir ajoutés. Vous êtes également notifié de nouveaux messages publiés dans ceux-ci.<br>
De nouveaux emojis ont été ajoutés à ceux déjà existants ;)</p>
<p>Un nouvel algorithme d'affichage des bulles de chat nous permet désormais de gagner un peu d'espace en regroupant les messages envoyés par la même personne au cours de la même minute. </p>
<h3 id="dans-le-reste-du-projet">Dans le reste du projet</h3>
<p>Une nouvelle version du client Android (disponible sur le <a href="https://play.google.com/store/apps/details?id=com.movim.movim">PlayStore</a> et <a href="https://f-droid.org/repository/browse/?fdid=com.movim.movim">F-Droid</a>) a été déployée suite à une refonte du système de notifications.</p>
<p>Le <a href="https://github.com/edhelas/movim_electron">client bureau</a>, basé sur <a href="http://electron.atom.io/">Electron</a>, est également sorti dans une nouvelle version. Il est pour le moment empaqueté uniquement pour Debian et Ubuntu mais n'hésitez pas à nous aider à l'empaqueter pour d'autres distributions ou systèmes d'exploitations.</p>
<p>Plus globalement c'est toute l'interface du projet qui a été revue pour pouvoir s'afficher correctement sur des écrans à petite résolution.</p>
<p>Sachez par ailleurs que tous les clients Movim peuvent êtres configurés pour fonctionner avec des instances non-officielles du projet. Cela veut dire que si vous déployez votre propre instance (ou pod) du projet, vous pouvez l'ajouter manuellement sur le client lors de l'interface de chargement.</p>
<h4 id="recherche-globale">Recherche globale</h4>
<p>En un clic, ou via le raccourci <code>Ctrl+M</code> vous pouvez également lancer la nouvelle interface de recherche globale.<br>
Elle vous permettra de retrouver instantanément des articles et contacts.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f75706c6f61642e6d6f76696d2e65752f6765742f6e5a516a6370695a56564c3645304e6b49426c66764b5132334f632f6f474b476c63714974544478392f7365617263682e6a7067/search.jpg" alt="Cherchez des articles ou contacts" title="Source : https://upload.movim.eu/get/nZQjcpiZVVL6E0NkIBlfvKQ23Oc/oGKGlcqItTDx9/search.jpg"></p>
<p>Le nom de cette version est également tiré de cette nouvelle fonctionnalité, qui est à la fois le nom de famille d'un détective privé respectable mais également <a href="https://en.wikipedia.org/wiki/Comet_Holmes">celui d'une comète</a> de notre système solaire.</p>
<h4 id="langues">Langues</h4>
<p>Merci encore à tous les traducteurs qui font un travail formidable pour porter Movim sur de nombreuses autres langues. Le projet et maintenant intégralement (ou presque) traduit en français, polonais, danois, allemand, espagnol, chinois, néerlandais, portugais, hébreux, tchèque, italien… et bien d'autres !</p>
<p>N'hésitez pas à venir donner un coup de main sur <a href="https://www.transifex.com/movim/movim/dashboard/">la plateforme Transifex</a> ;)</p>
<h4 id="performances-stabilité-et-mémoire">Performances, stabilité et mémoire</h4>
<p>De nombreuses améliorations ont également été apportées au démon introduit dans la précédente version avec au menu des performances accrues mais surtout une réduction de la consommation mémoire grâce à la mutualisation de certaines bibliothèques entre les sous-processus (avec un gain de plus de 5 Mo par session !).</p>
<p>Un important bug concernant la gestion des WebSockets qui avait tendance à fermer prématurément la session a été corrigé. Si vous utilisez Movim quotidiennement cette session peut désormais rester ouverte pendant plusieurs jours ou semaines !</p>
<h4 id="interface-et-administration">Interface et administration</h4>
<p>Les administrateurs peuvent maintenant spécifier leur propre serveur XMPP lors de l'écran d'inscription sur leur instance. Cela est encore une fois inscrit dans une volonté de ne pas limiter les utilisateurs souhaitant déployer leurs propres infrastructures sans forcément être dépendant des services officiels.</p>
<p>Plus globalement certaines parties de l'interface ont été revues pour faciliter la navigation au sein de Movim, telles que les entêtes et les listes. Il en est de même avec le style des articles qui offre désormais un meilleur rendu de certaines balises (tel que les paragraphes, les titres, les citations ou encore les extraits de code).</p>
<h4 id="versement-de-fichiers">Versement de fichiers</h4>
<p>De petites améliorations ont été apportées à la fonctionnalité de versement de fichiers (reposant encore une fois sur XMPP, <a href="http://xmpp.org/extensions/xep-0363.html">XEP-0363: HTTP File Upload</a>).</p>
<p>Les erreurs d'envoi sont maintenant plus claires et les images ayant une taille importante ou étant trop lourdes sont redimensionnées et compressées automatiquement.</p>
<h3 id="en-bref">En bref</h3>
<p>Initialement prévue comme une mise à jour mineure de la version 0.9 qui avait introduit une importante refonte de l'ensemble du projet, cette version s'est finalement transformée en une 0.10.</p>
<p>Le cœur du projet peut désormais être considéré comme stable (même si des changements restent prévus pour optimiser et améliorer celui-ci). Il est très fortement probable que les prochaines versions ressemblent à celle-ci en termes de contenu : une meilleure intégration de l'existant dans les environnements des utilisateurs, de nouvelles fonctionnalités qui viendront compléter l'existant et une meilleure cohérence de l'ensemble.</p>
<h3 id="À-venir-dans-movim-011">À venir dans Movim 0.11</h3>
<p>Tout ça n'est pas fini et les grandes lignes de la prochaine version semblent déjà se dessiner.</p>
<p>L'un des mots d'ordres de cette version sera l'amélioration du partage d'information au sein de Movim mais également avec son environnement. Par exemple, nous souhaiterions permettre le partage d'un article avec un contact ou l'invitation de celui-ci dans un salon de discussion et cela en quelques clics.</p>
<p>Cette version marquera également le grand retour de Jingle dans le projet (qui avait disparu il y a quelques versions suite à des soucis de support et de stabilité). Il est fort probable que les appels audio soient implémentés en premier. Des tests sont également prévus sur l'application Android. </p>
<p>Il sera également question d'intégration avec l'arrivée des clients bureau Windows et MacOS. L'idée étant de couvrir un maximum de systèmes grand public.</p>
<p>D'autres surprises également sont à prévoir pour cette nouvelle version. On vous en dira plus dans un prochain article, restez à l'affût ;)</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6d6f76696d2e65752f696d672f737469636b65722e706e67/sticker.png" alt="" title="Source : https://movim.eu/img/sticker.png"></p>
<p><em>That’s all folks!</em></p></div><div><a href="https://linuxfr.org/news/movim-0-10-holmes.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109694/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/movim-0-10-holmes#comments">ouvrir dans le navigateur</a>
</p>
edhelasBenoît Sibaudpalm123NÿcoNils RatusznikJehanAdrien Dorsazhttps://linuxfr.org/nodes/109694/comments.atomtag:linuxfr.org,2005:News/370572016-01-26T13:15:22+01:002016-01-26T13:15:22+01:00Movim 0.9 - TchouriLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Après un an et trois mois d’attente, voici enfin la nouvelle version de Movim. Avant de rentrer dans le vif du sujet, quelques rappels concernant le projet.</p>
<p>L’architecture de Movim est unique en son genre, c’est à la fois un client XMPP pouvant gérer plusieurs sessions simultanées mais également une application web déployable sur un serveur et accessible au sein des navigateurs et sur les mobiles.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7069782e746f696c652d6c696272652e6f72672f75706c6f61642f7468756d622f313435333539353036312e706e67/1453595061.png" alt="Movim logo" title="Source : http://pix.toile-libre.org/upload/thumb/1453595061.png"></p>
<p>Même s’il est défini en tant que réseau social, il faut plutôt le voir comme un nouvel outil, mêlant fonctionnalités sociales et de messagerie instantanée, le tout reposant sur le standard de messagerie XMPP.</p>
<p>À vrai dire Movim n’est pas vraiment un réseau en lui-même (par rapport à Facebook, Diaspora ou WhatsApp). L’un des buts du projet est, au contraire, de démontrer qu’il est parfaitement possible d’utiliser un protocole unique de communication créant par lui-même un réseau de communication, tout en laissant le choix aux utilisateurs et administrateurs d’utiliser les outils (clients ou serveurs) qu’ils souhaitent pour accéder à celui-ci.</p>
<p>Même si le numéro de version n’est pas majeur, la 0.9 du projet est un véritable bond en avant, tant sur les plans architecturaux, fonctionnels que visuels. Le cœur du projet a atteint sa maturité et permet désormais aux contributeurs de développer et compléter rapidement les fonctionnalités manquantes.</p></div><ul><li>lien nᵒ 1 : <a title="https://movim.eu/" hreflang="en" href="https://linuxfr.org/redirect/96246">Site officiel du projet</a></li><li>lien nᵒ 2 : <a title="https://github.com/movim" hreflang="en" href="https://linuxfr.org/redirect/96247">Dépôt GitHub du projet</a></li><li>lien nᵒ 3 : <a title="https://github.com/movim/movim/wiki" hreflang="en" href="https://linuxfr.org/redirect/96248">Wiki du projet</a></li><li>lien nᵒ 4 : <a title="https://nl.movim.eu/?node/pubsub.movim.eu/Movim" hreflang="en" href="https://linuxfr.org/redirect/96249">Blog du projet</a></li><li>lien nᵒ 5 : <a title="https://play.google.com/store/apps/details?id=com.movim.movim" hreflang="en" href="https://linuxfr.org/redirect/96255">Movim pour Android, sur le Google Play Store</a></li><li>lien nᵒ 6 : <a title="https://f-droid.org/repository/browse/?fdfilter=movim&fdid=com.movim.movim" hreflang="en" href="https://linuxfr.org/redirect/96256">Movim pour Android, sur F-Droid</a></li><li>lien nᵒ 7 : <a title="https://marketplace.firefox.com/app/movim-1/" hreflang="en" href="https://linuxfr.org/redirect/96257">Movim pour Firefox OS, sur Firefox Marketplace</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#une-nouvelle-identit%C3%A9-visuelle">Une nouvelle identité visuelle</a></li>
<li><a href="#un-petit-d%C3%A9mon-au-c%C5%93ur-de-la-machine">Un petit démon au cœur de la machine</a></li>
<li>
<a href="#le-plein-de-fonctionnalit%C3%A9s">Le plein de fonctionnalités !</a><ul>
<li><a href="#nouvelle-interface-de-publication">Nouvelle interface de publication</a></li>
<li><a href="#votre-blog-sur-movim">Votre blog sur Movim</a></li>
<li><a href="#nouvelle-liste-de-contact">Nouvelle liste de contact</a></li>
<li><a href="#nouvelle-interface-de-chat">Nouvelle interface de chat</a></li>
<li><a href="#ajout-du-support-des-commandes-ad-hoc">Ajout du support des commandes Ad-Hoc</a></li>
<li><a href="#gestion-de-votre-compte-xmpp">Gestion de votre compte XMPP</a></li>
<li><a href="#partagez-des-pages-web-sur-movim">Partagez des pages web sur Movim</a></li>
<li><a href="#mais-%C3%A9galement">Mais également…</a></li>
</ul>
</li>
<li>
<a href="#autour-du-projet">Autour du projet</a><ul>
<li><a href="#arriv%C3%A9e-des-premi%C3%A8res-applications-mobiles-et-bureau">Arrivée des premières applications mobiles et bureau</a></li>
<li><a href="#paquet-yunohost">Paquet YunoHost</a></li>
<li><a href="#nouveau-site-web-et-d%C3%A9m%C3%A9nagement-sur-github">Nouveau site web et déménagement sur GitHub</a></li>
</ul>
</li>
<li><a href="#et-ce-nest-pas-fini">Et ce n’est pas fini…</a></li>
</ul><p><img src="//img.linuxfr.org/img/68747470733a2f2f6d6f76696d2e65752f696d672f636861742e706e67/chat.png" alt="Movim chat interface" title="Source : https://movim.eu/img/chat.png"></p>
<h2 id="une-nouvelle-identité-visuelle">Une nouvelle identité visuelle</h2>
<p>Cette version a été l’occasion d’entièrement remettre à plat l’interface du projet qui souffrait d’un effet patchwork particulièrement désagréable à l’utilisation. La nouvelle interface repose sur les codes graphiques <a href="https://www.google.com/design/spec/material-design/introduction.html">Material Design développés par Google</a>. Nous avons travaillé sur trois points clefs pour cette nouvelle mouture : la simplicité d’utilisation, l’intégration et la légèreté.</p>
<p>C’est un défi que nous nous sommes lancé : comment intégrer toutes ces fonctionnalités dans une interface à la fois agréable, unifiée et adaptable à tous les écrans ? Nous avons tout d’abord choisi d’utiliser un agencement en trois colonnes et cela sur (presque) toutes les pages du projet, puis, en s’inspirant du Material Design d’ordonner les informations de la façon la plus logique possible tout en garantissant l’accès rapide aux fonctionnalités. Il y a encore de nombreuses améliorations possibles mais nous sommes plutôt satisfaits du résultat.</p>
<p>L’application est donc maintenant divisée en quatre pages :</p>
<ul>
<li>
<strong>Actualité</strong>, qui regroupe l’ensemble des publications faites sur les flux où vous êtes abonnés ou des contacts que vous avez dans votre liste. Des onglets permettent de facilement filtrer ces publications. C’est également sur cette page que vous allez pouvoir publier un message sur votre flux, les éditer ou les supprimer et également commenter les articles ;</li>
<li>
<strong>Contacts</strong>, où vous allez pouvoir retrouver votre liste de contacts, d’en inviter de nouveaux et explorer les profils ;</li>
<li>
<strong>Groupes</strong>, qui vous permet de vous abonner, de créer et de publier sur des flux publics avec l’ensemble des autres utilisateurs ayant un compte XMPP ;</li>
<li>
<strong>Discussions</strong>, où vous retrouvez vos discussions, un à un, et vos salons.</li>
</ul><p>Un travail important a été apporté à la légèreté de cette interface pour garantir de bonnes performances en toutes occasions. La quasi-totalité de celle-ci repose sur du HTML5 simple et du CSS3, très peu de bibliothèques JavaScript sont utilisées et une très grande partie des traitements de données est réalisée côté serveur. Cela est particulièrement plaisant sur mobile où l’application affiche de très bonnes performances.</p>
<h2 id="un-petit-démon-au-cœur-de-la-machine">Un petit démon au cœur de la machine</h2>
<p>Un autre grand changement apporté au sein de cette mouture concerne la façon dont sont traitées les informations dans Movim. Les versions précédentes utilisaient BOSH et parallélisaient les requêtes envoyées au serveur XMPP. La 0.9 apporte un démon qui se connecte directement aux serveurs XMPP via un socket XMPP standard (avec une couche de chiffrement TLS). Plus besoin de BOSH !</p>
<p>Ce démon possède également une architecture particulière, chaque session utilisateur fonctionne dans un sous-processus indépendant évitant ainsi de crasher toute la plate-forme si l’une des sessions possède des difficultés ou rencontre une erreur.</p>
<p>Lié à ça, le parseur XML interne au projet a été réécrit et fonctionne désormais en mode flux (les balises sont parsées au fur et à mesure qu’elles arrivent dans le socket évitant ainsi d’attendre la réception d’un bloc entier avant de le parser). Ce petit changement a permis de fortement améliorer les performances. La connexion sur un compte comptant 400 contacts ne prend que quelques secondes (s’approchant des performances de clients natifs comme Pidgin ou Gajim).</p>
<p>Le seul défaut apporté par cette architecture est la consommation mémoire particulièrement importante (entre 10 et 30 Mo par utilisateur) du démon. Un gros travail a été effectué pour corriger les fuites mémoires, réduire et stabiliser cette consommation, qui pouvait monter à plusieurs centaines de Mo pendant les phases de développement ! Un travail substantiel sera effectué dans les prochaines versions pour minimiser encore plus cette empreinte (un objectif de moins de 10 Mo par session est fixé). Les premiers tests effectués avec PHP 7 montrent des signes très encourageants en ce sens.</p>
<h2 id="le-plein-de-fonctionnalités">Le plein de fonctionnalités !</h2>
<p>Au-delà de ces deux grosses avancées c’est un ensemble de nouvelles fonctionnalités qui ont été intégrées au sein du projet. Passons en revue les plus notables.</p>
<h3 id="nouvelle-interface-de-publication">Nouvelle interface de publication</h3>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6d6f76696d2e65752f696d672f6e657773322e706e67/news2.png" alt="Créer un article sur Movim c’est facile !" title="Source : https://movim.eu/img/news2.png"></p>
<p>Le formulaire de publication d’articles a été entièrement retravaillé et intègre plusieurs nouvelles fonctionnalités. La possibilité de téléverser une image ou fichier en pièce jointe, via la <a href="http://xmpp.org/extensions/xep-0363.html">XEP-0363: HTTP File Upload</a>, si votre serveur XMPP le prend en charge. La création automatique de « cartes » si vous partagez un lien (<a href="https://nl.movim.eu/?node/pubsub.movim.eu/Movim/65056b1ea74650cdd17794674b0062fb">comme sur cet article par exemple</a>) ou encore l’ajout de tags à votre publication.</p>
<p>Vous pouvez également désormais éditer vos publications.</p>
<p>Coté serveur Movim génère maintenant des billets respectant la norme Atom.</p>
<h3 id="votre-blog-sur-movim">Votre blog sur Movim</h3>
<p>Tous les articles que vous avez publiés peuvent être rendus publics et accessibles en dehors du réseau XMPP en un simple clic ! Movim génère alors un flux public que vous allez pouvoir partager avec n’importe qui et cela pour les articles publiés sur votre profil ou ceux publiés dans les Groupes.</p>
<p>Dans la configuration vous pouvez également préciser une feuille de style CSS supplémentaire pour personnaliser l’affichage de votre blog (comme <a href="https://nl.movim.eu/?blog/edhelas@movim.eu">sur ce blog</a>). Un flux Atom est également généré pour tous ceux qui souhaiteraient ajouter votre flux à leur agrégateur. Voici le flux public du <a href="https://nl.movim.eu/?node/pubsub.movim.eu/Movim">Groupe officiel du projet Movim</a>.</p>
<p>Sachez également que la rédaction des articles se fait au format <a href="https://fr.wikipedia.org/wiki/Markdown" title="Définition Wikipédia">Markdown</a>, vous permettant ainsi d'utiliser une mise en page avancée et d’y inclure des liens et images.</p>
<h3 id="nouvelle-liste-de-contact">Nouvelle liste de contact</h3>
<p>La liste de contact a été réécrite et fonctionne désormais sur Angular, merci à Christine Ho pour ce super travail ! Toutefois des ralentissements peuvent être ressentis pour ceux qui possèdent une liste assez conséquente (plusieurs centaines de contacts), l’amélioration de ces performances fait également partie des points qui seront traités dans les prochaines versions.</p>
<h3 id="nouvelle-interface-de-chat">Nouvelle interface de chat</h3>
<p>Les chats ont maintenant une page dédiée (miaou !) et plein de petites fonctionnalités ont été ajoutées comme le support des emojis, une première implémentation de <a href="https://xmpp.org/extensions/xep-0313.html">XEP-0313: Message Archive Management</a> (qui sera améliorée dans la prochaine version) ou la possibilité d’envoyer des pièces jointes directement depuis l’interface (si votre serveur XMPP le prend en charge). Vous pouvez également changer le sujet et configurer vos salons de discussions en quelques clics.</p>
<h3 id="ajout-du-support-des-commandes-ad-hoc">Ajout du support des commandes Ad-Hoc</h3>
<p>Le support des commandes Ad-Hoc (<a href="https://xmpp.org/extensions/xep-0050.html">XEP-0050: Ad-Hoc Commands</a>) est plus particulièrement destiné aux administrateurs qui souhaiteraient effectuer quelques manipulations sur leur serveur XMPP directement depuis Movim. Vous pouvez les retrouver dans l’onglet action de la page configuration.</p>
<h3 id="gestion-de-votre-compte-xmpp">Gestion de votre compte XMPP</h3>
<p>Toujours sur la page Configuration, vous pouvez désormais gérer vos souscriptions aux passerelles offertes par votre serveur XMPP. Vous pouvez également changer votre mot de passe ou supprimer définitivement votre compte.</p>
<h3 id="partagez-des-pages-web-sur-movim">Partagez des pages web sur Movim</h3>
<p>Afin que vous puissiez partager en un clic toutes les pages que vous souhaitez sur Movim, un bouton Partager universel est disponible sur la page d’accueil de votre Pod préféré une fois que vous vous êtes identifiés. Ce bouton prend la forme d’un <em>bookmarklet</em> que vous pouvez glisser dans votre navigateur. Chaque fois que vous souhaitez partager une page, cliquez dessus, Movim se charge du reste ! Il ne vous reste plus qu’à mettre un petit commentaire, un titre et à publier !</p>
<h3 id="mais-également">Mais également…</h3>
<p>Le panneau d’administration du projet a également été revu et simplifié pour faciliter la vie des administrateurs. Le processus de génération et de parsage XML a été revu afin de minimiser les possibilités d’injection de code malveillant.</p>
<h2 id="autour-du-projet">Autour du projet</h2>
<p>Movim 0.9 ce n’est pas que des nouveautés sur le code et son architecture mais également plein de petits à-cotés !</p>
<h3 id="arrivée-des-premières-applications-mobiles-et-bureau">Arrivée des premières applications mobiles et bureau</h3>
<p>Movim est disponible en tant qu’application Android et Firefox OS ! Vous pouvez le télécharger sur le Play Store ou F-Droid (Android 5.0 minimum) ou sur le Firefox OS Marketplace.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6c68332e676f6f676c6575736572636f6e74656e742e636f6d2f356474625a51356d32513478757473684b4b563943422d2d6247376a73764a71346e43385175483746707965475a6e4a68484561435838326649666b586f6d494d6c42733d68343030/5dtbZQ5m2Q4xutshKKV9CB--bG7jsvJq4nC8QuH7FpyeGZnJhHEaCX82fIfkXomIMlBs=h400" alt="L’interface de chat mobile" title="Source : https://lh3.googleusercontent.com/5dtbZQ5m2Q4xutshKKV9CB--bG7jsvJq4nC8QuH7FpyeGZnJhHEaCX82fIfkXomIMlBs=h400"></p>
<p>Un travail est également en cours pour l'empaqueter à l’aide du projet <a href="http://electron.atom.io/">Electron</a> et ainsi le porter sur le bureau. Un premier paquet pour Debian et Ubuntu est prévu dans les prochaines semaines, si vous souhaitez donner un coup de main et aider à empaqueter pour votre système d’exploitation n’hésitez pas à jeter un œil <a href="https://github.com/edhelas/movim_electron">au projet GitHub</a> !</p>
<h3 id="paquet-yunohost">Paquet YunoHost</h3>
<p>Grâce au merveilleux travail de Src386 <a href="https://github.com/src386/movim_ynh">un paquet YunoHost</a> est également disponible pour le projet. Merci à lui !</p>
<h3 id="nouveau-site-web-et-déménagement-sur-github">Nouveau site web et déménagement sur GitHub</h3>
<p>Afin d’améliorer l’accès au projet nous avons décidé de bouger celui-ci sur la forge GitHub où nous avons désormais <a href="https://github.com/movim/">notre propre organisation</a>, le Wiki officiel a également été déplacé sur cette plate-forme et <a href="https://github.com/movim/movim/wiki">est accessible à cette adresse</a>.</p>
<p>Finalement le <a href="https://movim.eu/">site officiel</a> a été retravaillé afin de mieux présenter le projet, n’hésitez pas à y faire un petit tour pour avoir un bon aperçu de l’état actuel du projet.</p>
<h2 id="et-ce-nest-pas-fini">Et ce n’est pas fini…</h2>
<p>Voici donc un petit aperçu de ce qui vous attend dans la version 0.9 du projet. Nous ne souhaitons pas nous reposer sur nos lauriers pour autant et plein de bonnes choses sont en préparation pour les prochaines versions.</p>
<p>Le cycle des versions va être considérablement réduit. À ce niveau <em>Tchouri</em> est plutôt une exception, le travail apporté ayant été particulièrement conséquent il explique pleinement les longs mois qui ont précédé sa sortie. Les prochaines moutures du projet vont être plus légères en fonctionnalités et se concentrer sur un thème en particulier.</p>
<p>Pour vous donner un petit aperçu, la prochaine version, qui sera très certainement une 0.9.1 se concentrera sur la partie chat du projet avec l’intégration de plein de petites fonctionnalités et l’amélioration de l’expérience utilisateur au sein de celles-ci.</p>
<p>Le but de Movim n’est pas uniquement de proposer un nouveau client de messagerie sociale. La motivation principale du projet est d’avoir une réflexion sur la façon donc il est utilisé quotidiennement. Pour ce faire nous réfléchissons continuellement à comment traiter au mieux au sein de Movim des thèmes comme l’expérience utilisateur, l’utilisation des standards (et cela à tous les niveaux), du respect des informations personnelles et de l’intégration de la plate-forme au sein de l’environnement des utilisateurs et du réseau XMPP.</p>
<p>L’idée derrière Movim c’est aussi de vous laisser le choix. De vous laisser choisir où vous déposez vos informations mais aussi du client (et du serveur) que vous utilisez pour y accéder.</p>
<p>Nous ne souhaitons pas enfermer les utilisateurs de Movim dans notre réseau mais au contraire montrer combien l’utilisation d’un standard de communication (même s’il possède des défauts nous en sommes conscients et nous y travaillons également) est primordial. Pour accéder au réseau derrière Movim (XMPP) pas d’API, mais de simple bibliothèques déjà disponibles dans tous les langages.</p>
<p>Merci encore pour le soutien grandissant pour le projet et à toutes les personnes qui y participent :) Pour nous aider n’hésitez pas à <a href="https://www.transifex.com/movim/movim/">venir traduire le projet</a> à remonter un bug sur le dépôt GitHub ou à venir discuter avec nous. Nous acceptons aussi les dons via Flattr ou PayPal pour nous aider à couvrir nos frais (infrastructure, déplacements, promotion…), vous trouverez les liens sur le site officiel du projet.</p>
<p>That’s all folks!</p></div><div><a href="https://linuxfr.org/news/movim-0-9-tchouri.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/107970/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/movim-0-9-tchouri#comments">ouvrir dans le navigateur</a>
</p>
edhelasM5oulNÿcopalm123GoffiXavier TeyssierBAudNils RatusznikAxelosLucashttps://linuxfr.org/nodes/107970/comments.atomtag:linuxfr.org,2005:News/356682014-09-12T22:39:47+02:002014-09-18T11:48:39+02:00Movim 0.8Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Movim, le réseau social standard et décentralisé sort en version 0.8. Cette dépêche sera l'occasion de revenir sur le projet, les nouveautés apportées ainsi que sur le travail prévu pour ces prochains mois.<br>
Beaucoup de nouveautés dans l'optimisation qui sont détaillées en seconde partie. L'utilisateur verra surtout l'apparition de la visio-conférence via l'extension Jingle de XMPP et des grosses améliorations visuelles.</p></div><ul><li>lien nᵒ 1 : <a title="https://movim.eu/" hreflang="fr" href="https://linuxfr.org/redirect/91488">Movim - Site Officiel</a></li><li>lien nᵒ 2 : <a title="http://wiki.movim.eu/fr:start" hreflang="fr" href="https://linuxfr.org/redirect/91489">Movim - Wiki Officiel</a></li><li>lien nᵒ 3 : <a title="https://launchpad.net/movim" hreflang="fr" href="https://linuxfr.org/redirect/91490">Le compte Launchpad du projet (sources, bugs et traductions)</a></li><li>lien nᵒ 4 : <a title="https://pod.movim.eu/" hreflang="fr" href="https://linuxfr.org/redirect/91491">Pod officiel </a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#mais-dabord-quest-ce-que-movim">Mais d'abord, qu'est-ce que Movim ?</a><ul>
<li><a href="#pr%C3%A9sentation-g%C3%A9n%C3%A9rale">Présentation générale</a></li>
<li>
<a href="#fonctionnalit%C3%A9s">Fonctionnalités</a><ul>
<li>
<a href="#linterface-de-chat"></a><a href="http://reho.st/self/ddf1847ff574b3e01ecd9cf2bed6bd54d7facff4.png">L'interface de chat</a>
</li>
<li>
<a href="#la-page-profil"></a><a href="http://reho.st/self/2fe9690e5b80aa8e15a2a4927ca9171ca14fcb0a.png">La page profil</a>
</li>
<li>
<a href="#un-groupe"></a><a href="http://reho.st/self/966de0e6ab34fcc60623455069815ddb362ee82b.png">Un groupe</a>
</li>
<li>
<a href="#la-gestion-de-groupes-partag%C3%A9s"></a><a href="http://reho.st/self/519a965084b4d72d50ce899aa815b19867b08118.png">La gestion de groupes partagés</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#movim-08-quoi-de-neuf">Movim 0.8, quoi de neuf ?</a><ul>
<li><a href="#pour-le-coeur-du-projet">Pour le coeur du projet</a></li>
<li>
<a href="#pour-lutilisateur">Pour l'utilisateur</a><ul>
<li>
<a href="#les-favoris"></a><a href="http://reho.st/self/e5d24d9f973baa307c78b7fb20bf9b43c6a84f98.png">Les favoris</a>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#pour-la-suite">Pour la suite</a></li>
<li><a href="#lev%C3%A9e-de-fonds">Levée de fonds</a></li>
<li><a href="#super-bonus---mise-%C3%A0-jour-de-la-07">Super bonus - Mise à jour de la 0.7</a></li>
</ul><h2 id="mais-dabord-quest-ce-que-movim">Mais d'abord, qu'est-ce que Movim ?</h2>
<h3 id="présentation-générale">Présentation générale</h3>
<p>Il est toujours bon de resituer le projet ainsi que son environnement avant de partir dans les détails.<br>
Movim a pour but d'offrir une interface sociale sur le réseau de communication <a href="http://xmpp.org/">XMPP</a>, standard de messagerie depuis plus de 10 ans maintenant.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f696d672e6d6f76696d2e65752f6d656469612e706e67/media.png" alt="Un aperçu de Movim" title="Source : https://img.movim.eu/media.png"></p>
<p>L'idée générale étant de limiter l'effet "<a href="http://fr.wikipedia.org/wiki/Not_Invented_Here">Not Invented Here</a>" en réutilisant un maximum de briques logicielles et protocolaires déjà existantes ainsi qu’en participant au développement de celles-ci. Et c'est ici notre point majeur de différenciation par rapport à d'autres réseaux sociaux décentralisés comme Diaspora par exemple.</p>
<p>Le projet se déploie donc sur un serveur Web traditionnel à la manière d'un blog (il est écrit en PHP et fonctionne sur les bases de donnée <a href="http://www.mysql.com/">MySQL</a> et <a href="http://www.postgresql.org/">PostGreSQL</a>) et va faire l'intermédiaire entre le réseau XMPP et les navigateurs des utilisateurs. </p>
<p>D'un point de vue XMPP, Movim se comporte donc comme un simple client tout en offrant à l'utilisateur une expérience de navigation similaire aux autres réseaux sociaux. L'architecture étant elle-même conçue pour permettre la connexion de plusieurs comptes simultanément.</p>
<h3 id="fonctionnalités">Fonctionnalités</h3>
<p>De nombreuses fonctionnalités ont été ajoutées au fil des versions. En voici une liste non exhaustive.<br>
Une liste des extensions du protocole XMPP (appelées XEP) est également tenue à jour à cette adresse : <a href="http://wiki.movim.eu/en:dev:protocol_implementations">Wiki Movim - Protocol Implementation</a>.</p>
<p>Comme tout client XMPP digne de ce nom, Movim implémente déjà tout ce qui est nécessaire pour faire de la messagerie instantanée : liste de contacts, présences, échange de messages, salons de discussion.</p>
<h4 id="linterface-de-chat"><a href="http://reho.st/self/ddf1847ff574b3e01ecd9cf2bed6bd54d7facff4.png">L'interface de chat</a></h4>
<p>De nombreux ajouts ont également été faits comme la possibilité d'avoir un accusé de réception à l'envoi d'un message, le support du contenu enrichi (liens, formatage du texte), la synchronisation des discussions entre les clients (pour continuer sur votre ordinateur une discussion commencée sur votre mobile par exemple) ou encore la transmission et réception des états de rédaction ("en train d'écrire", "en pause").</p>
<p>Le but étant de systématiquement pousser le standard un peu plus loin que ce qui a été fait dans les autres clients, tout en discutant avec les autres projets basés sur XMPP pour les inviter à faire de même (tel que le projet <a href="http://sat.goffi.org/">Salut à Toi</a> ou encore Jappix).</p>
<p>Au niveau des profils, Movim implémente naturellement les vCards XMPP. </p>
<h4 id="la-page-profil"><a href="http://reho.st/self/2fe9690e5b80aa8e15a2a4927ca9171ca14fcb0a.png">La page profil</a></h4>
<p>Les salons de discussion sont également de la partie, même s'ils vont être sensiblement revus par la suite (voir la suite du billet).</p>
<p>Les grosses différences apparaissent donc sur les fonctionnalités dites "sociales" du projet. Tout d'abord le support complet de la norme Publish-Subscribe (<a href="http://fr.wikipedia.org/wiki/PubSub">PubSub</a> pour les intimes) permet à Movim d'offrir un système de flux sur les comptes des utilisateurs et de façon plus générale via la fonctionnalité que nous appelons "Groupes" et qui permet de créer des flux de discussion publics (un peu à la manière d'un forum).</p>
<h4 id="un-groupe"><a href="http://reho.st/self/966de0e6ab34fcc60623455069815ddb362ee82b.png">Un groupe</a></h4>
<p>Vous pouvez également partager avec vos contacts les différents groupes auxquels vous avez souscrit via la fonction "Groupes Publics". Tout cela est paramétrable depuis la page de Configuration de votre compte.</p>
<h4 id="la-gestion-de-groupes-partagés"><a href="http://reho.st/self/519a965084b4d72d50ce899aa815b19867b08118.png">La gestion de groupes partagés</a></h4>
<p>À part ça la version 0.8 inclut également un support expérimental de la visio-conférence via <a href="http://www.webrtc.org/">WebRTC</a>. Pour cela nous implémentons la norme <a href="http://xmpp.org/extensions/xep-0166.html">Jingle</a> standardisée au sein de XMPP. À terme Movim devrait être capable d'initier une session multimédia avec l'ensemble des clients implémentant la norme.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6d6f76696d2e65752f73697465732f64656661756c742f66696c65732f766973696f5f302e706e67/visio_0.png" alt="La vidéo-conférence" title="Source : https://movim.eu/sites/default/files/visio_0.png"></p>
<p>L'interface générale a été pensée pour être totalement « responsive », Movim s'adaptera donc à l'écran de votre téléphone tout comme aux écrans de très grande taille (grâce à un affichage du contenu principal sur deux colonnes).</p>
<h2 id="movim-08-quoi-de-neuf">Movim 0.8, quoi de neuf ?</h2>
<h3 id="pour-le-coeur-du-projet">Pour le coeur du projet</h3>
<p>Les changements sont conséquents et touchent tant l'interface que les données en elles-mêmes. Le plus important ici étant que nous restons pleinement compatibles avec les anciennes versions de Movim ainsi que tous les autres clients XMPP. Il n'y aura donc pas de rupture de compatibilité comme nous l'avons vu pour <a href="https://joindiaspora.com/">Diapora*</a> ou <a href="http://status.net/">StatusNet</a>.</p>
<p>Concernant le cœur du projet, de nombreux refactorings ont été faits pour mettre en conformité Movim avec les normes de codage (spécialement les normes <a href="http://www.php-fig.org/">PHP PSR</a>). Ainsi les bibliothèques utilisées sont maintenant déclarées comme dépendances et ont été sorties du code du projet (via l'utilisation de <a href="https://getcomposer.org/">Composer</a> et du service <a href="https://packagist.org/">Packagist</a>). Movim utilise également la bibliothèque <a href="https://github.com/Seldaek/monolog">Monolog</a> pour la gestion des journaux système.</p>
<p>Le système de traduction a été réécrit pour tenter d'éviter au maximum les erreurs de détection qui ont été rencontrées auparavant. Désormais toutes les chaînes de caractères à traduire seront placées dans des fichiers INI simplifiant par ailleurs la vie des développeurs.</p>
<p>La quasi-totalité des "Widgets" de Movim ont été nettoyés et réécrits vers une structure <a href="http://fr.wikipedia.org/wiki/MVC">MVC</a> plus propre. L'idée est surtout d'uniformiser leur fonctionnement en utilisant les outils offerts par le cœur de Movim (moteur de template, gestion des événements…).</p>
<p>Cette version accueille également une nouvelle librairie de gestion des images avec un nouveau système de génération des miniatures.</p>
<p>De très nombreuses optimisations ont été faites suite au traçage de l'exécution de Movim, une grande partie d'entre elles concernent l'accès (lecture et écriture) à la base de données. Certaines optimisations ont permis d'accélérer le temps de chargement des pages de plus de 50%.</p>
<p>La configuration a également été déplacée vers la base de données (sauf la partie concernant la base de données, vous imaginerez bien pourquoi :p).</p>
<p>Movim utilise maintenant la librairie <a href="https://github.com/edhelas/sasl2">SASL2</a> lui permettant de supporter un grand nombre de méthodes d’authentification sécurisée coté XMPP. Du travail reste à faire pour la sécurisation de l'authentification entre le navigateur et le serveur web.</p>
<p>L'ensemble des échanges en AJAX entre le navigateur et le serveur sont désormais structurés en <a href="http://json.org/">JSON</a> (contre XML auparavant) allégeant la taille des paquets et le temps de traitement des informations contenues (particulièrement coté Javascript).</p>
<p>La gestion des sessions a également été réécrite pour mieux contenir les erreurs de synchronisation d'identifiants rencontrées dans les précédentes versions. Appelée SessionX, celle-ci essaye d'effectuer les traitements de mise à jour des identifiants de session au plus bas niveau possible (dans notre cas dans la base de données).</p>
<p>Coté base de données des améliorations notables ont été apportées à <a href="https://github.com/edhelas/modl">Modl</a> (la librairie de gestion de base de données propre à Movim). Des optimisations ont été faites sur la partie s'occupant d'hydrater les objets suite à une requête (en tentant de minimiser les appels). Le système SmartDB, s'occupant de mettre à jour la base de données a été également amélioré et supporte maintenant les mises à jour de type sur les colonnes (longueur et catégorie de données). Quelques bugs mineurs relatifs à MySQL ont également été corrigés.</p>
<p>Cette version 0.8 inclut désormais le support de la version 4 de vCard (voir <a href="http://xmpp.org/extensions/xep-0292.html">XEP-0292: vCard4 Over XMPP</a>) ainsi que la nouvelle norme de transmission des avatars basée sur le système événementiel PEP (voir <a href="http://xmpp.org/extensions/xep-0163.html">XEP-0163: Personal Eventing Protocol</a>). En gros cette nouvelle méthode permet de "pousser" les changements (mise à jour du profil, de l'avatar) vers les utilisateurs plutôt que de les forcer à requêter fréquemment des informations auprès de leurs contacts. Cela réduit considérablement le trafic et est plus en phase avec le fonctionnement général de XMPP.</p>
<p>Beaucoup de traductions ont été faites et je remercie tous les traducteurs pour leurs superbes travaux !</p>
<h3 id="pour-lutilisateur">Pour l'utilisateur</h3>
<p>Pour l'utilisateur c'est une flopée de nouvelles fonctionnalités qui arrivent avec cette version.<br>
Comme expliqué dans la précédente section, suite à un projet fait pendant nos études nous (moi et ma copine) avons travaillé sur l'intégration de la technologie WebRTC dans Movim. Ainsi cette version offre un support expérimental de la visio-conférence via l'extension Jingle de XMPP.</p>
<p>L'affichage sur deux colonnes des billets permet également une utilisation optimale de la surface d'affichage sur les grands écrans.</p>
<p>Le support des salons de discussion a été en partie réécrit pour mieux s'intégrer à l'interface. Vous pouvez maintenant vous connecter d'un simple clic une fois le salon que vous souhaitez rejoindre listé dans vos favoris.</p>
<h4 id="les-favoris"><a href="http://reho.st/self/e5d24d9f973baa307c78b7fb20bf9b43c6a84f98.png">Les favoris</a></h4>
<p>Pour les administrateurs un énorme travail de nettoyage et de simplification a été fait dans le panneau d'administration du projet. Une API a également été ajoutée permettant de très facilement lister votre serveur sur la liste des Pods officiels (l'API est disponible <a href="https://api.movim.eu/">à cette adresse</a>).</p>
<p>La page Explorer a été complètement retravaillée pour être plus lisible et accessible à tous. Vous retrouverez toujours la liste des utilisateurs ayant choisi de partager leur profil mais également les serveurs de Groupes ainsi qu'une nouvelle section appelée "What's Hot" qui liste les derniers Groupes ayant été mis à jour sur le Pod.</p>
<p>Lors de la publication d'un billet, vous pouvez maintenant préciser un titre.</p>
<p>La page de profil a été divisée en 3 onglets pour faciliter la navigation et la mise à jour des éléments.</p>
<p>Le chat implémente maintenant l'extension XMPP Carbons (voir <a href="http://xmpp.org/extensions/xep-0280.html">XEP-0280: Message Carbons</a>) permettant de synchroniser les discussions entre les différents clients XMPP.</p>
<p>Et ce sont plusieurs dizaines de bugs qui ont été corrigés afin d'unifier le comportement des éléments composant l'interface et d'améliorer la navigation de l'utilisateur.</p>
<h2 id="pour-la-suite">Pour la suite</h2>
<p>Ce qui peut être dit c'est que ce n'est pas prêt de s'arrêter. Il y a encore énormément de fonctionnalités qui peuvent être intégrés dans Movim.</p>
<p>Il est question de faire fortement évoluer le cœur du projet pour le rendre encore plus dynamique et performant. Pour le moment, Movim se connecte aux serveurs XMPP via le module <a href="http://xmpp.org/extensions/xep-0206.html">BOSH</a> (permettant d'encapsuler les paquets XMPP dans des requêtes HTTP). Outre la relative lourdeur amenée par le protocole HTTP (qui, à l’origine, n'est pas fait pour du temps réel) c'est la fragilité de la session (qui est tenue coté client) qui est la plus dérangeante.</p>
<p>L'idée serait donc de "maintenir" les sessions coté serveur via la mise en place d'un démon et d'utiliser des <a href="http://fr.wikipedia.org/wiki/WebSocket">Websockets</a> pour relayer les événements. Ce système serait beaucoup plus léger à exécuter et à débugger. Un des gros avantages de cette solution serait de garder les sessions XMPP ouvertes coté serveur, même après le départ de l'utilisateur et ainsi de synchroniser efficacement tout nouveau contenu publié sur le réseau.</p>
<p>Le travail lié à cette nouvelle fonctionnalité est conséquent. C'est pourquoi une partie de l'argent récolté par la petite levée de fonds que nous préparons sera investie dans le temps consacré au développement.</p>
<p>Une autre fonctionnalité majeure est également en préparation pour la prochaine version. C'est l'intégration d'une puissante interface de messagerie. Nous souhaiterions offrir une interface similaire aux webmails existants mais en exploitant les nombreuses fonctionnalités offertes par XMPP pour parvenir à nos fins (gestion de l'historique, messages différés, mise en copie d'un message…). Cette fonctionnalité mêlera également la fonctionnalité chat traditionnelle déjà implémentée qui sera retravaillée pour être intégrée au sein de la "messagerie type mail". </p>
<p>Deux autres fonctionnalités sont également prévues pour la version 0.9.</p>
<p>Nous souhaiterions intégrer le support du protocole <a href="https://otr.cypherpunks.ca/">OTR</a> au sein de l'interface de Chat pour rattraper notre retard sur le chiffrement de bout en bout.</p>
<p>Finalement, un nouvel onglet apparaitra dans l'interface de configuration et permettra la gestion des comptes externes afin de les lier au compte XMPP (en passant par les modules de transport proposés par le serveur de l'utilisateur).</p>
<h2 id="levée-de-fonds">Levée de fonds</h2>
<p>Contrairement aux précédentes versions, celle-ci sera accompagnée d'une levée de fonds sur Kickstarter. Cette levée servira essentiellement à assurer le fond de roulement du projet dont principalement :<br>
- L'achat et/ou la location de serveurs permettant d'assurer l'hébergement de notre infrastructure (rassurez-vous on a pas besoin d'un datacenter)<br>
- Quelques goodies pour la promotion lorsqu'on fait des rencontres salons (stickers, T-shirts, kakémono…)<br>
- Le remboursement d'une partie des frais lors des déplacements vers ces mêmes événements.</p>
<p>Je ne souhaite pas partir sur une version commerciale du projet ni monter de structure autour de celui-ci pour le moment. Movim est un logiciel libre vivant grâce au temps qu'on consacre à son élaboration et sa promotion, rien d'autre. Cet argent sera donc gardé précieusement pour m'éviter d'apporter de ma poche tout ce qui est nécessaire pour son développement.</p>
<p>J'essayerai d'être le plus transparent possible sur les dépenses qui seront faites avec cet argent, au vue des projets de même envergure sur Kickstarter le montant demandé sera de l'ordre de la dizaine de milliers d'euros, bien sûr plus grand sera le montant plus longtemps le projet sera financé :).</p>
<h2 id="super-bonus---mise-à-jour-de-la-07">Super bonus - Mise à jour de la 0.7</h2>
<p>Si vous avez déployé la version 0.7 de Movim sur votre serveur, la mise à jour vers la version 0.8 ne devrait pas être très difficile. Je vous conseille tout de même de faire une copie de la base de données si possible avant toute manipulation.</p>
<p>Afin de partir sur une base propre je vous conseille de déployer la 0.8 dans un dossier à part et de copier le dossier users/ de la 0.7, Movim s'occupera de recréer le cache ainsi que toutes les miniatures.</p>
<p>La configuration est désormais enregistrée directement dans la base de données vous n'aurez donc qu'à renseigner les identifiants de connexion au serveur MySQL ou PostgreSQL en copiant et renommant le fichier <code>db.example.inc.php</code> en <code>db.inc.php</code> et complétant son contenu.</p>
<p>En passant alors par l'interface d'administration (dont les identifiants sont, par défaut, 'admin' et 'password') vous aurez la possibilité de mettre à jour votre base de données et de configurer correctement votre serveur.</p>
<p>N'hésitez pas à vous enregistrer sur l'API de Movim si vous souhaitez être listé sur la liste des pods officiels (une vérification manuelle est systématiquement faite pour éviter les abus).</p>
<p>That's all folks !</p></div><div><a href="https://linuxfr.org/news/movim-0-8.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103260/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/movim-0-8#comments">ouvrir dans le navigateur</a>
</p>
edhelastuiu polZeroHeurepalm123Benoît Sibaudhttps://linuxfr.org/nodes/103260/comments.atomtag:linuxfr.org,2005:News/282522011-05-29T10:36:22+02:002021-07-11T19:05:13+02:00Movim, sortie de la version 0.2Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>Nous sommes heureux de vous annoncer la sortie de la version 0.2 de Movim, projet qui vise à créer un réseau social libre et décentralisé où les échanges sont basés sur le protocole libre XMPP.</p>
<p>Cette nouvelle version apporte en grande partie des changements techniques non visibles par l'utilisateur avec notamment la correction de nombreux bugs et une compatibilité accrue. Tout comme la 0.1, cette version n'est pas encore destinée aux utilisateurs inexpérimentés mais surtout aux développeurs et administrateurs.</p>
<p>Rendez-vous le mois prochain pour faire le plein de nouveautés !</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.movim.eu/" hreflang="fr" href="https://linuxfr.org/redirect/72236">Site officiel du projet</a></li><li>lien nᵒ 2 : <a title="http://blog.movim.eu/index.php/post/get/2" hreflang="en" href="https://linuxfr.org/redirect/72237">Release note en anglais</a></li><li>lien nᵒ 3 : <a title="http://wiki.movim.eu/" hreflang="en" href="https://linuxfr.org/redirect/72238">Wiki du projet</a></li></ul><div><p>Movim 0.2 apporte les changements suivants :</p>
<ul>
<li>Un système d'échange de messages en javascript pour les widgets ;</li>
<li>Un installateur graphique vérifiant la compatibilité du serveur pour Movim ;</li>
<li>La réécriture du système de gestion des sessions qui ne se base plus sur les sessions PHP, mais sur une bibliothèque maison ;</li>
<li>La compatibilité avec une très grande partie des serveurs XMPP ;</li>
<li>L'ajout d'un système de cache ;</li>
<li>La correction de nombreux bugs.</li>
</ul>
<p>Des difficultés rencontrées lors du développement de la version 0.2 nous ont obligé à repousser plusieurs fois la date de sortie. Cependant, nous n'avons aucunement l'intention de nous reposer et nous prévoyons déjà de nombreuses fonctionnalités pour Movim 0.3 :</p>
<ul>
<li>Un débogueur de Widgets ;</li>
<li>Les notifications ;</li>
<li>Une amélioration du widget de Chat ;</li>
<li>Une interface configurable basée sur un système de blocs ;</li>
<li>L'URL rewriting ;</li>
<li>Une amélioration des performances lors de l'authentification ;</li>
<li>Une amélioration de la gestion du stockage des données, des sessions et du cache.</li>
</ul>
</div><div><a href="https://linuxfr.org/news/movim-sortie-de-la-version-02.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86248/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/movim-sortie-de-la-version-02#comments">ouvrir dans le navigateur</a>
</p>
edhelashttps://linuxfr.org/nodes/86248/comments.atom