Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierLinuxFr.org : les dépêches

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

      ❌
      ❌