« I don’t want any spam ! »

Traduction : « Je ne veux pas de spam ! »

Le spam est un problème qu’à Framasoft, nous connaissons bien. Mais savez-vous à quel point ?
Je vais, dans cet article, vous dresser le tableau des soucis de spam que nous rencontrons et des contre-mesures que nous avons mises en place.

Avant cela, un peu d’histoire…

Qu’est-ce que le spam ?

Avant l’ère d’Internet, le spam n’était qu’une marque de viande en conserve.

Les Monty Python, humoristes anglais à qui l’on doit notamment les hilarants Sacré Graal ! et La vie de Brian, ont réalisé un sketch (version textuelle) dans lequel un couple, dans un restaurant, demande ce qu’il y a à la carte pour le petit déjeuner et où la serveuse ne propose que des plats avec du spam (et pas qu’un peu : « Spam, spam, spam, spam, spam, spam, baked beans, spam, spam, spam and spam. »). La femme du couple ne peut avoir de petit déjeuner sans spam, la serveuse ne lui proposant qu’encore plus de spam… (le titre de cet article est une citation de la femme du couple).

Un homme et une femme dans un restaurant
Capture d’écran du sketch des Monty Python sur le Spam

De ce sketch découle l’utilisation du terme spam pour les courriels indésirables (et tout autre message indésirable, quelle que soit la plateforme comme nous allons le voir).
De nos jours, le spam représente 50% des courriels échangés sur la planète.

Que serait une marque sans #CopyrightMadness ? Hormel Foods, l’entreprise derrière le spam a tenté d’utiliser le droit des marques pour éviter que le nom de son produit soit utilisé pour quelque chose dont personne ne veut et pour essayer d’empêcher d’autres entreprises d’utiliser le terme (comme des éditeurs de solutions anti-spam). Je croyais qu’Hormel Foods avait cessé cette lutte inutile, mais il semblerait que non, allant jusqu’à embêter Gee pour un dessin qu’il proposait sur RedBubble.

Un homme met un coup de pied dans une enveloppe pour l’envoyer dans une corbeille sur laquelle est marqué « spam »
Le dessin de Gee qui lui a valu une plainte d’Hormel Foods

Le spam dans les courriels

Chez Framasoft, nous sommes aux deux bouts de la chaîne : nous envoyons beaucoup de courriels (dans les 15 000 courriels par jour pour nos services – inscriptions, notifications, etc. – et plus de 200 000 courriels par jour pour Framalistes) et nous en recevons aussi, que ce soit au niveau de notre serveur de courriel interne ou sur Framalistes. Il y a aussi quelques autres services qui permettent d’interagir par courriel comme notre forum, Framavox et Framagit.

Deux astronautes regardant la terre. Une boîte de Spam est sur la terre. Le premier astronaute s’exclame « Mais le monde est plein de spam ! ». Le deuxième, un brassard « spam » sur le bras, braque un pistolet sur le premier astronaute et dit « Ça a toujours été ! »

Nous devons donc nous assurer, d’un côté, de ne pas passer pour des spammeur·euses et de l’autre, de nous en protéger.

Se protéger des spams par courriel

Rien de bien fantastique à ce niveau. Nous utilisons l’antispam Rspamd qui vérifie la validité du courriel par rapport à sa signature DKIM, à l’enregistrement SPF et à la politique DMARC du domaine (voir sur NextINpact pour un bon article sur le sujet). Bien entendu, cela ne vaut que si le domaine en question met en place ces mécanismes… On notera que la plupart des FAI français, s’ils vérifient bien les courriels entrants de la même façon que nous, se tamponnent allègrement le coquillard de mettre en place ces mécanismes pour leurs propres courriels. J’aimerais qu’un jour, ceux-ci arrêtent de faire de la merde 🙄 (remarquez, il semblerait que ça avance… très lentement, mais ça avance).

En plus de ces vérifications, Rspamd effectue aussi une vérification par filtrage bayésien, interroge des listes de blocage (RBL) et utilise un mécanisme de liste grise.

Thomas Bayes avec des yeux rouges (façon yeux laser)
Thomas Bayes analysant des courriels à la recherche de spam

Il y a toujours, bien évidemment des trous dans la raquette, mais le ratio spam intercepté/spam non détecté est assez haut et nous alimentons Rspamd avec les messages indésirables qui sont passés sous le radar.

Sur Framalistes, afin de ne pas risquer de supprimer de messages légitimes, nous avons forcé le passage des spams probables en modération : tout message considéré comme spam par Rspamd doit être approuvé (ou rejeté) par les modérateur·ices ou propriétaires de la liste.

(parenthèse technique)
Nous avons créé un scénario spam_status.x-spam-status dans Sympa :

title.gettext test x-spam-status  header

match([header->Subject][-1],/\*\*\*\*\*SPAM\*\*\*\*\*/) smtp,dkim,smime,md5 -> unsure
true()                                                  smtp,dkim,md5,smime -> ham

Et nous avons ajouté cette ligne à tous les scenarii de type send :

match ([msg->spam_status], /unsure/)   smtp,dkim,md5,smime   ->   editorkey

Le texte *****SPAM***** est ajouté au sujet du mail par Rspamd en cas de suspicion de spam. Si Rspamd est vraiment catégorique, le mail est directement rejeté.

Titre : « AdminSys, c’est pas drôle tous les jours. SPAM ou PAS SPAM ? ». Suit un bloc de texte où une femme propose d’envoyer des photos sexy d’elle. Un personnage : « J’hésite »
Difficile de déterminer si un message est du spam ou pas… 😅

Ne pas être considéré comme spammeur·euses

Là, c’est plus difficile. En effet, malgré notre respect de toutes les bonnes pratiques citées ci-dessus et d’autres (SPF, DKIM, DMARC…), nous restons à la merci de règles absurdes et non publiques mises en place par les autres services de courriel.

Vous mettez en place un nouveau serveur qui va envoyer des courriels ? Bon courage pour que les serveurs de Microsoft (hotmail.com, outlook.com…) l’acceptent. J’ai encore vécu ça il y a quelques mois et je ne sais toujours pas comment ça s’est débloqué (j’ai envoyé des courriels à des adresses chez eux que j’ai créées pour ça et je reclassais les courriels dans la catégorie « légitime », ça ne fonctionnait toujours pas mais quelques semaines plus tard, ça passait).

Bob l’éponge, les mains écartées et reliées par un arc-en-ciel. Texte : « It’s magic »

Votre serveur envoie beaucoup de courriels à Orange ? Pensez à limiter le nombre de courriels envoyés en même temps. Mais aussi à mettre en place un cache des connexions avec leurs serveurs. Eh oui : pas plus de X mails envoyés en même temps, mais pas plus de Y connexions par heure. Ou par minute. Ou par jour. C’est ça le problème : on n’en sait rien, on ne peut que poser la question à d’autres administrateurs de services de mail (pour cela, la liste de diffusion smtp-fr gagne à être connue. Le groupe des adminSys français, FRsAG est aussi à garder en tête).

Un autre problème est que nous ne sommes pas à l’origine du contenu de tous les courriels qui sortent de nos serveurs.
Par exemple, un spam arrivant sur une framaliste, s’il n’est pas détecté, sera envoyé à tou·tes les abonné·es de la liste, et ça peut vite faire du volume.

Les spams peuvent aussi passer de medium en medium : Framapiaf peut vous notifier par courriel d’une mention de votre identifiant dans un pouet (Ex. « Coucou @luc »). Si le pouet est un spam (« Coucou @luc, tu veux acheter une pierre magique contre les ondes 5G des reptiliens franc-maçons islamo-gauchistes partouzeurs de droite ? »), le spam se retrouve dans un courriel qui part de chez nous.

Mème avec le texte « Spam. Spam everywhere »

Certes, les courriels partant de chez nous sont aussi analysés par Rspamd et certains sont bloqués avant envoi, mais ce n’est pas efficace à 100 %.

Il y a aussi les faux positifs : que faire si nos courriels sont incorrectement classés comme spam par leurs destinataires ? Comme quelqu’un abonné sur une framaliste sans en être averti et qui d’un coup se retrouve submergé de courriels venant d’un expéditeur inconnu ?

Nous nous sommes inscrits à une boucle de rétroaction : nous recevons des notifications pour chaque courriel classé comme indésirable par un certain nombre de fournisseurs de messagerie.
Cela nous a permis (et nous permet toujours. Quotidiennement.) d’envoyer un message à de nombreuses personnes au courriel @laposte.net abonnées à des framalistes pour leur demander de ne pas nous mettre en indésirable, mais de se désabonner de la liste (en leur indiquant la marche à suivre) si elles ne souhaitent pas en recevoir les messages.

Au niveau de Framalistes, nous vérifions que les comptes possédant plus qu’un certain nombre de listes, et que les listes avec beaucoup d’abonné⋅es ne soient pas utilisées pour envoyer des messages indésirables. En effet, nous avons déjà souffert de quelques vagues de spam, nous obligeant à l’époque à modérer la création de listes en dehors des heures de travail car nous ne souhaitions pas, le matin, nous rendre compte que le service était tombé ou s’était fait bloquer pendant la nuit : l’envoi massif de courriels comme le faisaient les spammeur·euses rencontrait souvent un goulot d’étranglement au niveau du serveur, incapable de gérer autant de courriels d’un coup, ce qui faisait tomber le service.
Cette modération n’est plus active aujourd’hui, mais nous avons toujours cet outil prêt à être utilisé en cas de besoin.

Framalistes, si vous l’utilisez, a besoin de vous pour lutter contre le spam !

Petit rappel : il y a un lien de désinscription en bas de chaque courriel des framalistes. Utilisez ce lien pour vous désinscrire si vous ne souhaitez plus recevoir les messages de la liste.

Rien de plus simple que de déclarer un courriel comme étant du spam, n’est-ce pas ? Un clic dans son client mail et hop !

Eh bien non, pas pour Framalistes.

En effet, en faisant cela, vous déclarez notre serveur comme émettant du spam et non pas le serveur originel : nous risquons d’être complètement bannis et de ne plus pouvoir envoyer de courriels vers votre service de messagerie. De plus, l’apprentissage du spam (si le service de messagerie que vous utilisez fait bien son travail, les messages déclarés manuellement comme étant du spam passent dans une moulinette pour mettre à jour les règles de filtrage anti-spam) ne se fait que sur votre service de messagerie, pas chez nous.

Un chat devant un ordinateur portable, l’air halluciné. Texte : « You has spam. Glorious SPAM »

Si votre liste reçoit des spams, merci de le signaler à nom_de_la_liste-request@framalistes.org (l’adresse pour contacter les propriétaires de votre liste) : les propriétaires de la liste ont la possibilité, sur https://framalistes.org/sympa/arc/nom_de_la_liste, de supprimer un message des archives et de le signaler comme spam non détecté (n’hésitez pas à leur indiquer ce lien).

Le spam sur Framapiaf et Framasphère

Point d’antispam comme Rspamd possible sur Mastodon ou diaspora* (techniquement, il pourrait y avoir moyen de faire quelque chose, mais ça serait très compliqué).

Les serveurs Mastodon (pas que framapiaf.org, celui de Framasoft) font régulièrement l’objet de vagues d’inscription de spammeur·euses. Pour éviter l’épuisement de notre équipe de modération, nous avons décidé de modérer les inscriptions et donc d’accepter les comptes un à un.

Nous nous reposons sur les signalements des utilisateur·ices pour repérer les comptes de spam que nous aurions laissé passer et les supprimer (ce qui est très rare) ou les bloquer s’ils proviennent d’autres serveurs avec lesquels nous sommes fédérés.

Framasphère ne dispose pas, contrairement à Framapiaf de tels outils de modération : pas d’inscriptions modérées, pas de blocage de comptes distants… Nous ne pouvons que nous reposer sur les signalements et bloquer les comptes locaux.
Nous arrivons tout de même à bloquer les comptes distants, mais cela nécessite de modifier un enregistrement directement en base de données.

(parenthèse technique)
Voici comment nous bloquons les comptes distants sur Framasphère :

UPDATE people SET serialized_public_key = 'banned' WHERE guid = 'le_guid_du_compte';

Le spam sur Framaforms

Framaforms a rapidement été victime de son succès : sa fréquentation a presque triplé entre 2019 et 2020 (et l’année n’est pas terminée !), devenant aujourd’hui le service le plus utilisé de notre réseau !

Nous n’avons donc pas remarqué la création de nombreux, trop nombreux formulaires proposant, par exemple, des liens vers des sites de téléchargement illégal de films. C’est d’ailleurs suite à une réclamation d’un ayant droit que nous avons pris conscience du problème (oui, nous avons fait suite à cette réclamation : quoi que nous pensions du droit d’auteur, nous nous devons de respecter la loi).

Pic (x10) de clics provenant de recherches Google, principalement vers des formulaires de spam (warez).

La lutte contre le spam a occupé une bonne partie du temps de Théo qui a temporairement rejoint notre équipe salariée pour prêter main forte sur Framaforms :

  • détection de certains termes dans les formulaires avec mise en quarantaine (dépublication) en cas de suspicion de spam ;
  • quarantaine des formulaires ne contenant aucune question (juste la description, quoi) ;
  • interdiction de certains termes dans le titre des formulaires ;
  • intégration d’Akismet (un service anti-spam en ligne, proposé par Automattic, la société derrière https://wordpress.com/, contributrice à WordPress) ;
  • amélioration du système de CAPTCHA
  • ajout de vues permettant une gestion plus aisée des formulaires par les administrateur·ices.

Les efforts de Theo ont porté leurs fruits : la détection automatique des spams et leur dépublication tout aussi automatique limitent la pollution présente sur Framaforms (ce qui évite les réclamations, donc de monopoliser l’attention d’un salarié pour y répondre) et l’interface de gestion des spams facilite grandement le travail des administrateur·ices.

Un homme avec un lance-flamme. Texte « Kill it! Kill it with fire before it lays eggs! »
Théo s’attaquant au problème des spams sur Framaforms (allégorie)

Le spam sur Framagit

Nous avons beaucoup d’utilisateur⋅ices sur Framagit : nous avons dépassé les 90 000 inscrit⋅es. Mais pour notre malheur, la grande majorité d’entre elleux est constituée de comptes de spam !

Après des mois de ménage, nous sommes redescendus à un peu moins de 34 000 comptes, mais nous ne sommes pas dupes : il y a encore beaucoup de comptes illégitimes.

À noter cependant : ces comptes de spam ne semblent pas être dommageables pour les utilisateur⋅ices de Framagit. En effet, leur nuisance se limite généralement à mettre des liens vers un site de poker en ligne, de rencontres voire… de plombiers à Dubaï (je ne comprends pas non plus 😅).

Ceci explique en partie pourquoi nous n’avons pas lutté très activement contre le spam sur Framagit (l’autre raison étant que nous n’avions tout simplement pas de temps à y consacrer).

Nous avions déjà eu une vague de spams lors de l’ouverture de Framagit et nous avions dû interdire l’accès de notre forge logicielle à l’Inde, à l’Indonésie et au Viêt Nam, restriction active jusqu’à la semaine dernière.
Cela n’est pas dans nos habitudes mais s’il faut choisir entre ça et le risque d’épuisement professionnel d’un membre de l’équipe, Framasoft préfère faire passer l’humain avant tout (🤗).

Une grande vague de nettoyage a eu lieu en juin, où j’ai recherché des critères communs aux comptes de spam afin de les supprimer en masse… ce qui a donné lieu à une vilaine boulette lorsque j’ai choisi des critères bien trop larges, conduisant à la suppression de nombreux comptes légitimes (rétablis depuis).

Depuis, j’ai vérifié manuellement chaque compte remonté par mes recherches… soit plus de 18 000 comptes depuis septembre. Parmi ceux-ci, il devait y en avoir, à la louche (parce que mes souvenirs me trahissent), une ou deux dizaines de comptes légitimes. Heureusement ! Je crois que j’aurais assez mal pris le fait d’avoir vérifié chaque compte pour rien 😅

Nous avons désormais un script qui supprime automatiquement les comptes qui ne se sont jamais connectés dans les 10 jours suivant leur inscription : ce sont visiblement des comptes de spam qui ne reçoivent pas les mails de confirmation et donc ne se sont jamais connectés.
Ce script nous remonte aussi les comptes dont la biographie ou les liens contiennent certains termes usités par les spammeur·euses.

Nous avons recherché une solution de CAPTCHA pour Framagit, mais celui-ci ne supporte que reCaptcha, la solution d’Alphabet/Google… et il était hors de question de faire fuiter les informations (adresse IP, caractéristiques du navigateur…) et permettre le tracking de nos utilisateurs vers les services de l’infâme bête aux multiples têtes que nous combattons !

Hercule et l’hydre de Lernes
Framasoft combattant Google, allégorie

Nous avons alors recherché quelqu’un·e qui saurait développer, contre rémunération, une solution de type honeypot.
Dans le ticket que nous avons, sans aucune honte, squatté pour poser notre petite annonce, on nous a aiguillés vers une fonctionnalité d’honeypot expérimentale et cachée de Gitlab que je me suis empressé d’activer.
Il faut bien le dire : c’est très efficace ! Le nombre de comptes automatiquement supprimés par le script évoqué plus haut est descendu de près de 100 par jour à entre 0 et 2 comptes, ce qui montre bien que les scripts des spammeur·euses pour s’inscrire ne fonctionnent plus aussi bien.

Bien évidemment, il reste encore beaucoup de spam sur Framagit, et de nombreux comptes de spam sont créés chaque jour (10 ? 15 ? 20 ? Ça dépend des jours…), mais nous ne comptons pas en rester là. Le honeypot pourrait être amélioré, ou nous pourrions voir pour une intégration d’Akismet à Gitlab (il y en a déjà une, mais elle n’est pas utilisée pour vérifier les biographies des comptes).
Gitlab permet maintenant de modérer les inscriptions en les acceptant une à une (comme nous le faisons sur Framapiaf) : nous avons récemment activé cette fonctionnalité, pour voir si la charge de modération était acceptable et si cela avait un effet bénéfique.

Mème de Winnie l’ourson : Winnie, habillé normalement, l’air un peu déconfit : « Delete spam one by one ». Winnie en smoking, l’air satisfait « Install a honeypot »

Nous recevons de temps à autre (bien moins ces derniers temps, fort heureusement) des mails indiquant que Framalink est utilisé pour dissimuler des liens de hameçonnage dans des mails.

Lorsque la vague d’utilisation malveillante s’est intensifiée, j’ai développé (et amélioré au fil du temps) quelques fonctionnalités dans Lstu (le logiciel derrière Framalink) : une commande pour supprimer des raccourcis, pour rechercher les raccourcis contenant une chaîne de caractères ou provenant d’une certaine adresse IP, un système de bannissement d’adresse IP, un système de domaines interdits, empêchant le raccourcissement d’URL de tels domaines, une vérification des URL dans la base de données Google Safe Browsing (lien en anglais) avant raccourcissement et même a posteriori (je vous rassure, aucune donnée n’est envoyée à Google, la base de données est copiée et utilisée en local).

Ces efforts n’ont pas été suffisamment efficaces et nous avons été obligés de couper l’accès à l’API de Framalink, ce qui n’est pas une panacée, mais tout cela a fortement réduit nos problèmes de spam (ou pas, mais en tout cas, on a beaucoup moins de mails nous alertant de l’utilisation de Framalink pour du hameçonnage).

Notez que c’est à cause de l’utilisation de Framalink à des fins malveillantes que ce service est souvent persona non grata chez Facebook, Twitter et consorts.

Framasite

Des framasites avec de jeunes filles dénudées qui jouent au poker avec des plombiers de contrées lointaines ? Eh bien non, même pas. Les spammeurs se contentent de créer des comptes dont le nom d’utilisateur·ice est du genre « Best adult dating site, register on… ».

Et tout comme sur Framagit, beaucoup de comptes créés ne sont jamais validés (vous savez, avec l’email qui dit « cliquez sur ce lien pour finaliser votre inscription » ?).

Heureusement que ce n’est que cela, Framasite n’ayant pas d’interface d’administration permettant la suppression propre d’utilisateur·ices (« propre » voulant dire avec suppression des sites créés). Une simple suppression des comptes illégitimes en base de données suffit à faire le ménage.

Mème avec Gru des films « Moi moche et méchant » qui fait une présentation : « Faire de l’éducation populaire », « Proposer un outil pour faire des sites », « Avoir des comptes appelés « Best adult dating site » » Gru se retourne, interloqué par la page de présentation « Avoir des comptes appelés « Best adult dating site » »

Framalibre

Framalibre est aussi sujet aux spams, mais il s’agit généralement là de notices de logiciels non libres. Soit les personnes créant ces notices n’ont pas compris que Framalibre n’était dédié qu’aux logiciels libres, soit elles ont essayé d’améliorer leur référencement en ajoutant leurs logiciels.

Pour une fois, ce n’est pas bien méchant, pas bien violent (cela n’arrive pas souvent) et la vigilance de l’équipe de modération permet de supprimer (manuellement) ces notices indésirables très rapidement.

WordPress (commentaires)

Les spams dans les commentaires d’un blog sont un graaaaand classique ! Nous avons opté, sur nos sites wordpress, pour les extensions Antispam Bee et Spam Honey Pot.

C’est plutôt efficace, il est rare qu’un spam passe à travers ce système.

Drupal (inscriptions)

Nous avons quelques autres installations de Drupal autres que Framaforms et Framalibre. Les spammeurs s’inscrivent, voient qu’ils ne peuvent rien publier facilement : les Drupal en question ont les inscriptions ouvertes pour une bonne raison, mais ne permettent pas de créer des articles comme ça, hop !

Ce n’est donc, à l’heure actuelle, pas gênant.

Notre formulaire de contact

« Un formulaire de contact ? Oh chic ! » se disent les spammeurs. Là aussi, nous recevons un certain nombre de spams, tous les jours, toutes les semaines (une quarantaine par semaine), ou par une ancienne adresse de contact.

Nous nous contentons de répondre « #spam » en commentaire du ticket créé dans notre RequestTracker : cela supprime le message et empêche son expéditeur·ice de nous envoyer d’autres messages (voir sur mon wiki personnel pour commander son RequestTracker par mail).

Les faux positifs

Deux boutons : « Spam », « Pas spam ». Un homme s’essuie le front, angoissé par le choix à faire. L’homme est légendé « L’antispam »
Spam, pas spam… la vie d’un antispam n’est pas facile.

Je n’ai pas encore parlé des faux positifs : des messages légitimes détectés à tort comme étant du spam. Cela arrive forcément, quel que soit le type de plateforme, quels que soient les moyens déployés : statistiquement, il y aura toujours, un jour, une erreur du système ou des humain·es derrière (cf la boulette évoquée dans la partie « Framagit »).

Et dans l’autre sens, on aura toujours des spams qui arriveront à passer. Il est généralement difficile voire impossible de durcir les règles de détection de spam sans augmenter la proportion de faux positifs.

Conclusion

Il n’y en pas vraiment. La lutte contre le spam est un combat sans fin, un jeu du chat et de la souris qui ne se termine jamais. On tente de se protéger du mieux qu’on peut, on trouve des astuces, ça va mieux pendant un temps et ça recommence.

Il faut pas se le cacher : plus un hébergeur « grossit », plus il prend de la renommée sur Internet, plus il y a de chances que des personnes malveillantes repèrent son service et l’utilisent pour leur spam. Il y a donc un paradoxe de l’hébergement : trop petit, on est vite seul·e et débordé·e par la multiplicité des tâches à accomplir pour faire les choses correctement…

Mais trop gros, on centralise les attentions, dont celles des personnes malveillantes qui auront peu de scrupules à parasiter les ressources que vous mettez en commun. Ce qui induit encore plus de travail pour se protéger des spams et les nettoyer.

Ça vous paraît pessimiste ? Ça l’est un peu, sans doute ¯\_(ツ)_/¯

Sisyphe poussant son rocher
La lutte contre le spam (allégorie)




Pour un Web frugal ?

Sites lourds, sites lents, pages web obèses qui exigent pour être consultées dans un délai raisonnable une carte graphique performante, un processeur rapide et autant que possible une connexion par fibre optique… tel est le quotidien de l’internaute ordinaire.

Nul besoin de remonter aux débuts du Web pour comparer : c’est d’une année sur l’autre que la taille moyenne des pages web s’accroît désormais de façon significative.

Quant à la consommation en énergie de notre vie en ligne, elle prend des proportions qui inquiètent à juste titre : des lointains datacenters aux hochets numériques dont nous aimons nous entourer, il y a de quoi  se poser des questions sur la nocivité environnementale de nos usages collectifs et individuels.

Bien sûr, les solutions économes à l’échelle de chacun sont peut-être dérisoires au regard des gigantesques gaspillages d’un système consumériste insatiable et énergivore.

Cependant nous vous invitons à prendre en considération l’expérience de l’équipe barcelonaise de Low-Tech Magazine dont nous avons traduit pour vous un article. Un peu comme l’association Framasoft l’avait fait en ouverture de la campagne dégooglisons… en se dégooglisant elle-même, les personnes de Low-tech Magazine ont fait de leur mieux pour appliquer à leur propre site les principes de frugalité qu’elles défendent : ce ne sont plus seulement les logiciels mais aussi les matériels qui ont fait l’objet d’une cure d’amaigrissement au régime solaire.

En espérant que ça donnera des idées à tous les bidouilleurs…

article original : How to build a Low-tech website
Traduction Framalang : Khrys, Mika, Bidouille, Penguin, Eclipse, Barbara, Mannik, jums, Mary, Cyrilus, goofy, simon, xi, Lumi, Suzy + 2 auteurs anonymes

Comment créer un site web basse technologie

Low-tech Magazine a été créé en 2007 et n’a que peu changé depuis. Comme une refonte du site commençait à être vraiment nécessaire, et comme nous essayons de mettre en œuvre ce que nous prônons, nous avons décidé de mettre en place une version de Low Tech Magazine en basse technologie, auto-hébergée et alimentée par de l’énergie solaire. Le nouveau blog est conçu pour réduire radicalement la consommation d’énergie associée à l’accès à notre contenu.

le hardware qui faisait tourner la première version du site allégé
Premier prototype du serveur alimenté à l’énergie solaire sur lequel tourne le nouveau site.


* Voir cet article (en anglais) dans une version frugale donc moins énergivore


Pourquoi un site web basse technologie ?

On nous avait dit qu’Internet permettrait de « dématérialiser » la société et réduire la consommation d’énergie. Contrairement à cette projection, Internet est en fait lui-même devenu un gros consommateur d’énergie de plus en plus vorace. Selon les dernières estimations, le réseau tout entier représente 10 % de la consommation mondiale d’électricité et la quantité de données échangées double tous les deux ans.

Pour éviter les conséquences négatives d’une consommation énergivore, les énergies renouvelables seraient un moyen de diminuer les émissions des centres de données. Par exemple, le rapport annuel ClickClean de Greenpeace classe les grandes entreprises liées à Internet en fonction de leur consommation d’énergies renouvelables.

Cependant, faire fonctionner des centres de données avec des sources d’énergie renouvelables ne suffit pas à compenser la consommation d’énergie croissante d’Internet. Pour commencer, Internet utilise déjà plus d’énergie que l’ensemble des énergies solaire et éolienne mondiales. De plus, la réalisation et le remplacement de ces centrales électriques d’énergies renouvelables nécessitent également de l’énergie, donc si le flux de données continue d’augmenter, alors la consommation d’énergies fossiles aussi.

Cependant, faire fonctionner les centres de données avec des sources d’énergie renouvelables ne suffit pas à combler la consommation d’énergie croissante d’Internet.

Enfin, les énergies solaire et éolienne ne sont pas toujours disponibles, ce qui veut dire qu’un Internet fonctionnant à l’aide d’énergies renouvelables nécessiterait une infrastructure pour le stockage de l’énergie et/ou pour son transport, ce qui dépend aussi des énergies fossiles pour sa production et son remplacement. Alimenter les sites web avec de l’énergie renouvelable n’est pas une mauvaise idée, mais la tendance vers l’augmentation de la consommation d’énergie doit aussi être traitée.

Des sites web qui enflent toujours davantage

Tout d’abord, le contenu consomme de plus en plus de ressources. Cela a beaucoup à voir avec l’importance croissante de la vidéo, mais une tendance similaire peut s’observer sur les sites web.

La taille moyenne d’une page web (établie selon les pages des 500 000 domaines les plus populaires) est passée de 0,45 mégaoctets en 2010 à 1,7 mégaoctets en juin 2018. Pour les sites mobiles, le poids moyen d’une page a décuplé, passant de 0,15 Mo en 2011 à 1,6 Mo en 2018. En utilisant une méthode différente, d’autres sources évoquent une moyenne autour de 2,9 Mo en 2018.

La croissance du transport de données surpasse les avancées en matière d’efficacité énergétique (l’énergie requise pour transférer 1 mégaoctet de données sur Internet), ce qui engendre toujours plus de consommation d’énergie. Des sites plus « lourds » ou plus « gros » ne font pas qu’augmenter la consommation d’énergie sur l’infrastructure du réseau, ils raccourcissent aussi la durée de vie des ordinateurs, car des sites plus lourds nécessitent des ordinateurs plus puissants pour y accéder. Ce qui veut dire que davantage d’ordinateurs ont besoin d’être fabriqués, une production très coûteuse en énergie.

Être toujours en ligne ne fait pas bon ménage avec des sources d’énergies renouvelables telles que l’éolien ou le solaire, qui ne sont pas toujours disponibles.

La deuxième raison de l’augmentation de la consommation énergétique d’Internet est que nous passons de plus en plus de temps en ligne. Avant l’arrivée des ordinateurs portables et du Wi-Fi, nous n’étions connectés au réseau que lorsque nous avions accès à un ordinateur fixe au bureau, à la maison ou à la bibliothèque. Nous vivons maintenant dans un monde où quel que soit l’endroit où nous nous trouvons, nous sommes toujours en ligne, y compris, parfois, sur plusieurs appareils à la fois.

Un accès Internet en mode « toujours en ligne » va de pair avec un modèle d’informatique en nuage, permettant des appareils plus économes en énergie pour les utilisateurs au prix d’une dépense plus importante d’énergie dans des centres de données. De plus en plus d’activités qui peuvent très bien se dérouler hors-ligne nécessitent désormais un accès Internet en continu, comme écrire un document, remplir une feuille de calcul ou stocker des données. Tout ceci ne fait pas bon ménage avec des sources d’énergies renouvelables telles que l’éolien ou le solaire, qui ne sont pas disponibles en permanence.

Conception d’un site internet basse technologie

La nouvelle mouture de notre site répond à ces deux problématiques. Grâce à une conception simplifiée de notre site internet, nous avons réussi à diviser par cinq la taille moyenne des pages du blog par rapport à l’ancienne version, tout en rendant le site internet plus agréable visuellement (et plus adapté aux mobiles). Deuxièmement, notre nouveau site est alimenté à 100 % par l’énergie solaire, non pas en théorie, mais en pratique : il a son propre stockage d’énergie et sera hors-ligne lorsque le temps sera couvert de manière prolongée.

Internet n’est pas une entité autonome. Sa consommation grandissante d’énergie est la résultante de décisions prises par des développeurs logiciels, des concepteurs de site internet, des départements marketing, des annonceurs et des utilisateurs d’internet. Avec un site internet poids plume alimenté par l’énergie solaire et déconnecté du réseau, nous voulons démontrer que d’autres décisions peuvent être prises.

Avec 36 articles en ligne sur environ une centaine, le poids moyen d’une page sur le site internet alimenté par énergie solaire est environ cinq fois inférieur à celui de la version précédente.

Pour commencer, la nouvelle conception du site va à rebours de la tendance à des pages plus grosses. Sur 36 articles actuellement en ligne sur environ une centaine, le poids moyen d’une page sur le site internet alimenté par énergie solaire est 0,77 Mo – environ cinq fois inférieur à celui de la version précédente, et moins de la moitié du poids moyen d’une page établi sur les 500 000 blogs les plus populaires en juin 2018.


Ci-dessous : un test de vitesse d’une page web entre l’ancienne et la nouvelle version du magazine Low-Tech. La taille de la page a été divisée par plus de six, le nombre de requêtes par cinq, et la vitesse de téléchargement a été multipliée par dix. Il faut noter que l’on n’a pas conçu le site internet pour être rapide, mais pour une basse consommation d’énergie. La vitesse aurait été supérieure si le serveur avait été placé dans un centre de données et/ou à une position plus centrale de l’infrastructure d’Internet.

Source : Pingdom

Ci-dessous sont détaillées plusieurs des décisions de conception que nous avons faites pour réduire la consommation d’énergie. Des informations plus techniques sont données sur une page distincte. Nous avons aussi libéré le code source pour la conception de notre site internet.

Site statique

Un des choix fondamentaux que nous avons faits a été d’élaborer un site internet statique. La majorité des sites actuels utilisent des langages de programmation côté serveur qui génèrent la page désirée à la volée par requête à une base de données. Ça veut dire qu’à chaque fois que quelqu’un visite une page web, elle est générée sur demande.

Au contraire, un site statique est généré une fois pour toutes et existe comme un simple ensemble de documents sur le disque dur du serveur. Il est toujours là, et pas seulement quand quelqu’un visite la page. Les sites internet statiques sont donc basés sur le stockage de fichiers quand les sites dynamiques dépendent de calculs récurrents. En conséquence, un site statique nécessite moins de puissance de calcul, donc moins d’énergie.

Le choix d’un site statique nous permet d’opérer la gestion de notre site de manière économique depuis notre bureau de Barcelone. Faire la même chose avec un site web généré depuis une base de données serait quasiment impossible, car cela demanderait trop d’énergie. Cela présenterait aussi des risques importants de sécurité. Bien qu’un serveur avec un site statique puisse toujours être piraté, il y a significativement moins d’attaques possibles et les dommages peuvent être plus facilement réparés.

exemple d’images traitées pour en réduire le poids, elles sont monochromes et d’une définition dégradée
Images optimisées pour en réduire le « poids »

Le principal défi a été de réduire la taille de la page sans réduire l’attractivité du site. Comme les images consomment l’essentiel de la bande passante il serait facile d’obtenir des pages très légères et de diminuer l’énergie nécessaire en supprimant les images, en réduisant leur nombre ou en réduisant considérablement leur taille. Néanmoins, les images sont une part importante de l’attractivité de Low-tech Magazine et le site ne serait pas le même sans elles.

Par optimisation, on peut rendre les images dix fois moins gourmandes en ressources, tout en les affichant bien plus largement que sur l’ancien site.

Nous avons plutôt choisi d’appliquer une ancienne technique de compression d’image appelée « diffusion d’erreur ». Le nombre de couleurs d’une image, combiné avec son format de fichier et sa résolution, détermine la taille de cette image. Ainsi, plutôt que d’utiliser des images en couleurs à haute résolution, nous avons choisi de convertir toutes les images en noir et blanc, avec quatre niveaux de gris intermédiaires.

Ces images en noir et blanc sont ensuite colorées en fonction de la catégorie de leur contenu via les capacités de manipulation d’image natives du navigateur. Compressées par ce module appelé dithering, les images présentées dans ces articles ajoutent beaucoup moins de poids au contenu ; par rapport à l’ancien site web, elles sont environ dix fois moins consommatrices de ressources.

Police de caractère par défaut / Pas de logo

Toutes les ressources chargées, y compris les polices de caractères et les logos, le sont par une requête supplémentaire au serveur, nécessitant de l’espace de stockage et de l’énergie. Pour cette raison, notre nouveau site web ne charge pas de police personnalisée et enlève toute déclaration de liste de polices de caractères, ce qui signifie que les visiteurs verront la police par défaut de leur navigateur.

une page du magazine l’image d’illustration est rouge, le fond est jaune, aucun logo n’est ajouté, l’essentiel est du texte et une image
Une page du magazine en version basse consommation

 

Nous utilisons une approche similaire pour le logo. En fait, Low-tech Magazine n’a jamais eu de véritable logo, simplement une bannière représentant une lance, considérée comme une arme low-tech (technologie sobre) contre la supériorité prétendue des « high-tech » (hautes technologies).

Au lieu d’un logo dessiné, qui nécessiterait la production et la distribution d’image et de polices personnalisées, la nouvelle identité de Low-Tech Magazine consiste en une unique astuce typographique : utiliser une flèche vers la gauche à la place du trait d’union dans le nom du blog : LOW←TECH MAGAZINE.

Pas de pistage par un tiers, pas de services de publicité, pas de cookies

Les logiciels d’analyse de sites tels que Google Analytics enregistrent ce qui se passe sur un site web, quelles sont les pages les plus vues, d’où viennent les visiteurs, etc. Ces services sont populaires car peu de personnes hébergent leur propre site. Cependant l’échange de ces données entre le serveur et l’ordinateur du webmaster génère du trafic de données supplémentaire et donc de la consommation d’énergie.

Avec un serveur auto-hébergé, nous pouvons obtenir et visualiser ces mesures de données avec la même machine : tout serveur génère un journal de ce qui se passe sur l’ordinateur. Ces rapports (anonymes) ne sont vus que par nous et ne sont pas utilisés pour profiler les visiteurs.

Avec un serveur auto-hébergé, pas besoin de pistage par un tiers ni de cookies.

Low-tech Magazine a utilisé des publicités Google Adsense depuis ses débuts en 2007. Bien qu’il s’agisse d’une ressource financière importante pour maintenir le blog, elles ont deux inconvénients importants. Le premier est la consommation d’énergie : les services de publicité augmentent la circulation des données, ce qui consomme de l’énergie.

Deuxièmement, Google collecte des informations sur les visiteurs du blog, ce qui nous contraint à développer davantage les déclarations de confidentialité et les avertissements relatifs aux cookies, qui consomment aussi des données et agacent les visiteurs. Nous avons donc remplacé Adsense par d’autres sources de financement (voir ci-dessous pour en savoir plus). Nous n’utilisons absolument aucun cookie.

À quelle fréquence le site web sera-t-il hors-ligne ?

Bon nombre d’entreprises d’hébergement web prétendent que leurs serveurs fonctionnent avec de l’énergie renouvelable. Cependant, même lorsqu’elles produisent de l’énergie solaire sur place et qu’elles ne se contentent pas de « compenser » leur consommation d’énergie fossile en plantant des arbres ou autres, leurs sites Web sont toujours en ligne.

Cela signifie soit qu’elles disposent d’un système géant de stockage sur place (ce qui rend leur système d’alimentation non durable), soit qu’elles dépendent de l’énergie du réseau lorsqu’il y a une pénurie d’énergie solaire (ce qui signifie qu’elles ne fonctionnent pas vraiment à 100 % à l’énergie solaire).

un petit panneau photo-voltaïque au-dessus d’un plus grand. Leur position les expose au soleil.
Le panneau photo-voltaïque solaire de 50 W. Au-dessus, un panneau de 10 W qui alimente un système d’éclairage.

 

En revanche, ce site web fonctionne sur un système d’énergie solaire hors réseau avec son propre stockage d’énergie et hors-ligne pendant les périodes de temps nuageux prolongées. Une fiabilité inférieure à 100 % est essentielle pour la durabilité d’un système solaire hors réseau, car au-delà d’un certain seuil, l’énergie fossile utilisée pour produire et remplacer les batteries est supérieure à l’énergie fossile économisée par les panneaux solaires.

Reste à savoir à quelle fréquence le site sera hors ligne. Le serveur web est maintenant alimenté par un nouveau panneau solaire de 50 Wc et une batterie plomb-acide (12V 7Ah) qui a déjà deux ans. Comme le panneau solaire est à l’ombre le matin, il ne reçoit la lumière directe du soleil que 4 à 6 heures par jour. Dans des conditions optimales, le panneau solaire produit ainsi 6 heures x 50 watts = 300 Wh d’électricité.

Le serveur web consomme entre 1 et 2,5 watts d’énergie (selon le nombre de visiteurs), ce qui signifie qu’il consomme entre 24 et 60 Wh d’électricité par jour. Dans des conditions optimales, nous devrions donc disposer de suffisamment d’énergie pour faire fonctionner le serveur web 24 heures sur 24. La production excédentaire d’énergie peut être utilisée pour des applications domestiques.

Nous prévoyons de maintenir le site web en ligne pendant un ou deux jours de mauvais temps, après quoi il sera mis hors ligne.

Cependant, par temps nuageux, surtout en hiver, la production quotidienne d’énergie pourrait descendre à 4 heures x 10 watts = 40 watts-heures par jour, alors que le serveur nécessite entre 24 et 60 Wh par jour. La capacité de stockage de la batterie est d’environ 40 Wh, en tenant compte de 30 % des pertes de charge et de décharge et de 33 % de la profondeur ou de la décharge (le régulateur de charge solaire arrête le système lorsque la tension de la batterie tombe à 12 V).

Par conséquent, le serveur solaire restera en ligne pendant un ou deux jours de mauvais temps, mais pas plus longtemps. Cependant, il s’agit d’estimations et nous pouvons ajouter une deuxième batterie de 7 Ah en automne si cela s’avère nécessaire. Nous visons un uptime, c’est-à-dire un fonctionnement sans interruption, de 90 %, ce qui signifie que le site sera hors ligne pendant une moyenne de 35 jours par an.

Premier prototype avec batterie plomb-acide (12 V 7 Ah) à gauche et batterie Li-Po UPS (3,7V 6600 mA) à droite. La batterie au plomb-acide fournit l’essentiel du stockage de l’énergie, tandis que la batterie Li-Po permet au serveur de s’arrêter sans endommager le matériel (elle sera remplacée par une batterie Li-Po beaucoup plus petite).

Quel est la période optimale pour parcourir le site ?

L’accessibilité à ce site internet dépend de la météo à Barcelone en Espagne, endroit où est localisé le serveur. Pour aider les visiteurs à « planifier » leurs visites à Low-tech Magazine, nous leur fournissons différentes indications.

Un indicateur de batterie donne une information cruciale parce qu’il peut indiquer au visiteur que le site internet va bientôt être en panne d’énergie – ou qu’on peut le parcourir en toute tranquillité. La conception du site internet inclut une couleur d’arrière-plan qui indique la charge de la batterie qui alimente le site Internet grâce au soleil. Une diminution du niveau de charge indique que la nuit est tombée ou que la météo est mauvaise.

carte météo de l’ouest de l’Europe avec symboles de passages nuageux

Outre le niveau de batterie, d’autres informations concernant le serveur du site web sont affichées grâce à un tableau de bord des statistiques. Celui-ci inclut des informations contextuelles sur la localisation du serveur : heure, situation du ciel, prévisions météorologiques, et le temps écoulé depuis la dernière fois où le serveur s’est éteint à cause d’un manque d’électricité.

Matériel & Logiciel

Nous avons écrit un article plus détaillé d’un point de vue technique : Comment faire un site web basse technologie : logiciels et matériel.

SERVEUR : Ce site web fonctionne sur un ordinateur Olimex A20. Il est doté de 2 GHz de vitesse de processeur, 1 Go de RAM et 16 Go d’espace de stockage. Le serveur consomme 1 à 2,5 watts de puissance.

SOFTWARE DU SERVEUR : le serveur web tourne sur Armbian Stretch, un système d’exploitation Debian construit sur un noyau SUNXI. Nous avons rédigé une documentation technique sur la configuration du serveur web.

LOGICIEL DE DESIGN : le site est construit avec Pelican, un générateur de sites web statiques. Nous avons publié le code source de « solar », le thème que nous avons développé.

CONNEXION INTERNET. Le serveur est connecté via une connexion Internet fibre 100 MBps. Voici comment nous avons configuré le routeur. Pour l’instant, le routeur est alimenté par le réseau électrique et nécessite 10 watts de puissance. Nous étudions comment remplacer ce routeur gourmand en énergie par un routeur plus efficace qui pourrait également être alimenté à l’énergie solaire.

SYSTÈME SOLAIRE PHOTOVOLTAÏQUE. Le serveur fonctionne avec un panneau solaire de 50 Wc et une batterie plomb-acide 12 V 7 Ah. Cependant, nous continuons de réduire la taille du système et nous expérimentons différentes configurations. L’installation photovoltaïque est gérée par un régulateur de charge solaire 20A.

Qu’est-il arrivé à l’ancien site ?

Le site Low-tech Magazine alimenté par énergie solaire est encore en chantier. Pour le moment, la version alimentée par réseau classique reste en ligne. Nous encourageons les lecteurs à consulter le site alimenté par énergie solaire, s’il est disponible. Nous ne savons pas trop ce qui va se passer ensuite. Plusieurs options se présentent à nous, mais la plupart dépendront de l’expérience avec le serveur alimenté par énergie solaire.
Tant que nous n’avons pas déterminé la manière d’intégrer l’ancien et le nouveau site, il ne sera possible d’écrire et lire des commentaires que sur notre site internet alimenté par réseau, qui est toujours hébergé chez TypePad. Si vous voulez envoyer un commentaire sur le serveur web alimenté en énergie solaire, vous pouvez en commentant cette page ou en envoyant un courriel à solar (at) lowtechmagazine (dot) com.

Est-ce que je peux aider ?

Bien sûr, votre aide est la bienvenue.
D’une part, nous recherchons des idées et des retours d’expérience pour améliorer encore plus le site web et réduire sa consommation d’énergie. Nous documenterons ce projet de manière détaillée pour que d’autres personnes puissent aussi faire des sites web basse technologie.

D’autre part, nous espérons recevoir des contributions financières pour soutenir ce projet. Les services publicitaires qui ont maintenu Low-tech Magazine depuis ses débuts en 2007 sont incompatibles avec le design de notre site web poids plume. C’est pourquoi nous cherchons d’autres moyens de financer ce site :

1. Nous proposerons bientôt un service de copies du blog imprimées à la demande. Grâce à ces publications, vous pourrez lire le Low-tech Magazine sur papier, à la plage, au soleil, où vous voulez, quand vous voulez.
2. Vous pouvez nous soutenir en envoyant un don sur PayPal, Patreon ou LiberaPay.
3. Nous restons ouverts à la publicité, mais nous ne pouvons l’accepter que sous forme d’une bannière statique qui renvoie au site de l’annonceur. Nous ne travaillons pas avec les annonceurs qui ne sont pas en phase avec notre mission.

Le serveur alimenté par énergie solaire est un projet de Kris De Decker, Roel Roscam Abbing et Marie Otsuka.




Un navigateur pour diffuser votre site web en pair à pair

Les technologies qui permettent la décentralisation du Web suscitent beaucoup d’intérêt et c’est tant mieux. Elles nous permettent d’échapper aux silos propriétaires qui collectent et monétisent les données que nous y laissons.

Vous connaissez probablement Mastodon, peerTube, Pleroma et autres ressources qui reposent sur le protocole activityPub. Mais connaissez-vous les projets Aragon, IPFS, ou ScuttleButt ?

Aujourd’hui nous vous proposons la traduction d’un bref article introducteur à une technologie qui permet de produire et héberger son site web sur son ordinateur et de le diffuser sans le moindre serveur depuis un navigateur.

L’article original est issu de la série Dweb (Decentralized Web) publiée sur Mozilla Hacks, dans laquelle Dietrich Ayala met le projecteur sur toutes les initiatives récentes autour du Web décentralisé ou distribué.

Traduction Framalang : bengo35, goofy

Blue Link Labs et Beaker

par Tara Vancil

Nous sommes Blue Link Labs, une équipe de trois personnes qui travaillent à améliorer le Web avec le protocole Dat et un navigateur expérimental pair à pair qui s’appelle Beaker.

L'équipe Blue Link Labs
L’équipe Blue Link Labs

 

Nous travaillons sur Beaker car publier et partager est l’essence même du Web. Cependant pour publier votre propre site web ou seulement diffuser un document, vous avez besoin de savoir faire tourner un serveur ou de pouvoir payer quelqu’un pour le faire à votre place.

Nous nous sommes donc demandé « Pourquoi ne pas partager un site Internet directement depuis votre navigateur ? »

Un protocole pair-à-pair comme dat:// permet aux appareils des utilisateurs ordinaires d’héberger du contenu, donc nous utilisons dat:// dans Beaker pour pouvoir publier depuis le navigateur et donc au lieu d’utiliser un serveur, le site web d’un auteur et ses visiteurs l’aident à héberger ses fichiers. C’est un peu comme BitTorrent, mais pour les sites web !

Architecture

Beaker utilise un réseau pair-à-pair distribué pour publier des sites web et des jeux de données (parfois nous appelons ça des « dats »).

Les sites web dat:// sont joignables avec une clé publique faisant office d’URL, et chaque donnée ajoutée à un site web dat:// est attachée à un log signé.
Les visiteurs d’un site web dat:// peuvent se retrouver grâce à une table de hachage distribuée1, puis ils synchronisent les données entre eux, agissant à la fois comme téléchargeurs et téléverseurs, et vérifiant que les données n’ont pas été altérées pendant le transit.

Schéma du réseau DAT
Une illustration basique du réseau dat://

 

Techniquement, un site Web dat:// n’est pas tellement différent d’un site web https:// . C’est une collection de fichiers et de dossiers qu’un navigateur Internet va interpréter suivant les standards du Web. Mais les sites web dat:// sont spéciaux avec Beaker parce que nous avons ajouté une API (interface de programmation) qui permet aux développeurs de faire des choses comme lire, écrire, regarder des fichiers dat:// et construire des applications web pair-à-pair.

Créer un site Web pair-à-pair

Beaker rend facile pour quiconque de créer un nouveau site web dat:// en un clic (faire le tour des fonctionnalités). Si vous êtes familier avec le HTML, les CSS ou le JavaScript (même juste un peu !) alors vous êtes prêt⋅e à publier votre premier site Web dat://.

Les développeurs peuvent commencer par regarder la documentation de notre interface de programmation ou parcourir nos guides.

L’exemple ci-dessous montre comment fabriquer le site Web lui-même via la création et la sauvegarde d’un fichier JSON. Cet exemple est fictif mais fournit un modèle commun pour stocker des données, des profils utilisateurs, etc. pour un site Web dat:// : au lieu d’envoyer les données de l’application sur un serveur, elles peuvent être stockées sur le site web lui-même !

// index.html
Submit message
<script src="index.js"></script>

// index.js
// first get an instance of the website's files
var files = new DatArchive(window.location)
document.getElementById('create-json-button').addEventListener('click', saveMessage)
async function saveMessage () {
var timestamp = Date.now()
var filename = timestamp + '.json'
var content = {
timestamp,
message: document.getElementById('message').value
}

// write the message to a JSON file
// this file can be read later using the DatArchive.readFile API
await files.writeFile(filename, JSON.stringify(content))
}

Pour aller plus loin

Nous avons hâte de voir ce que les gens peuvent faire de dat:// et de Beaker. Nous apprécions tout spécialement quand quelqu’un crée un site web personnel ou un blog, ou encore quand on expérimente l’interface de programmation pour créer une application.

Beaucoup de choses sont à explorer avec le Web pair-à-pair !

Documentation plus technique

  • How Dat works, un guide en anglais qui expose tous les détails sur le stockage des fichiers avec Dat
  • The Dat Protocol Book, également en anglais, plus complet encore.

 

À propos de Tara Vancil

Tara est la co-créatrice du navigateur Beaker. Elle a travaillé précédemment chez Cloudflare et participé au Recurse Center.




Des routes et des ponts (3), de quoi est fait un logiciel

Après l’introduction du livre Des routes et des ponts de Nadia Eghbal (si vous avez raté le début…) que le groupe Framalang vous traduit au fil des semaines, voici un aperçu tout simple des composants de base d’un logiciel.

Nos lecteurs les plus au courant n’y trouveront rien qu’ils ne sachent déjà, mais l’intérêt de cette présentation c’est justement qu’elle rend abordables et compréhensibles au grand public des objets techniques qui peuvent s’avérer très complexes à comprendre (…et maîtriser !). On peut dire que la démarche choisie ici, pragmatique et imagée, ne manque pas de pédagogie.
Merci à nos lecteurs soucieux des valeurs du libre de noter que l’auteur n’introduit les notions que progressivement : c’est seulement dans quelques chapitres qu’elle établira clairement une distinction claire qui nous est chère.

Vous souhaitez participer à la traduction hebdomadaire ? Rejoignez Framalang ou rendez-vous sur un pad dont l’adresse sera donnée sur Framasphère chaque mardi à 19h… mais si vous passez après vous êtes les bienvenu.e.s aussi !

De quoi sont faits les logiciels

par Nadia Eghbal

Traduction framalang : Luc, woof, Diane, xi, serici, Lumibd, goofy, alien spoon, flo, salade, AFS, lyn., anthony

Tous les sites web ou les applications mobiles que nous utilisons, même les plus simples, sont constitués de multiples composants plus petits, tout comme un immeuble est fait de briques et de ciment.

Imaginez par exemple que vous désiriez poster une photo sur Facebook. Vous ouvrez votre appli mobile Facebook, ce qui déclenche le logiciel de Facebook pour vous afficher votre fil d’actualités.

Vous téléchargez une photo depuis votre téléphone, ajoutez un commentaire, puis vous cliquez sur « Envoyer ». Une autre partie du logiciel de Facebook, en charge du stockage des données, se souvient de votre identité et poste la photo sur votre profil. Finalement, une troisième partie de ce logiciel prend le message que vous avez saisi sur votre téléphone et le montre à tous vos amis à travers le monde.

Bien que ces opérations aient lieu sur Facebook, en réalité, ce n’est pas Facebook qui a développé toutes les briques nécessaires pour vous permettre de publier sur son application. Ses développeurs ont plutôt utilisé du code libre, public, mis à disposition de tous sur Internet par des bénévoles. Facebook ne publie pas la liste des projets qu’ils utilisent, mais une de ses filiales, Instagram, le fait et remercie certains de ces projets sur sa page d’accueil et dans son application mobile

Utiliser du code public est plus efficace pour des entreprises comme Facebook ou Instagram que de développer à nouveau tous les composants par elles-mêmes. Développer un logiciel est comparable à la construction d’un immeuble. Une entreprise du bâtiment ne produit pas ses marteaux et ses perceuses, et n’ira pas non plus chercher du bois pour découper les troncs en planches.

Elle préférera les acheter à un fournisseur et se fournir en bois auprès d’une scierie pour finir le travail plus rapidement.

Grâce aux licences permissives, les sociétés telles que Facebook ou Instagram ne sont pas obligées de payer pour ce code, mais sont libres d’en profiter grassement. Ce n’est pas différent d’une entreprise de transport (Instagram) qui utilise les infrastructures routières publiques (code public) pour acheminer ses produits à des fins commerciales (application Instagram).

Mike Krieger, un des co-fondateurs d’Instagram, a insisté sur ce point en 2013 et encouragé d’autres entrepreneurs à :

emprunter plutôt que construire à chaque fois que c’est possible. Il existe des centaines d’excellents outils qui peuvent vous faire gagner du temps et vous permettre de véritablement vous concentrer sur le développement de votre produit. (source)

Voici quelques-uns des outils utilisés par une entreprise de logiciels :

Frameworks (environnements de développement)

Les framewoks offrent une base, une sorte d’échafaudage, une structure. Imaginez cela comme un schéma pour toute une application. Comme un plan, un framework définit la manière dont l’application se comportera sur mobile, ou comment ses données seront sauvegardées dans une base de données. Par exemple Rails et Django sont des frameworks.

rubyrails
Ruby on Rails, RefineryCMS & Heroku, image par Erin Khoo (CC-BY 2.0)

Langages

Les langages de programmation constituent l’épine dorsale de la communication des logiciels, comme la langue anglaise (NdT : aux USA bien sûr) qu’emploient les ouvriers du bâtiment sur un chantier pour se comprendre. Les langages de programmation permettent aux divers composants du logiciel d’agir et de communiquer entre eux. Si par exemple vous créez un compte sur un site internet et que vous cliquez sur « S’enregistrer », cette application peut utiliser des langages comme le JavaScript ou le Ruby pour sauvegarder vos informations dans une base de données.

Parmi les langages de programmation les plus populaires on peut mentionner le Python, le JavaScript et le C.

Bibliothèques

Les bibliothèques sont des fonctions pré-fabriqués qui accélèrent l’écriture du code d’un logiciel, tout comme une entreprise du bâtiment achète des fenêtres préfabriquées au lieu de les assembler à partir des composants de base. Par exemple, au lieu de développer leur propre système d’identification pour les utilisateurs de leur application, les développeurs et développeuses peuvent utiliser une bibliothèque appelée OAuth. Au lieu d’écrire leur propre code pour visualiser des données sur une page web, ils ou elles peuvent utiliser une bibliothèque appelée d3.

Bases de données

Les bases de données stockent des informations (profils d’utilisateurs, adresses électroniques ou codes de cartes bancaires par exemple) qui peuvent être utilisées par l’application. À chaque fois qu’une application a besoin de se souvenir d’une information qui vous concerne, l’application la stocke dans la base de données. Parmi les systèmes de gestion de bases de données (SGBD) les plus populaires on trouve notamment MySQL et PostgreSQL.

database
Database par gnizr (CC BY 2.0)

Serveurs web et d’applications

Ces serveurs gèrent certaines requêtes envoyées par les utilisateurs sur Internet : on peut les voir comme des centrales téléphoniques qui répartissent les appels. Par exemple, si vous saisissez une URL dans la barre d’adresse de votre navigateur, un serveur web vous répondra en vous envoyant la page concernée. Si vous envoyez un message à un ami sur Facebook, le message sera d’abord envoyé à un serveur d’applications qui déterminera qui vous essayez de contacter puis transmettra votre message au compte de votre ami.

Parmi les serveurs web très répandus, citons Apache et Nginx.

Certains de ces outils, comme les serveurs et les bases de données, sont coûteux, surtout à l’échelle d’une entreprise, ce qui les rend plus faciles à monétiser. Par exemple, Heroku, une plate-forme sur le cloud (sur un serveur distant) qui fournit des solutions d’hébergement et de bases de données, propose une offre de base gratuite, mais il faut payer pour avoir accès à plus de données ou de bande passante. De grands sites reposent sur Heroku comme ceux de Toyota ou de Macy, et l’entreprise a été rachetée en 2010 par Salesforce.com pour 212 millions de dollars.

Il est plus difficile de faire payer d’autres types d’outils de développement, tel que les frameworks, de nombreuses bibliothèques et langages de programmation, qui sont souvent créés et maintenus par des bénévoles.

Ce type d’outils ressemble plus à des ressources qu’à des services qui peuvent être activés ou désactivés : les rendre payants limiterait fortement leur adoption. C’est pourquoi n’importe qui, que ce soit une entreprise milliardaire ou un adolescent apprenti développeur, peut utiliser gratuitement ces composants pour créer ses propres logiciels.

Par exemple, selon la page d’accueil d’Instagram, l’une des bibliothèques utilisées par l’entreprise est Appirater. Il s’agit d’une bibliothèque qui facilite les fonctions de rappels automatiques pour l’évaluation d’une application, à destination des utilisateurs d’iPhone. Elle a été créée en 2009 par Arash Payan, un développeur indépendant basé à Los Angeles. Le projet n’apporte aucun revenu à Payan.

C’est comme si des scieries, des centrales à béton et des magasins de matériel donnaient leurs matériaux de base à une entreprise du bâtiment, puis continuaient à approvisionner cette entreprise.




Minetest, piochez en toute liberté

MIcrosoft a acheté Minecraft, le fameux jeu « bac à sable », à son créateur. Et pour une petite fortune ! Forcément, l’ogre de Redmond avait une idée derrière la tête…

Dans ce long article traduit par le groupe Framalang, Paul Brown propose une alternative pour pouvoir piocher en paix, et utiliser la puissante idée de Markus Persson en toute liberté.

 

Minetest, un serious game pour l’éducation

par Paul Brown

Article original Mining for education

Traduction Framalang : Pouhiou, MagicFab, touriste, audionuma, lamessen, LaPalice, line, Qwerty, Bromind, line, goofy, Frédéric V., Penguin, Isammoc, roptat, Meridel, galadas, Frederic V., Valdo, Roka, Vincent + 14 contributeurs anonymes

Sommaire

Ce billet est très long, et peut-être qu’une bonne partie ne vous concerne pas. Si vous voulez aller directement aux parties qui vous intéressent, voici le sommaire :

  1. Pourquoi utiliser Minecraft comme outil pédagogique est une mauvaise idée
  2. Pourquoi utiliser Minetest comme outil pédagogique est une bien meilleure idée (et comment débuter)
  3. Tout est dans les mods
  4. Jouer au jeu
  5. Mettre un serveur en place
  6. Minetest comme outil pédagogique
  7. Blocs de construction
  8. Mises en garde
  9. Conclusion

Quelle serait votre réaction si tous les menus de la cantine de votre enfant étaient livrés par un seul et unique fournisseur de plats préparés et de boissons sucrées ? Que diriez-vous si le régime alimentaire de votre enfant était limité à des chips, des tortillas goût fromage et des boissons sucrées gazeuses, sans possibilité d’alternative plus saine ?

Étant parent moi-même, je suppose que vous trouveriez épouvantable l’idée que l’école n’offre que de la malbouffe à votre enfant, à tel point que vous seriez prêt à envisager de le changer d’établissement. Mais que faire si c’était la même chose dans tout le pays ?

Ce n’est pas tout, imaginez qu’en plus le fournisseur de malbouffe ait apposé son logo partout : sur les tasses, les assiettes et sur les affiches qui décorent les murs des classes. D’ailleurs, en parlant de salles de classe, quand arrive le moment de l’apprentissage des bases de la nutrition, les chapitres du manuel scolaire s’avèrent rédigés par le service marketing de cette même entreprise qui fournit déjà les repas.

La plupart des parents, je l’espère, trouveraient cela scandaleux. Pourtant, on n’entend pas beaucoup de protestations véhémentes quand il se passe exactement la même chose dans un cours d’informatique et même pendant une session d’apprentissage assisté par ordinateur.

Les élèves n’apprennent pas à se servir d’un traitement de texte, ils apprennent Microsoft Word. Il n’apprennent pas à concevoir des présentations, ils apprennent Microsoft PowerPoint. On leur demande de présenter leurs travaux, que ce soit une rédaction, un diaporama, ou un graphique, dans l’un des formats propriétaires de Microsoft, de les enregistrer sur des clés USB formatées suivant le système de fichiers breveté par Microsoft. C’est ça et rien d’autre.

Voici comment Microsoft souhaite rentrer dans les écoles...
Voici comment Microsoft souhaite rentrer dans les écoles…

Pour une gigantesque entreprise comme Microsoft, c’est tout à fait logique. Non seulement le marché de l’éducation est immense et juteux en soi, mais transformer des élèves en futurs travailleurs, managers et entrepreneurs qui ont appris à la lettre et de façon formelle à dépendre exclusivement de ses produits, voilà une perspective qui doit être irrésistible.

Mais tandis que les produits Microsoft prédominent dans l’enseignement secondaire et universitaire, il manquait encore à l’entreprise la principale part du gâteau de l’éducation. En tant que manipulateur aguerri du marché, Microsoft reconnaît que le lavage de cerveau fonctionne d’autant mieux que vous commencez jeune. Mais jusqu’à ces dernières années, ils n’avaient tout simplement pas le produit pour capter cette tranche d’âge.

Maintenant, si. Maintenant, ils ont Minecraft.

Pour détruire tout espoir que ce logiciel immensément populaire soit un jour publié sous licence libre (comme Markus « Notch » Persson a prétendu jadis qu’il pourrait l’être), Microsoft a déboursé 2,5 milliards de dollars en 2014 pour le jeu de Persson et s’est immédiatement attelé à le rendre encore plus attrayant grâce à la conclusion d’un accord avec Lego qui a fait du jeu la star de sa technologie Hololens, grâce aussi à la réalisation d’un film, en limitant toutefois les fonctionnalités dans le même temps.

Ah bon, vous n’aviez pas entendu parler de ce dernier point ? Je dois vous révéler que dès que vous faites abstraction du nouvel emballage attrayant et du tapage médiatique, vous pouvez enfin voir ce que Microsoft entend faire de Minecraft. En simplifiant le jeu pour l’adapter à sa version mobile, et en ne le faisant plus tourner sous Java, Microsoft peut mieux contrôler sur quelles plateformes il pourra fonctionner (vous savez que Minecraft fonctionne bien sous GNU/Linux parce qu’il est écrit en Java ? C’est la première chose qui sera supprimée), et tuer d’un coup tout l’écosystème de mods non validés par Microsoft.

C’est ainsi que les choses se profilent. Avant que tout ne parte en vrille, la question est de savoir si la communauté du logiciel libre a un plan B. Existe-t-il un logiciel libre susceptible de rivaliser avec Minecraft ?

Une solution ouverte

Cet article serait bien court si la réponse était « non ».

Pour être certain de ne pas me fourvoyer, j’ai passé la majeure partie des quatre dernières semaines à la recherche d’alternatives. N’ayant pas eu beaucoup d’expérience avec les jeux d’origine (Infiniminer et Dwarf Fortress), j’ai appris les rudiments du minage et de l’artisanat (du crafting), puis davantage. J’ai discuté avec des développeurs et des utilisateurs sur leurs canaux IRC – principalement pour demander de l’aide quand j’étais bloqué. J’ai aussi appelé en renfort des joueurs expérimentés de Minecraft (en l’occurrence, mon fils et ses copains) pour tester différentes versions libres et à code source ouvert de ce genre de jeux, afin qu’ils me fassent part de leurs commentaires.

Le verdict est tombé. La réponse est Minetest.

Le soleil se lève sur un lagon de Minetest. toutes les images sont CC-BY-SA Paul Brown / OCSMag
Le soleil se lève sur un lagon de Minetest.
toutes les images sont CC-BY-SA Paul Brown / OCSMag

Je ne vais pas enfoncer des portes ouvertes et vous dire que Minetest est libre tant au sens de « liberté d’expression » qu’au sens d’« entrée libre », c’est-à-dire gratuit. Il ne vous coûtera pas un sou pour être en droit de le télécharger, de le partager et d’y jouer ; vous n’aurez pas à endurer la moindre magouille de la part d’un vendeur ; il est soutenu par une communauté qui veut simplement construire un jeu vraiment amusant et y jouer, par conséquent de nouvelles fonctionnalités ont tendance à s’ajouter au fil du temps, et aucune ne sera supprimée de façon arbitraire. Je ne veux pas répéter ici ce qui est commun à la plupart des projets de logiciels libres… Bon, trop tard, je viens de le faire. Mais outre tout ce qui précède, Minetest est assez impressionnant par lui-même.

Pour commencer, il est écrit en C/C++, ce qui le rend plus léger et plus rapide que Minecraft. Mais surtout, il fonctionne plus ou moins partout (voyez sa page de téléchargements), que ce soit sur les ordinateurs fonctionnant avec FreeBSD, Windows, GNU/Linux (cherchez-le dans vos dépôts logiciels) et MacOS X ; sur les téléphones Android ; et, chose importante pour l’éducation, il fonctionne aussi sur le Raspberry Pi.

Minetest sur le Raspberry Pi

Faire tourner Minestest sur Raspbian pour Raspberry Pi est relativement simple. Commencez par ouvrir un terminal et saisissez :

sudo apt-get update
sudo apt-get upgrade

pour être certain que le système est bien à jour. Puis installez Minetest avec :

sudo apt-get install minetest

Vous pouvez aussi installer un serveur, des créatures (« MOBs ») et des mods pour étendre les capacités du jeu original. Recherchez-les avec :

apt-cache search minetest

et choisissez ce dont vous pensez avoir besoin.

Une fois que votre gestionnaire de logiciels en a terminé avec l’installation, Minetest devrait être disponible dans le sous-menu Jeux. Mais vous ne pourrez pas y jouer tout de suite !

Minetest nécessite OpenGL, une collection de bibliothèques 3D libres. Pour activer OpenGL, lancez :

sudo raspi-config

Sélectionnez Options avancées, puis AA GL Driver, Activer et OK. Ceci démarrera le pilote expérimental OpenGL pour votre bureau.

Redémarrez votre Pi. Quand vous serez de retour sur votre bureau, vous pourrez démarrer Minetest normalement.

N.B. : Il se peut que vous ayez besoin de désactiver le pilote OpenGL pour pouvoir jouer à Minecraft.

Ce qui est bien, c’est que mises à part certaines fonctionnalités pour la gestion des écrans tactiles, ça reste le même jeu. Même la version pour Raspberry Pi est exactement identique à la version PC. Cela constitue déjà un bon atout par rapport à Minecraft qui, sur Raspberry Pi, est très limité et ne fournit pas du tout la même expérience que son équivalent sur PC. Je le sais, car à une époque, j’ai écrit à propos de Minecraft sur le Pi, et depuis, les choses n’ont pas changé d’un iota.

Vous pouvez télécharger Minetest pour votre système d’exploitation, ou si vous avez la chance d’utiliser une distribution GNU/Linux, laisser votre gestionnaire de logiciels faire le gros du travail à votre place. Vous pourrez aussi trouver quelques extras dans les dépôts de votre distribution : un serveur Minetest évidemment, et des paquets de mods fournissant des créatures, une météo, etc.

 

Tout est affaire de Mods

C’est l’une des principales différences entre Minecraft et Minetest : dans ce dernier, presque tout est un mod. En fait, si vous lanciez Minetest sans aucun mod, vous vous retrouveriez à vagabonder dans un monde constitué exclusivement de blocs de pierre. Le jeu Minetest standard est principalement un catalogue de mods, de blocs (« nodes » dans le jargon Minetest), de textures et de sons ajoutés au moteur de jeu. Jetez un coup d’œil dans le dossier games/minetest_game situé dans le dossier partagé minetest/ et vous comprendrez ce que je veux dire.

Vous pouvez installer de nouveaux mods en les téléchargeant depuis le wiki du site Minetest. Ensuite, vous les déposez dans le dossier mods/ (créez-le s’il n’existe pas) situé dans votre dossier minetest/. Veuillez noter que sous GNU/Linux, le dossier peut être caché, dans ce cas recherchez .minetest/ dans votre dossier home.

Admettons que vous vouliez une météo, de la pluie, de la neige et des choses du genre, dans votre monde ? Allez dans votre dossier minetest/mods/

cd minetest/mods/

ou bien

cd .minetest/mods/

et téléchargez le mod météo :

git clone https://github.com/Jeija/minetest-mod-weather.git

Le mod est maintenant installé. C’était facile, non ?

Tout ce qu’il vous reste à faire, c’est de l’activer.

Un dépôt de Mods pour Minetest

Si vous exécutez la version 0.4.10 de Minetest, vous avez peut-être remarqué un bouton Online mod repository sous l’onglet Mods du menu.
Lorsque vous cliquez dessus, il ne se passe pas grand-chose. Si vous consultez le fichier debug.txt dans votre répertoire minetest, vous constaterez que le programme essaie de se connecter à une page web des forums Minetest qui n’existe plus. Selon les développeurs, le dépôt de mods, ainsi que l’installation de ceux-ci à partir du jeu lui-même, sont actuellement une expérimentation infructueuse, mise en pause jusqu’à ce qu’ils trouvent quelqu’un pour implémenter un modèle fonctionnel et évolutif.
Dans la version de développement 0.4.13 de Minetest, ce bouton n’existe plus.
Bonne nouvelle pour les utilisateurs de Minetest sous Android néanmoins : il existe une application qui installe les mods de façon transparente sur votre mobile. Elle est disponible sur Google Play et marche très bien.

Démarrez Minetest, et si ce n’est déjà fait, créez un nouveau monde en cliquant sur le bouton Nouveau dans l’onglet Solo. Une nouvelle boîte de dialogue apparaît. Donnez un nom à votre monde et laissez le reste tel quel. Cliquez sur Créer.

Une fois votre monde sélectionné, cliquez sur le bouton Configurer. Cela vous affiche une liste des mods disponibles. Double-cliquez sur weather et il passera du blanc au vert. Cela signifie que ce mod sera activé quand vous lancerez votre monde.

Cliquez sur Jouer et le mod weather ouvrira les canalisations d’eau de temps en temps. Si vous êtes impatient, vous pouvez faire pleuvoir en ouvrant le HUD ([F10]) et en saisissant :

/setweather rain

ou bien

/setweather snow

à l’invite de commande.

Pour l’arrêter, saisissez :/setweather none

Si un message d’erreur apparaît et vous indique que vous n’avez pas les permissions pour démarrer et arrêter la pluie, essayez de vous les octroyer vous-même en saisissant :

/grant [votre nom de joueur] weather

dans le HUD.

Faites tomber la neige avec le mod weather
Faites tomber la neige avec le mod weather

Quasiment toutes les touches de F1 à F12 ont une fonction, chacune peut être consultée sur le site de Minetest, en même temps que les autres paramètres du clavier. Parmi les plus utiles, on trouve :

Touche Fonction 2nd appui
F5 Affiche les coordonnées du joueur Affiche les statistiques du serveur
F7 Modifie la vue caméra Cycle parmi les vues caméra
F9 Ouvre une mini-carte Agrandit le zoom
F10 Ouvre le HUD Ferme le HUD
F12 Prend une capture d’écran

 

En parlant du HUD… De toutes les touches ci-dessus, F10 est peut-être celle qui mérite que l’on s’y attarde. Le HUD, ou Head Up Display (affichage tête haute), vous permet de saisir des messages dans le chat ou des commandes qui vous permettent de faire davantage de choses qu’avec de simples appuis de touches.
En saisissant :

/teleport 500,5,500

par exemple, vous pouvez directement vous rendre aux coordonnées (500, 5, 500) – si vous avez le pouvoir de téléportation, je précise.

/time 9:00

réglera l’heure du jour sur 9 heures du matin.

Utilisez le HUD pour tchater ou taper des commandes
Utilisez le HUD pour tchater ou taper des commandes

/sethome

Cette commande définit un point, par exemple, là où vous avez construit votre refuge, où vous pouvez toujours vous téléporter avec la commande :

/home

…utile si vous êtes perdu ou en danger.

Pour envoyer un message à un autre joueur, vous pouvez utiliser :

/msg [nom du joueur] [message]

La commande :

/msg Paul Bonjour Paul !

envoie « Bonjour Paul ! » au joueur de ce nom. Vous pouvez également envoyer des messages à tous les joueurs ou des messages privés comme décrit ci-dessus en appuyant sur la touche `t` (pour talk, parler en anglais).

Si vous administrez votre propre monde, vous pouvez utiliser le HUD pour envoyer des instructions afin de contrôler les joueurs indisciplinés, ainsi que des commandes spécifiques à certains mods (telles que la commande /setweather que nous avons vue plus haut). Pour obtenir la liste complète des commandes, saisissez :

/help all

 

Jouer au jeu

Créez un fourneau pour transformer les minerais en lingots.
Créez un fourneau pour transformer les minerais en lingots.

Est-ce vraiment différent de jouer à Minetest, en comparaison d’avec Minecraft ? Très peu en fait. La plupart des raccourcis clavier sont exactement les mêmes et, bien sûr, il y a toute la partie fabrication. Vous n’avez pas besoin de session d’apprentissage dans Minetest. Appuyez simplement sur la touche [i] et vous accéderez à tous les emplacements contenant les matériaux et objets que vous transportez avec vous, ainsi qu’une grille de fabrication. Cela dit, vous aurez besoin de construire un fourneau pour fondre le minerai en lingots.

À côté des haches, des pelles et des épées, un autre outil très utile (et spécifique à Minetest) que vous devriez construire est le tournevis. C’est une bonne idée d’en fabriquer un assez tôt dans le jeu, dès que vous avez du bois et du fer. Le tournevis vous permet de changer l’orientation des autres objets. Si vous fabriquez des escaliers, par exemple, et que vous les disposez dans le mauvais sens, placez le tournevis dessus et vous pourrez les faire tourner sur eux-mêmes.

Différents mods ajoutent de nouveaux objets que vous pourrez fabriquer et de nouveaux matériaux bruts ou transformés. Le module Technic, par exemple, ajoute toutes sortes de trucs hi-tech, depuis le fil en cuivre pour les circuits électriques, jusqu’aux forets en diamant. Ce mod est continuellement mis à jour. L’un des plus récents ajouts est le réacteur nucléaire, qui est utile, mais aussi dangereux !

Bien que l’intérêt de Minetest ne réside pas tant dans le combat contre des monstres (et c’est pour ça que les créatures ne sont pas incluses par défaut) que dans la construction, la présence de créatures menaçant votre propriété peut certainement rendre les choses plus amusantes. Mais ce qui est encore plus amusant cependant, c’est de construire et protéger sa propriété avec des amis.

Serveur Minetest

Monter un serveur Minetest pour vos amis, vos collègues ou votre école est facile. Minetest est constitué de deux parties : le client, qui est le programme avec lequel vous interagissez directement, et un serveur, qui génère le monde, gère les joueurs, leur localisation et leur inventaire, et avec lequel vous interagissez indirectement.
Lorsque vous jouez en solo, vous faites tourner un serveur pour vous seul. En fait, si vous voulez inviter des amis dans le monde dans lequel vous jouez, vous pouvez quitter votre partie et revenir au menu, et dans l’onglet « Serveur », cocher l’option « Public ». Si vos amis sont sur le même réseau, il leur suffira de se connecter à votre adresse IP avec leurs propre clients et de commencer à jouer.

Un serveur dédié

Bien que vous puissiez vouloir éviter de faire tourner un serveur Minetest pour votre organisation en arrière-plan sur le poste de travail de quelqu’un, vous n’avez pas besoin d’une machine exclusivement dédiée à Minetest. Minetest est conçu pour être léger et, avec la puissance du matériel moderne et les capacités disque qui de nos jours atteignent le téraoctet, une tour standard suffira.

Héberger un serveur Minetest sur votre serveur de fichiers ou d’impression fera probablement l’affaire, tant que vous faites attention à sa sécurisation (voir ci-dessous).

Même un Raspberry Pi conviendra pour servir de façon réactive une demi-douzaine d’utilisateurs environ. Cependant, s’il y a beaucoup plus de joueurs, des créatures errant ici et là, de nombreuses fabrications et que de vastes explorations ont lieu, vous pourriez trouver que le Pi commence à ramer et vous devrez alors opter pour une configuration plus musclée.

Si vous prévoyez quelque chose de plus ambitieux, peut-être un serveur public ou un serveur pour votre école entière, vous devriez envisager une machine sur laquelle le serveur Minetest pourra tourner sans interface graphique.

Sur Debian GNU/Linux ou sur un système basé sur cette distribution (comme Ubuntu, Mint ou Raspbian), saisir :
su
apt-get install minetest-server

sur Debian, ou bien :
sudo apt-get install minetest-server
pour Ubuntu, Raspbian et Linux Mint pour installer le serveur autonome.

Vous pouvez démarrer le serveur à la main sans être administrateur en saisissant :
minetestserver --info
Le paramètre –info vous informera des problèmes éventuels et affichera aussi des événements, par exemple quand un utilisateur se connecte au serveur pour jouer.

C’est une bonne méthode pour vérifier que tout fonctionne, mais les développeurs de Minetest recommandent, pour des raisons de sécurité, d’utiliser un utilisateur standard n’ayant pas les droits de super-utilisateur (sudo) pour faire tourner le serveur. Stoppez le serveur en appuyant sur les touches [Ctrl]+[c] et créez un utilisateur avec la commande suivante :

su
adduser minetest

si vous utilisez Debian, ou :

sudo su
adduser minetest

si vous utilisez Ubuntu, Mint ou Raspbian.

Définissez le mot de passe pour le nouvel utilisateur. Vous pouvez laisser tous les autres champs vides.

Quittez la session super-utilisateur (exit), connectez-vous en tant qu’utilisateur minetest et déplacez-vous dans son répertoire personnel :

exit
su minetest
[saisissez le mot de passe de minetest]
cd

Lancez à nouveau minetestserver en tant que ce nouvel utilisateur.

Vous pouvez aussi jouer sur les serveurs publics d'autres joueurs.
Vous pouvez aussi jouer sur les serveurs publics d’autres joueurs.

Le serveur Minetest écoute par défaut sur le port 30000 (bien que vous puissiez le changer avec le paramètre –port), donc vous devrez autoriser cet accès au niveau de votre pare-feu et faire suivre vers ce port au niveau de votre routeur si vous lancez le serveur sur votre réseau local et que vous voulez que des joueurs de l’extérieur puissent accéder à votre partie.

Pour installer des mods, copiez-les vers le répertoire /usr/share/games/minetest/games/minetest_game/mods/ et ils seront automatiquement chargés et activés quand le serveur tournera. Pour vérifier que les mods que vous voulez ont bien été chargés, lancez le jeu, ouvrez le HUD ([F10]) et saisissez /mods.

Si vous voulez restreindre l’accès à votre serveur, car vous ne voulez jouer qu’avec vos amis et ne souhaitez pas que des inconnus viennent gâcher la fête, créez un fichier .conf et chargez-le au moment de lancer le serveur.

Un fichier .conf Minetest est un fichier texte avec une série de paires clef = valeur sur chaque ligne. Si vous voulez limiter les utilisateurs à vos seuls amis, vous pouvez par exemple demander à ce que les joueurs utilisent un mot de passe et définir un mot de passe initial que seuls vous et vos amis connaissez. Le fichier .conf devrait ressembler à ça :

name = Mon Minetest
disallow_empty_password = true
default_password = MotDePasseSecret
motd = Si ce n'est pas déjà fait, merci de changer votre mot de passe.

où MotDePasseSecret est le mot de passe que vous communiquez à vos amis.

Cela affichera aussi un message à tous les utilisateurs leur demandant de changer leur mot de passe par défaut. Les utilisateurs peuvent changer leur mot de passe en appuyant sur [Échap] (ou sur le bouton retour sous Android) depuis le jeu et en cliquant sur le bouton Changer le mot de passe.

Changer son mot de passe depuis le menu utilisateur
Changer son mot de passe depuis le menu utilisateur

Démarrez le serveur en saisissant :

mineetestserver --config /chemin/vers/votre/fichier/de/configuration.conf

pour le forcer à charger votre fichier .conf.

Vous trouverez un exemple de fichier de configuration avec beaucoup d’autres options sur le dépôt GitHub de Minetest.

Une fois que tout est opérationnel, vous pouvez octroyer des privilèges à chaque utilisateur comme bon vous semble en éditant le fichier auth.txt que vous trouverez dans le répertoire de votre monde. Chaque ligne ressemble à ça :

Paul:x69lFMHqU/qrUHlRoCpIF34/56M:interact,shout

Vous voyez trois champs séparés par deux points (:). Vous avez d’abord le nom d’utilisateur, puis une version chiffrée de son mot de passe et enfin une liste séparée par des virgules de ses privilèges. Vous pouvez ajouter des privilèges en complétant la liste :

Paul2:x69lFMHqU/qrUHlRoCpIF34/56M:interact,shout,home

Le privilège « home » permet à un joueur d’utiliser les commandes /sethome et /home que nous avons vues précédemment.

Une autre manière d’accorder des privilèges est d’accorder le privilège « privs » à votre propre joueur. Ensuite, vous pourrez accorder de nouveaux privilèges directement depuis le HUD. La commande :

/grant [player name] home

permet d’accorder le privilège « home » à un joueur. Vous pouvez aussi vous accorder plus de privilèges de cette manière.

Vous pouvez révoquer les privilèges d’un joueur en saisissant :

/revoke [player name] [privilege]

Pour voir les privilèges dont vous disposez :

/privs

dans le HUD, ou bien :

/privs [player name]

pour voir les privilèges qu’un autre joueur possède.

Une fois que vous êtes satisfait de la configuration de votre serveur, vous pourriez souhaiter configurer votre système de façon à démarrer Minetest à chaque fois que vous allumez votre ordinateur. Pour ce faire, vous pouvez créer une tâche cron qui s’exécute au démarrage.

Accédez à votre utilisateur minetest depuis une fenêtre de terminal, et ouvrez l’éditeur crontab avec la commande :

crontab -e

Ajoutez à la fin du fichier une ligne semblable à celle-ci :

@reboot /usr/games/minetestserver --config /chemin/vers/votre/fichier/de/configuration.conf

Vous devez également ajouter toute autre option dont vous auriez besoin, comme le nom du monde que vous voulez charger au démarrage, le port sur lequel vous voulez que votre serveur écoute, etc. Pour voir une liste complète des commandes possibles, saisissez :

minetestserver --help

dans un terminal.

La plupart des distributions GNU/Linux modernes, dont Debian, Ubuntu, Mint et Raspbian, utilisent désormais systemd pour gérer des choses comme les démons et les services. Les versions futures de Minetest tireront profit de ce sous-système, installeront automatiquement les fichiers de configuration et créeront un utilisateur pour les exécuter.

Un outil pédagogique

L’argument majeur en faveur de l’utilisation de Minetest par rapport à une alternative propriétaire est sa modularité. Les débutants apprécieront le fait de pouvoir modifier toutes les caractéristiques de leur personnage et des différents objets à l’intérieur du monde qu’ils ont créé.

Même les formes des personnages peuvent être modifiées en utilisant Blender
Même les formes des personnages peuvent être modifiées en utilisant Blender

Il existe même un mod wardrobe (armoire) que l’administrateur du serveur peut remplir de textures personnalisées afin que les joueurs puissent changer leur apparence en cours de jeu.

La modularité va au delà de la simple esthétique cependant, et les développeurs de Minetest ont créé un framework complet séparé du programme principal, qui permet aux utilisateurs de créer de nouveaux blocs et d’en ajuster le comportement, de concevoir de nouveaux objets à fabriquer, et de construire pratiquement tout ce que vous pouvez imaginer. Vous pouvez également créer des mods qui affecteront le comportement du monde et vous permettre, par exemple, de créer des parties depuis le jeu Minetest lui-même.

Prenez par exemple l’ensemble de mods éducatifs listés sur le wiki de Minetest. Cela va de paquets apportant de simples blocs illustrés de lettres et de nombres, jusqu’à des mods qui rendent Minetest compatible avec l’API Python de Minecraft pour Raspberry Pi.

Voyons un exemple.

Les blocks du mod teaching
Les blocks du mod teaching

Le mod Minetest-teaching (l’apprentissage par Minetest) fournit des outils pour créer des casse-têtes arithmétiques et orthographiques. Si les élèves parviennent à les résoudre, vous pouvez les récompenser avec des objets rares ou des blocs.

Pour commencer à l’utiliser, téléchargez-le vers votre répertoire minetest/mods/ :

https://github.com/pbrown66/minetest-teaching.git

Renommez le répertoire en teaching/, sinon ça ne fonctionnera pas. Démarrez Minetest et activez le mod. Pour créer une énigme, par exemple 2+2=, entrez dans le jeu en utilisant le mode créatif et donnez-vous les privilèges de professeur. Pour cela, ouvrez le HUD ([F10]) et saisissez :

/grant [votre nom] teacher

Appuyez à nouveau sur [F10] pour fermer le HUD.

Pour mettre en place l’énigme, creusez une tranchée de 5 blocs de long. Ouvrez l’inventaire ([i]), choisissez l’onglet Nodes (Blocs) et déplacez-vous jusqu’à ce que vous voyiez les blocs d’apprentissage.

Pour l’énigme ci-dessus, vous aurez besoin de quatre blocs lab, d’un bloc checking, de deux blocs allow-dig, de deux blocs 2, d’un bloc +, d’un bloc =, d’un bloc 5 (une mauvaise réponse) et d’un bloc 4 (la bonne réponse).

Posez les quatre blocs lab dans la tranchée en commençant complètement à gauche. Dans le trou qui reste, posez le bloc checking. Placez les blocs 2, +, 2 et = sur les blocs lab comme indiqué ci-dessous.

En posant les blocs qui constituent l’énigme sur des blocs lab, vous les rendez indestructibles et les élèves ne pourront pas détruire de façon accidentelle ou volontaire l’activité proposée.

des blocs vont sur lab pour l'énigme, un emplacement cheking pour répondre, et des emplacement allow dig pour les blocs de réponses.
des blocs vont sur lab pour l’énigme, un emplacement cheking pour répondre, et des emplacement allow dig pour les blocs de réponses.

Cliquez du bouton droit de la souris sur le bloc checking à droite de la tranchée, et une boîte de dialogue apparaîtra. Utilisez-la pour indiquer au bloc quelle est la bonne réponse et lui faire offrir un nugget de sagesse et un prix. Dans l’exemple suivant, la bonne réponse est évidemment 4. Lorsque l’élève trouve la bonne réponse, le message « Bravo ! Voici un diamant. » s’affichera dans son chat et un diamant apparaîtra au-dessus du bloc de solution.

Pour résoudre l’énigme, les élèves doivent saisir les blocs de solution et placer le bon sur le bloc de vérification. Vous pouvez déposer les blocs de solution n’importe où, mais vous devez les placer sur un bloc allow-dig, sinon il deviennent indestructibles et les élèves ne pourront plus le récupérer. Donc, creusez deux trous là où vous souhaitez laisser les blocs de solution, placez un bloc allow-dig à l’intérieur de chacun d’eux, et placez les blocs 4 et 5 sur chacun des blocs allow-dig.

À présent, vous pouvez lâcher vos élèves en liberté dans votre monde.

Quand un élève place une réponse incorrecte (dans notre exemple, le bloc 5) sur le bloc de vérification, rien ne se passe. Il peut le détruire et réessayer. Mais quand il place la bonne réponse (dans notre cas, le bloc 4), l’énigme offre le prix et se verrouille, empêchant l’élève de frapper et de casser le bloc, et de le remettre sans cesse en place pour obtenir une infinité de diamants.

Et la bonne réponse, récompensée par un diamant.
Et la bonne réponse, récompensée par un diamant.

Seul le joueur possédant les droits de professeur peut réinitialiser l’énigme. Il peut effectuer cela en frappant le bloc de solution, en frappant le bloc situé en dessous du bloc de solution et en replaçant et reprogrammant le bloc de vérification.

Blocs de construction

Toute la magie du modding est obtenue grâce à l’utilisation de Lua, un langage de programmation de haut niveau ressemblant par bien des aspects à Python (le langage utilisé dans l’édition Raspberry Pi de Minecraft). C’est un bon choix, car il est clair (vous n’avez pas à vous soucier de symboles étranges comme en PERL, ou de points virgules en fin de ligne comme en C/C++). Il combine les fonctionnalités des langages orientés objet avancés et des langages fonctionnels, et il est spécialement conçu pour la programmation de jeux vidéo.

Bien que ce ne soit pas l’endroit pour enseigner le Lua (il y a déjà d’excellentes ressources en ligne), et qu’expliquer tous les tenants et aboutissants du modding de Minetest allongerait bien trop ce qui est déjà un article excessivement long, regardons au moins l’anatomie d’un mod de type Hello World pour que vous puissiez avoir une idée de la façon de vous lancer.

Ouvrez un éditeur de texte et copiez-y ce qui suit :

minetest.register_on_joinplayer(function(player)
minetest.chat_send_all("Hello " .. player:get_player_name() .. "!")
end)

Voici votre premier mod.

Pour comprendre la première ligne, songez au fait que dans Minetest, la plupart des choses s’exécutent lorsque le joueur fait quelque chose ou que quelque chose se produit dans le monde. On appelle ces choses des événements. Quand un joueur se connecte à un monde Minetest, un événement joinplayer est envoyé. « register_on_joinplayer » est une méthode intégrée qui demande à l’objet minetest de se mettre à écoute d’un tel événement et d’exécuter une fonction quand cela se produit. La fonction est ce que vous pouvez voir entre parenthèses.

Dans notre cas, la fonction prend l’objet « player » (joueur) associé à l’événement et, à la deuxième ligne, extrait le nom du joueur en utilisant la méthode intégrée « get_player_name() ». Le nom renvoyé est stocké dans une chaîne de caractères (notez que « .. » est ce que Lua utilise pour concaténer des chaînes de caractères) qui est ensuite envoyée à tous les joueurs via la méthode intégrée « chat_send_all ».

Une fois que vous avez fini de copier le code, créez un répertoire nommé hello/ dans minetest/mods/ (ou .minetest/mods/) et sauvegardez votre fichier sous le nom init.lua dans votre nouveau répertoire. Vous pouvez aussi créer un fichier texte dans le répertoire hello/ avec une brève description du module – enregistrez-le sous le nom description.txt et il apparaîtra dans l’onglet Mods du panneau de contrôle de Minetest.

Activez le mod et tous les joueurs seront salués lorsqu’ils se joindront à la partie.

Votre mod apparaîtra dans le panneau de contrôle.
Votre mod apparaîtra dans le panneau de contrôle.

Pour en savoir plus sur la manière d’écrire des mods Minetest, consultez le wiki officiel du site des développeurs et jetez un œil aux méthodes Minetest. Cela vous donnera une idée de ce que vous pouvez faire avec le framework Lua. N’oubliez pas non plus d’étudier la façon dont vous devriez organiser les bricoles à l’intérieur de votre répertoire mod.

Mises en garde

Minetest est assez génial, mais bien entendu, il n’est pas parfait. La complexité des composants logiciels sous-jacents fait que le client comme le serveur peuvent planter de temps en temps… Ou du moins, c’est ce que les développeurs me disent. Il est intéressant de noter qu’au cours des recherches consacrées à cet article, je n’ai fait l’expérience d’aucun plantage, même quand j’utilisais la branche de développement instable.

Voici un problème bien plus réel : si Minetest aspire à être utilisé en tant que logiciel éducatif, ce qui devrait être le cas, il ne doit pas seulement rivaliser avec le poids lourd Minecraft sur ses mérites, mais aussi avec le fait que Minecraft arrive pré-installé dans Raspbian pour le Raspberry Pi et avec son interface Python.

Même si l’API Lua de Minetest est bien plus puissante que le Python de Minecraft, à tel point que ce dernier passe pour un joujou en comparaison, et que Dieu me garde de préconiser l’adoption d’une technologie seulement parce que c’est le standard de fait, il faut bien prendre en compte la résistance naturelle de l’humain au changement. Demander aux professeurs de changer à la fois de jeu et de langage de programmation va être difficile à vendre.

La modularité est un autre aspect à prendre en compte. Je l’ai dit tout à l’heure, c’est l’une des raisons qui font de Minetest un jeu génial, mais elle peut être intimidante pour les nouveaux utilisateurs. Une installation basique de Minetest est un peu spartiate : pas de créatures, pas de survie, pas de nourriture, pas de météo… On excuserait facilement un nouvel utilisateur qui, y jouant pour la première fois, se dirait que Minetest n’est qu’une très pâle copie de Minecraft. Je suggérerais la création d’une « version grand public » de Minetest, qui embarquerait le plus grand nombre possible de fonctionnalités de Minecraft que les joueurs attendent de trouver, et qui par conséquent éviterait de décevoir les nouveaux venus.

Pour terminer, il y a ma bête noire que j’évoque très souvent : la documentation. J’ai souvent dû m’en remettre au canal IRC de Minetest. Les wikis de Minetest, bien qu’ils affichent un nombre d’index impressionnant, contiennent beaucoup trop de sections vides. Les exemples de code, quand ils existent, sont inexpliqués et non commentés. Il n’y a pas de tutoriels « apprendre par la pratique ». Quand vous posez la question, les moddeurs les plus expérimentés (qui sont par ailleurs très patients et serviables) mentionnent tout le temps un fichier texte spécifique qui contient des descriptions courtes et souvent énigmatiques des modules et des attributs. Encore une fois, il n’y a pas d’exemples dans ce document qui aideraient les nouveaux utilisateurs à comprendre les outils offerts par l’API.

Conclusion

Minetest a parcouru un chemin incroyable depuis la dernière fois où nous en avions parlé. Le seul fait qu’il fonctionne sur toutes les plateformes, que ce soit GNU/Linux, Windows, OS X, Android ou Raspberry Pi, le place clairement en tête de la compétition. Il a développé une communauté saine et dynamique, et étant open source et doté d’une API ouverte relativement facile à utiliser, il a bénéficié littéralement de centaines d’extensions et de mods.

En tant qu’outil éducatif/collaboratif à destination des jeunes (et des adultes), il est idéal, même meilleur que Minecraft, en raison de sa nature ouverte et libre et de la puissance du polyvalent framework Lua. C’est logique : Minecraft a été décrit à une époque comme un « Lego social » et est vénéré parce qu’il encourage la collaboration, mais qu’y a-t-il de plus social et de plus collaboratif qu’un logiciel libre ouvert jusqu’à son code source ?

Pour aller plus loin :




Aujourd’hui, je dégooglise ma famille !

Dégoogliser le monde ? Oui, mais par où commencer ? Une fois qu’on a soi-même fait un premier effort pour se désintoxiquer des services prédateurs si pratiques, on souhaite qu’autour de soi aussi l’assuétude générale s’atténue et que peu à peu se dessine une autre tendance : que chacun ait la possibilité de reprendre la main sur sa vie numérique.

— Commençons par nos proches !

Telle est la démarche modeste et pragmatique qu’a choisie Nathanaël Leprette. Un drôle de numéro, comme vous allez le découvrir dans l’interview qui suit : une sorte de généreux citoyen du monde, un globe-trotter humanitaire… ce n’est pas un hasard si ce libriste convaincu a aussi retroussé ses manches pour proposer à son cercle familial des adresses mail personnalisées, un hébergement. Et ce n’est sans doute qu’un début…

Chez Framasoft, nous sommes ravis de voir poindre, s’épanouir et se multiplier de telles initiatives, parce que ce sont précisément ces intermédiaires convaincus et disposant d’un minimum de compétences techniques qui peuvent aider le mieux à diffuser la dégooglisation. Comme Nathanaël aujourd’hui, nombreux sont les lecteurs de ce blog qui peuvent franchir le pas ou ont déjà commencé à le faire, seuls ou dans un réseau familial, associatif, professionnel…

Faites-nous part de vos projets et de vos succès de dégooglisation quelle qu’en soit l’échelle, vous donnerez des idées aux autres et le mouvement s’accroîtra d’autant plus vite !

Bonjour Nathanaël, tu fais quoi dans la vie ?

nathanaelLepretteJe suis volontaire un peu partout sur des projets très différents mais je n’ai plus de travail rémunéré depuis trois ans et demi (parfois je paie même pour être volontaire… en Asie, c’est devenu courant). Je vis en autofinancement, sur mes épargnes, un voyage à petit budget donc 🙂

J’ai travaillé dès que j’ai pu pour mettre des sous de côté. J’ai étudié mais n’ai jamais vraiment exercé le métier d’ingénieur en Thermique du Bâtiment et Énergies Renouvelables auquel mon diplôme m’a pourtant formé.

Je voyage pour partager avec mes frères et sœurs du monde entier. Je suis parti pour les connaître. J’avais prévu un tour du monde en trois ans, cela fait 3 mois que les trois ans sont écoulés et je n’ai pas encore complètement quitté l’Asie.

Je retourne bientôt en Iran pour y apprendre pendant un an les langues perses et arabes. J’y travaillerai aussi sans doute un peu. Et puis je veux renouveler mon projet Ecole, World y Camino qui jusqu’alors m’emmenait dans les écoles du monde à la rencontre des enfants pour leur ouvrir une fenêtre sur l’ailleurs et leur proposer de participer à un relais international de dessins d’enfants.

Pour proposer des services comme l’hébergement de pages et la gestion d’adresses mail, il faut tout de même avoir des compétences que tout le monde n’a pas dans ta famille, je suppose. Tu peux nous dire comment tu t’y es pris techniquement pour pouvoir faire cette sympathique proposition à tes proches ?

J’ai eu cette idée dès le début en fait. Je veux dire, dès que j’ai compris ce qu’est Internet et le monde libre. Je suis un visiteur de Framasoft depuis de très nombreuses années (vers 2004 au moins) et j’ai toujours préféré utiliser Firefox et VLC. OpenOffice portait un autre nom à l’époque et Libre Office n’existait pas encore… « Le logiciel libre » est un concept qui m’attirait avant même de bien le comprendre. Le déclic s’est fait à la suite de deux vidéos qui ne parlaient pas de Logiciels Libre mais d’Internet, celle très connue de Benjamin Bayart sur le Minitel 2.0 et celle de Michel Serres, plus confidentielle, Les nouvelles technologies : révolution culturelle et cognitive.

C’est une phrase expliquant qu’une adresse de courriel devrait être du genre quiATquoiDOToù ou quiATnomdecompanieDOTcom qui m’a fait tilt et je me suis dit :

ça serait bien une adresse en @leprette.fr pour ma famille.

Sauf qu’à l’époque je découvrais. J’ai d’abord fait ma propre éducation, je suis passé aux Logiciels Libres, je me suis intéressé au problème des réseaux sociaux (j’ai eu assez tôt un compte Facebook mais l’ai quitté depuis). J’ai apporté mon soutien à un projet qui n’existe plus aujourd’hui qui s’appelait Beedbox (un projet d’autohébergement) que je rêvais de voir travailler en collaboration avec les réseaux sociaux décentralisés comme Movim ou Jappix, ou encore mieux acentralisé comme Newebe.

Le dernier déclic quant aux logiciels libres c’est quand Stéphane Laborde, l’auteur de la Théorie Relative de la Monnaie, fait la remarque dans un de ses podcasts que fondamentalement, ce n’est pas le logiciel qui est libre mas bien l’utilisateur du logiciel qui se voit attribuer des libertés grâce aux licences dites libres. Je crois que le raccourci que nous faisons tous de « logiciel sous licence libre » en « logiciel libre » a ralenti ma compréhension du phénomène et mon adhésion. Si le premier gars qui m’a parlé de Linux quand j’étais ado m’avait parlé des libertés utilisateurs plutôt que des logiciels, j’aurais basculé 5 ans plus tôt, lorsque j’ai quitté Windows pour Mac.
Et puis je me suis lancé. J’ai découvert l’hébergement web en mettant en place mon propre blog ainsi que celui de ma mère qui raconte ses histoires d’expat’ avec beaucoup d’humour.

Après des déboires avec HostPapa, j’ai migré chez OVH en début d’année et j’en ai profité pour acheter le nom de domaine leprette.fr en le gardant sous le coude pour plus tard. Le plus tard est venu quelques mois après, quand j’ai résidé quelque temps en Arabie Saoudite. C’est là que j’ai travaillé sur ce projet, en mai 2015.

lpretteOffre1

Ils sont nombreux, les Leprette potentiellement intéressés par ta proposition ? Et combien ont déjà dit banco ?

Les Leprette ne sont pas bien nombreux, une grosse centaine je crois et si je limite à ma famille (ceux qui ont reçu le message au sujet de leprette.fr), une quarantaine peut-être. Ensuite, combien prendront connaissance de l’offre, comprendront sa justification et son intérêt, pour eux avant tout, mais aussi pour l’Internet dans son ensemble, je l’ignore, mais sans doute très peu dans un premier temps. Peut-être qu’à force de recevoir petit à petit des courriels en xxx@leprette.fr, ils commenceront à se poser des questions, à aller lire la page web, etc.
Aujourd’hui, nous sommes 6 à utiliser une adresse en leprette.fr.
lepretteOffre2

Tu n’as pas un peu peur que ça ne te donne beaucoup de boulot : entre expliquer, dépanner, aider à installer, initier, encourager à franchir le pas, accompagner…

Je suis prêt à prendre le temps nécessaire pour les accompagner et les aider. Ils savent que, si je n’ai ni compte facebook, ni twitter etc, je réponds toujours à mes emails le plus rapidement possible. Certains savent même que je réponds à des invitations skype.

J’offre à ma famille un moyen simple de participer à la décentralisation dans l’Internet mais j’ai choisi pour l’heure la simplicité, j’ai pris un hébergement partagé chez OVH. Le jour où je serai sédentaire avec une connexion qui le permet, je me lancerai le défi de tout autohéberger.

Les explications des services sont toutes sur la page web leprette.fr. Il me manque deux inscrits pour changer de formule chez OVH et simplifier les explications en omettant mes problèmes de MYSQL et FTP…

Pour l’heure il n’y a donc aucun problème d’installation ni, à priori, de dépannage.

Et ensuite ? Que proposeras-tu à moyen ou long terme si tout se passe idéalement ? Élargir la base d’utilisateurs au-delà du cercle familial, proposer des solutions de réappropriation de ses données plus complètes (owncloud, cozy…) ? Autre chose ?

Le futur est très excitant. J’aimerai vraiment un jour pouvoir m’autohéberger mais ce n’est pas pour tout de suite et ça semble compliqué, surtout concernant le serveur de courriel. Les courriels risquant d’être facilement considérés comme spam (j’ai lu ça un jour, je n’ai jamais poussé plus loin, on verra).

Idéalement, ce serait top que chaque membre puisse même s’autohéberger chez lui et que je puisse administrer à distance leur « leprettebox » en cas de problème, mais aujourd’hui ce n’est pas pensable. Je ne sais même pas d’ailleurs si je peux rediriger des sous-nomdedomaine vers une adresse ip spécifique, celle de la box d’un membre de ma famille, et encore moins ce qu’il en serait pour les emails…

kittens
Des chatons tout excités à l’idée de fournir un jour des lepretteBox !

En attendant que tout cela soit réalisable, je continuerai avec un système de centralisation familiale avec un serveur leprette.fr, que j’espère un jour être « dédié » et qui hébergerait des cozy-cloud. Du côté de chez kimsufi j’ai trouvé des offres viables pour moi économiquement si je demande à chacun 5€/mois (l’offre d’aujourd’hui, email et espace web est à 5€/an). le KS-3 pour un minimum de 4 utilisateurs et jusqu’à 8 utilisateurs. Pour cette offre là, je n’ai pour l’heure que deux intéressés, ce qui n’est pas suffisant pour démarrer un serveur. Il m’en faudrait deux de plus pour qu’on puisse se lancer. Si cela devait arriver, alors deux questions se poseront à moi, quid du backup ? (il me faudrait un KS-1 de Kimsufi avec 2To de DD mais ils n’acceptent pas de changer leurs offres), et surtout, comment faire pour gérer les courriels ? Je suppose que je ne pourrais pas continuer avec l’offre d’OVH, il faudra les héberger sur le même serveur, ce sera à moi d’apprendre…

Je donne des coups de main de temps à autre à cozycloud. Je ne perds pas l’idée d’un réseau social familial. J’espère y voir arriver un jour Newebe ou Movim bien sûr, et même d’y installer une instance de LibreOffice online pour qu’on puisse travailler sur ses propres documents directement depuis son cozy, rêvons un peu !

Enfin, il y aura bien sûr un serveur de crypto-monnaie Ucoin pour aider les membres de ma famille à prendre en main leur participation à l’économie du libre en utilisant une Monnaie Libre, un dividende universel, dont la création monétaire est distribuée (pas de préfixe « re ») sous la forme d’un revenu de base entre tous les membres (tel que décrit par la « Théorie Relative de la Monnaie »).

[ Placement de produit : ci-dessous pub gratuite pour Cozy ]

Une des utilisatrices de @leprette.fr et qui utilise aussi un cozy (je l’ai inscrite pour l’heure à la béta de cozy-cloud) m’a confié « Je suis super contente, tu ne peux pas savoir, un cadeau de Noël quand ce n’est pas Noël ». Elle m’expliquait récemment :

« Je communique assez peu sur internet mais je ne fais pas assez attention quand j’utilise l’internet, tout en étant tellement incapable de me protéger. Je supporte très mal l’idée que des inconnus puissent s’introduire dans mon univers et dans ma vie privée. Je veux que l’on ne puisse ni identifier ni influencer mes enfants ou mes choix. Bref je vais pouvoir enfin faire une page perso et partager avec mes amis.

Avec le métier que je fais, on nous demande une totale neutralité de parole et d’opinion, le respect des coutumes et usages du pays hôte, et une stricte confidentialité de nos données. J’ai besoin d’un accès sécurisé à mes données quand je voyage, le cloud c’est une bonne idée, c’est pratique, mais, jusqu’ici je n’avais pas confiance. Souvent, je ne peux pas me permettre de me promener avec un ordi ou un disque dur qui contienne trop d’informations sur moi, mes livres, mes musiques, mes courriels… Donc j’ai bien regardé le cozy cloud et je suis définitivement intéressée. Tu me diras comment faire ? »

succesLeprette

Avec cozy, elle aura tout ce dont elle a besoin sauf l’accès à ses livres. Pour l’heure, il manque une application de lecture d’ebook. J’en parle ici, j’ai même trouvé un ebook reader en node.js en développement histoire de ne pas partir de zéro. Si quelqu’un dans le coin savait l’adapter à cozy, ce serait super cool !

Tu peux compter sur nous pour transmettre ces suggestions au cozygang. Comme il est de tradition dans nos interviews, je te laisse le mot de la fin…

Il me semble que j’ai oublié une évidence… le jour où Leprette.fr sera sur un serveur dédié, des petits services à la framasauce fleuriront. Car derrière chaque Français se cache un paysan. Je cultiverai le jardin Leprette.fr en suivant les tutos de Framasoft !

 

Crédit photos




et pendant ce temps-là, du côté de l’open source…

Voilà des années qu’on nous prédit que l’année suivante sera celle de Linux sur le desktop mais on est encore bien loin de son adoption sur l’ordinateur familial des Dupuis-Morizeau[1]. D’autant que la ligne de front s’est maintenant déplacée vers les mobiles, les tablettes, les objets connectés…
Le tableau du champ de bataille serait plutôt sombre, le libre et l‘open source peinent à exister parmi les mastodontes qui s’affrontent. Mais voici comme pour nous consoler un petit lambeau de ciel bleu : le bilan que tire Glyn Moody de ce qu’il considère comme la domination victorieuse de l‘open source — Comment ça ? — On comprend mieux quand on remarque que son billet ici traduit est placé dans la rubrique Open Entreprise

2015 : l’Open Source a gagné, mais ce n’est qu’un début.

Après les succès de 2014, jusqu’où ira-t-elle ?

par Glyn Moody

Article original : 2015: Open Source Has Won, But It Isn’t Finished
Traduction Framalang : Diab, sinma, goofy, AFS, lamessen, KoS, Narcisse, cpio

185px-Glyn_Moody_1__cropped_.jpgÀ l’aube d’une nouvelle année, la tradition veut que l’on fasse une rétrospective des 12 mois précédents. Mais en ce qui concerne cette rubrique, il est facile de résumer ce qui s’est passé : l‘open source a gagné. Reprenons depuis le début :

Les supercalculateurs. L’hégémonie de Linux dans le top 500 des supercalculateurs est telle que c’en est presque gênant. Les chiffres de novembre 2014 montrent que 485 des 500 premiers systèmes tournent sous une version de Linux ou une autre. Un seul d’entre eux tourne sous Windows. C’est encore plus impressionnant si l’on regarde le nombre de cœurs concernés. Là, on retrouve Linux sur 22 581 693 cœurs, tandis que Windows n’en fait tourner que 30 720 ; cela signifie que non seulement Linux domine, mais aussi que sa position est particulièrement forte sur les plus gros systèmes.

L’informatique dans le nuage. La Fondation Linux a proposé l’année dernière un rapport intéressant qui analysait l’utilisation de Linux dans le cloud par les grandes entreprises. Il montrait que 75 % d’entre elles utilisent Linux comme plateforme principale contre 23 % pour Windows. Il est difficile de traduire cela en parts de marché car les solutions hybrides doivent être prises en compte. Toutefois, en raison de la popularité actuelle de l’informatique délocalisée, il est évident que l’on peut considérer que l’utilisation de Linux est importante et croissante. Concrètement, la même étude a montré que le déploiement de Linux dans le cloud était passé de 65 % à 78 % quand Windows chutait de 45 % à 36 %. Bien entendu, certains considéreront que la Fondation Linux n’est pas totalement objective ici, mais malgré cela et compte tenu des incertitudes statistiques, on voit clairement dans quelle direction l’on va.

Les serveurs web. L‘open source domine ce secteur depuis près de 20 ans — une performance. Cependant la répartition des parts de marché à récemment évolué de façon intéressante : à un moment donné, IIS de Microsoft a réussi à dépasser Apache en nombre total de serveurs web, mais, comme l’explique Netcraft dans son analyse la plus récente, il faut y regarder à deux fois :

C’est le second mois d’affilée que l’on enregistre une forte baisse du nombre total de sites web, faisant de ce mois celui qui en totalise le moins depuis janvier. Comme c’était le cas en novembre, ces pertes se sont concentrées sur un nombre limité de sociétés d’hébergement, avec les dix plus fortes baisses qui représentent plus de 52 millions de noms de domaine. Les sites actifs et les ordinateurs visibles sur le web n’ont pas été affectés par ces pertes. Les sites concernés étaient essentiellement des fermes de liens, avec très peu de contenu unique. La majorité de ces sites fonctionnaient avec Microsoft IIS, l’amenant à dépasser Apache dans l’enquête de juillet 2014. Cependant, les récentes pertes ont entraîné une chute de 29.8 % des parts de marché de ce système d’exploitation, qui se situe désormais à plus de 10 points (en pourcentage) derrière Apache.

Ainsi, la « percée » de Microsoft est plus virtuelle que réelle, car elle repose en grande partie sur des sites de liens sans grand contenu utile. Du reste, les chiffres de Netcraft sur les sites actifs brossent un tout autre tableau : Apache aurait 50,57 % des parts de marché, suivi par Nginx avec 14,73 %. Microsoft IIS arriverait péniblement derrière avec un pourcentage assez faible de 11,72 %. Ce qui signifie que l‘open source représente environ 65 % du marché des serveurs Web actifs – pas tout à fait au niveau des supercalculateurs, mais c’est tout de même plutôt bien.

Les systèmes mobiles. Ici, l’avancée de l‘open source, à travers Android, se poursuit. Les derniers chiffres montrent que 83,6 % des smartphones livrés au troisième trimestre 2014 tournent sur Android, en augmentation par rapport aux 81,4 % du même trimestre l’année précédente. Apple baisse, passant de 13,4 % à 12,3 %. Sur le marché des les tablettes, Android suit une trajectoire identique : au second trimestre 2014, Android atteignait environ 75 % des ventes mondiales, alors que celles d’Apple se situaient aux alentours de 25 %.

Les systèmes embarqués. Bien qu’il soit plus difficile de quantifier les parts de marché de Linux sur l’important marché des systèmes embarqués, les chiffres d’une étude de 2013 indiquent qu’environ la moitié des systèmes embarqués utiliseraient ce système d’exploitation.

L’Internet des objets. À plus d’un titre, il s’agit simplement d’un autre avatar des systèmes embarqués, à la différence qu’ils sont conçus pour être connectés en permanence. Il est encore trop tôt pour parler de parts de marché, mais comme je l’ai récemment expliqué, le framework open source AllSeen arrive en tête. Ceux qui brillent par leur absence, de façon frappante, ce sont les concurrents propriétaires crédibles ; il semble extrêmement probable que l’Internet des objets verra l’adoption de l‘open source aux mêmes niveaux que les supercalculateurs.

Bien sûr, un tel niveau de réussite soulève toujours la question : quelle est l’étape suivante ? Étant donné que l‘open source approche de la saturation dans de nombreux secteurs, une baisse est-elle inévitable à l’avenir ? En réponse à cette question, je recommande la lecture d’un essai qui donne à réfléchir, écrit en 2013 par Christopher Kelty pour le Journal of peer production et bizarrement intitulé : « Il n’y a pas de logiciel libre ». Voici comment il débute :

Le logiciel libre n’existe pas. Cela m’attriste étant donné que j’ai écrit un livre entier sur le sujet. Mais il s’agit aussi d’un point que je tente de traiter dans mon livre. Le logiciel libre, et son frère jumeau l‘open source, est en constant devenir. Il n’existe pas sous une forme stable, permanente ni pérenne, et c’est ce qui fait une partie de sa force.

En d’autres termes, 2014 nous a déjà apporté toutes sortes de formidables logiciels libres, mais nous pouvons être sûrs que 2015 nous en apportera bien davantage, car ils poursuivent indéfiniment leur évolution. SpitefulCat.jpg

Crédit photo
Glyn Moody par Stuart Yeates – (CC BY-SA 2.0)

Note

[1] Notre sympathique famille-témoin de Normandie