Réflexion sur l’accès au contenu pertinent de manière personnalisé sur diaspora*

Cet article de blog deviendra certainement une discussion sur loomio lorsque j’aurais le temps de le traduire. Pour l’instant, l’écrire en Français est plus facile pour moi. Comme mes réflexions peuvent tout de même intéresser (et qu’on peut préférer lire en Français), je les partage ici. Voir aussi cet ancien article sur le même sujet.

Il y a trop de messages dans nos flux

Un réseau social sert majoritairement à partager et à échanger. S’il est correctement utilisé, il peut même permettre une veille efficace et devenir la principale source d’informations. Il suffit pour cela de suivre suffisamment de personnes postant du contenu intéressant. Malheureusement, il peut vite devenir compliqué de faire le tri dans la montagne de messages qui s’entassent dans notre flux. Le nombre de messages qui nous semblent pertinent peut décroître, jusqu’à tomber bien bas, ce qui fait perdre un temps précieux voire nous fait quitter le service.

L’automatisation n’est pas la solution

La solution de Facebook (je ne sais pas pour Twitter, mais j’imagine qu’il y a une pratique similaire) à ce problème consiste à étudier notre usage et notre activité pour filtrer de manière automatique notre flux en nous proposant principalement les personnes et sujets avec lesquels nous interagissons majoritairement. Cette approche pose un problème de cercle vicieux : nous sommes bien évidemment moins susceptible de cliquer sur un contenu qui ne nous est pas présenté, comme nous n’interagissons pas avec lui il nous sera moins souvent présenté, etc. De plus, elle implique de faire de l’analyse des usages et des données, ce que nous essayons de limiter dans le logiciel Libre pour des raisons de respect de la vie privée. À cela, il faut rajouter le fait qu’un ordinateur peut se tromper. Finalement, personne mieux que nous même n’est capable de savoir si un contenu ne nous intéresse ou pas.

Les hashtags, une solution partielle

Nous avons vu que suivre des personnes intéressantes n’est pas une solution suffisante. Ces personnes peuvent parfois poster du contenu qui ne nous intéresse pas. Pire, certaines personnes peuvent parfois poster un contenu qui nous intéresserait, mais poster majoritairement du contenu sans intérêt. Nous pouvons aussi ignorer complètement l’existence d’une personne qui nous intéresserait beaucoup et ne jamais la découvrir. La solution de Twitter et diaspora* à ce problème est le système de hashtag. On peut ainsi se mettre à suivre non pas des personnes mais des sujets, ce qui résout le problème évoqué ci-dessus. Malheureusement, certaines personnes peuvent squatter un hashtag, voir en ajouter systématiquement des dizaines pour tenter de donner de la visibilité à leur message (cas moins régulier sur Twitter où les tweets sont limités à 140 caractères pour le moment). De plus, il est aussi possible d’utiliser un hashtag pour parler de son contraire. Par exemple, une personne postant un article parlant d’un problème sous #windows pourra accompagner son message d’un commentaire comme « Ca ne serait pas arrivé sous #linux ! ». Si nous sommes intéressé par les messages parlant de #linux et donc nous suivons ce hashtag, ce message apparaîtra dans notre flux, alors même qu’il ne parle que du système de Microsoft.

Les expressions booléennes, une suggestion pour diaspora*

Cette idée me trotte dans la tête depuis des années. En fait, je la décris déjà dans la première suggestion de cet article qui date de 2012 ! Il s’agirait de permettre à l’utilisateur d’écrire une requête avec trois entités différentes : les utilisateurs, les aspects et les tags, ainsi qu’avec trois opérateurs (en plus des parenthèses pour déterminer la priorité) : le ou, le et et le non. Un utilisateur pourrait ainsi rechercher #linux && !#microsoft. La réponse à cette requête serait un flux de tous les messages contenant le tag #linux et ne contenant pas le tag #microsoft. Si on se rend compte en plus qu’un utilisateur spamme le tag #linux, on peut aussi l’enlever de ce flux en rajoutant && !@userSpammer. Et voilà, un flux tout propre avec juste ce qui nous intéresse !

Ces requêtes doivent ensuite pouvoir être épinglées pour se retrouver dans la colonne de gauche de la page des flux, afin de pouvoir être sélectionnée facilement sans avoir à réécrire la requête. On pourrait même vouloir lui donner un nom et la définir comme flux par défaut, et, pourquoi pas, combiner les requêtes entre elle toujours avec les trois opérateurs.

Les questions qu’il reste à trancher pour avoir des spécifications complètes :

  • # pour les tags et @ pour les personnes sont devenus des standards de fait. Qu’utiliser pour désigner un aspect ?
  • &&, || et ! sont bien connus des développeurs. Ce sont cependant des symboles techniques. Doit-on les utiliser ou bien chercher quelque chose d’autres ? Google utilise l’espace pour dire &&, OR pour dire || et – pour dire ! dans sa barre de recherche par exemple.
  • Qu’est-ce que vous allez bien pouvoir offrir à Marien et Taratatach pour qu’ils m’aident à implémenter ça ?

diaspora v0.5.0.0, deuxième

La sortie est encore récente, et j’ai depuis mis à jour framasphère. Je me suis dit que ca pouvait être sympa de contacter la presse tech francophone pour essayer de faire un peu de bruit autour de cette sortie, alors j’ai écrit un petit mail aux sites que je connaissais. Comme je ne garde jamais rien pour moi, le voici :

La communauté des contributeurs au projet diaspora* est fière d’annoncer la sortie d’une nouvelle version majeure, la version 0.5.0.0. Diaspora* est un projet Libre d’un réseau social décentralisé et respectueux de la vie privée. Il a été lancé en 2010 par 4 étudiants américains. En Août 2012, ils cédaient la gouvernance du projet à la communauté. Cette nouvelle version est donc la cinquième version majeure publiée par la communauté.

Elle contient de nombreuses améliorations, dont notamment des grosses améliorations de l’expérience utilisateur tant sur desktop que sur mobile, beaucoup de refactoring et de changements sous le capot pour de meilleures performances, de nouvelles actions pour les administrateurs, et toujours des efforts pour améliorer la protection de la vie privée de l’utilisateur (voir ce précédent billet pour des détails sur ce point). L’annonce de la sortie est disponible sur le blog officiel (en anglais).

Avec 785 commits changeant 1336 fichiers, 31671 lignes de code ajoutées et 34509 lignes supprimées par 20 contributeurs différents, cette version est la plus grosse jamais sortie par la communauté. Le dépôt github vient d’ailleurs de dépasser les 10.000 stars, ce qui en fait le 3ème projet Ruby on Rails le plus suivi sur github.

diaspora* a connu un regain d’intérêt en France ces derniers mois, notamment grâce au lancement par Framasoft de leur nœud diaspora* framasphère dans le cadre de leur campagne « Dégooglisons Internet« . Lancé en Octobre dernier, celui-ci approche maintenant les 16.000 utilisateurs. Si vous souhaitez (re)découvrir diaspora*, framasphère est un serveur idéal où s’inscrire. N’oubliez pas de suivre des tags pour voir votre flux se remplir de contenu vous intéressant.

diaspora* v0.5.0.0 est en approche

Il nous aura fallu environ 6 mois pour sortir une release candidate de la nouvelle version majeure de diaspora*, la version 0.5.0.0. En cause principalement, le nouveau chat intégré basé sur XMPP que nous avons beaucoup de mal à stabiliser. Il est fonctionnel mais a du mal à passer correctement à l’échelle. Une nouvelle version de diaspora* sort en général tous les trois mois, nous avions donc déjà manqué une sortie, il n’était plus possible de repousser encore et toujours la sortie de la 0.5.0.0. Une branche contenant le code candidat à une release a donc été créée il y a un peu plus d’une semaine. Le chat XMPP y est inclus mais marqué comme expérimental et il est fortement déconseillé de l’activer sur un serveur de production avec de nombreux utilisateurs pour le moment. Pour autant, les améliorations sont nombreuses dans cette nouvelle version et il aurait été dommage de vous faire encore patienter.

En fait, les modifications sont tellement nombreuses que j’ai dû découper cet article en une série d’articles. Rien que le plan m’a montré à quel point il devenait gros. Pourtant, j’avais fait un effort, j’avais pris un joli pad dans lequel j’avais retenu uniquement les fonctionnalités essentielles, et tout et tout… Mais rien n’y a fait, il a fallu hacher tout ça et vous le délivrer petit à petit, histoire de faire monter le suspense. Quant-à ceux qui sont sur diaspora-fr.org et utilisent déjà le code de la version 0.5.0.0, vous êtes priés de ne pas tout dévoiler à vos petits camarades ! Laissez-les s’impatienter voyons !

Voici toutefois le sommaire de cette série d’articles sur diaspora* v0.5.0.0 qui vous dévoile les plus grosses améliorations. Après tout, le changelog, bien qu’incompréhensible, est public. Il n’y avait donc pas tellement de raison d’attendre plus. J’ajouterai au fur et à mesure les liens vers les articles lorsqu’ils sortiront (y’a encore du boulot). Le sommaire donc :

  • Une expérience utilisateur améliorée avec le portage de l’intégralité de l’interface vers bootstrap (ça y est !) et de nombreuses améliorations qui vont je l’espère vous faciliter l’utilisation de diaspora* (oui, cette phrase ne dévoile rien, c’est fait exprès)
  • Une meilleure protection de la vie privée avec notamment le retrait des données EXIF par défaut et un proxy pour les images, mes avancées préférées de cette nouvelle version
  • La version mobile qui n’est pas en reste, avec les tags suivis et l’ajout de contacts (elle était attendue celle-là !)
  • Sous le capot ça bouge aussi avec des mises à jour majeures de Ruby, Rails et Sidekiq, et des améliorations de la fédération
  • et pour finir un tour sur les nouvelles fonctionnalités pour les podmins tel que l’expiration des comptes inactifs et la possibilité de verrouiller temporairement un compte

Voilà, croyez moi, vous allez en avoir pour votre argent. Comment ça, c’est Libre et gratuit ? Bon, mais si vous voulez quand même investir de l’argent, n’oubliez pas que nous sommes présents sur Bounty Source, où vous pouvez poster des bounties sur des issues github, pour financer le développement des fonctionnalités qui vous tiennent le plus à cœur. Plus d’infos sur le blog officiel.

Dîtes, ça se voit que je suis enthousiaste ?

Bloguer est un art difficile.

Un petit meta article pour réfléchir sur la communication sur le Web.

La communication est essentielle dans un projet, et encore plus lorsqu’il est Libre. Il n’y a rien de pire que de travailler « en boite noire » sans communiquer avec la communauté, et d’arriver plusieurs mois plus tard en disant « TINTIIIN ! Voici une nouvelle version qui a complétement changé de direction par rapport à ce que vous croyiez et maintenant c’est trop tard pour faire quoi que ce soit ! ». Je pense d’ailleurs honnêtement que c’était la cause principale de l’échec du projet diaspora* lorsqu’il était mené par ses fondateurs. Même si on s’est un peu amélioré depuis, il reste beaucoup d’effort à faire en ce sens. Pourquoi communiquer est-il si important ? Vous connaissez déjà la réponse à cette question : un projet a tout à gagner à être connu. Plus d’utilisateurs, ce qui en fait un projet plus attractif, plus rentable s’il est basé sur ce genre de modèle d’affaire, plus crédible aussi, et plus fort, lorsqu’il y a des bras de fer avec les concurrents. Mais aussi, une plus grosse communauté qui, si elle est bien gérée, peut amener plus de contributeurs (développeurs, mais aussi designeurs, sysadmin, traducteurs… Tous sont nécessaires) et donc un projet de meilleure qualité. Il faut savoir jouer avec avec finesse, mais les bénéfices sont souvent à la hauteur des efforts fournis. Maintenant que nous sommes d’accord sur le fait que la communication est essentielle et que le succès ou l’échec d’un projet dépend d’abord d’elle, peu importe sa qualité technique, je peux rajouter deux gros bémols.
Read More

Diaspora*, à l’usage

Le dernier article de Maniatux, à propos de Diaspora*, m’a donné envie de réagir. Notez bien que ce n’est pas tant son article qui me fait prendre la plume de nouveau sur ce blog après deux ans d’absence mais plutôt le fait que j’ai envie de faire revivre un peu les Geexxx en compagnie de copain Fla.

Maniatux nous explique que, non, Diaspora*, ce n’est pas pour lui en nous expliquant les raisons de son désarroi. J’avoue avoir été déçu car la majorité de ses critiques portent sur l’installation d’un pod et non pas sur l’utilisation qu’il a pu en avoir. Je ne m’étendrai pas sur les « Ruby c’est du caca » « Y a des bugs c’est tout pourri » et autres « Ça manque de fonctionnalités de la mort qui tue » : il a tout à fait raison. D’ailleurs j’avais déjà critiqué le projet sur mon blog perso (hop ! Backlink gratuit !) il y a deux ans jour pour jour (les hasards du calendrier). Les choses n’ont finalement que peu évolué depuis, mais surtout à cause du manque de contributeurs au code.

Par contre, une phrase m’a surpris :

Diaspora est un twitter castré, je ne vois pas ce que cela apporte de plus par rapport à un blog pour le moment.

De un, j’aurais plutôt pris Google+ en exemple de castration, mais ça on s’en fout.

De deux, bien sûr que Diaspora apporte quelque chose en plus aux blogs traditionnels ! Les vieux blogueurs (ou gourous comme ils préfèrent s’appeler) auront beau vanter les mérites du blog, il manquera toujours au moins un petit quelque chose : l’ambiance générée par l’effet communautaire. Un blog peut évidemment comporter une petite communauté, mais cela sera totalement différent. Une analogie simple mais que je pense pertinente : le réseau social est au blog ce que le bar est à notre chez nous. On peut se retrouver avec des potes chez nous à discuter comme l’on peut se retrouver autour d’une bière dans un bar à discuter avec des potes. L’ambiance.

Je conçois que mon analogie est un peu tirée par les cheveux et on l’appréciera ou non, mais c’est ma vision des choses. Pour être plus direct, il y a un certain nombre de choses que Diaspora* m’apporte et que les blogs n’ont pas :

  • Une identité unique : le nerf de la guerre ! D’un blog à l’autre, nos commentaires n’ont aucun lien entre eux : une personne A peut très bien commenter sur mon blog avec le pseudo « J’aime le fromage » tandis qu’il s’agira d’une personne B avec le même pseudo sur un autre. Et puis que c’est chiant de devoir compléter tous ces champs pour indiquer son nom, son adresse mail et son site avant de pouvoir commenter !
  • Un carnet d’adresses : même si Diaspora* ne me convient pas entièrement sur ce point, c’est toujours mieux que le blog. L’un de mes protons (contraction de projet et de carton) consiste à revoir le fonctionnement des carnets d’adresses au niveau des réseaux sociaux, je vous en parlerai peut-être un jour…
  • La centralisation de MES données (principalement les commentaires). Si la décentralisation du point de vue réseau est appréciable il en est autrement de mes données que je souhaite garder sous le coude.
  • L’instantanéité du dialogue avec des gens que je ne connais(sais) pas. Bien que Fla ne l’avoue qu’à contre-cœur, Cyrille Borne a tout de même rabattu un petit paquet de personnes francophones que l’on avait l’habitude de suivre par leur blog. On découvre par conséquent une autre facette de tout ce petit monde qui tourne autour de la blogosphère (geek) française.

Tout cela n’enlève pas les (nombreux) défauts de Diaspora* et je suis quasiment certain que ce réseau est condamné à pourrir dans le terrible trou de l’oubli d’ici quelques années mais profitons de ses jeunes années avant de migrer ailleurs, de belles choses peuvent encore en sortir ! Alors viens copain !

Comment ça marche, la fédération de diaspora* ?

English version below.

Pour rappel, on désigne par « fédération » l’échange des données entre les différentes instances de diaspora* (appelées pods). Il s’agit donc du protocole qui permet aux serveurs de communiquer entre eux.

Avec le travail en cours pour extraire le code s’occupant de la fédération du reste du code de diaspora (oui, ce code devrait devenir une gem à part et donc être utilisable par n’importe quel projet qui veut parler avec diaspora* !), il me semble qu’un petit article de vulgarisation sur la fédération n’est pas de trop. J’ai régulièrement des remarques sur différents points qui m’obligent à réexpliquer un peu comment tout ça marche, alors un joli article à la limite du technique mais compréhensible par tous, ça me semble la solution parfaite, je n’aurai plus qu’à donner ce petit lien… 😀

Alors, comment les serveurs de diaspora* communiquent-ils, pour réussir à faire qu’être inscrit sur n’importe lequel d’entre eux permet (presque) la même chose que si tout le monde était sur le même serveur ? (comment ça, presque, je vous entends dire ? Oui, il y a quelques cas où vous n’aurez pas le même résultat après avoir effectué la même action quand vous êtes sur deux pods différents. Ce billet a justement comme but de vous expliquer pourquoi). Read More

Diaspora : Suggestions pour faciliter l’accès à l’information

Je l’affirmais dans mon précédent billet : nous recevons trop d’informations. Mais, vous vous en doutiez, il est rare que je fasse un simple constat sans avoir ma petit idée sur la question. J’évoquais donc comment les informations qui nous arrivaient aujourd’hui par les e-mails et surtout les réseaux sociaux nous étaient destinées particulièrement, comment elles sont ciblées. Et pour cause, ce sont bien souvent nos amis qui nous conseillent de lire un certain article, de regarder une certaine vidéo. Avec pour principale conséquence une activité très chronophage. Alors, comment faire le tri dans cette montagne d’informations, pour regarder ce qui nous intéresse vraiment sans le louper, tout en évitant l’inutile ?

En tant que libriste convaincu, je n’utilise pas Facebook ou Twitter. Mon réseau social, pour lequel ce constat est tout aussi valable, c’est Diaspora*. Et ce qui est bien avec le Libre, c’est que tout le monde peut participer à améliorer la chose. Cet article a donc pour objectif de lister des idées d’amélioration au réseau social Diaspora, idées axées sur la présentation du contenu.

Read More