Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Sortie de Tryton 8.0

Le 20 avril 2026 est sortie la version 8.0 de long support de Tryton un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

La version 8.0 de Tryton s'inscrit dans la continuité des versions précédentes en améliorant la stabilité, les performances et les fonctionnalités (dont ci-dessous les principales).
Cette version a un support long de cinq ans comparé à une année pour version précédentes.

Interface et usage quotidien

Quand un champ a été modifié par les actions de l'utilisateur, il est identifié afin de permettre une vérification visuelle avant de sauvegarder.

Champ langue du tiers modifié

Les onglets peuvent être réorganisés maintenant aussi pour le client web et l'action de déconnexion est désormais dans le même menu qui contient déjà les notifications et les préférences utilisateurs afin de donner encore plus d'espace dans l'entête pour les onglets.

Modules métiers

Sur le plan fonctionnel, la version 8.0 s'enrichit avec de nouveaux modules : gestion des chèques, gestion des accises et suivi d’alcool ainsi que le suivi de la vente de service par des tâches de projet.

Les modules comptables espagnols et allemands ont été sortis du dépôt standard afin d'être gérés plus simplement par la communauté.

Administration et développement

La version 8.0 ajoute le support de Python 3.14 et arrête celui de Python 3.9.
La librairie psycopg est mise à jour à la version 3 ce qui permet d'envoyer les requêtes SQL et leurs paramètres séparément et ainsi lever les limitations sur la taille des paramètres (entre autre le nombre d'IDs dans les clause column IN (...)).

Il est maintenant possible de définir des champs Function (c-à-d calculés par l'ORM) uniquement par une expression SQL. Cette expression sera utilisée pour la lecture, la recherche et le tri.

La définition des modules a été améliorée pour permettre l'utilisation de sous-répertoires plus facilement. En effet, on peut maintenant créer un fichier tryton.cfg dans un sous-répertoire et utiliser un chemin relatif depuis celui-ci vers ses fichiers ressources.

Une API REST a été ajoutée au serveur et une librairie cliente naiad a été publiée. Elle permet de remplacer l'utilisation du module trytond directement pour la création d'applications connexes telles que des sites web. C'est une architecture plus flexible que celle utilisée jusqu'à maintenant comme dans le module flask-tryton.

Les sessions pour le client web sont maintenant stockées comme cookie pour plus de sécurité.
Le client web utilise à présent uniquement des chemins relatifs, ce qui permet de le servir depuis un sous-répertoire.

Appel à sponsor

Pour préparer l'obligation de facturation électronique en France, un appel à sponsor a été lancé pour intégrer la plateforme agrée SUPER PDP.

Commentaires : voir le flux Atom ouvrir dans le navigateur

GPX2Video - GPS & Vidéo

Je vous ai fait part il y a quelque temps de mon petit projet de réaliser un logiciel sous Linux pour effectuer mes petits montages vidéos et y insérer les données de télémétrie (issues du GPS de la caméra ou d’un GPS externe).

Le journal publié à l’époque que vous pouvez consulter ici.

Où le projet en est-il ?

Le projet est réalisé en trois temps :

  1. Tout d’abord un outil en ligne de commande. L’utilisateur effectue la mise en page via un fichier XML, puis lance l’outil en fournissant en paramètre : la vidéo, le fichier de XML et un fichier GPX.
  2. Puis dans un deuxième temps une interface graphique pour effectuer la mise en page et exporter le résultat au format XML afin d’être utilisé par l’outil en ligne de commandes.
  3. Et enfin de tout réaliser directement via l’interface.

Bien sûr il y a encore beaucoup de travail et d’optimisation à faire ; mais c’est utilisable. Les sources sont maintenant disponibles.

L’interface est en cours de développement. Le projet étant en C++, l’interface est basée GTK4++. La visualisation du rendu peut être faite en temps réel.

Interface utilisateur en GTK4++

Les testeurs et testeuses sont les bienvenus.

Commentaires : voir le flux Atom ouvrir dans le navigateur

9 années de wallabag.it, merci Pocket

wallabag est une application open source (licence MIT) qui sauvegarde des articles et vous permet de les lire plus tard, sur votre smartphone, votre tablette ou votre liseuse.

Un peu plus tard que les années précédentes, je prends le temps de rédiger ce billet. Le début d’année a été (et est encore) chargé, avec notamment les élections municipales, mais ce n’est pas le sujet.

Deuxième année spéciale, avec là encore, la fermeture d’un concurrent. Et non des moindres : l’historique Pocket.

Ça a généré un afflux massif de nouveaux clients, vous le verrez ci-dessous.

On en reparle dans la partie conclusion.

En parallèle de cette activité (en micro-entrepreneur), je suis salarié à 80% en tant que développeur web. Donc wallabag.it n’est pas mon activité principale et je n’y consacre pas énormément de temps. Et je ne fais aucune publicité du service.

C’est uniquement le bouche-à-oreille qui fonctionne.

Pour information, j’ai démarré wallabag.it le 3 décembre 2016.

Dans cette diffusion de données, je ne vais pas forcément chercher à comprendre / étudier telle ou telle donnée, ou alors réfléchir comment améliorer mon chiffre d’affaires. L’idée est d’être transparent avec mes clients et donner des idées à celles et ceux qui souhaiteraient se lancer.

Je ne vais pas non plus refaire l’historique du changement d’offres, ça se trouve dans les billets cités ci-dessous.

Voici les offres disponibles :

  • 3 mois pour 4 €
  • 1 an pour 11 €
  • 1 an pour 30 € (abonnement de soutien)

Nombre de factures

Une facture est un abonnement, peu importe que ça soit pour 3 mois ou 1 an, et peu importe sa valeur.

  • 2016 : 89 (un seul mois d’activité)
  • 2017 : 662 factures
  • 2018 : 787 factures (+18,9%)
  • 2019 : 959 factures (+21,9%)
  • 2020 : 1.266 (+32%)
  • 2021 : 1.526 (+20,5%)
  • 2022 : 1.531 (+0,3%)
  • 2023 : 1.496 (−2,3%)
  • 2024 : 1.656 (+10,7%)
  • 2025 : 3.281 (+98,1%)

Nombre moyen mensuel de factures :

  • 2016 : 89 (un seul mois d’activité)
  • 2017 : 55 factures / mois
  • 2018 : 65 factures / mois
  • 2019 : 79,9 factures / mois
  • 2020 : 105,5 factures / mois
  • 2021 : 127 factures / mois
  • 2022 : 127 factures / mois
  • 2023 : 125 factures / mois
  • 2024 : 138 factures / mois
  • 2025 : 273 factures / mois

Chiffre d’affaires (CA)

  • 2016 : 783 € (un seul mois d’activité)
  • 2017 : 6.093 €
  • 2018 : 7.593 € (+24,6%)
  • 2019 : 9.481 € (+24,9%)
  • 2020 : 12.922 € (+36,3%)
  • 2021 : 15.460 € (+21,5%)
  • 2022 : 15.735 € (+1,8%)
  • 2023 : 16.499 € (+4,9%)
  • 2024 : 19.536 € (+18,4%)
  • 2025 : 38.012 € (+94,6%)

CA mensuel moyen :

  • 2016 : 783 € (un seul mois d’activité)
  • 2017 : 507 €
  • 2018 : 632 €
  • 2019 : 790 €
  • 2020 : 1.076 €
  • 2021 : 1.288 €
  • 2022 : 1.311 €
  • 2023 : 1.375 €
  • 2024 : 1.628 €
  • 2025 : 3.167 €

Abonnement moyen (en moyenne, combien un client paie pour s’abonner) :

  • 2016 : 8,80 €
  • 2017 : 9,19 €
  • 2018 : 9,54 €
  • 2019 : 9,83 €
  • 2020 : 10,20 €
  • 2021 : 10,09 €
  • 2022 : 10,23 €
  • 2023 : 11,21 €
  • 2024 : 11,80 €
  • 2025 : 11,53 €

Type d’abonnements

  • 2017 : 342 abonnements à 9 € (+145 à 12 €, prix au départ de l’abonnement), 32 abonnements à 25 € et 80 abonnements à 3 € .* 2018 : 532 abonnements à 9 €, 93 abonnements à 25 € et 161 abonnements à 3 €
  • 2019 : 668 abonnements à 9 €, 118 abonnements à 25 € et 173 abonnements à 3 €
  • 2020 : 853 abonnements à 9 €, 173 abonnements à 25 € et 240 abonnements à 3 €
  • 2021 : 1084 abonnements à 9 €, 199 abonnements à 25 € et 243 abonnements à 3 €
  • 2022 : 1098 abonnements à 9 €, 207 abonnements à 25 € et 226 abonnements à 3 €
  • 2023 : 668 abonnements à 9 € et 398 abonnements à 11 €, 103 abonnements à 25 € et 91 abonnements à 30 €, 140 abonnements à 3 € et 96 abonnements à 4 €
  • 2024 : 1 202 abonnements à 11€, 173 abonnements à 30€ et 281 abonnements à 4€
  • 2025 : 2 352 abonnements à 11€, 324 abonnements à 30€ et 605 abonnements à 4€

Dépenses

En 2025, j’ai dépensé pour 2 372 € de frais (hébergement, nom de domaine, prestation admin sys, etc.), soit 198€ en moyenne par mois.
J’ai payé 2 207 € de commissions pour PayPal, PayPlug et Stripe, mes prestataires de paiement en ligne.
J’ai également payé environ 8 760 € de cotisations sociales.

Total : 13 340 €

Résultat net

  • 2017 : 3 130 €
  • 2018 : 3 454 €
  • 2019 : 4 823 €
  • 2020 : 6 591 €
  • 2021 : 9 034 €
  • 2022 : 9 401 €
  • 2023 : 9 977 €
  • 2024 : 12 171 €
  • 2025 : 24 672 €

Conclusion

Cette année 2025 a été folle en termes de nombre de nouveaux clients. Tous les chiffres ont explosés.

Et je vais avouer une chose : je suis très partagé sur tout ça.

Courant juin, j’ai eu peur de ne pas être capable d’absorber toute cette nouvelle charge. Ça a tenu (merci Luc pour l’infrastructure).

Mais par contre, je me sens parfois mal à l’aise vis-à-vis du projet opensource, sur lequel j’ai du mal à passer du temps. Et j’ai du mal aussi à suivre le support wallabag.it, avec pas mal de mails en attente à traiter.

Je ne me suis jamais fixé d’objectif d’une année sur l’autre. Mais clairement, 2026 ne fera pas mieux que 2025. Pour rappel, je ne fais aucune publicité pour trouver de nouvelles personnes.

De plus, l’arrivée de l’IA risque de chambouler un peu le secteur. De plus en plus d’applis voient le jour, donc ça risque de disperser les clients.

Autre problématique liée à l’IA : de plus en plus de sites bloquent le fait de « crawler » un site web et donc wallabag (et mon serveur) se voit bloqué à droite à gauche par des sites de contenus.

RDV l’an prochain pour faire le bilan des 10 années d’activité de ma micro-entreprise !

Commentaires : voir le flux Atom ouvrir dans le navigateur

ÉducaLibre 2026 sera ce que nous en ferons ensemble. À bientôt à Bruxelles.

ÉducaLibre 2026 : appel à propositions d'ateliers, conférences et tables rondes

Bruxelles, 4-6 juillet 2026—Université libre de Bruxelles

Un rendez-vous européen qui manquait

Partout en Europe, des enseignants innovent avec des logiciels libres, des développeurs créent des outils pédagogiques ouverts, des makers fabriquent, des chercheurs explorent, des artistes partagent. Ces initiatives foisonnent—mais restent trop souvent isolées, ignorées les unes des autres, condamnées à réinventer sans cesse la même roue.

ÉducaLibre veut changer cela.

Du 4 au 6 juillet 2026, l'Université libre de Bruxelles accueille la première édition de ce rendez-vous européen des communs éducatifs : trois jours pour croiser les regards, partager les expériences, tisser des collaborations durables, et construire ensemble les ressources pédagogiques libres de demain.

L'événement est organisé par l'ASBL EduCode, qui avait déjà porté les éditions EduCode 2018 (1200 participants au BOZAR), 2019 et 2020, et dont certains membres ont contribué à l'organisation des RMLL 2013 à Bruxelles. Le lieu—le bâtiment U de l'ULB, domicile du FOSDEM depuis plus de vingt ans—n'a pas été choisi par hasard.

Ce qu'on y fera

Cinq pistes thématiques en parallèle :

  • politiques publiques et souveraineté numérique
  • pédagogie et pratiques de classe (GeoGebra, Moodle, Python, NumWorks, LaTeX, …)
  • administration et déploiement technique dans les établissements
  • innovation, IA et recherche en éducation
  • économie et entrepreneuriat du libre éducatif

Et une piste transversale : art, musique, création, poésie—parce que l'éducation se nourrit aussi de culture et de sensibilité.

En parallèle : des ateliers pratiques, des hackathons, des démonstrations, des tables rondes, des stands de projets. Le tout sous licences libres, avec captation vidéo publiée en CC-BY-SA.

Public attendu : 500 à 800 participants de toute l'Europe, enseignants du primaire au supérieur, développeurs, décideurs politiques, chercheurs, artistes, entrepreneurs.

L'appel à propositions est ouvert

C'est là que vous entrez en scène.

Vous utilisez un outil libre en classe et vous avez envie de le faire découvrir ? Vous avez mené une migration réussie dans votre établissement ? Vous développez un projet éducatif libre que le monde devrait connaître ? Vous avez des choses à dire sur la souveraineté numérique dans l'éducation, sur les modèles économiques du libre, sur l'IA et ses enjeux pédagogiques ?

Proposez une intervention : https://propositions.educalibre.eu

Formats acceptés :

  • atelier pratique (1h30)
  • conférence ou présentation (45 min)
  • table ronde ou débat (1h15)
  • démonstration de projet ou d'outil (30 min)
  • hackhaton
  • et toute autre forme que vous imaginez

Les langues de l'événement sont le français, le néerlandais, l'anglais et l'allemand—mais toute proposition dans une autre langue européenne sera examinée avec bienveillance.

La date limite pour soumettre une proposition est fixée au 14 avril 2026.

Pourquoi ça compte

L'éducation européenne est à un tournant. Le Schleswig-Holstein migre massivement vers le libre. La France structure ses politiques publiques autour de solutions souveraines. Des expériences remarquables existent au Kerala, en Catalogne, dans de nombreuses communes belges et françaises. Mais ces expériences ne se parlent pas assez.

ÉducaLibre n'est pas une conférence de plus où l'on écoute passivement des experts. C'est un espace horizontal, construit par et pour ses participants. Le programme sera ce que la communauté en fera.

Parmi les intervenants déjà pressentis :
1. Alexis Kauffmann (direction du numérique éducatif, ministère de l'éducation nationale français),
2. Frank Karlicheck (Nextcloud),
3. Tristan Nitot,
4. Pierre Pezzardi (Dinum)
5. Emmanuel Zimmert (ladigitale.dev)
6. des représentants de Framasoft, April, Aful, la FSFE, et des décideurs politiques belges et européens.

Pour aller plus loin

Tous les contenus produits seront publiés sous licence CC-BY-SA 4.0.

Commentaires : voir le flux Atom ouvrir dans le navigateur

L’année 2025 pour le projet PrestaShop

Les nouvelles les plus récentes sur LinuxFR concernant PrestaShop remontent à bientôt trois ans, une éternité dans le monde de l’édition de solutions web.

Pour rappel, PrestaShop est un système de gestion de contenu (CMS) libre français de commerce en ligne, développé en PHP et placé sous licence OSL v3.

En cette fin d’année 2025, regardons quelles sont les nouveautés des douze mois écoulés.

(Déclaration d’intérêts : je suis salarié PrestaShop SA)

10 juin : sortie de PrestaShop 9

Après plus de deux ans de développement et de collaboration avec la communauté, cette version majeure apporte son lot de nouveautés, principalement sous le capot. Avec, entre autres, le passage à Symfony 6.4 (version LTS), la compatibilité avec PHP 8.4 ou encore une toute nouvelle API d’administration.

La liste complète des nouveautés est disponible dans les notes de publication (en anglais)

Juillet et août : appel aux contributions externes

Le projet PrestaShop, depuis sa genèse, est open source et ouvert à toute forme de contribution : développement, rapport de bugs, traductions, écriture de documentation, etc.

Au quotidien, ce projet est également soutenu par l’entreprise PrestaShop SA.

Durant cette année, cette dernière a souhaité améliorer le suivi des contributions externes. C’est pourquoi il a été décidé de proposer à la communauté deux thématiques ciblées : les hooks (billet en anglais) et l’API Admin (billet en anglais) .

Il y a quelques semaines, un point d’étape concernant les contributions sur l’API Admin a été publié sur le blog du projet (en anglais).

4 septembre : sortie de PrestaShop 8.2.3

Depuis la publication de PrestaShop 9, la branche 8.2 est en support étendu, ce qui veut dire que seuls des correctifs de sécurité sont traités.

C’est pourquoi début septembre, la version 8.2.3 a vu le jour, suite la découverte d’une faille sur la page de réinitialisation du mot de passe.

Le billet de blog est disponible en anglais.

8 décembre : ménage de printemps d’hiver

L’écosystème PrestaShop, ce sont des dizaines de dépôts, des centaines de contributeurices et des milliers de tickets ouverts.

Il a été proposé de revoir la manière dont sont gérés les tickets, afin d’aider la communauté à mieux s’y retrouver.

C’est pourquoi il est maintenant possible d’ouvrir un ticket (pour déclarer un bug ou demander une nouvelle fonctionnalité) sur certains dépôts directement. Auparavant, tout était centralisé sur le projet PrestaShop directement et il était devenu très compliqué, pour les personnes en charge de traiter les plus de 2 300 tickets d’être efficaces.

Toute la nouvelle organisation et les différentes étapes sont disponibles en anglais.

15 décembre : PrestaShop 9.1, levez les stylos !

Et voila, on ne touche plus à cette version, en cours de développement depuis plusieurs mois, et on entre dans une phase de « feature freeze » : plus aucune nouveauté ne sera ajoutée. C’est une période pour tester cette version importante qui apportera notamment un nouveau thème par défaut (Hummingbird), un système de création de promotions revu et amélioré et aussi la possibilité d’assigner plusieurs transporteurs sur une seule commande.

Vous souhaitez tester cette future version et aider la communauté à stabiliser tout cela, n’hésitez pas à lire cette page publiée récemment.

Et en 2026, quel programme ?

La procédure de livraison de PrestaShop 9.1 continuera son cours, avec la sortie de versions Release Candidate et bien sûr, une version finale. Pas de date à donner, c’est toujours plus sage d’être prudent.

Entamé depuis plusieurs années, le chantier de réécriture du backoffice poursuivra son cours, avec la migration vers Symfony.

En tout cas, l’année 2026 sera importante pour le projet et sa communauté, mais nous aurons le temps d’en reparler dans quelques semaines !

Commentaires : voir le flux Atom ouvrir dans le navigateur

Rencontres Educalibre à Bruxelles les 4, 5, 6, 7 et 8 juillet 2026 à Bruxelles

Educalibre est une conférence consacrée aux biens communs, aux ressources pédagogiques libres, à l’autonomie stratégique et au logiciel libre principalement à l’école et dans le secteur public, mais bien sûr aussi dans toutes sociétés.

Elle se profile dans l’exacte suite des RMLL, les Rencontres mondiales des logiciels libres, dont l’édition bruxelloise s’est tenue dans les locaux de l’Université libre de Bruxelles et de Educode, la conférence sur la technologie dans l’éducation tenue fin 2018 à Bozar, les samedi 4, dimanche 5 et lundi 6 juillet 2026.

Cette conférence, d’abord communautaire et festive, est gratuite pour toutes les personnes impliquées dans l’enseignement (sauf les vendeurs de manuels, contenus et applications qui ne sont pas libres ou proposés des associations sans but lucratif).

Elle se veut une occasion de se retrouver dans un cadre humain festif à la fin de l’année scolaire, juste avant d’entamer des vacances bien méritées, et ce pour tous les développeurs de logiciels qui pourraient être utilisés à l’école ou dans un cadre de formation, pour tous les enseignants, ou pour toute autre personne intéressée par ces sujets.

Bien sûr chacun doit payer ses logements, repas et le cocktail dînatoire lundi 6 juillet 2026 à 19h dans les superbes salles gothique et de mariage de l'hôtel de ville sur la superbe Grand-Place de Bruxelles

Un préprogramme et des thèmes ainsi que les moyens de participer à l’organisation sont indiqués dans le wiki qu’est educalibre.eu. Nous vous y convions et vous y attendons.

Nous avons déjà la confirmation de la réservation des locaux du cocktail, offerts par la Ville de Bruxelles, et une option pour les locaux bien connus de tous ceux qui fréquentent le FOSDEM, la plus importante conférence des développeurs de logiciels libres en Europe, qui se tient à l’ULB tous les premiers weekends de février depuis 2000.

Cette conférence sera vraisemblablement aussi en partie organisée au Parlement européen ou à la Fondation universitaire proche.

Elle traitera aussi de la difficile question de l’autonomie stratégique, un vocable proposé par Tristan Nitot pour parler de souveraineté numérique, dans toutes ses formes et questions, et des moyens de la préserver, en montrant aussi concrètement comment procéder, avec des expositions de solutions concrètes par des prestataires.

Le cocktail dînatoire aura lundi 6 juillet à 19h, donc à la fin de educalibre. Pour la participation, limitée à 300 personnes ce sera « premier inscrit premier servi ». Mais bien sûr, les participants auront amplement l’occasion de se rencontrer entre eux et avec leurs clients/utilisateurs/clients potentiels lors des pauses café et repas qui seront très bien aussi.

Ces conférences sont initiées par Nicolas Pettiaux et François Pellegrini, deux figures bien connues du monde du libre francophone et européen depuis 2000. Elles sont dès maintenant coorganisées avec Jean-Yves Jeannas, Georges Khaznadar et Serge Smeesters. François est l’initiateur des RMLL à Bordeaux, Georges est un professeur de chimie et de physique très impliqué dans Debian et les RMLL depuis toujours, Jean-Yves est enseignant à l’Université de Lille, très impliqué dans les communs numériques, les standards ouverts et l’AFUL, Serge est un auteur régulier sur Linuxfr et un enseignant avec des logiciels libres qu’il contribue à développer, et Nicolas a participé dès le début à l’organisation du Osdem devenu Fosdem. Nicolas et François sont associés à des universités, respectivement l’Université libre de Bruxelles et l’Université de Bordeaux, et sont aussi actifs dans de nombreuses associations.

Educalibre est organisée par l’association belge Educode avec le soutien actif de l'Université libre de Bruxelles

Toute personne intéressée par l’organisation (je fais ici directement appel à toutes celles et ceux qui ont participé en leurs temps aux RMLL) ou le soutien à de telles conférences est priée de se manifester en écrivant à educalibre@educode.be en mentionnant son attachement professionnel, s’il y en a un, la raison de son intérêt et sa motivation ainsi que ses compétences.

Nous vous remercions déjà pour toutes vos idées et suggestions pour ces deux conférences.

La participation à educalibre sera gratuite comme elle l’était aux RMLL, et les participants seront invités à soutenir financièrement comme ils peuvent, comme pour le FOSDEM, et à acheter des goodies pour la soutenir.

Ils pourront acheter à prix coûtant les repas organisés (petits-déjeuners, déjeuners et repas du soir) organisés dans les lieux de la conférence pour favoriser les rencontres.

Les entreprises et institutions sont invitées à soutenir financièrement la conférence par exemple par des dons ou l’achat de stands et espaces de sponsoring comme pour les rencontres de la Linux Foundation.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Pocket est mort, vive wallabag

Pocket était une application permettant de gérer une liste d'articles lus sur Internet. Elle a été créée en août 2007 par Nathan Weiner, puis est devenue gratuite avec option Premium en 2012. Acquis en 2017 par Mozilla, le service a annoncé le 22 mai 2025 sa fermeture prochaine. (source Wikipedia).

Ainsi, depuis le 8 juillet 2025, il n'est plus possible d'archiver ses contenus via Pocket, seul l'export de ses données est réalisable. Courant octobre, l'export sera également coupé.

Une alternative à Pocket

Depuis maintenant plus de 12 ans, une alternative à ce service privateur existe : il s'agit de wallabag. Nous avons déjà régulièrement parlé de notre projet sur LinuxFR.org.

Suite à l'annonce de la fermeture de Pocket, l'équipe de développement s'est organisée afin de proposer un import possible depuis le CSV fourni.

C'est pourquoi une version 2.6.13 est disponible depuis le 4 juin.

Mettre à jour votre instance

Depuis quelques versions, c’est relativement simple de mettre à jour votre wallabag : vous n’avez qu’à exécuter la commande make update. Si vous le souhaitez, vous trouverez plus d’informations sur le billet de blog du projet.

La suite

Dans quelques semaines, l'équipe aimerait sortir une nouvelle version importante. Outre de nouvelles fonctionnalités (comme par exemple un sélecteur de police de caractères), c'est surtout une montée de version technique nécessaire afin d'assurer la pérennité du projet.

Pour rappel, si vous ne souhaitez pas héberger votre instance de wallabag, il est possible d’utiliser le service en ligne wallabag.it.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Cryptographie embarquée : briques de base et communication avec serialguard

Il était une fois un petit ESP32, installé dans une cave, qui voulait communiquer avec son copain sur le toit pour envoyer des données par 4G. Il parlait peu, donc il pouvait utiliser la norme radio LoRa. Elle est à bas débit, mais permet une portée bien plus grande qu’une modulation classique. Le problème, c’est qu’il parlait en clair, et que n’importe qui pouvait écouter ou pire : injecter de fausses données, voire corrompre le serveur distant.

Le protocole de communication à la mode est celui de Signal, utilisé aussi par WhatsApp et Messenger. Un autre protocole en vogue est WireGuard, dont l’objectif est d’offrir un VPN léger pour Linux, en s’appuyant sur un ensemble restreint de briques cryptographiques modernes et fortement recommandées, qui ne sont plus laissées au choix de l’utilisateur.

L’idée était donc de trouver une implémentation de ce type pour l’embarqué. Eh bien, je n’ai presque rien trouvé.

Sommaire

Briques de base

TLS est la référence absolue pour tous les algos, mais c’est à vous de faire votre choix. Libsodium est une implémentation des derniers algos recommandés et fait le choix pour vous. Ces deux bibliothèques sont énormes et sont optimisées pour PC. Un professeur de cryptographie a écrit une série de tweets qui contient une petite lib qui reprend les algorithmes de libsodium en version auditable (https://tweetnacl.cr.yp.to/). Mais elle est lente.

Une autre personne écrit ce que je cherche : Monocypher. C’est un fichier .c avec les algo principaux de libsodium et qui compile en pur C sans dépendance ! C’est parfait pour mon besoin.

Cette bibliothèque fournit uniquement les briques de base, on est très loin d’un protocole Signal. Quand on parle de cryptographie, on pense à AES pour le chiffrement symétrique, à RSA pour le chiffrement à clef publique et la signature, aux hashs SHA1 ou SHA512 pour un hash de qualité cryptographique. Les propriétés nécessaires sont fascinantes mais cela ne dit pas comment bien les utiliser ensuite.

Le chiffrement symétrique

Il s’agit de chiffrer un bloc avec une clé de taille fixe. Le représentant le plus connu est AES, avec des clés de 128 ou 256 bits. On a un bloc, on a une clé, et on obtient un bloc plus ou moins aléatoire. AES utilise des modes (GCM, XTS, …) pour renforcer le mélange et garantir la sécurité selon différents contextes.

Ici, l’algorithme recommandé est ChaCha20. Pas besoin de mode externe : tout est prévu dans l’algorithme de base.

Au déchiffrement, la brique ne se pose pas de question : si la donnée a été altérée, le résultat le sera aussi.Il faut donc ajouter un protocole d’authentification, qui utilise la même clé et un hash pour vérifier l’intégrité. Les algorithmes classiques sont MAC, HMAC, mais il est facile de faire une erreur dans leur utilisation.

Monocypher utilise Poly1305 pour authentifier le message (AEAD – Authenticated Encryption with Associated Data). Son API combine XChaCha20 et Poly1305, ce qui évite de se poser des questions : en cas de modification du message chiffré, la fonction de déchiffrement renvoie une erreur explicite.

Cette fonction nécessite un NONCE ("Number used once"), qui doit être différent à chaque appel.

Le hash

Un hash prend un bloc de données, fait une grosse salade et rend un chiffre de taille fixe avec de bonnes propriétés crypto. Le but est d’avoir une empreinte de taille fixe pour un bloc de données, et qu’il soit impossible de forger un hash identique en modifiant un peu les données d’origine. En gros.

Le hash recommandé est BLAKE2b : “as secure as SHA-3 and as fast as MD5”. Il fait 256 ou 512 bits.

“Password hashing” ou la création de clef à partir de mot de passe

Lorsqu’un mot de passe est saisi, il n’est jamais utilisé tel quel : il est d’abord transformé en une valeur de taille fixe via une fonction de hachage. Pour contrer les attaques par force brute, on a commencé par appliquer des centaines d’itérations de SHA1, avant d’adopter des fonctions de hachage volontairement lentes, comme bcrypt ou scrypt. Le but étant justement d’éviter qu’elles soient rapides, contrairement aux fonctions de hachage classiques.

Aujourd’hui, Argon2 est recommandé.

Chiffrement à clef publique

L’image est souvent celle d’un cadenas ouvert : n’importe qui peut fermer le cadenas, mais seul le possesseur de la clef peut l’ouvrir. RSA a été le premier algorithme inventé avec cette propriété. Aujourd’hui, la mode est aux courbes elliptiques avec X25519.

La fonction principale est basée sur l’échange Diffie-Hellman (DH). C’est le truc magique de la crypto asymétrique.

DH(Clef publique de A, Clé privée de B) = DH(Clef publique de B, Clé privée de A) = N

Sans une clef privée, il est cryptographiquement impossible de retrouver N.

Comment créer une clef privée ? C’est simplement 32 octets très aléatoires. Toute la sécurité dépend de cela. On se rappelle de la faille Debian utilisant un générateur prévisible en 2008.

Générateur d’aléatoire

Pour faire de la cryptographie sérieusement, il faut un vrai générateur aléatoire de qualité cryptographique. Monocypher, par exemple, n’en fournit pas, car cela dépend trop du matériel utilisé. C’est donc à vous d'en fournir un correct.

Ne surtout pas utiliser random() ou rand() : ces fonctions ne sont pas prévues pour la sécurité. Elles offrent souvent à peine 32 bits d’entropie, ce qui signifie qu’elles peuvent générer des valeurs qui tournent en boucle après seulement 4 milliards de cas, ce qui est trivial à explorer pour un attaquant moderne.

Un bon générateur s’appuie sur des sources d’entropie, autrement dit, des phénomènes imprévisibles : le bruit du système, les délais entre événements, la température, etc. Ensuite, ces sources sont mélangées (souvent via un gros hash) pour produire des nombres avec des propriétés statistiques solides.

Par exemple, Linux collecte plein de métriques internes (activité réseau, mouvements de la souris, etc.) pour alimenter son générateur aléatoire /dev/urandom.

Côté matériel, certaines plateformes proposent un vrai générateur physique : il peut mesurer le bruit électrique à travers une diode via un convertisseur analogique-numérique (ADC), ou encore exploiter les légères variations de vitesse d’oscillateurs internes (anneaux d’inverseurs), qui sont ensuite mélangées avec des circuits comme des LFSR combinés via XOR.

Utilisez le générateur cryptographique fourni par votre plateforme (par exemple getrandom(), arc4random(), ou un TRNG matériel si vous êtes en embarqué).

Il ne faut pas se créer son propre générateur sans savoir exactement ce que l’on fait. Le pire étant de réutiliser des données (des clefs par exemple) pour générer d’autres nombres. On crée ainsi une énorme dépendance entre eux, qui n’ont plus rien d’aléatoire.

Les dernières failles des imprimantes Brother proviennent du fait que les mots de passe d’administration sont dérivés de leur numéro de série (!).

Signature

On a un bloc de données, on signe avec une clef privée, on vérifie la signature avec la clef publique.

Monocypher propose EdDSA.

Serial Guard, le protocole de communication

Il ne faut pas créer sa propre cryptographie, c’est trop facile de se tromper. C’est pourtant exactement ce que j’ai fait. La suite peut donc contenir des erreurs. L’idée est de créer un protocole léger de communication. Si des experts passent par là et voient une horreur, qu’ils n’hésitent pas à crier.

On a maintenant les blocs de base. Et il faut maintenant les agencer comme il faut. On veut que A communique avec B (Alice et Bob), sans que E puisse comprendre les messages, insérer des messages, modifier des messages, rejouer des messages, récupérer les messages dans le futur s’il a tout enregistré et récupérer les clefs privées.

Dans le monde de l’embarqué « simple », on communique avec des read et des write sur lien série. L’idéal est d’avoir à peu près la même API.

Il faut réduire au minimum l’échange d’informations préalable pour être le plus léger possible.

Je laisse de coté le "framing", c'est à dire la mise en paquet pour être envoyé sur un lien physique. Un lien série envoie des octets, serialguard fonctionne par paquets d'octet. Il faut reconstituer un paquet avant de l'envoyer dans la bibliothèque.

La base est d’avoir une clef privée chacun, à longue durée de vie. Cela permet de s’authentifier selon le principe : si c’est toujours la même clef depuis l’installation, c’est toujours le même pair : TOFU.

Si on a besoin de faire mieux, il faudrait qu’une « clef de confiance » signe cette clef. Mais on entre dans les méandres complexes d’une public key infrastructure, des certificats ou des web of trust type GPG.

Pour pouvoir tout de même changer une clef privée à long terme, tout en ayant de la sécurité pour éviter les man-in-the-middle, il faut garder un secret partagé dans tous les pairs. Cela peut être très compliqué sur un réseau de serveurs, mais ici, chaque boîtier est programmé au même endroit.

Il s’agit simplement d’un nombre de 32 octets aléatoire partagé par tous. C’est nommé pompeusement pre-shared key (PSK).

Il faudra éviter de la laisser traîner dans le code source.

Une clef de session est une clef temporaire, renouvelable. L’idée est d’utiliser la cryptographie asymétrique pour se mettre d’accord sur une clef symétrique.

Si on utilise le nombre généré par Diffie-Hellman (DH) directement, il est unique par pair de clefs privées : ce n’est pas top. On pourrait échanger des nombres aléatoires pour se mettre d’accord sur une clef symétrique, mais je veux limiter les échanges au minimum.

Pour cela, je vais utiliser une clef de session asymétrique, qui est l’invention du protocole Signal. Une fois la clef symétrique générée, la clef privée éphémère est jetée. Il sera impossible ensuite de déchiffrer la session, même dans le futur.

On commence donc par un échange de 2 clefs publiques : l’une à durée de vie longue et l’autre éphémère.
On croise les 8 clefs (2 publiques et 2 privées de chaque côté) dans 3 échanges DH, on trie les nombres pour avoir le même ordre des 2 côtés, et le résultat est donné à la fonction de hachage avec la PSK.

On a ainsi notre clef de session symétrique.

Le rejeu

Tant que la session est active, l’envoi d’un message précédent reste valide. Pour éviter cela, un NONCE est utilisé dans le chiffrement symétrique. C’est un nombre fourni quelconque mais qui ne doit jamais être identique d’un paquet à l’autre. Il peut être transmis avec le paquet, mais cela prend de la place.

J’ai choisi d’utiliser un simple compteur, cela évite de devoir se rappeler les NONCE passés pour éviter le rejeu.

Les liaisons n’étant pas fiables, un paquet peut être corrompu : il faut pouvoir décoder le paquet suivant. J’ai simplement choisi de tester les 10 nombres successifs en cas d’erreurs, avant d’échouer.

Durée de session

Une session doit être limitée en temps ou en quantité d’informations transmises. Il faut trouver un événement symétrique des 2 côtés pour redéclencher un handshake. J’ai laissé ce point à l’application. Cela pourrait être inclus dans le protocole réseau de plus haut niveau.

Schéma

Envoi d’un seul message

Ce schéma ne couvre pas le cas d’envoi d’un seul message.

Dans l’Internet des objets, on pousse un message dans MQTT et on ne s’attend pas à une réponse. Cela serait bien plus pratique de pouvoir le faire. Il faut pouvoir faire l’envoi sans handshake préalable. Mais il faut tout de même envoyer les clefs publiques, ce qui prend de la place.

Le système a besoin de la clef publique du serveur et du PSK, et tout le reste est fourni en plus du chiffré (NONCE, clef publique, et clef publique éphémère) dans le message envoyé.

La différence est qu’il n’y a que 2 DH, et pas de clef éphémère du côté serveur.

Travail en cours

C’est encore un travail en cours. Il manque des tests sur le terrain et l’évaluation des performances sur plusieurs plateformes.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Sortie de Tryton 7.6

Le 1er mai 2025 sortait la version 7.6 de Tryton, un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

Tryton est basé sur une architecture trois tiers avec PostgreSQL comme base de données principale et est écrit en Python ce qui apporte une grande flexibilité et rapidité pour la customisation.
Il vient avec un ensemble de modules essentiels pour la gestion d’une entreprise, qui sont très aboutis. Il peut être complété par des modules tierces spécifiques à certaines activités (comme la gestion d’hôpital avec GNU Health, la gestion de distillerie avec Distilibre) ou permettant l’intégration à d’autres outils.
Enfin, il est utilisable à travers un client natif, un client web réactif et un client en ligne de commande. Tous ces clients sont légers et multiplateformes (Linux, BSD, Windows et macOS).

Comme la dernière annonce ici date de la version 7.2, voici une liste non-exhaustive d’améliorations notables :

  • Tryton a remplacé son plan comptable minimal par le plan comptable universel qui est une bonne base pour l'IFRS ou US GAAP.
  • Un logo peut être ajouté à la société gérée par Tryton. Celui-ci sera alors rendu sur les documents commerciaux que Tryton génère (ex: bon de commande, facture, etc.)
  • Les remplacements de produit sont maintenant géré automatiquement. Quand un produit, marqué comme étant remplacé par un autre, n'est plus en stock, il est remplacé sur tous les mouvements de stock. C'est utile afin de s'assurer de vider son stock existant avant de passer au nouveau produit.
  • Les tâches planifiées, qui sont en train d'être exécutées, sont affichées. De plus, Tryton enregistre la durée d'exécution pendant un mois afin de pouvoir détecter des anomalies.
  • Il est maintenant possible de configurer le serveur pour utiliser une autre commande que LibreOffice pour convertir les documents vers un autre format comme PDF. Par exemple, on peut utiliser un service externe comme document-converter
  • L'ORM de Tryton gère les contraintes d'exclusion basées sur les Range SQL. Ceci a permis de remplacer des contraintes écrites en Python qui verrouillaient la table.
  • Il est désormais possible de redimensionner les colonnes des listes aussi avec le client web. Et la taille des colonnes est sauvegardé sur le serveur par taille d'écran afin de les restaurer pour l'utilisateur à la prochaine ouverture.
  • Un délai de validité des devis peut être configuré. Une fois passé le délai, il n'est plus possible de convertir le devis en vente et celui-ci sera annulé automatiquement. De même, une date d'expiration de devis d'achat peut être encodée pour faciliter le suivi.
  • Il est maintenant possible de résoudre une plainte par la création d'un coupon de promotion.
  • On peut à présent enregistrer une adresse en utilisant les champs structurés. Dans ce cas, le formatage de celle-ci sera faite automatiquement par Tryton suivant le format des 222 pays connus.
  • Des méthodes pour faciliter la personnalisation du comportement de l'ORM ont été ajoutées afin de simplifier et d'éviter de devoir étendre les méthodes create, write et delete (qui peuvent être un peu compliquées). De plus, des champs stockés dans la base de données peuvent être définis comme étant calculés. Ils sont alors automatiquement mis à jour si leur valeur change. Ils sont principalement utilisés pour faire de la cache.
  • Tryton supporte maintenant les traductions des formes de pluriels (jusqu'à 4 par langue).

Une dernière chose, l'ajout en mode bêta d'un outil de chat en direct entre utilisateurs sur certains documents. Par la suite, ce chat doit évoluer pour devenir un outil de communication plus large et inclure des externes via e-mail (mais aussi d'autres supports de communication).
Cette fonctionnalité est développée via un appel à sponsors
Dicussion sur une vente

Commentaires : voir le flux Atom ouvrir dans le navigateur

Drone, robot et radio commande

L’open source dans l’informatique embarquée se limitait historiquement aux systèmes d’exploitation et aux compilateurs. On connaît bien GCC, BusyBox et FreeRTOS. Puis, Arduino a fait son entrée dans le monde du semi-professionnel. Mais cela évolue rapidement. Trois domaines se développent avec des logiciels, et, parfois des produits open source, qui commencent à se croiser.

À part les liens Wikipedia, les sites pointés sont en anglais.

Drone

Le domaine des drones, principalement les quadcopters mais aussi les avions, rovers et même sous-marins (AUV), a vu naître des projets comme PX4 et ArduPilot. Ces firmwares d’autopilotes permettent un asservissement entre ce que l’on demande au drone et la réalité grâce à des centrales inertielles. Ils gèrent des tâches comme le quadrillage d’un secteur ou le retour automatique au point de départ, à l’aide de GPS ou de caméras de flux optique utilisant une technologie similaire à celle des souris. Les développements actuels se concentrent sur l’évitement automatique d’obstacles, comme les arbres.

PX4 repose sur le système d’exploitation temps réel NuttX, soutenu par la Fondation Apache. Ce système m’était encore inconnu jusqu’à récemment.

QGroundControl est un logiciel pour préparer des missions (points GPS, prises d’images, largages…), lire des journaux transmis par radio et configurer les drones sous PX4 ou ArduPilot, ainsi que pour mettre à jour leur firmware.

GUI

Le projet Pixhawk définit une plateforme matérielle supportée par ces deux firmwares. On en est à plus de six versions de FMU (“Flight management unit”), utilisant des processeurs STM32 avec des gyroscopes, accéléromètres, magnétomètres et baromètres, souvent avec des redondances. Les cartes comportent de nombreux connecteurs pour brancher les radiocommandes (plusieurs protocoles), les servos, les contrôleurs moteurs (ESC), les GPS, ainsi que des bus CAN utilisant des protocoles open source comme DroneCAN ou Cyphal.

pixhawk4

Radio commande

Les ESC (Electronic Speed Controllers) transforment une commande de vitesse en une gestion complexe de trois signaux pour contrôler des moteurs synchrones. Le VESC Project propose un firmware open source, offrant des réglages avancés, comme la limitation du courant ou l’asservissement via des capteurs à effet Hall. Un programme Android permet de gérer des moteurs pour trottinettes ou voiturettes.
esc

Dans le domaine des radiocommandes, le projet OpenTX, forké en EdgeTX, remplace le firmware des radiocommandes. RadioMaster, un outsider, utilise directement ces logiciels, contrairement aux fabricants haut de gamme plus conservateurs (Futaba, Spektrum, JR, Flysky, etc.). Ces firmwares permettent une personnalisation via des scripts Lua.

Pour les protocoles radio, plusieurs solutions propriétaires existent avec des portées annoncées de plus de 2 km. Cependant, un protocole ouvert, ExpressLRS, reposant sur LoRaWAN, permet des portées jusqu’à 5 km (en 2.4 GHz) ou 15 km (à 900 MHz). Les émetteurs et récepteurs bi-bandes commencent à apparaître.

Et robotique

Dans le domaine de la robotique, Gazebo est en train de devenir un simulateur et visualiseur polyvalent. Il repose sur le moteur de rendu OGRE et le moteur physique ODE. Il est intégré aux outils de développement de PX4 et même utilisé dans des concours de drones virtuels.

GUI

ROS2 (“Robot Operating System”) est un middleware généraliste basé sur un protocole Pub/Sub à faible latence, permettant à plusieurs ordinateurs de communiquer. Il tend à remplacer MAVLink, un protocole de commande plus léger, encore majoritaire dans le domaine des drones.

Les trois domaines (drones, robotique et radiocommande) se croisent de plus en plus. Les autopilotes permettent de gérer tous types de véhicules, tandis que des outils comme QGroundControl et ROS2 facilitent le développement de missions automatiques de plus en plus complexes.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Sortie de Tryton 7.2

Le 1 mai 2024 sortait la version 7.2 de Tryton, un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

Tryton est basé sur une architecture trois tiers avec PostgreSQL comme base de données principale et est écrit en Python ce qui apporte une grande flexibilité pour la customisation.

Tryton vient avec un ensemble de modules essentiels pour la gestion d’une entreprise, qui sont très aboutis. Il peut être complété par des modules tierces spécifiques à certaines activités ou permettant l’intégration à d’autres outils.

Tryton est utilisable à travers un client desktop, un client web responsive et un client en ligne de commande. Tous ces clients sont légers et multiplateformes (Linux, BSD, Windows et macOS).

Comme la dernière annonce ici date de la version 6.6, voici une liste non-exhaustive d’améliorations notables:

  • Tryton peut générer des code-barres ou QR codes entre autres pour les produits. Et les clients peuvent déclencher des actions depuis le scan d’un code-barre. Cette fonctionnalité peut servir par exemple pour scanner les produits pour le point de vente ou bien pour traiter des expéditions.
  • L’autocomplétion peut se faire maintenant sur base d’une source externe. Cette fonctionnalité est utilisée pour créer des tiers en entrant simplement leur numéro de TVA. Tryton interroge le service européen VIES et préremplit le formulaire avec le nom, l’adresse et le numéro de TVA.
  • La fenêtre des logs d’un enregistrement contient désormais une entrée pour chaque action ou modification faite par l’utilisateur.
  • Les clients tirent profit de la lecture imbriquée (c’est-à-dire de pouvoir lire dans le même appel le contenu des champs relation de type One2Many ou Many2Many). Ainsi l’ouverture d’un formulaire qui contient des listes ne requière plus qu’un seul appel pour l’affichage. Ceci n’est fait que pour les listes qui sont visibles par défaut, celles qui sont cachées dans des onglets, ne sont lues que quand l’utilisateur active celui-ci.
  • Le temps d’exécution de certains appels RPC dépend des paramètres entrés par l’utilisateur (ex: une recherche sur plusieurs critères). Afin de prémunir le serveur contre un déni de service, ces appels sont protégés par un timeout.
  • Les utilisateurs qui ont une adresse de courrier électronique peuvent à présent demander une réinitialisation de mot de passe depuis l’interface de login sans devoir passer par un administrateur.

Depuis la version 6.6, de nouveaux modules ont été ajoutés, notamment:

Commentaires : voir le flux Atom ouvrir dans le navigateur

Plaidoyer pour des interfaces temps réels

L’informatisation et la mise en réseau des ordinateurs nous ont apporté beaucoup de choses formidables ces trente dernières années. Toute la culture musicale, cinématographique et encyclopédique est désormais à une portée de clic de quiconque. Téléphoner de n’importe où à n’importe qui tout autour de la terre est devenu quelque chose de tellement courant que plus personne ne s’en extasie. Et même si l’interlocuteurice s’exprime dans une autre langue ça n’est presque plus un problème avec les différents services de traduction en ligne que l’on peut avoir.

Ne parlons même pas de ce mini-ordinateur que presque tout le monde a désormais dans sa poche, équipé d’une chaîne hifi complète, d’un caméscope, d’un appareil photo d’excellente qualité et d’une connexion permanente au réseau mondial.

Nos logements sont désormais entièrement automatisables et pilotables à distance.

Je peux avoir de la musique ou la radio quand je veux dans mon casque sans fil grâce à la baladodiffusion.

Tous ces rêves numériques des années 90 se sont concrètement réalisés aujourd’hui, mais nous avons tout de même perdu quelque chose : le temps réel des interfaces

N. D. M. : par « temps réel » est ici utilisé dans le sens réponse immédiate humainement parlant, sans latence perceptible, réactives (voir les définitions Wiktionary ou Wikipedia pour temps réel qui, pour l’informatique, vont amener des exigences supplémentaires sur la durée maximale de réponse, la garantie du temps de réponse, etc.

Sommaire

Le temps réel des interfaces

En effet, avec la diffusion du numérique à tous les étages, les interfaces se sont ramollies. Aujourd’hui, lorsque nous appuyons sur un bouton pour jouer une musique, lancer une vidéo ou valider un formulaire sur Internet nous n’avons pas un retour immédiat de cet appui.

Il s’écoule souvent un temps non négligeable entre l’appui sur ledit bouton et la réaction du système. Ce problème ne se limite pas aux boutons bien sûr, c’est le même problème avec les branchements des chargeurs et autres interfaces USB, HDMI…

Nous ne sommes jamais immédiatement sûrs que l’action se soit bien passée. Si la réaction met trop de temps à venir (lancement de la musique, icône de mise en charge, validation du formulaire…) nous allons avoir tendance à réessayer au risque de se retrouver avec un « dys »fonctionnement anormal. Le bouton « play » de la musique est également le bouton pause, un ré-appui sur le bouton coupe la musique. Une absence de réaction de l’appareil au branchement va nous amener à débrancher puis rebrancher jusqu’à jeter le câble et en prendre un autre. Un ré-appui sur le bouton du formulaire va en renvoyer un autre, etc.

Nous parlons bien ici des interfaces qui ne sont pas en temps réel. Cela n’a rien à voir avec la puissance de calcul des machines. Les appareils des années 90 avaient beau avoir des interfaces temps réel, ils n’étaient pas puissants, beaucoup ne disposaient même pas de microprocesseurs.

Sur mon lecteur de cassettes audio, lorsque j’appuyais sur le bouton « play » le bouton émettait un « clic » bien distinctif et une petite vibration dans le doigt qui m’assurait que mon appui était bien pris en compte. Et si j’étais à la fin de la cassette le bouton remontait immédiatement, je savais instantanément que cela n’avait pas marché et qu’il fallait que j’appuie sur « eject » pour retourner la cassette… ou « rewind » pour rembobiner.

Lecteur cassettes
Pour lire ma cassette de petit ours brun, j’appuie sur le triangle et ça fait «clic» instantanément !

Boite à histoires Yoto
Alors que pour allumer la boite à histoires, il faut appuyer sur un bouton planqué sur le côté, et attendre plusieurs secondes que l’écran affiche un sourire. Ai-je bien appuyé ? Dois-je retenter ? Y a-t-il suffisamment de batterie pour que j’obtienne une réaction ? Et je ne parle même pas des deux boutons rotatifs rouge qui ne réagissent pas instantanément (en plus celui de gauche est à tourner pour le volume et celui de droite est à CLIQUER pour changer d’histoire…)

Les télévisions cathodiques des années 70-80 prenaient un certain temps à chauffer avant d’afficher l’image, mais l’appui sur le bouton « on » était marqué par un « clang » bien net, et nous savions que la télé était allumée, nous pouvions attendre d’avoir l’image. Les télés d’aujourd’hui mettent également du temps à s’allumer, mais elles ne signalent pas toujours la bonne réception de notre action sur la télécommande. Et ne parlons même pas des écrans d’ordinateur avec leur interface tactile à la noix (on doit pouvoir parler d'interfaces digitales pour le coup non ?) dont on ne voit même pas où se trouve le bouton.

Les systèmes sont devenus mous

Et cette mollesse les rend dysfonctionnels. Je ne compte plus le nombre de fois ou voulant ré-appuyer sur un bouton de validation, j’ai finalement appuyé sur un nouveau bouton venant d’apparaître sous mon doigt/curseur. Sans parler de tous ces systèmes électroniques portables qui prennent un temps dingue avant d’afficher quelque chose quand on appuie sur le bouton “ON”. Systèmes qui ne sont pas toujours réellement éteints d’ailleurs et dont l’appui long… les éteint !
Ne parlons même pas des systèmes avec boutons rotatifs de type « potards numériques » qui — non contents de générer des rebonds ou de sauter des pas — fonctionnent avec la même mollesse que les boutons « standard ».

Mais le problème ne se limite pas aux systèmes embarqués. Oh que non ! Toute l’informatique « desktop » et mobile est touchée. Les sites Web ont rouillé avec leurs méga-octets de bibliothèques javascript à télécharger avant de pouvoir appuyer sur le moindre bouton.

Le réseau étant désormais massivement sans fil (WiFi, GSM, 4g, 5g, gégé, …), l’on ne sait pas toujours pourquoi cette page met tant de temps à se charger. Attention, il n’est pas question ici de vitesse de connexion, mais plutôt d’absence d’indication claire de ce qui est en train de se passer : ai-je déconnecté, ou le lien réseau est-il tout simplement lent ?

Revenons aux interfaces réactives

C’est un problème d’ergonomie. Et l’ergonomie est visiblement toujours reléguée en fin de projet «tant qu’on a un truc qui marche». Cependant, on pourrait considérer que non, ça ne marche pas si l’interface est si lente à réagir.

Je suis persuadé que ce problème n’est pas une fatalité. Il est possible de revenir à des interfaces humain-machine qui soient vraiment temps réel.

Mais il faut que tout le monde s’y mette.

  • Aux électroniciennes et électroniciens de mettre systématiquement le voyant (ou vibreur, ou son) qui va bien pour signaler le bon branchement du câble, et le bon appui sur le bouton.
  • Aux développeuses et développeurs noyau de soigner l’ordonnanceur pour s’assurer que la partie interface soit bien traitée dans un temps acceptable (moins de 100 ms ?).
  • Aux développeuses et développeurs d’applis de considérer un temps de réaction trop long des interfaces comme un bug qu’il faut corriger.
  • Aux utilisatrices et utilisateurs de ne plus accepter un seul ralentissement de l’interface et remonter systématiquement le problème comme un bug et/ou ne pas acheter/utiliser le produit.

Manifeste des interfaces temps réel

Voici donc une proposition/un manifeste de règles pour des interfaces temps réel :

  1. Toute action humaine (appui ou clic-toucher sur un bouton, branchement d’un câble…) doit être validée par un retour en moins de 100 ms par un visuel, un son ou une vibration.
  2. Si le système est bloqué l’utilisateurice doit le savoir. On doit pouvoir faire la différence entre un blocage et un temps de chargement. Un genre de watchdog de l’ergonomie.
  3. On peut certainement ajouter d’autres règles quand on fera des audits ITR (Interfaces Temps Réels) dans les bureaux d’études et de développement des grosses boites.

Vers un Score-Interfaces-Temps-Réel ?

Évidement, il est impossible que ces règles s’appliquent du jour au lendemain sur tous les appareils et logiciel du marché. On pourrait inventer un système de notation, à l’image du nutri-score mais pour les interfaces. Par exemple le SITR pour Score-Interfaces-Temps-Réel et développer une appli pour pouvoir récupérer le score des produits qu’on utilise.
Appli qui aurait le culot d’avoir un mauvais score histoire de faire causer.

Conclusion

Pour conclure sur ce manifeste décousu :

✊🏼 Oui l’ergonomie est importante !
✊🏽 Oui un temps de réaction trop long est un BUG !
✊🏿 Oui il faut que ça change !

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌