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



MyPads : point de la semaine 24

Ce n’est pas parce que l’on approche du but que nous allons oublier le point hebdomadaire. Le voici donc.

MyPadsSemaine 24 : ce qui a été fait

Avant la version bêta

  • Ergonomie
    • amélioration de la page de vue et édition du pad, en y ajoutant des liens vers les actions communes sur le pad;
    • possibilité d’ouvrir le pad dans un nouvel onglet;
    • désactivation des liens du menu non encore implémentés (modules des favoris et d’administration);
    • correction de l’affichage du statut de favori dans la vue du pad;
    • ajout des actions communes par le biais d’icônes directement sur la liste de groupes et dans la vue groupes pour les pads;
    • quelques aides en plus.
  • fonctionnel
    • traduction de l’interface de l’anglais au français;
    • langue par défaut en anglais, sauf si le navigateur de l’utilisateur est paramétré dans une autre langue et que la traduction existe;
    • ajout de la possibilité de changer de langue dans l’en-tête de MyPads;
    • choix de la langue à la création de compte et dans le profil utilisateur;
    • sauvegarde en base de données;
    • tests unitaires et fonctionnels associés.
  • Correction de l’ordre de démarrage du plugin au sein d’Etherpad et réutilisation de la session Express créée par Etherpad sous MyPads.

Une partie de ces améliorations a fait suite au lancement d’une pré-bêta en interne lundi et après les retours de membres de Framasoft.

MyPads bêta

Le serveur qui devait accueillir la bêta a été préparé pour la recevoir et un script a été écrit de manière à ce que les données soient régulièrement remises à plat. La version en ligne suit la branche de développement de MyPads et, outre le fait que cette version ne soit pas optimisée ni terminée,  il est possible d’y voir s’y glisser des anomalies plus ou moins gênantes.

L’ensemble des tâches encore à mener avant la version stable a été listée sur le Gitlab. Des bonus sont prévus dans les mois à venir et intégreront une branche develop lorsque la version stable sera publiée.

La bêta a été lancée jeudi par une annonce sur le Framablog ainsi qu’une actualité Ulule à destination des donateurs.

Durant ces quelques jours, un plantage du serveur d’applications a été éprouvé. Il était dû à une mauvaise protection au niveau de l’API dans le cadre de la vérification du mot de passe d’un utilisateur déjà authentifié. Si aucun mot de passe n’était donné, ce qui n’était pas possible sur le client Web sans modification directe du code HTML, la fonction de cryptographie lancée s’interrompait, entraînant avec elle MyPads et Etherpad. L’anomalie n’a pas été remontée par le testeur mais a pu être débusquée et corrigée. Des tests unitaires ont été écrits de manière à éviter que cela ne se reproduise dans de futures versions.

Au total, quelques centaines de personnes se sont connectées au serveur et ont testé le plugin. Nous avons eu assez peu de retours : quelques-uns en commentaires sur l’annonce, sur Framaspère ou encore directement sous Gitlab. Nous sommes conscients que la nécessité de créer un compte sous notre instance Gitlab peut être ressenti comme une contrainte mais il est important pour Framasoft d’héberger ses données. Github n’est utilisé que comme miroir et les anomalies n’y sont par conséquent pas activées. Notez cependant qu’il vous est possible de vous identifier avec un compte Github, si vous le souhaitez.

N’hésitez en tout cas pas à nous faire parvenir vos critiques, suggestions. Elles sont importantes afin de nous aider à finaliser un outil de bonne qualité. Et bien sûr, merci à celles et ceux qui ont pris le temps de tester.

Semaine 25 : ce qui doit être fait

Vous avez déjà en main la liste des éléments prévus pour ce mois mais plus précisément, ces prochains jours :

  • la localisation côté serveur des messages de l’API, et notamment les messages d’erreurs qui sont affichés directement sur le client Web;
  • le module de gestion des favoris : pads, groupes;
  • la récupération de l’identifiant utilisateur pour un usage par défaut au sein des pads créés, ainsi que la possibilité, offerte dans le profil, d’opter pour une couleur préférée;
  • les pages publiques : pour partager un groupe, un lien pourra être donné à vos contacts afin qu’ils puissent afficher directement au sein de MyPads les groues publics ou privés (dans ce cas, le mot de passe sera demandé avant toute interaction).

MyPads

MyPads : week 24

It’s not because beta version has been released that we will forget the weekly point. Here it is.

Week 24 : what have been done

Before the beta

  • User Interface
    • pad view and update module improvements with common actions on the pad;
    • a new button to open the pad edition in a new tab;
    • deactivation of menu items not yet implemented (bookmarks and admin);
    • display fix for pad view bookmarking status;
    • addition of common actions through icons from the group list view for groups and from the group details view for pads;
    • more help texts and icons.
  • Features
    • translation of the user interface from English to French;
    • English is the default language except if the user Web browser has been defined with another language and translation exists;
    • ability to update the language from MyPads header;
    • language selection at subscription and on the user profile;
    • database saving;
    • related unit and functional testing.
  • Fix the launch order of the plugin inside Etherpad; Express session share between Etherpad and MyPads.

Part of these improvements have been made after an intern pre-beta launch on Monday and Framasoft members feedbacks.

Beta

The Linux Server that powers beta version has been prepared to receive it and a script has been written for regular data wipe-out. Online demo version follows the master branch of MyPads. Besides this version is not yet optimized nor finished, you can suffer from temporary bugs or problems there.

Remaining tasks before stable version has been listed on our Gitlab. A few bonus are planned for the next months and will be slowly merged from the future develop branch to the stable one.

Beta has been launched Thursday with a Framablog news and an Ulule one, for donors.

During this couple of days, one crash has happened. Because of a bad protection of the public API, as part of password check of a already authenticated user. When no password is given, thing not possible with the Web client unless intentional modification of HTML code, the used crypto function stops, carrying MyPads and Etherpad. The bug has not been reported but we achieve to found and fix it. Some unit tests have been written in order to avoid a come back in future versions.

In total, hundreds of people go to the beta and test it. However, we’ve got few reactions : some comments at the bottom of the blog post, on Framaspere Diaspora node or on our Gitlab. We are aware that creating an account on our Gitlab instance to interact can feel like a constraint but it is important to Framasoft to host its own data. Github is only used as a mirror and so issues are not activated there. Please note you can login with your Github account if you want to.

In any case, do not hesitate to give us your criticisms, suggestions and feelings. It’s important to help us to offer you good quality software. And of course, thanks to all who take some time to test MyPads.

Week 25 : what will be done

You already have planned elements for this month but in details, these next days :

  • server side localization for API messages, especially error messages that are directly displayed in the Web client;
  • bookmarks module for pads and groups management;
  • user login usage for created pads, and the option, inside the user profile, to select a favorite color;
  • public pages : for group sharing, an URL may be sent to your contacts, allowing them to see public or private groups directly inside MyPads (in the last case, the password will be asked before any interaction).



La première démonstration de MyPads est disponible !

Framapad — un de nos services Libre, Éthique, Décentralisé et Solidaire les plus utilisés — permet de rédiger des documents collaborativement et en temps réel.

Basé sur le logiciel libre Etherpad, Framapad héberge aujourd’hui plus de 300 000 documents, grâce à vos dons qui nous permettent de maintenir le service.

Malheureusement, ce service souffre de deux manques importants :

  • l’impossibilité de regrouper les pads créés (par exemple par thèmes, ou tout simplement pour les retrouver facilement plus tard) ;
  • l’impossibilité de protéger ses pads (pour protéger des données confidentielles, des travaux scolaires, etc.).

Le crowdfunding de MyPads

Framasoft avait donc lancé un appel à financement participatif, afin de collecter une somme qui permettrait de développer un module comblant ces deux lacunes.
La somme fut récoltée en quelques semaines, et nous avions donc pu nous lancer à la recherche d’un prestataire pour effectuer ce développement.

Débuté en janvier 2015, le développement a pris un peu de retard, mais l’adage du libre ne dit-il pas : « Ça sortira quand ça sera prêt » ?

Eh bien, bonne nouvelle : une première démo est disponible !

Un exemple de groupe dans MyPads
Un exemple de groupe dans MyPads

Ceci est une première démonstration.

Alors attention, hein : dans « première démonstration », il y a « première » et « démonstration » !

« Première » car le plugin n’est pas terminé. Il devrait l’être pour l’anniversaire de la clôture de l’appel à participation, c’est-à-dire le 30 juillet prochain.
Cela signifie que beaucoup de choses vont encore évoluer dans les 50 prochains jours. Et surtout qu’il est encore loin d’être complet. Donc, ne vous étonnez pas si certaines choses ne fonctionnent pas comme vous vous y attendriez. Et inutile de nous rapporter que les couleurs ne vous plaisent pas : elles sont tout sauf définitives 😉

« Démonstration » car les comptes et les documents créés sur la démo seront régulièrement effacés. Il ne faut donc surtout pas vous en servir pour créer des documents dans un cadre professionnel, car vos contenus peuvent être effacés d’une heure sur l’autre.

Prendre le temps de bien faire

Alors, les esprits chagrins se plaindront sans doute du délai de développement d’un tel plugin. Cela s’explique principalement par le fait que le développement a réellement commencé au début de l’année 2015, et que le prestataire ne pouvait consacrer 100% de son temps à ce projet (ce qui était convenu et accepté par Framasoft).

Par ailleurs, le développement d’un tel plugin est loin d’être trivial. Plus de 60 000 lignes de codes auront été écrites lors de 200 commits.

Enfin, nous aurons fait le maximum pour vous tenir au courant de l’avancement du projet, avec plus de 20 billets blog, qui ont aujourd’hui pris un rythme hebdomadaire.

Bref, nous vous encourageons à tester le plugin, tout en gardant à l’esprit qu’il reste encore pas mal de travaux à effectuer d’ici fin juillet.

Mypads - Contenu
Exemple de contenu dans un pad protégé

D’ici là, vous pouvez aussi :

  • installer votre plugin sur votre instance d’etherpad (il faudra cloner le dépot et faire un npm install à la main, car MyPads ne sera poussé sur npmjs qu’une fois le développement considéré comme stable) ;
  • nous remonter vos remarques sur le dépôt du GitLab Framasoft (qui, rappelons le, est ouvert à tous).

 

> Tester le plugin MyPads <

 

 




MyPads : point de la semaine 23

img-mypads-ulule2Ce qui a été fait

Un certain nombre de tâches ont pu être travaillées en semaine 23, et notamment :

  • un premier jet du module de partage d’administration et d’invitation d’utilisateurs (en mode visibilité restreinte) pour les groupes
    • pour le moment, il est limité aux seuls inscrits et demande de saisir l’identifiant utilisateur ;
    • mais il sera rapidement possible de saisir une adresse mail en plus de l’identifiant et d’inviter des utilisateurs externes, y compris en mode restreint ;
    • il y est possible de révoquer les droits concédés à d’autres administrateurs ou aux utilisateurs.
  • le module d’affichage des pads avec
    • la création automatique du pad sous etherpad au premier affichage ;
    • sa suppression effective en cas d’effacement sous MyPads ;
    • le filtrage des accès en modes restreint ou privé ;
    • l’accès au pad sans restriction en mode public ;
    • la prise en charge du mot de passe, à saisir en cas de visibilité fixée à privée.
  • le partage, par le biais du lien direct etherpad, de l’accès aux pads publics ou privés (avec mot de passe). L’interface est pour le moment sommaire et évoluera vers une meilleure intégration ;
  • le mode archive des groupes, qui affiche pour le moment l’export HTML des pads qui en font partie ;
  • des corrections d’anomalies ;
  • les tests unitaires et fonctionnels des modules développés ;
  • enfin la correction du bug gênant décrit lors de la semaine 17, par un changement du moment où MyPads est configuré quand l’instance etherpad est lancée, ce qui ne permet plus à YAJSML de venir perturber son fonctionnement.

Ce qui est prévu pour cette nouvelle semaine

Pour la semaine 24, il reste un certain nombre de courtes tâches et de petites améliorations à faire. De plus, il est prévu de travailler sur :

  • un module de gestion des favoris par utilisateur : groupes et pads;
  • la mise en place de la gestion de la localisation au niveau du client Web (choisir sa langue pour l’interface) et la traduction vers le français;
  • une prise en charge correcte des permissions avec une véritable séparation entre utilisateurs et administrateurs de groupes et l’apparition du statut d’administrateurs du plugin MyPads.

img-mypads-ulule2

MyPads, week 23

What have been done

A little bunch of things have been worked this week, especially :

  • a first draft of the admin sharing and user invitation module (restricted visibility) for groups
    • at the moment, it only supports existing accounts and needs you to enter user login;
    • but it will soon evolve to also allow email addresses and external users invitation, including in restricted mode;
    • it’s possible into this module to dismiss permissions given to other administrators or users.
  • pad view module with
    • automatic creation of etherpad pad at the first display;
    • effective removal when you delete the pad from MyPads;
    • access filtering for restricted and private modes;
    • free access for public mode;
    • password handling, to be entered when visibility has been set up to private.
  • private, with password, and public pads sharing, through the etherpad direct URL. The user interface is for now basic and will evolve to a better integration;
  • archive mode for groups, that display the HTML export for linked pads;
  • a few bugs fixes;
  • unit and functional testing of worked modules;
  • finally, the resolution of the problem described during week 17, by means of a change when MyPads is configured, after the etherpad instance has been launched. This doesn’t allow YAJSML middleware to conflict with MyPads proper functioning anymore.

What to expect from this new week

About week 24, there are number of short tasks and little improvements to do. Moreover, work is planned on :

  • bookmarks management module per user : groups and pads;
  • setup of Web client localization handling (be able to select the user interface language) and translation to French;
  • a correct support for permissions with a true separation between users and admins of groups and the arrival of MyPads plugin administrators.