Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Aujourd’hui — 6 mai 2024LinuxFr.org : les dépêches

Les langues peu documentées et le libre : quelques enjeux scientifiques

Comme beaucoup de domaines scientifiques, la documentation de la diversité linguistique entretient une relation forte avec les mondes du Libre. Dans cette dépêche, je vous propose de découvrir ce domaine à travers la présentation de plusieurs logiciels et ressources libres ou en accès ouvert. La documentation des langues étant un thème peu courant sur LinuxFr.org, on commencera par une présentation de cette problématique. Nous continuerons par une description des deux ressources principales existantes pour cataloguer et se repérer au sein de cette diversité linguistique. Je parlerai ensuite d’ELAN et de FLEX, deux logiciels utilisés pour annoter des enregistrements audio-visuels, une étape clef dans l’analyse linguistique, et qui permet le partage et la réutilisation de ces enregistrements. Enfin, après un court passage sur la question de l’archivage, je présenterai deux compilations de corpus de documentation en accès libre, une pratique récente qui permet de nouveaux questionnements quantitatifs sur les langues orales peu documentées, et qui contribue également à la transparence et la traçabilité des analyses linguistiques.

    Sommaire

    L’étude des langues à travers le monde

    Actuellement, environ 7000 langues ont été recensées à travers le monde. Ce chiffre ne peut être qu’une approximation car, il n’y a pas de consensus sur la définition de ce qu’est une langue. Une difficulté par exemple est de définir à quel moment une langue est distincte d’une autre. Lorsqu’il y a variation, mais intercompréhension, de nombreux linguistes s’accordent à dire qu’il s’agit alors de dialectes d’une même langue, et donc, lorsqu’il n’y a pas intercompréhension, alors il s’agit différentes langues. Cette perspective considère que tout le monde parle un dialecte (que ce soit celui de référence, ou un plus régional comme celui de Paris, de Marseille, du Québec), la langue n’étant qu’une abstraction permettant de regrouper les diverses pratiques langagières. En ce qui concerne l’intercompréhension, ce critère n’est malheureusement pas absolu car elle peut varier selon les personnes et leur parcours personnel. Et lorsqu’on considère l’évolution d’une langue à travers le temps, sa diachronie, définir ce qu’est une même langue à travers ses évolutions temporelles se complexifie d’autant plus.

    Si certaines langues ont émergé récemment, on pense assez souvent aux langues dites créoles (le Bichelamar, les créoles malais, à Madagascar ou au Cap Vert), ou également lorsque certains dialectes se distinguent suffisamment pour ne plus être intercompréhensibles, la tendance actuelle est surtout à la disparition massive des langues. Cette disparition est souvent rapportée à travers la mort des derniers locuteurs et locutrices, on peut aussi considérer qu’une langue meurt lorsqu’elle n’est plus parlée d’une part, et qu’elle disparait si elle n’est pas documentée. Si certains aujourd’hui se questionnent sur la corrélation entre la diversité culturelle et la diversité écologique, il est évident que la disparition des langues correspond également à des inégalités et des tensions socio-politiques.

    Bref, la documentation des langues, c’est un sujet actuel, et d’un point de vue scientifique, la perte de cette diversité aura de tristes conséquences sur la connaissance des langues et de l’univers des possibles languagiers, encore souvent sous-estimé :

    • l’article The myth of language universals : Language diversity and its importance for cognitive science d’Evans donne un bel aperçu du débat qui existe entre les linguistes fonctionnalistes, notamment les approches générativistes telles que proposées par Noam Chomsky. Pourtant, régulièrement à travers la documentation des langues, des catégories cognitives jusque-là non-soupçonnés, voire rejetées car non-observées, sont identifiés. Nous nous sommes rendu compte récemment qu’un quart des langues grammaticalisaient l’emploi d’évidentiels, ces morphèmes qui indiquent la source d’une information. Au niveau de l’odorat, des neurologistes pensaient que si nous n’avions pas de termes abstraits pour catégoriser les odeurs, c’était lié au fait que notre cerveau ne le permettait pas. La description des termes liés à l’odorat en Jahai (par ici si vous souhaitez écouter du Jahai), qui possède donc des termes spécifiques pour catégoriser les odeurs, a montré le contraire.
    • accéder à des facettes non-matérielles de la préhistoire, non-accessibles à travers l’archéologie. La documentation des langues nous permet d’accéder, dans une certaine mesure, aux termes et aux concepts utilisés durant les différentes préhistoires à travers la comparaison des langues et de leurs structures. Les travaux sont nombreux et anciens en ce qui concerne les langues européennes, mais les recherches en linguistique historique (ou comparée) portent également sur toutes les langues connues à travers le monde. Les chercheurs et chercheuses de ce domaine collaborent assez régulièrement avec les archéologues pour retracer les mouvements de population.
    • mettre au point des systèmes d’écriture pour les langues orales, ou simplement des traitements de texte adapté aux écritures existantes. Parfois, certaines personnes savent écrire dans la ou les langues officielles du pays, mais ne connaissent pas d’écriture pour une de leurs langues régionales. C’est ainsi souvent le cas pour les personnes au Vanuatu. Le pays reconnait même le droit d’enseigner les langues locales à l’école, mais il n’existe que très rarement des ressources (que ce soit les personnes ou les manuels) pour cela. Parfois, les gens ne connaissent tout simplement pas de système d’écriture.

    Quelques concepts et termes liés à la documentation des langues

    Comme tout domaine de recherche, la terminologie et les concepts linguistiques évoluent au gré des discussions et peut se distinguer de l’usage attendu des termes. Une étape importante dans la documentation d’une langue est la production d’une grammaire décrivant les structures linguistiques de cette langue. De nombreux linguistes estiment alors qu’on peut dire que cette langue est décrite. Il ne faut pas se tromper cependant, aucun linguiste ne considère qu’une langue est alors complètement décrite. Une grammaire ne contient que quelques aspects estimés actuellement essentielles par les linguistes de terrain. Ces points sont, le plus souvent, une description du système phonologique d’une langue (c’est-à-dire comment les sons d’une langue sont organisés les uns vis-à-vis des autres), des morphèmes et des processus morphologiques associés (la conjugaison, l’expression de la possession, les déclinaisons, les genres, les classifications, etc.) d’une langue et souvent un début de description des processus syntaxiques. Il existe de nombreuses approches pour décrire les faits linguistiques, et la description d’une langue se fait souvent en dialogue avec les pratiques et terminologies qui ont été employées dans l'aire linguistique concernée.

    Depuis l’article Documentary and descriptive linguistics de Nicholaus Himmelman, qui a promu la distinction entre la documentation linguistique et la description linguistique, on accorde beaucoup plus d’importance à la production d’un corpus d’enregistrements annotés. On dit alors d’une langue qu’elle est documentée si des enregistrements annotés, de préférences audio-visuels, de cette langue existe. Enfin, il existe la problématique de l’outillage d’une langue, c’est-à-dire si ses locuteurs et locutrices ont accès ou non aux outils informatisés, du traitement texte aux dictionnaires informatisés en passant par la reconnaissance vocale, la transcription automatique, voire aujourd’hui aux modèles de langues et autres ressources nécessitant des corpus beaucoup plus grands.

    Les catalogues et base de données pour l’identification des langues

    Une problématique récurrente dans le domaine des langues est de clairement identifier la langue sur laquelle on travaille. Cependant, identifier une langue, ce qui relève ou non de cette langue, où elle est parlée, est l’enjeu de nombreux débats, souvent politique, et n’est pas une tâche simple. Quoi qu’il en soit, il existe des ressources, bases de données, qui proposent d’associer à des noms de langues, endonymes ou exonymes, des codes pour rendre leur identification univoque.

    L’Ethnologue et l’ISO 639 : une norme gérée par le Summer Institute of Linguistics (SIL)

    Ethnologue, Languages of the World, ou plus simplement l’Ethnologue, est une base de données développée et maintenu par l’organisme évangélique SIL, Summer Institute of Linguistic depuis 1951. Elle vise à recenser toutes les langues du monde. L’ISO 639 est une norme issue de ce catalogue, également maintenue par le SIL. Cet organisme est très actif au niveau de la documentation des langues et de la création d’écritures, car un de ses objectifs est de traduire la Bible dans toutes les langues du monde. Historiquement, l’Ethnologue est un des premiers catalogues dont l’objet a été de recenser les langues. Si cette norme semble le plus souvent suffisamment exhaustive pour les besoins liés à l’informatique, après tout, les internautes consultent Internet en très peu de langue, d’un point de vue linguistique, il possède de nombreuses lacunes.

    La liste SIL des langues

    Un premier souci est la nécessité d’avoir une granularité plus importante que simplement la langue. Les linguistes travaillent sur des dialectes et des variétés, sur des familles de langues, et parfois ont travaillé sur des distinctions qui n’ont parfois plus cours. Afin de pouvoir associer ces ressources à des langues, ou des entités linguistiques particulières, l’approche du SIL ne suffit pas.

    Enfin, la gestion du catalogue par un organisme religieux, donc avec parfois d’autres enjeux qu’uniquement scientifiques, le fait qu’il s’agisse d’une norme, donc la nécessité de collaborer avec l’ISO, et le fait que le catalogue n’est qu’en partie ouvert (il faut un abonnement pour accéder à la totalité de la ressource) rend la ressource moins intéressante que de nombreux linguistes le souhaitent de nombreux linguistes. Ces limites ont poussé des linguistes à proposer une ressource alternative.

    Glottocode : par le Max Planck Institute for Evolutionary Anthropology.

    Le projet Glottolog, initialement développé par Sebastian Nordhoff et Harald Hammarström, catalogue non seulement les langues du monde actuelles et passés, les familles de langues et leurs différentes branches, mais également « les restes » des hypothèses de langues ou de regroupements historiques. Cette granularité permet de retrouver les documents associés à chacun de ces objets. Si le catalogue est dédié aux langues moins connues, les langues les plus centrales sont elles aussi répertoriées. Il s’agit actuellement du catalogue mis en avant par les linguistes documentant les langues à travers le monde. L’application Glottolog est disponible via la licence MIT.

    Aperçu du Glottolog à travers la liste des langues

    Si aux premiers abords, la liste des langues du Glottolog ne se distingue pas franchement de celle de l’ISO 639, c’est parce qu’il faut regarder plus en détail pour comprendre les différences essentielles entre les deux ressources. Notons tout de même la colonne « Child dialects » : « Dialectes enfants », et les champs vides au niveau des colonnes Top-level-family et pour la langue Abai Tubu-Abai Sembuak dans la colonne « ISO-639-3 ». La colonne « Child dialects » représente une information qui n’est pas documenté dans l’ISO 639, ce n’est pas son objet après tout, mais qui est intéressant pour les linguistes travaillant sur cette langue, indiquant qu’un minimum de données sociolinguistiques sont disponibles. Les champs vides dans la colonne « Top-level family » sont dus au fait que ces langues sont des isolats, c’est-à-dire que la linguistique comparée ne trouve pas de correspondances significatives entre cette langue et d’autres langues qui permettraient de les regrouper en une famille. Enfin, le vide dans la colonne ISO-963-3 révèle que la langue Abai Tubu-Abai Sembuak ne possède pas d’entrée dédiée dans la norme.

    Ainsi, lorsque l’on consulte une langue en particulière, ici le Nisvai, on voit apparaitre tous les embranchements existants associés à cette langue :

    La langue Nisvai dans le Glottolog

    Cette vue de l’arborescence associée à une langue particulière révèle tous les embranchements auxquels peut⁻être associée une langue. Et à chacun de ces embranchements, si des ressources linguistiques ont été identifiées par les mainteneurs du Glottolog, celles peuvent être proposées. Cette fonction permet aux linguistes de trouver des ressources sur les langues proches, non pas géographiquement (même si en pratique c’est le plus souvent le cas), mais d’un point de vue généalogique.

    Les autres

    Il existe d’autres initiatives pour cataloguer les langues du monde, que ce soit la liste proposée par Wikipedia, la liste de la CIA ou encore The Linguasphere Register, mais ces initiatives ne sont pas aussi pertinentes du point de vue de la documentation des langues.

    Documenter les langues

    ELAN : des schémas d’annotation flexibles

    ELAN est un des logiciels libres (GPL3) les plus utilisés par les linguistes pour annoter des enregistrements audio et vidéo. Il permet d’élaborer des structures d’annotation complexes permettant ainsi de rendre compte des analyses que les linguistes souhaitent associer à un enregistrement. Ces couches d’annotation sont reliées les unes aux autres par des relations logiques, avec le plus souvent une couche de référence indexée temporellement à l’enregistrement. Les annotations les plus courantes sont une transcription, une traduction et une annotation morphologique. Mais des nombreuses autres analyses peuvent être incluses, que ce soit les parties du discours, les références et anaphores, l'animéité, mais aussi les gestes, la structuration du discours, les signes pour les sourds et malentendants.

    Extrait d’une narration présente dans DoReCo, et vue sur les différentes couches d’annotation pouvant être associés à un enregistrement.

    Dans cette capture d’écran issu d’un texte de DoReCo retravaillé par l’auteur, on aperçoit un extrait de quelques secondes d’une narration nisvaie. Il s’agit d’un des modes de visualisation des annotations proposées par ELAN pour représenter les différentes couches d’annotation. Certaines de ces annotations ont été réalisées à la main par l’auteur, d’autres ont été retravaillées par les algorithmes mis en place par DoReCo, puis manuellement corrigés. Enfin, il y a également des couches d’annotation de la prosodie par le biais de SLAM+.

    FLEX : gérer un projet de documentation

    FLEX est un logiciel développé par le SIL et dont le code source est régie par la licence LGPL 2.1. Il est conçu davantage pour coordonner l’ensemble d’une documentation linguistique, de la gestion des textes à l’élaboration d’un dictionnaire, en passant par les analyses linguistiques. En revanche, il ne gère pas réellement l’annotation d’enregistrements. De nombreux linguistes l’utilisent en complément d’ELAN.

    Si le logiciel est prometteur sur le papier, à chaque fois que je l’ai essayé, j’ai été rebuté par son côté usine à gaz, et surtout ses nombreux plantages notamment lorsqu’on essaie de gérer des fichiers multimédia avec. Et il en est de même pour les autres logiciels développé par le SIL, tel que SayMore pour gérer les métadonnées des enregistrements, WeSay pour faire des dictionnaires en collaboration avec les locuteurs et locutrices, à chaque fois que je les ai essayés, enthousiasmé par leurs fonctionnalités, j’ai été déçu par le fait qu’ils ne fonctionnaient pas correctement sur mon ordinateur.

    Aperçu de Flex

    Cette capture d’écran illustre un des modes de saisie de FLEX, ici la vue tabulaire du lexique, qui permet de rentrer et gérer les définitions des lexèmes (les entrées du dictionnaire) de manière assez rapide. On aperçoit dans la partie en haut à gauche les autres modes d’édition du lexique, et en dessous les autres catégories liées à la gestion d’un projet de documentation : Texts & Words, Grammar, Notebook et Lists. C’est à travers la catégorie Texts & Words que l’on peut par exemple importer des textes transcrits, voire des fichiers ELAN pour peupler la base de données lexicales. Grammar permet de décrire les paradigmes grammaticaux, FLEX propose d’ailleurs quelques algorithmes qui aident à la construction des paradigmes grammaticaux. Notebook et Lists servent à la gestion du projet, le premier pour prendre des notes diverses, et le second pour créer des listes, en particulier des tâches encore à réaliser.

    Et il y en a bien d’autres encore

    Il existe de nombreux autres logiciels similaires, tels qu’EXmaralda pour l’annotation des enregistrements (surtout utilisé en Allemagne à ma connaissance), Sonal (non libre, et dont le développement semble arrêté) qui est utilisé par les sociologues et les anthropologues pour une annotation thématique de leurs entretiens, Anvil, qui semble intéressant mais que je n’ai jamais réellement vu utilisé, ou enfin le vieux Transcriber qui lui était encore employé par certains projets il y a quelques années. Rentrer dans le détail de tous ces logiciels dépasserait le cadre d’une dépêche comme celle-ci, mais énumérer la diversité logicielle montre qu’il s’agit d’un secteur un minimum dynamique, d’ailleurs la question de la transcription et de l’annotation des enregistrements ne se limite pas du tout qu’au domaine de la documentation des langues du monde.

    L’archivage et la compilation de corpus

    Afin de conserver et partager les corpus et donnée enregistrées par les linguistes, chercheurs voire simplement les personnes ayant documenté une langue, il existe des archives, le plus souvent en ligne. Il y a en France par exemple Pangloss, géré par le LACITO, dédié aux langues orales, ou ORTOLANG, plus générique, pour les corpus de langue. En Océanie, il y a Paradisec. Il y a aussi ELAR, autrefois à Londres, et qui a déménagé récemment à Berlin récemment.

    Ces archives proposent diverses interfaces pour déposer, gérer et parfois même consulter les enregistrements et les annotations réalisés par les linguistes et leurs collaborateurs·e·s. À noter que pour ces archives, Ortolang décrit son architecture logicielle qui repose sur des briques ouvertes, en revanche concernant Paradisec et Pangloss, bien que leur statuts soient sûrement similaires du fait de la démarche générale de ses ingénieurs, je n’ai pas trouvé de liens vers les logiciels employés. Quant à ELAR, le logiciel utilisé est Preservica, une solution propriétaire qui, quand on a le malheur de devoir l’utiliser, fonctionne bien lentement.

    La compilation de corpus, si elle se rapproche de l’archivage en ce qu’il s’agit également de recueillir, conserver et publier les corpus des linguistes, correspond également à une édition particulière de ces corpus. La compilation de corpus est réalisé à travers la mise en place de processus de qualité, d’annotations et de conventions particulières. Les deux compilations de corpus présentées ici sont des compilations de corpus de documentation de langues orales. Les enregistrements ont été systématiquement annotés en utilisant une convention nommée les gloses interlinaires (le nom fait en fait référence à la pratique ancienne d’insérer des explications entre les lignes d’un texte. En pratique aujourd’hui, ce n’est plus vraiment ce que font les linguistes, puisque le travail est informatisé et les annotations ne sont plus entre les lignes, mais, le terme a cependant été conservé).

    DoReCo

    DoReCo est une compilation de 52 corpus en accès ouvert (NdR : auquelle l’auteur a contribué). La compilation a nécessité la mise en place de processus de qualité afin d’assurer la cohérence de l’ensemble et de fournir un certain nombre de garanties quant aux qualités du corpus.

    Les langues dans DoReCo

    Une première qualité, et l’une des originalités de DoReCo, est de proposer un alignement temporel est très fin. La durée de chaque phonème, de chaque morphèmes, de chaque mot (ici suivant la définition de la personne à l’origine du corpus, car la définition d’un mot n’a rien d’une évidence) et enfin de chaque groupe de souffle est fournie. Une deuxième qualité a été de s’assurer que pour l’ensemble des retranscriptions, chacun des termes et des morphèmes possède une glose, c’est-à-dire qu’ils possèdent une explication linguistique.

    La compilation totalise une centaine d’heures d’enregistrements audio, en grande majorité des narrations monologiques. À noter que les corpus de la compilation sont accès ouvert, via une licence Creative Commons, mais que les droits d’utilisation varient d’un corpus à l’autre. Les données sont accessibles aux formats d’ELAN : .eaf, de Praat : . TextGrid, TEI.xml, et.csv.

    Multi-CAST

    Multi-CAST est également une compilation de 18 corpus de documentation de langues différentes. Les textes annotés via le logiciel ELAN. Contrairement à DoReCo, l’alignement temporel des annotations n’est pas réalisé de manière précise, mais manuellement, par les personnes à l’origine du corpus, à l’échelle de l’énoncé. Les textes sont également en grande majorité des narrations monologiques. L’originalité de cette compilation de corpus vient du fait que les textes contiennent trois couches d’annotation particulières : GRAID, Grammatical Relations and Animacy in Discourse, (voir), puis RefIND et ISNRef (Referent Indexing in Natural Language Discourse, voir Schiborr et al. 2018).

    La page d’accueil de Multi-Cast

    Cette compilation de corpus est aussi disponible dans plusieurs formats. XML évidemment, puisque c’est le format natif d’ELAN, mais aussi TSV et il existe également un paquet pour R. Tout cela est disponible via la licence CC-BY 4.0.

    Conclusion

    J’espère que vous avez apprécié cette introduction à la documentation des langues à travers les logiciels libres. L’idée est surtout d’attiser la curiosité, car il reste évidemment encore de nombreux aspects ou points à discuter et à approfondir. La prochaine fois que j’aborderai le thème de la documentation linguistique ici, j’espère que ça sera pour présenter mon application basée sur Django pour faire de la lexicographie.

    Il y a également un autre sujet sur lequel j’aimerais bien échanger ici prochainement : la question des licences des données collectés et la négociation lorsque l’on travaille avec des personnes à tradition orale. Si ouvrir l’accès aux données de recherche et aux corpus peut sembler être une évidence pour certains, il ne faut pas oublier que souvent, les chercheurs et chercheuses de terrain collectent des informations personnelles, que la connaissance n’est pas forcément considérée comme un bien public et les enregistrements, notamment les narrations, qui ne sont pas forcément perçues comme des fictions, sont souvent couverts par des droits locaux. Enfin, ouvrir ses données de recherche, si c’est permettre à d’autres de réutiliser ses données, requiert beaucoup de travail de la part des linguistes, c’est une tâche longue, ingrate et surtout peu valorisée. Alors qu’il est de plus en plus précaire d’être chercheur en sciences humaines, il est aussi difficile de demander à ces chercheurs et chercheuses de consacrer une grande partie de leur temps à des tâches qui ne leur permettront pas de se constituer un CV, nécessaire si l’on souhaite avoir un poste stable (c’est-à-dire plus de deux ans).

    Label sans IA : ce texte a été rédigé sans aucun aide de la part d’une LLM.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    À partir d’avant-hierLinuxFr.org : les dépêches

    RootDB - une application web de reporting, auto-hebergée

    Logo de RootDB
    Présentation rapide de RootDB, une application auto-hébergeable open-source (AGPLv3), permettant de générer des rapports à base de requêtes SQL.

    Dashboard

    Sommaire

    Genèse du projet

    Pour les besoins d'un client, il fallait que je génère rapidement des statistiques d'usage diverses et variées (à bases de tableaux et graphiques), à partir de plusieurs base de données relationnelles classiques et que j'intègre ces rapports dans un backoffice.

    Le premier réflexe fut de me tourner vers une solution que j'ai utilisée pendant une dizaine d'années auparavant et qui se nomme MyDBR. Cela répondait parfaitement à son besoin tout en étant abordable. MyDBR, bien maitrisé, permet de faire énormément de choses, mais l'interface est vraiment datée et l'accès aux fonctionnalités des bibliothèques graphiques se fait par l’intermédiaire de wrappers en SQL.

    J'ai cherché des alternatives, auto-hébergeables, simples à mettre en place, maintenues et avec la même logique pour la création de rapport mais je n'ai pas trouvé mon bonheur. Il y a, évidemment, pleins de solutions qui existent mais il y avait toujours quelque chose qui n'allait pas après essai, que ce soit dans la manière de générer des rapports ou bien les pré-requis, parfois compliqués, pour l'hébergement.

    D'ou l'idée de créer, avec un collègue, notre propre solution de reporting - parce que pourquoi pas, finalement.

    Open-source

    Ce projet n'était pas open-source à la base et nous pensions simplement vendre des licences d'utilisation.

    Sauf qu’aujourd’hui beaucoup de monde utilise le cloud, et ce dernier vient avec ses solutions intégrées de reporting, limitant de fait l'intérêt de ce genre de projet. Pour faire bref, je reste convaincu que tout le monde n'est pas sur le cloud et que ce genre de solution peut encore intéresser quelques personnes.
    À cause des doutes sur la pertinence même du projet, je n'ai jamais sérieusement cherché du financement, ce qui ne m'a jamais permis d'être à temps plein dessus. Nous avons donc mis du temps avant de produire quelque chose d'exploitable dans un environnement de production : un an et demi environ.
    À cela s'ajoute le fait que ce projet n'existerait pas sans toutes les briques open-source sur lesquelles il se base. Et comme c'est l'open-source qui me fait vivre depuis un certain nombre d'années, il me semblait finalement bien plus naturel de rendre ce projet open-source (licence AGPLv3) que d'essayer de le vendre en chiffrant le code source.

    RootDB ?

    Étant familier du SQL et du JavaScript, nous voulions avoir une solution qui ne mette pas de bâtons dans les roues du développeur, à savoir :

    • utiliser principalement le SQL pour la récupération et le traitement des données ;
    • avoir un accès intégral à la bibliothèque graphique choisie ;

    Ce choix de préférer un environnement de développement de rapport orienté développeur est assumé, d'où le nom du projet.

    Fonctionnalités

    Je ne vais pas vous présenter toutes les fonctionnalités car le site web principal et l'instance de démonstration les présentent déjà correctement. Je vais donc plutôt mettre en avant les spécificités du projet.

    Websocket

    Les requêtes SQL peuvent prendre du temps à tourner, surtout si les tables ne sont pas correctement optimisées. Par conséquent l'interface repose lourdement sur les websockets afin d'éviter les problèmes de timeout. Quand un rapport est exécuté, l'exécution des différentes requêtes est dispatchée de manière asynchrone et les vues affichent des résultats uniquement quand les données arrivent sur le websocket du rapport.
    D'une manière générale toute l'interface est rafraichie par websocket.

    Bibliothèques graphiques au choix

    Nous donnons accès à Chart.js ou D3.js, sans limitation, sans wrapper. Il est donc possible de se référer directement à la documentation officielle de ces deux bibliothèques.

    Onglets & Menu

    Nous aimons bien les menus. :)
    C'est simple, élégant et permet d'accéder à beaucoup d'options de manière claire.
    L'interface repose sur une barre de menu principale dynamique et une barre d'onglets dans lesquels s'affiche les différentes parties de l'application. Il est donc possible d'ouvrir plusieurs rapports (ou le même) dans le même onglet du navigateur web.

    Cache

    Il existe deux niveaux de cache :

    • un cache utilisateur, pratique pour cacher des résultats de manière temporaire afin de partager des résultats avec un autre utilisateur.
    • un cache système (jobs) ou il est possible de générer du cache de manière périodique. Nécessaire pour des rapports qui utilisent de très grosses tables qu'il n'est parfois pas possible d'optimiser.

    Paramètres en entrée

    Il est très facile de générer ses propres paramètres afin de filtrer les rapports, que ce soit sur une plage de date, une liste d'options sortie d'une base de données, des cases à cocher etc.

    Liens entre rapports

    Que ce soit avec Chart.js ou bien un tableau, vous pouvez créer des liens entre vos rapports ou bien sur le même rapport pour faire des rapports de type drill-down.

    Hébergement

    Côté API, RootDB est une application Laravel qui fonctionne sur du PHP en version 8.2.x (voir 8.3.x, mais pas encore bien testé) et utilise Memcached pour la gestion du cache.
    Le serveur de websocket est propulsé par Laravel Reverb.
    Côté Frontend, il s'agit d'une application React classique, en TypeScript, qui utilise PrimeReact pour la suite de composants prêt-à-l'emploi.

    Conclusion

    Concernant les fonctionnalités que nous aimerions mettre en place petit à petit :

    • une interface de configuration pour Chart.js - afin de, quand même, rendre plus simple la configuration des charts, tout en laissant la liberté au développeur de coder en javascript les fonctionnalités avancés ;
    • un nouveau type de connecteur pour supporter Microsoft SQL Server ;
    • une fonctionnalité d'auto-rafraichissement des rapports ;
    • l'import asynchrone de gros fichiers CSV ou Excel.

    Nous pouvons aider à l'utilisation, par l’intermédiaire :

    • d'un salon discord mais ce n'est pas forcément idéal pour ce genre de projet. Je suis donc entrain de regarder du côté de Matrix, éventuellement ;
    • un forum classique.

    Voilà, c'était une brève présentation de RootDB.
    C'est un projet qui n'a pas encore été testé par beaucoup de monde, d’où cette présentation pour le faire connaitre un peu plus.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Entretien avec GValiente à propos de Butano

    GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.

    Cet entretien revient sur son parcours et les raisons qui l’ont amené à s’intéresser à cette console.

    Game Boy Advance

    Sommaire

    Partie 1: présentation

    Qui êtes-vous, quel est votre parcours et est-il lié aux jeux vidéos ?

    Après des études d'informatique, j'ai travaillé dans plusieurs domaines autour du logiciel comme les pages web ou les applications graphiques Java/Swing.

    Aujourd'hui je travaille plutôt en C et C++ dans l'embarqué, ainsi même si mon parcours professionel n'est pas directement lié aux jeux vidéos, mon boulot actuel en est plutôt proche.

    Comme loisir, j'ai joué un peu avec RPG Maker 2K avant de commencer à programmer pour la GBA.

    Pourquoi le retrogaming est-il important pour vous ?

    D'abord pour la nostalgie : être capable de jouer à nouveau aux jeux de votre enfance est très important pour tout le monde. Malheureusement, pouvoir rejouer à de vieux jeux est quelque chose que nous sommes en train de perdre à cause des restrictions des jeux modernes (mode en ligne obligatoire, DRM…).

    Ensuite, grâce aux émulateurs il est très facile de lancer sans problème des jeux que j'ai créés pour la GBA il y a 20 ans. Si je les avais fait pour Mandrake 8.0 à la place, ce ne serait pas aussi facile de les tester aujourd'hui sans recompiler du vieux code et autre.

    Partie 2: Game Boy Advance

    Comment en êtes-vous venu à vous intéresser à la Game Boy Advance ?

    La GBA SP était un grand progrès par rapport au modèle original grâce à l'écran rétro-éclairé et la batterie intégrée, alors j'en ai acheté une dès qu'elle est sortie.

    Les jeux 2D me manquaient après la N64 et la GameCube, alors pouvoir jouer à des classiques de la 2D comme Final Fight sur une console portable était génial.

    Mais ce qui m'intéressait vraiment à propos de la GBA était la possibilité de créer des jeux grâce au HAM SDK et aux flashcarts.

    La GBA SP

    Qu’est-ce que cette console a de particulier ?

    C'est la dernière console 2D. Le système graphique de la GBA fonctionne comme les consoles 16 bits classiques comme la SNES ou la Megadrive, avec des sprites, des arrières plans…

    Toutefois elle utilise un processeur ARM 32 bits tourant à 16MHz, alors il n'est plus nécessaire ou aussi important de programmer en assembleur pour avoir de bonnes performances.

    En plus, je trouve plus "magique" de voir votre jeu tourner sur un écran d'une vieille console portable que sur un écran de télévision.

    Est-elle proche de la Game Boy ou de la SNES ?

    Au niveau graphique, c'est comme une SNES avec plus de couleurs simultanées, plus d'arrière plans et beaucoup de sprites par scanline (proche d'une Neo Geo et en plus on peut leur appliquer une rotation !). Elle a aussi des modes "bitmaps" qui rendent le rendu "logiciel" plus facile. Les jeux 3D comme Doom sont beaucoup plus rapide sur la GBA grâce à ces modes. Malheureusement la résolution de l'écran est un peu trop basse (240x160 contre 256x224 pour la SNES par exemple).

    Cependant, au niveau son, c'est pire que la SNES: la GBA a même le canal PSG que la Game Boy originale avec deux nouveaux canaux directs pour jouer des samples PCM. Avoir seulement deux canaux PCM demande presque toujours de gâcher des tonnes de cycles CPU en mixage audio et même après cela sonne toujours pire que la SNES.

    Comment fonctionne l'affichage (PPU, écran LCD) ?

    Comme je l'ai dit, cela fonctionne comme une SNES : vous avez un nombre fixe d'arrière plans et de sprites, vous les configurez en écrivant des registres. La GBA a aussi des interruptions HDMA et H-BLank, donc vous pouvez faire beaucoup d'effets "raster" comme le fameux mode 7 de la SNES.

    Néanmoins, quelques limitations pénibles du PPU de la SNES ont été retiré, ce qui rends le PPU de la GBA plus facile à programmer. Par exemple, la GBA permets d'écrire en VRAM pendant le "V-DRAM" (quand le PPU rafraîchit l'écran). Cela permets d'utiliser toutes les tailles de sprites disponibles en même temps alors que la SNES ne permettait que deux tailles simultanément.

    La console peut-elle faire de la 3D ?

    La GBA n'a pas d'accélération 3D matérielle, mais son CPU est assez rapide pour faire du rendu logiciel (à un faible taux de rafraîchissement). Il y a quelques techniques pour dessiner des polygones 3D avec des sprites 2D, mais cela vient avec des tonnes de limitations. Dans Varooom 3D, j'ai utilisé des sprites 2D poour dessiner des lignes horizontales, ce qui m'a permis de dessiner quelques polygones non texturés à 60 images par seconde.

    Comment fonctionne le son ?

    Je ne sais pas très bien comment fonctionne l'audio de la GBA, car je n'en ai pas eu besoin : il y a de très bonnes bibliothèques disponibles et j'ai préféré les intégrer plutôt que d'implémenter ma propre solution.

    Comment marche la rétrocompatibilité avec les précédentes Gameboy ?

    Il y a 3 modèles de GBA disponible: GBA, GBA SP and GBA Micro. Seules les deux premières sont compatibles avec la Game Boy originale.
    La rétrocompatibilité est transparente pour le développeur et la plupart des fonctionnalités de la Game Boy sont indisponibles en mode "natif" : un jeu GBA ne peut pas utiliser le CPU de la Game Boy par exemple.

    La machine possède une ROM interne, à quoi sert-elle ?

    La GBA démarre depuis le BIOS, une petite ROM qui montre l'écran d'accueil et exécute le jeu après cela. Il a aussi quelques fonctions liées à l'énergie, comme arrêter le CPU jusqu'au V-Blank ou mettre la console en veille. Enfin, il propose quelques routines comme des fonctions mathématiques, mais je ne les utilise pas pour des questions de performances. Cela aide aussi à éviter les bugs d'émulation du BIOS.

    La GB possède un dispositif anti piratage, comment fonctionne-t-il ?

    Je préfère vous renvoyer à l'article de copetti.org sur le sujet.

    Comment fonctionne le réseau (Game Boy Link) ?

    Comme pour l'audio, je ne sais pas trop comment cela fonctionne, car j'ai préféré intégrer une bibliothèque.
    En général je préfère une bonne bibliothèque plutôt que passer du temps à implémenter une plus mauvaise solution.

    Les cartouches peuvent-elles embarquer des coprocesseurs ?

    Bien sûr, mais le CPU est tellement puissant par rapport à ceux des consoles 16 bits, qu'il n'y en a pas souvent besoin. Le meilleur exemple d'une cartouche officielle avec un coprocesseur dont je me rappelle est la Play-Yan : elle semble embarquer un VideoCore 1 pour jouer des musiques mp3 et des vidéos mp4 depuis une carte SD.

    Les émulateurs sont-ils bons ?

    Extraordinaires. Les émulateurs GBA sont si bons que vous n'avez presque jamais besoin de tester sur du vrai matériel. Si votre jeu fonctionne sur la plupart des émulateurs modernes, alors votre jeu a toutes les chances de fonctionner sur une console réelle sans souci. D'ailleurs la plupart des membres actifs de gbadev ne possèdent même pas de GBA.

    Quels sont vos jeux commerciaux préférés sur cette console ?

    Beacoup :

    • des joyaux de Treasure comme Astro Boy Omega Factor et Gunstar Super Heroes ;
    • d'autres jeux d'action comme Ninja Five-0, Dragon Ball Advanced Adventure et Final Fight ;
    • tous les Simphony of the Night comme Castlevanias.
    • les ports de Doom ;
    • bien sûr les classiques de Nintendo classics comme Wario Ware et Zelda the Minish Cap ;
    • des RPGs bien connus comme Mother 3, Mario and Luigi et Final Fantasy I&II ;
    • quelques RPGs moins connus comme Riviera et CIMA the Enemy.

    Astro Boy Omega Factor

    Quels sont vos jeux "homebrew" préférés sur cette console ?

    Il y en a beaucoup aussi, mais mon préféré est de loin GBA Microjam '23: c'est une collection de mini jeux très amusants à la Wario Ware.
    Ce qui le rend très spécial, c'est que chaque mini-jeu a été fait par un membre différent de gbadev, c'est un jeu "communautaire".

    D'autres très bons:

    gba-microjam-23

    Partie 2 : Butano

    Pourquoi créer un SDK aujourd’hui pour si vieux système ?

    L'objectif de Butano était de pouvoir travailler avec le PPU de la GBA et le reste du système aussi facilement que possible sans perdre trop de cycles CPU. Et je pense que j'y suis arrivé : avec Butano, vous pouvez créer, afficher et détruire des sprites, des arrière plans, du texte, des effets raster et plus encore avec une seule ligne de C++.

    Les prémisses de Butano étaient une bibliothèque interne à mes jeux. Je n'avais pas de plan pour rendre ça public à part faire quelques exemples et de la documentation.

    Finalement je suis content d'avoir rendu ça public : le plus grand accomplissement de Butano est le grand nombre de jeux de qualité fait avec.

    Est-ce que vous participez vous même à la création de jeux ?

    Oui, Butano vient avec le code source de deux jeux que j'ai fait : Butano Fighter et Varooom 3D.

    Varooom 3D

    Quels ont été les difficultés pour créer Butano ?

    Pour être honnête, je n'ai pas eu beaucoup de difficultés grâce au grand nombre de bibliothèques, tutoriaux, émulateurs et outils disponibles pour la GBA.

    Vous aimeriez vivre du développement de ce logiciel libre?

    Bien sûr, mais à moins de travailler à plein temps sur un jeu homebrew à grand succès, c'est difficile voire impossible de vivre de ça.

    Est-ce que Butano gère les accessoires (e-Reader, WormCam, Play-Yan…) de la console ?

    Il gère les accessoires les plus communs : SRAM, rumble et l'horloge temps réel / real time clock (RTC).

    Pour les accéssoires plus exotiques, je pense qu'il est préférable d'utiliser d'autres bibliothèques.

    Quels conseils donneriez-vous à quelqu’un qui veut se lancer dans le développement de jeux Game Boy Advance ?

    Premièrement, vous devez apprendre les bases du C/C++ : la plupart des nouveaux connaissent uniquement des langages de haut niveau comme Javascript ou Python, malheureusement ils sont un peu trop lourd pour la pauvre GBA.

    Après, vous pouvez suivre cet excellent guide plutôt que suivre mes modestes conseils.

    Quels sont les outils pour créer/préparer des graphismes utilisable par Butano ?

    J'utilise Gimp et Usenti (un logiciel proche de MS Paint pour la GBA et notamment une gestion des couleurs 15 bits et des palettes). Toutefois, la plupart des outils permettant de produire des images indexées peuvent faire l'affaire.

    Pour le travail des cartes, j'aimais utiliser Tiled par le passé.

    Quels sont les outils pour créer/préparer des musiques et des sons utilisable par Butano  ?

    OpenMPT est l'outil audio le plus populaire pour la GBA, les musiques étant générallement créées par un tracker. Il a aussi de bons outils pour travailler avec les samples. D'autres utilisent hUGETracker et Furnace.

    Est-il possible de créer ses propres cartouches ?

    Je ne suis pas juriste, mais comme Butano est sous licence zlib, tant que vous respectez cette licence et celles des autres dépendances, vous pouvez faire vos propres cartouches et même les vendre.

    Je pense que ce que font la plupart des gens aujourd'hui, c'est acheter des cartouches pirates Pokémon pas chères, et les flasher pour y mettre leurs propres jeux.

    Pourquoi le choix de C++ pour ce SDK ?

    Comme je l'ai dit, un langage de haut niveau avec ramasse miettes est généralement trop pour la GBA.

    Entre C et C++, j'ai choisi ce dernier, car il permet de réduire grandement la quantité de code sans gâcher trop de CPU.

    Par exemple:

    • les destructeurs de C++ permettent de ne pas avoir à écrire trop de code pour nettoyer les ressources, ce qui est une source de bugs importante sur les grands projets GBA ;
    • la GBA ne gère pas les nombres flottants en hardware, donc utiliser des nombres en virgule fixe est essentiel. Grâce à la surcharge d'opérateurs, C++ permets d'écrire des classes qui se comportent comme des nombres flottants.
    • L'opérateur constexpr permet de générer et stocker des tables d'appels ou autres constantes en ROM sans avoir à utiliser d'outils externes.

    Est-ce qu'il existe d'autres SDK libres pour ces consoles ?

    Il y a beaucoup de SDK pour GBA, mais malheureusement (à mon avis) la plupart sont de plus bas niveau que Butano.

    Voici une liste de ressources (compilers, toolkits, libraries, etc.) pour la GBA: resources GBA.

    Partie 3: pour finir

    En dehors du travail, quels logiciels libres utilisez-vous, sur quel OS ?

    J'utilise généralement Windows à cause du boulot et de certains jeux PC, mais la plupart des programmes que j'utilise sont libres.

    L'éditeur de code que j'utilise presque toujours est Qt Creator, il est génial pour C++.

    À part les logiciels libres pour le développement GBA, j'utlise Firefox, Notepad++, VLC, 7-Zip, LibreOffice, TortoiseGit, VirtualBox et bien sûr les émulateurs pour les vieilles consoles et bornes d'arcade.

    Au travail, quels logiciels libres utilisez-vous, sur quel OS ?

    Pour le développement embarqué, j'utilise GCC et les outils GNU. Pour les applications de bureau, j'utilise Qt avec MinGW.

    GCC est aussi le compilateur le plus populaire pour le développement GBA, alors je n'aurais pas pu l'éviter même si j'avais voulu.

    D'autres logiciels que j'utilise au travail : Thunderbird, Putty and WinSCP.

    Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?

    Ubuntu est bien pour le peu d'usage de Linux que je fais.

    Mes logiciels libres favoris sont ceux avec lesquels je passe le plus de temps : Firefox, Qt Creator, GCC, les émulateurs.

    Quelle question auriez-vous adoré qu’on vous pose ?

    Mmh… rien qui me vienne à l'esprit.

    Quelle question auriez-vous détesté qu’on vous pose ?

    Pourquoi perdez-vous votre temps avec des consoles vieilles de 20 ans ?

    Maintenant que j'y pense… J'aurais adoré qu'on me demande ça.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    FRR dans cloonix dans podman

    Cloonix est un outil d’aide à la construction de réseau virtuel. Il est basé sur Open vSwitch pour l’émulation du réseau constitué de switchs et LANs virtuels, sur crun et les namespaces pour la gestion de conteneurs et sur KVM pour ce qui concerne l’émulation des machines complètes.
    Cloonix peut être considéré comme un hyperviseur qui permet de lancer des scénarios de démonstration impliquant des réseaux connectant de nombreuses machines virtuelles ou conteneurs. Ce logiciel open source permet d’automatiser et de rejouer des scénarios complets.

    FRR est le logiciel open source qui permet de transformer une machine Linux en l’équivalent d’un routeur professionnel, ce logiciel implémente tous les protocoles de routage classique.

    Podman est exactement comme Docker, un gestionnaire de conteneur.

    Le but de cette dépêche est de présenter une démonstration qui tourne dans un podman et qui met en œuvre un réseau d’une soixantaine de conteneurs et qui peut être lancé en tant qu’utilisateur simple sans les droits root.

    Il y a le lien « demo » qui montre une vidéo un peu accélérée de cette démonstration qui démarre les machines, les configure et les met en réseau. On peut ensuite y voir la convergence du protocole OSPF.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    TuxRun et le noyau Linux

    Il y a quelques années, je vous avais présenté TuxMake, un utilitaire pour faciliter la (cross-)compilation du noyau Linux supportant une grande variété de toolchains différentes : TuxMake et le noyau Linux.

    TuxMake facilitant la compilation du noyau Linux, nous nous sommes alors attaqués à rendre l’exécution de ces noyaux plus aisée : ainsi est né TuxRun.

    Exemples

    TuxRun propose une interface en ligne de commande simple pour exécuter un noyau dans QEMU. TuxRun se charge de fournir un environnement suffisant pour démarrer le noyau avec QEMU.

    tuxrun --device qemu-arm64 \
           --kernel https://example.com/arm64/Image

    TuxRun va alors télécharger le noyau et un système de fichier compatible avec ARM64 puis lancer qemu-system-arm64 avec les bons arguments et afficher les logs du boot.

    La ligne de commande de qemu générée par TuxRun est la suivante :

    /usr/bin/qemu-system-aarch64 \
        -cpu max,pauth-impdef=on \
        -machine virt,virtualization=on,gic-version=3,mte=on \
        -nographic -nic none -m 4G -monitor none -no-reboot -smp 2 \
        -kernel /.../Image \
        -append "console=ttyAMA0,115200 rootwait root=/dev/vda debug verbose console_msg_format=syslog systemd.log_level=warning earlycon" \
        -drive file=/.../rootfs.ext4,if=none,format=raw,id=hd0 \
        -device virtio-blk-device,drive=hd0

    Il est également possible de lancer une suite de tests directement depuis la ligne de commande :

    tuxrun --device qemu-arm64 \
           --kernel https://example.com/arm64/Image \
           --tests ltp-smoke

    Les résultats de la suite de test seront analysés par TuxRun et la valeur de retour de TuxRun sera 0 uniquement si la suite de tests passe intégralement. Ceci permet d’utiliser TuxRun pour valider qu’une suite de tests donnée fonctionne toujours correctement sur un nouveau noyau.

    Architectures

    QEMU

    Grâce à QEMU, TuxRun supporte de nombreuses architectures:
    - ARM: v5/v7/v7be/64/64be
    - Intel/AMD: i386/x86_64
    - MIPS: 32/32el/64/64el
    - PPC: 32/64/64le
    - RISCV: 32/64
    - sh4, sparc64, …

    La liste complète est disponible dans la documentation.

    FVP

    Il est également possible d’utiliser FVP, le simulateur de ARM pour simuler un processeur ARMv9. FVP est un simulateur bien plus précis que QEMU au prix d’un temps d’exécution bien supérieur.

    FVP permettant de configurer et simuler de nombreux composants du processeur, TuxRun propose une configuration permettant de démarrer et tester Linux dans un temps raisonnable.

    tuxrun --device fvp-aemva \
           --kernel https://example.com/arm64/Image \
           --tests ltp-smoke \
           --image tuxrun:fvp

    ARM ne permettant pas (pour le moment) de redistribuer les binaires FVP, il faut construire localement le container tuxrun:fvp.

    Système de fichiers

    Par défaut, TuxRun télécharge et utilise un système de fichier compatible avec l’architecture cible. TuxRun fournit donc 20 systèmes de fichiers différents, un pour chaque architecture disponible.

    Ces systèmes de fichiers sont basés sur buildroot et comportent les outils nécessaires pour faire tourner la majorité des suites de tests supportés par TuxRun. La liste complète est disponible dans la documentation.

    Il est également possible d’utiliser un autre système de fichiers :

    tuxrun --device qemu-arm64 \
           --kernel https://example.com/Image \
           --rootfs https://example.com/rootfs.ext4.zst

    Runtimes

    TuxRun télécharge et utilise un container que nous maintenons. Ce container inclut l’ensemble des binaires nécessaires ainsi que QEMU. Par défaut, TuxRun utilise toujours la dernière version du container disponible.

    Il est cependant possible de spécifier une version particulière afin de reproduire plus facilement une erreur. Les nouvelles versions de QEMU introduisent quelques fois des régressions dans les suites de tests. Il est alors nécessaire d’utiliser exactement la même image pour reproduire le problème.

    Reproduire un test

    TuxRun est utilisé, via tuxsuite notre service de compilation et de test dans le cloud, par le projet LKFT (Linux Kernel Functional Testing) de Linaro. Lorsqu’une régression est détectée, il suffit de fournir la ligne de commande TuxRun pointant sur les artefacts utilisés pour pouvoir reproduire le problème.

    Les développeurs du noyau sont alors à même de reproduire et de corriger les régressions détectées par LKFT. TuxRun simplifie ainsi énormément la reproduction du test.

    Un exemple parmi tant d’autres : selftests: sigaltstack: sas…

    Installation

    TuxRun étant un programme Python, il est possible de l’installer depuis pypi :

    python3 -m pip install tuxrun

    Nous fournissons également un paquet Debian, et un rpm.

    TuxMake et Tuxrun

    Dans un prochain article, je vous montrerai comment combiner TuxMake et TuxRun pour automatiquement trouver le commit responsable de la régression dans le noyau.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Retour d’expérience sur l’utilisation de GrapheneOS (ROM Android libre)

    Suite à la dépêche Comparatif : GrapheneOS vs LineageOS, je souhaitais faire part d’un retour d’expérience sur l’utilisation de GrapheneOS sur un téléphone Android Pixel 7a. Ce commentaire est repris ici sous forme de dépêche.

      Sommaire

      Le point de départ est celui d’un utilisateur sensible aux logiciels libres mais qui utilise un téléphone Android Samsung « comme tout le monde », avec :

      • Utilisation du Google Play Store, avec un compte Google personnel
      • Utilisation d’un compte Google professionnel
      • Utilisation du Samsung store, avec un compte Samsung
      • Utilisation d’une montre connectée Samsung avec appli Samsung health

      L’utilisateur a déjà expérimenté par le passé les solutions suivantes :

      • UbuntuOS (abandonné rapidement par manque d’applications)
      • LineageOS, avec Micro-G + « signature spoofing » pour permettre l’installation des applications bancaires

      PixelOS

      Installation

      La mise en œuvre du système « stock » installé sur le smartphone est très facile et simple d’utilisation. Les téléphones Pixel proposent des fonctionnalités « avancées » spécifiques qui sont proposées au démarrage, avec à chaque fois le jeu de « voulez-vous activer cette fonctionnalité ? Si oui, acceptez le contrôle des données suivantes… »
      On est dans un environnement full google, donc avec quelques habitudes à changer me concernant venant d’un environnement Samsung (la surcouche de l’OS est différente).

      Interface

      Launcher Pixel avec une barre de recherche Google qui ne peut pas être enlevée (The search bar cannot be removed from the bottom of the home screen, it's part of the Pixel Launcher https://support.google.com/pixelphone/thread/133065648/is-there-any-way-to-remove-the-google-search-bar-from-the-home-screen?hl=en), sinon tout est fluide / "beau"

      Fonctionnalités spécifiques/avancées de PixelOS

      • Déblocage du téléphone par reconnaissance faciale (probablement un cauchemar en termes de privacy, mais je pourrais comprendre pourquoi une personne lambda souhaiterait activer ce service)
      • « Double tap » au dos du téléphone pour lancer une action (dans mon cas : la lampe torche)
        • On peut utiliser Torchie pour une fonctionnalité proche (https://f-droid.org/fr/packages/in.blogspot.anselmbros.torchie/)
        • Les fonctions d’urgence « avancées » fournies par l’application « sécurité personnelle » (https://play.google.com/store/apps/details?id=com.google.android.apps.safetyhub&hl=fr&gl=US)
        • L’application est disponible sur le playstore mais ne fonctionne pas sur GrapheneOS
        • Il existe une fonction d’urgence « de base » dans GrapheneOS (AOSP ?) (appuyer 5x sur power pour lancer un appel d’urgence vers le 112)
        • Dans PixelOS, il y a un conflit de raccourcis entre « appuyer 5x sur power pour lancer un appel d’urgence » et l’option « appuyer 2x pour lancer l’appareil photo » (quand les deux sont activées : l’appareil photo prend le dessus)
      • Paiements NFC (non accessibles sur GrapheneOS)
        • Certaines applications de paiement autres que Google Wallet peuvent fonctionner (par ex. Paylib)
      • Fonctionnalité « bien être numérique », notamment le fait de passer l’écran en noir & blanc à partir d’une certaine heure pour tenter de limiter le temps devant les écrans. L’application existe dans le Play Store (https://play.google.com/store/apps/details?id=com.google.android.apps.wellbeing&hl=fr&gl=US) mais impossible à retrouver depuis le client Play Store sur le téléphone.
        • Il existe probablement des alternatives

      GrapheneOS

      Installation

      Procédure d’installation web très simple et rassurante. C’est la première fois que je me verrai recommander ce type d’install à un utilisateur non technique (alors que la procédure d’install de LineageOS - à l’époque ou j’ai essayé - est complexe et obscure, avec le risque de se planter à plusieurs étapes).

      Interface

      • Le bureau par défaut est très minimaliste et pas très accueillant (je sais que cela peut paraître peu important, mais le fond noir + icônes en noir & blanc peut rebuter / n’est pas aussi accueillant que le système de base).
      • Le clavier par défaut m’a dérangé (après des années à utiliser le clavier Gboard), surtout pour l’écriture « swipe » (que je pratique souvent quand j’écris un message à une main).

      Applications et « stores »

      Pour le Store Google, il est possible d’installer plusieurs « briques » de l’éco-système :

      • Google Services Framework (GSF), dont dépendent :
        • Google Play services + Google Play Store (interdépendants) On peut donc choisir : rien du tout, GSF pour les applis qui en dépendent, ou les trois.

      Gestion des autorisations

      • Les possibilités sont très fournies = positif (permet de limiter les accès réseau, les accès stockage)
      • Les possibilités sont très fournies = complexe à gérer : il faut se poser des questions / passer du temps à configurer les choses.
        • Exemple : la synchronisation des contacts Google ne se fait pas sans la permission « Contacts » dans l’appli « Google Services Framework ».

      Séparation des usages

      Il existe deux approches possibles de séparation des usages :

      • Utilisation d’un « user profile » : il s’agit d’un profil complètement distinct. On peut passer de l’un à l’autre assez facilement. Les deux profils ne peuvent pas se parler, sauf via les notifications croisées (https://www.youtube.com/watch?v=WjrANjvrSzw)
      • Utilisation d’un « work profile » : ici on utilise un seul profil, mais à l’intérieur duquel on vient activer la fonctionnalité « work profile » d’Android pour séparer les usages (via une application tierce telle que Shelter, https://www.youtube.com/watch?v=20C0FD7mGDY pour une explication détaillée)

      Détail des approches suivies

      1ʳᵉ approche

      • Profil « owner » avec Shelter
        • Profil « Personnel » = pas de services Google
        • Profil « Professionnel » = Services Google avec compte personnel
      • 2ᵉ Profil « Travail » = Services Google avec compte professionnel

      Ce qui bloque : je voulais utiliser la fonctionnalité « work profile » d’Android avec Shelter pour isoler mon compte Google personnel. Hors c’est ce compte qui jusqu’ici synchronise les contacts. Les applications par défaut de GrapheneOS ne gèrent pas cette synchro (autrement que via import/export manuel, ou alors je n’ai pas trouvé comment). Si on veut quelque chose qui s’intègre tout seul il faut passer par les applications Google de Téléphone/Contacts/Calendrier. Hors ces applications ne peuvent pas devenir « applications par défaut » (pour remplacer celles existantes de GrapheneOS) dans le « work profile », c’est le profil personnel qui gère cette configuration.

      2ᵉ approche (test en cours)

      • Profil « owner » (unique, sans Shelter) = Services Google avec compte personnel
      • 2ᵉ Profil « Travail » (unique, sans Shelter) = Services Google avec compte professionnel

      Ce qui bloque : j’utilise le téléphone à la fois pour le pro & perso, sauf que le fait d’avoir deux profils implique de jongler systématiquement entre les deux profils. Trop compliqué au quotidien.

      3ᵉ approche (d’ici une semaine)

      • Profil « owner » avec Shelter
        • Profil « standard » = Services Google avec compte personnel
        • Profil « work » = Services Google avec compte personnel

      Détails : utilisation sans les services Google

      Synchronisation des contacts & agendas

      La première problématique c’est la synchro des contacts et des agendas. Pour se passer de Google sur ce point, il faut mettre en place au préalable un service de partage de contact / agenda :

      Bref c’est un projet en tant que tel, pas forcément à la portée de tous

      Quid des applications non libres hébergées sur le play store

      À ce stade, pour accéder à d’éventuelles applications uniquement présentes sur le Play Store, il est possible de :

      • passer par l’application Aurora
      • passer par apkmirror pour les télécharger une à une

      Cependant, de nombreuses applications du Play Store requièrent l’installation du Google Services Framework (« GSF ») pour fonctionner.

      Me concernant, j’ai la liste suivante d’applications que j’ai pu récupérer par ce biais (et qui fonctionnent sans GSF) :

      • Appli Banque (SG)
      • Paiement NFC via Paylib (pas encore testé « en vrai » mais l’appli s’installe sans broncher)
      • Deezer (musique)
      • Somfy (alarme)
      • NetAtmo (thermostat connecté)
      • Doctolib (Santé)
      • Appli mutuelle (Alan)
      • Freebox connect (utilitaire freebox)
      • Wifiman (utilitaire réseau)

      Certaines applications nécessitent le GSF, c’est le cas notamment de :

      Détails : Utilisation avec les services Google

      Dans un profil séparé

      J’ai mis du temps à comprendre / trouver comment activer la fonctionnalité de profils multiples (alors que c’est simple) : Paramètres > Système > Utilisateurs multiples > Autoriser plusieurs utilisateurs (https://www.youtube.com/watch?v=SZ0PKtiXTSs)

      Le profil séparé à l’avantage d’être comme un « deuxième téléphone ». C’est aussi un inconvénient pour les personnes qui ne sont pas prêtes à faire cet « effort » (passer de l’un à l’autre), même si les notifications « cross profile » aident sur ce point.
      Il faut reproduire sur chacun des profils toutes les « custo » faites (changement de launcher, de clavier, configurations diverses, etc).

      Via la fonction « work profile » d’Android

      La fonction work profile fournit une séparation moins forte, mais c’est aussi plus « pratique » au quotidien car toutes les applications (et les comptes) sont dans un seul profil. J’ai testé via l’application Shelter.

      Avantages :

      • Tout est accessible dans le même profil
      • Dans le tiroir d’application, on retrouve deux « onglets » séparant les applications « perso » et « pro ».

      Inconvénients :

      • Comme pour le profil séparé, il y a une « double maintenance »
        • Ex: en cas d’utilisation de deux profils Google Play (profil perso + pro), il faut faire les mises à jour « des deux côtés »
      • Il faut bien choisir dans quel contexte on souhaite installer chaque application
      • Je n’ai pas trouvé comment faire pour 1. Synchroniser mon compte Google perso dans le « work profile » de Shelter et 2. faire remonter ces informations dans les applications « contacts » et « téléphone » par défaut de GrapheneOS. C’est le profil « Personnel » qui va dicter quelles applications par défaut sont utilisées.

      Conclusion, cas d’usages et « threat model » (modèle de menace)

      J’ai passé beaucoup plus de temps que prévu à comprendre GrapheneOS, tester différentes solutions et configurer les options / trouver des alternatives. Je suis bien conscient que plusieurs « problèmes » remontés pourraient tout simplement être résolus si j’acceptais de faire les choses différemment. Cela me pousse à m’interroger sur le compromis à choisir entre sécurité / respect de la vie privée / facilité d’utilisation ? Cette question dépend bien sur du modèle de menace (« threat model ») de chacun.

      Sécurité

      GrapheneOS répondrait parfaitement à des contraintes de sécurité « forte » pour des personnes étant journaliste / activiste / lanceur d’alerte / député. Dans ce cas d’usage, le coût de la sécurité est accepté.

      Vie privée

      GrapheneOS apporte un choix indéniable permettant à chacun de trouver le meilleur usage possible.

      Facilité d’utilisation

      Dans mon cas d’usage, je trouve que la fonction de profil séparé apporte trop de friction au quotidien, et je suis prêt à tout rassembler au sein du même profil. L’utilisation de deux téléphones différents (un perso / un pro) pourrait être une alternative. De la même manière, je n’ai pas encore passé le pas de me séparer de mon compte Google (pour la synchro des contacts / agendas), donc pour le moment je continue d’utiliser le Play Store. À terme, j’essaierai de ne plus en dépendre.

      Note : l’impact du matériel (« hardware ») sur la vie privée

      • Un casque Bluetooth Bose nécessite l’app « Bose Connect » qui dépend de GSF/Play Store
      • Un casque Bluetooth Samsung Buds2 Pro nécessite l’app Samsung qui demande la création d’un compte cloud chez eux
      • L’application Google Wallet me permet de régler mes courses via paiement NFC, mais donne accès par ce biais à un pan entier de données personnelles

      À chaque fois la question est : est-ce utile ou pas ? Puis-je facilement m’en passer ?

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Open Food Facts : récit d’un contributeur

      Récit de mon aventure en tant que contributeur pour le projet Open Food Facts, la base de donnée alimentaire ouverte et collaborative, où je suis arrivé un peu par hasard en 2015.

      Depuis son lancement par Stéphane Gigandet en 2012, le projet a beaucoup évolué et les contributions ont augmenté de façon exponentielle. D’abord centré sur des données de produits vendus en France, la base compte désormais 3 100 000 produits et 18 pays ayant dépassé les 10 000 produits référencés.

      L’impact de ces données a pu se voir à travers le Nutriscore qui a pu être testé sur un grand nombre de produits grâce à Open Food Facts. Désormais, plusieurs projets avancent de front et en partenariat avec d’autres acteurs, notamment autour de l’empreinte carbone (EcoScore), des emballages (avec l’ADEME) ou de la surveillance de la réduflation (avec l’ONG Food Watch).

      Logo de OpenFoodFacts

      Sommaire

      Découverte & premiers pas

      Je raconte souvent que j’ai découvert Open Food Facts (OFF) grâce à José Bové. Pas directement, certes, mais il a joué un grand rôle dans mon intérêt pour OFF.

      José Bové n’est pas content contre le dioxyde de titane (E171)
      José Bové n’est pas content contre le dioxyde de titane (E171)

      Mars 2015 : je regarde d’un œil torve BFM TV et je vois un José Bové énervé contre un additif : le E171 (aussi connu sous le nom « dioxyde de titane »). Face à Jean-Jacques Bourdin, il sort des paquets de M&M’s et de chewing-gum, cite les marques et incite les téléspectateurs à boycotter ces produits qui contiennent ce colorant controversé.

      Pas forcément renseigné sur les enjeux autour de ce colorant, j’ouvre la page Wikipédia de celui-ci. Je lis en diagonale ce qui est marqué et, en bas, je vois un lien où il est indiqué « Liste des produits contenant du E171 sur Open Food Facts ».

      Je découvre l’interface moche (signe de reconnaissance des projets portés par des bénévoles et où l’aspect visuel est souvent en bas de la liste des priorités) de OFF et comprend très vite les grandes lignes du projet : un Wikipédia des aliments qui se base sur les informations présentes sur les emballages. Ni plus, ni moins.

      En découvrant OFF, je suis étonné que le projet n’a été lancé qu’en 2012. Naïvement, je pensais que les données alimentaires étaient obligatoirement partagées par les producteurs et centralisées quelque part, à des fins de contrôle de conformité par exemple. Mais finalement non : les rares bases de données qui existent ne sont pas ouvertes.

      Quand j’arrive sur le site, le projet vient de dépasser les 30 000 produits dont 90% sont français. À l’époque, je ne suis pas libriste (je crois que je ne connaissais pas la différence entre logiciel libre et logiciel propriétaire), je ne contribue à aucun commun numérique et, ironiquement, je ne suis pas très intéressé par les questions autour de l’alimentation.

      Contribution(s)

      Rapidement, je ne sais plus où donner de la tête : il y a tant de choses à faire pour aider !

      Au début, j’aide à compléter les fiches. On parle d’une époque où il n’y a aucun outil de reconnaissance de caractères intégré au projet donc, la liste d’ingrédients, il faut forcément la remplir à la main. Plutôt simple pour un jus de fruit, beaucoup moins pour un gâteau industriel.

      Comparaison de deux listes d’ingrédients : l’une avec beaucoup d’ingrédients et l’autre avec peu
      Comparaison de deux listes d’ingrédients : l’une avec beaucoup d’ingrédients et l’autre avec peu

      L’ajout de nouveaux produits est rapidement un réflexe que de nombreux contributeurs et contributrices de OFF ont connu : en revenant des courses, je me retrouve à genoux sur le sol de ma cuisine pour prendre les meilleures photos possibles d’une conserve de haricots ou d’une galette complète surgelée. Je suis moins fan de prendre des photos directement en rayon : on parle d’une époque pré-Yuka où scanner un produit n’est pas du tout dans les habitudes du consommateur moyen (et encore moins le prendre en photo). Autre réflexe : ramasser parfois des déchets dans la rue pour voir si — au cas où — ils ne sont pas dans Open Food Facts (et les mettre dans la poubelle jaune en passant, tout de même :D ).

      La question des catégories — et surtout de la taxonomie de celles-ci — devient rapidement un point central de mes contributions : pour comparer des produits d’une même catégorie, encore faut-il que ceux-ci en aient une. La complétion des autres champs, bien qu’importante, me paraît secondaire sur la mission de classer les produits le plus finement possible.

      Un autre sujet qui m’intéresse : les estampilles sanitaires. Ces codes qui sont obligatoires sur certains produits (notamment ceux issus d’animaux) permettent de connaître le lieu de préparation de ceux-ci. Multipliez les fiches avec ces codes, couplez-les avec la liste, publique, des sites de productions correspondant et vous obtenez la carte « C’est fabriqué près de chez-moi ». Avec cette carte, on a rapidement « repéré » certains sites majeurs, comme l’usine d’Aucy, à Theix (près de Vannes), qui a rapidement dépassé les 300 références.

      Carte des sites de production centrée sur le Golfe du Morbihan
      Carte des sites de production centrée sur le Golfe du Morbihan

      Changements notables

      Le grand changement qui a révolutionné la contribution à OFF, ce sont les modifications semi-automatisées permises par Hunger Games. Rajouter, en quelques minutes, la marque de centaines de produits accélère considérablement la contribution et permet d’avoir une base de donnée toujours plus complète. À terme, ce projet a sûrement vocation à devenir la Street Complete de Open Food Facts (en tout cas, je l’espère :D ).

      Évolution de la part des produits sans catégorie
      Depuis fin 2022, nous avons enfin réussi à infléchir la courbe des produits sans catégorie (qui ne faisait que monter depuis 2017)

      Pour ce qui est de l’ajout de nouveaux produits, il y a clairement eu un avant et un après Yuka. Cette application se basait, à ses débuts en 2017, sur OFF. Elle a depuis créé sa propre base mais rebascule les photos et certaines données sur OFF. Bien que l’ajout de nouveaux produits ait tendance à se diversifier avec le temps (via l’arrivée d’applications similaire dans d’autres pays notamment), Yuka a clairement donné un coup d’accélérateur incroyable à OFF : à l’heure où j’écris ces lignes, près de 60% des produits ont été ajoutés via cette application. Même si de nombreuses données sont ajoutées sur OFF par la suite sur ces produits, cet apport est essentiel pour la croissance de la base.

      Liste des principaux contributeurs qui sont des applications pour les 15 plus importants
      Liste des principaux contributeurs qui sont des applications pour les 15 plus importants

      Des projets annexes ont vu le jour : Open Beauty Facts, Open Pet Food Facts et Open Products Facts. Ces trois projets, à chaque fois lancés sous forme de blague le 1ᵉʳ avril, sont devenus des projets sérieux qui avancent à leur rythme dans le sillage de OFF. Le projet de fusionner tous ces projets est en gestation depuis plusieurs années, mais devrait se concrétiser bientôt.

      La refonte graphique du projet actée pour les 10 ans de OFF a été très bien mise en place. La nouvelle page d’accueil est plus agréable, le logo est super et, surtout, les fiches produits sont très bien organisées. Il y a également une cohérence graphique entre le site web et l’application smartphone.

      Ancien logo et nouveau logo
      Ancien logo vs. nouveau logo

      Dernière chose qui démontre la maturité du projet : la mise en place d’un groupe de travail dédié à la qualité des données. Depuis sa mise en place, de nombreuses erreurs de valeurs nutritionnelles ont été corrigées en priorisant les produits les plus scannés via près de 200 contrôles (ex : il y a un problème si un produit est noté avec « 120 g de sucre pour 100 g »). Ce travail va désormais porter sur la qualité des ingrédients renseignés et, là, on passe à un autre niveau de complexité…

      Illustration du chantier "Qualité des données"
      Un mème que j’avais bricolé il y a quelques mois et qui illustre le chantier qui nous attend pour améliorer la qualité des ingrédients.

      Limites

      Selon moi, le gros point noir de OFF est son application smartphone. Celle-ci rend la contribution laborieuse. À tel point que j’ai tendance à rester sur PC, même pour l’envoi de photos. Aussi, le décalage entre les versions disponibles sur Google Play/App Store d’un côté et F-Droid de l’autre est dommage.

      Une autre limite est, selon moi, le lien que l’on a, en tant que contributeur, aux données que l’on ajoute.

      Je m’explique : j’ai un peu contribué à OpenStreetMap (projet que j’ai découvert via mon implication à OFF, en passant). J’ai fait des modifications assez modestes, mais j’ai un lien assez fort aux données que j’ai ajoutées. Mais j’ai souvent en tête ces contributions et le fait qu’elles sont utiles à de nombreuses ré-utilisations via des applications tierces. Constater ces ré-utilisations crée une sorte de fierté d’avoir contribué à ce projet. Et une incitation à continuer. Christian Quest en a d’ailleurs parlé lors des derniers « OFF Days », en décembre 2023.

      Cette incitation est assez faible dans le cas de OFF. Personnellement, ce qui me pousse et m’a toujours poussé à contribuer est de voir passer des articles scientifiques qui utilisent OFF comme source de données principale, notamment autour du Nutriscore.

      D’ailleurs, lors des dix ans d’OFF, le docteur Chantal Julia a évoqué le travail l’équipe du Pr Serge Hercberg (l’inventeur du Nutriscore) et est venue parler de l’impact d’OFF dans l’élaboration de cet indicateur. Elle a prononcé la phrase : « Le Nutriscore n’en serait pas là aujourd’hui si Open Food Facts n’existait pas ». Cette phrase résume la raison de mon implication dans ce projet.

      Intervention du Dr Chantal Julia pour les Open Food Facts Days 2022
      Intervention du Dr Chantal Julia pour les Open Food Facts Days 2022

      Autre étonnement : la dépendance du projet à des outils non libres. Le fait que tout s’organise sur Slack, par exemple, est dommage et l’utilisation de services Google l’est également. Loin de moi l’idée de passer pour un puriste (on a tous nos contradictions à ce sujet) mais lorsque des alternatives existent, cela devrait être un réflexe pour tout projet de les utiliser en priorité. Je pense notamment aux outils portés par l’association Framasoft.

      Le contrôle des produits ajoutés serait à renforcer : OFF déborde de produits dont le code-barre est erroné. Cela peut être intentionnel (vandalisme de données) ou non (erreur du lecteur de code-barre ou faute de frappe). La conséquence : un travail de fourmi pour transférer les photos au bon produit puis supprimer la mauvaise fiche. Heureusement, pour les produits qui n’ont ni photo ni données, la procédure est souvent automatisée et, passé un certain délai, la fiche est supprimée. La conséquence : une partie non négligeable des produits ajoutés sur OFF sont destinés à être supprimés à long terme. De ce que j’ai pu en constater, j’estime que cela représente entre 10 et 15% des produits ajoutés sur une année (chiffre à prendre avec des pincettes).

      Comparaison des produits ajoutés par année entre le 2 janvier 2023 et le 10 février 2024. Entre ces deux dates, plus de 77 000 produits ont été supprimés car erronés.
      Comparaison des produits ajoutés par année entre le 2 janvier 2023 et le 10 février 2024. Entre ces deux dates, plus de 77 000 produits ont été supprimés car erronés.

      Dernier regret qui, j’imagine, est partagé par le reste des bénévoles : n’avoir jamais pu développer de communautés locales de contributeurs. Je pense que c’est dû à la nature des données : il est plus facile de créer un groupe local lorsque celles-ci sont liées à l’endroit où l’on réside (comme pour OpenStreetMap par exemple). Quelques « scan party » ont été organisées ici ou là, mais je n’ai pas le sentiment que ça ait initié quelque chose de concret.

      Enfin, je veux terminer cette partie en clarifiant un point : j’adore OFF et j’ai prévu de continuer à y apporter ma pierre à l’avenir. Cette section a uniquement pour but de souligner quelques-unes des pistes d’amélioration.

      Perspectives

      Les projets lancés récemment autour des emballages, en partenariat avec l’ADEME, me paraît très intéressant. Même si je suis terrifié par la montagne de travail que représentent ces contributions, qui demandent de peser chaque élément de l’emballage avec une balance de précision, prendre la photo de celle-ci, l’envoyer sur la fiche et renseigner toutes les informations.

      Opération Plein pot sur les emballages en partenariat avec l'ADEME
      Opération Plein pot sur les emballages en partenariat avec l’ADEME

      Un autre projet plus récent : OpenPrices. L’ambition est de suivre les prix des produits. Sacré boulot en perspective vu la volatibilité de cette donnée. Reste que les premiers résultats valent le détour et des processus ont déjà été élaborés pour automatiser certaines contributions.

      Interface du projet Open Prices
      Interface du projet Open Prices

      La taxonomie des ingrédients est également prometteuse. Un peu de la même manière que les catégories (quoique plus complexe), référencer les ingrédients dans une arborescence (potentiellement liée aux données de Wikidata) va permettre de nouvelles réutilisations. Il y a également le projet de réaliser une taxonomie des marques.

      Conclusion

      À travers Open Food Facts, j’ai mis un pied plus globalement dans le monde du libre. Parfois, la motivation baisse devant l’aspect "sisyphéen" du projet : pour une fiche correctement complétée, 100 produits sont ajoutés. Mais, voir l’impact concret de son travail, par exemple via le Nutriscore, est très gratifiant.

      Entre mon arrivée et aujourd’hui, la taille de la base mondiale a été multipliée par 100 et le taux de produits français a largement diminué, preuve de l’internationalisation du projet. Même si beaucoup reste à faire, OFF a d’ores et déjà apporté sa pierre à la transparence alimentaire.

      Si j’ai incité ne serait-ce que deux ou trois personnes à modifier une fiche ou à ajouter un produit, j’aurai atteint mon objectif. Mais plus que Open Food Facts, cet article a pour but de vous inciter à contribuer à un commun numérique. Je tire surtout de cette expérience des rencontres et des discussions enrichissantes avec l’équipe au cœur du projet.

      Photo de groupe aux OFF Days 2023
      Photo de groupe aux OFF Days 2023

      P.S. : Le E171 (ou dioxyde de titane), ce colorant controversé par lequel je me suis intéressé à OFF, est désormais interdit en Europe depuis 2022 après que la France l’ait bannie des aliments l’année précédente.

      José Bové doit être content. :)

      Liens & ressources

      À lire
      Mange et tais-toi (Serge HERCBERG, Editions humenSciences, février 2022)

      À voir
      Présentation d’Open Food Facts à l’édition 2015 de la convention Pas Sage en Seine
      Une vidéo de la chaîne Projet Utopia qui parle surtout de Yuka mais aussi (un peu) de OFF

      À écouter
      Manon Corneille de Open Food Facts sur le podcast Projet Libres
      Un épisode de l'émission "Le Meilleur des Mondes", sur France Culture, qui aborde les applications comme Yuka et Open Food Facts

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Un annuaire des producteurs locaux en Open-Source

      J’ai le plaisir de vous présenter l’association OpenProduct qui se donne pour mission de faire connaître les producteurs locaux. Dans cette perspective, nous avons lancé un site web ainsi qu’une application mobile avec une carte et un wiki. Tout est Open-Source, du code source des softs, aux comptes de l’association en passant par la base de donnée.

      Logo de OpenProduct

      Sommaire

      Présentation

      Le but du projet est de constituer un annuaire des producteurs locaux le plus exhaustif possible. On considère comme producteur une entreprise qui produit en France un produit destiné au grand public (pas de constructeur de robots industriels par exemple). Je ne me limite pas aux artisans ni aux PME, mais je vois mal une multi-nationale non plus. Je pense que les plus grosses entreprises sont celles du textile avec à peine une centaine d’employés maximum. J’ai aussi quelques biscuiteries peut-être. J’aimerais bien avoir de l’électronique par exemple, mais je n’ai pas trouvé de source dessus.
      Attention, parfois la frontière est un peu fine, et il y a parfois des grossistes proches des producteurs qui peuvent un peu s’immiscer dans la base de données. L’idée n’est pas non plus de mettre tous les boulangers (scandale, ils fabriquent bien en France quoique parfois certains utilisent du surgelé industriel). Mais par contre les boulangers qui fabriquent avec de la farine locale avec un four solaire ou au bois ont une raison d’y être.
      Pour faire simple (et simpliste) il faut rentrer dans l’ « esprit producteur local ».

      Le site web est assez basique avec une carte et pour chaque producteur son site web, son numéro, son courriel, son adresse (obligatoire pour se trouver sur la carte) et un texte descriptif. Il est possible de filtrer par catégorie, mais cet élément gagnerait à être largement amélioré. Sur le site, on dispose d’un Wiki qui est pour le moment famélique. L’idée est qu’il serve de page web à certains producteurs qui n’en disposeraient pas. Pour ceux qui ont un site complet, leur site est sans doute plus intéressant. La question reste ouverte de savoir si le wiki gagnerait à être complété par d’autres informations. J’ai dernièrement ajouté des « Guides pratiques ».

      Aujourd’hui, l’on considère que le site web, c’est seulement 30% du trafic. Une application mobile est dès lors absolument indispensable. Une application Android existe et est installable avec l’APK (Disponible sur le site web). Évidemment, qu’à l’avenir, elle devra être rendue disponible le play store de Google (Et sur FDroid). En théorie, cette application pourrait être compilée pour iPhone et placée sur l’AppStore. Mais je n’ai pas encore investi dans ces magasins car le ticket d’entrée n’est pas négligeable et que l’appli est encore perfectible (et c’est un euphémisme).

      Historique

      Au départ, mon idée était, dans un but personnel, d’avoir des objets purement open-source (réparable, bidouillable…). Ne trouvant pas souvent mon bonheur, je me suis dit : « et si je créais une entreprise qui produit un objet Open-Source ? » Peu importe lequel. Mais je me suis vite rendu compte que je n’arriverai jamais à le vendre à quelqu’un d’autre que moi… Les entreprises qui ont tenté ont toutes abandonné genre NumWorks ou alors ont marginalisé cette démarche au cours de leur croissance. A priori, la raison n’est pas que cela ne soit pas viable en soi mais plutôt que pour croître, ils ont dû faire appel à des investisseurs qui n’achetaient pas le concept d’Open-Source. Et s’ils n’ont pas pu grossir sans ces investisseurs, c’est qu’il est très difficile de vendre (pas vraiment de fabriquer). En fait, les gens ne voient pas l’intérêt de l’Open-Source si c’est « réparable ». Autrement dit, il « suffit » pour l’entreprise de dire qu’elle continue de vendre les pièces détachées. Mais si l’entreprise ne fournit ni pièces, ni plans, c’est trop galère à faire soi-même (ou trop cher par un réparateur). Il y a un autre problème qui se cumule, c’est la multiplication des versions. Il n’y a pas 1, 5 mais près d’une centaine de lave-vaisselles différents, aucune communauté ne pourra modéliser toutes les versions en service (pas seulement celle commercialisée, mais aussi toutes celles qui l’ont été depuis 15 ans). En fait si je fabrique moi-même un produit open-source, je vais avoir énormément de mal à en faire la promotion.

      Mais je ne suis pas le seul dans ce cas, tous les petits producteurs locaux connaissent ce problème. Ils ont des articles de bien meilleurs qualité que le commerce standard (certes un peu plus cher) mais ils peinent à se faire connaitre. Ils utilisent généralement assez peu de brevets et c’est bien ça qui attire le client, il sait d’où ça vient, comment c’est fait (en gros). Sa force, c’est donc de ne pas cacher sa chaine de production, c’est donc en quelque sorte au minimum d’être open-source sur la chaine de production. Et on peut les aider à être plus transparents. D’où OpenProduct. Enfin, c’est l’idée à long terme.

      Le lancement

      Tout ça en serait resté au stade d’idée si je n’avais pas été au chômage. Au départ j’ai fait des travaux dans la maison puis faute de finance et de courage, j’ai dû réduire. Je me suis donc attelé à la tâche.

      La tâche la plus simple pour moi c’était de faire le site web (je ne parle pas du design). Il n’y avait là aucune difficulté majeure, j’ai pas mal travaillé avec HTML/JavaScript/PHP dans mes précédentes activités professionnelles et un peu avec Leaflet. Je voulais penser performances et sécurité. Et pour moi, le plus évident c’était de faire du statique. Cela ne demande que les ressources minimales pour le serveur et c’est inattaquable. Aujourd’hui, on peut faire beaucoup en JavaScript. En plus, comme c’est statique, je n’ai pas de cookies… Donc pas cette satanée popup ce qui rend tout de suite le site plus plaisant.

      Il y a bien du dynamique tout de même (dont les scripts), et là, j’avais envie d’explorer des technos que je trouve performantes :

      • j’ai utilisé Julia comme langage interprété pour les scripts et pour le Web (Avec le framework Genie)
      • j’ai utilisé Svelte pour un formulaire « dynamique » en JavaScript.
      • j’ai choisi React-Native pour le développement mobile car c’est du multi-plateforme et en JavaScript. Je pensais réutiliser le code javascript du web mais au final c’est tellement différent, qu’un autre langage n’aurait pas changé grand-chose. Du coup, je pense que Flutter aurait été plus performant (Il compile vraiment en langage machine : Java sous Android.)

      Existant

      Mais il existe déjà plein de solutions qui marchent très bien pensez-vous. Je vous ferrai une réponse de normand (bien que je sois breton) « Oui et non ».

      Il existe des sites publics qui recensent certaines catégories :

      • l’alimentaire avec jours-de-marche.fr et mon-producteur.com.
      • Les métiers d’arts avec annuaire-metiersdart.com.
      • Ou encore dans l’habillement comme cocorico.store et madefrance.fr mais ils n’identifient même pas toujours les producteurs.
      • Des offices de tourisme mais chacun a une politique différente et l’on ne s’y retrouve pas facilement.
      • Parfois des sites publics de départements/régions…
      • Des groupes Facebook à la pelle.

      Mais aucun ne propose une carte de localisation des producteurs et aucun n’est généraliste (Alimentaire, art et autres). Pire, ils ne recensent pas tous les producteurs (sans doute car ils demandent de l’argent) et en plus ils ne sont pas toujours à jour. Je soupçonne certains d’être un peu délaissés. Si bien que ce n’est pas si simple de connaitre les producteurs quand on se promène dans une région alors que pourtant la demande est là.

      Aujourd’hui, les petits producteurs locaux peinent à se faire connaître. En fait, une part importante de leur travail est consacrée à cet effort ou ils ne sont pas toujours très bons. Ils mettent beaucoup d’énergie à faire un site web, à faire leur promotion sur les réseaux sociaux, à se vendre auprès de leurs amis et voisins pour le bouche-à-oreille. Mais c’est en grande partie en vain. En fait, ils comptent surtout sur quelques clients fidèles et sur un bouche-à-oreille de connaisseurs/passionnés. Or nous ne sommes pas tous connaisseurs/passionnés mais juste intéressés. Pire, même connaisseurs, quand nous traversons une région, nous ne pouvons pas y connaître les producteurs locaux. Je pense qu’OpenProduct peut aider à développer un tourisme de producteurs.

      Financement

      La question que l’on me pose souvent : mais quel est votre business-plan ? Mais ici, peut-être est-on entre personnes un peu plus sensibilisées à l’open-source et son financement.

      Alors tout d’abord, je n’ai clairement pas un objectif de rentabilité avec ce projet. Ensuite, je ne vois pas comment je pourrais demander de l’argent aux producteurs alors que je n’ai pas de visiteurs (ou si peu aujourd’hui). De toute façon, concrètement, un hébergement web ne coute pas grand-chose (j’ai payé 50 euros pour un an). Par contre évidemment, que si je veux publier mon application sur Android et Apple, il faudra un peu plus de sous. Ensuite il y a un travail énorme à accomplir pour améliorer la base et l’IHM donc évidemment que j’aimerais des financements.

      • Mon objectif premier serait de financer le projet avec des dons de producteurs et consommateurs qui seraient sensibilisés à la cause.
      • Ensuite, j’aimerais, en tant qu’association d’utilité publique (J’estime en quelque sorte être un annuaire universel) réussir à toucher des fonds publics.
      • Enfin, il me faudra sans doute rendre certaines options payantes. Tout dépendra du résultat au bout d’un an environ.

      Vous le comprenez, la variable d’ajustement, ce sont les fonds disponibles étant donné qu’il y a très peu de charge fixe. Le projet n’en est pas dépendant pour survivre.

      D’ailleurs je pense que pour un site web être payant n’est pas vraiment une option pour percer. J’entends par là, que l’essentiel est avant tout d’arriver à générer du trafic et à devenir important. Si de base vous bridez que ce soit côté producteurs ou côté consommateurs vous devenez in-intéressant pour les deux (à moins d’être réservé à une « élite »). C’est un peu ce qui se passe actuellement avec la plupart des existants (jours-de-marche.fr et mon-producteur.com). Pour prendre un autre domaine, c’est ce qui plombe un peu Twitter (il perd 30% des utilisateurs ce qui entraine une baisse de 60% de ses revenus et c’est un cercle vicieux). C’est aussi ce qui fait la force de Facebook ou Google. Ce n’est pas d’être gros qui importe mais d’être très gros pour ça, il n’y a pas 36 solutions. Je suis peut-être un peu ambitieux mais je sais que sans ça, il est évident que le projet ne grossira pas assez pour vivre bien.

      Il doit sans doute miser, plus que sur l’argent, sur la coopération d’une communauté façon Wikipédia/LinuxFR. C’est pourquoi je suis ouvert aux contributions. Cela peut-être du code mais même pour des informaticiens ce n’est pas simple (il faut rentrer dans le code installer… il faut compter des heures) mais aussi et surtout pour compléter la base de donnée. Vous me signalez les producteurs qui n’existe plus ou ceux oubliés. Pour l’instant cela ce fait par mail. Je souhaite aussi développer le Wiki avec des comptes « administrateurs ». J’ai un ersatz d’interface d’administration pour les producteurs…

      Open-Source

      Je suis un archi-convaincu du bien fondé de l’Open-Source et de l’Open-Data en général. C’est pourquoi j’essaye de pousser le concept d’Open-Source le plus loin possible. Tout mon code est sous licence GPL y compris la base de donnée et pour ce qui ne rentre pas dedans (images ou autres) c’est Créative Common Attribution. Cependant je ne me suis pas penché sur la question plus que cela.
      Je pense notamment au logo/marque. Je n’ai pas envie de m’attribuer le concept OpenProduct, mais je n’ai pas envie qu’on en fasse n’importe quoi non plus. Faut-il un système à la Firefox ? En tout cas, en l’état mon logo n’intéresse personne.
      Il y a aussi la question de la version de GPL. Je dirais la dernière v3 même si j’avoue ne pas avoir étudié les différences. Je sais qu’il y a des résistances sur la v2. S’il y en a qui sont partisans, merci de me le dire en commentaires.

      Concrètement

      Sur mon dépot Github (Ouais, ce serait mieux Gitlab), il y a six repository concernant ce projet:

      • openproduct-web : Le projet principal (Il contient la partie web statique et dynamique)
      • openproduct-web-svelte : C’est un sous-projet web destiné à svelte. On y trouve le formulaire svelte.
      • openproduct-app-android : C’est le repository de ma toute première application Android. C’est un simple navigateur web sur la page web d’OpenProduct… Une sorte de marque-page. Elle est obsolète.
      • openproduct-app : C’est une application React-Native destiné à Android (Qui doit pouvoir tourner sous Apple en théorie). Elle est loin d’être parfaite mais c’est vrai que c’est mieux que le web sur smartphone.
      • openproduct-docs : Ce n’est pas du public dans les entreprises/associations normales, mais ce sont toutes les ressources autres. On y trouve:
        • les scripts de récupération de données pour la DB.
        • Les documents administratifs de l’association
        • Les comptes financiers.
        • Les démarches de communications externes.
      • openproduct-db : Il contient la database (mysqldump).

      Parmi les astuces, je ne sais pas si c’est une pratique courante, j’utilise le format plat pour les fichiers de LibreOffice. FODT au lieu d’OST, FODS au lieu d’ODS… Par défaut le format est un tar-gz de fichier XML, autrement dit c’est en quelque sorte du binaire. Or sur Git, il vaut mieux éviter le binaire. Git ne fait pas de diff sur du binaire, et de ce fait chaque modification renvoi tout au lieu de n’ajouter que les différences.

      L’architecture

      Pour celles et ceux que ça amuse, voici quelques détails au sujet de l’architecture technique.

      En fait openproduct-web est un projet en langage Julia du Framework Genie. Pourquoi ? Tout simplement car j’avais envie de tester et que normalement, Julia est un langage très performant (Il est utilisé pour le calcul scientifique en « successeur » de Pascal).

      J’ai dit que le site web est statique. C’est vrai pour l’essentiel: La page d’accueil, la carte… Il est stocké dans openproduct-web/public.

      Mais j’ai un wiki qui est dynamique sur openproduct-web/wiki (Pas sur Git, c’est déjà un repo Git: médiawiki). Et j’ai aussi la page "unsubscribe.php" qui est dans openproduct-web/around/var.www.openproduct.wiki.unsubscribe.php.

      Dans openproduct-web/around est un peu un fourre tout des fichiers qui doivent être mis à un endroit précis mais hors du projet. On trouve ma config NGinX, ma config Wiki (Enfin la version de mon PC de dev, pas celle de prod à cause des mots de passe). Le fichier unsubscribe.php (Il est dynamique et seul mon répertoire wiki est dynamique sur mon PC).

      La partie dynamique pour l’essentiel est en Julia. Elle ne peut pas tourner sur le serveur qui est un hébergement mutualisé ou Julia n’est pas disponible. Elle tourne donc seulement sur mon PC (le PC de dev : https://openproduct.freeboxos.fr/ quand je la lance). Elle est destinée à ceux qui voudraient m’aider à compléter corriger la base de donnée. Elle permet de renseigner des producteurs dans la table openproduct.producer sans avoir à connaitre MySQL (Ni même à utiliser DBeaver).

      La communication

      Ce n’est pas vraiment mon fort mais c’est assez essentiel en ce moment. Maintenant que c’est en ligne il faut absolument que je crée une dynamique pour qu’il prenne.

      Ma première étape a consisté à prévenir les producteurs par mail, du moins ceux dont j’ai le mail. Évidemment, j’en profite pour leur demander de me faire un peu de promotion. J’ai donc écrit un script qui se connecte à ma boite Gmail (ouuuuuh pas bien) et qui envoie les mails à la chaine. Le problème, c’est que mon compte de l’association est en fait un compte standard limité en nombre de mail envoyé. J’ai donc saturé les envois, je suis passé avec ma boite perso. Par paquets de 200 à 300, il m’a fallu cinq jours pour envoyer les 3 584 mails dont je dispose sur les 5 050 producteurs. Et j’ai reçu 720 mails d’erreurs… j’ai donc écrit un script pour lire ces mails et les noter dans ma base. J’ai aussi reçu des retours pour me corriger des erreurs (adresse, téléphone, cession d’activité…) et quelques encouragements. J’ai reçu un seul retour négatif car il estimait que son art ne devait pas être mêlé a de vulgaires produits.

      Parmi les retours, j’ai eu la remarque intéressante qu’il me manquait un flyer. Je me suis donc dépêché de faire un flyer. Je ne suis vraiment pas expert dans l’exercice.

      Ensuite mon moyen de promotion est Facebook. J’ai créé une page et je me suis inscrit à tous les groupes de producteurs. Et j’y publie partout une annonce. J’ai quelques retours, mais la plupart de mes annonces sont encore en attente de modération.

      Il faudrait la diffuser sur d’autres réseaux sociaux. Mais je n’ai pas envie d’installer les applications privatrices et je constate qu’à part Facebook, il n’existe pas beaucoup de réseaux ou l’on peut s’inscrire sans installer une application sur smartphone…

      Maintenant, il faudrait aussi passer à l’étape supérieure : la presse. On va dire que LinuxFr constitue mon premier pas. Pour le reste on verra, ça peut encore attendre.

      J’ai une autre étape à faire : solliciter les services publics pour des subventions. J’ai légèrement commencé mais tant que je n’avais rien en ligne j’étais peu crédible. Depuis j’ai simplement envoyé au département des Côtes d’Armor qui est mon département (peut-être pas le plus riche ;) ).

      Anecdotes

      Question piège : que représente mon logo ? Logo OpenProduct

      Réponse: une hutte de Hobbit avec la porte en bois et la Hutte en terre. La lumière verte qui en sort, est la couleur exacte du logo OpenSource, et si vous regardez, elle forme un O ouvert comme dans le Logo OpenSource (Pour cette raison même).
      Cette cabane symbolise, selon moi, le lieu de fabrication d’objets mystérieux. Et on entre-ouvre la porte pour laisser y échapper les secrets ou pour que le client y entre.

      Vous ne l’aviez pas deviné ? C’est normal, c’est du made in moi. Mon frère est susceptible de le refaire en 3D.

      Conclusion

      Je pense me concentrer plus sur le non-alimentaire car le domaine alimentaire est déjà pas mal investi par d’autres. Pour le reste, il y a un grand besoin. J’aimerais avoir plus de producteurs « petit-industriels » ou du moins d’objets. Et mettre à part les producteurs d’arts (d’objets d’arts : ferronnerie, verrier, potier, vannerie…).

      Il reste beaucoup de travail à faire. On verra si la graine prend. ;)

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Lettre d'information XMPP de novembre 2023

      N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est réalisée et publiée conjointement sur les sites XMPP.org, LinuxFr.org et JabberFR.org selon une procédure définie.

      Bienvenue dans la lettre d’information XMPP, nous sommes ravis de vous retrouver ici ! Ce numéro couvre le mois de novembre 2023 and will be the last publication for 2023.

      Un grand merci à toutes les personnes qui nous lisent et à toutes les contributrices et tous les contributeurs !

      Comme la présente lettre d’information, de nombreux projets et leurs efforts au sein de la communauté XMPP sont le résultat du travail bénévole de personnes. Si vous êtes satisfait des services et des logiciels que vous utilisez, pensez à dire merci ou à aider ces projets ! Vous souhaitez soutenir l’équipe de la lettre d’information ? Lisez la suite en bas de page.

        Sommaire

        Annonces XSF

        Nouvelles extensions XSF Board and Council

        Les membres de la XSF ont voté pour un nouveau Conseil d’Administration (« Board ») et un nouveau Comité Technique (« Council  ») pour la XSF. Félicitations aux membres du nouveau Comité d’Administration Nicola Fabiano, Edward Maurer, Ralph Meijer, Peter Saint-Andre et Matthew Wild. Et félicitations aux membres du nouveau Comité Technique: Travis Burtrum, Dan Caseley, Daniel Gultsch, Stephen Paul Weber et Marvin Wissfeld.
        Merci d’accueillir les membres dans leurs nouveaux et anciens rôle !

        XMPP Summit 26 & FOSDEM 2024

        La XSF prépare le Sommet XMPP 26 («XMPP Summit»), qui doit avoir lieu les 1ᵉʳ et 2 février 2024 à Bruxelles (Belgique, Europe).
        Dans la foulée du Sommet, la XSF se prépare aussi à être présente au FOSDEM 2024, qui aura lieu les 3 & 4 février 2024.
        Vous trouverez tous les détails sur le Wiki. Merci de vous inscrire maintenant si vous prévoyez de participer, ce qui facilitera l’organisation. L’évènement est bien entendu ouvert à toute personne intéressée à y participer. Répandez la nouvelle autour de vous.

        XMPP et le Google Summer of Code 2023

        La XSF a été à nouveau une organisation hôte du GSoC en 2023, et gère avec succès 2 entrées pour les Contributeurs XMPP. Retrouvez les projets « Support de Windows par Dino » and « Implémenter les discussions de groupes dans Moxxy ».

        Nous prévoyons de participer l’année prochaine. Le temps de prendre contact avec la communauté XMPP, c’est maintenant. :-)
        XSF et le Google Summer of Code 2023

        Hébergement fiscal de projets par la XSF

        La XSF propose un hébergement fiscal pour les projets XMPP. Veuillez postuler via Open Collective. Pour plus d’informations, consultez l'annonce blog. Projets actuellement hébergés :

        Évènements XMPP

        • Rencontres XMPP à Berlin (remote) : réunion mensuelle des passionnés de XMPP à Berlin, tous les deuxièmes mercredis du mois.

        • XMPP Italian happy hour: rencontre XMPP italienne en ligne, débute le 16 mai et ensuite tous les mardis du mois à 19:00 (évènement en ligne, avec mode de réunion web et diffusion en direct).

        Talks

        • XMPP Italian Happy Hour Podcast: Plongez dans le monde de XMPP avec le balado Italian Happy Hour, un évènement mensuel dérivé des sessions vidéos enregistrées. Chaque épisode est dédié au protocole XMPP, propose des aperçus et discussions par des enthousiastes et des professionnels. Que vous soyez en train de commuter, au gym, ou simplement que vous ayez envie d’écouter la conversation, ce balado fournit l’essence des rencontres XMPP Italie directement dans vos oreilles. Syntonisez-vous au balado XMPP Italian Happy Hour ou abonnez-vous au flux RSS pour ne jamais rater un épisode. Voici le lien vers le balado et le lien vers le flux RSS pour vous abonner. De plus, rejoignez la discussion et tenez-vous à jour des changements en suivant la page du balado sur le Fediverse: @xmpphappyhour@open.audio. Le balado est en italien, mais il peut y avoir des contributions en anglais.

        Articles

        • Automatiser l’automatisable: Durant l’année passée, l’équipe derrière le projet Fournisseurs XMPP a travaillé à l’automatisation du processus d’agglomération de données sur les fournisseurs XMPP. Automatiser ce processus réduit significativement le travail manuel (par exemple, vérifier les sites à la main, vérifier les informations, lister les sources, etc.) et aide à soutenir les efforts de l’équipe. L’automatisation permet aussi de garder le projet à jour - tous les jours ! Une suite d’outils a été développée depuis, donnant la possibilité d’effectuer des requêtes sur les propriétés via XMPP et à travers le web. Tous ces outils fonctionnent ensemble en un flot GitLab, qui tourne toutes les nuits pour garder les données à jour.

        • Maintenance prévue + Joyeux 10ᵉ anniversaire, yax.im! by Georg Lukas, qui discute des dix dernières années d’évolution de yaxim, et de la suite.

        • Mise à jour automatique de schéma dans ejabberd par Jérôme Sautret : auparavant, si vous utilisiez ejabberd avec une base de données relationnelle externe, vous auriez pu avoir à appliquer des changements de schéma à la main qui viennent avec les nouvelles fonctionnalités pendant les mises à jour vers une nouvelle version de ejabbered. ejabberd peut maintenant gérer ces mises à jour de schéma automatiquement. Cet article couvre cette fonctionnalité.

        • Le logiciel, c’est politique par SamWhited: adapté des remarques de clôture d’une présentation XMPP au FOSSY, cet article discute pourquoi SamWhited pense qu’utiliser un standard universel de protocole de discussion est le bon choix.

        • Le Pouvoir du Codage Vert: Erlang et Elixir mènent la chage par Simon El Nahas: À l'ère de la révolution verte, les langages Erlang et Elixir aident les industries à réduire leur consommation serveur et à minimiser leur impact environnemental. Voici plusieurs exemples industriels qui le montrent.

        • La Communauté Italienne XMPP-IT - ils ont maintenant un site web: www.xmpp-it.net, un salon: xmpp-it@conference.xmpp-it.net, ils ont aussi un Git pour partager, créer et développer des logiciels, configurations et documents sur le protocole XMPP: git.xmpp-it.net, et ils ont finalement créé un wiki pour la documentation en Italien: wiki.xmpp-it.net. Il y a un premier guide traduit sur Snikket.

        Nouvelles des logiciels

        Clients et Applications

        • Gajim 1.8.3 et 1.8.4 sont sortis. Ces versions viennent avec des améliorations sur la fenêtre de profil, une sécurité intégrée pour les comptes anonymes, des améliorations sur l’utilisabilité, et plusieurs correctifs.
        • Psi+ 1.5.1653 Psi est sorti.
        • Libervia a reçu un financement de NLnet/NGI0, incluant la transformation de listes de diffusion de courriels en forums basés sur pubsub. Parmi les améliorations pour Libervia, certaines concernent l’UI/UX, le chiffrage bout-à-bout, une gestion avancée des pièces jointes. Plus de détails sur le projet sont disponibles ici.
        • monocles chat 1.7.7.5 est sorti et a reçu plusieurs correctifs et améliorations comme la ré-implémentation des stickers ou la vérification DNSSEC et DANE montrée dans l’interface. On voit aussi une option pour renforcer DANE et des améliorations supplémentaires dans la Beta 1.7.8.

        Serveurs

        Bibliothèques et outils

        Extensions et spécifications

        La XMPP Standards Foundation développe des extensions XMPP dans sa série de XEPs en plus des RFCs XMPP.

        Les développeurs et développeuses, et autres experts ou expertes en normes du monde entier collaborent à ces extensions, en développant de nouvelles spécifications pour les pratiques émergentes et en affinant les façons de faire existantes. Proposées par n’importe qui, les plus réussies finissent finales ou actives – selon leur type – tandis que les autres sont soigneusement archivées en tant qu’ajournées. Ce cycle de vie est décrit dans la XEP-0001, qui contient les définitions formelles et canoniques des types, états et processus. Pour en savoir plus sur le processus de normalisation. La communication autour des normes et des extensions se fait sur la liste de diffusion des normes (archive en ligne).

        Extensions proposées

        Le processus de développement d’une XEP commence par la rédaction d’une idée et sa soumission à l'Éditeur XMPP. Dans les deux semaines qui suivent, le Conseil décide d’accepter ou non cette proposition en tant que XEP expérimentale.

        • Pas de XEP proposée ce mois-ci.

        Nouvelles extensions

        • Pas de nouvelle XEP ce mois-ci.

        Extensions ajournées

        Si une XEP expérimentale n’est pas mise à jour pendant plus de douze mois, elle sera déplacée d’expérimentale à ajournée. Si une nouvelle mise à jour est effectuée, la XEP redeviendra expérimentale.

        • Aucune XEP ajournée ce mois-ci.

        Extensions mises à jour

        • Aucune XEP mise à jour ce mois-ci.

        Dernier appel

        Les derniers appels sont lancés une fois que tout le monde semble satisfait de l’état actuel d’une XEP. Une fois que le Conseil a décidé que la XEP semblait prête, l’Éditeur XMPP lance un dernier appel pour recueillir des commentaires. Les commentaires recueillis lors du dernier appel peuvent permettre d’améliorer la XEP avant de la renvoyer au Conseil pour qu’il la passe à l’état stable.

        • Code de Conduite de la Communauté

          • Ce document décrit le Code de Conduite de la Fondation pour le Standard XMPP (XSF). Ce Dernier Appel commence aujourd’hui et finira à la fin de la journée du 2023-11-30.

        Extensions stables

        • Aucune XEP n’est passée à stable ce mois-ci.

        Extensions dépréciées

        • Aucune XEP déclarée dépréciée ce mois-ci.

        Spread the news

        N’hésitez pas à partager les nouvelles sur d’autres réseaux :

        S’abonner à la lettre d’information mensuelle (en anglais)

        Consultez également notre Flux RSS !

        Vous recherchez des offres d’emploi ou souhaitez engager une consultante ou un consultant pour votre projet XMPP ? Visitez notre XMPP job board.

        Contributions et traductions de la lettre d’information

        Il s’agit d’un effort communautaire, et nous aimerions remercier les traducteurs et traductrices pour leurs contributions. Les volontaires sont les bienvenus ! Les traductions de la lettre d’information XMPP seront publiées ici (avec un certain retard) :

        • anglais (original) : xmpp.org
          • contributeurs généraux : Adrien Bourmault (neox), Alexander "PapaTutuWawa", Arne, cal0pteryx, emus, Federico, Jonas Stein, Kris "poVoq", Licaon_Kter, Ludovic Bocquet, Mario Sabatino, melvo, MSavoritias (fae,ve), nicola, Simone Canaletti, XSF iTeam
        • français : jabberfr.org et linuxfr.org
          • traduction : Adrien Bourmault (neox), alkino, anubis, Arkem, Benoît Sibaud, mathieui, nyco, Pierre Jarillon, Ppjet6, Ysabeau
        • allemand : xmpp.org et anoxinon.de
          • traduction : Jeybe, wh0nix
        • italien : notes.nicfab.eu
          • traduction : nicola
        • espagnol : xmpp.org
          • traduction : daimonduff, TheCoffeMaker

        Aidez-nous à créer la lettre d’information

        Cette lettre d’information XMPP est produite collaborativement par la communauté XMPP. La lettre d’information de chaque mois est rédigé dans ce simple pad. À la fin de chaque mois, le contenu du pad est fusionné dans le dépôt Github de la XSF. Nous sommes toujours heureux d’accueillir des contributeurs et contributrices. N’hésitez pas à vous joindre à la discussion dans notre salon public Comm-Team (MUC) et ainsi nous aider à soutenir cet effort communautaire. Vous avez un projet et vous voulez en parler ? Pensez à partager vos nouvelles ou vos événements ici, et à les promouvoir auprès d’un large public.

        Tâches que nous réalisons régulièrement :

        • agglomération des nouvelles du monde XMPP
        • résumés courts sur les nouvelles et les évènements
        • résumé de la communication mensuelle sur les extensions (XEPs)
        • revue du brouillon de la lettre d’information
        • préparation des images pour les médias
        • traductions
        • communication sur les comptes de médias

        Licence

        Cette lettre d’information est publiée sous la licence CC BY-SA.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        ❌
        ❌