Framapad : adieux aux anciens comptes privés. Bienvenue MyPads, et merci Bearstech !

Installez-vous confortablement, nous allons vous conter l’histoire de Framapad, un service alternatif à Google Docs. Et nous en profiterons pour interviewer l’équipe de la société coopérative Bearstech, qui nous a bien sauvé la mise il y a quelques années…


Cette histoire commence en 2011 lorsque Framasoft décide de proposer un service d’hébergement libre et gratuit de « pads », qui sont des documents permettant une rédaction collaborative en temps réel. En clair, une page web sur laquelle vous pouvez faire de la prise de notes à plusieurs personne en même temps (très utile pour rédiger des compte-rendus, faire des traductions collaborative, etc).

La première version de Framapad était basé sur un logiciel utilisant des technologies « lourdes » (Java/scala), et comportait de nombreuses limitations (notamment l’impossibilité d’être plus de 16 rédacteurs simultanés).

Framapad ancienne version
Framapad ancienne version

 

A peine 7 mois après sa mise en place, nous lancions un appel à l’aide pour nous aider à co-héberger ce service.

Nous avions alors choisi la société Bearstech (où plutôt, c’est elle qui nous a choisi), pour sortir le service Framapad des ennuis techniques dans lesquels il était englué. Et cela, gracieusement.

Pendant un an, tout allait pour le mieux, sauf que nous voyions le nombre de pads augmenter, et augmenter encore. Et si l’équipe Bearstech était bien sympathique, elle ne s’était pas non plus engagée à héberger de multiples serveurs indéfiniment pour nos beaux yeux (ni pour vos beaux pads).

En octobre 2012, nous avons donc proposé une nouvelle version de Framapad, basé là encore sur un logiciel libre, mais bien plus léger.

Framapad nouvelle version
Framapad nouvelle version

 

Problème, ce logiciel ne gérait pas de « comptes privés », c’est à dire qu’il était impossible de rendre « privé » un pad, ni même de le supprimer. Ainsi, si par exemple un enseignant voulait travailler avec une classe sur un sujet d’histoire, il était impossible d’en empêcher l’accès à qui en connaissait l’adresse, ou de le supprimer en cas de séance de tchat qui « dérape » (sauf à faire appel à notre gentille équipe technique, qui devait faire le ménage à la main).

La première version du logiciel, celle hébergée par Bearstech (vous suivez ?) disposait, elle, de cette fonctionnalité. Conséquence : beaucoup de gens continuaient à utiliser l’ancienne version, dont le code source n’était plus maintenu :-/

En juin 2014, Framasoft a donc pris le taureau par les codes, en lançant une campagne de financement participatif qui permettrait de payer le développement par un professionnel d’un plugin de comptes privés sur la nouvelle version du logiciel.

Une vingtaine de jours plus tard, la campagne était un succès, et la somme collectée. Après quelques péripéties, le développement du plugin s’est étalé sur le premier semestre 2015 (lire ici nos comptes rendus réguliers).

En septembre 2015, nous faisions les premiers tests de ce plugin (nommé, MyPads). Et le 6 octobre dernier, Framasoft envoyait (enfin !) le faire part de naissance de ce plugin.

 

Pad affiché dans MyPads
Pad affiché dans MyPads

 

Donc, nous pouvons, après 4 ans et demi et bons et loyaux services, fermer l’ancien serveur Framapad. Nous avons envoyé un email début septembre à tous les possesseurs de comptes privés leur demandant de migrer vers MyPads (la procédure est bien évidemment disponible). Nous ne proposons pas de migration automatique, car l’essentiel de ces pads ne sert tout simplement plus à personne, et une migration massive de ces 50 000 pads surchargerait nos serveurs. La procédure est donc manuelle, et décrite ici.

Nous souhaitions donc profiter de cette occasion pour remercier et interviewer l’équipe de la société Bearstech, qui nous aura permis de faire cette (longue) transition dans de bonnes conditions.

NB : fidèles à ses principes, l’équipe a répondu en mode collectif, au nom de Bearstech dans son ensemble, et bien évidemment sur… un pad géré par MyPads ! 🙂

Campagne MyPads sur Ulule
Campagne MyPads sur Ulule


 

Alors, c’est quoi Bearstech ? Ou plutôt c’est qui ?

C’est un peu dur à résumer simplement alors on peut lancer pour commencer une phrase un peu formelle mais synthétique, Bearstech est une société coopérative d’ingénieurs, société de service en logiciels libres spécialisée dans les services à haute valeur ajoutée autour de l’hébergement et l’infogérance.
Présenté comme ça ce n’est pas forcément très parlant, nous proposons de l’hébergement, mais chez nous ce n’est que le socle de notre métier. Nous avons résolu depuis longtemps le gros des problèmes d’infrastructure (nous sommes un « cloud » depuis 2008) et nous nous concentrons sur tout ce qui tourne autour des problématiques de production : qualité des services, architecture, expertises, performance, scalabilité, déploiement et sécurité. En langage vernaculaire, on vient nous voir pour nous confier le bon fonctionnement d’une plateforme, pour que « ça juste marche » quels que soient les problèmes et leurs dimensions (sur les stack LAMP, Python, Ruby, Go, Erlang, etc. on s’occupe aussi des bases de données SQL+noSQL et de la maintenance de tout un tas de briques très utiles 🙂
Nous avons mélangé les talents d’administrateur système et développeur depuis le début, ce qui a été récemment popularisé par le mouvement DevOps, mais c’est notre esprit depuis le début (en 2004). Par contre on peut se défendre d’une large culture Ops que la majorité des Devs n’ont pas, ce pour quoi ils font souvent appels à nous (« menfin ça marche chez moi ? »).

En quoi Bearstech est différente de pas mal de sociétés de services en logiciels/infrastructures libres ?

Déjà c’est une SCOP, il n’y en a pas des tonnes. Nous sommes un groupe soudé avec très peu de turnover (à ce jour : 16 personnes cumulant 110 années chez Bearstech) assurant la co-gestion de notre société. C’est moins original, mais il n’y a pas de hiérarchie. Il y a des rôles avec plus ou moins de responsabilités, mais chacun est autonome.
On peut rajouter à nos spécificités le télétravail : même si quelques irréductibles se rendent au bureau, les 2/3 sont en télétravail et qui plus est répartis dans la France entière (dont un nomade). On organise un grand raout chaque année pour se retrouver, mais on peut aussi se faire de temps en temps petits regroupements régionaux où se retrouver à Paris à l’occasion.

capture écran du site Bearstech.com
capture écran du site Bearstech.com

 

Du point de vue d’une entreprise, comment qualifierais-tu le secteur de l’informatique libre, aujourd’hui ?

Au niveau entreprise l’informatique libre a été clairement mis à la marge par le terme devenu quasi vide de sens « d’Open Source ». Beaucoup de sociétés utilisent des logiciels libres sans rien donner en retour. Nous essayons autant que possible de reverser notre travail à la communauté et de respecter les principes d’entraide et de partage de la connaissance même dans le cadre de nos missions en tant que prestataire. Au niveau des projets publiés vous pouvez consulter https://github.com/bearstech, nous avons récemment ouvert Bokor, un projet de grand ampleur qui a servi de base à l’un de nos projets client (http://bokor.io/).

Pourquoi avoir décidé de soutenir Framasoft lors de notre appel à l’aide ?

Nous essayons de soutenir dès que nous le pouvons, les projets qui défendent les valeurs du libre. En particulier quand c’est dans nos cordes, comme par exemple assurer le bon fonctionnement de services emblématiques pour le Libre : SHR, OpenDoc Society, OpenStreetMap, Freenode, Gna!, Framapad, etc. Lorsque Framasoft a émis le besoin de trouver un soutien pour mettre à disposition de tous Etherpad, c’est tout naturellement que nous avons répondu présent. Ce que vous faites est inestimable !

Comment vois-tu le rapport entre les sociétés de services et les communautés (souvent sous forme associatives) ?

Nous avons mis en place un système interne de sponsoring pour la participation aux événements communautaires, chaque ours dispose ainsi de jours de travail qu’il peut décider de consacrer à des événements, jusqu’à 15 jours. Cela permet aux ours de se rendre à des événements communautaires soit pour y faire des présentations soit simplement pour y être présent. C’est grâce à cela que vous nous croiserez entre autre aux RMLL, à OSDCFr, à PyconFr ou encore au prochain Open Source Summit pour voir comment tout cela évolue.

Encore 54 729 remerciements aux ours (un par pad hébergé) ! Si tu as une question qu’on aurait aimé qu’on te pose ou quelque chose à ajouter, n’hésite pas !

« Quel est le prochain projet que vous allez soutenir ? » (On ne sait pas …)

Encore un immense merci à Bearstech pour son soutien efficace et discret pendant ces 4 dernières années ! Sans eux, Framapad n’aurait sans doute pas été le succès qu’il est aujourd’hui.
Rappels :



MyPads : l’alternative de Framasoft à Google Docs

Vous connaissez déjà probablement Framapad. En vous offrant, à portée de clic, la possibilité de collaborer sur un texte à plusieurs clairement et aisément, nos installations du logiciel Etherpad ont eu un succès tel qu’elles se sont multipliées sur nos serveurs.

Il manquait néanmoins une fonctionnalité importante à ces pages d’écriture collaborative en ligne : la possibilité de créer vos dossiers, et de travailler en groupe de manière privée et organisée. Grâce à un financement collaboratif, nous avons pu engager un développeur pour travailler sur ce point, et le résultat s’appelle : MyPads.

Google Docs & Microsoft 365 envahissent vos écrans

spy-catDans l’informatique utilisée au quotidien, le traitement de texte est bien souvent l’outil principal. Avec l’arrivée des services en ligne, ces logiciels que l’on n’installe pas mais qu’on utilise directement depuis un navigateur web, est apparue la possibilité d’utiliser le même logiciel à plusieurs, en même temps. Les géants du Web l’ont bien compris, et ont rapidement mis les moyens pour proposer de telles solutions : de Google Docs à Microsoft 365, on peut désormais écrire, montrer et modifier un texte à plusieurs.

Bien entendu, ces entreprises ne sont pas des philanthropes, et ces opportunités ont un prix. Microsoft vous enferme dans des formats fermés, des fichiers que tout le monde ne peut pas lire, et vous rend dépendant de son abonnement mensuel. Google, lui, fait dans le gratuit, car chez lui c’est vous le produit : vos données et fichiers GoogleDocs sont une manne d’information publicitaire très rémunératrice pour la deuxième capitalisation boursière au monde.

Mais peut-on vraiment demander à sa classe d’ouvrir un compte Google, et donc de livrer ses données, afin de pouvoir travailler ensemble sur un exposé ? Que penser quand une ville italienne décide de revenir chez Microsoft afin d’éviter les problèmes qu’on a avec les .docx et l’installation d’un « cloud » ? Est-ce qu’une telle dépendance aux GAFAM est acceptable lorsqu’on gère les documents d’une administration, d’une classe, d’un syndicat, d’une association… ?

animation CC-By-SA Gee
animation CC-By-SA Gee

Mypads : un besoin financé par la communauté

Le Libre apporte déjà des réponses. Etherpad est un puissant logiciel de traitement de texte collaboratif en ligne, et qui permet une personnalisation facile grâce à ses extensions. Mais Etherpad n’offrait pas encore de solution permettant de créer un compte avec ses dossiers, ses listes d’utilisateurs ou ses pads… des fonctionnalités pourtant très demandées et attendues des utilisateurs.

C’est pour créer une telle extension qu’en juillet 2014, nous avons proposé une campagne de financement participatif. Le Libre ne dispose pas des moyens financiers ni du poids d’un GAFAM. Mais nous sommes une communauté qui sait qu’en se rassemblant, on peut faire de grandes choses. Qui sait aussi que développer du code coûte du temps, du savoir-faire et donc de l’argent. Que « Libre » ne signifie pas « Gratuit ».

mypadsulule

C’est un mode de financement et un modèle économique qui correspondent vraiment à nos valeurs (et à la partie « Solidarité » de notre charte). Quelques personnes (413, pour être précis) ont mis en commun des fonds pour qu’on suive le développement du plug-in par un prestataire, que l’on rende des comptes (ce que l’on a fait régulièrement sur le Framablog) et finalement qu’on publie un logiciel directement dans le pot commun, au bénéfice de toutes et de tous.

Le résultat, le voici aujourd’hui.

Découvrez MyPads, et travaillez entre vous dans un espace privé

MyPads, c’est donc ce fameux plug-in, cet ajout à Etherpad qui vous permet d’avoir vos documents rangés dans un dossier en fonction des personnes avec lesquelles vous travaillez. Bien entendu, nous sommes fiers de vous le proposer avec Framapad, afin que vous puissiez l’utiliser à loisir (et pourquoi pas, finir par l’installer sur vos propres serveurs).

Cela fonctionne très simplement, en 4 étapes :

  1. Rendez-vous sur http://mypads.framapad.org et créez-vous un compte ;
  2. puis connectez-vous à votre compte et créez votre premier dossier ;
  3. ensuite, créez autant de pads que vous voulez dans ce dossier ;
  4. n’hésitez pas enfin à inviter autant de personnes que vous voulez dans ce dossier, que ce soit par leur e-mail et/ou par leur identifiant MyPads. Ils devront cependant déjà posséder un compte MyPads pour pouvoir rejoindre votre dossier.

mypads5
et, bien entendu, il y a un chat…

Et voilà, vous pouvez désormais collaborer de manière simple et privée sur vos documents, et les retrouver en un tournemain. Nous imaginons déjà les professeurs qui se créeront un dossier par classe puis inviteront leurs élèves à collaborer sur cet outil sans craindre qu’on ne siphonne leurs données. Mais aussi l’association sportive ou culturelle qui créera un dossier par commission (le dossier “événements”, le dossier “ateliers”, le dossier “conseil d’administration”…)

Les fonctionnalités de MyPads sont étendues (plus de 10.000 lignes de code ont été nécessaires à son développement !), et nous n’allons pas les énumérer ici. Sachez simplement qu’elles ont été faites pour vous aider à classer et à retrouver aisément les pads et dossiers que vous avez crées comme ceux où vous avez été invités ; mais aussi et surtout pour vous donner toute latitude de gérer cet espace privé de création comme vous l’entendez.

À vous de vous en emparer et de soutenir MyPads

Bien entendu, cette extension MyPads n’est pas réservée à Framapad… Vous pouvez d’ores et déjà l’installer vous-même sur votre instance d’Etherpad. Nous avons tenu à ce que ce soit un plug-in Etherpad pour une raison simple : qu’il soit très facile d’installation, directement depuis l’interface d’Etherpad, et que vous puissiez ainsi en faire profiter ainsi votre famille, ou vos collaborateurs quels qu’ils soient.

Le code est, bien entendu, aussi ouvert que Libre, et vous pouvez le retrouver sur notre dépot git afin de remonter un bug, d’y suggérer une amélioration, d’y proposer une traduction ou un apport ! Car si nous allons continuer à en suivre de très près l’évolution, ce code vous appartient désormais autant qu’à nous, et ce grâce à la générosité des 413 contributeurs et contributrices qui en ont financé la création (que des milliers de chatons leur tombent dans les bras, mais métaphoriquement parlant, sinon ça griffe).

les impatient-e-s peuvent cliquer sur l'image pour aller se créer un compte ;).
les impatient-e-s peuvent cliquer sur l’image pour aller se créer un compte ;).

Framasoft veut aussi en profiter pour remercier chaleureusement Fabien, qui a travaillé d’arrache-pied à son développement ; et toutes les personnes qui nous soutiennent, partagent nos projets et nous financent de leurs dons depuis des années. C’est, notamment, grâce à vos dons récurrents qu’on peut se projeter sur l’avenir et mener ainsi des projets sur un long terme.

À vous, désormais, de dégoogliser votre entourage en lui faisant goûter à MyPads !




MyPads : troisième version admissible

Rappel des épisodes précédents : MyPads est un « plugin » qui permet à notre service en ligne Framapad (un outil en ligne de rédaction collaborative), d’organiser ses documents.

Pour savoir de quoi il retourne : http://fr.ulule.com/etherpad-framapad/

Cet article sur le Framablog fait partie des derniers d’une longue série présentant les avancées du développement de ce plugin. Voir https://framablog.org/tag/mypads/

Ainsi, cet article est (volontairement) plutôt technique, et non un article généraliste plutôt dédié au grand public comme habituellement sur le Framablog.

MyPadsDeux semaines après la seconde version admissible, en voici une nouvelle. Merci aux tests, retours, suggestions que certains d’entre vous nous ont envoyés. C’est grâce à ceux-ci que nous avons pu améliorer MyPads et commencer à anticiper les évolutions futures.

Changements depuis la RC2

Par ordre chronologique, voici la liste des changements depuis la RC2 :

  • Interface graphique Web
    • Amélioration du rendu pour l’élément HTML5 permettant de choisir la couleur par défaut employée au sein des pads.
    • Ajout d’une icône au niveau de la liste de ses groupes pour aller plus directement aux pads de chaque groupe.
    • Remplacement des termes ‘ASC’ et ‘DESC’ (pour ascendant et descendant) par des flèches pour le tri de ses groupes.
    • Mise à jour du titre de la fenêtre en fonction de la navigation de l’utilisateur.
    • Mise en avant de l’usage des emails au détriment des identifiants dans les créations de listes utilisateurs, invitation d’utilisateurs…
    • Correction d’un mauvais alignement des blocs groupe lorsque ceux-ci sont nombreux.
    • Icônes plus logiques en fonction des actions qu’elles entraînent (édition, écriture dans un pad etc.).
    • Correction d’un problème de duplication, dans le client Web et en affichage seulement, des utilisateurs en cas d’invitations multiples de la même personne.
    • Redirection propre avec message d ‘erreur, sur le client Web, si le groupe ou pad pointé n’existe pas en base de données (cas entre autres rencontré lorsque l’élément a été intentionnellement supprimé).
  • Anomalies et régressions
    • Correction de l’impossibilité de créer un pad sous etherpad si le nom donné via MyPads est trop long (régression amenée par l’usage d’identifiants humainement compréhensibles).
    • Correction d’un bug gênant dans certains cas d’invitations d’utilisateurs sur des groupes restreints, qui rendait l’affichage du groupe impossible dans le client Web.
    • Correction d’un souci au niveau des permissions en cas de pad privé avec son propre mot de passe au sein d’un groupe lui aussi contraint par mot de passe.
    • Résolution d’une anomalie à la première connexion après inscription, qui nécessitait que l’utilisateur recharge la page pour pouvoir continuer.
  • Améliorations
    • Usage de l’en-tête HTTP Authorization pour que le client et le serveur s’échangent le jeton d’authentification plus discrètement lorsque cela était possible.
    • Invitation d’utilisateurs rendue plus efficace avec l’option d’utiliser un bloc texte, avec une adresse mail ou un identifiant par ligne.
    • Redirection, en cas d’accès direct à un pad restreint ou privé, vers l’interface MyPads (notamment pour y saisir le mot de passe).
    • L’envoi de mail à partir du serveur utilise la langue sélectionnée par l’utilisateur lors de la création de son compte, et s’il n’y en a pas eu, la langue par défaut que l’administrateur a choisi pour MyPads.
    • La possibilité, en cas de vérification des emails activée par l’administrateur, pour un nouvel inscrit qui aurait manqué son mail de confirmation (sa validité étant limitée dans le temps), de se le voir envoyer à nouveau par la procédure de récupération de mot de passe.
  • Nouvelles fonctionnalités
    • Possibilité, pour l’administrateur MyPads d’interdire la création de pads en dehors de MyPads et son ajout dans l’interface d’administration de MyPads.
    • Migration de l’authentification de l’administrateur MyPads vers le nouveau système d’authentification et son système de jetons.
  • Générales
    • Quelques améliorations de la traduction.
    • Et bien entendu une part non négligeable des tests unitaires et fonctionnels ont dû être adaptés à tous ces changements.

Ce qu’il reste pour la version stable

En dehors de nouvelles anomalies à corriger, il ne reste, pour annoncer la version stable, que :

  • À améliorer la suppression des données du plugin. Aujourd’hui, si vous désinstallez MyPads depuis l’interface d’administration d’etherpad, toutes les données de MyPads sont supprimées. Il semblerait que ce comportement soit peut être trop radical et qu’il vaudrait mieux que les données ne soient effacées qu’après une action volontaire sous MyPads et non plus automatiquement à la désinstallation.
  • Donner la possibilité à l’administrateur de fixer un temps de validité pour les jetons d’authentification.
  • Ajouter davantage de traces pour le débogage au niveau du code serveur de MyPads.
  • Retravailler les feuilles de style de manière à les rendre plus aisées à modifier.
  • Améliorer globalement le style employé au sein du plugin.
  • Optimiser le chargement du code JavaScript de MyPads en le rendant plus compact.
  • Publier MyPads sur NPM de manière à ce qu’il soit installable directement depuis etherpad et non manuellement comme c’est le cas aujourd’hui.

Il est possible qu’une nouvelle fonctionnalité fasse exceptionnellement son apparition à la demande de Framasoft : l’envoi de mails groupés à ses listes d’utilisateurs pour faciliter le partage de groupes, pads publics ou sous mot de passe.

D’autres améliorations plus importantes sont prévues pour les versions ultérieures. Vous en trouverez trace dans notre espace gitlab et toute aide sera bienvenue pour les implémenter.

MyPads

MyPads RC3

Two weeks after RC2, here is a new release candidate. Thank you all for testing, giving us feedback and suggestions. By means of these, we’ve improved Mypads and begun to plan future developments.

Changes from RC2

Here is a list of changes by chronological order :

  • Web user interface
    • HTML5 input color render enhancement for pad author default color.
    • Icon addition on own groups list to be able to go more directly to group’s pads.
    • Replacement of ‘ASC’ and ‘DESC’ terms by up and down arrows for group ordering.
    • Window title updates according to user navigation.
    • Email emphasis to the detriment of logins into userlists creation, invitation…
    • Bad alignment fix for group blocks when there are many of them.
    • More meaningful icons depending on called actions (update, pad writing etc).
    • Duplication problem fix for users already invited.
    • Clean redirection with error message, in the Web client, if the group or pad is not found in database (scenario encountered for example when an element has been deliberately removed).
  • Bugs and regressions
    • Fix for etherpad inability to create a pad when the name chosen under MyPads was too long (a regression that come from human readable identifiers).
    • Fix for an annoying bug which happens with restricted groups and some invitations, that ends to an impossible group view.
    • Fix for correct permission when a private pad has its own password into a password-protected group.
    • Fix for a bug right after subscription : it was abnormally needed to reload the page to be able to interact with the client.
  • Improvements
    • HTTP Authorization header usage for a more discrete token exchange between client and server, when possible.
    • More efficient user invitation with an additional option : textarea block which one email address or login per line.
    • Redirection, from direct access to a restricted or private pad, to the MyPads interface (in particular to be able to enter a password).
    • Email sending from server now uses the selected language from the user or, if there is no, the default language chosen by the MyPads administrator.
    • In the case of emails check activated by the administrator, a fresh subscriber who have missed the confirmation mail (which validity expires), can have a new one from password recovery procedure.
  • Features
    • The MyPads administrator can forbid pads creation outside from MyPads and the option can be managed from MyPads administration interface.
    • MyPads administration has been migrated from old cookie authentication to the new token-based one.
  • Global
    • Translations enhancements.
    • And of course a significant part of unit and functional tests have been adapted to this changes.

Things to do before stable

Apart from new bugs to fix, the stable version only needs :

  • To improve plugin data removal. At the moment, if you uninstall MyPads from etherpad plugins administration, all MyPads data is erased. It seems that this behavior to be too drastic. A better way may be to remove data only after an intentional action from MyPads administration and no more an automatic hook after uninstalling.
  • Give the ability for the administrator to fix an expiration for authentication tokens.
  • Add more debug traces for the server part of MyPads.
  • Rework stylesheets in order to make them more readable and easy to update.
  • Globally improve the used style for MyPads.
  • Optimize JavaScript code loading by making it more compact.
  • Publish MyPads on the NPM registry for allowing direct installation from etherpad plugins administration.

We would like to exceptionally add a new feature (asked by Framasoft): grouped emails sending to your user lists with the stated goal to make easier groups, pads shares.

Other features and improvements are expected for next versions. You can see some of them in our Gitlab space. Any help will be welcomed.




MyPads : seconde version admissible

Rappel des épisodes précédents : MyPads est un « plugin » qui permet à notre service en ligne Framapad (un outil en ligne de rédaction collaborative), d’organiser ses documents.
Pour savoir de quoi il retourne : http://fr.ulule.com/etherpad-framapad/
Cet article sur le Framablog est l’avant-dernier d’une longue série présentant les avancées du développement de ce plugin. Voir https://framablog.org/tag/mypads/
Ainsi, cet article est (volontairement) plutôt technique, et non un article généraliste plutôt dédié au grand public comme habituellement sur le Framablog.

 

La première version admissible – Release Candidate – est sortie il y a dix jours. Un grand merci à ceux qui ont pris la peine de la tester et de nous faire des retours. Ces derniers ont conduit à une seconde version admissible.

MyPadsChangements depuis la RC1

Depuis le début de la semaine dernière et les premiers échanges :

  • Jusqu’ici tous les éléments de MyPads étaient dotés d’un identifiant unique aléatoire généré par la bibliothèque cuid. Efficaces et ordonnés, les identifiants ainsi générés avaient pour défaut principal d’être trop peu visuels et compréhensibles pour un usage en adresse web. Il a ainsi été décidé de passer à une génération empreinte de davantage de sens.
    Par exemple, un groupe nommé Affaires classées 312 aura maintenant pour identifiant affaires-classees-312-xxxxxxx. Les derniers caractères restent cependant aléatoires afin de ne pas imposer l’usage de noms uniques lors de la création dans toute l’instance. Ont été impactés par ce changement les groupes, pads, utilisateurs et listes d’utilisateurs.
  • L’email était d’ores et déjà obligatoire pour la création d’un compte utilisateur. Pourtant, il n’était pas forcément unique en base de données : seuls les identifiants devaient l’être. Ce choix avait été fait pour permettre de créer plusieurs comptes sur une même adresse mail. Nous avons souhaité revenir sur cet état de fait et de rendre les adresses elles aussi uniques, ce qui nous permet dorénavant :
    • au niveau des groupes restreints, d’inviter des utilisateurs ou de partager avec eux l’administration de ces groupes via leurs adresses email en plus de leurs identifiants;
    • pour le module de listes utilisateurs, également les emails en plus des identifiants;
    • enfin, le recouvrement de mot de passe se fait maintenant par la saisie de l’adresse email.
  • Lorsque vous invitez des utilisateurs, vous êtes maintenant plus clairement informés concernant ceux pour qui l’opération a réussi et ceux pour qui ce n’est pas le cas.
  • L’ensemble des éléments de MyPads possède aujourd’hui un champ contenant leur date de création, pour un tri plus fiable au sein de l’application.
  • Un bug gênant introduit par le changement récent de méthode d’authentification a été corrigé : en effet, un certain nombre de modifications concernant les comptes utilisateurs, par exemples les favoris, n’étaient pas reflétées au niveau du cache serveur, ce qui entrainait la perte des informations après un rafraîchissement manuel de la page.
  • Des correctifs concernant les traductions.
  • Une partie non négligeable des tests unitaires et fonctionnels ont dû être adaptés suite à ces modifications.

La suite

À court terme il est toujours important que cette seconde version admissible soit massivement testée et que les anomalies rencontrées puissent être rapportées dans notre espace Gitlab.

Vous pouvez maintenant tester cette version (dont seules quelques améliorations nous séparent de la version définitive) à l’adresse : https://mypads.framapad.org

Comme nous considérons l’application suffisamment stable, nous ne supprimerons à priori pas les données des pads créés à cette adresse (cependant, nous ne pouvons pas le garantir de façon absolue).

Note importante : si vous utilisez de comptes privés sur l’ancienne version d’Etherpad, nous vous invitons dès aujourd’hui à copier-coller le contenu de vos anciens pads dans de nouveaux pads créés pour l’occasion sur https://mypads.framapad.org

MyPads

MyPads RC2

The first MyPads release candidate version has been published more than a week ago. A big thank you to those who have spent some time to test and formalize some feedback. The latter have brought us to the second release candidate.

Changes from RC1

From the beginning of last week and first issues reported :

  • Until now all the MyPads elements had an unique random identifier, generated by the cuid library. Efficient and ordered, theses identifiers had a main problem : being no human readable for an URL usage. It has been decided to move to a more meaningful generation.
    For example, a group named Classed cases 312 now have for identifier classed-cases-312-xxxxxxx. The last characters are random in the purpose to not command unique names at creation across the whole instance. This change impacts groups, pads, users and and user lists.
  • Email has already been required for user account creation. However, uniqueness into database was not enforced : only the logins were. This choice has been made in order to allow multiple accounts creation with a same email. We have chosen to revisit our opinion and now MyPads requires unique email addresses, which allows :
    • for restricted groups, user invitation or administration sharing from email address in addition to their login;
    • in the user lists module, emails and logins too;
    • last, password recovery now ask for email address.
  • From now on user invitation, you are more clearly informed about those for who the operation has succeeded and those where it has failed.
  • All MyPads elements now handle a creation date field, allowing a more reliable ordering inside the application.
  • An annoying bug has been introduced with the recent authentication method change and has been fixed : actually number of changes around accounts, like bookmarks, were not reflected at the server cache level, and had for consequence data loss after manual reloading of the page.
  • Some corrections for translations.
  • A significant part  of unit and functional tests had to be adapted after these modifications.

Suite

Short-term it’s still important for this RC2 to be massively tested and that the encountered bugs can be reported into our Gitlab.

You can try this version (only few changes before final) here : https://mypads.framapad.org

As we consider the application stable enough, in principle we won’t remove data for pads and groups created at this domain (even so, we can’t absolutely guarantee that).

important note : if you have used private accounts on the old Etherpad version at Framapad, we invite you, as soon as possible, to copy paste your old pads content into new pads created on https://mypads.framapad.org




MyPads : version admissible

Après deux semaines de tests sur la bêta 2, nous atteignons aujourd’hui un nouveau palier et n’avons jamais été aussi proches de la version stable : nous vous présentons aujourd’hui MyPads version admissible (release candidate).

MyPadsDerniers travaux réalisés

Depuis le point du 30 juillet :

  • Comme prévu, la gestion de l’envoi de mails depuis MyPads avec
    • au souhait de l’administrateur, la vérification des adresses mails avant activation du nouvel inscrit;
    • une procédure de recouvrement de mot de passe;
    • la génération de jetons dont la validité est limitée dans le temps pour ces deux actions;
    • côté administration la configuration du serveur SMTP qui sera employé pour l’envoi des mails.
  • La possibilité de fournir des paramètres propres à chaque pad. Par exemple, dans un groupe sur invitation, il est dorénavant possible d’y créer un pad public ou en lecture seule. Dans un groupe protégé par mot de passe, vous pouvez créer un pad qui aura son propre mot de passe etc. Par défaut le comportement reste le même, à savoir que les pads héritent des propriétés de leur groupe parent.
  • L’ajout d’un champ facultatif de description pour chaque groupe.
  • Un certain nombre de corrections concernant les visibilités publiques et par mot de passe, notamment lorsque les pads ont des options différentes des groupes auxquels ils sont rattachés.
  • Quelques améliorations concernant les traductions.

Plus récemment, une refonte conséquente de l’authentification a du être entreprise. L’un des plugins d’etherpad, dont nous avions parlé en semaine 17, a la fâcheuse tendance à empêcher le fonctionnement de MyPads. Ce comportement s’est avéré aléatoire en fonction de la base de données utilisée par l’instance et le temps que celle-ci mettait à répondre après le lancement d’etherpad. Il faut dire que les plugins etherpad sont lancés suite à un événement global et que nous ne pouvons à notre connaissance pas contrôler leur ordre de lancement. Pour passer outre, il a fallu initialiser MyPads plus tôt, ce qui a empêché ce dernier de se brancher sur le système de sessions utilisé d’etherpad. C’est pourquoi, afin de garantir un fonctionnement sans conflit, il a été nécessaire de passer d’un système d’authentification simple en local vers un système à jetons,  JSON Web Token, mais toujours au travers de la bibliothèque passportjs.

L’aboutissement

Cela fait un peu plus d’un an que le projet MyPads a été financé. Le développement, dont le début était prévu pour novembre, a été reculé à février de cette année et la charge de travail initialement prévue a été largement dépassée, en partie en raison d’une mésestimation du travail nécessaire pour créer un tel plugin pour Etherpad (ce type d’extension étant rare) et de bonus vis à vis du cahier des charges initial, ajoutés gracieusement par le prestataire. Ce dernier s’étant engagé, le dépassement est resté à sa charge et le plugin ne coûtera pas davantage que ce qui était prévu. Notez que Framasoft n’a de son côté pas souhaité appliquer des pénalités pour les retards constatés (MyPads, une fois le développement repris en février, devait être publié avant la fin du mois d’avril).

Quelques chiffres : MyPads, c’est aujourd’hui un peu plus de 13.000 lignes pour 10.000 lignes de code. Les deux tiers de ce total sont consacrés aux tests unitaires et fonctionnels du plugin. En tout, le logiciel aura vu passer un peu moins de 80.000 lignes – ajouts et suppressions – dont une faible partie provient des dépendances et le reste de refactorisations du code.

De nouvelles tâches sont prévues pour les mois à venir mais il ne devrait plus y avoir d’ajout avant la version stable et la mise en production sur les serveurs de Framasoft.

Testez

Merci à ceux qui ont déjà fait l’effort de tester MyPads. Pour cette toute dernière ligne droite, nous avons à nouveau besoin de vous. MyPads a été installé sur notre instance bêta. Plus cette version sera utilisée et plus les anomalies rencontrées seront rapportées, moins il y aura de mauvaises surprises pour le déploiement et l’utilisation par tous. Ceci est prévu dans à peine quelques semaines.

MyPads

MyPads : release candidate

After two weeks of beta 2, today we reach another step and we’ve never been so close to release: here we have MyPads RC – release candidate.

Last progress

Since our last point:

  • As planned, email sending management into MyPads with
    • as the administrator desires, email addresses checking before subscriber account activation;
    • password recovery procedure;
    • token generation with a time limited validity for both actions;
    • on the plugin administration,  SMTP server configuration.
  • The ability to opt for pad personal parameters. For example, in a restricted group, it is now possible to create a public pad  or a readonly one. In a password-protected group, you can add a pad with its own password etc. By default, behavior stays as before : pads inherit their properties from their parent group.
  • An optional description field for each group had been added.
  • Some bugs around public and private visibility have been fixed, in particular when pads have their own properties.
  • Some enhancements on translations.

Recently, a substantial rewriting of the authentication system has been made. One of the etherpad plugins, which we talk about into week 17 point, has a nasty tendency to prevent MyPads to work. This behavior has been randomly experienced, depending on the database used by the instance and the time it needs to setup after etherpad launch. Etherpad plugins are called through a global event and we can not, as far as we know, control their order. To disregard, we had to setup MyPads sooner, what prevents it to correctly plug with the session system used by etherpad. That’s why we decide, to secure functioning, to migrate from a simple local authentication to a token system, JSON Web Token, but still with the help of the passportjs library.

Completion

MyPads crowdfunding campaign has ended more than a year ago. Development, which has been initially expected on November, has been delayed to February and the predictable workload has been overstepped to a great extent. Reasons include a wrong initial estimation of needed work to create such a plugin (this kind of extension is rare into etherpad ecosystem) and some bonus features regarding the specifications; features added free of charge. The contractor has been engaged to complete the plugin, so the overload is on him and the plugin won’t cost more than expected. Note that Framasoft has not wanted to apply some fees for the delays (MyPads, once the development starts again in February, has been announced to be published before the end of April).

Some numbers : MyPads today represents a little more than 13,000 lines for 10,000 lines of code. Two thirds has been dedicated to unit and functional testing. In all, the plugin has regrouped a bit less than 80,000 lines – additions and deletions – including a little part from dependencies and mainly code refactorizations.

New features are planned next monthes but it won’t be any addition before stable version and deployment on the Framasoft and Framapad servers.

Tests

Thanks to all who have already took some time to test MyPads. For this last home straight, we need you, again. MyPads has been installed on our beta instance. More this version will be used and bugs will be reported, less we got bad surprises in a few weeks, when MyPads will be published and installed publicly.




MyPads : lancement de la seconde beta

Le dernier point concernant MyPads remonte au début du mois. Il était donc temps de donner des nouvelles. Au menu : seconde, et sans doute dernière, bêta mais aussi des avancées significatives.

MyPadsCes dernières semaines

La liste des tâches réalisées est la suivante :

  • Quitter un groupe de pads : dans le cadre des groupes sur invitation, la possibilité de quitter un groupe, pour un administrateur s’il n’est pas le seul administrateur ou pour tout autre utilisateur.
  • Les listes d’utilisateurs : chaque personne disposant d’un compte peut créer des listes d’utilisateurs, lesquelles regroupent, à partir de leurs identifiants, d’autres inscrits à l’instance MyPads. Cela est surtout utile lorsque vous créez un groupe et que vous voulez soit partager l’administration de ce groupe soit dans le cadre d’un groupe restreint, inviter des inscrits à celui-ci. Vous pouvez maintenant ajouter une liste complète d’inscrits au lieu de le faire personne après personne.
  • L’accès aux groupes et pads dont vous n’êtes pas utilisateur ni administrateur, avec ou sans compte :
    • Les groupes publics : l’adresse Web suffit.
    • Ceux protégés par mot de passe : l’adresse Web saisie, le mot de passe est demandé avant affichage des informations.
    • Les données visibles sont filtrées par rapport à un groupe restreint : il n’y a par exemple pas les informations sur les administrateurs du groupe de pads.
    • Pour faciliter le partage des liens, des boutons de partage sont disponibles un peu partout.
  • Le tri des listes de groupes et des listes de pads. Par défaut, ceux-ci sont rangés par ordre de création. Il est dorénavant possible d’opter pour un tri par nom, dans les deux sens.
  • Le module de configuration de MyPads
    • Avec un couple identifiant / mot de passe qui emploie celui de l’administration de l’instance Etherpad ;
    • Lequel permet la gestion des paramètres de MyPads : titre à afficher, taille des mots de passe, paramètres d’envoi de mail…
    • Mais aussi la gestion des utilisateurs : après une recherche par identifiant, il est possible pour les administrateurs de modifier un profil, de changer un mot de passe ou encore de supprimer un compte.
  • Et bien entendu les classiques correctifs et autres petites améliorations.

Fonctionnellement, avant la version stable, il ne reste plus qu’à terminer la gestion de l’envoi des mails par serveur SMTP et ce qui en découle : vérification, selon les souhaits de l’administrateur de l’instance, des adresses mail saisies à l’inscription et récupération de mot de passe pour les utilisateurs.

MyPads recherche testeurs

Maintenant que MyPads est quasiment terminé, il est important que nous disposions de vos retours et de personnes testant la solution afin que nous puissions envisager un passage en production.
Pour rappel, la dernière version de MyPads est mise en place à cette adresse. Attention, car il s’agit d’une adresse de démonstration et les données y sont régulièrement supprimées. Si possible, merci d’utiliser notre instance Gitlab pour effectuer vos retours, notamment les anomalies que vous pourriez rencontrer.

MyPads : beta2

Last point about MyPads development has been done at the beginning of the month. It’s time to give you some fresh news. Here you’ll find : the second, and probably the last, beta version as well as significant progress.

MyPads

Last weeks

Tasks which have been done :

  • Group leaving : in the context of restricted groups, the ability to quit a group, for a non-unique administrator or for any invited user.
  • Userlists : everyone who own an account can now create lists of users. They regroup, by their login, other MyPads node subscribers. This is mainly useful when you create a new group and want either sharing its administration or invite users to participate. You can now add a complete list of users instead of only adding them one by one.
  • Groups and pads access, even if you are not user or administrator, with or without an account :
    • Public groups : you only need the URL.
    • Password protected groups : once the Web address is reached, the password will be asked before displaying any useful information.
    • Visible data is then filtered : for example, for guests there are no details about administrators.
    • To make sharing easier, share buttons are available on many pages.
  • Groups and pads ordering. By default, they are ordered by creation. You can now choose a name order, in both directions.
  • MyPads configuration module
    • With user/password that match Etherpad node administrators ;
    • From where you can handle MyPads settings : title, password sizes, mail sending parameters…
    • And also users management : after a research by login, administrators can update a profile, change a password or remove an account.
  • And of course small fixes and improvements.

About features, before stable version, there are very few things left : finish the mail sending module and then what will be result from : email verification, according to the option checked or not by the admin, and password recovery for users.

MyPads need beta testers

Now that MyPads is almost done, it matters that we can have feedback and people who test the plugin before we deploy it. Please remember that the last MyPads version is available here. Be careful : it’s a demo and data is frequently trashed. If possible, thank you to use our Gitlab website to give us your feedback, particularly bugs you may encounter.




MyPads : point de la semaine 27

MyPads

Ce qui a été fait

Depuis le dernier point, voici les tâches qui ont été réalisées :

  • un module de gestion de favoris qui regroupe les groupes et pads marqués comme tels, permettent de les en retirer ou encore d’y accéder rapidement ;
  • la suppression de compte depuis le module de gestion du profil, laquelle entraine celle des groupes et pads pour lesquels l’utilisateur était le seul administrateur ;
  • le déplacement de tous les pads d’un groupe vers un autre depuis la page de détails de chaque groupe, utile avant de supprimer complètement un groupe existant ou pour en fusionner plusieurs ;
  • la prise en charge des permissions avec la différenciation entre :
    • des administrateurs globaux de MyPads, les mêmes que ceux de l’instance Etherpad, et lesquels ont droit de procéder à toute action, depuis l’API de MyPads ;
    • des utilisateurs, dont chaque action est vérifiée : un utilisateur peut modifier ou voir son compte mais pas celui des autres, modifier ses pads et groupes mais pas ceux dont il est seul invité, etc. ;
    • la suppression des actions non autorisées dans le client Web.
  • quelques corrections de bugs lors de la destruction de compte sous Etherpad, l’ajout de favori depuis la page de travail des pads ou encore un souci avec l’une des bases de données supportées par Etherpad, à savoir Dirty, du fait que celle-ci renvoie les éléments qui ont déjà été supprimés.

Le travail se poursuit. Il reste une dizaine de tâches à réaliser avant la version admissible (release candidate). Bien sûr, vous pouvez tester les dernières avancées sur la bêta en ligne. Pour rappel, ne travaillez pas sur cette version, les données y sont régulièrement écrasées et le prestataire ne fournit aucune garantie de service à cet endroit.

MyPads

MyPads : development point

What has been recently done

Since last news, here are achieved tasks :

  • a bookmark management module that bring together groups and pads, allowing to remove them from favorites or to quickly access to their details ;
  • account removal from the profile module; this action leads to deletion of groups and pads where the user was the unique administrator ;
  • group pads mass move to another group from the details page; useful before group removing or for merging several groups ;
  • permissions management with differences between:
    • MyPads global administrators, the same as Etherpad instance ones, who are authorized to do everything through the MyPads API ;
    • users for which every action is checked : a user can update or see his account but not another one, edit his groups and pads but not those he has just been invited to contribute, etc. ;
    • forbidden actions have been removed from the Web client.
  • a few fixes : a problem with account removal under Etherpad, bookmark adding from pads page, an issue with one of the databases supported by Etherpad, DirtyDb, because it returns already deleted elements « by design ».

Work is going on. There are still ten tasks to do before the release candidate. Of course, you can test last progress on the online beta version. Remember not to work with this version: data is frequently wiped out and the contractor doesn’t provide any service warranty from this place.




MyPads : point de la semaine 25

MyPadsTâches réalisées

Les avancées de cette semaine ne sont pas aussi importantes que prévu. Deux raisons à cela : un prestataire moins disponible et des tâches plus compliquées à réaliser qu’elles n’avaient été estimées. Voici donc ce qui a été fait :

  • La localisation des messages côté serveur a été faite. Il s’agit des messages renvoyés par l’API de MyPads, laquelle est utilisée par le client Web principal. Ceci était important notamment car certains messages, des erreurs avant tout, étaient affichés tels quels par le client Web et n’étaient pas traduits depuis l’anglais. Cette tâche a pris un peu de temps, car il a fallu faire le tour des fichiers pour la mettre en place puis traduire les messages vers le français.
  • La récupération de l’identifiant utilisateur et le choix d’une couleur pouvant être affichés par défaut dans les pads. C’est cette tâche, qui paraissait assez triviale, qui a été la plus chronophage. MyPads, en tant que plugin Etherpad, se sert du système d’événements renvoyés par Etherpad pour pouvoir interagir avec ce dernier. Modifier les paramètres de la session utilisateur était bel et bien possible, mais il n’y avait pas de moyen simple de connaître, dans le contexte renvoyé par Etherpad, quel était l’utilisateur actuel sous MyPads et de ce fait les informations à utiliser. Comme il n’était pas envisageable de modifier le cœur d’Etherpad pour renvoyer des données supplémentaires ni de modifier à la volée le code client d’Etherpad, il a fallu éprouver plusieurs pistes. Voilà comment cela se passe au final du point de vue utilisateur :
    • À l’inscription, vous pouvez d’ores et déjà opter pour une couleur par le biais de l’élément HTML5 dédié. Notez que ce choix est facultatif.
    • Par défaut, l’identifiant et la couleur, si elle a été sélectionnée, seront utilisés au sein des pads.
    • Dans votre profil, vous pouvez modifier votre couleur mais aussi demander à MyPads de ne pas utiliser vos données au sein des pads. Dans ce cas, MyPads n’interférera pas avec un usage classique d’Etherpad et il vous reviendra de spécifier votre nom et votre couleur au sein du pad.

Bien entendu, même si vous avez choisi d’employer par défaut vos données, vous pourrez toujours modifier, pour une session donnée, vos paramètres, par exemple si un invité a choisi la même couleur que vous.

Ces nouveautés sont disponibles sur la version en ligne. N’hésitez pas à tester et à nous donner vos impressions.

Pour la semaine 26

Sont prévus les deux éléments non réalisés la semaine dernière, à savoir le module de gestion des favoris ainsi que les pages publiques pour les groupes du même type ou ceux protégés par mot de passe. Également :

  • Lorsqu’un groupe est supprimé, les pads qui lui sont attachés le sont également. L’idée est de vous proposer, si vous le souhaitez, de déplacer les pads du groupe supprimé vers un autre groupe.
  • Vous laisser le choix de supprimer complètement votre compte. Si vous confirmez, tous les groupes et pads dont vous êtes le seul administrateur seront supprimés.
  • L’administration de MyPads
    • Réservée aux administrateurs de l’instance Etherpad.
    • Avec un module de gestion des utilisateurs.
    • Et un module de paramétrage de MyPads (taille des mots de passe, configuration pour l’envoi de mail etc).

MyPads

MyPads : week 25

Tasks done

Progress made this week haven’t been as important as expected. Two main reasons : less time for the contractor, and tasks more complicated than estimated. Then, what have been done:

  • Server-side messages localization, messages sent by the MyPads API, which is used by the Web client. This point was important especially because some messages, mainly errors, were displayed as received by the Web client and so were in English only. This task has taken some time because all server files had to inspected to setup this feature and then have been translated to French.
  • Login and user chosen color by default on MyPads pads. This work, that seems easy, has been time-consuming. MyPads, as an Etherpad plugin, uses hook system provided by Etherpad to be able to interact with it. Updating user session parameters is easily done but there is no simple way to know, within the context sent by Etherpad, who is the current user from MyPads and so which information to use. As it wasn’t conceivable to edit Etherpad core to get additional data neither live patching Etherpad client code, some ways have been explored. Here is how it works, from the user point of view :
    • When you subscribe, you can choose a color, thanks to the HTML 5 dedicated element. Please note this choice is optional.
    • By default, login and color, if it has been selected, are used for pad authorship.
    • Into your profile, you can update your color but also ask MyPads to not use your data into the pads. In that case, the plugin will be transparent and classical Etherpad feature will be here : it’s up to you to enter your name and choose your color from the pad interface.
    • Of course, even if you choose to use your data from MyPads, you can always overwrite it for a given session. Useful for example when another user has chosen the same color as you.

These new features are available on the online beta. Don’t hesitate to test and give us your feedback.

Week 26

Are planned the two remaining items from last week: bookmarks management module and public pages for public groups and password protected ones. Also:

  • When a group is removed, linked pads are too. The idea here is to offer you, if you wish, to move the pads to another existing group.
  • Let you the ability to completely remove your account. After confirmation, all groups and pads which you are the unique administrator will be removed.
  • MyPads administration
    • Restricted to Etherpad instance administrators.
    • With a user management module.
    • And a MyPads configuration module (password length, email sending parameters etc).