La thermodynamique peut-elle casser des briques ?

L’équipe Framabook est très fière de vous annoncer la sortie de son premier manuel scolaire : Thermodynamique de l’ingénieur. Ce manuel universitaire, à destination des étudiant-e-s comme de leurs enseignant-e-s, est signé Olivier Cleynen, et disponible sous la licence CC-BY-SA…

L’occasion d’une rencontre drôle et intéressante avec cet auteur qui a fait le pari du livre Libre !

couverture_framabook_THERMO600x834

Bon, Olivier, je serai honnête, on se demande comment tu as pu en arriver là. Tu n’es pas un poussin de l’année qui découvre le monde du Libre : si j’en crois ton ancien blog, dès ton premier billet en 2007 tu déclares ta flamme au logiciel libre, en établissant du reste un lien très net entre logiciel libre et société libre. Pourrais-tu te présenter succinctement et évoquer ta trajectoire de libriste ?

Ma trajectoire n’est en fait pas réellement exceptionnelle. Je suis ingénieur aéronautique de formation et j’ai découvert le logiciel libre et son univers pendant mes études. Il y a des gens pour qui ça « prend » plus que pour d’autres… en 2006 j’ai co-fondé puis dirigé à plein temps pendant deux ans une association à but non-lucratif de promotion du logiciel libre qui ressemblait un peu à Framasoft. J’ai essayé sans succès d’en vivre, puis, je suis devenu prof en école d’ingénieurs : c’est là que j’ai commencé ce livre. J’effectue maintenant une thèse de doctorat dans l’espoir de me faire une petite place dans l’enseignement supérieur.

Question No124 (mais, à la demande d’Olivier, la voici en 2e position) : pourrais-tu résumer la thermodynamique en un tweet (140 signes) ?

Bon, je tente l’expérience, mais j’ai droit à plusieurs essais, alors…

« Tiens, je me demande comment le frigo fait pour refroidir le pack de bières alors qu’il est déjà plus froid que dehors… »

« Comment ça, le moteur de voiture n’a que 30% d’efficacité ? On est obligés de rejeter 70% de la chaleur par le pot d’échappement ? »

« @JamesPrescottJoule Au fait, c’est quoi, chaud ? Une sorte de fluide bizarre invisible ? Est-ce qu’on peut fabriquer du chaud ? »

« @WilliamThomsonKelvin Et 40°C, c’est deux fois plus chaud que 20°C ? Et si oui, alors qu’est-ce qui est deux fois plus chaud que -10°C ? »

« @LudwigEduardBoltzmann Pourquoi ma tasse de thé chaud va toujours se refroidir toute seule, et jamais se réchauffer ? HEIN, POURQUOI ???? »

La réponse à chacun de ces tweets demande de comprendre ce que c’est que la chaleur, comment on la fabrique, comment on la détruit, comment on la transforme. C’est ce qu’on appelle thermodynamique. De là, les physiciens enchaînent sur tout un tas de questionnements : la notion d’échelle microscopique ou macroscopique, la notion d’état, d’équilibre, le sens des transformations, etc. Les ingénieurs (le camp dont je fais partie) cherchent plutôt à bidouiller la chaleur dans des machines, et se servent de la thermodynamique pour comprendre les moteurs et les rendre plus efficaces, ou plus puissants, ou plus réactifs, etc. Quoi qu’il en soit, c’est passionnant : on commence par étudier de petits ballons de gaz, et on finit par prédire la fin de l’univers ! Ah zut, la réponse fait plus de 140 caractères !

trop facile à comprendre après la lecture de la Thermodynamique de l'Ingénieur (CC-BY-SA Olivier Cleynen)
trop facile à comprendre après la lecture de la Thermodynamique de l’Ingénieur
(CC-BY-SA Olivier Cleynen)

Pourquoi avoir choisi de porter tout ton effort et pendant si longtemps (plusieurs années tout de même !) sur ce manuel de thermodynamique ? Les livres existants n’étaient pas suffisants ?

Il y deux faces à la réponse. D’une part, je trouve la plupart des livres français de thermodynamique terriblement tristes et ennuyeux. Je trouve dommage de se casser la tête à résoudre des équations qu’on comprend à peine pendant deux semestres, si c’est pour ressortir de la thermodynamique sans jamais avoir étudié le fonctionnement d’un turboréacteur. J’avais envie de faire un cours « pour futur-es ingénieur-es curieux-ses », et avec le temps le cours a pris la forme d’un livre.

Mais la plus grande motivation est que je n’ai rien trouvé de libre à me mettre sous la dent ! La thermodynamique de l’ingénieur est terminée depuis 150 ans et les technologies que l’on y étudie aujourd’hui ont toutes au moins 50 ans : un livre de thermo, c’est donc essentiellement un remix. C’est dur de voir que ces équations, ces raisonnements et ces schémas qui font partie du patrimoine scientifique et public au sens large, sont affublés d’une mention « reproduction interdite ». Dans certains livres, c’est même écrit à toutes les pages…

De ce point de vue, non, les livres existants n’étaient pas suffisants. Je trouve que ce n’est pas assez bien de pousser des étudiants à acheter un livre vendu quarante euros (un par matière…) qui leur défend solennellement d’en repiquer le contenu. C’est triste de voir un éditeur distribuer les JPG des figures aux seuls profs qui engendreront quarante ventes d’un livre. Et c’est frustrant, lorsqu’on débute un cours, de devoir tout ré-écrire et dessiner depuis zéro, du premier diagramme pression-volume jusqu’au dernier schéma de turbine.

J’ai construit le livre que j’avais envie de trouver quand j’ai commencé. Tu peux le copier, le reprendre, le ré-utiliser. Un schéma t’intéresse ? Tu télécharges le PDF, tu cliques sur la légende, et te voilà face au fichier source sur Wikimedia Commons, que tu peux modifier selon tes besoins. Tu préfères un format « polycopié » du chapitre 8 avec des grandes marges ? Tu pointes ton navigateur sur http://thermodynamique.ninja/ et tu imprimes. Tu veux reprendre une série d’équations en LaTeX sans les retaper, ou tu veux soumettre un patch pour corriger une erreur ? La même page web te pointe vers le dépôt git du projet. Tout ça se fait sans demander de permission, il suffit de respecter les termes de la licence Creative Commons : BY-SA pour le texte et la plupart des figures, et CC-0 pour les schémas les plus simples.

Dis-donc je l’ai parcouru ton ouvrage, d’accord il est parfaitement bien rangé dans des tiroirs avec un sommaire et des sous-parties aux petits oignons mais tout de même ça déborde de partout : histoire des sciences, biographies de quelques savants, une série de cours progressifs, des schémas et des croquis, des trucs pour aller plus loin… et surtout des exercices avec des cas de figure qui impliquent l’étudiant… brr ça fait un peu peur tout ça non ?

Alors, il ne faut pas avoir peur : c’est un gros livre, on n’est pas obligé de tout lire ! On s’y retrouve facilement, il est construit pour qu’on puisse aussi le survoler rapidement.

En ce qui concerne les exemples résolus et les exercices, j’admets que c’est parfois un peu riche, mais c’est le prix à payer pour qui veut étudier des cas concrets, car il faut plus de contexte. Six années d’enseignement en école d’ingénieurs ont fait le tri : les exercices qui « percutent » sont aussi ceux pour lesquels il faut un peu s’impliquer. Et puis je trouve juste plus cool d’avoir sous les yeux une photo de l’hélicoptère dont je calcule la consommation de carburant.

Les parties historiques (une par chapitre) sont, elles, parfaitement accessoires. Le but est de se construire une culture d’ingénieur/e et de scientifique : comprendre que pendant longtemps, on comprenait à peine ce que l’on faisait en thermodynamique, et voir aussi comment la technologie des moteurs a chamboulé le monde. Philippe Depondt, enseignant-chercheur en physique (à qui je voue une admiration sans fin pour avoir écrit le génial L’entropie et tout ça), a accepté d’écrire la moitié d’entre elles, et j’ai complété l’autre moitié. Peut-être est-ce que nous nous sommes laissé emporter ? Mais regrette-t-on d’apprendre, après avoir étudié un chapitre difficile, que la première personne à avoir montré que la chaleur n’a pas de poids a aussi été agent secret, architecte, instituteur et ministre de guerre philanthrope ? Ou qu’un geek thermodynamicien frustré s’est construit sa propre turbine à vapeur pour pouvoir ridiculiser toute la Royal Navy avec son bateau ?

packThermodyn

et maintenant (roulements de tambour) dis-nous pourquoi c’est devenu un framabook, pourquoi cet éditeur ? tu es grillé chez les éditeurs classiques ? Travailler avec des gens qui n’avaient jamais fait de thermodynamique, ça ne t’a pas posé problème ?

Je n’ai pas eu l’occasion de chercher d’autres éditeurs, mais dans la mesure où la publication sous licence libre a toujours fait partie intégrante du projet, j’imagine que je n’aurais pas eu beaucoup de succès. Je suis et soutiens la progression de Framasoft depuis longtemps, et je suis très honoré que le comité ait accepté de produire un Framabook pour étudiants ingénieurs.

Quant au processus d’édition, il n’y a pas que les connaissances en thermodynamique qui comptent. Le comité m’a encouragé pour trouver un confrère, Nicolas Horny, qui veuille bien relire le livre sous son aspect technique (qu’il en soit remercié…). Mais je compte surtout le travail incroyable de Mireille Bernex, qui est à l’origine de centaines d’améliorations de langage et de clarifications dans le livre, et de beaucoup d’autres contributeurs que je n’ai pas la place de citer ici. Enfin, après quinze mois d’édition, je ne suis toujours pas venu à bout de la patience de Christophe Masutti, qui coordonne le projet Framabook. Bref, le plus important est de partager le désir de produire un manuel de qualité, et de ce point de vue, je suis comblé.

On dit souvent que le Libre et l’éducation portent plusieurs valeurs communes. Pour toi, quel est l’intérêt pour les enseignants et les étudiants de disposer d’un ouvrage sous licence libre ?

L’avantage pratique du livre libre est bien sûr sa gratuité. L’étudiant/e et l’enseignant/e peuvent le télécharger à tout moment, sur n’importe quel équipement, et s’en servir, en repiquant/reprenant/remixant le contenu du livre, sans demander la permission à qui que ce soit ni rentrer dans l’illégalité.
Il me semble que cette gratuité est un point important. Dans l’enseignement, le véritable ajout de valeur économique se fait dans la transmission, la réappropriation, et la création du savoir et des connaissances : en classe, en amphithéâtre, pendant le travail de groupe ou le travail personnel. En revanche, il n’y a aucune valeur économique intrinsèque à l’accès à la connaissance : sinon, il suffirait de s’acheter des livres pour devenir ingénieur ! Je préfère donc que l’argent dans l’éducation, privée ou publique, soit consacré aux activités (payer cher les profs et l’environnement de travail) plutôt que l’accès à l’information (faire chuter le coût des livres et ouvrir l’accès aux bibliothèques).

L’utilisation de contenus sous licence libre est aussi, selon moi, une démarche intellectuelle plus claire et pérenne. Lorsqu’un/e prof ou étudiant/e reprend une image du site internet d’Airbus, par exemple, il y a toute une liste de restrictions associées à sa réutilisation : on ne peut s’en servir que pour dire du bien d’Airbus, on ne peut pas la modifier comme on le veut, les conditions de l’utilisation commerciale sont floues, et la permission peut être retirée à tout moment. La reprise de documents dans le cadre de la courte citation française, ou du fair use américain, ou des innombrables accords particuliers passés par l’un ou l’autre éditeur avec tel ou tel gouvernement, est un véritable casse-tête juridique et laisse beaucoup d’incertitudes. Je préfère dire : tiens, reprends mon beau schéma de centrale à vapeur pour en faire ce que tu veux : les termes de la licence CC-BY-SA sont clairs et elle est irrévocable. C’est un bon ingrédient pour cuisiner quelque chose qui, fondamentalement, n’est qu’un remix des connaissances humaines actuelles.

Un autre schéma qui devient évident une fois qu'on a lu le manuel… si, si ! (CC-BY-SA Olivier Cleynen) Un autre schéma qui devient évident une fois qu’on a lu le manuel… si, si !
(CC-BY-SA Olivier Cleynen)

Pour vendre beaucoup d’exemplaires, j’espère que tu feras comme certains profs d’université et que ton cours sera incompréhensible si tes étudiants n’achètent pas ton livre…

Ce serait sournois, n’est-ce pas ? Et pourtant, c’est une pratique courante dans les universités aux États-Unis : beaucoup de cours sont ancrés sur un livre particulier, que les étudiants doivent absolument avoir sous la main s’ils veulent réussir.

Avant de nous indigner, il faut comprendre le pourquoi du comment de la chose. Construire un cours universitaire, c’est un travail pharaonique. Structurer un corps de connaissances, le sectionner en morceaux de 120 minutes digestes, ré-exprimer des notions complexes, illustrer tout cela, et construire des exercices intéressants : on peut y consacrer un temps infini, que les profs n’ont pas. Ancrer un cours sur un manuel en particulier, et donc sur une « recette » déjà éprouvée, permet à un/e prof de se consacrer au véritable apport de valeur qu’il/elle doit générer : rendre un cours passionnant, créer un environnement de travail où les étudiants vont se prendre au jeu et s’épanouir. On ne peut tout de même pas demander à chaque prof de ré-écrire toute la thermodynamique !

En enjoignant tous les étudiants à travailler sur un seul livre, le problème de l’accès à l’information est réglé dès le premier cours du semestre, et le reste du temps est consacré à l’exploration, l’appropriation des connaissances. L’alternative classique à la française, le tableau à craie et le maigre polycopié, n’a rien de mirobolant. Qui aurait cru qu’en 2015, l’apprentissage de la thermodynamique puisse encore se faire en recopiant au stylo sur du papier l’information qu’un prof trace avec un caillou blanc poussiéreux sur un mur noir devant 200 personnes ?
En parallèle, les revenus importants qui découlent de ces ventes poussent les éditeurs et les auteurs à produire des manuels de très haute qualité. Nous parlons de pavés de 500 ou 1000 pages, magnifiquement illustrés, soigneusement structurés, hyper accessibles, bref, de vrais outils de travail et de découverte qui donnent immédiatement envie de s’y plonger. On se prend vite de passion pour n’importe quelle discipline avec cela !

Le revers de la médaille est le prix supporté par les étudiants, en termes économiques et de libertés.

L’argent, d’abord : à 200 dollars le livre, l’accès à l’information indispensable au suivi d’un cours devient un obstacle très important à franchir, quel que soit le mode de financement (état, bourses, fonds propres ou emprunts).

En termes de libertés, le coût est plus subtil. Les éditeurs et distributeurs ont tout intérêt à restreindre le marché du livre d’occasion, et font mettre à jour les livres à un rythme effréné ; à chaque fois, la numérotation et l’énoncé de nombreux exercices est modifié (ce qui décourage l’utilisation d’anciennes éditions en cours). Les livres sont couramment proposés en location, sous forme papier (par Amazon notamment) mais aussi sous forme numérique. Voilà des livres dans le nuage, qui ne marchent que lorsqu’on est connecté sur le campus, ou bien seulement pendant un semestre. Certains livres en ligne sont financés avec de la publicité, et on peut imaginer que l’ensemble des données personnelles recueillies à propos des lecteurs est exploité. On retrouve les éditeurs dans les tribunaux et au Congrès, où ils tentent de faire interdire la revente aux USA des livres qu’ils commercialisent au quart du prix en Inde. Bref, on retrouve là l’ensemble des problèmes éthiques et sociétaux associés à un système de distribution fermé, et qui s’immisce dans les ordinateurs et les tablettes des étudiants.

Vu d’ici le problème peut sembler être très étatsunien, mais je suis convaincu que la recherche d’une meilleure qualité d’enseignement nous y confrontera tous tôt ou tard (en fait, à l’instant même où nous abandonnerons cette cochonnerie de tableau à craie…). Je pense que la publication de livres universitaires libres peut être une partie de la réponse. Un programme d’études où tu peux télécharger, remixer, imprimer librement tous les livres ? — Vous pensez, c’est comme construire toute une pile de logiciels libres qui fonctionne sur n’importe quel ordinateur, ou bien écrire toute une encyclopédie sous licence libre : c’est totalement impossible…

Se procurer l’ouvrage




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.



MyPads : point de la semaine 22

img-mypads-ulule2Travaux effectués

La semaine dernière a été mise à profit pour :

  • la réalisation de la page de détails des groupes, laquelle comprend :
    • toutes les propriétés du groupes affichées ;
    • la liste des administrateurs et utilisateurs du groupe ;
    • la liste des pads attachés à ce groupe.
  • une gestion sommaire des pads depuis cette page, avec :
    • la création d’un nouveau pad, en saisissant son intitulé ;
    • sa modification, en fait son renommage ;
    • l’effacement de celui-ci ;
    • enfin, l’ajout de pad en favori.
  • les tests fonctionnels liés à cette page.

La gestion des pads n’est pas pleinement terminée puisque le client ne propose pas encore d’écraser les options de visibilité du groupe, c’est à dire que par exemple si le groupe est défini comme public, tous les pads attachés le seront également. Ce comportement sera rapidement amélioré.

Pour la semaine 23

Quelques tâches importantes devraient être effectuées cette semaine avec en priorité l’invitation d’utilisateurs déjà inscrits, le partage d’administration du groupe. Selon le temps disponible, une page regroupant tous les favoris sera également créée ou encore sera effectuée la traduction de MyPads vers le français.

MyPads, week 22

img-mypads-ulule2

Achieved tasks

Last week has been used for :

  • the group’s details module, that includes
    • the display of all group properties;
    • group administrators and users lists;
    • list of linked pads.
  • a basic pads management from this page, with
    • new pad creation, by entering its title;
    • its edition, actually its renaming;
    • the deletion of the pad;
    • finally, pad bookmarking.
  • functional testing of this page.

Pads management is not entirely finished because the Web client does not offer yet to overwrite group visibility options at the level of the pad. In other words, for example, if a group is defined as public, all linked pads will inherit. This behavior will be improved soon.

About the week 23

Some important tasks should be done this week. As a priority, user invitation, administration sharing of the group. In accordance to available time left, a webpage grouping all bookmarked elements will be created. MyPads translation to French may be done too.




MyPads point de la semaine 21

img-mypads-ulule2Tâches réalisées

Le prestataire a été à l’arrêt pour raison médicale la semaine 20 ainsi qu’une partie de la semaine 21. Les avancées n’ont donc couru que sur quelques journées et se sont focalisées sur la page de liste des groupes avec :

  • une séparation claire entre les groupes mis en favoris, ceux en lecture seule et les autres ;
  • un léger remodelage de la vision des éléments principaux pour chaque groupe directement sur cette page ;
  • une recherche par mot clé, insensible à la casse, qui parcourt les noms et labels associés à chaque groupe ;
  • des filtres pré-définis : les groupes dont je suis administrateur, ceux dont je suis simple utilisateur, les groupes restreints, privés ou publics ;
  • des filtres par labels (tags) : la liste de tous les labels employés pour les groupes affichés est disponible dans la barre de filtres et il est possible d’en sélectionner un ou plusieurs ;
  • chaque filtre est cumulable : il est par exemple possible de rechercher les groupes dont le mot « informatique » apparaît dans le titre, qui ont pour labels « astuce » et « programmation » et qui sont publics ;
  • le test fonctionnel de cette page.

Cette semaine

La gestion des pads sur le client Web va enfin démarrer et devrait pouvoir être terminée dès cette semaine. Il est également prévu la prise en charge des invitations pour les groupes et pads restreints ainsi que le partage d’administration avec d’autres utilisateurs.

 

MyPads, week 21

img-mypads-ulule2Tasks done

The contractor has paused the development for medical reason during week 20 and for part of week 21. So progress has been focused around group list page with :

  • a clear separation between bookmarked groups, archived ones and others;
  • a light redesign of visible elements per group into this page;
  • search by keyword, case-insensitive, processing group names and tags;
  • ready-made filters : groups I am administrator, those I am just user, restricted, private or public groups;
  • tags filters : a list of all tags used for displayed groups is available into the filters sidebar and it’s possible to select one or more;
  • each filter is cumulative : for example you can search for groups with the word « computer », which have tags « tooltip » and « development » and are public;
  • functional testing of this module.

This week

Pads management, into the Web client, will finally begin and should be done this week. It’s also planned to start user invitation for groups and pads and administration sharing with other.




MyPads point de la semaine 19

img-mypads-ulule2Travaux effectués

Comme prévu, le travail a été poursuivi du côté des groupes de pads. Plus en détail :

  • la modification des groupes existants, avec la conservation du mot de passe en mode privé (pas besoin de le saisir à nouveau) ;
  • la suppression des groupes ;
  • la gestion d’étiquettes par groupe : créées et supprimées à la volée pendant la modification ou la création de groupe ;
  • un début de gestion des favoris par utilisateur avec le marquage des groupes souhaités ;
  • les tests fonctionnels allant de pair avec ces développements.

Suite

Il y aura peu d’avancées cette semaine, le programmeur étant indisponible quelques jours pour des raisons médicales. Le prochain point concernera donc la semaine 21 avec au programme la recherche par filtres, étiquettes et texte brut sur les groupes et, enfin, le début de la gestion des pads privés.

MyPads, week 19

img-mypads-ulule2

Work done

As expected, tasks have covered groups of pads management. In detail :

  • edition of existing groups, with password keeping where in private visibility (no need to fill it again);
  • group removal;
  • tags management per group : created on the fly and removed during group creation or edition;
  • beginning of bookmarks management per user with group marking;
  • functional testing around these developments.

Suite

There won’t be much progress this week because the developer is absent for a few days for medical reason. Next point will be done week 21. We expect search by filters, tags and plain text over the groups. Also, finally, private pads management start.




Framabee, le (méta-)moteur qui va vous butiner le web !

Comme nous le disions dans un article précurseur de notre projet de Degooglisation d’Internet : « nous n’avons pas peur, nous ne sommes pas résignés, et nous avons nous aussi une vision à long terme pour changer le monde. »

Libérer votre porte d’entrée au Web.

Parmi les plus importants outils qu’il faut libérer au plus vite : les moteurs de recherche. La dépendance du Web envers Google, fait de ce dernier un acteur monopolistique tout-puissant dont le moindre frémissement des algorithmes fait pâlir d’effroi les webmestres les plus endurcis, et peut faire perdre beaucoup d’argent à plus d’un acteur économique. L’autre aspect du moteur de la Firme réside dans la gigantesque base de données qu’elle contribue à alimenter, avec le consentement plus ou moins conscient des internautes eux-mêmes, en enregistrant nos recherches… c’est à dire aussi nos envies, nos souhaits, nos rêves.

Devrions-nous pour autant réinventer la roue ? Nul besoin de dénigrer le moteur de Google qui, qu’on le veuille ou non, constitue un outil formidablement efficace pour effectuer des recherches sur Internet. Si de surcroît on combine ces recherches avec celles d’autres moteurs, moins puissants mais plus spécialisés, le résultat s’avère apporter une plus-value objective.

Il n’est plus guère nécessaire aujourd’hui de vous rappeler quelle importance a la sécurité des données. Tel est pourtant bien le cœur du problème et d’autres que nous l’ont compris depuis longtemps. Ils proposent des solutions très confortables, certaines encore à l’état de projet. Ils mutualisent les puissances des moteurs de recherches dont celui de Google (on les appelle des métamoteurs) tout en garantissant la sécurité de nos identités, ou bien encore en passant par d’autres protocoles comme le P2P :

Et Framasoft envoie : Framabee !

Framabee logoLe modèle de Dégooglisation d’Internet que nous proposons depuis octobre 2014 ne pouvait pas faire l’économie d’un moteur de recherche digne de ce nom. Nous avons donc choisi de lancer un métamoteur de recherche à la « sauce » Framasoft. Or, comme vous le savez, nos intentions ne se limitent pas à mettre en place des services.

Nous offrons un métamoteur de recherche aux visiteurs, au même titre que les autres services que nous proposons ou allons proposer, grâce à vos dons, dans le panier de services de notre projet Dégooglisons Internet. À terme, l’ensemble vise à faire la démonstration des alternatives aux services privateurs, de manière libre, éthique, décentralisée et solidaire.

Libre

Nous avons choisi d’utiliser Searx parce qu’avant tout, il s’agit d’un logiciel libre. Ensuite, pour son développement actif et, bien entendu, parce que les résultats retournés sont tout aussi pertinents, voire plus que ceux des moteurs de recherche classiques (bien entendu, puisqu’il vous propose un mix de tous les résultats).

Seeks est un vrai moteur de recherche qui va indexer le web et les différents nœuds communiquent en peer-to-peer. C’est quand même mieux, non ? Eh bien, il a fallu faire un choix, et si nous pouvons installer et customiser Searx (qui est écrit en Python), modifier Seeks qui, lui, est en C++… disons que la tâche est plus ardue. Framasoft n’est pas une association de développeurs (loin s’en faut) et nos bénévoles sont déjà bien surchargés, sans leur demander d’apprendre un nouveau langage. 😛

De plus Seeks n’a plus l’air en développement actif (le dernier commit date de plus de 6 mois), alors que son site indique qu’il s’agit d’une early release, c’est à dire un logiciel pas forcément tout à fait au point.

Éthique

Comme nous l’annonçons dans notre charte : nous ne vous suivons pas, nous ne vous traquons pas, et nous n’avons que faire de vos données personnelles, si ce n’est de vous aider à les protéger !

Décentralisé

Chacun est libre d’installer sa propre instance de Searx sur son propre serveur : vous ne dépendez nullement de Framasoft pour utiliser Searx. Vous pouvez même choisir votre instance préférée parmi toutes celles déjà ouvertes au public. 🙂

Solidaire

Nous voulons aussi montrer qu’il est possible d’installer un métamoteur sur son propre serveur, pour le compte de votre asso, de vos voisins, de votre famille… La facilité (relative) de son installation vous sera très prochainement expliquée sur Framacloud.

Les capacités de Searx :

  • différentes catégories de recherche ;
  • export des recherches : en json, pour en faire ce que vous voulez, en csv, pour l’utiliser dans un tableur et même sous forme de flux RSS pour surveiller les résultats de votre recherche ;
  • configuration : choisir un autre thème, utiliser une autre catégorie de recherche par défaut, (dés)activer des moteurs de recherche… Searx est configurable à loisir ! (les préférences sont enregistrées dans un cookie) ;
  • réponses rapides : par l’usage de l’API de Duckduckgo, vous aurez des encarts, des réponses rapides de ce moteur ;
  • intégration à votre navigateur : utilisez Searx directement depuis la barre de recherche de votre navigateur préféré.

framabee ajout

Et Searx n’est pas Google…

Jouons-la franc-jeu : tester Framabee, ce n’est pas nécessairement l’adopter !

En effet, vous pourriez trouver que les résultats de Framabee sont moins pertinents que ceux de Google (mais plus que ceux de Bing!, quand même 😛 ). Cela est dû à un phénomène très simple : la « bulle de filtre ». Ainsi, comme Google sait beaucoup sur vous (votre géolocalisation, votre âge, votre sexe, vos précédentes recherches, qui sont vos amis, etc), il peut vous proposer des résultats adaptés à votre profil. L’expert en sécurité informatique Bruce Schneier vient d’ailleurs de publier un ouvrage fort intéressant intitulé « Data and Goliath » qui traite largement de ce sujet. Vous pouvez aussi en apprendre plus sur le sujet en regardant la conférence TED donnée par Eli Pariser.

Autrement dit : Google vous enferme dans une « bulle » et traite vos recherches en fonction de ce qu’il pense que vous cherchez. Cela pose d’énormes problèmes culturels et éthiques.

  • Comment découvrir de nouvelles choses si mon moteur m’enferme dans des territoires connus ?
  • Un logiciel peut-il décider ce qui est bon pour un être humain, d’autant plus si on n’a pas la « recette » de ce logiciel ?
  • Comment s’assurer que le filtre de Google n’agit pas comme une forme de censure ?
  • Qui décide de ce qui doit apparaître ou pas dans les résultats, et comment s’assurer que quelqu’un n’a pas payé Google pour « remonter » un résultat ?
  • etc.

Or, Framabee ne conserve — volontairement, c’est une fonctionnalité, pas un bug ! — aucun historique de vos recherches. Par conséquent, vous n’êtes dans aucune « bulle », sauf éventuellement celle de la langue des résultats, et encore cela peut se désactiver. Mais la contrepartie de cette liberté, c’est que vous pouvez perdre en confort (c’est à dire des résultats adaptés à ce que la machine pense que vous cherchez).

Par ailleurs, Framabee ne résout pas le problème de l’index des moteurs de recherche. Comme nous l’avons dit plus haut, Framabee est un méta-moteur, c’est-à-dire qu’il interroge (de façon anonyme) différents moteurs, et récupère puis vous affiche les résultats qui lui sont transmis. Cela pose donc la question de la taille des bases de données (ou « index ») des moteurs. Le site worldwidewebsize.com estime la « taille » du web indexé par Google (et donc du web visible par le moteur googlebot) à 45 milliards de pages web. Avoir un moteur capable d’indexer autant de pages, et une infrastructure en mesure d’exploiter cette base de données colossale de façon efficace coûte une fortune (plusieurs dizaines de millions d’euros au bas mot). Il est donc totalement impossible à Framasoft, association loi 1901, de proposer un moteur « 100% indépendant ». Wikipédia nous apprend d’ailleurs qu’il ne reste que très peu de « vrais » moteurs de recherche.

La solution à ce problème viendra — espérons-le — peut-être de logiciels libres en pair-à-pair comme Yacy. Mais les ressources de Yacy (communauté de quelques bénévoles) sont sans commune mesure avec celles de Google (55 000 employés et 66 milliards de dollars de chiffres d’affaires).

Mais Google est mon ami… non ? (non).

Ah ! Ces amis qui sous prétexte de t’aider à retrouver tes clés s’incrustent chez toi, fouillent dans ta garde-robe, tapent dans ton frigo et en profitent pour dépiauter ton courrier…

Framabee permet de virer du moteur de Google toutes les cochoncetés qui y ont été mises… par Google ! Et ce, tout en invitant d’autres moteurs de recherche à affiner les résultats. Pour reprendre l’analogie, c’est dire à notre pique-assiette : « tu ne rentreras chez moi qu’à mes conditions, avec respect… et accompagné d’autres potes. »

Framabee (ou votre propre instance de Searx en suivant notre tutoriel d’installation) est un outil de plus pour vous aider à reprendre les clés… de vos Internets. À vous de l’utiliser (et de le faire connaître). Rendez-vous dès maintenant sur :

  • Framabee.org, l’abeille qui vous butine le web ;
  • Trouvons.org, la version sérieuse pour le boulot ;
  • et si vous avez un doute, vous n’avez qu’à demander à Tonton Roger 😉

Enfin, si vous souhaitez (comme nous : promis ça marche très bien !) utiliser Framabee comme moteur de recherche, il vous suffit, lorsque vous êtes sur la page d’accueil du moteur, de cliquer sur l’icône de préférences et de choisir « Ajouter Searx à votre moteur de recherche », puis de l’ajouter comme moteur par défaut.

Vous pouvez aussi suivre les instructions de l’animation ci-dessous.

PS : toute la FramaTeam tient à remercier Asciimoo et toute l’équipe de contribution de Searx pour leur boulot, Framasky pour avoir mené à bien le projet… Et surtout nos donateurs et donatrices qui, par leur soutien, nous donnent les moyens de continuer à Dégoogliser Internet. Voici une nouvelle étape de franchie grâce à vos dons.

framabee




MyPads point de la semaine 18

Nouvelle semaine, nouveau point hebdomadaire. Avec quelques jours de retard puisque celui-ci aurait du paraitre jeudi dernier.

img-mypads-ulule2Les tâches réalisées

La semaine dernière, nous avons abondamment parlé d’une anomalie gênante autour d’Etherpad, de yajsml et de MyPads. Une solution de contournement a été trouvée mais devra être confirmée : pour réinstaller le plugin, il semblerait qu’après l’avoir désinstallé, la suppression forcée du cache NPM (se situant en général dans un répertoire caché, /home/user/.npm) permette de ne plus éprouver le problème. Nous verrons une fois MyPads publié sur NPM, et non installé en local, si ce contournement deviendra inutile et mettrons en œuvre ce qu’il faudra pour améliorer la situation si ce n’est pas le cas.

En dehors de cela, cette semaine a été consacrée essentiellement au module de gestion des groupes avec l’affichage de la liste des groupes, leur création. À propos de la notion, centrale, de groupe dans MyPads :

  • chaque utilisateur, authentifié, peut créer un nombre illimité de groupes;
  • ceux-ci contiennent chacun un nombre illimité de pads;
  • chaque groupe dispose d’un identifiant unique en base de données et d’un label;
  • au niveau du groupe, il est demandé de définir une visibilité pour les pads qui seront contenus
    • restreinte : uniquement pour les personnes explicitement invitées, lesquelles devront posséder ou créer un compte sur l’instance MyPads;
    • privée : accès restreint à l’utilisation d’un mot de passe et dans ce cas, un compte n’est pas nécessaire;
    • publique : les pads contenus sont accessibles par leur adresse Web, comme c’est le cas aujourd’hui sans MyPads.
  • cette visibilité est appliquée par défaut mais pourra être écrasée individuellement pour chaque pad contenu;
  • un groupe pourra être mis en lecture seule, pour consultation uniquement;
  • chaque groupe pourra voir son administration partagée avec d’autres utilisateurs, qui pourront alors en modifier les propriétés et y créer des pads;
  • en plus de ce qui était prévu initialement
    • chaque utilisateur pourra mettre en favori un ou plusieurs groupes auxquels il participe;
    • il sera possible d’associer des étiquettes (tags) pour chaque groupe.

Semaine 19

Le travail sur les groupes va être poursuivi. En théorie, nous devrions obtenir en fin de semaine :

  • la suppression des groupes;
  • les étiquettes, favoris;
  • les filtres et la recherche dans la liste de groupes;
  • les tests fonctionnels qui vont avec le module groupes.

Lorsque la gestion des groupes sera terminée, celle des pads arrivera rapidement, puisque cette dernière sera similaire à celle des groupes, et même simplifiée par rapport à elle.
Rendez-vous en fin de semaine pour le prochain point.

MyPads, week 18

New week, new point with a delay of couple of days : this news should have been published last Thursday

img-mypads-ulule2

Tasks done

Last time, we’ve copiously talked about an annoying bug around Etherpad, yajsml and MyPads. A workaround has been found but must be confirmed : to install the plugin again, it seems that, after uninstalling it, a forced removal of NPM cache (which resides into a hidden directory, like  /home/user/.npm) helps to not suffer from the problem. We’ll check after MyPads publication under NPM public repository if this workaround becomes useless. We’ll work to improve the situation otherwise.

Apart from this bug, the week has been mostly dedicated to group management module : list display, creation. About the groups main concept in MyPads :

  • every user, authenticated, can create an unlimited number of groups;
  • those one can contain one or more pads;
  • each group has a database unique identifier and a name;
  • for each group, you’ll have to define a visibility level for linked pads
    • restricted : only invited users can view and edit pads, people who need a MyPads account;
    • private : the access is protected by a password, in this case, the account isn’t mandatory;
    • public : pads are accessible through their Web address, like in classical Etherpad.
  • this visibility property is applied by default to all attached pads but can be overwritten for each pad;
  • a group can be set up on read-only mode;
  • each group can be shared with other users, then they will be able to edit its properties and create new pads into it;
  • bonus elements
    • each user can bookmark one or more groups;
    • tags can be assigned to each group.

Week 19

Work in groups management will continue. In theory, we should get, at the end of the week :

  • group removal;
  • tags and bookmarks implementation;
  • research and filters from the group list;
  • functional testing of the groups module.

When the groups management will be finished, pads management will be out quickly, because it will be similar, and even simplified.
See you at the end of this week for the next point.




MyPads point de la semaine 17

Comme annoncé la semaine dernière, c’est désormais un point hebdomadaire qui émaillera le travail autour de MyPads. Cette semaine n’aura pas été de tout repos et les avancées visibles sont malheureusement peu nombreuses. Explications.


img-mypads-ulule2

Les travaux

La mise en place des tests fonctionnels client, simulant une navigation réelle, a occupé les premiers jours de développement. Ensuite MyPads a subi quelques modifications pour fonctionner avec la version 4 d’Express, le cadre de développement sur lequel repose Etherpad et donc MyPads. Cette migration a été initiée par le tout premier contributeur externe au plugin, et a été rendue nécessaire par la migration d’Etherpad une semaine plus tôt.

Cette migration a été l’occasion de tester à nouveau la compatibilité de MyPads avec Eherpad. Cela peut sembler étonnant, mais MyPads est développé de manière autonome vis à vis d’Etherpad et est régulièrement testé en tant que plugin Etherpad, pour les raisons suivantes :

  • accélérer le développement et éviter de devoir relancer Etherpad voire réinstaller le plugin à chaque modification;
  • permettre les tests unitaires et fonctionnels serveur, très difficile sinon à partir d’un plugin Etherpad, isoler une base de tests du reste de l’instance;
  • conserver une forme d’indépendance vis à vis du cœur d’Etherpad : afin de ne pas nécessiter des modifications d’Etherpad lui-même et de limiter les régressions en cas de changements internes de ce dernier.

Malheureusement le fonctionnement de MyPads s’est révélé erratique : parfois correct, parfois non. Pour les techniciens, seules les méthodes GET et HEAD sont autorisées et toute autre méthode HTTP est refusée. Le problème, nouveau, est intimement lié au logiciel intermédiaire (middleware) yajsml, lequel est employé par Etherpad afin d’optimiser les requêtes des fichiers dits statiques (scripts, images, styles etc). En théorie, les requêtes prises en charge par MyPads ne devraient pas être impactées par ce logiciel intermédiaire, mais pour une raison mal comprise, elles le sont parfois.

Le problème, c’est que MyPads fonctionne autour d’une interface de programmation standard, une API HTTP REST, sur laquelle se connecte le client Web, et qui permettra à d’autres clients ou à des outils tiers de voir le jour. La résolution du soucis n’est pas aisée : l’anomalie intervient de manière aléatoire. Peu de plugins sont touchés car la plupart ne définissent pas leurs propres routes HTTP. Même si yajsml est modifié pour résoudre le soucis, il faudra que la fondation Etherpad accepte le patch et l’intègre avant de pouvoir retrouver une fonctionnement correct de MyPads. Or, il semble que yajsml sera bientôt remplacé par une technologie plus standard.

D’autres résolutions ont été envisagées, du fait de la situation de yajsml, et entre autres :

  1. Substituer, comme certains plugins le font,  l’API HTTP REST par une API basée sur socket.io, la technologie employée par Etherpad pour la collaboration en temps réel et qui repose en premier lieu sur le standard WebSocket. Cette voie a été expérimentée cette semaine mais représente une charge considérable de travail et la réécriture de nombreux modules. De plus, il ne s’agit pas d’un remplacement propre : MyPads y perd une méthode de communication plus standard ainsi que son système d’authentification, lequel avait été choisi pour permettre à terme une connexion depuis des comptes externes ou encore un annuaire LDAP, OpenID etc
  2. Faire de MyPads une application indépendante, de fait non plus un plugin, qui gèrerait les accès des utilisateurs aux pads en fonction des groupes définis. Le problème de cette solution est de complexifier l’installation de MyPads et de risquer des incompatibilités avec certains autres plugins. Aussi, nous sortirions de fait du cadre du cahier des charges initial.

Il a été décidé que la dernière piste ne serait à employer qu’en cas de dernier recours et c’est la migration vers socket.io qui a été d’abord privilégiée. Néanmoins, à la vue du travail nécessaire et surtout des pertes fonctionnelles que cela risque d’amener, cette solution ne sera pas poursuivie.

La semaine prochaine

Le travail va reprendre sur la version HTTP REST standard qui a été développée jusqu’ici. Il est prévu :

  • qu’étant donné que la suppression du yajsml n’arrivera qu’à un terme inconnu, il faudra dépister l’anomalie et la résoudre, ou au moins proposer un contournement simple;
  • de poursuivre le développement, moins actif que prévu cette semaine, avec notamment
    • le passage d’une authentification en propre classique vers JSON Web Token, dont le travail a commencé cette semaine avec le test de socket.io, de manière à renforcer la sécurité des échanges de données chiffrées entre serveur et client;
    • les groupes et pads, évidemment.

Rendez-vous jeudi prochain pour le point de la semaine 18.

MyPads week 17

As announced last week, we now give some news about MyPads development weekly. Last couple of days haven’t been picnic and few enhancements are visible. Explanations below.

img-mypads-ulule2

Work

Frontend functional testing setup, aiming to simulate real navigation, has filled the first days. Then MyPads has been updated to work with Express version 4. Express is the framework which powers Etherpad and so MyPads. This migration has been introduced by the very first MyPads external contributor, and was necessary because of the Etherpad migration a week earlier.

These modifications were a good moment to test MyPads’compatibility towards Eherpad. That can be surprising but MyPads has been programmed independently from Etherpad and is regularly tested as an Etherpad plugin, here’s why :

  • speeding up the development and avoiding Etherpad reboot or plugin re-installation at each update;
  • allowing unit and functional server testing, quite hard from an Etherpad plugin, and isolate a test database from the whole node;
  • retaining a distance regarding Etherpad core in order to avoid need of Etherpad updates and limit regressions in case of internal modifications of it.

Sadly MyPads behavior becomes erratic : sometimes correct, sometimes buggy. For technicians : only GET and HEAD HTTP verbs were allowed and all other method has been forbidden. This problem seems to be linked to the yajsml middleware, used by Etherpad in order to optimize static files requests (scripts, images, styles etc). In theory, MyPads handled routes should not be impacted by this middleware, but for an misunderstood reason, they sometimes are.

Problem is that MyPads is based on a standard home-defined HTTP REST API, which the Web client connects to. This interface may allow other clients and third party tools to be created more easily. Debugging the problem is not an easy task, due to the randomness of the behavior. Few plugins should be concerned because most of them don’t define their own routes. Even if yajsml is updated to fix the issue, the Etherpad developers will have to accept the patch and merge it before we have MyPads working correctly. Now it seems that yajsml will be soon replaced by a more standard technology.

Others resolutions have been considered, regarding to yajsml situation :

  1. Replace, as others plugins do, the HTTP REST API by a socket.io one. socket.io is the technology used by Etherpad for realtime collaboration, that use as a first class citizen the WebSocket protocol. This approach has been tried this week but requires a considerable amount of work and many modules rewriting. Moreover, it’s not a proper replacement : MyPads loses its more standard communication method but in addition its authentication system, which have been chosen to allow, later, connection through external accounts,  LDAP directory, OpenID etc
  2. Move MyPads from a plugin to a standalone application, which handle user access according to created groups and pads. Problem with this solution : harden the MyPads installation, risks of incompatibilities with some other plugins. Also, making a standalone app won’t conform to the initial specifications.

We have decided to follow the last proposition only as a last resort. The migration to socket.io has been preferred but, with the light of required work and moreover functional looses, it won’t continue.

Next week

Work will be resumed on the HTTP REST version, the one developed until now. We expect :

  • because yajsml removal won’t happen before an unknown time, it will be important to find and fix the bug, or at least to provide a simple workaround;
  • move forward, with
    • migration from a classical authentication to JSON Web Token, which has been partially done this week as part of socket.io test, in order to harden encrypted data exchanges between client and server;
    • groups and pads, obviously.

See you next Thursday for week 18 point.