Khrys’presso du lundi 13 août

Brave New World

Spécial GAFAM

Spécial France

Les lectures de la semaine

  • Pourquoi nos ordinateurs portables sont devenus extra-fins, extra-légers et extra-nuls (motherboard.vice.com)
    Un personnage s'énerve devant son ordi : pourquoi t'es aussi nul, toi !!!
  • Fournisseurs d’emails, arrêtez de faire de la merde ! (framablog.org)

    Que pouvez-vous faire ? Eh bien, à part changer de fournisseur de mail (connaissez-vous les CHATONS ?), vous pouvez contacter le support de votre fournisseur actuel, lui expliquer la situation et lui dire que ce n’est pas normal. Nous pouvons vous fournir, le cas échéant, les codes d’erreur retournés par son serveur pour les mails que nous vous envoyons. Peut-être qu’en étant suffisamment nombreux à râler, la situation évoluera.

  • RGPD : Les « dark patterns », ou comment s’asseoir sur le Règlement (open-freax.fr)

    Tout est pensé pour que la collecte de données personnelles puisse continuer à avoir lieu. Le tout bien caché derrière un petit assistant en 4-5 écrans qui vous explique que olala le RGPD on l’a bien pris en compte. Et quand vous creusez… C’est la cata.

  • Les tests ADN de généalogie peuvent paraître bon marché. Mais vos données personnelles en sont le prix (theguardian.com – en anglais)

    In short: if you really want to spend your cash to discover that you are descended from Vikings (spoiler: if you have European ancestry, you are) or you have blue eyes (try a mirror), go ahead. But be aware of what you are really giving up, and consider the potential risks if things go wrong.
    Résumons : si vous voulez vraiment dépenser votre argent pour découvrir que vous descendez des Vikings (spoiler : si vous avez des ancêtres européens, la réponse est oui) ou si vous avez les yeux bleus (essayez un miroir), allez-y. Mais soyez conscient de ce que vous lâchez réellement, et pensez aux risques potentiels si les choses tournent mal.

  • Et si la vidéosurveillance était complètement inefficace ? (slate.fr)

    Personne portant une vidéo de surveillance en carton sur sa tête dans des escalators
    Image de
    Endstation Jetzt
    – Aktion gegen Videoüberwachung
    (CC BY 2.0)

    Les caméras de vidéosurveillance ne dissuadent que très peu les délinquants (qui se contentent le plus souvent de commettre leurs délits ailleurs), et ne permettent que rarement d’en retrouver. Elles n’ont par exemple pas pu empêcher les attentats de Nice, en dépit de onze repérages effectués par le terroriste avec un véhicule d’un poids prohibé dans cette partie de la ville. Les fonctionnaires qui doivent regarder ces vidéos à longueur de journée témoignent eux d’un ennui profond.
    Ces caméras sont qui plus est mal entretenues, et même souvent mal situées ; de nombreuses caméras se contentent ainsi de filmer les feuillages des arbres tout au long de l’année. Celles qui sont installées par les commerces enfreignent elles souvent la loi (absence d’autorisation du préfet, public non informé, images conservées indéfiniment, etc.).

  • La reconnaissance faciale est l’outil d’oppression idéal (medium.com – en anglais)

    Because facial recognition technology holds out the promise of translating who we are and everywhere we go into trackable information that can be nearly instantly stored, shared, and analyzed, its future development threatens to leave us constantly compromised. The future of human flourishing depends upon facial recognition technology being banned before the systems become too entrenched in our lives. Otherwise, people won’t know what it’s like to be in public without being automatically identified, profiled, and potentially exploited. In such a world, critics of facial recognition technology will be disempowered, silenced, or cease to exist.
    Puisque la reconnaissance faciale promet de traduire en information traçable – pouvant être quasi-instantanément engrangée, partagée et analysée – qui nous sommes et tout endroit où nous nous rendons, son développement futur menace de nous laisser constamment compromis. L’avenir de l’épanouissement humain dépend du bannissement de la technologie de reconnaissance faciale avant que ce système ne devienne trop ancré dans nos vies. Sinon, les gens ne connaîtront plus le sentiment de pouvoir être en public sans être automatiquement identifié, profilé, et potentiellement exploité. Dans un tel monde, les gens critiques vis à vis de la reconnaissance faciale se verront privés de tout pouvoir, réduits au silence ou cesseront d’exister.

  • Surveillance de masse: les tyrans du passé en rêvaient, la Chine l’a fait (slate.fr)
  • Aldous Huxley à George Orwell: ma vision infernale du futur est meilleure que la tienne (1949) (openculture.com – en anglais)

Les BDs/graphiques/photos de la semaine

Les vidéos/podcasts de la semaine

Les autres trucs chouettes de la semaine

Retrouvez les revues de web précédentes dans la catégorie Libre Veille du Framablog.

Les articles, commentaires et autres images qui composent ces « Khrys’presso » n’engagent que moi (Khrys) ; et je ne suis pas traductrice de profession ;-P




Les flux RSS, maintenant !

Il n’y a pas si longtemps, les flux RSS nous étaient familiers et fort utiles. Aral Balkan nous invite à nous en servir partout et explique pourquoi ils sont peut-être l’avenir d’un autre Web en gestation..

Peu compliqués à mettre en place sur une page web, ils permettent un lien sans intermédiaire entre la production de contenu et son audience, court-circuitant ainsi les plateformes centralisatrices que nous avons laissé parasiter nos communications. Tandis que se confirme une tendance forte à la fédération des contenus, la pertinence des flux RSS qui permet de les découvrir pourrait être un allié important pour re-décentraliser le Web.

On veut retrouver les flux RSS

D’après le billet d’Aral Balkan Reclaiming RSS

Bien avant Twitter, avant que les algorithmes ne filtrent notre réalité à notre place, avant le capitalisme de surveillance, existaient déjà les flux RSS : acronyme de Really Simple Syndication, c’est-à-dire la syndication vraiment simple.1

C’est quoi déjà ?

Pour ceux et celles qui sont né⋅e⋅s dans le monde des silos du Web centralisateur, les RSS sont une antique technologie du Web 1.0 (« le Web ingénu des premiers âges » ?). Comme pour beaucoup de choses de cette époque, le nom dit la chose : ils permettent de syndiquer facilement les contenus de votre site, c’est-à-dire de les partager. Les personnes que cela intéresse de suivre vos publications souscrivent à votre flux et reçoivent ainsi les mises à jour en utilisant leur lecteur de RSS. Pas de Twitter ni de Facebook pour s’interposer avec des algorithmes pour censurer… euh … « modérer » vos billets.

RSS est d’une simplicité enfantine à implémenter (juste un fichier XML). Vous pouvez l’écrire à la main si vous voulez (même si je ne le recommande pas).

Voici un extrait du flux RSS de mon site, qui vous montre quelques-uns des champs de l’entrée courante de ce billet :

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Aral Balkan</title>
<link>https://ar.al/</link>
<description>Recent content on Aral Balkan</description>
<lastBuildDate>Fri, 29 Jun 2018 11:33:13 +0100</lastBuildDate>

<item>
<title>Rediscovering RSS</title>
<link>https://ar.al/2018/06/29/rediscovering-rss/</link>
<pubDate>Fri, 29 Jun 2018 11:33:13 +0100</pubDate>
<author>mail@ar.al (Aral Balkan)</author>
<description>(The content of this post goes here.)</description>
</item>

</channel>
</rss>

De plus son implémentation est quasi-universelle.

Où est mon RSS ?

Il y a bien des chances, si vous avez un site web, que vous ayez déjà un flux RSS, que vous le sachiez ou non. Si par exemple vous utilisez comme moi Hugo pour créer votre site, votre flux RSS est là :  /index.xml

D’autres générateurs peuvent les insérer ici ou là : at /rss, /feed, /feed.xml, etc.

un tableau avec toutes sortes d'icônes pour les flux RSS
Le Noun Projet présente une belle sélection d’icônes RSS qui sont à votre disposition

 

À une époque, vous ne pouviez pas surfer sur le Web sans voir partout les séduisantes icônes RSS décorer gracieusement les belles vitrines du Web 1.0. Mais ça, c’était avant qu’elles ne soient vampirisées par les traqueurs espions … euh …  « les boutons de partage social » des Google et autres Facebook qui pratiquent la traite intensive d’internautes.

Il existait aussi auparavant une saine propension des navigateurs à détecter automatiquement et afficher les flux RSS. Aujourd’hui, il semble qu’aucun navigateur majeur ne le fasse bien nettement.

Il est grand temps de revenir à la charge pour exiger une prise en charge de premier plan des flux RSS, une brique importante pour re-décentraliser le Web.

Mais vous n’avez pas besoin d’attendre que les éditeurs de navigateurs se décident (certains comme Google sont eux-mêmes des agents du capitalisme de surveillance et d’autres, comme Mozilla, doivent leurs ressources financières aux capitalistes de la surveillance). Vous pouvez dès maintenant remettre à l’honneur les flux RSS en retrouvant l’adresse URL de votre propre RSS et en l’affichant fièrement sur votre site.

Rien de bien compliqué : il suffit d’un lien dans la partie <head> de votre page2 et d’un lien dans le <body> avec une icône RSS et hop vous voilà dans la famille du Web décentralisé.

voici le lien à insérer dans le <head> :

<link
rel="alternate"
type="application/rss+xml"
href="https://ar.al/index.xml"
/>

et voilà l’en-tête à mettre dans le <body> qui établit le lien avec le flux RSS avec une icône visuellement repérable.

<a
rel='alternate'
type='application/rss+xml'
href='/index.xml'
>
<img
class='rss'
src='/icons/rss.svg'
alt='RSS feed icon'
title='Subscribe to my RSS feed'
>
</a>

Jetez un coup d’œil au Noun Project pour choisir votre icône RSS, elles sont toutes sous licence Creative Commons.

RSS lourd ou léger ?

Capture d'écran du lecteur Leaf RSS sur macOS qui affiche mes souscriptions, la liste des derniers billets de mon blog, et mon billet sur Kyriarchy, qui s'affiche parfaitement.
Le lecteur de RSS Leaf affiche parfaitement l’intégralité du contenu HTML.

 

Lorsque vous créez un flux RSS pour votre site, vous avez le choix entre inclure seulement un résumé de votre billet ou bien son contenu intégral. J’ai modifié la configuration de mon Hugo et le modèle de RSS par défaut en suivant les instructions de Brian Wisti pour inclure le contenu intégral dans le flux et je vous recommande d’en faire autant.

Il y a six ans, je préconisais l’inverse ! J’écrivais « le RSS lourd n’est qu’une copie du contenu sous un autre nom ». J’avais tort. J’étais trop obsédé par le maintien d’une mainmise formaliste sur mes conceptions et je n’ai donc pas réussi à faire un choix réfléchi en utilisant des critères de conception éthiques.

Capture d'écran du lecteur de RSS NewsBar RSS sur macOS qui affiche mes souscriptions, la liste des billets de mon blog et un aperçu de mon billet sur Kyarchy, avec l'image et les styles qui ont disparu.
Le lecteur de RSS Newsbar n’affiche pas les images ni le style correctement dans l’aperçu du contenu.

Capture d’écran du lecteur de RSS NewsBar RSS sur macOS qui affiche mes souscriptions, la liste des billets de mon blog et un aperçu de mon billet sur Kyarchy, avec l’image et les styles qui ont disparu.

Plus les personnes ont de moyens d’accéder à vos contenus publiés, plus ces contenus ont des chances de rester en ligne et meilleur c’est pour la liberté de tous.

Des contenus dupliqués ? Oui, sans problème ! Plus on en a et mieux ça vaut. Eh eh, avec la version web en pair à pair de mon site, le but est idéalement de dupliquer le contenu autant de fois qu’il y aura de personnes pour le parcourir.

Certes, votre contenu peut être légèrement différent d’un lecteur RSS à l’autre, car certaines applications ne sont pas conformes aux standards, mais c’est leur problème, pas le vôtre. D’après mes tests partiels, le lecteur Leaf pour macOS affiche mon flux RSS lourd parfaitement alors que NewsBar ne le fait pas. Pas grave. (et j’espère que l’équipe de NewsBar en prendra bonne note pour améliorer le rendu dans une prochaine mise à jour. Après tout, aucune application n’arrive parfaite sur le marché).

Maintenant que nous nous éloignons du Web centralisé pour aller vers un Web pair à pair, il est temps de redécouvrir, adopter et exiger les flux RSS.

Tout ce qui est ancien reprend une nouvelle force.

RSS était un élément essentiel du Web 1.0 avant que le capitalisme de surveillance (Web 2.0) ne s’en empare.

Ce sera une composante précieuse du Web+ et au-delà.

[Copyright © 2018 Aral Balkan. Licence : Creative Commons Attribution-ShareAlike.]


    • Pour aller plus loin sur le sujet des flux RSS, un autre article du même auteur publié plus récemment : Refining the RSS

et ses aventures nocturnes pour tenter de faire apparaître cette maudite icône de RSS.

  • Pour s’abonner aux flux du Framablog, c’est par ici en bas à droite

  • Avec Firefox, il n’est pas très compliqué de s’abonner aux flux web, que ce soit RSS ou autres formats

Une entrée de menu dans les marque-pages ou plus direct encore, une icône à mettre dans votre barre personnelle. Davantage de détails dans cet article de SUMO




Un jeune libriste part à l’asso des mauvaises habitudes

Neil vient de finir un stage d’étudiant au terme duquel il a réussi à faire adopter des outils libres à une association. Il livre ici le récit de ses tribulations, c’est amusant et édifiant…

On aimerait bien qu’il y en ait beaucoup comme lui pour s’engager de façon aussi déterminée et efficace. Nous espérons entamer une série d’interviews de libristes qui comme lui sont particulièrement impliqué⋅e⋅s dans la diffusion des valeurs et des pratiques libristes.

avatar de Neil, un pigeon sur la tête
Avatar de Neil, image d’après Tunaniverse

Bonjour à tous,

N’ayant encore qu’assez peu d’expérience dans le domaine du libre et s’agissant de mon premier article sur Internet, je sollicite votre bienveillance et vous invite à me signaler toute éventuelle erreur ou mauvais usage des termes dans cet article.

Contexte

Les études

Avant de commencer, un peu de background. J’ai 20 ans et je suis en première année de BTS SIO (branche SLAM), formation post-bac orientée sur l’informatique de gestion et le développement d’applications.

Au bout d’un mois dans cette filière, j’ai senti qu’elle n’était pas pour moi en constatant notamment un retard assez grave dans les notions du référentiel. Mais pour des raisons financières (bourses, appartement, etc.) j’ai dû finir mon année, ce qui implique l’obligation de trouver un stage d’un mois en juin.

Le choix de l’association

J’ai donc choisi une association que je vais appeler Ciné-Asso, qui propose des tarifs réduits pour des séances au cinéma pour les établissements scolaires et ses adhérents. Ses responsables disaient avoir besoin de retravailler leur système d’information.

C’était pour moi une chance que de pouvoir mettre mes connaissances à disposition d’une association, ce qui m’attirait bien plus que les stages choisis par mes camarades de classe (stage en banque, en dépannage/réparation informatique, au supermarché, en startup French Tech qui développe sous WinDev3. Choix judicieux que de choisir un stage WinDev en BTS SIO : WinDev fait partie des logiciels étudiés et utilisés tout comme WordPress, Microsoft Visio, Win’Design, PC Wizard 2015 et plein d’autres. (Vous comprenez pourquoi je n’aime pas cette filière ?)

Et je préférais travailler pour une asso en rapport avec l’art et la culture. Le choix était donc déjà fait.

Un peu de technique

En ce qui concerne les outils utilisés, mon ordinateur tourne sous Debian Buster (prerelease) depuis Janvier 2018. Je code exclusivement sous Vim, mon éditeur préféré. Pour le développement web, j’utilise Apache et MariaDB côté serveur (en local, donc sur mon propre poste). J’utilise souvent MySQL Workbench (la version sous licence GPL par Oracle) pour éditer la BDD, sinon en CLI. Je travaille tout le temps avec draw.io (licence Apache), un logiciel vraiment pratique pour réaliser des schémas en tous genres, des cartes mentales aux modèles relationnels. Je m’estime par ailleurs libriste et refuse, lorsque la situation le permet, de travailler avec des logiciels propriétaires. Vous allez voir que défendre ses valeurs n’est pas facile…

Tâches assignées

Principalement deux tâches me seront confiées durant ce stage d’un mois :

  • Retravailler le site web de Ciné-Asso Leur site web tournait sous une très ancienne version de Joomla ! et franchement, ce n’était pas beau à voir. Bref, un site des années 2006. Ma mission sera de développer un site vitrine pour le remplacer, avec une gestion d’évènements planifiés (de séances de films, en l’occurrence) pour l’association. Cela inclut évidemment la formation des bénévoles à l’outil ;
  • Retravailler la base de données, reconstruire la base de données utilisée pour enregistrer les adhérents et les donateurs de l’asso. La base de données actuelle a été créée il y a 10 ans sous Access 2003 (si ce n’est 98…) et elle est encore utilisée jusqu’à présent. La base n’est pas relationnelle alors qu’elle devrait l’être. Résultat : 35 champs dans une table avec les adhérents et donateurs mélangés, des doublons, des couples sur un seul enregistrement et de sérieuses limites. Je vais donc devoir créer une nouvelle base, migrer toutes les données et former les bénévoles.

Le tout, donc, en un mois, avec la contrainte personnelle de n’utiliser que des logiciels libres.

capture de la liste des entrées de la base de données ancienne
La base d’adhérents au départ…

Présentation de Ciné-Asso

Je vais donc vous présenter brièvement l’équipe de Ciné-Asso. De faux noms leur seront attribués afin de préserver leur anonymat.

M. Touron est le président de l’association. Un esprit juste et logique.

Mme Nougat est la trésorière et celle que je dois convaincre. Elle est très réticente à l’intégration de mon travail au sein de l’asso. Elle sera aussi l’une des principales utilisatrices du logiciel de gestion de base de données. J’ai donc intérêt à faire du bon travail afin de satisfaire ses attentes.

M. Réglisse s’occupe de la communication auprès des adhérents. Il utilise tout le temps l’outil informatique dans son travail, pas toujours comme il le faudrait.

Mme Caramel est une jeune bénévole qui soutient mes idées. Elle s’occupe principalement du site web.

M. Calisson est un bénévole octogénaire et maintient la base de données Access. C’est un autodidacte de l’informatique. Il racontait fièrement qu’il avait programmé en COBOL pour le gouvernement à une époque désormais révolue.

M. Prunelle est un prestataire de services extérieur à l’association et jouera un rôle crucial.

Une réunion est organisée entre deux ou trois bénévoles et moi deux fois par semaine afin de présenter l’avancée de mon travail et de m’ajuster à la demande. En dehors des réunions, je travaille en autonomie.

Un détail important à relever : aucun membre de Ciné-Asso n’est assez compétent en informatique pour s’occuper du côté technique du site après mon départ.

Le site web

J’ai consacré les 15 premiers jours à la réalisation du site web. Et parmi tous les CMS possibles, j’ai choisi… Allez, devinez… WordPress.
Vous avez le droit de jeter vos tomates pourries ; mais je n’avais aucune expérience, ni avec Drupal, ni avec Joomla! et je n’avais clairement pas le temps de tester les solutions (rappelons que j’ai seulement 15 jours pour finaliser le site, formations incluses). De plus, je connaissais déjà bien WordPress pour l’avoir utilisé par le passé. Et croyez-moi, j’ai regretté de ne pas avoir été assez curieux, car ces 15 jours mêlèrent ennuis et souffrance.

Le décor

On commence par le design. J’ai choisi la version gratuite d’un thème qui leur plaisait bien. Je leur conçois une jolie bannière d’en-tête (avec GIMP, bien évidemment). Au final, j’ai dû la refaire 16 fois dans une réunion de 4 heures pour satisfaire aux demandes de M. Touron, président. Mais passons. J’ai dû bidouiller le CSS afin de convenir à leurs attentes, au risque de tout casser à la prochaine mise à jour. En guise de solution, je leur ai demandé de tout mettre à jour, sauf le thème.
C’est sale, ça contourne le problème, mais je ne vois pas d’autre option dans le temps imparti ; de plus, les thèmes souffrent rarement d’une faille de sécurité. J’ai donc jugé le pari suffisamment sûr.
Travailler sur WordPress n’est pas jouissif. Ça me servira de leçon pour mes stages futurs.

Les plugins

Je choisis le plugin WP Theater pour programmer les séances de cinéma.
Évidemment, les fonctions les plus intéressantes sont payantes. Je me contente des fonctions de base et réussis à convenir à leurs demandes. M. Touron m’a proposé d’acheter la version payante du plugin, mais j’ai insisté en disant que n’était pas nécessaire et que pour le prix de la fonctionnalité, ça relevait plutôt de l’escroquerie.

Les deux semaines s’écoulèrent (trop) paisiblement avec quelques ajustements par-ci par-là. La formation fut terminée en une après-midi. L’intéressée, Mme Caramel, appréciait l’interface conviviale du logiciel.

Choses vues

En un mois, j’ai appris à connaître les membres de l’association : leur personnalité, leur empathie et surtout, leur usage de l’outil informatique. J’ai tout de même quelques anecdotes qui font peur.

M. Réglisse et Micro$oft Office

J’apprends que l’un des membres de l’association, M. Réglisse, utilise MS Office 2003 pour travailler sur les documents de l’asso. Malheureusement, ce logiciel de Micro$oft n’arrive plus à exporter en PDF sur son poste, pour une raison inconnue (tout autant à lui qu’à moi). Sans compter que Office 2003 ne lit pas les nouveaux formats MS Office (depuis 2007 : xlsx, docx, etc.) ni les formats libres (odt…). Et ainsi, à chaque fois que M. Réglisse souhaite lire ou éditer un fichier incompatible, il envoie ce fichier par mail à sa collègue qui le convertit en PDF (à l’aide d’Apache OpenOffice) et qui lui renvoie par mail, et ce depuis longtemps.
Il fallait quand même que je me retienne de sourire en écoutant ça.
On me demande conseil.
En bon libriste, j’explique que le logiciel est trop vieux et qu’il faut passer à LibreOffice gratuitement ou acheter le pack Office tous les 3 ans, en insistant bien sur la première option.
« Oui, mais j’ai déjà essayé, ça marche pas, y’a des bugs et c’est pas toujours compatible… » Finalement, j’ai réussi à le convaincre. Ça a changé un peu la mise en forme de ses fichiers et il ne s’est pas gêné de me faire remarquer qu’un pixel dépassait par-ci par-là, mais il devrait s’en satisfaire pour le moment.

Vive le libre !

M. Réglisse et le mailing

Dans les aventures de M. Réglisse, j’ai aussi celle où il souhaite envoyer une newsletter à tous les adhérents de l’association. Il ouvre sa base Access 2003, et demande au logiciel de lui donner tous les mails des membres de l’asso. Il ouvre Thunderbird en parallèle, crée un nouveau groupe… et ajoute tous les mails en les réécrivant un par un à la main ! On m’explique que c’était parce que certains mails peuvent avoir été entrés dans la base de données avec des erreurs (une virgule au lieu d’un point, par exemple…) et que copier coller pose alors des problèmes… Car la base de données ne détecte pas les erreurs de saisie…

Je promets à M. Réglisse que le mailing sera beaucoup plus facile avec ma solution.

La réunion à mi-chemin

Les réunions furent assez régulières avec moi au sein de l’asso, mais celle-ci fut de très loin la plus importante. Je rencontre M. Prunelle, expert en informatique, retraité. Il s’agit d’un prestataire de services extérieur à l’association, contacté par Mme Nougat dans l’idée de contrôler mon travail et de m’aiguiller. Pour la première fois, M. Calisson, mainteneur de la base de données, est présent. M. Prunelle commence donc par parler de son parcours ; il a fondé une entreprise d’informatique pendant sa jeunesse et a déjà programmé en COBOL et en assembleur, raconte-t-il avec nostalgie.

M. Prunelle joue un rôle crucial : il s’engage à maintenir mon travail à mon départ en tant que bénévole si le projet correspond à ses attentes. Il s’agit donc d’une personne avec laquelle je devrais collaborer.

Les deux premières heures

On parle beaucoup du site web. Je l’ai présenté, il était déjà globalement fini, prêt à être basculé en production. M. Prunelle approuve mon choix du CMS WordPress et raconte qu’il a de l’expérience avec. On discute des quelques bidouillages sur le CSS (peu nombreux mais hélas impératifs conformément aux demandes).
Mon code étant commenté et mes modifications légères et peu nombreuses, il les approuve et se propose même de les maintenir si ça casse après une mise à jour. Super, ça m’arrache une épine du pied !

Les deux dernières heures

J’aborde le sujet de la base de données. Il faut savoir que la trésorière, Mme Nougat, s’oppose assez fortement au fait que je travaille sur la BDD. Elle souhaite que je me consacre pleinement au site et veut plutôt confier la base à un intervenant extérieur aux frais de l’association. C’est d’ailleurs pour cela qu’elle a fait appel à M. Prunelle…

J’explique mon projet. Un intranet maison, développé from scratch, une BDD relationnelle. Le tout fait à la main. J’avais déjà préparé un schéma relationnel que je lui montre.

« Ta base m’a l’air bien, relationnelle, tout bien comme il faut, c’est du bon travail. Par contre, je ne suis pas trop d’accord avec ta solution pour l’hébergement de la base de données, Maria DB… Je connais de nom mais ce n’est pas très utilisé dans le domaine professionnel… »

Il sort son cahier. Puis son stylo. Je le remarque alors… Un stylo rose fluo, avec le fameux logo de WINDEV dessus. Gulp. Je sais ce qui m’attend.

M. Prunelle me demande alors d’aller voir sur une page cachée d’un site web sur lequel il avait récemment travaillé. Il m’épelle l’adresse, quelque chose du genre « xalex-xpert.com/xalex_expert ».
S’affiche alors une vieille interface de connexion sans TLS, et je reconnais rapidement WEBDEV, de la même boîte. Je fais la moue. J’explique alors que je ne souhaite travailler qu’avec des logiciels libres, par éthique. Un sourire en coin s’affiche sur le visage de M. Prunelle :

« Ha ha ha, moi aussi, quand j’avais ton âge, j’étais un rebelle et je votais à gauche ! Mais aujourd’hui sur le marché du travail, dans un contexte professionnel de l’industrie informatique, jamais je ne me permettrais de présenter une verrue de Linux chez un client ! »

Hein ? L’industrie professionnelle de l’informatique ? Le marché du travail ? Qui a parlé de Linux ? Une verrue ?
La rébellion gauchiste ? Ce n’est pas un #MercrediFiction ni une exagération. C’est mot pour mot ce qu’il m’a dit. Je suis resté bouche bée pendant quelques secondes avant de passer à l’offensive en défendant mes arguments.

Et là, tout de suite, la grosse condescendance. En puissance. Limite, s’il m’avait versé un coulis de caca sur la tête, ça aurait été plus respectueux.

« Non mais de toute façon voilà, c’est comme ça qu’on débute, on fait tous des erreurs, on progresse ensuite, moi j’en ai vu, c’est pas le premier, je sais comment ça se passe »

Et alors évidemment Mme Nougat s’incruste et en rajoute une couche…

« Moi je pense qu’on a la chance d’avoir un professionnel parmi nous, M. Prunelle sait ce qu’il faut faire. Quand on est jeune, on ne connaît pas le marché du travail, on ne sait pas comment bien faire les choses pour répondre aux demandes du client, c’est normal »

(Allez-y, pissez-moi dessus encore, j’aime ça.) Mais avant que je ne me fasse totalement recaler, M. Touron et Mme Caramel interviennent au moment opportun et insistent pour me laisser une chance. Ouf, c’est sauvé. Par contre, du coup, inutile de compter sur lui pour maintenir ma « verrue de Linux ». Plus qu’à me débrouiller tout seul.

Résultat, les deux solutions seront proposées au conseil d’administration et c’est le conseil qui tranchera. J’ai intérêt à bien faire le boulot.

La veille technologique, ou comment j’ai changé d’avis

Ok, j’ai donc 15 jours pour réaliser une solution convaincante à partir de rien, migrer la solution actuelle vers la mienne et enfin former les nouveaux utilisateurs… Bon, j’ai des bouts de code de prêts pour ça, je suis assez expérimenté en PHP pour me débrouiller comme un grand. Mais 15 jours…

État des lieux

Tout d’abord, le lendemain de la réunion, M. Calisson (mainteneur octogénaire de la BDD) s’est présenté à moi. Il a fait l’effort de se déplacer dans les locaux pour me proposer personnellement son aide.
Face à une telle bienveillance, je ne pouvais refuser. Il m’a donné une documentation utilisateur d’une vingtaine de pages (datant de quelques années), très détaillée, qui m’a beaucoup appris. Il a ensuite pris le temps de m’expliquer chaque détail flou de la base actuelle et décrit les attentes particulières de Mme Nougat, qui attend d’être convaincue par ma solution.

Il n’était pas obligé de faire tout ça et je lui en suis grandement reconnaissant. Avant de le rencontrer, je pensais que ça allait être un esprit conservateur qui considère que sa solution (une table, 35 champs, rappelons-le) est la meilleure de toutes… et je me suis bien trompé. Comme quoi, le code ne fait pas le développeur…

À l’aide, Mastodon !

Dans le doute, je fais appel au réseau des réseaux. Et dans la panade, je fais appel au Fediverse.

Appel à l’aide sur Mastodon…Voyez tous les conseils reçus suite à ma demande !

 

Amis, camarades, connaissances, merci à vous. Vous avez été d’un précieux soutien dans cette situation difficile, vous m’avez aiguillé quand M. Prunelle m’avait lâché. Je savais que je pouvais compter sur vous ! Et j’ai attentivement écouté vos conseils.

Alors que choisir ?

Je peux dire beaucoup de mal (à tort et à raison) de mes professeurs de BTS SIO, mais c’est l’un d’eux qui m’a conseillé Galette en premier (en l’occurrence, ce professeur revendique des valeurs libristes mais enseigne WinDev et Win’Design aux élèves, ironiquement. Il enseigne Merise aussi, en 2018. Mais passons !)

Galette est un CMS libre de gestion d’adhérents pour les associations, inscrit sur Framalibre, l’annuaire contributif où j’aurais dû chercher en premier. Le logiciel a été créé en 2004 et est toujours maintenu à l’heure actuelle via des mises à jour régulières. Il est utilisé par des dizaines d’associations et reste un choix à considérer pour un déploiement rapide et efficace.

La Fediverse m’ayant conseillé (entre autres) Galette, j’ai décidé de m’y intéresser de plus près. Je connaissais déjà Galette (de nom seulement) avant que mon professeur m’en parle, mais tout écrire de soi-même avait l’air tellement plus amusant…

Et la solution avait l’air vraiment sympa. Il m’a fallu quelques jours pour m’assurer qu’elle collait bien au cahier des charges de Mme Nougat, mais tout avait l’air d’aller comme il faut. Et comme je n’ai plus le temps, il vaut mieux choisir cette option plutôt que de partir de zéro et rendre un travail insatisfaisant ou incomplet.

Partons donc pour Galette !

Galette

Abordons un peu l’aspect technique. La formation WordPress et quelques autres tâches ayant un peu débordé sur le planning, il me reste 10 jours pour déployer la solution et former les utilisateurs.

Le cahier des charges

Je rencontre un problème. Le cahier des charges n’est pas respecté sur un point : les statistiques. L’asso a besoin de stats assez précises pour la comptabilité et Galette ne fournit que deux ou trois pauvres camemberts. Galette tournant sous PHP, je prends la décision d’écrire un plugin.

Le plugin

C’est ce qui va prendre le plus de temps. Je travaille dans un environnement avec lequel je ne suis pas familier du tout, même si c’est du PHP, car je n’ai jamais touché à des frameworks PHP ni utilisé une API conçue pour des plugins. Ma première rencontre avec Zend Framework se passe… mal. Très mal, au point où j’interroge directement la base de données avec des requêtes en dur pour faire le boulot.
J’aurais aimé apprendre comment m’en servir, mais « je n’ai pas le temps ». Bon, j’ai moins d’excuses pour le switch à 90 cases avec des requêtes SQL et les 80 lignes de HTML dans un string… Mais chut…

Blague à part, je commence à être vraiment à la bourre. Plus que quelques jours de stage déjà, et c’est fini. Je me débrouille comme je peux pour coder quelque chose qui fonctionne. Qui a parlé de maintenabilité ?
Le prochain qui passera derrière moi sera probablement un stagiaire de BTS SIO, ça lui fera les pieds 🙂 (Il va me retrouver et me tuer pour avoir écrit ça, et je ferai moins le malin quand je tomberai sur un cas similaire. Bon au moins, j’ai mis plein de commentaires)

La demande de dernière minute

J’ai présenté le plugin de stats à Mme Nougat et il a fallu s’adapter à une demande de dernière minute. Totalement justifiée cela dit, ça faciliterait grandement la comptabilité. Il s’agit encore de stats.
J’applique des quickfixes sur le code dégueulasse que j’ai pondu juste avant. Il me reste trois jours. (Comment ça, ce n’est pas une excuse ? Au moins ça fonctionne !)

Bon allez, on plie ça vite fait et on passe à l’importation, qui n’est même pas commencée !

Préparation pour la migration

Un peu plus de technique.
La base de données est sous forme de fichier. MDB (Access), format propriétaire. Elle pèse 8.5 Mo. J’ai des frissons dans le dos. J’utilise le paquet mdb-tools pour convertir la structure et les données en requêtes SQL et je crée une nouvelle DB en local (MariaDB) et j’importe le tout.
Vive le libre.

Voilà la table à 35 champs… Ma première tâche va être de séparer les entrées des couples (M. et Mme) qui ont été enregistrés en une seule entrée.
Sur le coup, LibreOffice Calc est mon ami. J’importe tous les enregistrements où Sexe=« M. et Mme » et je les sépare à coups de Chercher/Remplacer. Une fois le boulot fini, j’importe tous les autres adhérents enregistrés dans la base jusque là sur le tableur, c’est plus facile que sur Workbench. Et nous y voilà, un total de 1275 lignes.

La grande migration

Allez, c’est parti. Je saisis 1275 adhérents à la main, depuis l’interface de Galette.

Bien sûr que non. Vous croyez vraiment que j’allais faire ça manuellement ?
Je me remémore ce que disait l’un de mes professeurs de BTS SIO :

« Un développeur, c’est un branleur. Une quiche molle. Alors à un m’eng donné, il faut savoir optimiser son traitemeng ou on va se retrouver avec une KYRIELLE de travail à faire. »

Il reste 2 jours. Comptant un jour de formation et d’installation du logiciel, j’ai 24 heures pour réaliser la migration. Admettons que je prenne trois minutes par entrée (adhérent + contribution). (1275 x 3) / 60= 63h45 de travail. C’est hors limites !

La seule solution est donc d’automatiser le tout. Mais il ne s’agit pas d’un simple INSERT INTO dans une table, hélas. Galette utilise un système de champs dynamiques qui permet d’avoir des champs personnalisés par l’association. Il les gère d’ailleurs assez mal : lorsqu’on supprime un adhérent ou une contribution, les champs dynamiques associés ne se suppriment pas avec. Encore un bug à signaler, tiens. Mais passons.

Formatage des données

Je commence par ajouter un adhérent et une cotisation annuelle pour ce dernier et j’identifie dans la BDD les tables mises à jour. Il y en a trois : galette_adherents, galette_cotisations et galette_dynamic_fields.

Ensuite, ça reste quand même assez trivial. J’identifie à quoi correspondent les champs dans les tables et je prépare mes inputs selon mes besoins. Je n’oublie pas de m’adapter au logiciel. Exemple, Galette interdit les adresses mail dupliquées dans la BDD. Je supprime tous les duplicatas depuis LibreOffice avant de commencer quoi que ce soit. Puis vient le plus
pénible. Le formatage des inputs. LibreOffice est pratique pour ça, mais je préfère tellement Vim qui s’avère bien plus efficace quand on a l’habitude du logiciel.

Vérification des données

Je vérifie encore mes inputs. Les erreurs les plus courantes :
– Doubles espaces (un coup de regex et c’est fini)
– Accents dans les adresses mail
– Virgules à la place de points un peu partout
– Formatage pas toujours standardisé du numéro de téléphone… J’étale le champ adresse, unique jusque là, sur deux lignes. C’est long et pénible, un bon travail de stagiaire. Par superstition, j’enlève les guillemets placés inutilement dans les adresses physiques.
– Au passage, je découvre des adresses Yahoo, AOL, Cegetel, Alice, Wanadoo, Neuf et même quelques .gouv.*.
Ça fait un peu peur.

– Le champ galette_adherents.login_adh contient des caractères aléatoires servant d’identifiant pour l’adhérent. L’asso n’utilise pas cette fonctionnalité, mais pour ne pas contrarier Galette, je vais insérer des caractères aléatoires dedans : SUBSTRING(MD5(RAND()) FROM 1 FOR 15)
Ce n’est pas censé être un identifiant hexadécimal, mais ce n’est pas grave.

Enfin, je prends soin de distinguer les champs vides des champs NULL. On peut maudire SQL pour ça, je suppose.

Je termine la migration le 28 juin au soir, soit 24 heures avant la fin du stage. La journée de demain commencera à 09h00.

Déploiement de la solution

Ah oui, à ne pas oublier. Avant de former les utilisateurs, il faut d’abord déployer Galette sur leur réseau (en intranet). Je choisis l’utilisation de XAMPP sur l’un de leurs postes Windows.
Je configure le serveur DHCP de leur box pour que l’IP du poste en question soit fixe. Ma méthode est probablement discutable mais je ne vois pas d’autre option possible, surtout qu’héberger Galette sur le “cloud” ne leur aurait pas servi car ils ne travaillent sur la BDD qu’en local. Enfin, je déploie Galette, j’exporte la BDD depuis mon poste et je l’importe sur le leur. Je transfère aussi les fichiers de mon plugin. Évidemment, l’opération ne s’est pas déroulée sans accroc – surtout sur des postes Windows. J’ai perdu une à deux heures dans la migration.

L’imprévu fatidique

En formant l’une des deux bénévoles, on s’aperçoit ensemble que de nombreuses données de l’ancienne base sont erronées depuis quelques mois (suite à une maintenance de M. Calisson) et que ces erreurs ont été (évidemment) reportées sur la nouvelle base. Nous arrivons à une conclusion terrifiante : il faut repasser manuellement derrière chacune des 1275 adhésions à partir des bordereaux d’adhésion, conservés par précaution. Cette opération nous a coûté 4 à 5 heures. La bénévole a eu la gentillesse de m’apporter une pizza pour que je puisse finir mon travail d’esclave le plus vite possible sans sortir du bureau.

fig.1 Travailler en équipe pour résoudre un problème. La théorie.

fig.2 Travailler en équipe pour résoudre un problème. La réalité.

La formation

Vous imaginez qu’il ne me reste plus beaucoup de temps pour former les utilisateurs. La première bénévole était assez familière avec l’informatique, mais la deuxième ne l’était pas du tout – au contraire, elle détestait l’informatique. J’ai dû abréger beaucoup de points que je préciserai dans une documentation utilisateur à rédiger après mon départ. Ce fut très laborieux, mais l’essentiel a été vu. Il est 18h00, mon stage se termine et ma mission avec. Je remercie M. Touron qui m’offre une gratification de stage de 150 euros.

Le suivi

Le libre, c’est bien, mais quand il est encadré et suivi, c’est mieux. Le site web de l’association est hébergé par la Ligue de l’Enseignement, ce qui leur permet de profiter de tarifs très préférentiels. J’ai pu rencontrer l’un de leurs membres avec M. Touron dans le cadre de la migration du site de Joomla ! vers WordPress.
Ce monsieur, aux antipodes de M. Prunelle, était clairement fâché de mon choix de WordPress, en disant que les webmasters oublient souvent de mettre à jour le CMS et qu’il est généralement considéré comme une usine à gaz trouée par des failles de sécurité. Je ne peux qu’être d’accord avec lui sur ces points-là, malheureusement.
M. Touron aborde finalement la question de la gestion de la base de données (Galette, donc) et ce monsieur semble non seulement connaître le CMS, mais exprime sa satisfaction quant au choix d’un logiciel libre. Quand je lui ai dit que ce choix était par éthique, nous sommes rapidement partis dans une discussion libriste mentionnant La Quadrature du Net, l’April, Framasoft, les RMLL 2018 qui approchent à grands pas…

C’était ma première discussion avec un libriste dans la vraie vie et elle ne pouvait pas tomber à un meilleur timing. La personne idéale pour reprendre le projet était déjà trouvée, je peux dormir sur mes deux oreilles !

Ressenti personnel

Cet article est déjà beaucoup trop long, mais je tiens à exprimer mon ressenti sur ce stage. La rencontre avec M. Prunelle fut très parlante pour moi : j’ai réalisé à quel point les esprits peuvent être conservateurs dans le domaine de l’informatique.

Être libriste, c’est avant tout avoir des convictions que l’on défend au quotidien. Je ne m’attendais pas à entrer en conflit d’éthique avec qui que ce soit pendant ce stage, tout comme je ne m’attendais pas à rencontrer des personnes défendant les mêmes valeurs que moi. C’est aussi inciter les utilisateurs moins familiers vis-à-vis de l’outil informatique à découvrir les outils libres, faire face à leurs réticences dues à la peur de l’inconnu, à leur habitude d’utiliser des outils propriétaires et parfois, à leur manque de confiance en votre personne au prétexte de votre jeune âge et de votre supposé manque d’expérience.

Ce stage fut un véritable combat au nom de l’éthique et de mes propres convictions, mais il fut aussi porteur d’espoir : les libristes sont plus nombreux que je ne le pensais, et mon déplacement à mon tout premier meeting (les RMLL 2018) va probablement m’aider à mieux connaître (et sympathiser !) avec les différentes communautés et me permettre de définir plus précisément mon parcours professionnel en vue, dans l’idéal, d’un métier dans ce domaine.

Vive le libre !

@Neil@shelter.moe




Khrys’presso du lundi 2 juillet

1- Brave New World
La Chine bloque HBO après la satire de Xi Jinping par John Oliver dans son show Last Week Tonight (en anglais ; le lien direct vers la vidéo)
Venezuela is blocking access to the Tor network
Bac 2018 en Algérie : la coupure Internet plombe l’activité des entreprises
Les gens se vengent des robots en trompant les caisses sans humains des supermarchés
L’intelligence artificielle au service de la conformité au RGPD
Cloud Act, l’offensive américaine pour contrer le RGPD
Aux États-Unis, les données de géolocalisation téléphoniques désormais protégées par la Constitution
La Californie vote une loi sur la protection des données (voir aussi : La Californie fait voter une loi plus exigeante en matière de vie privée) mais Facebook et Google manœuvrent et font du lobbying en sous-main, en y consacrant des centaines de milliers de dollars, pour éviter que cette loi ne gêne leur business, d’après The Intercept.
Le MIT peut voir vos mouvements au travers des murs grâce au Wi-Fi

Playing with Ghosts – Photo par Wade Simmons (CC BY 2.0)

 

À partir de quel moment une entreprise de la tech devrait-elle refuser de développer des outils pour le gouvernement ? (en anglais).
2 – Spécial France…
Des véhicules autonomes à la demande expérimentés à Rouen, une première en Europe
Le ticket de caisse va-t-il disparaître ?
Le gouvernement interpellé sur les parents qui utilisent leurs enfants sur YouTube
Grande école du numérique : 11.000 étudiants, peu de femmes et de CDI
Le Conseil constitutionnel appelé à se prononcer sur le « délit de solidarité »
Dans un rapport, la Cimade souligne la hausse en 2017 des « non-admissions » aux frontières en France
Le recours aux armes à feu par les policiers a fortement augmenté en France en 2017

3 – GAFAM
• Données personnelles : l’UFC Que Choisir dénonce les petits arrangements entre GAFAMs (actu reprise entre autres par Numerama et Le Monde).
Pourquoi Facebook et YouTube se lancent dans le payant
Facebook et YouTube seraient les deux services qui exposent le plus les enfants au sexe, à la violence et aux suicides
• Google aime l’open source…(en anglais) mais aussi les DRM
• Ah tiens, en parlant de DRM : Metal Gear Rising injouable sur Mac à cause des DRM 😉

 

Image d’après Etamme (CC BY 3.0) En savoir plus sur les DRM ? Une synthèse de l’APRIL est disponible

 

 

Sinon, cette semaine, Facebook continue à se prendre les pieds dans le tapis…
Facebook s’emmêle et fait fuiter des données Facebook Analytics
Sur Facebook, des tests de personnalité très bavards
• On connait désormais quelles sont les différentes sociétés à qui Facebook livrait des informations liées aux utilisateurs de sa plateforme, en d’autres termes, vos données de profil.
…à ne plus trop savoir sur quel pied danser…
Facebook abandonne l’idée de construire ses drones donnant accès à Internet, mais pas le projet Aquila
Le Festival de Film de Fesses n’est pas le bienvenu sur Facebook
… alors du coup…
Facebook n’est plus l’idole des jeunes (snif ;-))

Copie d’écran : désolé, quelque chose s’est mal passé

4 – Toujours plus de PeerTube !
Dans la « presse »
PeerTube: An Open Source YouTube Alternative To Beat Censorship
PeerTube, le YouTube libre, se finance sans peine sur Kisskissbankbank
Et aussi…
Peertube en page d’accueil de Qwant \o/
Les instances repérées cette semaine
L’instance de la Blender Foundation
L’instance Peertube de l’académie de Lyon
Une instance pour partager des vidéos en Creative Commons
Skeptikón, une instance peertube autour de la zététique, de l’esprit critique, du scepticisme de manière plus générale.

5 – Les lectures de la semaine
Les mèmes les plus toxiques sont aussi les plus performants

La guerre des navigateurs est terminée et nous l’avons perdue.

Nous l’avons perdue parce que nous avons abandonné le futur de l’informatique personnelle — le web et le mobile.

L’essentiel du parc est contrôlé par une régie publicitaire dont le modèle économique est de surveiller et régenter tout ce que vous faites sur vos appareils. Google et Chrome c’est ça.

(…)

Le résultat c’est que nous avons besoin d’Opera, Firefox et Edge, aujourd’hui, même si ce n’était que pour forcer Chrome et Safari à continuer à jouer le jeu. Ceux qui ont connu la première guerre des navigateurs savent de quoi on parle. On joue un peu l’avenir du web et du mobile. Rien que ça.

À lire dans : Après la seconde guerre, le web et le mobile

Jusqu’où va aller l’hypocrisie des géants du net et des fabricants ?
• Gee publie Working Class Heroic Fantasy chez Framabook « un livre pour donner la niaque »
Engagement_atypique, le parcours de quota_atypique interviewée pour le framablog.

6 – Les BDs/images/graphiques de la semaine
Personnalisation
Appeau
Une question de principes
Please note…
Les maths, c’est vache…(ment bien)
Fierté
Coupe du Monde
Verre à moitié plein…
BD : « La guerre des fourmis » (épisode final)

7 – Les vidéos de la semaine
Les données collectées par les pisteurs
Droit d’auteur : doit-on marquer les œuvres à la culotte ? (podcast)
Interview de Pouhiou au JT de @LeMediaTV

8 – Les actions de la semaine
Plaintes massives dans toute l’Europe contre la rétention illégale de nos données (voir aussi : 62 associations s’attaquent à la rétention des données de connexion en Europe et Conservation des données par les opérateurs télécoms: 62 associations saisissent la Commission européenne ).
Directive Copyright : le vote du Parlement européen fixé au 5 juillet
Texte commun : « Nous ne laisserons pas Bure devenir la nouvelle affaire Tarnac !
ToS;DR : aidez à noter les conditions générales d’utilisation que personne ne lit

9 – Les autres chouettes trucs de la semaine
StartTLS Everywhere : le projet pour que vos mails soient transmis en toute sécurité
GNOME et Mozilla s’associent pour atteindre le monde universitaire
Les RMLL 2018 Strasbourg arrivent à grand pas !
linuxjobs.fr/ arrive sur Mastodon ! (plusieurs comptes, chercher @linuxjobsfr)

 

devant deux cafés, discussion : le personnage de gauche voudrait un café allongé, le personnage féminin de droite indique qu'il suffit de cliquer sur sa tasse pour accéder à son blog

Avec à nouveau un grand merci à Goofy pour le coup de patte 🙂




Funkwhale, les baleines mélomanes libres et décentralisées

Aujourd’hui nous laissons bien volontiers les commandes à Narf, une étudiante actuellement en stage chez Framasoft. Sa mission porte sur la vulgarisation des concepts de « fédération », notamment au travers de PeerTube, mais aussi plus largement du protocole ActivityPub. Afin de découvrir cet univers (ou ce fediverse ;)), nous lui avons proposé d’interviewer des personnes travaillant ou réfléchissant autour de cette problématique.

Comme beaucoup d’entre vous, je me pose de nombreuses questions sur l’avenir d’un internet où des géants monopolisent et centralisent l’espace public sans nous demander notre avis. La construction de nos propres médias sociaux semble être une belle manière de s’émanciper, tout en chérissant notre réseau social. Celui avec lequel nous aimons partager nos pensées, des bribes de nos joies ou tristesses, des vidéos qui nous ont fait rire, réfléchir, des musiques qui nous font frissonner. L’enjeu est de taille, vous ne trouvez pas ?

Cependant, contrairement au modèle que les géants cherchent à nous imposer, il faudra que chaque personne puisse, si elle le souhaite, poser sa pierre pour construire les villages de ce nouvel univers appelé le fediverse. Pour ce faire, il ne suffit pas d’avoir une pierre à poser, il faut aussi pouvoir la tailler, savoir pourquoi et comment la poser. On sait bien ça chez Framasoft ! Lors de ces quelques mois que je vais passer dans l’asso, je vais apprendre sur les concepts de « fédération » et essayer de transmettre au maximum ce que j’aurai appris afin qu’ensemble nous rendions plus facile l’accès à cet univers !

Avec le projet Funkwhale, Eliot Berriot participe, à sa manière, à la construction du fediverse. Nous avons voulu en savoir plus sur son parcours et sur ce projet : on apprend une nouvelle fois que technique et vision de société ne vont pas aller l’un sans l’autre.

Salut Eliot, est-ce que tu pourrais te présenter brièvement ?

Alors je m’appelle Eliot, j’ai 25 ans, et je suis tombé dans le développement de façon assez tardive / inhabituelle (je pense) : à la base, j’ai fait un bac L et des études pour devenir libraire ! Au cours de mes études supérieures, j’ai commencé à faire de la programmation en python pour le plaisir (sur le site du zéro, à l’époque), et petit à petit j’ai fait des sites web pour les amis, la famille etc. À tel point qu’à un moment, j’ai fini mon cursus (en licence pro) et je me suis établi à mon compte en tant que développeur web freelance. J’ai fait ça pendant 1 an ou 2, puis j’ai rejoint une SCOP, Au Fond À Gauche, où j’ai travaillé pendant plus de deux ans en tant que développeur / chef de projet technique. Après quoi, j’ai rejoint ma boite actuelle, People Doc où je me trouve depuis Octobre 2017, toujours comme développeur.

Super intéressant ce parcours en auto-formation !

Complètement en autoformation, oui. C’est un truc qui me plaît énormément dans ce monde là : la possibilité d’apprendre a son rythme, avec les ressources disponibles.

Nous, on t’a connu grâce à ton projet Funkwhale. Est-ce que tu pourrais le présenter aux lecteurs du Framablog ?

Le concept de Funkwhale est assez similaire à Grooveshark, d’où le nom d’ailleurs. Pour ceux qui ne connaissent pas, Grooveshark était un service de streaming musical, un peu comme Deezer ou Spotify, très axé sur les interactions entre utilisateurs, le côté social. L’expérience utilisateur était vraiment bonne, avec un player web de qualité, et la possibilité d’écouter de la musique pendante des heures sans pub. Le service a été fermé il y a quelques années suite à des soucis avec les ayants-droit.

Le logo de Funkwhale

Il y a cependant des différences qui sont : le développement sous licence libre, la possibilité d’installer et de gérer son instance Funkwhale sur son serveur, en autonomie, comme avec Mastodon, par exemple. Et bien entendu, on n’est pas encore à parité fonctionnelle avec Grooveshark. Il y a certaines fonctionnalités qui étaient présentes (et aussi sur d’autres services de streaming, j’imagine), qui ne sont pas encore réimplémentées dans Funkwhale. Par exemple, les broadcast, une fonctionnalité que j’aimais beaucoup : un utilisateur peut live-streamer des musiques de son choix et ceux qui le souhaitent peuvent se connecter sur ce stream et écouter la même musique, au même moment un peu comme une radio. Ça permet de partager et de découvrir de la musique sur un mode très fun.

Effectivement, c’est sympa comme fonctionnalité, ça met plus d’interaction dans le partage. Ça fait sens si tu as envie de créer une vraie communauté autour de la musique !

Tout à fait : chaque broadcast avait aussi un chat, et les utilisateurs pouvaient suggérer des chansons à jouer ensuite, c’était très participatif. Je crois même que certaines personnes faisaient des broadcasts à temps plein et en tiraient des revenus.

Qu’est ce qui t’as motivé à faire ce projet ?

C’est le résultat d’un parcours perso assez long. En parallèle de ma découverte du développement, je me suis beaucoup intéressé aux questions d’auto-hébergement. J’essaie depuis environ 5 ans d’héberger le plus possible mes données et de ne pas me reposer sur des services tiers / fermés (pour les mails, la synchro de fichiers, etc). Quand les solutions existantes ne me satisfaisaient pas, il m’est arrivé de développer des outils perso (par exemple, mon premier gros projet web était un lecteur de flux RSS / moteur de blog). A un moment, Grooveshark que j’utilisais beaucoup a fermé, et j’ai commencé à me dire « tiens, et ça, si je l’hébergeais ? ». Malheureusement, les solutions existantes ne me satisfaisaient pas, principalement pour deux raisons :

  • Soit je les trouvais peu agréables d’utilisation,
  • Soit elles étaient mono-utilisateur, alors que je voulais quelque chose qui puisse permettre à des personnes de se retrouver autour de la musique, comme sur Grooveshark.

Du coup, j’ai retroussé mes manches, et j’ai commencé à travailler sur Funkwhale. Ça remonte à deux ans et demi / trois ans, à peu près. La première version était assez… pas terrible, disons-le. Mais ça marchait quand même, je pouvais importer mes artistes préférés et jouer ma musique sans dépendre de personne et sans pub, et ça, c’était cool ! Ensuite l’année dernière, j’ai entrepris une réécriture complète de l’interface (qui était ce qui posait le plus problème), pour arriver en gros sur ce que l’on a maintenant. Comme ça devenait utilisable et assez riche fonctionnellement, j’ai commencé à en parler sur Mastodon, en début d’année, et puis cela a pas mal pris 🙂

Qu’est-ce qui différencie Funkwhale d’un autre site de partage comme Soundcloud ?

N’utilisant pas Soundcloud, j’aurais un peu plus de mal à être juste je pense. Mais pour ce que j’en ai vu, Soundcloud semble s’adresser plutôt aux personnes qui créent de la musique. Grooveshark (et Funkwhale) sont plus axés « auditeur » (du moins pour le moment :D)

Mais si les utilisateurs ne sont pas, a priori, « créateurs de contenu », comment ça se passe pour les droits d’auteurs ? C’est quand même ce qui a fait fermer Grooveshark. Qui est-ce qui va gérer ça ?

Je l’attendais, celle là ! Il faut évidemment aborder ces questions, d’autant que ça peut effrayer certaines personnes ! Tout d’abord, il faut bien distinguer Funkwhale en tant que logiciel, ce qui permet de faire tourner une instance, d’une instance Funkwhale, qui est un serveur qui fait tourner le logiciel Funkwhale. C’est exactement le même principe que PeerTube. Funkwhale, en soi, c’est un logiciel qui permet d’importer de la musique et de la mettre à disposition des utilisateurs d’une instance (ou potentiellement d’autres instances, avec la fédération). Aucune musique n’est livrée avec, donc le projet en lui même est une coquille vide.

Ce sont les personnes qui gèrent une instance et qui vont mettre en ligne de la musique qui sont responsables du volet « respect de la propriété intellectuelle ». D’ailleurs, dans son mode par défaut, une instance Funkwhale et la musique qu’elle contient sont uniquement accessibles aux personnes inscrites sur l’instance (et les inscriptions sont fermées par défaut).

Du point de vue de la loi, à ma connaissance, il n’y a pas d’interdiction a mettre en ligne de la musique que l’on a achetée légalement, pour pouvoir l’écouter sur d’autres supports / machines. Ce qui est réprimé, c’est le partage hors du cercle familial amical, par exemple avec des inconnus via torrent. Héberger une instance Funkwhale pour les copains et/ou la famille me semble (mais je ne suis pas juriste) globalement dans les clous. C’est une plateforme d’hébergement de contenus donc les personnes gérant la plateforme auront à répondre des infractions s’il y en a, si leur plateforme est publique et accessible à n’importe qui.

Tu parles d’un cercle familial mais la fédération, que tu as récemment mise en place, ne rentre plus dans ce cadre, si ?

La question se pose, oui. Depuis peu, Funkwhale permet de fédérer les catalogues musicaux de différentes instances pour les rendre accessibles à d’autres instances. Pour essayer de limiter les problèmes potentiels et leurs conséquences, sur Funkwhale, la fédération se fait par défaut sur un mode très restrictif. Les catalogues musicaux des instances ne sont pas accessibles sans autorisation. Donc une instance A doit demander l’accord d’une instance B pour accéder à son catalogue. Cela permet de révoquer l’accès en cas de besoin, par exemple. D’autre part, par défaut, les fichiers musicaux ne sont pas répliqués d’une instance à l’autre (hors pour du cache sur une période assez courte). Ainsi, on pourrait imaginer avoir des grosses instances hébergeant de la musique libre partageant leurs contenus avec de petites instances possédant du contenu protégé.

Ouh là là, certains lecteurs assidus du Framablog t’ont sûrement suivi sur ce coup mais, pour les autres, pourrais-tu expliquer simplement ce qu’est la fédération ?

Alors la fédération, tel que je le conçois, c’est un mécanisme qui permet à différents intervenants sur un réseau de s’échanger des messages, de se comprendre. L’intérêt de la fédération, c’est également de réduire le développement de SPOF (single point of failure, les endroits ou si ça pête, tout pête) puisque dans un réseau fédéré, la chute d’un acteur n’affecte pas les autres acteurs outre mesure. Ainsi, si le fournisseur e-mail d’un·e de vos amis ne fonctionne plus et que vous êtes chez un autre fournisseur, vous pouvez continuer à lire vos mails, car l’e-mail fonctionne sur un mode décentralisé et fédéré.

À l’inverse, sur des services centralisés, en silos, comme YouTube ou Spotify, si le service devient indisponible ou disparaît, plus aucun utilisateur ne peut en bénéficier. C’est ce qui fait que Funkwhale ne disparaitra jamais à la manière de Grooveshark : si l’on ferme une instance, les autres continueront de fonctionner et, même si l’on fait disparaître le projet et les sources, les instances existantes continueront de fonctionner. Là encore, on est sur un concept assez proche de PeerTube, dont le fonctionnement parle probablement plus aux lecteurs et lectrices de ce blog.

Pour une personne non initiée pourrait-on simplifier en disant : une instance = Funkwhale auto-hébergé / les messages = la musique que l’on met sur Funkwhale ?

À l’heure actuelle plus ou moins oui. En fait une instance va notifier ses « followers » (les instances qui ont accès à son catalogue) quand elle importe de la musique. Celles-ci, en fonction de leurs paramétrages, vont pouvoir la rendre accessible immédiatement et en temps réel dans leur catalogue. Mais à terme, la fédération ira plus loin, et inclura aussi le contenu des utilisateurs. Typiquement, si tu crées une playlist sur ton instance A et que je te follow sur mon instance B, je pourrai écouter ta playlist ou bien la partager avec mes followers. Je pourrais également envoyer un message à un·e ami·e sur une instance C pour lui conseiller d’écouter telle ou telle chanson.

Interface officielle de Funkwhale

Est-ce que tu avais développé Funkwhale en ayant déjà la fédération derrière la tête ?

En fait je voulais que les instances communiquent, mais je n’avais aucune idée du comment. Très concrètement, c’est grâce à mon année passée sur Mastodon et aux discussions que j’ai vu passer régulièrement sur ActivityPub que je me suis rendu compte que c’était faisable. Auparavant, je voyais ça comme une fonctionnalité extrêmement complexe, ça me refroidissait beaucoup.

Est-ce que tu peux expliquer aux lecteurs du framablog ce qu’est ActivityPub ? À quoi ça sert, comment ça marche ?

Alors tout à l’heure je disais que la fédération, c’était le mécanisme qui permettait a des acteurs d’un réseau de s’échanger des messages. ActivityPub, qui est maintenant un standard du W3C, c’est un protocole qui permet de faire de la fédération, et qui définit notamment la structure des messages, leur contenu possible, l’endroit où il faut les envoyer, etc. Ça permet à ceux qui l’implémentent [les différents logiciels] de parler la même langue et donc de communiquer. Une des grandes forces du protocole, c’est qu’il réutilise des choses qui existaient déjà (HTTP pour l’envoi des messages, Json-LD pour la structure, Activity Streams pour les vocabulaires, c’est-à-dire le contenu des messages). Il rajoute finalement assez peu de choses ce qui permet de réutiliser plein d’outils déjà existants.

Pourquoi as-tu choisi ce protocole ?

Je l’ai choisi principalement parce que je ne suis pas hyper calé sur la question, qu’il était relativement récent, et qu’il permettait potentiellement de communiquer avec le fediverse. On peut imaginer que si un jour Mastodon ou Pleroma intègrent un player audio, un utilisateur de Funkwhale puisse recommander de la musique à un utilisateur de Mastodon, et que celui-ci pourra lire la musique en question directement dans Mastodon.

Tu dis que tu n’es pas hyper calé sur la question mais tu l’as quand même implémenté rapidement ! Quels sont tes retours pour l’instant sur la fédération des différentes instances Funkwhale ?

Les retours sont assez positifs, il y eu quelques couacs et bugs dus à des problèmes de tuyauterie, mais sinon ça fonctionne, ce qui fait plaisir. Ce qui manque principalement, à mon avis, ce sont des instances avec lesquelles fédérer mais il y en a régulièrement de nouvelles, donc le problème va disparaître avec le temps !

Tu m’as dit être émerveillé que ce projet intéresse tant de monde : on pourrait dire que le projet prend bien, alors ? Comment cela se fait d’après toi ?

Est-ce que ça prend bien ? Je dirais que oui : le chan matrix (#funkwhale:matrix.org) est assez vivant, il y a régulièrement des nouvelles idées, demandes, et des instances qui ouvrent (il doit y en avoir une petite dizaine je dirai). J’ai également quelques personnes qui contribuent sur des fonctionnalités spécifiques. J’espère arriver à réduire la difficulté d’accès pour les contributions externes, parce que le projet étant quand même assez complexe, ce n’est pas toujours évident. En ce moment je rédige beaucoup de documentation (installation, contribution, etc).

Pour moi, si le projet prend bien, c’est d’une part parce que le public auquel je me suis adressé jusqu’à maintenant (sur Mastodon) est assez sensible aux questions d’auto-hébergement, de décentralisation. C’est aussi grâce à la hype, à mon avis tout à fait justifiée, autour de PeerTube. Il y a deux mois, avant l’arrivée de la fédération dans Funkwhale, la question de la fédération était quasi systématique : « est-ce que Funkwhale peut se fédérer comme PeerTube ? ». J’ai passé beaucoup de temps sur cette fonctionnalité, parce que j’ai vu qu’il y avait une vraie demande et le fait d’y répondre en partie a contribué à susciter l’intérêt je crois 🙂

Pour les technos qui nous lisent : quels sont les conseils que tu pourrais donner à d’autres développeurs qui souhaiteraient implémenter de la fédération dans leurs logiciels ?

Aux personnes qui veulent se lancer dans de la fédération je dirai :

  1. Définissez bien en amont ce que vous voulez, et commencez par quelque chose de petit, dans le doute,
  2. N’ayez pas peur de demander de l’aide, car il n’y a pas encore beaucoup de ressources sur le sujet (sur Mastodon, il y a des tas de personnes prêtes à vous répondre dont moi-même).

Le 1. est important car c’est beaucoup plus dur de faire évoluer une fédération une fois qu’elle est lancée.

Quand tu conseilles de commencer par quelque chose de petit, tu parles de ce qui est fédéré ?

Je veux dire petit sur le plan fonctionnel. Par exemple, pas la peine d’essayer de ré-implementer Mastodon du premier coup. Mais peut-être juste une fonctionnalité qui permette de favoriser un toot du fediverse et de notifier son auteur que l’on a favorisé. Cela évite de se confronter à tous les problèmes d’un coup. Quand j’ai commencé sur la fédération, j’ai juste fait un bot coté Funkwhale qui pouvait recevoir des follows et répondre « pong » quand on lui envoyait le message « /ping ».

Tu as utilisé la doc de W3C ou tu considères que c’est vraiment en échangeant sur Mastodon que tu as pu avancer ?

Non, la spécification m’a énormément servi ! Le principal souci, c’est que la partie « gestion de l’authentification et des autorisations » n’est absolument pas spécifiée, donc là il a fallu aller creuser dans le code de Mastodon / PeerTube.

Est-ce que c’est important pour toi que le logiciel que tu as développé soit libre ?

C’est une question très importante pour moi. Je me suis fixé comme contrainte avec Funkwhale et depuis le début de ne bosser qu’avec des composants libres, et autant que possible, auto-hébergés. Ceci est valable tant pour la partie développement pure (le projet en lui même utilise des langages / bibliothèques libres), que pour la partie infrastructure autour du projet, qui est souvent complètement oubliée quand on pense « logiciel libre ». Ainsi, Funkwhale est développé sur mon Gitlab perso (en attendant un Gitlab dédié au projet ?), je communique dessus exclusivement sur des réseaux libres (Matrix, Mastodon…), l’intégration continue est également sur mes serveurs perso, etc. J’essaie de réfléchir, mais je ne vois pas une seule brique non-libre ou centralisée qui intervient dans le processus de développement du projet ou dans son fonctionnement au sens large.

Le principal souci que je vois avec ce montage, c’est que Funkwhale est du coup très lié à mon infrastructure d’auto-hébergement perso. Si le projet continue, il faudra mettre en place une structure administrative et des outils et moyens dédiés au projet je pense. Quant au projet lui-même, il est sous licence BSD, qui est une licence extrêmement permissive et que j’ai choisie un peu au hasard. J’avoue ne pas être très calé sur la question des licences et je suis ouvert à l’idée d’utiliser une autre licence plus adaptée au projet et à sa pérennité s’il le faut.

Pourquoi t’être donné toutes ces contraintes ?

Des raisons de placer le projet sous licence libre, j’en vois plein ! En vrac :

  • m’assurer que le projet puisse continuer même si j’arrête ou que je disparais,
  • permettre à d’autres personnes de participer et d’enrichir Funkwhale, ce dont je profiterai directement, étant utilisateur de l’outil et qui ne serait pas possible sur un modèle fermé,
  • rendre dans une certaine mesure une petite partie de ce que j’ai « pris » à la communauté. J’utilise Seafile, Mailcow, Firefox, Debian, et des centaines d’autres logiciels libres, chaque jour. Je ne contribue pas forcément à ces logiciels, mais si je peux enrichir ce patrimoine commun avec quelque chose qui répond à un besoin tant mieux !
  • cela m’a servi au cours de ma vie pro, pour montrer ce sur quoi je bosse facilement, pour que des personnes puissent lire du code que j’ai écrit

Et sur l’utilisation du libre dans le cadre du projet, je dirai que c’est par esprit de cohérence. Je me sens toujours très mal à l’aise de contribuer sur des projets libres sur Github, par exemple. Je n’ai rien contre Github en particulier, c’est une entreprise qui fournit un service de qualité, mais c’est devenu un SPOF énorme. Si Github tombe un jour, pour une raison ou une autre, le logiciel libre prendra un sacré coup ! Idem, je ne me vois pas faire un compte Twitter pour Funkwhale. Enrichir des publicitaires ? Très peu pour moi ! C’est aussi un moyen de garder le contrôle sur les moyens de production. Si je n’aime pas quelque chose dans Gitlab, je peux forker Gitlab, ou contribuer au projet pour le faire évoluer dans un sens qui me convient. Ce n’est tout simplement pas possible avec Github.

J’applique le même raisonnement pour les contributions financières. J’aurai pu ouvrir une page Patreon, par exemple, mais j’aurais été constamment tributaire de leurs décisions, de leur business-model etc. Avec Liberapay, je sais que je peux participer à l’évolution du projet, que ça ne sera pas racheté du jour au lendemain pour faire des sous.

Tout ça, ça donne de la tranquilité d’esprit, permet de travailler d’une façon plus posée, en accord avec ses principes. C’est important pour moi, même si du coup cela prend un certain temps pour mettre les pièces du puzzle en place, trouver et configurer des alternatives, etc. Mais je crois qu’il faut plus le voir comme un investissement que comme un coût. C’est une vision de la société, des interactions humaines et de ce qu’elles pourraient être. J’ai envie de participer à l’émergence de ça, une société qui soit basée sur le don, la bonne volonté, le positif en fait. Pour moi, cela passe notamment par le fait de développer Funkwhale sur ce mode, et d’utiliser Funkwhale comme levier pour mettre en valeur / utiliser d’autres projets qui fonctionnent sur ce même mode, pour créer un écosystème.

D’ailleurs, c’est développé en quel langage ?

Funkwhale est un projet découpé en deux composants : la partie API, autrement dit le back-end, qui gère les données, la musique, etc, et le front-end, qui est l’interface officielle du projet. Ce découpage complique certaines choses, mais a aussi énormément d’avantages. Premièrement, il est totalement possible d’utiliser Funkwhale avec d’autres clients (Desktop, Android, etc.), ou même avec une interface web différente de l’interface fournie avec le projet.

Quand on parle de contribuer à Funkwhale, on va donc parler généralement de contributions à l’un ou l’autre de ces composants. Le back-end est écrit en Python 3 avec Django (c’est un framework web sur lequel je suis très à l’aise et productif). Le front-end est écrit en VueJS, un framework Javascript assez simple à prendre en main mais très puissant. Et j’utilise la bilbiothèque Semantic UI pour les styles, car je la trouve très complète et jolie (c’est un peu le même principe que Bootstrap, ça fourni des composants et des outils pour obtenir une interface cohérente et fonctionnelle).

Le fait que Funkwhale soit séparé en plusieurs composants permet donc aux personnes voulant contribuer de participer sur le volet qui les intéresse. Jusqu’à maintenant, c’est la partie front qui a reçu le plus de contributions externes, avec par exemple un travail qui a été mené par Baptiste sur l’internationalisation et le design de la sidebar. Une autre personne a récemment contribué à la rédaction de la documentation pour permettre l’installation de Funkwhale avec le serveur web Apache. Je sais qu’une autre personne a également commencé à travailler sur la prise en charge du format Flac. Je demeure toujours le principal contributeur du projet, comme tu peux le voir ici. Néanmoins, j’espère que cela bougera dans les mois à venir, avec l’arrivée de nouveaux utilisateurs et utilisatrices et l’amélioration de la documentation.

 

Tu dis que l’auto-hébergement t’es venu par l’envie de recontrôler tes données : cette préoccupation semble traverser de plus en plus de personnes en ce moment. Cependant, installer Funkwhale sur son serveur, ça ne s’adresse pas à tout le monde, si ?

Effectivement il faut avoir un minimum de compétence et de curiosité pour installer une instance Funkwhale (ou PeerTube, ou Mastodon…). Ce n’est donc pas à la portée de tout le monde, mais cela reste malgré tout à la portée de beaucoup de personnes, je pense. D’autre part, chacun n’a pas besoin d’avoir son instance. Funkwhale étant multi-utilisateur, on peut envisager des déploiements par famille, par collectif, par CHATONS…

Enfin, une des grandes nouveautés de ces dernières années, c’est à mon avis Docker qui réduit grandement les difficultés à installer un service tel que Funkwhale. Tout le monde n’est pas forcément convaincu par cette techno, qui a aussi ses problèmes, mais la simplicité pour les déploiements est quand même un atout assez fort. Très concrètement, si tu consultes la doc d’installation de Funkwhale sur Docker, tu pourras constater qu’il suffit d’une dizaine de commandes à exécuter pour installer Funkwhale sur son serveur.

Ceci étant, oui, il y a un travail de pédagogie à faire pour rendre l’installation de ce genre de services plus simple, moins effrayante. Et aussi du boulot à faire pour intégrer ça avec les systèmes de packaging existant (Yunohost, Cloudron, etc.). D’ailleurs, un dernier mot sur l’auto-hébergement, mais un utilisateur a réussi à installer et à utiliser Funkwhale sur Raspberry Pi ! Je pense que c’est un bon indicateur du fait qu’une instance Funkwhale peut tourner sur des systèmes pas forcément hyper puissants, donc avec un coût réduit.

Est-ce qu’il existe un endroit où l’on peut être mis en relation avec des personnes qui hébergent leur instance (un peu comme joinmastodon.org ou joinpeertube.org) ?

Oui, c’est par ici.

Join Funkwhale

Comment est-ce que tu arrives à t’en sortir avec ce projet et ton boulot ?

En termes d’organisation, c’est vrai que c’est assez chronophage. En trois ans, je pense que j’ai consacré plusieurs centaines d’heures à ce projet, probablement aux alentours de 500 ou 600. Cela se fait sur mon temps libre, puisque je suis également salarié à temps plein. Fort heureusement, c’est avant tout un plaisir pour moi de faire évoluer cet outil et de l’utiliser au quotidien. C’est un travail entièrement bénévole, même si j’ai récemment ouvert une page Liberapay sur laquelle les contributeurs et contributrices du projet peuvent recevoir des dons.

À moyen terme, si je reçois suffisamment de dons via ce biais, j’envisage de réduire mon temps de travail salarié pour consacrer plus de temps au projet.

Autrement, un message à faire passer aux personnes intéressées par le projet et qui voudrait y contribuer ?

Oui : les contributions peuvent être de toutes sortes, et pas seulement financières ! Corriger une erreur typographique, remonter un bug, faire le tri dans les tickets, commenter des discussions pour apporter des compléments d’information, ce sont des contributions valables qui vont faire avancer le projet. Le code ne fait pas tout, loin de là. Le simple fait de parler du projet, comme tu le fais, ou de dire merci, c’est également une contribution qui booste le moral et la motivation, attire d’autres contributeurs, etc. Bref c’est un cercle vertueux !

Et si une personne est intéressée pour contribuer au code, je maintiens également une liste d’issues « faciles » sur le Gitlab. Ce sont des issues faciles pour une première contribution, pour découvrir le projet. Je n’ai pas spécialement d’expérience en gestion de projet libre, Funkwhale est mon premier projet avec cette ampleur, donc je découvre chaque jour, j’essaie d’améliorer ce qui peut l’être pour réduire la barrière à l’entrée pour de nouvelles personnes.

Tu me disais qu’on pourrait te retrouver aux Rencontres Mondiales du Logiciel Libre (RMLL) ?

Tout à fait ! Suite aux nombreux échanges qui ont eu lieu après l’annonce de l’arrivée de la fédération dans Funkwhale, je suis entré en contact avec Jérémie qui m’a proposé de venir présenter le travail effectué dans Funkwhale aux RMLL 2018 qui auront lieu à Strasbourg début juillet. La présentation a pour titre « Web fédéré avec ActivityPub et WebFinger » et sera une introduction au fonctionnement concret de ces deux protocoles qui permettent de construire des applications fédérées. J’en profiterai également pour faire le lien avec ce qui a été fait dans Funkwhale, partager les techniques employées, les soucis rencontrés, etc. Les modalités pratiques et la date ne sont pas encore définies mais je pense que le programme définitif sera diffusé prochainement sur le site des RMLL.

Merci pour tes réponses Eliot ! Comme de coutume, on te laisse le mot de la fin :

Tout d’abord, merci de m’avoir consacré du temps pour parler de ce projet. Cela me touche énormément, d’autant plus que je me sens assez proche de l’état d’esprit Framasoft, dont je suis les actions depuis plusieurs années: essayer de travailler avec les gens, de faire émerger autre chose, d’accompagner les personnes, plutôt que d’être en mode « Lis le fichu manuel!!!! ». Si vous souhaitez vous impliquer ou tout simplement en savoir plus, je voudrais donc vous dire ceci : n’ayez pas peur de venir discuter sur Matrix ou sur Mastodon. Je prends personnellement énormément de plaisir à accueillir les nouveaux et nouvelles venu et à répondre aux questions, techniques ou non. Et si vous souhaitez mettre la main à la pâte mais n’êtes pas sûr⋅e de savoir comment faire, on vous aidera !

Liens utiles




Comment réparer les médias sociaux (et faire encore mieux)

Le récent scandale Cambridge Analytica semble avoir brièvement remis au goût du jour la question du siphonnage de données par les médias sociaux. Il est bon de se rappeler que la collecte de données n’est pas une simple pratique de Facebook, mais bien leur modèle économique : que cette entreprise – parmi les plus cotées en bourse au monde – n’existe qu’en se nourrissant de nos Likes, photos et autres interactions sociales.

Vol de données privées, manipulation de masse, matraquage publicitaire, exploitation de nos faiblesses psychologiques, … il y a beaucoup à dire sur les pratiques néfastes des médias sociaux centralisés. Mais aujourd’hui tournons-nous vers une solution et découvrons ensemble un moyen de lutter contre ces derniers avec des alternatives plus éthiques. Non, mieux : une fédération d’alternatives plus éthiques.

Nos ancêtres les Gaulois ?

L’an dernier, nous annoncions vouloir tourner la page de Dégooglisons Internet, avec laquelle se tourne aussi la métaphore des camps gaulois libres qui luttent contre l’invasion romaine propriétaire.

Ce que nous avons omis de préciser, c’est que n’en déplaise à Goscinny, l’histoire ne s’est pas réellement passée comme nous avons l’habitude de la lire dans ses albums. Ce que nous appelons les gaulois est en réalité un terme un peu générique inventé par les romains pour désigner les nombreux petits peuples qui vivaient en Gaule.

carte ancienne représentant les gaules à l'époque gallo-romaine : Gaules belge et celtique, province romaine et aquitaine.

Même s’il pouvait y avoir quelques alliances entre plusieurs peuples, en aucun cas tous ces villages gaulois étaient unis pour former un seul grand peuple gaulois. Ces derniers étaient bien indépendants : ils se faisaient beaucoup la guerre entre eux et parlaient leurs propres patois locaux.

Maintenant imaginez que vous êtes un peuple gaulois vivant à cette époque : vous voyez débarquer la grande armée romaine, qui envahit un à un d’autres villages gaulois. Bon, vous n’avez pas spécialement beaucoup d’affinités, mais on peut quand même vous trouver une petite larme à l’œil, ne serait-ce que parce que les Romains ne respectent pas vos principes.

Comment faire, donc, pour que ces braves Gaulois continuent paisiblement leurs bagarres de poissonniers et leurs concours de moustache ? Peut-être essayer d’améliorer l’entente entre ces différents peuples. Hmm, mais ce n’est pas si évident, les peuples gaulois parlent chacun leur propre patois, la barrière de la langue pose rapidement un gros frein à tout arrangement.

Les libristes, ces grands relous

Vous l’aurez compris, les logiciels libres sont comparables à un ensemble de villages gaulois : bien sûr, beaucoup souhaitent lutter contre l’invasion de Google, Apple et autres GAFAM, mais ils veulent toutefois garder une certaine indépendance : il n’y a qu’à regarder le nombre de distributions Linux pour se rendre compte de la diversité qu’apporte la possibilité de modifier à loisir un système.

Extrait de l'arbre des distributions Linux : il y a plein d'alternatives.

 

On pourrait penser que c’est bien dommage, que tous ces libristes feraient mieux d’unir leurs forces pour lutter ensemble contre leurs ennemis communs au lieu de se diviser ainsi. Mais ce serait mettre fin à ce qui motive justement cette soif de créer des projets libres : la possibilité de pouvoir les modifier et les partager librement.

Au contraire, on se contente d’être fiers de voir autant de diversité dans les logiciels libres, comme on peut aujourd’hui être amusé à l’idée de savoir que nous sommes les descendants d’une grande diversité de peuples de la Gaule et non pas d’un seul grand peuple gaulois.

L’effet de réseau

En somme, le meilleur moyen de lutter contre la centralisation d’Internet dans d’immenses silos à données que sont les GAFAM, serait de faire des silos plus petits. On a en tête le projet Chatons : ce collectif d’hébergeurs indépendants, qui proposent des services – les mêmes qu’on trouve chez Framasoft, pour la plupart – alternatifs à ceux fournis gracieusement par Google et consorts (dans ce dernier cas, c’est en échange de quelques informations personnelles et d’un peu de temps de cerveau disponible, hein, rien de méchant).

Pour certains logiciels comme Framadate ou Framapad, qui remplacent rapidement leurs équivalents propriétaires, c’est plutôt facile : on peut même choisir encore d’autres alternatives selon nos préférences. C’est surtout de nouvelles habitudes à prendre, mais rien de vraiment bloquant.

En revanche, pour les logiciels qui permettent aux gens de communiquer ensemble, notamment les médias sociaux (qu’on appelle à tort les réseaux sociaux – parce que oui, le réseau, c’est vos amis 😉 ), c’est plus compliqué.

Par exemple il est bien difficile de remplacer Facebook par son équivalent libre, car la plupart des gens sont sur Facebook : il faudra donc les convaincre de franchir le pas, ce qu’ils hésiteront à faire car… il n’y a pas assez de monde, et qu’il faudrait aussi convaincre les amis de vos amis et ainsi de suite. Ah, et avant que vous ne posiez la question : oui, c’est compliqué de dire à 2 milliards d’utilisateurs : « allez à trois on s’en va tous pour aller sur telle autre plateforme, vous êtes prêts ? ».

Ce problème s’appelle l’effet de réseau. C’est le principal problème des alternatives libres aux sites impliquant des interactions sociales et il n’est pas spécifique aux médias sociaux : par exemple le projet Covoiturage Libre, malgré ses valeurs éthiques, peine à se développer face au monopôle de son équivalent propriétaire.

Dans le monde du libre, l’effet de réseau est empiré par le fait qu’il y a souvent plusieurs alternatives et que, comme nous l’avons vu, les logiciels libres sont des villages gaulois : un peu divisés, ils aiment leur indépendance et leurs spécificités.

Cela ne facilite pas la tâche à un éventuel romain qui voudrait tout plaquer pour élever des chèvres en Gaule : quel village choisir ?

Et si on parlait la même langue, ça n’irait pas mieux ?

la Tour de Babel, tableau de Brueghel l'Ancien

 

La communication est la clé d’une bonne entente entre peuples : une solution pour assurer la pérennité de nos villages gaulois serait de les aider à mieux communiquer entre eux. Autrement dit, de se mettre d’accord sur une langue qui serait comprise par tous les peuples gaulois, une sorte d’Espéranto visant à améliorer la communication. Ce qui bien sur, ne les empêche pas de parler leur patois quand ils sont entre eux.

Le fait de définir un langage commun permet donc aux petits villages d’échanger ensemble tout en gardant leur indépendance. Ils deviennent une sorte de fédération de peuples indépendants : ils ont chacun leurs us et coutumes, mais se comprennent bien, ce qui par exemple peut faire avancer le commerce et créer une sorte de synergie gauloise qui les rend d’une certaine manière plus unis pour repousser l’invasion romaine.

Bon, on ne va pas vous mentir, l’idée d’une langue fédératrice pour les médias sociaux ne date pas d’hier. Il y en avait déjà plusieurs depuis de nombreuses années, on peut donc relativiser sur le fait qu’une nouvelle venue arrive pour tout arranger.

Strip de Comics XKCD - image 1 situation initiale avec 14 standards en concurrence - image 2 coversation : un personnage dit à l'autre qu'il faut développer un standard universel qui remplacera tous les autres - Image 3 : résultat final, 15 standards en concurrence

 

Un langage pour les fédérer tous …

Le nouvel Espéranto des logiciels libres se nomme ActivityPub : c’est une nouvelle langue pour mettre d’accord les médias sociaux alternatifs.

La très bonne nouvelle c’est qu’il y a quelques mois, ActivityPub a été validé par le W3C. Le W3C, c’est l’équivalent de l’Académie Française pour le web : à l’instar de celle-ci, dont le but est d’uniformiser la langue de Molière en établissant certaines normes, le W3C valide quels sont les mots que les langages d’Internet devraient utiliser.

Rien ne nous oblige bien sûr à respecter cette convention si l’on préfère notre patois local, mais le fait de valider un langage permet aux villages – notamment les nouveaux venus – de moins se poser de questions sur le choix de la langue à utiliser pour se comprendre.

Par exemple, le logiciel Mastodon est une alternative à Twitter basée sur ActivityPub. Comme nous aimons décentraliser Internet, il y a plusieurs villages Mastodon un peu partout, qui communiquent entre eux. L’utilisateur du village Framapiaf peut échanger avec son cousin vivant dans le village Mamot, sans que ce dernier ne s’aperçoive qu’il est en train de parler à un lointain voisin.

Logo d'ActivityPub

… et dans les internets les lier.

Là où cela devient intéressant, c’est que Mastodon est un logiciel libre et donc que chaque village Mastodon peut l’adapter à ses besoins :

– chaque village a son propre jeu d’emojis personnalisés ;
– le village Framapiaf a donné un coup de peinture sur l’interface ;
– d’autres villages ont fait leur petite cuisine interne en repoussant par exemple la limite des 500 caractères par message, car ils la trouvaient trop contraignante.

Aucun problème : quelles que soient ces personnalisations, tout le monde continuera de communiquer à travers les villages, car ils parlent toujours la même langue, ActivityPub.

Le fait d’utiliser un média social basé sur le principe de fédération vous rend libre. Si le village Mastodon sur lequel vous vous trouvez change un jour ses conditions d’utilisation, vous être libre de déménager dans un autre village qui vous correspond mieux.

Mieux : si un jour le logiciel Mastodon ne respecte plus du tout les utilisateurs, il y a fort à parier que des défenseurs du libre reprendront le logiciel et en feront une autre version (cela s’appelle un fork) et que petit à petit, les villages migrent vers cette nouvelle version plus respectueuse, sans que les utilisateurs soient fortement impactés. Cela nous permet de revenir aux valeurs essentielles du libre : c’est l’utilisateur qui a contrôle sur le logiciel, et non l’inverse.

D’ailleurs, quelqu’un pourrait se dire un jour que l’interface de Mastodon est trop compliquée et décide d’en faire une totalement différente, plus proche de celle de Twitter. Ce n’est pas grave. Il n’y a pas tout à refaire, toute une base d’utilisateurs à reprendre. C’est juste des villages un peu différents qui apparaissent et avec qui on continuera de communiquer. Cela peut même faciliter l’adoption d’ActivityPub par le grand public : si une personne n’aime pas Mastodon, on peut lui présenter un tout autre logiciel qui lui convient mieux et permettra de communiquer avec les mêmes personnes.

Là où cela devient très, très intéressant, c’est qu’en fait les villages peuvent être complètement différents et avoir leurs propres spécialités. Revenons à nos Gaulois : on peut supposer que les villages proches des côtes vivent de la pêche et fassent du commerce de poisson entre eux, tandis que ceux vivant dans les montagnes soient davantage occupés par l’élevage de chèvres et le commerce de fromages.

Notre Espéranto permet à notre village de pêcheurs de Bordeaux de se fédérer à un village savoyard pour récupérer du Beaufort en échange de poissons, pour le transmettre à d’autres pêcheurs Bretons, tandis qu’ils profitent du vin venant d’un autre village voisin.

De la même manière, Mastodon peut communiquer avec d’autres logiciels fédérés mais complètement différents : par exemple FramaTube, l’alternative à Youtube. Il vous est alors possible d’être notifié des nouvelles vidéos qui sortiront sur cette plateforme et même de répondre aux commentaires d’une vidéo depuis Mastodon et inversement. Idem si vous mettez une vidéo en favori sur Mastodon, cela apparaîtra sur PeerTube (vous pouvez retrouver cet exemple sur cette démonstration).

La genèse d’une diversité numérique

ActivityPub va probablement faire beaucoup de bien à Internet. De nombreuses alternatives fédérées vont sortir prochainement. En tendant un peu l’oreille, on peut déjà entendre parler de blogs fédérés ou d’alternatives à Instagram ou Deezer, basées sur ActivityPub.

Cela va amener un peu de diversité dans notre paysage numérique : diversité qui ne peut pas, par essence, se retrouver dans les services centralisés, car ces derniers parlent leurs propres langues. Vous ne pourrez jamais lire et partager des Tweets depuis Facebook, ou bien répondre à un commentaire Youtube depuis Instagram. Avec la fédération, cela devient possible et cela donne à ActivityPub un avantage compétitif face aux médias sociaux propriétaires.

Ce qui est bien, c’est que cela ne concerne pas seulement les personnes soucieuses de l’usage qui est fait de leurs données personnelles : les moldus du libre pourront trouver en ActivityPub un outil avant tout pratique. Les technophiles apprécieront la possibilité d’interconnecter toutes leurs plateformes numériques entre elles. Ceux qui trouvent que leurs médias sociaux sont monotones aimeront amener un peu de diversité à leurs fils d’actualité. Les blogueurs trouveraient intéressant le fait de permettre à leurs lecteurs de recevoir et commenter un article très facilement via leurs média social favoris.

Alternatives aux médias sociaux basées sur ActivityPub. Respectivment : Funkwhale (musique fédérée), PeerTube (vidéos), Mastodon (micro-blogging) et PixelFed (images).

C’est également le cas du côté des développeurs d’application, qui trouveront en ActivityPub un moyen d’atteindre très rapidement un grand nombre d’utilisateurs. En effet la fédération est un formidable terrain d’expérimentation : si quelqu’un a une bonne idée, il peut la développer en la connectant à la fédération.

Supposons par exemple que vous vous lanciez dans le développement d’un site de partage de recettes de cuisine fédéré. Vous en parlez à vos amis, dont certains sont déjà sur Mastodon. Comme tous aiment bien l’idée, ils s’abonnent à votre site depuis Mastodon pour être notifiés de vos meilleures recettes. Lorsqu’ils recevront votre dernier clafoutis aux fraises, ils pourront le partager directement à tous leurs abonnés, lesquels seront intrigués par ce nouveau village récemment apparu dans la fédération, et pourront s’abonner à leur tour. 😉

En utilisant ActivityPub, nous participons à cette prise de conscience globale dans laquelle nous découvrons tous le point faible de ces silos à données : étant centralisés, ils sont vulnérables face à la fédération. Si nous arrivons à promouvoir suffisamment ces alternatives au grand public, nous pouvons amener ces plateformes centralisées à se confronter à un combat qui leur est perdu d’avance.

En utilisant ActivityPub, vous faites un pied-de-nez à tous ces soi-disant réseaux sociaux proclamant vouloir réunir les gens… mais dans un système cloisonné. Vous les laissez au profit d’alternatives qui ont pu voir le jour parce qu’elles ont réussi, elles, à se réunir, à se fédérer les unes aux autres.

Pour résumer

1. ActivityPub est un Espéranto qui permet aux médias sociaux alternatifs de se comprendre entre eux (se fédérer) ;
2. cela permet à deux utilisateurs de se suivre l’un et l’autre, même s’ils habitent dans des villages différents (qu’on appelle instances) ;
3. ça fonctionne bien même s’ils sont totalement différents : le village de pêcheurs peut échanger avec le village de fromagers (comme si depuis Facebook on pouvait liker un tweet) ;
4. tous ces échanges entre villages s’appellent la fédération et de nouveaux logiciels peuvent la rejoindre n’importe quand (et ça va être très cool).

Envie d’essayer maintenant ?

Vous voulez être les pionniers de cette nouvelle ère numérique qu’est la fédération ? Libre à vous de choisir votre village. Pour commencer, nous vous conseillons ceux sous la bannière Mastodon (qui a fêté son 1er anniversaire il y a quelques mois), car le logiciel est bien abouti.

Vous trouverez sur le site Join Mastodon d’autres explications sur son fonctionnement, ainsi que la liste des villages disponibles (et nous laissons bien sûr la porte de notre propre village ouverte aux nouveaux venus). 😉

En graphisme BD, la mascotte de Mastodon : un éléphanteau assis sur son derrière, trompe vers le ciel.

Crédits images :




Ce qui nous pousse au Libre

Si certains logiciels libres sont réputés à la fois pour leur efficacité et leur esthétique fonctionnelle (qu’on nommera design, parce que c’est ainsi), il faut reconnaître qu’ils ne font pas la majorité.

Certains designers aimeraient apporter leur pierre à l’édifice libriste, et rendre plus attractifs et fonctionnels les logiciels libres, mais la route semble encore bien longue comme l’a récemment constaté Maiwann. Le dialogue entre développeurs de logiciels libre et designers semble cependant s’amorcer sous les meilleurs augures, d’abord en identifiant clairement les besoins mais aussi en proposant des solutions d’interactions. Dans ce billet, Marien Fressinaud apporte une réponse de développeur et identifie, à son tour, un espace de convergence. Cet article a été initialement publié sur son blog sous licence « CC BY ».

Marien, développeur et membre de Framasoft.

Il y a quelques jours, Maiwann proposait dans un article de réconcilier designers et logiciels libres. L’article ne manque pas d’intérêt, ne serait-ce que parce qu’il identifie les freins à la collaboration des designers au libre et suggère des actions concrètes pour y remédier.

Bien que je partage bon nombre des constats, je souhaitais le « compléter », cette fois en adoptant le point de vue du développeur que je suis. En effet, il est un sujet que Maiwann n’aborde quasiment pas : pourquoi faire du logiciel libre ? Pour ma part, j’aurais en effet aimé mieux comprendre ce qui motive des designers à vouloir contribuer au Libre. En guise d’effet miroir, j’essaie donc dans cet article d’envisager les raisons qui peuvent inciter un développeur à le faire, sans prétendre être exhaustif. Cette mise en perspective repose sur mes expériences personnelles concernant FreshRSS, Lessy, les actions menées au nom de Framasoft ou encore à travers les écrits que j’ai pu lire à droite à gauche.

Apprentissage

Dans l’article de Maiwann, la seule référence à une potentielle motivation se trouve au détour d’un paragraphe :

Lors de nos études, […] alors que nous cherchons à nous entraîner, sur notre temps libre ou pour des projets de fin d’année, nous nous plaignons de ne connaître aucun développeur avec qui co-créer des sites ou logiciels.

Voilà une raison qui devrait parler à bon nombre d’étudiants et d’étudiantes ! Appliquer ce que l’on a pu apprendre en cours et donc, par extension, apprendre par la pratique est souvent moteur chez les développeurs. J’ai moi-même développé un certain nombre de programmes avec cette simple motivation. Par exemple, Minz fut ma tentative de comprendre le fonctionnement interne des frameworks web. FreshRSS a été l’occasion de travailler véritablement en communauté, et donc en équipe collaborant à distance et de façon asynchrone. Sur Lessy, j’ai pu consolider tout un paquet de connaissances que j’ai ensuite pu proposer et appliquer au boulot. Le logiciel libre est une formidable source d’apprentissage que je recommande fortement à toutes et tous.

Cela étant dit, considérer l’apprentissage comme seul moteur dans le développement d’un logiciel libre est bien entendu extrêmement réducteur et j’aurais tendance à dire que ce n’est pas la raison majeure (bien qu’il s’agisse probablement de la porte d’entrée principale pour bon nombre d’entre nous). Cherchons donc ailleurs d’autres raisons qui nous poussent, nous développeurs et développeuses, à produire du logiciel libre.

Plaisir, apprentissage et logiciel libre : le Serious Gaming (et Framinetest) en sont un bon exemple.

Plaisir

Dans le prologue du bouquin L’Éthique hacker, Linus Torvalds explique les motivations des hackers derrière le système d’exploitation Linux :

La raison pour laquelle les hackers derrière Linux se lancent dans quelque chose, c’est qu’ils trouvent ça très intéressant et qu’ils veulent le partager avec d’autres. Tout d’un coup, vous avez le plaisir parce que vous faites quelque chose d’intéressant et vous avez aussi le pendant social.

Il nous dit plusieurs choses ici. Tout d’abord, le développement d’un tel système relève avant tout du plaisir. Et il est vrai qu’on peut se demander ce qui pousse des milliers de développeurs à partager leurs savoirs et leur temps, généralement de façon gratuite, si ce n’est le plaisir de le faire ? D’ailleurs Pekka Himanen (l’auteur du bouquin) cite un peu plus loin Éric Raymond, à l’origine de la popularisation du terme « open source » (j’aurai l’occasion de revenir sur ce terme plus tard) :

La conception de logiciel et sa mise en œuvre devraient être un art jubilatoire, et une sorte de jeu haut de gamme. Si cette attitude te paraît absurde ou quelque peu embarrassante, arrête et réfléchis un peu. Demande-toi ce que tu as pu oublier. Pourquoi développes-tu un logiciel au lieu de faire autre chose pour gagner de l’argent ou passer le temps ?

On y retrouve la notion de plaisir à travers le « jeu haut de gamme ». Je prends souvent l’exemple du Sudoku ou de la grille de mots-croisés : il n’y a, à priori, aucune raison de remplir ces cases de chiffres ou de lettres, si ce n’est le plaisir de résoudre un problème, parfois complexe. Je trouve personnellement que le développement de logiciel peut amener à un état de satisfaction similaire lorsqu’on se trouve face à un problème et qu’on arrive finalement à le résoudre après plusieurs heures jours semaines de recherche.

D’un point de vue personnel, j’ai toujours été attiré par les domaines de « création ». J’ai immédiatement accroché au développement lorsque j’ai découvert que créer un site web était aussi simple que créer un fichier texte avec quelques mots dedans. Les balises HTML ? – Un simple jeu de Lego®. Les CSS ? – Quelques directives de base à connaître et on arrive rapidement à quelque chose de totalement différent. Un serveur web ? – Un ordinateur avec un logiciel spécifique qui tourne dessus. Un bug ? – Une « chasse » durant laquelle on déroule le programme qui nous semblait si logique au moment de l’écrire (mais qui l’est maintenant beaucoup moins !). Pour moi, la beauté de l’informatique réside dans sa simplicité et sa logique : il y a un véritable plaisir à comprendre comment toutes ces petites boîtes s’agencent entre elles et que tout devient plus clair.

L’espace Logiciels Libres, Hackers, Fablab de la fête de l’Huma 2016.

Partage

Si l’on s’en tient aux notions d’apprentissage et de plaisir, il n’y a rien qui distingue le logiciel libre du logiciel propriétaire. Vous pouvez très bien apprendre et éprouver du plaisir en développant du code fermé. Il nous faut revenir à la citation de Torvalds pour commencer à percevoir ce qui les différencie :

[…] ils veulent le partager avec d’autres.

Le partage : on a là une valeur fondamentale du logiciel libre qui ne trouve pas véritablement son pendant du côté du logiciel propriétaire. Bien que j’aie plus de mal à identifier clairement ce qui peut motiver l’être humain à partager ses savoirs, c’est quelque chose que je ressens effectivement. Cet aspect coopératif — Torvalds parle d’un « pendant social » — peut créer ou renforcer des liens avec d’autres personnes ce qui rend cette activité profondément humaine.

Partager, c’est donc transmettre. Transmettre à une communauté, donner les clés pour que celle-ci soit indépendante. Partager ses savoirs qui permettront peut-être à d’autres de bâtir autre chose par-dessus. Cela permet aussi de créer du lien humain, rencontrer des personnes et ouvrir ses perspectives en créant son propre réseau. C’est aussi s’offrir un coin de canapé quand on voyage. Je me suis rendu compte assez récemment de ce que m’offrait aujourd’hui cette décision en IUT de partager les petits programmes que je pouvais développer sur mon temps libre. La liberté n’est pas que celle du code.

Il y a certainement une forme de fierté à avoir exploré un domaine le premier, ou développé une application que d’autres vont utiliser (« Quoi ? Ce que j’ai fabriqué de mes propres mains t’est aussi utile ? »). Si cette fierté est par essence un peu narcissique (je suis toujours un peu pénible lorsque je suis cité chez NextInpact ou chez Korben 😇), elle est aussi bénéfique car elle encourage à rendre son travail public et donc… partager encore.

Loin du cliché des hackers à capuche, l’édition 2018 du Toulouse HackerSpace Factory utilise Langue des Signes et police Open-Dyslexie dans son imagerie.

Éthique

On retrouve aussi cette notion de partage dans les écrits de Richard Stallman lorsqu’il nous parle des quatre libertés du logiciel :

Elles sont essentielles, pas uniquement pour les enjeux individuels des utilisateurs, mais parce qu’elles favorisent le partage et la coopération qui fondent la solidarité sociale.

Ces mots, pris du point de vue de Stallman, sont bien évidemment à interpréter sous la dimension éthique (et donc politique) du logiciel libre, ce qui n’est pas forcément le cas de Torvalds (je ne saurais néanmoins l’affirmer). Puisque Stallman est à l’origine du mouvement du logiciel libre, on ne peut évidemment pas enlever l’éthique de son équation ou alors vous obtenez de l’open source (comme il l’explique dans l’article cité plus haut). On peut toutefois raisonnablement penser que les partisans du logiciel libre sont moins nombreux que ceux de l’open source, ce que j’explique par une peur ou un désintérêt envers cet objet politisé.

Je trouve toutefois dommage de ne pas plus s’y intéresser. En effet, la dimension éthique aide à répondre à une question que beaucoup de personnes peuvent se poser : « ce que je fais au quotidien a-t-il du sens ? ». Stallman y répond par la défense et le respect des utilisateurs et utilisatrices :

Le mouvement du logiciel libre fait campagne pour la liberté des utilisateurs de l’informatique depuis 1983.

Ou encore :

Pour qu’on puisse dire d’un logiciel qu’il sert ses utilisateurs, il doit respecter leur liberté. Que dire s’il est conçu pour les enchaîner ?

Si je souhaitais conclure par cet argument, c’est parce qu’il aide à boucler la boucle avec l’article de Maiwann. En effet, en tant qu’UX designer, elle va avoir à cœur de répondre aux besoins de ses utilisateurs et donc d’imaginer des mécanismes pour rendre l’outil le plus utilisable et accessible possible. Aujourd’hui il me semble percevoir dans cette communauté un mouvement de prise de conscience que ces mécanismes doivent respecter (on y revient !) les personnes utilisant le logiciel. Cela est superbement bien illustré par la vidéo « Temps de cerveau disponible » (de la série « (Tr)oppressé » que je recommande vivement) dans laquelle un ancien employé de Google, expert en éthique, témoigne :

Le but est de capter et d’exploiter au maximum l’attention.

Il l’illustre ensuite par le lancement automatique de l’épisode suivant sur Netflix et par le défilement infini sur Facebook ou Twitter (incitant de ce fait à parcourir son fil d’actualité dans son ensemble) ; ces petits riens qui font que nous revenons sans cesse à ces applications et que nous en devenons dépendant⋅e⋅s alors qu’elles n’ont d’intérêt que de nous divertir.

L’un des problèmes que j’identifie aujourd’hui est que le logiciel libre copie beaucoup (trop) ce qui se fait dans le propriétaire, et en particulier chez GAFAM et consorts… jusque dans leurs mécanismes nocifs. On peut ici reprendre l’exemple du mécanisme de défilement infini que l’on retrouve chez Mastodon ou Diaspora (et même sur FreshRSS !). Une certaine forme de dépendance peut donc s’installer au sein même de logiciels libres.

Convergence des buts ?

Les designers peuvent aujourd’hui nous aider, développeurs et développeuses, à repenser l’éthique de nos logiciels en replaçant les usages au centre de nos préoccupations et en imaginant et proposant des mécanismes permettant « d’endiguer » ce flux permanent d’informations qu’il nous faut ingurgiter.

Elles et ils peuvent aussi nous aider à atteindre véritablement nos utilisateurs et utilisatrices en rendant nos outils utilisables et… utilisés. Car un logiciel non utilisable peut-il véritablement être considéré comme Libre ? Je ne peux m’empêcher de faire ici le parallèle avec l’association Liberté 0 qui a pour objet de « sensibiliser et de promouvoir le numérique libre et accessible à toutes et tous ». Dans leur charte, il est explicité :

Les membres du groupe « Liberté 0 » considèrent que la liberté d’exécuter un programme n’a de sens que si celui-ci est utilisable effectivement.

L’association est donc dans cette même démarche de promouvoir l’« utilisabilité » des logiciels, au même titre que les UX designers (mais sous le prisme de l’accessibilité).

N’y aurait-il pas ici une convergence des buts ? N’existe-t-il pas un lieu où nous pourrions nous regrouper tous ensemble pour imaginer des outils autres que ceux issus du « capitalisme de surveillance » ?


Merci à Maiwann pour sa relecture attentive !




Robin, stagiaire chez Framasoft et porteur de projet

Vous ne connaissez pas Robin ? C’est le stagiaire qui a conçu les pages Framasites dont nous parlions ici, ou plus exactement le logiciel libre qui les fait tourner, à savoir PrettyNoémieCMS

Si son stage est terminé, nous ne pouvions pas le laisser partir sans parler avec lui de sa démarche, ses projets, etc.

Pour le plaisir, nous avons décidé d’illustrer ce long échange de captures d’écrans de pages Framasite qui ont retenu notre attention.

Cliquez pour découvrir cette page Framasite qui explique comment faire une page Framasite. Hyper-méta, tavu.

Portrait de Robin

Bonjour Robin, peux-tu te présenter en quelques phrases

J’ai bientôt 30 ans et j’ai un parcours avec plein de virages qui m’ont fait passer par les cases école d’ingé, CAP cuisine, travail social… le tout avec des fortes valeurs éthiques et un intérêt particulier et assez central pour l’abolition du capitalisme (lectures, engagement militant, syndical, squat…). le dernier virage m’a amené à l’envie de créer un outil numérique d’émancipation sociale dont l’idée a pointé pendant le mouvement contre la loi travail, j’ai donc dû passer à l’apprentissage du code pour pouvoir le réaliser.

Comment on se retrouve stagiaire pour Framasoft avec ce parcours ?

Framasoft me permettait plusieurs choses intéressantes : découvrir de l’intérieur le monde du libre et de la production collaborative de services web, me faire une expérience intéressante en développant pour eux, et peut-être de faire de ce stage un tremplin pour mon projet… d’éviter enfin de me retrouver à bosser gratuitement pour une entreprise dont la finalité est le profit. J’ai fait une candidature spontanée en parlant de mon parcours de mon projet et de mes valeurs, et ça a très vite collé.

Comment as-tu été accueilli ?

J’ai rien à redire sur mon accueil, à la fois carré et sans laisser de faux espoirs et de fausses promesses et en même temps très chaleureux, rémunéré en plus ce qui est rare… Je suis quelqu’un d’autonome et je m’y suis bien retrouvé, les impératifs de la campagne de financement de fin d’année ne permettaient pas forcément à l’équipe de me tenir par la main, mais j’aime bien la liberté que ça m’a permis. et puis j’ai pu ressentir tout au long de mon stage une grande confiance dans les choix que je faisais et ça a été très encourageant.

Quelle était ta mission / ton cahier des charges ?

J’étais censé réaliser des améliorations de l’interface utilisateur du dernier service proposé par Framasoft : Framasite. L’idée était d’offrir une expérience utilisateur assez proche de la simplicité d’un WIX pour que n’importe qui, sans aucune compétences spécifique en informatique, puisse mettre en ligne un joli site web en quelques clics dans une interface très intuitive. La voie que je devais explorer pour y parvenir consistait à améliorer le CMS sur lequel était basé Framasite, en lui ajoutant tout plein d’améliorations le rendant plus simple à utiliser.

cliquez sur l’image pour découvrir ce fan-site consacré à Pepper and Carrot

 

…et finalement, tu as plongé dans le code et qu’est-ce que tu as découvert ?

Framasite est basé sur GRAV, un CMS au code élégant, qui permet de générer des pages assez rapidement avec relativement peu de compétence en PHP puisque il utilise un mélange de markdown, de fichier de configuration en YML et de templates en TWIG. beaucoup d’aspects sont très automatisés, et cela amène une grande élégance du CMS, comme par exemple la génération automatique des formulaires du panneau administrateur… Pourtant cette automatisation rend très difficile d’adapter l’interface afin d’offrir des parcours utilisateurs simplifiés pour la construction des pages, comme de regrouper certains champs d’un formulaire, n’en faire s’afficher que certains, ou de manière progressive… Il est très difficile de partir de l’expérience utilisateur souhaitée pour réaliser le code correspondant, et l’on se retrouve toujours avec des solutions de « bricolage ».

L’image que j’ai en tête pour des personnes pas très familières avec le code : c’est un peu comme essayer de construire une belle armoire normande à partir d’une armoire IKEA, vu de loin ça a l’air pratique parce qu’on est pas très loin du résultat attendu, mais peu à peu on se rend compte que le design initial est très limitant, et oblige finalement à réaliser un travail bien plus laborieux et complexe que de partir d’un bon tas de planches et d’outils performants… d’autant plus que l’on me demandait que mes modifications restent compatibles avec les mises a jour de GRAV, et donc, pour filer la métaphore, que l’armoire IKEA ne soit pas cassée dans l’opération.

Bref : Un vrai casse-tête.

Donc tu n’as pas rempli ta mission ? C’est un terrrrrrible échec qui te tourmente jour et nuit (debout) ? Comment a réagi la personne qui assurait l’encadrement de ton stage ?

J’ai assez rapidement été découragé de suivre l’option d’une modification de Grav pour obtenir l’effet attendu, et je suis revenu des fêtes de fin d’année en me disant que même si mon stage durait 6 mois, je ne crois pas que j’arriverais a faire mieux pour simplifier la création de site par mon utilisateur que de l’orienter vers un hébergeur solidaire offrant une installation de wordpress à la volée… donc j’en ai parlé à l’équipe et à la personne qui m’encadrait sans trop savoir ce qui allait advenir, j’étais prêt à peut-être partir sur un autre stage… c’est pas facile de remettre en question totalement les choix fait par une équipe, je sais qu’en cuisine ou ailleurs, ça aurait signifié une fin de contrat plus ou moins houleuse…

Mais bon, mes arguments ont été plutôt convaincants, et on est assez vite arrivé a une solution qui m’est venue assez tôt dans le stage, créer un outil simple depuis le début en utilisant un framework PHP nettement plus bas niveau qu’un CMS, et surtout en partant d’une idée de ce que je souhaitais offrir à l’utilisateur plutôt que de partir de quelque chose d’inadapté pour le bidouiller.
Ça a été très motivant et en une quinzaine de jours j’ai pu réaliser une version limitée de cet outil, et j’ai eu de très bons retours, à la fois de mes amis non-codeurs qui étaient très intéressés par la simplicité avec laquelle ils pouvaient réaliser un site web mais aussi par les membres de l’équipe qui étaient très enthousiastes.

Une question de détail par un gars sur Mastodon (Llaq @lelibreauquotidien) : Hé, @Framasoft, pourquoi vous avez appelé le CMS des pages Framasite « PrettyNoemieCms » ?

Oh ben je suis amoureux d’une fille qui s’appelle Noëmie, donc le nom est venu comme ça… le premier nom c’était Easy ShowcaseSite CMS… c’est quand même mieux Noemie CMS, non ? Enfin moi je trouve. Il y a un proverbe dans le libre qui dit que c’est ceux qui font qui ont raison, et vu que c’est moi qui l’ai fait, c’est moi qui ai raison.

Comment a été accueilli ton travail, par Framasoft et par le public ?

À la fin de mon stage, l’outil a été mis en ligne et j’ai tout de suite eu pas mal de bons retours, celui qui m’a fait le plus plaisir c’était quelqu’un qui m’a dit : « c’est le plus simple des CMS ». je sais pas si on peut être aussi catégorique, mais si j’ai réussi à créer un outil auquel on pourrait mettre juste une demi-étoile sur 5 de difficulté, j’aurai vraiment réussi mon pari… En tout cas j’ai fait tout mon possible pour aller dans cette direction. Ce qui me plaît bien aussi c’est des amis non codeurs qui partagent le plaisir créatif qu’ils ressentent en utilisant l’outil, ils me disent qu’ils se sont « amusés » avec Noëmie, ce qui me ravit.

J’ai eu aussi quelques retours de bugs, rapidement corrigés, et aussi plein de personnes qui s’y sont intéressé de près en voyant le potentiel de l’outil et qui m’ont fait part d’idées d’amélioration.
Les membres de l’association m’ont fait part non seulement de leur satisfaction quant à mon travail, mais ils m’ont aussi exprimé qu’ils avaient été impressionnés par ma capacité à sortir quelque-chose d’aussi abouti et de fonctionnel en si peu de temps. Ça me fait chaud au cœur, car je débute dans la programmation, il y a un an et demi je n’avais pas encore écrit une seule ligne de code, et je ne participe à une formation que depuis moins d’un an. Je tiens au passage à remercier chaleureusement Simplon (mon organisme de formation) et son formateur Patrick qui m’ont aidé à prendre peu à peu confiance dans mes capacités de développement, et m’ont guidé dans cet apprentissage.

La page des « Framasoft fan art » de JCFrog nous a fait hurler de rire.

 

Quelle suite pour Noemie CMS ?

Aujourd’hui je pense que ce CMS trouve sa place à côté de ceux déjà existants, grâce a sa simplicité. il ne sera jamais aussi complexe et personnalisable qu’un WordPress ou un Grav, mais il peut trouver sa niche en étant « le plus simple des CMS».

Les contributions sur le Repository vont bon train : déjà 66 issues postées, dont 52 réalisées, 17 merge request, on peut dire que je me sens pas seul sur le projet. Plein de pistes d’amélioration se dégagent, et d’autres que moi se saisissent avec plaisir du projet. Quant à moi je suis partagé entre un projet perso qui me tient vraiment à cœur : HUmanBeing (on en reparlera en fin d’article), ma formation qui s’arrête et le besoin de trouver un moyen pour vivre qui risque de bouffer beaucoup de disponibilités et l’envie de poursuivre le travail entamé sur ce CMS. Ça fait beaucoup d’envies et malheureusement pas suffisamment de temps pour tout faire à 100%.

Dans l’idéal je reprendrais Noemie CMS depuis le début avec un framework JS frontend (Vue-React- angular) afin de rendre l’expérience utilisateur encore plus fluide (pas de rechargement de pages à chaque sauvegarde, possibilité d’aller plus loin dans la complexité du code pour proposer une expérience utilisateur toujours plus simple, et peut-être ajouter la possibilité de créer un site de plusieurs pages… enfin bon, si j’avais plus de temps et pas la nécessité de devoir faire un truc débile, plus ou moins néfaste pour les gens qui m’entourent et dans le seul but d’enrichir un patron pour pouvoir payer mon loyer ces prochains mois c’est ce que je ferais… mais bon… je crois pas que j’en aurai l’opportunité.

En attendant, je vais quand même continuer de faire avancer tout doucement les fonctionnalités, résoudre des bugs, et surtout passer du temps à transmettre aux autres contributeurs « les clefs » de mon code pour qu’ils puissent aussi se l’approprier et le faire évoluer.

Pendant ta période de stage, on t’a aussi obligé à assister à l’assemblée générale de Framasoft, tu peux nous raconter un peu comment ça s’est passé ? Ils t’ont fait quelle impression les membres de l’association ? et le fonctionnement de l’asso, qu’est-ce que tu en penses ?

Ce fut très intéressant, j’ai rencontré plein de chouettes personnes, avec un beau projet en commun. les discussions étaient très riches. je me suis parfois demandé s’ils ne manquaient pas un peu d’ambitions : en effet le bilan financier leur permettrait à mes yeux de s’engager sur plus de projets, en termes de développement direct ou de soutien financier à des projets ; en même temps je comprends tout a fait que la « sérénité financière » de Framasoft est très récente, et je n’ai pas vraiment suffisamment de compétences en gestion pour pouvoir donner un avis là dessus.

Peut-être aussi que ça m’a permis de prendre conscience d’un décalage entre la vision que j’avais de Framasoft et son projet associatif : avant mon stage j’envisageais Framasoft un peu comme une équipe associative de développeurs qui cherchaient à produire des outils libres et gratuits et de la meilleure qualité pour le plus grand nombre, pour le plaisir de pouvoir offrir des services libres et gratuits à leurs utilisateurs… peu à peu j’ai pris conscience que ce qui animait cette association était aussi très militant et axé sur des enjeux « idéologiques » dans le sens de réaliser des actions visant à faire évoluer les consciences, promouvoir le logiciel libre, lutter contre les GAFAM.

Et j’avoue que je me suis moins reconnu dans ces enjeux, Ça peut paraître paradoxal par rapport à mon engagement sur les #NuitDebout, mais en vrai même sur les Nuit debout ça n’a jamais été le côté tribune et réflexion et changements des mentalités qui m’attiraient, mais plutôt le fait de trouver un espace où l’on pouvait participer et collaborer librement avec plein de gens pour produire au mieux toutes sortes de choses sans que viennent se mêler des questions d’argent ni de hiérarchie (cuisine collaborative, organisation de la vie sur la place, résistance contre les flics…). Je crois que je suis pas très militant dans l’âme, dans le sens que j’ai pas la volonté de faire changer les consciences, ce qui m’intéresse c’est plus de partager des expériences de rapports sociaux désaliénés, et d’inviter un max de gens à me rejoindre dans le plaisir que représente le fait de cesser collectivement de se soumettre au fric et à l’état.
Je pense aussi que j’ai pu ressentir un décalage car je suis partagé quant à leur rigueur sur les moyens à employer. J’utilise quotidiennement Google, Chrome, etc. et dans mon travail c’est pareil je vise surtout à utiliser les meilleurs outils dans l’objectif d’offrir des services agréables et gratuits aux personnes qui utiliseront mes travaux sans me préoccuper de leur caractère libre ou non. J’ai tendance à privilégier les outils qui m’offrent pratiquement plus de pouvoir d’agir plutôt que des outils « libres ». Cela ne veut pas dire que je ne reste pas attentif aux effets secondaires de l’utilisation de certains trucs propriétaires, mais je ne les exclus pas d’emblée, et les préfère parfois.

Cliquez pour voir une très, très belle page Framasite : celle du groupe musical Volivent.

 

Tu as eu aussi l’occasion d’intervenir pour présenter ton projet personnel, de quoi s’agit-il au juste ?

C’est ce projet qui m’a amené à l’informatique, guidé dans mon apprentissage des technos du développement web : durant les Nuits debout j’ai pris tristement conscience que 80% des projets ne se font pas car les personnes avec des initiatives se rencontrent trop difficilement. Du coup j’ai essayé de remédier à cela en faisant du lien, d’abord en notant sur un carnet, puis sous forme de fiches papier et de panneau d’affichage où chacun pouvait partager son projet pour potentiellement trouver des personnes pour le rejoindre. Ça avait plutôt bien marché, même si c’était pas du tout scalable pour parler en termes dev : en effet, en trois jours, il y avait 70 fiches de projets et d’initiatives sur le tableau d’affichage et cela devenait très complexe pour quelqu’un venant sur la place pour la première fois de trouver rapidement un projet sur lequel s’investir.

J’ai donc commencé à créer un outil, en réfléchissant à la manière de répondre au mieux à ce besoin de mise en relation dans le monde non-marchand. En effet, le monde marchand dispose des Pôle emploi et des agences d’intérim pour mettre en lien les gens sur la base de leurs compétences et des projets, alors que le non-marchand n’a pratiquement rien de plus que le bouche-à-oreille, et c’est très frustrant de voir que 80% des projets non marchands sont morts-nés faute de participants alors que très souvent les personnes potentiellement intéressées existent, mais ne sont pas dans le même réseau, le même cercle élargi de connaissance. Et on a la même problématique en ce qui concerne le partage, dans une grande majorité de cas, on se résout à aller au supermarché acheter un truc dont on a besoin alors qu’il y a probablement dix personnes dans le quartier, ou une asso qui produit cette ressource qui pourrait le donner ou le prêter gratuitement.

La troisième problématique à laquelle j’aimerais pouvoir apporter une solution avec cette plate-forme, c’est celle de la multiplication exponentielle des outils collaboratifs lorsqu’on est investi sur plusieurs projets. je reçois par exemple en ce moment les mails de 5 listes de mails bavardes, je suis inscrit sur trois systèmes de chat différents, 2 pads, github et gitlab, et un kanban, tous avec leurs adresses différentes que je perds une fois sur deux… Bref : l’enfer, alors que pourtant je crois être plutôt à l’aise avec l’outil informatique. Je rêve de quelque chose qui pourrait les centraliser sur une plate-forme, avec tous mes projets, et pour chacun des projets son agenda, sa liste de tâches, etc. — et ne plus me perdre dans un dédale d’outils collaboratifs dispersés.

L’idée de HUmanBeing c’est de répondre à ce besoin, en proposant :

  • une plate-forme de mise en relations des utilisateurs sur la base des projets qu’ils créent, de leurs centres d’intérêt, de leur localisation, et de leurs compétences
  • une suite d’outil collaboratifs pour tous les projets créés grâce à la plate-forme : agenda, forum-chat de discussion, liste des tâches.
  • une plate-forme de partage pour que les projets et les utilisateurs puissent partager les ressources dont ils disposent, qu’ils créent et dont ils ont besoin.
  • une plate-forme sans modérateur, dont la modération se fait de manière autonome par des votes de la communauté d’utilisateurs venant réguler les conflits et poser les base de ce qu’elle trouve acceptable ou non, une communauté créant ainsi sa propre légitimité autonome des lois étatiques.

L’objectif et l’ambition de cette plate-forme serait dans un premier temps d’apporter un sacré plus à tous les projets collaboratifs et non-marchands en leurs permettant de scaler et de prendre de l’ampleur au-delà des cercles de connaissances de chacun et donner du coup plus de possibilités d’agir sur le monde à tous ceux qui ont déjà cette éthique de vouloir donner du sens à leurs activités au quotidien.
L’espoir qui m’anime au-delà d’apporter ces possibilités à ces personnes, est lié à ma façon pessimiste de penser l’avenir de la société marchande et de l’état dans leur capacité à répondre aux besoins des personnes. Je m’imagine la prochaine crise économique, lorsque par exemple le ramassage des ordures s’arrêtera en raison de la faillite de ma communauté de communes et que l’accès aux soins sera devenu aussi difficile qu’en Grèce… et je me dis, si à ce moment on a un outil qui me permet de trouver 2 médecins, 4 infirmiers pour faire un centre de soins autogéré, ou alors faire une recherche de 5 chauffeurs poids lourds et 10 autres personnes pour créer une équipe de ramassage des ordures en moins d’une journée… Je me dis que cet outil pourrait être un formidable vecteur par lequel la collaboration, le partage et la gratuité pourraient s’imposer face au capitalisme sur le plan de la production matérielle de l’existence des hommes.

Et je me suis mis à le réaliser.

J’avais commencé en symphony (un framework PHP), mais c’était vraiment inadapté, donc je suis parti sur le framework METEOR JS très à l’aise pour gérer le temps réel : bien pratique lorsqu’il s’agit de collaborer. Pour l’instant j’ai une messagerie en temps réel fonctionnelle (chiffrée end to end), on peut créer un projet, inviter d’autres membres, le rechercher en fonction des compétences, localité qu’ils ont renseignée, chaque projet et chaque utilisateur peut s’exprimer publiquement grâce a un blog tout simple. je dirais que j’ai fait 80 % du travail de réflexion et 40 % de l’écriture du code avant de pouvoir en sortir une version Bêta…

Ça fonctionne pas trop mal en local, c’est même plutôt joli, mais j’ai encore des soucis à le mettre en prod sur une version de démo et pas mal de bugs, dont certains pour lesquels je n’ai aucune piste de solution… mais bon, ça viendra, et je suis hyper motivé, j’ai appris à coder pour pouvoir créer cette plateforme, ce projet me tient à cœur depuis 2 ans maintenant, je suis pas prêt de baisser les bras !

J’ai récemment réalisé une vidéo pour présenter l’avancement du travail que vous pouvez regarder ici :

Cliquez sur l’image pour regarder la vidéo (YouTube)

 

Tu as demandé des retours, ils te les ont donnés, ça ne t’a pas paru trop violent ?

Ben d’une certaine manière les retours étaient très bons, ils ont été impressionnés par la quantité et la qualité du travail que j’avais réussi à réaliser en si peu de temps ainsi que par ma courbe d’apprentissage très rapide. D’autre part, l’objectif émancipateur visé par le projet à fait écho au projet associatif de Framasoft, on pourrait même dire que le projet HUmanBeing vise à inscrire la force de la création collaborative de contenus immatériels du libre (Wikipédia, Linux, etc..) dans la réalité matérielle concrète de la production des besoins des hommes.

Néanmoins à mes yeux trois points font que ce projet n’avait pas les prérequis nécessaires pour pouvoir bénéficier du soutien matériel que j’ai demandé à Framasoft (même si cette interview me permet de le faire connaître assez largement et constitue un soutien qui est toujours bon à prendre).

  • Ce projet pose un rapport radical vis-à-vis de l’État et de l’économie ( « nous n’avons rien à attendre d’eux, créons un outil d’organisation qui nous permet de nous en émanciper »). Je pense que ça s’éloigne de la ligne directrice framasoftienne qui aurait plutôt tendance à vouloir créer des outils favorisant l’économie sociale et solidaire, des outils permettant plus d’interactions citoyennes (framapetition, etc.), avec des valeurs de gauche moins radicales, basées, comme une grande partie de la gauche actuelle sur les valeurs du conseil national de la résistance : un état fort et démocratique gérant la répartition des richesses et le soutien au plus démuni. Il me semble que ce temps-là est dépassé, il appartient a une époque où les hausses de productivité annuelles permettaient au capitalisme ce genre de concessions aux travailleurs, et que l’état et l’économie marchande nous démontrent jour après jour, et année après année que nous n’avons rien à attendre d’eux, si ce n’est l’intensification de l’exploitation de l’homme par l’homme et la destruction de l’écosystème permettant la vie des hommes.
  • D’autre part il me semble aussi que la façon d’envisager ce projet s’écarte de l’idéal de décentralisation poursuivi par Framasoft, dans la mesure ou il se propose de rassembler sur une seule et même plateforme beaucoup de services. dans l’idéal je rêverais que HUmanBeing soit décentralisé, avec plusieurs instances communiquant entre elles sur un réseau commun, mais bon, il me semble que ça ne pourra venir qu’après avoir fait la proof of concept de cette plateforme, un début de comm dessus. Il faut bien se rendre compte que développer une application décentralisée double ou triple le temps de développement.
  • enfin la façon de penser la modération de cette plateforme : autogérée et potentiellement porteuse de projets en-dehors du cadre légal (celui qui fait que les riches sont de plus en plus riches et les pauvres de plus en plus pauvres ou jetés en prison), a pu être perçue à juste titre par Framasoft comme quelque chose mettant potentiellement en danger le reste de ses activités.

Enfin bon, je reste plein d’enthousiasme pour la suite, et sais que quand je suis motivé je suis capable de déplacer des montagnes et de résoudre tout un tas de problèmes. Toujours est-il que le soutien matériel de Framasoft aurait permis de solutionner le problème majeur de savoir comment je vais payer mon loyer si je passe 10 heures par jour à développer une plate-forme non marchande…

On voit qu’il reste du boulot pour mener à bien ton projet, c’est peut-être le moment de réunir une petite équipe de gens intéressés pour contribuer ?
Tu as mis les sources quelque part en ligne ? C’est codé en quoi ? Comment on peut contribuer ?

Ben ouais, carrément ! Le projet est dès le départ très très ouvert à toutes les contributions, le « cahier des charges » s’est fait avec les contributions de plusieurs dizaines de personnes durant les Nuits debout, et au fil du temps je fais des rencontres et j’ai quelques petites contributions extérieures, plus tous mes amis qui me font des retours au fur et a mesure que j’avance dans les fonctionnalités. J’ai bien conscience que c’est un énorme projet et qu’il faudra qu’on soit nombreux à y participer pour que ça puisse exister durablement.

Le projet est donc codé en JavaScript, HTML, CSS, mongoDB autour du framework METEOR JS (et matérialize css pour le front end), qui est un outil assez facile à prendre en mains avec de très bons cours en français et en anglais et énormément de ressources. Il faudrait aussi des personnes avec des compétences en comm’ et aussi des personnes sans compétences particulières, avec juste l’envie de participer à l’aventure, et qui apporteront sans aucun doute au projet toute leur richesse.

Comme dirait un enfant du paradis : A vot’ bon cœur M’sieurs dames !

L’asso te remercie de ton implication et de ton travail et te souhaite une pleine réussite dans tes projets. On te laisse le mot de la fin comme d’habitude.

Je vous remercie de m’avoir fait confiance dans la création de Noemie CMS, et de m’avoir permis de faire ce qui me plaît le plus : contribuer, par mon travail, au bien-être des personnes qui m’entourent.
Je profite aussi de cette interview pour renvoyer vers mon CV (créé grâce aux pages Framasite et donc grâce a NoemieCMS), et informer les lecteurs qui auraient des pistes que je suis actuellement à la recherche d’un emploi.

Merci beaucoup de m’avoir offert cet espace d’expression, ce fut un plaisir de répondre à cette interview.