Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  Movim 0.8

 -  Septembre 2014 - 

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

Sommaire

Mais d'abord, qu'est-ce que Movim ?

Présentation générale

Il est toujours bon de resituer le projet ainsi que son environnement avant de partir dans les détails.
Movim a pour but d'offrir une interface sociale sur le réseau de communication XMPP, standard de messagerie depuis plus de 10 ans maintenant.

Un aperçu de Movim

L'idée générale étant de limiter l'effet "Not Invented Here" 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.

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 MySQL et PostGreSQL) et va faire l'intermédiaire entre le réseau XMPP et les navigateurs des utilisateurs.

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.

Fonctionnalités

De nombreuses fonctionnalités ont été ajoutées au fil des versions. En voici une liste non exhaustive.
Une liste des extensions du protocole XMPP (appelées XEP) est également tenue à jour à cette adresse : Wiki Movim - Protocol Implementation.

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.

L'interface de chat

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").

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 Salut à Toi ou encore Jappix).

Au niveau des profils, Movim implémente naturellement les vCards XMPP.

La page profil

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

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 (PubSub 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).

Un groupe

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.

La gestion de groupes partagés

À part ça la version 0.8 inclut également un support expérimental de la visio-conférence via WebRTC. Pour cela nous implémentons la norme Jingle 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.

La vidéo-conférence

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

Movim 0.8, quoi de neuf ?

Pour le coeur du projet

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 Diapora* ou StatusNet.

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 PHP PSR). 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 Composer et du service Packagist). Movim utilise également la bibliothèque Monolog pour la gestion des journaux système.

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.

La quasi-totalité des "Widgets" de Movim ont été nettoyés et réécrits vers une structure MVC 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…).

Cette version accueille également une nouvelle librairie de gestion des images avec un nouveau système de génération des miniatures.

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

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

Movim utilise maintenant la librairie SASL2 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.

L'ensemble des échanges en AJAX entre le navigateur et le serveur sont désormais structurés en JSON (contre XML auparavant) allégeant la taille des paquets et le temps de traitement des informations contenues (particulièrement coté Javascript).

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

Coté base de données des améliorations notables ont été apportées à Modl (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.

Cette version 0.8 inclut désormais le support de la version 4 de vCard (voir XEP-0292: vCard4 Over XMPP) ainsi que la nouvelle norme de transmission des avatars basée sur le système événementiel PEP (voir XEP-0163: Personal Eventing Protocol). 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.

Beaucoup de traductions ont été faites et je remercie tous les traducteurs pour leurs superbes travaux !

Pour l'utilisateur

Pour l'utilisateur c'est une flopée de nouvelles fonctionnalités qui arrivent avec cette version.
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.

L'affichage sur deux colonnes des billets permet également une utilisation optimale de la surface d'affichage sur les grands écrans.

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.

Les favoris

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 à cette adresse).

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.

Lors de la publication d'un billet, vous pouvez maintenant préciser un titre.

La page de profil a été divisée en 3 onglets pour faciliter la navigation et la mise à jour des éléments.

Le chat implémente maintenant l'extension XMPP Carbons (voir XEP-0280: Message Carbons) permettant de synchroniser les discussions entre les différents clients XMPP.

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.

Pour la suite

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.

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 BOSH (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.

L'idée serait donc de "maintenir" les sessions coté serveur via la mise en place d'un démon et d'utiliser des Websockets 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.

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.

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

Deux autres fonctionnalités sont également prévues pour la version 0.9.

Nous souhaiterions intégrer le support du protocole OTR au sein de l'interface de Chat pour rattraper notre retard sur le chiffrement de bout en bout.

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

Levée de fonds

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 :
- 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)
- Quelques goodies pour la promotion lorsqu'on fait des rencontres salons (stickers, T-shirts, kakémono…)
- Le remboursement d'une partie des frais lors des déplacements vers ces mêmes événements.

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.

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é :).

Super bonus - Mise à jour de la 0.7

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.

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.

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 db.example.inc.php en db.inc.php et complétant son contenu.

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.

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

That's all folks !

Lire les commentaires

par edhelas, tuiu pol, palm123, ZeroHeure, Benoît Sibaud

DLFP - Dépêches

LinuxFr.org

L’écriture et l’image, des âges farouches au texte électronique

 -  16 mai - 

Dans cette nouvelle excursion du Transimpressux, nous voyagerons chez les Mayas de l’époque pré-colombienne ainsi que dans la Rome antique. Nous (...)


GIMP 2.10.38 est sorti

 -  14 mai - 

Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.10.38 du 3 mai 2024 (en anglais).Cette (peut-être dernière) (...)


Visualisation d’imageries médicales avec Invesalius

 -  13 mai - 

Nous allons parler ici des examens par imageries médicales de type scanner ou IRM. Un scanner est une série d’images faites aux rayons X et pour une (...)


Lettre d'information XMPP de mars 2024

 -  11 mai - 

N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les (...)


Conférence OW2con’24 : financements et nouveaux défis réglementaires pour les logiciels libres

 -  9 mai - 

Avec quatre discours inauguraux, quatre sessions en petits groupes et 30 présentations d’experts, la conférence annuelle d’OW2 traite des aspects (...)