Vue lecture

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

Unvanquished 0.55, enfin là !

Après une longue attente la version 0.55 du jeu Unvanquished a été publiée le 20 octobre 2024. Deux mises à jour mineures se sont succédées le 3 novembre et le 15 décembre pour peaufiner cette version, juste à temps pour être déposée sous le sapin de Noël !

Unvanquished est un jeu vidéo libre et gratuit mêlant stratégie en temps réel et actions à la première personne dans un univers futuristique où deux factions (humains, aliens) combattent pour leur survie.

S’inscrivant dans la continuité de Tremulous (révélé en 2006) et basé sur ce dernier, Unvanquished développe cette expérience de jeu nerveuse et exigeante depuis 2013, en améliorant continuellement le moteur et explorant des variantes et ajustements de jouabilité.

Un Tyrant Laisse-moi goûter à cette version !

Sommaire

Cette version avait été promise dans le dernier article Des nouvelles de Unvanquished, et 10 mois après la version 0.54, voici la version 0.55.

Pendant cette année 2024, le jeu a fait l’objet d’un développement soutenu et vu l’arrivée de nouveaux contributeurs.

Gameplay

  • La portée du « rocket pod » a été réduite: 2000qu → 1300qu (62m → 40m).
  • Il n’est plus possible de désévoluer vers la même classe, ce qui permettait de recharger ses projectiles sans attendre.

Bots

  • Les bots aliens savent désormais éteindre les bases en feu.
  • Ils peuvent aussi utiliser le granger avancé pour atteindre des plate-formes élevées et y construire.
  • Les classes sachant marcher sur les murs le font de manière plus fiable, et le saut de mur du maraudeur est plus précis lorsqu’il escalade des murs.

D’autres améliorations sont plus subtiles, les bots peuvent naviguer dans les cartes de façon plus efficace depuis que la taille des tuiles du maillage de navigation est configurable. Les mappers (ceux qui créent ou modifient des cartes) peuvent aussi configurer d’autres aspects de la navigation.

Un déséquilibre qui rendait les bots aliens moins bons que les bots humains a été retravaillé.

La navigation dans la carte perseus a été améliorée. C’est un des patchs de la mise à jour mineure 0.55.1, c’était déjà prêt pour la 0.55 mais avait été oublié (oups !).

La 0.55.2 a donné aux bots la capacité de voler et la capacité de danser autour des ravins sans tomber.

Interface utilisateur

Il est désormais possible de se déplacer et d’utiliser certaines touches d’action alors que certains menus circulaires sont ouverts : évolution, construction, balises (beacons). Cela permet d’ouvrir le menu de construction en tant que granger avancé sans tomber. On peut aussi évoluer tout en courant ou en sautant, etc.

Les nouveaux menus Les nouveaux menus avec les options de réticules.

Traductions

La version 0.55 est la première version majeure d’Unvanquished à distribuer de nouveau des traductions ! Nous avions déjà distribué quelques traductions avec la version de correction 0.54.1, elles étaient en quelques sorte en prévisualisation. Cette version apporte les traductions pour le Français, l’Allemand, l’Italien, l’Espagnol, le Finlandais, deux variantes de Portugais, et trois variantes de Chinois.

Dans les premiers jours d’Unvanquished nous avions des traductions, mais il y a longtemps nous avons changé la technologie utilisée pour implémenter l’interface utilisateur et la prise en charge des traductions a dû être réimplémentée. Les voici de retour et nous sommes heureux de vous les distribuer de nouveau. Pour contribuer plus de traductions et les affiner, le mieux est de le faire sur Weblate.

Nouveaux visuels

De nouveaux modèles sont là : la « painsaw » d’Alex Tikkoiev et le Chaingun d’extreazz. Ils ont été intégrés au jeu par Ishq. Cela semble simple à faire mais nous n’avons pas de modeleur ni d’animateur actif et cela nous freine beaucoup, vous pouvez nous rejoindre.

Le chaingun Le nouveau chaingun d’extreazz.

La painsaw produit désormais des étincelles quand elle impacte des surfaces dures, agissant comme le Grand Communicateur de vos désirs de disperser des tripes extra-terrestres.

La painsaw La nouvelle painsaw d’Alex Tikkoiev.

Il y a dix ans nous avons reçu une fonctionnalité bien sympathique appelée particules douces (soft particles). Cela empêche certains effets comme le brouillard ou les nuages d’acides d’être affichés de manière disgracieuse lorsqu’ils touchent des murs. Initialement l’effet n’était configuré que pour une poignée de shaders. Rapidement des programmeurs paresseux se sont dits : « configurer les shaders est ennuyeux, et si nous activions la fonctionnalité pour toutes les particules ? ». Malheureusement, cela rend certaines particules invisibles, spécialement les effets d’impacts qui sont très proches de murs ou de sols. Apparemment personne n’a remarqué ça pendant 9 ans, jusqu’à ce que nous retournions à la configuration manuelle de shaders à cause de changements architecturaux liés à autosprite2. Après une revue méticuleuse de tous les systèmes de particules du jeu, nous avons corrigé, retiré ou amélioré certains effets graphiques. Par exemple le souffle du canon lucifer produit désormais une onde de choc, causant une distorsion visuelle. Un tel effet était déjà présent dans les données, mais il ne fonctionnait pas à cause d’un problème de tri des shaders. Le tir secondaire produit aussi un flash violacé à l’impact, effet qui était souvent invisible à cause des particules douces automatiques.

Un humain en cours de soin sur la médistation Le nouvel effet de soin de la médistation.

Reaper a repensé l’effet de soin de la medistation et l’a rendue plus transparente, pour que les joueurs en cours de soin puissent voir à travers.

Sweet a ajouté un nouvel effet visuel au champ de force de la carte plat23. Cela utilise l’effet de mirage de chaleur (heat haze) qui était initialement conçu pour les armes et les effets de feu, mais il se trouve que ça peut également produire des effets très sympathiques dans les cartes. Nous remercions Masmblr pour la manière dont il nous fait avancer en démontrant dans ses propres cartes communautaires comment il est possible d’exploiter de façon créative et nouvelle des fonctionnalités que nous proposons déjà !

Fichier d’entité

Le moteur prend désormais en charge les fichiers d’entité. Cela est particulièrement utile pour les cartes (niveaux de jeu) sans source (il y en a des centaines !). Un fichier d’entité permet certaines personnalisations de comment certaines entités fonctionnent (portes, ascenseurs, téléporteurs…). Il est possible d’extraire une description d’entités avec q3map2 et le fichier extrait peut être édité avec un éditeur de texte et lu par le moteur lorsqu’il charge une carte. Le fichier d’entité peut aussi être utilisé pour modifier comment la lumière d’une carte sera appliquée (il est possible d’y renseigner des variables qui configurent le moteur de rendu pour cette carte).

Le futur est lumineux

Comparaison de rendu de lumière Une vidéo démontrant la compatibilité des lumières de diverses cartes historiques (voir la vidéo complète).

Un effort aux long cours est fait pour que le moteur affiche de meilleures lumières en jeu. Les investigations ont commencé à livrer des résultats significatifs en 2020 avec l’affinage du procédé de compilation des lumières. Cet effort est multi-facettes et touche à de multiples aspects de la chaîne de production et de rendu. Ces dernières années, Illwieckz s’est assuré que différents types d’éclairage soient pris en charge. L’éclairage par vertex (vertex lighting) a été ajouté en plus de l’éclairage par grille (grid lighting) et de l’éclairage par texture (lightmap). Ainsi les cartes qui mélangent éclairage par vertex et éclairage par texture sont désormais correctement affichées. Illwieckz a aussi débuggué les styles de lumières, une sorte de lumière dynamique pré-calculée qui fusionne plusieurs textures de lumière (lightmap) au moment du rendu.

Comparaison de suréclairage Comparaison entre l'ancien suréclairage (à gauche) et le nouveau suréclairage (à droite). Comparer avec un curseur.

Après cela Illwieckz a réimplémenté le mécanisme de suréclairage (overbright) pour éviter la troncature des lumières (light clamping). Il se trouve que le moteur de rendu de Quake 3 souffrait d’une limitation qui atténuait les lumières autant qu’il les éclaircissait… Le nouveau code non-buggé est désormais activé par défaut. Cela a suscité des débats puisque comme le moteur id Tech 3 avait un suréclairage buggé depuis plus de 20 ans, utiliser un moteur de rendu non-buggé peut révéler des bugs que les créateurs de niveaux n’ont jamais vu avant, et il était même possible d’introduire des bugs dans certains logiciels de production sans que les gens ne s’en rendent compte ! Certaines personnes peuvent argumenter que l’affichage buggé est la façon dont le créateur du niveau s’attend à ce que son niveau soit vu… Cette histoire va si loin que cela mériterait un article dédié !

La prochaine étape sur ce chemin vers un meilleur éclairage sera de faire de la colorimétrie correctement et de faire de la fusion linéaire de lumière (quelque chose qu’id Tech 3 n’a jamais fait), mais cette tâche est pour le futur.

Corrections du moteur de rendu

Un battlesuit se regardant dans des miroirs Une vidéo montrant la récursion de miroirs et de portails et leur fusion (voir la vidéo complète).

  • Sprites : Les surfaces utilisant le mot clé de shader autosprite2 sont correctement affichées, c’est parfois utilisé pour afficher des effets de symétrie axiale, par exemple pour une flamme de bougie. Ce travail a été réalisé par Slipher.
  • Portails et miroirs : Reaper a terminé l’implémentation de la récursion de portail et de miroir, a implémenté la fusion de portails et la fusion alphaGen (une technique qui permet d’obscurcir un portail selon la distance à celui-ci), et a rendu possible d’avoir des portails mobiles. Il a corrigé la rotation de portail ainsi que des bugs de portails liés aux lumières, et s’est assuré que du creep extra-terrestre de taille 10 millions de fois la taille de l’univers observable n’apparaissent pas dans les portails…
  • Vidéo : Nous pouvons à nouveau jouer des vidéos sur les surfaces. Avec le temps le code s’était gâté (rotten code), était devenu cassé et avait même été enlevé tandis qu’il était cassé. Il fut ressuscité et a fait l’objet d’une profonde réécriture par Slipher, et la fonctionnalité fonctionne de nouveau — et même mieux qu’avant (avec moins de limites arbitraires) ! Cette nouvelle implémentation était déjà visible dans la version 0.54.1, la voici désormais dans une version majeure. Le seul format pris en charge est l’antique format RoQ utilisé par Quake 3 qui, par mesure de compatibilité avec les données de jeu existantes, est le codec que nous devons prendre en charge avant tout autre codec. Nous ne fermons pas la porte au fait de prendre en charge d’autres codecs, mais pour cela il faudrait que la fonctionnalité soit utilisée plus souvent pour justifier cet effort supplémentaire.
  • Brouillard : Reaper a corrigé l’effet de brouillard, qui était cassé dans la version 0.45. Oups !
  • Lumières : Les lumières dynamiques sont désormais moins pixelisées, quand bien même ce problème n’est pas encore complètement corrigé.
  • PBR : La prise en charge de textures prétendues « basées sur la physique » est désormais dans un état viable grâce à Ishq (plus d’artefacts noirs). C’est déjà utilisé avec un nouveau modèle de chaingun. Pour le rendre bon, nous avons besoin de le faire fonctionner avec les réflexions spéculaires (réflexions statiques).

Un dretch regardant Big Buck Bunny Une vidéo montrant la lecture de vidéo sur les surfaces du jeu (voir la vidéo complète).

En corrigeant le shader autosprite2, la fusion de portails et la lecture de vidéos, nous avons corrigé 3 régressions du moteur original de Quake 3 et qui étaient liées à la prise en charge de format de fichiers anciens et de techniques tout aussi anciennes. Parce que notre moteur de rendu n’est plus celui de Quake 3, corriger certaines de ces régressions requiert parfois d’écrire du code neuf plutôt que de corriger un code existant, et c’est exactement ce qui s’est produit pour les portails.

Performance améliorées

Un granger à Noël Unvanquished 0.55.2 a été publiée pour Noël !

Le moteur et le jeu sont plus rapides que jamais !

  • Simplification du ciel : Reaper a purifié par le feu le code de rendu du ciel qui était archaïque et… étrange. Ce code pouvait générer plus de 1000 triangles par trame rien que pour dessiner le ciel. Une skybox n’a pas besoin d’une géométrie aussi fine, elle est simplement modélisée comme l’intérieur d’un cube. En plus le code faisait des allers-retours mémoire entre la mémoire principale et la mémoire graphique… 🤦‍♂️️ Nous dessinons donc le ciel maintenant avec seulement 12 triangles. Inutile de dire que les performances sont significativement améliorées, et ça aurait toujours dû être comme ça.
  • Culling : Il s’agit du procédé qui élague les surfaces non-visibles pour éviter de les dessiner. Illwieckz a optimisé l’implémentation générique pour processeur central (CPU), Slipher a ciselé à la main un code SSE pour les processeurs x86, et Reaper a permis d’utiliser la carte graphique (GPU) quand le pilote et le matériel sont compatibles.
  • Réduction des délais IPC par du traitement par lots et de la mise en cache : Ces travaux accélèrent des choses comme les particules, les marques d’impact, et les ombres. Illwieckz a réduit le temps d’attente pour ces communications interprocessus en ajoutant des alternatives à nos interfaces de programmation (API) qui fonctionnent par lot. L’IPC est comme un service postal qui transporte les messages entre le processus du jeu Unvanquished et le moteur Dæmon. Pour un facteur, l’important n’est pas le nombre de pages que vous écrivez mais le nombre d’enveloppes à livrer. Vous pouvez donc alléger sa charge de travail en mettant toutes vos lettres dans une seule grande enveloppe. Pour un cas d’utilisation (déjà livrée dans la version 0.54.1), Slipher a implémenté une mise en cache côté code de jeu. Pour filer la métaphore, il n’est pas nécessaire de ré-envoyer le même courrier si le contenu est déjà connu. Sur du matériel actuel, ces optimisations peuvent augmenter le taux de trame (framerate) de plusieurs centaines de FPS quand il y a de nombreuses particules et autres choses de ce genre à l’écran (spam de grenade incendiaires, par exemple !).
  • Code de vertex flottant plus rapide : L’implémentation de vertex plein-flottant écrite par Slipher pour étendre la compatibilité à du matériel plus ancien ou de plus basse gamme qui ne prennent pas en charge les demi-flottants a aussi doublé le taux de rafraïchissement sur du matériel qui fonctionnait déjà ! La réécriture a aussi apporté de menues optimisations dans le code de modèles.
  • Placage de relief : Reaper a corrigé un bug dans le code des cartes de relief (relief mapping), ce qui a débloqué quelques centaines de FPS sur des cartes graphiques de génération actuelle.
  • Usage mémoire des images : Illwieckz a implémenté le mécanisme fitScreen pour les textures d’interfaces utilisateur : c’est une alternative à l’antique implémentation noPicMip de Quake 3 : noPicMip instruisait le moteur de ne jamais réduire la taille d’une image, fitScreen s’assure qu’elle soit réduite d’une façon qu’elle ne devienne jamais plus large que l’écran. Par exemple une capture d’écran d’une carte (niveau) utilisée dans la liste des cartes et au chargement d’une carte ne sera plus jamais chargée en pleine résolution dans la mémoire graphique si elle doit être affichée sur un écran 640×480 (pour donner un exemple extrême)… Combiné avec le mécanisme r_maxImageDimension que nous avons ajouté en version 0.52 pour les textures qui ne sont pas utilisées pour les interfaces utilisateurs comme alternative à r_picmip, ce nouveau mécanisme donne au jeu une empreinte mémoire en VRAM très très faible quand on utilise un écran avec une résolution toute petite.
  • Plus de pré-calcul : De nombreuses décisions étaient préalablement prises à chaque trame en rendant telle ou telle surface, Illwieckz s’est assuré que ces décisions soient désormais prises une fois pour toute lorsque le shader est parsé. Ce que nous appelons « shader » ici est un format de définition de matériaux utilisé par id Tech 3 et ses dérivés, ainsi que de nombreux outils d’édition de cartes. Ne pas confondre avec un « shader GLSL » qui est un programme exécuté sur la carte graphique.
  • SSAO : Le shader GLSL SSAO (Screen Space Ambient Occlusion) a été rendu un peu plus rapide par Reaper.

Le moteur et le jeu ont été profilés intensivement par Illwieckz en utilisant Orbit. Cet effort a permis d’identifier des goulots d’étranglement (bottleneck) et du code non-optimal. Au final cela nous a aidé à implémenter de nombreuses optimisations à de nombreux endroits dans le code.

Le chargement de carte a aussi été amélioré de plusieurs façons :

  • Le moteur ne calcule plus la somme de contrôle des images CRN au chargement.
  • Le moteur ne compile plus certains shaders GLSL qui sont détectés comme inutilisés.
  • De la même façon nous avons réduit le nombre de permutations de shader GLSL à compiler.
  • Les joueurs qui aiment jouer seul apprécieront notre génération « multithread » de maillage de navigation de bot (bot navigation mesh), grâce à Ishq et Slipher. Cela fait partie de la phase de chargement lorsque vous jouez une carte pour la première fois dans un jeu local. Cette génération n’utilisait avant qu’un seul fil d’exécution (thread), désormais toute la puissante de votre processeur est exploitée en mettant tous les cœurs à contribution. Les hébergeurs de serveurs peuvent également en profiter et peuvent configurer cette fonctionnalité avec la variable g_bot_navgenMaxThreads (utiliser moins de fils utilise moins de mémoire, ce qui peut être préféré sur certains serveurs).

Il y a aussi tout un ensemble de choses qui n’ont pas de lien avec le moteur de rendu qui rendent le jeu plus rapide :

  • Le préréglage « le plus bas » (lowest) pour les appareils de très bas de gamme a été optimisé encore plus.
  • Nous distribuons des modèles optionnels en faible qualité – pour le moment seulement pour les constructions, avec la seule différence que ces modèles ont moins d’articulations. Cela permet de traiter l’animation de ces modèles sur des GPUs plus bas de gamme (au lieu de basculer sur le code CPUs quand le GPU est trop bas de gamme).
  • Il a été découvert que certaines variables de configuration (cvar) étaient utilisées par le code de jeu pour envoyer des informations à l’interface du code du jeu dans le but de les afficher à l’écran. Cela signifie que le jeu s’envoyait une lettre à lui-même à travers le moteur à chaque trame… En fait cela demandait même deux lettres : une pour envoyer la donnée au moteur, une pour la récupérer depuis le moteur, tout ça pour une donnée déjà connue ! Cette horreur a été atomisée avec un préjudice extrême.
  • L’accès à une cvar de jeu par son nom depuis le jeu utilise désormais un cache local, réduisant encore le nombre de messages que le jeu et le moteur doivent échanger, accélérant de beaucoup l’interface utilisateur.

Ceux qui aiment faire tourner des benchmarks seront heureux d’apprendre que le taux de trame de la fonctionnalité timedemo n’est plus plafonné à 999 fps.

De plus, l’interface Curses peut désormais afficher les FPS.

Bien entendu que ça fait tourner Unvanquished !

Toujours du côté du moteur de rendu, l’exigence minimale est désormais OpenGL 2.1 sans extension spéciale. Cela signifie que le matériel le plus limité qui puisse faire tourner Unvanquished inclue les ATI R300, les Intel GMA 3 et 4 (sous Linux) et les Nvidia NV40. Parfois même un OpenGL 2.1 incomplet pourrait suffire !

Votre carte graphique est prise en charge. Si cela ne fonctionne pas alors qu’elle est censée prendre en charge OpenGL 2.1 (ou plus), c’est très probablement un bug de pilote.

Par exemple même le VC4 du Raspberry Pi 3B+ peut soutenir 60 fps avec la préconfiguration la plus basse (lowest) et une résolution faible. Cependant le pilote a encore besoin d’être amélioré pour être compatible avec tous les niveaux jouables.

La carte plat23 Un Raspberry Pi 3B+ dessinant la carte plat23 à 60 fps avec le préréglage « le plus bas »…

Jouer à Unvanquished sur un RPI3 n’est vraiment pas recommandé (la mémoire vive disponible sera aussi très limitante), mais si un RPI3 arrive à tenir le rang, c’est que le jeu tourne sur vraiment n’importe quoi, y compris sur un topinambour (parce que même une patate ça serait du luxe 🤭️).

Voici quelques optimisations qui ont été faites pour étendre la compatibilité du moteur :

  • L’extension GL_ARB_half_float_vertex n’est plus requise. Cela s’ajoute au fait que l’extension GL_ARB_framebuffer_object n’est plus non-plus requise depuis la version 0.54 pour être compatible avec plus de matériel. La réécriture faite par Slipher pour prendre en charge à la fois les vertex demi-flottants ou les vertex plein-flottants a même amélioré les performances du moteur (code plus concis, code plus performant, et qui permet plus de chose… tout ça à la fois) !
  • Les textures 3D ne sont plus requises. C’est quelque chose qui est obligatoire en OpenGL 2.1, mais le moteur peut faire sans lorsque l’implémentation est incomplète. De telles implémentations incomplètes peuvent être trouvées avec certaines puces graphiques embarquées conçues pour OpenGL ES, et Mesa se permet de fournir « autant qu’il peut » d’OpenGL pour faire fonctionner les compositeur de bureau. Le moteur Dæmon sait désormais se satisfaire lui-aussi d’une telle implémentation incomplète.
  • Une collection de codes de détection a été implémentée pour identifier des pilotes buggés ou lent, ainsi que des matériels lents. Quand c’est possible, un code moins buggé ou plus rapide est activé lors de l’exécution. Par exemple lors de ce cycle de développement nous avons mis le pied dans ce que les développeurs Intel caractérisent comme un défaut matériel de l’architecture Iris (l’actuelle…), et ont suggéré un contournement qui limite les défauts visuels la plupart du temps. Il y a quelques années nous avions identifié que le dernier pilote Nvidia pour toute une génération de carte donnée ment sur la présence d’une extension, et plante si on tente de s’en servir, et ne sera jamais mis à jour… donc depuis un moment déjà on le détecte pour corriger ses prétentions. Il y a aussi une génération de vieilles cartes ATI qui sont plus rapides en flottants qu’en demi-flottant (la prise en charge annoncée par le pilote est très probablement une émulation pour permettre de faire fonctionner d’autres logiciels qui n’ont pas d’implémentation alternative), donc on détecte et on utilise le code le plus adapté à cette architecture. Il y a d’autres types de contournements mais ces trois-là sont représentatifs. Nous avions déjà quelques-uns de ces contournements implémentés (comme celui pour certaines Nvidia), mais désormais nous avons un procédé standardisé pour implémenter de tels contournements et pour pouvoir les désactiver (pour que les fabricants de matériel et/ou développeurs de pilotes puissent reproduire les bugs, par exemple).

Bien sûr toutes les améliorations de la vitesse d’exécution ont étendu la compatibilité en transformant des équipements « capable de faire le rendu » en « quelque chose avec lequel on peut jouer ».

Nous avons aussi ajouté la possibilité de compiler et exécuter un moteur Dæmon natif sur FreeBSD. Les binaires NaCl exécutés dans le bac à sable tournent toujours dans le mode de compatibilité Linux, mais le moteur peut désormais être natif FreeBSD. Une telle astuce doit probablement être utilisable sur d’autres systèmes qui ont une compatibilité Linux intégrée (NetBSD par exemple, mais nous n’avons pas testé), en utilisant un binaire natif pour le moteur et la compatibilité Linux pour la machine virtuelle du code du jeu.

Un point que nous aimerions améliorer dans le futur au niveau du moteur est l’utilisation mémoire.

Nouveaux joujoux

Reflets sur des tuyaux dans la carte Chasm Remarquez les reflets sur les tuyaux !

Placage de reflet (très expérimental) : Tandis que notre moteur de rendu progresse, les reflets statiques qui étaient complètement cassés sont désormais en meilleur état. Une fois activés, vous pourrez apercevoir votre environnement dans les matériaux réfléchissants, comme des tuyaux métalliques, des plastiques brillants, et des surfaces excessivement polies… Puisque cela est statique, seule la géométrie stationnaire de la carte est pour le moment reflétée, bien que cela soit suffisamment subtil pour que les différences ne soient pas trop évidentes, surtout au beau milieu de l’action. En outre, les données de reflets sont enregistrées et chargées depuis le disque quand vous activez la mise en cache dans les options. Le code du moteur en charge de sélectionner les reflets pour chaque surface a aussi été amélioré, apportant des reflets plus corrects et de grandes améliorations de performance.

Système de matériaux (très expérimental) : Une autre étape vers la modernisation du moteur est l’ajout d’un système de matériaux. Lorsque le matériel et les pilotes sont compatibles, cela déplace de nombreuses tâches de rendu depuis le CPU vers le GPU, produisant ainsi un flux de travail centré sur le GPU. Bien que cela ajoute un peu plus de travail au GPU, cela élimine une forte pression mise sur le CPU, ainsi que de nombreux aller-retours entre le moteur et le pilote et entre le CPU et le GPU. Sur les cartes les plus exigeantes pour le CPU (en particulier celles avec un “vis” mauvais, le vis est une représentation de la carte générée par le compilateur de carte qui détermine quelle partie devrait être visible selon le point de vue) cela peut doubler le taux de trame comparé au moteur de base. Ce système est encore incomplet et de nombreuses améliorations sont à venir.

Reaper est celui qui se cache derrière la réalisation de ces chantiers impressionnants.

Pour pouvoir en profiter il vous sera nécessaire d’avoir OpenGL 4.6 et (en plus) l’extension GL_ARB_bindless_texture. Il reste cependant des problèmes avec certains matériels et pilotes : tout devrait fonctionner avec Nvidia, le système de matériaux et le « frustum culling » devraient fonctionner avec Mesa (radeonsi pour AMD, etc.) quand la dernière version de Mesa est utilisée (l’ « occlusion culling » ne fonctionne pas encore et pourrait planter avec un Mesa qui ne vient pas de la branche de développement main…). Cela ne fonctionne pas avec le pilote propriétaire AMD à cause de bugs. Des contournements pour ces problèmes sont planifiés, mais tous n’ont pas été implémentés à temps pour la sortie de cette version.

À venir

Parmis les développements qui sont déjà testables sur certains serveurs et qui seront disponibles dans la prochaine version, il y a le mode « vampire », qui est un mode alternatif de gestion des ressources : plutôt que de miner du point de construction, chaque équipe se voit dotée d’un lot déterminé de points en début de partie et lorsqu’une équipe détruit une construction adverse elle s’approprie les points de construction associées. Ce mode « vampire » est évalué comme une solution potentielle au problème de certaines parties qui sont trop longues ou semblent bloquées avec des équipes trop bien fortifiées de chaque côté. Ce mode de jeu peut être testé en avant-première sur des serveurs comme Map&Bot Testing, Der Bunker, ou Bug Squash Central.

Il est temps de jouer !

Le jeu Unvanquished se télécharge ici et les parties en cours sont listées ici !

Commentaires : voir le flux Atom ouvrir dans le navigateur

Une intelligence artificielle libre est-elle possible ?

Ces derniers temps, on a beaucoup parlé d’intelligence artificielle sur LinuxFr.org. D’IA propriétaires, et d’IA libres. Mais peut-on vraiment faire une IA libre ? La notion n’est pas sans poser quelques difficultés. Une (pas si) courte discussion du problème.

    Sommaire

    On appellera IA un réseau de neurones artificiels

    Commençons par définir notre objet d’étude : qu’est-ce qu’une IA ? Par « intelligence artificielle », on pourrait entendre tout dispositif capable de faire réaliser par un ordinateur une opération réputée requérir une tâche cognitive. Dans cette acception, un système expert qui prend des décisions médicales en implémentant les recommandations d’une société savante est une IA. Le pilote automatique d’un avion de ligne est une IA.

    Cependant, ce n’est pas la définition la plus couramment employée ces derniers temps. Une IA a battu Lee Sedol au go, mais ça fait des années que des ordinateurs battent les humains aux échecs et personne ne prétend que c’est une IA. Des IA sont employées pour reconnaître des images alors que reconnaître un chien nous semble absolument élémentaire, mais l’algorithme de Youtube qui te suggère des vidéos pouvant te plaire parmi les milliards hébergées fait preuve d’une certaine intelligence et personne ne l’appelle IA. Il semble donc que le terme « IA » s’applique donc à une technique pour effectuer une tâche plus qu’à la tâche en elle-même, ou plutôt à un ensemble de techniques partageant un point commun : le réseau de neurones artificiels.

    Dans la suite de cette dépêche, j’utiliserai donc indifféremment les termes d’IA et de réseau de neurones1.

    Pour comprendre le réseau de neurones, il est nécessaire de disposer de bases statistiques

    Les statistiques (ou la statistique, on peut dire les deux, comme en Alexandrie), c’est la branche des mathématiques qui s’intéresse aux moyens, à partir de données observées et fondamentalement probabilistes, d’en tirer des conclusions généralisables (et idéalement, de prédire l’avenir à partir du passé).

    La data science, c’est la branche de l’informatique qui s’intéresse aux moyens, à partir de données emmagasinées sur lesquelles on ne fait pas d’hypothèse de mode de génération, d’en tirer des conclusions généralisables (et idéalement, de prédire les données futures).

    Ça vous semble similaire ? Ça l’est. Les deux champs vont avoir des divergences de vocabulaire, de langages (les stateux préfèreront R, les data scientists Python), de formation (les stateux sont plutôt des universitaires, les data scientists plutôt des informaticiens au niveau licence, mais ils ont les mêmes masters et doctorats), mais fondamentalement, et surtout mathématiquement, c’est la même chose. Les connaissances en inférence statistique (notamment bayésienne, pour ceux à qui ça parle) se généralisent très bien à la data science.

    Pour faire court, un statisticien est un data scientist qui se la pète, alors qu’un data scientist est un informaticien qui, n’étant pas assez bon pour survivre à la rude concurrence universitaire, a multiplié son salaire par 10 ou 20 en allant vendre ses compétences statistiques à Facebook.

    Les statistiques reposent sur la modélisation

    En statistique, la manière la plus courante de répondre à une question est de construire un modèle. Prenons une question simple : je dispose d’un jeu de données où j’ai enregistré, pour 1000 personnes, leur IMC et leur taux de cholestérol. Je souhaite savoir s’il y a un lien entre les deux. On souhaiterait, dans ce cas simple, rechercher une relation monotone, sans faire d’hypothèse sur le type de relation.

    Un exemple : la régression linéaire

    Une manière de répondre à ma question est d’écrire Cholestérol = A\times IMC + B et de trouver les meilleurs A et B pour que la droite « colle » le mieux possible au nuage de points. On démontre que la meilleure droite est celle qui minimise un certain critère, la somme des carrés des erreurs. Une fois qu’on a la meilleure droite possible, on peut faire plein de choses avec :

    • On peut rétro-prédire le taux de cholestérol des personnes déjà observées et voir de combien la prédiction s’écarte du réel, ce qui fournit une erreur moyenne de prédiction ;
    • On peut faire de même en prédisant juste le taux de cholestérol moyen pour tous les individus et comparer les erreurs moyennes de prédiction, ce qui permet de voir de combien le modèle améliore la prédiction (et donc de quantifier la quantité d’info apportée par la donnée IMC sur la variable cholestérol) ;
    • On peut étudier le signe de A : si A est négatif, prendre du poids fait baisser le cholestérol : si A est positif, prendre du poids augmente le cholestérol : si A est nul, le poids n’apporte pas d’info sur le cholestérol.
    • Par contre, on ne peut rien dire de la causalité. Tout ce qu’on a observé, ce sont des personnes qui, au même moment, avaient un IMC et un taux de cholestérol donnés. Impossible de dire s’ils ont ce cholestérol parce qu’ils ont cet IMC, s’ils ont cet IMC parce qu’ils ont ce cholestérol, ou s’ils ont ce cholestérol et cet IMC parce qu’ils ont une troisième exposition.
    • On peut enfin faire effectuer de la prédiction à notre modèle : en lui passant une personne dont on ne connaît que l’IMC, on peut estimer son taux de cholestérol et assortir cette prédiction d’un niveau de certitude (ça demande un peu plus de maths, mais c’est l’idée).

    On peut vouloir ajouter une troisième variable, mettons le tabagisme. On écrira alors :

    Avec la variable tabac codée à 0 (non fumeur) ou 1 (fumeur). Noter que notre modèle est alors passé en dimension 3 : on ne cherche plus à faire passer la meilleure droite par rapport au nuage de points en 2D, mais à faire passer le meilleur plan par rapport au nuage de points en 3D. Noter aussi qu’on peut facilement inclure des variables qualitatives : il suffit de les coder 0 ou 1. On peut d’ailleurs inclure des variables à n modalités : il suffit de les recoder en n-1 sous-variables en 0-1 (la modalité de référence étant celle pour laquelle toutes les sous-variables sont à 0).

    Les \beta sont appelés des paramètres : c’est en les faisant varier qu’on ajuste le modèle aux données.

    On peut ainsi ajouter un nombre quelconque de variables… Ou peut-être pas. En effet, on va finir par atteindre un seuil où le meilleur hyperplan est tout simplement celui qui passe par tous les points ! Si j’ai 50 individus et 50 paramètres, il est facile de choisir un plan qui passe par tous les individus. C’est ce qu’on appelle le surapprentissage : le modèle a tout simplement appris le jeu de données par cœur ! Le surapprentissage est un écueil des modèles trop complexes et un réseau de neurones est tout à fait capable de surapprendre.

    Le réseau de neurones

    Le neurone naturel

    Les neurones sont les cellules du système nerveux. Elles sont spécialisées dans la transmission d’information.

    Neurone naturel

    Comme tu peux le voir sur cette image issue de Wikimedia (source), un neurone comprend un nombre quelconque de dendrites, un corps cellulaire, et un axone. Point crucial : l’axone est unique. Il peut lui-même transmettre de l’information à différents neurones en aval, mais il transmet la même information. Or l’information, dans un neurone, peut entrer par les dendrites et par le corps cellulaire, mais elle ne peut ressortir que par l’axone (on peut faire abstraction de la gaine de myéline et des nœuds de Ranvier, qui ont un rôle central dans la vitesse de conduction de l’information mais qui ne changent rien aux calculs effectués). Autrement dit, un neurone transmet la même information à tous les neurones d’aval, et si ceux-ci en font un usage différent, c’est uniquement lié à leurs propres calculs en interne.

    Le neurone formel

    On peut modéliser un neurone, par analogie avec le neurone naturel. Notre neurone formel pourra donc prendre un nombre quelconque d’entrées, mais comme un neurone naturel, il ne produira qu’une seule sortie. Notre neurone est donc une fonction de ses entrées :

    En pratique (mais ça n’a rien d’obligatoire), on prend souvent une fonction d’une combinaison linéaire des entrées :

    Avec une contrainte : la fonction f (qu’on appelle fonction d’activation) doit être monotone (idéalement strictement monotone), dérivable presque partout (c’est nécessaire à l’optimisation du réseau, qu’on verra plus tard), définie sur un intervalle suffisamment large pour qu’on soit toujours dedans, et non linéaire (sinon mettre les neurones en réseau n’a aucun intérêt, autant faire directement une unique régression linéaire).

    En pratique, on prend donc quelques fonctions classiques :

    • La fonction binaire : f(x) = 0 si x < 0, 1 sinon
    • La fonction logistique, une amélioration de la fonction binaire : f(x) = \frac{1}{1 + e^{-x}}. Avantage : elle est strictement monotone, dérivable partout, et elle prend quand même ses valeurs entre 0 et 1.
    • La fonction Rectified Linear Unit (ReLU, qu’on peut prononcer « relou ») : f(x) = 0 si x<0, x sinon. Avantage : elle est très facile (donc rapide) à calculer et à dériver. On peut la rendre strictement monotone en la modifiant à la marge : f(x) = \epsilon\times x si x<0, x sinon, avec 0<\epsilon << 1.

    La mise en réseau

    Tout l’intérêt du neurone formel réside dans sa mise en réseau. Un unique neurone ne fait pas mieux qu’une régression linéaire. On construit donc un réseau de neurones. Pour ce faire, on va donc générer plusieurs neurones, chacun prenant en entrée la sortie de plusieurs neurones et produisant une sortie unique, qui sera à son tour utilisée en entrée par d’autres neurones. On ajoute un ensemble de neurones qu’on pourrait qualifier de « sensitifs », au sens où ils prennent en entrée non pas la sortie d’un neurone antérieur, mais directement l’input de l’utilisateur, ou plutôt une partie de l’input : un pixel, un mot… Enfin, une sortie est ajoutée : elle produit le résultat final.

    Étant donné que les neurones sont virtuels et n’ont pas d’emplacement géographique, il est assez logique de les représenter en couches : la couche 0 est constituée des neurones sensitifs, la couche 1 prend en entrée les résultats de la couche 0, et ainsi de suite. Classiquement, tous les neurones de la couche n+1 prennent en entrée les sorties de tous les neurones de la couche n.

    Se pose alors la question : combien de neurones par couche, et combien de couches au total ?
    On peut considérer deux types de topologies : soit il y a plus de neurones par couche que de couches : le réseau est plus large que long, on parlera de réseau large. Soit il y a plus de couches que de neurones par couche, auquel cas le réseau est plus long que large, mais on ne va pas parler de réseau long parce que ça pourrait se comprendre « réseau lent ». On parlera de réseau profond. C’est de là que viennent les Deep et les Large qu’on voit un peu partout dans le marketing des IA. Un Large Language Model, c’est un modèle, au sens statistique, de langage large, autrement dit un réseau de neurones avec plus de neurones par couche que de couches, entraîné à traiter du langage naturel. On constate empiriquement que certaines topologies de réseau sont plus efficaces pour certaines tâches. Par exemple, à nombre de neurones constant, un modèle large fera mieux pour du langage. À l’inverse, un modèle profond fera mieux pour de la reconnaissance d’images.

    Le réseau de neurones est Turing-complet

    Un résultat théorique important est que les réseaux de neurones sont Turing-complets. C’est-à-dire que, pour tout programme que l’on peut coder et qui sorte une réponse algorithmique, il existe un réseau de neurones qui donne le même résultat. La réciproque est vraie aussi : ce qui est faisable avec un réseau de neurones est faisable en C ou dans un autre langage, au pire en recodant le réseau dans ce langage.

    Le réseau de neurones présente un effet boîte noire important

    Prenons maintenant un élément d’information et essayons de suivre son trajet dans le modèle jusqu’à la sortie. Dans une régression linéaire, c’est assez facile : le poids de l’IMC va peser pour \beta_{IMC} dans le résultat final. Dans une forêt aléatoire, on peut toujours isoler les arbres où apparaît une donnée et essayer de regarder combien elle pèse. C’est fastidieux mais ça reste faisable. Dans un réseau de neurones, c’est impossible. Chaque neurone de la couche 1 va passer un résultat agrégé à la couche 2, où chaque donnée de la couche 0 ne compte plus que comme partie d’un tout. De même, chaque neurone de la couche 2 va agréger tous les résultats de la couche 1. Il devient impossible d’individualiser l’effet d’une donnée ou même celui d’un neurone.

    Ainsi, même si je connais l’intégralité du contenu du modèle, il m’est impossible de donner du sens à une partie du modèle, prise isolément. Le modèle se comporte comme un bloc monolithique, et la seule manière d’étudier un nouvel exemple est de lui appliquer tout le modèle et de voir ce qui sort. C’est ce qu’on nomme l’effet boîte noire.

    Attention : l’effet boîte noire n’est pas lié au nombre de paramètres du modèle. Si je fais de la génétique, et que j’étudie 2000 mutations génétiques individuelles (des SNP, pour single nucleotide polymorphism), je peux assez facilement ajuster un modèle de régression logistique (qui est une variante de la régression linéaire où on fait prédire non pas une variable quantitative, mais une probabilité) à 2000 paramètres (un \beta pour chaque SNP). Chaque paramètre sera parfaitement compréhensible et il n’y aura pas d’effet boîte noire.

    Il n’est pas non plus lié à ta méconnaissance des mathématiques, cher lectorat. Des statisticiens chevronnés se cassent les dents sur l’effet boîte noire. Il est intégralement lié à la structure du modèle. Certains types de modèles en ont, d’autres n’en ont pas. Les réseaux de neurones en ont.

    Cet effet a une conséquence perturbante : même si on sait ce que fait un réseau de neurones, il est impossible de savoir comment il le fait ! On pourrait argumenter que ce n’est pas forcément différent de ce que nous faisons : si on montre à un enfant de 3 ans une photo de chien, il saura dire que c’est un chien, mais il ne saura pas dire pourquoi c’est un chien. Cependant, on demande rarement à un programme d’être réflexif, mais on demande toujours à son auteur de savoir comment il tourne. C’est un peu la base de la programmation.

    Le réseau de neurones est un modèle statistique

    Reprenons : on a un paradigme (le réseau de neurones) capable d’effectuer n’importe quelle tâche pour laquelle il existe une solution algorithmique, à condition de le programmer correctement… Mais on ne sait pas le programmer ! Heureusement, il existe un contournement : on ne va pas le programmer, on va l’ajuster, comme un modèle statistique. Ou l’entraîner, si on préfère le terme de « machine learning ».

    Tu t’en souviens, cher lecteur, un réseau de neurones est un ensemble de fonctions dont chacune prend en entrée différentes données avec des coefficients (les fameux \beta_i). On va commencer par initialiser l’apprentissage en donnant des valeurs aléatoires à ces coefficients. Ensuite, on va soumettre à notre réseau de neurones des tas et des tas de données correctes, et qu’on va comparer ce qu’il prédit à ce qu’on attend. La différence s’appelle l’erreur. Et à chaque itération, on va identifier les neurones les plus générateurs d’erreur et les pénaliser (réduire leur poids, ou plutôt réduire leur poids dans les neurones où c’est nécessaire), tout en favorisant les meilleurs neurones. Les détails de la technique (qui s’appelle la rétropropagation de l’erreur) dépassent largement le cadre de cette courte introduction, mais l’essentiel est qu’à la fin, on obtient un réseau capable de donner des réponses proches de ce qui existait dans l’ensemble des données correctes qu’on lui a passé et de généraliser quand la demande est différente d’une donnée de l’ensemble d’apprentissage. Avantage : en pratique, un réseau de neurones est capable de prendre en entrée n’importe quel type de structure de données : image, texte, son… Tant que les neurones d’entrée sont adaptés et qu’il existe un ensemble d’apprentissage suffisamment grand, c’est bon.

    Tous les modèles sont faux, certains sont utiles, et c’est vrai aussi pour le réseau de neurones

    Bien sûr, il y a des limites. La première est la complexité algorithmique. Un réseau de neurones nécessite de réaliser un nombre astronomique d’opérations simples : pour chaque couche, il faut, pour chaque neurone, calculer la somme des produits des coefficients avec toutes les sorties de la couche antérieure, soit c\times n^2 multiplications, où n est le nombre de neurones par couche et c le nombre de couches. Par exemple, pour un petit réseau de 10 couches de 20 neurones, plus une couche d’entrée, on réaliserait à chaque itération 10\times 20^2 = 4000 multiplications en virgule flottante, et encore, c’est ici un tout petit réseau : un réseau comme ChatGPT a des neurones qui se comptent par millions, voire dizaines de millions !

    Une autre limite est la précision des réponses. Le réseau de neurones étant un modèle statistique, il n’est capable que d’interpoler, c’est-à-dire trouver une réponse à partir de cas similaires. Cette interpolation est rarement aussi précise que celle que donnerait une réponse formelle si elle existait : si Newton avait eu accès à des réseaux de neurones, nous aurions une prédiction du mouvement des planètes qui ne baserait sur aucune théorie, qui serait à peu près exacte mais insuffisamment précise pour envoyer des sondes sur Mars. Quant à s’interroger sur la précession du périhélie de Mercure, on oublie.

    De manière générale, on peut s’interroger sur ce qui amène un réseau de neurones à se planter. On peut diviser les erreurs en plusieurs catégories :

    • La question posée n’a aucun rapport avec les données passées en entrée. Par exemple : « Sachant que la dernière personne que j’ai croisée dans la rue avait 42 ans, indique-moi son genre ». Le modèle n’a pas assez d’information pour répondre.
    • La question posée n’a aucun rapport avec l’ensemble d’apprentissage. Par exemple, demander à un modèle entraîné à reconnaître des photos de chien de reconnaître une voiture. En général, ce problème est résolu en contraignant le format des questions ; dans cet exemple, il suffirait de ne pas permettre à l’utilisateur de poser une question, juste de poster une photo et de recevoir une réponse. D’ailleurs, on ne voit pas très bien pourquoi entraîner un tel modèle à traiter du langage.
    • L’ensemble d’apprentissage est trop restreint/biaisé. L’exemple typique est le modèle qui prétendait reconnaître les délinquants à une simple photo et identifiait en fait tous les noirs : ben oui, ils étaient majoritaires dans les délinquants de l’ensemble d’apprentissage. Noter qu’il existe des problèmes où l’ensemble d’apprentissage sera toujours trop restreint pour un certain niveau de précision exigé. Si on demande à un réseau de dire si un point donné est à l’intérieur ou à l’extérieur d’un flocon de Koch, il va falloir lui passer une infinité de données d’apprentissage pour qu’il apprenne les cas limites juste par interpolation (alors qu’avec un modèle formel, ça serait assez facile).
    • Le modèle est parasité par une donnée annexe : c’est une problématique assez spécifique du réseau de neurones. L’exemple le plus classique est celui des images de mains : après tout, le voisin le plus probable d’un doigt, c’est un autre doigt. L’amusant, c’est que ce problème serait résolu assez facilement en demandant au modèle de compter 4 doigts et un pouce. Mais comme on ne peut pas programmer directement un réseau de neurones…
    • Enfin, si les motifs précédents ont été écartés, je dois me demander si mon modèle n’est pas inadapté : soit qu’il n’a pas assez de neurones, soit que la topologie n’est pas bonne. Plus de neurones permettent de traiter des données plus complexes et leur disposition permet d’augmenter leur efficacité.

    En définitive, on peut voir le réseau de neurones comme un outil qui résout approximativement un problème mal posé. S’il existe une solution formelle, et qu’on sait la coder en un temps acceptable, il faut le faire. Sinon, le réseau de neurones fera un taf acceptable.

    Le but du logiciel libre est de rendre le pouvoir à l’utilisateur

    On a beaucoup glosé, et on continuera de le faire longtemps, sur la philosophie du Libre. Free Software Foundation d’un côté, Open Source Initiative de l’autre, les sujets de discorde ne manquent pas. Mais il faut au moins créditer l’OSI sur un point : avoir clarifié le fait que le Libre est avant tout un mouvement politique, au sens noble du terme : il vise à peser sur la vie de la cité, alors que l’Open Source vise avant tout à disposer de logiciels de qualité.

    La première des libertés est celle de savoir ce que je fais

    Ça paraît évident dans la vie de tous les jours : je sais ce que je fais. Si je décide de prendre une pelle et de planter un arbre dans mon jardin, je sais que je suis en train de prendre une pelle et de planter un arbre dans mon jardin. Si je décide de prendre un couteau et de le planter dans le thorax de mon voisin, je sais ce que je fais. C’est une liberté fondamentale, au sens où elle fonde toutes les autres. Si je ne sais pas ce que je fais, je ne peux signer un contrat, par exemple (c’est d’ailleurs le principe qui sous-tend le régime de la tutelle en droit). D’ailleurs, comme toute liberté, elle fonde une responsabilité. Si je ne savais pas ce que je faisais (et que je peux le prouver), je peux plaider l’abolition du discernement et échapper à ma responsabilité pénale, quelle que soit l’infraction commise, même les plus graves2

    Dans la vie de tous les jours, donc, il est évident que je sais ce que je fais. Mais avec un ordinateur, c’est beaucoup moins évident. Quand j’exécute Windows, je ne sais pas ce que je fais. Pas seulement parce que je ne connais pas la séquence de boot, mais de façon beaucoup plus fondamentale : parce que n’ayant pas accès au code source, je ne sais pas ce que fait le programme que j’exécute. Ce qui pose un problème majeur de confiance dans le logiciel exécuté :

    • Confiance dans le fait que le programme fait bien ce que son programmeur a voulu qu’il fasse (absence de bugs)
    • Confiance dans le fait que le programmeur avait bien mon intérêt en tête et pas seulement le sien (sincérité du programmeur, fréquemment prise en défaut dans le logiciel non libre)

    Dans le système des 4 libertés du logiciel libre, cette liberté est la liberté 1. Elle passe après la liberté 0 (liberté d’exécuter le programme) et avant la liberté 2 (liberté de redistribuer le programme). On pourrait légitimement discuter de sa priorité par rapport à la liberté 0 (est-il raisonnable d’exécuter un programme dont on ne sait pas ce qu’il fait ?) mais ça dépasserait l’objet de cette dépêche.

    Si je sais ce que je fais, je dois pouvoir modifier ce que je fais

    Conséquence logique de la liberté précédente : si je n’aime pas ce que fait un programme, je dois pouvoir l’améliorer. Si je ne sais pas le faire moi-même, je dois pouvoir payer quelqu’un pour l’améliorer. Là encore, ça suppose l’accès au code source, ne serait-ce que pour savoir ce que fait le programme. Il s’agit de la liberté 3 du logiciel libre.

    Le réseau de neurones est difficilement compatible avec le libre

    Personne ne sait vraiment ce que fait un réseau de neurones

    On l’a vu, les réseaux de neurones présentent un effet boîte noire important. Déjà, la plupart des IA commerciales ne sont accessibles qu’au travers d’une interface ou une API. Elles n’exposent que rarement les neurones. Mais même pour une personne disposant de tous les neurones, autrement dit de la description complète du réseau, l’effet boîte noire est tel que le fonctionnement du réseau de neurones est inintelligible. D’ailleurs, s’il était intelligible, il serait très vite simplifié !

    En effet, on peut recoder tout réseau de neurones dans un langage plus rapide, dès lors qu’on comprend ce qu’il fait (puisqu’il est Turing-complet). Vu la consommation astronomique d’énergie des réseaux de neurones, s’il existait un moyen de comprendre ce que fait un réseau de neurones et de le traduire dans un autre langage, on le ferait très vite. Ce qui fournirait d’ailleurs des réponses à des questions théoriques ouvertes comme : qu’est-ce que comprendre une phrase ? Comment reconnaît-on un chien, un visage, un avion ?

    Disposer de la description complète d’un réseau de neurones ne permet pas de l’améliorer

    On l’a vu : si je dispose de la totalité des neurones, je dispose de la totalité de la description du réseau de neurones. Mais comme je suis incapable de savoir ce qu’il fait, je ne suis pas plus avancé pour l’améliorer, qu’il s’agisse de retirer un défaut ou d’ajouter une fonctionnalité. Noter d’ailleurs que ceci n’est pas forcément impactant de la même manière pour tous les aspects du réseau de neurones : si je n’ai aucun moyen d’être sûr de l’absence de bugs (c’est même le contraire ! Il y a forcément des bugs, c’est juste que je ne les ai pas trouvés ou qu’ils ne sont pas corrigeables), j’ai en revanche peu d’inquiétude à avoir concernant la sincérité du programmeur : comme lui non plus ne maîtrise pas sa bestiole, pas de risque qu’il soit insincère3.

    La définition du code source d’un réseau de neurones est ambiguë

    Posons-nous un instant la question : qu’est-ce que le code source d’un réseau de neurones ? Est-ce la liste des neurones ? Comme on l’a vu, ils ne permettent ni de comprendre ce que fait le réseau, ni de le modifier. Ce sont donc de mauvais candidats. La GPL fournit une définition : le code source est la forme de l’œuvre privilégiée pour effectuer des modifications. Dans cette acception, le code source d’un réseau de neurones serait l’algorithme d’entraînement, le réseau de neurones de départ et le corpus sur lequel le réseau a été entraîné.

    Cette ambiguïté fait courir un risque juridique sous certaines licences libres

    Tu devines alors, cher lecteur, là où je veux en venir… Si le corpus comprend des œuvres non libres, tu n’as tout simplement pas le droit de le diffuser sous une licence libre ! Et si tu t’es limité à des œuvres libres pour entraîner ton modèle, tu risques fort d’avoir un ensemble d’apprentissage trop restreint, donc un réseau de neurones sans intérêt.

    Alors il y a quatre moyens de tricher.
    Le premier, c’est de t’asseoir sur la GPL et de considérer qu’en distribuant les neurones, tu as fait le taf. La ficelle est grossière. Je viens de passer une dépêche à te démontrer que c’est faux, tu pourrais au moins me montrer un peu plus de respect.

    Le deuxième, c’est de distribuer sous une licence non copyleft, genre BSD ou WTFPL. Une licence qui ne nécessite pas de distribuer le code source. Certes, mais en fait tu ne fais pas du Libre.

    Le troisième, c’est de considérer le réseau de neurones comme une donnée, pas un exécutable. Donc pas de code source. La partie sous GPL serait alors l’interface graphique, et le réseau, une donnée. C’est assez limite. Une donnée exécutable, ça s’approche dangereusement d’un blob binaire.

    Le quatrième, c’est de repenser complètement le paradigme du logiciel libre et de considérer qu’il vise avant tout à rééquilibrer les rapports de pouvoir entre programmeur et utilisateur, et qu’en redistribuant les neurones, tu as fait le job. Sur les rapports de pouvoir, tu n’as pas tort ! Mais d’une part, ça ne tiendra pas la route devant un tribunal. D’autre part, il persiste une asymétrie de pouvoir : tu as accès au corpus, pas l’utilisateur.

    Quand bien même on admettrait que le code source est l’ensemble corpus + algorithme d’optimisation + réseau de neurones de départ, l’optimisation d’un réseau de neurones consomme autrement plus de ressources que la compilation d’un programme plus classique, des ressources qui sont loin d’être à la portée du quidam classique. À quoi servirait un code source impossible à compiler ?

    Enfin, même cette définition du code source pose problème : elle n’est en fait pas beaucoup plus lisible que le réseau lui-même. Ce n’est pas parce que j’ai accès aux centaines (de milliers) de textes sur lesquels un réseau a été entraîné que je peux prédire comment il va se comporter face à une nouvelle question.

    Comment les boîtes qui font de l’IA non libre résolvent-elles ce dilemme ? Elles ne le résolvent pas

    C’est presque enfoncer une porte ouverte que dire que l’IA pose de nombreuses questions de droit d’auteur, y compris dans le petit microcosme du non-libre. Cependant, les IA non-libres ont un avantage sur ce point : si le réseau de neurones ne permet pas de remonter au corpus initial (donc en l’absence de surapprentissage), alors elles peuvent tranquillement nier avoir plagié une œuvre donnée. Tu ne me verras pas défendre les pauvres auteurs spoliés, car j’ai toujours considéré que la nature même de l’information est de circuler sans barrières (Information wants to be free, tout ça) et que le droit d’auteur en est une, et particulièrement perverse.

    La définition d’une IA open source ressemble furieusement à un constat d’échec

    L’OSI a publié une définition d’IA open source. Cette définition mérite qu’on s’y attarde.

    Premier point intéressant : après des années à tenter de se démarquer du Libre, notamment via la définition de l’Open Source qui tente de reformuler les 4 libertés sans recopier les 4 libertérs, l’OSI baisse les bras : est open source une IA qui respecte les 4 libertés.

    Deuxième point intéressant : est open source une IA qui publie la liste des neurones, le corpus d’entraînement et la méthode d’entraînement. En fait, ça revient à ne pas choisir entre les neurones et leur méthode d’entraînement. Soit, mais ça ne résout pas le problème de l’effet boîte noire. Au mieux, ça revient à admettre qu’il est le même pour le programmeur et l’utilisateur.

    Conclusion : qu’attendre d’une IA libre ?

    Il ne fait aucun doute que développer des IA libres exigera de nouvelles licences. La GPL, on l’a vu, expose à un risque juridique du fait de l’ambiguïté de la définition du code source.

    Il est à noter, d’ailleurs, qu’une IA repose rarement exclusivement sur son réseau de neurones : il y a systématiquement au moins un logiciel classique pour recueillir les inputs de l’utilisateur et les passer au réseau de neurones, et un second en sortie pour présenter les outputs. Ces briques logicielles, elles, peuvent tout à fait suivre le paradigme classique du logiciel libre.

    En définitive, cher lecteur qui ne développes pas d’IA, je t’invite surtout à te demander : qu’attends-tu d’une IA ? Qu’entends-tu quand on te parle d’IA libre ? Plus fondamentalement, l’IA serait-elle un des rares domaines où il existe une distinction pratique entre libre et Open Source ?

    Il n’y a pas de façon simple de faire une IA libre, il n’y a peut-être pas de façon du tout. Mais le principe du libre, c’est que c’est à l’utilisateur in fine de prendre ses décisions, et les responsabilités qui vont avec. Je n’espère pas t’avoir fait changer d’avis : j’espère modestement t’avoir fourni quelques clés pour enrichir ta réflexion sur le sens à donner au vocable IA open source qu’on voit fleurir ici et là.


    1. Et je mettrai « artificiel » à la poubelle parce que Implicit is better than explicit, rien que pour embêter Guido). 

    2. Bon, certaines infractions complexes à exécuter, comme le trafic de drogue ou le génocide, requièrent une certaine implication intellectuelle et sont donc peu compatibles avec l’altération du discernement, mais c’est lié au fait que l’infraction elle-même requiert un certain discernement. 

    3. Du moins au niveau du réseau de neurones lui-même. Les entrées et les sorties peuvent tout à fait passer par une moulinette insincère et codée dans un langage tout à fait classique. 

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    XL-Converter 1.0, billet d'humeur et plaidoyer

    XL-Converter est un utilitaire graphique pour convertir vos images en formats utilisables sur Internet. Outre les classiques JPEG et PNG il y a donc AVIF, WEBP et JPEG-XL. L’outil se veut ergonomique avec un minimum d’options pratiques. Par exemple on peut indiquer une dimension ou un poids maximum pour les images. À mes yeux, l’intérêt d’XL-Converter c’est surtout le format Jpeg. Pourquoi ? parce que ce format est loin d’être mort : tout en travaillant sur Jpeg-XL, les chercheurs suisses de Google ont développé un nouvel algorithme d’encodage du Jpeg classique, et cet algo est très performant.

    Jpegli, le nouvel algo, tire son nom du jargon suisse, tout comme guetzli, butteraugli, etc. par la même équipe. Il est inclus dans la version 0.10 de la libjxl, la bibliothèque de référence pour Jpeg-XL (c’est normal il en réutilise du code). Et par là, il se retrouve l’encodeur Jpeg de XL-Converter.

    Jpeg est un format de compression qui date des années 80. C’est grâce à lui qu’on voit le web en couleur. On a souvent tenté de le remplacer, il résiste. C’est normal, non content d’offrir un bon rapport qualité/poids, il y a belle lurette que nos puces décodent les images Jpeg en un éclair. Jpeg est donc efficace et rapide, sa compression avec perte n’enlève que des détails invisibles à nos yeux. Enfin il a des défauts quand même : pour gagner encore plus de poids, il gomme encore plus de détails et nous laisse des artefacts bien visibles, qui ressemblent à des saletés dans l’œil, celles qu’on découvre en regardant un mur blanc. En principe je ne vous apprends rien, vous êtes habitués à optimiser le poids de vos images sur Internet et vous savez jouer du curseur pour obtenir le meilleur compromis pour la meilleure image Jpeg possible (© Voltaire).

    Nos accès Internet deviennent sans cesse plus rapides, la puissance et la Ram sur nos ordis augmentent de même, les nuisances énergétiques itou. Ça m’importe. Et même si les nuisances vous indiffèrent, vous vous êtes peut-être déjà retrouvé pris au piège d’une zone blanche, ou bien sur une île surpeuplée de touristes en été, ou bien dans un pays lointain aux prises avec un vieil ordi malmené par les débits inconstants et la lourdeur de votre site web préféré, bref dans ma peau. La situation est tout de même assez commune pour qu'un des critères majeurs de bon référencement des pages web sur Google soit le temps de chargement et d’affichage1.

    Normalement vous savez qu’il y a plusieurs facteurs là-dedans, matériels, logiciel et humain. Humain, voilà ce qui nous intéresse. C’est l’humain qui fait l’effort de soigner son code, d’utiliser un format qui décompresse vite, de redimensionner ses images et de compresser suffisamment, en acceptant des pertes que l’autre internaute ne verra jamais sur un écran non calibré, salis par les doigts, sous un éclairage douteux et le plus souvent coloré (dans les villes).

    Il y a quelques mois, je pensais vous décrire les merveilles de Mozjpeg : les premières versions de Webp n’avaient pas convaincu Mozilla qui avait proposé un nouvel algo et un nouvel outil, plutôt efficace. En remplaçant purement et simplement la libjpeg, les gains en compression était du même niveau que Webp (à l’époque), mais pour ceux qui aimaient jongler avec les paramètres2, les gains étaient et sont toujours bien meilleurs. Tout le monde n’étant pas imageo-technophile, les feignants pouvaient se contenter d’utiliser ImageOptim pour un résultat équivalent.

    Aujourd’hui, même les feignants n’ont pas d’excuses : Jpegli est super simple à utiliser3, plus rapide et meilleur que Webp ou Avif, produit beaucoup moins d’artefacts classiques du Jpeg et se décode à la vitesse de l’éclair puisque c’est du Jpeg normal. Et au sein d’XL-Converter c’est de la balle.

    Je n’ai rien de plus à dire. En attendant Jpeg-XL dans tous nos navigateurs, Jpeg à la sauce Jpegli c’est trop bon, mangez-en.

    En apéritif, goûtez donc cette petite note du divin Jon Sneyers :

    More recently, the JPEG-XL team at Google has built yet another JPEG encoder, jpegli, which is both faster and better than even mozjpeg. It is based on lessons learned from guetzli and libjxl, and offers a very attractive trade-off: it is very fast, compresses better than WebP and even high-speed AVIF, while still producing good old JPEG files that are supported everywhere.


    1. voir ce paragraphe dans la doc sur les Core Web Vitals de Google. 

    2. les paramètres sont dans la source, use the force luke, read the code 

    3. disons plutôt qu’il n’y a pas besoin d’autre paramètres que le niveau de compression pour être bien meilleur que Webp. 

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Élections européennes de juin 2024 et contenu programmatique

    Les élections du Parlement européen ou élections européennes visent à élire les députés du Parlement européen. Les prochaines ont lieu du 6 au 9 juin 2024 (suivant les pays). Sur la mandature de 2019, il y avait 705 députés, et en juin ils seront 720. La répartition par pays est déterminée proportionnellement à la démographie du pays (par exemple 96 pour l’Allemagne, 81 pour la France et 6 pour le Luxembourg). Les députés se regroupent ensuite par groupes parlementaires (trans-pays, composés de blocs politiques informels ou encore des indépendants, constituant des coalitions).

    Les 27 États membres choisissent chacun le mode de scrutin (scrutin à vote unique transférable, attribution des voix de préférence aux candidats de son choix, vote possible pour des candidats de différentes listes ou scrutin par liste bloquée).

    Exemple pour la France : liste nationale par candidat, 5% minimum pour avoir un siège, scrutin en un tour par liste bloquée, chaque liste doit imprimer ses bulletins (coût supérieur à 1M€ remboursé si plus de 3%). D’autres pays demandent un nombre préalable de signatures par exemple.

    La France vient de publier la liste des candidats : 37 38 (finalement par arrêté du 23 mai 2024) listes de 81 noms ont été déposées. Elles sont numérotées et ordonnées, aléatoirement, et l’ordre retenu sera utilisé pour placer les bulletins, les affiches, les résultats, etc. Clairement le nombre créé des problèmes logistiques (espace nécessaire, contraintes de placement, types de machines à vote non utilisables, coût induit, etc.), voir par exemple cet article.

    On peut aussi mentionner des spécificités nationales dans le comportement vis-à-vis de l’élection. Wikipedia mentionne par exemple que « en France, les partis politiques tendent à nationaliser les enjeux du scrutin. »

    Et si on parlait des programmes ?

    Sommaire

    Déjà mentionné

    Le collectif « Convergences Numériques », qui regroupe dix organisations professionnelles du numérique françaises, dont Numeum et le Cigref (mais pas le CNLL) a présenté un « manifeste » concernant la politique européenne du numérique, et pour auditionner des représentants des listes candidates. Voir la dépêche Élections européennes: bilan rapide de la conférence « Convergences numériques »

    Si on regarde les thématiques européennes (Parlement ou non) abordées récemment sur le site :

    Autres sujets non encore abordés

    Il y a bien évidemment d’autres thématiques autour du numérique mais de mémoire non abordées sur le site jusqu’ici : la directive dite NIS2 sur la cybersécurité des réseaux et des systèmes d’information, le règlement dit DORA sur la résilience opérationnelle numérique du secteur financier, le programme d’action pour la décennie numérique à l’horizon 2030, etc.

    Rectifications après recherche pour vérifier ma mémoire : NIS2 a été mentionnée dans cet entretien Degate : espionner un CPU depuis les waters, et son étiquette nis2 créée. Et DORA a été mentionnée via la revue de presse de novembre 2022 comme article dans MISC Magazine numéro 124.

    Précisions avant de regarder les programmes

    Je ne me préoccupe pas ici de la nature de la liste en tant que couleur politique, de ma sympathie/antipathie envers la liste ou autres. Je vais tâcher de parcourir les programmes (si je les trouve). En effet le site officiel avec la propagande électorale ne sera disponible que le 27 mai sur programme-candidats.interieur.gouv.fr.

    Je ne vais pas mettre des liens actifs vers les programmes de partis politiques, pour plusieurs raisons : l’analyse des programmes est neutre mais n’implique pas de les aider en référencement web ou de faire leur promotion ; les sites de campagne à la EnzoBogoss2024 et autre HubertDeLaBath-votreMEP seront abandonnés et squattés par des sites pour adultes, jeux en ligne et revente de produits illicites sous peu…

    Vu que nous sommes sur LinuxFr.org, je m’intéresse aux thématiques que l’on retrouve sur le site en parcourant les programmes. Électeurs et électrices choisiront évidemment (enfin j’espère) sur la totalité des thématiques abordées par la liste (ou du moins celles relevant du parlement européen). D’autres sites ou médias les compareront sur d’autres aspects : par exemple le « think tank proche de la droite libérale, voire ultra-libérale et du MEDEF » (dixit Wikipedia) ifrap.org (la seule comparaison disponible que j'ai trouvée au moment l'écriture de cet article).

    Ajout post-publication : VoteFinder a aussi été mentionné sur LinuxFr.org (voir les limites mentionnées en commentaires du lien). À noter que le Parlement a aussi un outil de comparaison des résultats).

    Il est possible que je manque des infos en parcourant les programmes, ou que les programmes soient complétés / modifiés entre-temps, ou que les listes aient apportées des précisions à d’autres endroits (entretiens dans les médias, etc.). N’hésitez pas à compléter dans les commentaires.

    Dernier point : voir les programmes de tous y compris ceux dont on se sent très éloignés ou ceux dont on se dit qu’ils sont carrément déjantés permet aussi de voir les idées qui sont dans l’air du temps : de voir ce qui est proposé (à combattre ou faire avancer), sur quoi on veut revenir (donc peut-être ce qu’il faudrait défendre si jamais on est pour), etc.

    Les programmes des listes en France ?

    Je ne sais pas encore s’il y a une attribution de couleur politique pour les élections européennes (exemple pour les législatives 2022 et la circulaire du ministère de l’Intérieur sur l'attribution des nuances aux candidats aux élections législatives de 2022). Par couleur politique ici on entend le nom d’un parti ou d’une tendance genre extrême droite / divers gauche / divers centre / etc.
    J’utilise donc la catégorisation des listes tirée de la page Wikipédia, partie « Positionnement et idéologie » du tableau.

    J’ai conservé les noms de listes en majuscules en provenance du ministère de l’Intérieur (y compris l’absence d’accent sur les capitales).

    1. POUR UNE HUMANITE SOUVERAINE

    Positionnement et idéologie : attrape-tout

    Site non trouvé

    2. POUR UNE DEMOCRATIE REELLE : DECIDONS NOUS-MEMES !

    Positionnement et idéologie : attrape-tout

    Site non trouvé

    3. LA FRANCE FIERE, MENEE PAR MARION MARECHAL ET SOUTENUE PAR ÉRIC ZEMMOUR

    Positionnement et idéologie : extrême droite

    Site https://www.parti-reconquete.fr/programme

    « Réformer la gestion du Fonds européen pour l’innovation en le mettant à la disposition des États (gestion déléguée sur le modèle du plan de relance), concentrer ses moyens vers le numérique, l’IA (…) », « Favoriser l’écosystème entrepreneurial européen, notamment dans le secteur clé de l’IA », Supprimer « Europe Creative », supprimer « Le Médiateur européen», « faut s’assurer que l’Euro-numérique, s’il est vraiment établi, ne remplace pas les autres moyens de paiement comme l’argent liquide ou le chèque, et ne bénéficie pas de primauté ou d’exclusivité pour certains usages par rapport aux autres moyens de paiement », « Viser la souveraineté hardware/software pour les institutions et certains secteurs stratégiques européenne (matériel informatique et cloud européen pour les institutions, lanceurs européens pour les satellites… », « Relocaliser sur le sol européen les données numériques des sociétés et particuliers européens (construction et sécurisation de data centers assurant notre souveraineté dans ce domaine). », « Lancer des programmes de recherche en robotique/IA/numérique et soutenir la modernisation des entreprises spécifiquement pour aider les « métiers en tension » et limiter l’immigration », « Garantir la liberté d’expression la plus large possible, sans biais politiquement corrects qui servent souvent à déguiser la censure », «  les trois fléaux majeurs qui menacent la santé mentale et physique de la jeunesse européenne : les drogues, l’addiction aux écrans et l’exposition à la pornographie »

    4. LA FRANCE INSOUMISE - UNION POPULAIRE

    Positionnement et idéologie : extrême gauche à gauche

    Site https://lafranceinsoumise.fr/europeennes-2024/programme-de-lunion-populaire/

    « Garantir un euro numérique 100% public, qui ne soit ni développé ni commercialisé par des plateformes privées, qui respecte la vie privée des usagers et ne remplace pas l’argent liquide », « Renforcer drastiquement la régulation européenne sur le secteur des crypto monnaies et interdire les pratiques les plus spéculatives ou nuisibles sur le plan environnemental », « Lutter contre les paradis fiscaux et la concurrence fiscale agressive au sein de l’Union européenne » (potentiel effet sur GAFAM et autres), « Demander leur [territoires ultramarins] intégration dans les réseaux transeuropéens de transport, d’énergie et de télécommunications », « Utiliser tous les outils (taxes, normes, quotas, interdiction…) pour protéger l’industrie européenne de la concurrence déloyale, notamment chinoise et états-unienne, en particulier dans les secteurs stratégiques (énergie, télécommunications, santé, transports, numérique, spatial…) », « Refuser les tribunaux d’arbitrage privés qui permettent aux grandes entreprises d’attaquer des États devant une justice privée lorsque des décisions publiques favorables à l’intérêt général s’opposent à leurs intérêts économiques », « Établir un plan européen de sobriété, mettre fin au gaspillage et à l’obsolescence programmée, renforcer le recyclage, garantir la réparabilité des objets électroniques, bannir la publicité lumineuse et la destruction des stocks de marchandises invendues »

    « Interdire toute prise de contrôle de plus de 20 % du capital par une même personne physique ou morale dans les médias et industries culturelles les plus significatives (audiovisuel, musique, livre, jeu vidéo) comme le groupe Bolloré, et encourager la constitution d’acteurs européens alternatifs misant sur la diversité culturelle et la liberté de création pour résister face aux plateformes américaines », « Protéger et développer un service public de l’information de qualité, avec une augmentation des moyens mis à sa disposition et favorisant la diversité des programmes, la création et la diffusion de programmes européens et l’investigation », « Créer un système de protection de l’espace informationnel démocratique face aux régimes autoritaires. », « Défendre un autre modèle universitaire à l’échelle européenne pour une libre circulation du savoir, des étudiants et des enseignants, quelle que soit leur origine dans le cadre d’un enseignement public, ouvert à tous et toutes, émancipateur et indépendant des pressions économiques »

    « S’opposer à la marchandisation du service public d’éducation et à sa privatisation ainsi qu’aux pressions des lobbies, GAFAM - Google, Apple, Facebook, Amazon et Microsoft - et intérêts économiques sous la forme par exemple de fondations financées par des entreprises, du mécénat, de la sponsorisation d’établissements, d’équipements informatiques – hardware et software – ou de diplôme », « Développer la liberté de création, la diversité et les échanges culturels au sein de l’Europe et avec le monde en rendant plus accessibles les financements européens, notamment ceux d’Europe Créative », « Inscrire la neutralité du net, c’est-à-dire l’accès égal de chacun et l’égalité de traitement, dans la Charte des droits fondamentaux de l’Union européenne », « Renforcer les dispositions des règlements sur les services numériques pour mieux encadrer l’activité des GAFAM et garantir la protection des citoyens », « Refuser tout accord d’exfiltration de données personnelles et stratégiques en dehors de l’espace français et de l’Union européenne », « Réformer le système mondial des droits de propriété intellectuelle pour soutenir le transfert des nouvelles technologies écologiquement durables », « Planifier une politique ambitieuse de câbles internet sous-marins transcontinentaux alternatifs à ceux transitant pour le Royaume-Uni et les États-Unis et concurrençant la progression des câbles tirés par les grandes multinationales du numérique »

    « Planifier une politique ambitieuse de super-calculateurs et de relocalisation des infrastructures numériques (nœuds internet, data centers) davantage décentralisée sur le territoire européen », « Lutter contre l’introduction de brevets dans l’industrie logicielle qui sont un outil de domination pour les grandes entreprises au détriment de l’autonomie et de la capacité d’innovation des PME », « Soutenir une planification numérique axée sur les secteurs du logiciel libre », « Développer une politique de modération des contenus en ligne alternative et inclusive, transparente dans ses algorithmes et respectueuse des travailleurs des plateformes de microtravail (modération en ligne, assistance des intelligences artificielles) avec une rémunération décente », « Investir dans une planification écologique du numérique : favoriser le codage vert et le low tech, instaurer des critères techniques et environnementaux permettant aux utilisateurs d’opérer des choix éclairés de services de stockage en ligne »

    5. LA FRANCE REVIENT ! AVEC JORDAN BARDELLA ET MARINE LE PEN

    Positionnement et idéologie : extrême droite

    Site https://vivementle9juin.fr/storage/Programme.pdf

    « coopération industrielle et technique sur les grands projets d’avenir, notamment l’intelligence artificielle » « Développer des coopérations industrielles et techniques sur les grands projets d’avenir : aérospatial, Défense, intelligence artificielle, cloud européen pour stocker nos données stratégiques », « Défendre la constitution d’un cloud souverain européen, et non d’un simple "cloud de confiance" perméable aux ingérences juridiques américaines et chinoises. », « créer un environnement complet en faveur de l’Intelligence artificielle », « Revoir les règles de la concurrence européenne pour autoriser la concentration des acteurs et créer des champions européens du numérique qui atteindront ainsi une taille critique au niveau mondial »

    6. EUROPE ECOLOGIE

    Positionnement et idéologie : gauche radicale à centre gauche

    Site https://ecologie2024.eu/document/4WSBbTscsgknLiwNWFXSva/eu24-socle-programmatique-vf.pdf

    « Buy Green and European Act », « Digital Green and Social Deal », « Evaluer l’impact écologique des politiques européennes de soutien aux technologies numériques, avec une vigilance particulière sur les effets rebond, et leur contribution au Pacte vert passé et au Pacte social-écologique à venir », « Renforcer l’European Green Data Space pour faciliter le partage des données non-personnelles d’intérêt public entre acteurs publics et privés, en particulier les données pertinentes pour l’action contre le réchauffement climatique », « Orienter les pratiques numériques vers (1) la sobriété, la réparabilité(…), la circularité et l’efficacité énergétique et (2) la lutte contre les inégalités et les discriminations, la résilience des communautés face aux crises, la décentralisation des pouvoirs économiques et la lutte contre les oligopoles. », « Passer une nouvelle étape dans la réglementation des crypto-monnaies », « Supprimer les paradis fiscaux en Europe et interdire l’accès aux marchés publics et financiers des acteurs ayant des activités dans les paradis fiscaux » (effet potentiel sur les GAFAM et autres), « Définir une stratégie européenne de déploiement d’une économie circulaire industrialisée permettant la construction de filière de collecte, de tri, de prétraitement et de transformation des minerais et matières premières (ex : pour les batteries) », « contraintes sur la disponibilité des pièces de rechange et la priorité à la réparation dans le cadre des garanties légales et le soutien aux marchés de l’occasion », « passeport numérisé des produits informant les consommateurs sur les conditions de production et l’empreinte carbone, matière et sociale des produits »

    « Mettre en place des politiques de lutte contre l’obsolescence prématurée pour lutter contre le renouvellement et la surconsommation forcée de matériels électriques et électroniques. Développer les services de réparation, la disponibilité des pièces détachées et garantir la compatibilité entre accessoires électroniques. Aussi, assurer la collecte systématique des déchets électroniques et établir des normes de recyclabilité efficaces, pour lutter contre l’épuisement des ressources et l’accumulation et la pollution des milieux par les déchets », « le numérique est plus matériel et plus impactant que l’image du “cloud”, du “nuage”, ne le laisse croire », « Le numérique ne doit pas être un outil pour nous permettre de consommer toujours plus, mais un outil pour consommer mieux : pour rendre plus durables et plus accessibles les consommations qui sont nécessaires. Il nous faut conditionner l’innovation numérique à sa plus-value sociale et environnementale. », « La sobriété que nous prônons doit donc pleinement intégrer le numérique et passer par la diminution de nos usages immatériels et des pratiques du secteur. », « Interdire le surdimensionnement des centres de stockage », « Encadrer le management par les algorithmes dans tous les emplois afin d’interdire la surveillance constante au travail, notamment la surveillance des espaces et communications privées sur le lieu de travail, et assurer la transparence sur les processus de gestion par les algorithmes. », « Intégrer la juste rémunération des artistes et des professionnel.le.s du secteur dans les lois de réglementation des plateformes (notamment de streaming ou musicale) ainsi que la transparence des algorithmes de recommandation que cela concerne les plateformes ou les télévisions connectées (télécommande, EPG ou applications). »

    « Les évolutions technologiques doivent répondre à nos besoins et servir les intérêts de la société et pas uniquement les intérêts privés. », « La concentration des médias (…) est un risque pour notre droit à une information libre. », « lutte contre la désinformation environnementale », « lancer un plan européen d’éducation à la grammaire de l’image, du son, de l’information », « Briser le monopole des GAFAM en Europe en garantissant l’interopérabilité des services numériques », « Soutenir le développement d’alternatives européennes aux GAFAM, en sortant de la logique de géants oligopolistiques, avec des investissements européens ciblés vers la souveraineté numérique européenne, le développement de logiciels libres et la contribution des acteurs du numériques (sic) à la transition juste », « Taxer les GAFAM », « Lutter contre le lobbying des Big tech companies au sein des institutions européennes », « Renforcer les actions antitrust pour éviter que des entreprises dominent l’ensemble de l’écosystème de la publicité en ligne. », « Garantir une réactivité législative en matière d’intelligence artificielle(IA) », « Lutter contre l’automatisation de toutes les discriminations », « les algorithmes de contrôle social », « le management automatisé par les algorithmes », « Interdire la reconnaissance biométrique afin de prévenir toute surveillance de masse », « lutte contre la désinformation »

    7. FREE PALESTINE

    Positionnement et idéologie : gauche

    Site https://parti-udmf.fr/pdf/UDMF_eu2024.pdf

    « mise en place d’une directive européenne contre l’obsolescence programmée », « traité devra être mis en place, interdisant aux États membres et à leurs entreprises d’utiliser les paradis fiscaux » (potentiel effet sur les GAFAM, non mentionnés contrairement à d’autres multinationales), « comité d’éthique pour contrôler l’indépendance de la presse » qui « veillera à l’intégrité de l’information » (y compris en ligne a priori), « des salons virtuels de recrutement en ligne dédiés aux demandeurs d’emplois handicapés »

    8. PARTI ANIMALISTE - LES ANIMAUX COMPTENT, VOTRE VOIX AUSSI

    Positionnement et idéologie : attrape-tout

    Site https://parti-animaliste.fr/programme

    lutte contre la « pollution lumineuse » et la « pollution électromagnétique par les appareils électriques », proposer une « directive sur la lutte contre la zoophilie et la zoopornographie » avec mise « en demeure les hébergeurs et les fournisseurs d’accès à Internet à retirer rapidement les contenus zoopornographiques », une « commission d’enquête sur le lobbying » et « en open data, toutes les rencontres entre lobbyistes et représentants de l’Union européenne (députés, commissaires, fonctionnaires, assistants, membres de cabinet…) », « Interdire la vente d’animaux sur des sites en ligne » et « possibilité de signaler en ligne des violences envers les animaux », « rendre public, en open data, tous ces rapports d’inspection [respect des règles de protection animale et visant tout détenteur d’animaux à des fins économiques] »

    9. PARTI REVOLUTIONNAIRE COMMUNISTES

    Positionnement et idéologie : extrême gauche

    Site https://www.sitecommunistes.org/images/articles/2024/profession%20de%20foi%20PRC.pdf

    Rien de particulier sur le numérique et sur nos thématiques.

    10. PARTI PIRATE

    Positionnement et idéologie : attrape-tout

    Site https://europeennes.partipirate.org/programme.html

    « L'Internet, en tant que moyen de communication, offre de formidables opportunités de développement politique en surmontant la communication verticale et unidirectionnelle. Les Pirates défendront donc la liberté de l’Internet avec une détermination farouche au niveau européen et à l’échelle mondiale. », « Encourager la création de biens communs, tels que les logiciels libres, les biens culturels gratuits, les outils de brevet ouvert et le matériel éducatif libre et ouvert. », « Refonder le droit d’auteur afin qu’il reflète le paysage changeant de l’ère numérique et promeuve une société plus équitable. », « Réformer le droit des brevets existant afin de permettre une économie partagée, des marchés plus accessibles et durables. N’étouffons pas l’innovation en prétendant la stimuler par des monopoles. », une partie « Logiciel libre et données ouvertes », « Les Pirates soutiennent la promotion de logiciels qui peuvent être utilisés, analysés, diffusés et modifiés par toutes et tous », « Les logiciels libres sont essentiels pour permettre aux utilisateurs de conserver la maîtrise de leurs propres systèmes techniques. Ils contribuent de manière significative au renforcement de l’autonomie, de la souveraineté personnelle et de la vie privée de tous les utilisateurs et à la diffusion des connaissances »

    « Soutenir financièrement les infrastructures qui innovent dans le domaine du logiciel libre directement ou par le biais d’une législation favorable », « _Encourager l’usage des logiciels libres dans les administrations publiques pour la communication avec les usagers et le traitement, la gestion et la sécurisation de leurs données », « Rendre libres les logiciels développés par les pouvoirs publics selon le principe “argent public, code public” », « Faire voter une loi sur la liberté d’information au niveau européen qui garantisse un accès libre et ouvert à toutes les données publiques, partagées dans un format ouvert et standard, gratuites et facilement accessibles à tous »

    « Garantir l’accès à l’internet à haut débit à un prix abordable et dans des conditions favorables pour permettre aux personnes de participer aux affaires numériques », « Assurer de manière absolue le droit au respect de sa vie privée, ce qui inclut le droit des individus à contrôler leurs informations personnelles et à ne pas faire l’objet d’une surveillance omniprésente », « Préserver une liberté d’expression sans restriction dans la mesure où elle n’empiète pas sur les droits et libertés d’autrui en limitant les restrictions qui ne doivent intervenir que dans des circonstances extrêmes », « Interdire l’usage des données à caractère personnel à des fins de profilage dans des circonstances où il est possible de déterminer clairement le comportement et les attributs personnels des personnes »

    « Inclure le droit à la “participation numérique” dans la Charte européenne des droits fondamentaux », « Préserver la neutralité du Net en interdisant la restriction ou la priorisation basée sur la nature du contenu/service et en limitant les mesures de gestion du trafic pour des raisons techniques et appliquées de manière claire et transparente », « Renforcer l’interopérabilité entre les plateformes numériques, en particulier en étendant le droit de l’Union européenne en la matière aux réseaux sociaux », « Obliger les fabricants d’appareils à fournir régulièrement des mises à jour de sécurité pendant une période raisonnable et les contraindre à rendre public le code source et les outils de développement nécessaires à la maintenance de solutions encore largement utilisées »

    « Favoriser l’usage des données ouvertes pour garantir l’interopérabilité des systèmes de transport ; les rendre plus efficaces et plus accessibles dans tous les pays de l’Union européenne », « Renforcer la résilience de l’Europe face aux menaces actuelles et futures de guerres hybrides, de désinformation, de cyber-attaques et de coercition économique », « Soutenir les initiatives visant à interdire l’utilisation de systèmes d’armes autonomes létaux dans les guerres cinétiques et numériques, tout en préservant notre capacité européenne à rechercher et à développer des technologies émergentes », « Renforcer la transparence dans la gestion des fonds européens en utilisant pleinement les outils numériques interopérables pour le contrôle budgétaire. Publier des données non sensibles sur tous les marchés publics, y compris les rapports de mise en œuvre des projets »

    11. BESOIN D’EUROPE

    Positionnement et idéologie : centre gauche à centre droit ou attrape-tout

    Site https://besoindeurope.fr/projet

    « Réguler les géants du numérique, nous l’avons fait : pour lutter contre la diffusion des discours de haine et leur imposer le retrait des contenus terroristes », plain Europe 2030 avec « Numérique : 5 ans pour des capacités de calcul de rang mondial, dont 3 des 5 supercalculateurs parmi les plus puissants au monde », « Mobiliser 1 000 milliards d’euros d’investissements pour faire face aux chocs écologique, technologique et sécuritaire », « Adopter la “préférence européenne” (Buy European Act) », « Mieux protéger nos enfants avec la majorité numérique à 15 ans sur les réseaux sociaux, le contrôle parental par défaut sur les mobiles et la vérification systématique de l’âge pour l’accès aux sites internet interdits aux mineurs. », « Déployer un bouclier démocratique contre les ingérences étrangères : créer une cellule dédiée comme Viginum au niveau européen (…) », « Favoriser l’émergence de champions européens dans le développement des jeux vidéo et valoriser les talents du e-sport », « c’est dans une alliance entre investissement public et privé que nous serons à l’avant-garde de la croissance et des transitions de l’industrie verte et du numérique. », « En primaire : des jumelages numériques dans toutes les écoles européennes »

    12. PACE - PARTI DES CITOYENS EUROPEENS, POUR L’ARMEE EUROPEENNE, POUR L’EUROPE SOCIALE, POUR LA PLANETE !

    Positionnement et idéologie : gauche

    Site https://www.pace-europe.eu/wp-content/uploads/2024/03/Programme-europeennePACE-2024.pdf

    « Créer une véritable cyberdéfense européenne » « Mettre en place une licence globale pour l’accès à la culture sur Internet », « Soutenir l’éducation des filles, y compris par l’enseignement à distance, dans les pays où elles sont discriminées. » « Inscrire l’accès pour tous au réseau internet dans la Charte des droits fondamentaux », « Garantir l’accès de tous les citoyens aux “biens communs” (…) la neutralité du réseau »

    13. ÉQUINOXE : ÉCOLOGIE PRATIQUE ET RENOUVEAU DÉMOCRATIQUE

    Positionnement et idéologie : attrape-tout

    Site https://parti-equinoxe.fr/europeennes-2024-programme/

    « Atteindre nos objectifs climatiques via un système de quotas carbone individuels équitable » (probable effet sur le numérique), « Organiser une Convention citoyenne pour simplifier les normes européennes » (on ne sait pas si le numérique est concerné ou non), « Encadrer plus strictement les plateformes numériques, réguler l’intelligence artificielle et réhumaniser les démarches de la vie courante », « La technologie devient menaçante. Les moyens d’information et de communication numériques y contribuent pour beaucoup. Les algorithmes nous enferment dans des bulles informationnelles. De nombreux experts nous alertent sur les risques grandissants liés à l’intelligence artificielle et aux biotechnologies »

    14. ECOLOGIE POSITIVE ET TERRITOIRES

    Positionnement et idéologie : centre gauche à droite ou attrape-tout

    Site https://www.ecologiepositiveetterritoires.eu/nos-idees/

    « promouvoir la numérisation de tous les secteurs de l’économie, de l’industrie comme du bâtiment ou de l’agriculture, pour les petites et moyennes entreprises. », « L'UE ne doit pas être qu’un arbitre ; elle doit aussi accompagner la mise en œuvre des réglementations [autour de Protection des données et vie privée] », « Il va falloir que l’UE investisse dans le développement de compétences des technologies d’IA, seules capables de traiter un grand nombre de données et capables d’apprendre de leurs expériences [thème cybersécurité] », « soutenir l’innovation dans le secteur numérique en investissant dans la recherche et le développement, en encourageant l’esprit d’entreprise et en fournissant un soutien financier aux startups et aux entreprises technologiques. », « comme pour le secteur agricole, faciliter les transitions du secteur du bâtiment ; nous proposons que l’UE favorise la recherche et le développement de solutions digitales de ce secteur », « Sur une stratégie industrielle européenne avec des « secteurs stratégiques » : l’économie numérique et la cybersécurité, l’intelligence artificielle, (…), doivent être des priorités. », « Chaque pétition regroupant plus de 500 000 signatures devient un projet de directive européenne », « Soutenir la création d’une filière industrielle européenne de recyclage des batteries », « la création d’une société de production audiovisuelle publique européenne, à l’origine de programmes et émissions sur les actions menées. »

    15. LISTE ASSELINEAU-FREXIT, POUR LE POUVOIR D’ACHAT ET POUR LA PAIX

    Positionnement et idéologie : droite à extrême droite ou attrape-tout

    Site https://www.upr.fr/

    Pas de programme 2024

    16. PAIX ET DECROISSANCE

    Positionnement et idéologie : gauche

    Site https://www.decroissance-elections.fr/

    Rien de particulier sur le numérique et sur nos thématiques.

    17. POUR UNE AUTRE EUROPE

    Positionnement et idéologie : attrape-tout ou droite

    Site https://pouruneautreeurope.fr/

    Rien de particulier sur le numérique et sur nos thématiques.

    18. LA DROITE POUR FAIRE ENTENDRE LA VOIX DE LA FRANCE EN EUROPE

    Positionnement et idéologie : droite

    Site https://republicains.fr/programme2024/

    « Mesure 4 : Investir massivement dans l’intelligence artificielle », « Mesure 5 : Mettre en place un plan « Made in Europe 2030 » (« Fabriqué en Europe 2030 ») pour relocaliser la production en Europe et réindustrialiser notre continent », « Mesure 9 : Créer un livret d’épargne européen (LEE) pour orienter l’épargne privée des ménages vers les secteurs stratégiques de notre économie (défense, cloud, biotechnologies, intelligence artificielle, transition écologique, etc.) », « Mesure 8 : Etablir à l’échelle de l’Union européenne un véritable droit de propriété sur nos données personnelles pour redonner de la maîtrise aux citoyens face à la domination des grandes entreprises américaines (GAFAM) et chinoises (Tiktok) »

    19. LUTTE OUVRIERE LE CAMP DES TRAVAILLEURS

    Positionnement et idéologie : extrême gauche

    Site https://www.lutte-ouvriere.org/portail/documents/profession-foi-liste-lutte-ouvriere-camp-travailleurs-166794.html

    Rien de particulier sur le numérique et sur nos thématiques

    20. CHANGER L’EUROPE

    Positionnement et idéologie : gauche

    Site https://changerleurope.com/le-programme/

    « directive pour stopper les délocalisations et répondre à l’Inflation Réduction Act américain » (partie non rédigée), « directive sur la liberté et l’indépendance des médias » (partie non rédigée)

    21. NOUS LE PEUPLE

    Positionnement et idéologie : gauche ou attrape-tout

    Site https://www.nous-le-peuple.fr/idees/

    Rien de particulier sur le numérique et sur nos thématiques.

    22. POUR UN MONDE SANS FRONTIERES NI PATRONS, URGENCE REVOLUTION !

    Positionnement et idéologie : extrême gauche

    Site https://npa-jeunes-revolutionnaires.org/category/actu-campagnes/campagnes/campagne-europeennes-2024/

    Rien de particulier sur le numérique et sur nos thématiques.

    23. « POUR LE PAIN, LA PAIX, LA LIBERTE ! » PRESENTEE PAR LE PARTI DES TRAVAILLEURS

    Positionnement et idéologie : extrême gauche

    Site https://parti-des-travailleurs.fr/les-documents-de-campagne-europeenne-du-pt/

    Rien de particulier sur le numérique et sur nos thématiques.

    24. L’EUROPE ÇA SUFFIT !

    Positionnement et idéologie : droite à extrême droite

    Site https://les-patriotes.fr/europeennes2024/

    « Rejeter l’identité́ numérique européenne », « Défendre la liberté d’expression contre la censure des réseaux sociaux », « refuser l’euro numérique »,

    25. NON ! PRENONS-NOUS EN MAINS

    Positionnement et idéologie : attrape-tout

    Site non trouvé. (cf commentaire)
    Site https://lecourrierdesstrateges.fr/2024/05/20/prenons-nous-en-main-gouverner-la-france-est-une-affaire-trop-serieuse-pour-macron/

    « Non à l’identité numérique » « Non à l’euro numérique »

    26. FORTERESSE EUROPE - LISTE D’UNITE NATIONALISTE

    Positionnement et idéologie : extrême droite

    Site https://euronat.net/

    « rejet de l’Euro numérique »

    27. REVEILLER L’EUROPE

    Positionnement et idéologie : gauche à centre gauche

    Site https://www.glucksmann2024.eu/programme

    « Taxer les superprofits des multinationales » (potentiellement les GAFAM et autres), « Créer un service public européen de lutte contre l’évasion fiscale », « Assurer notre souveraineté numérique en menant une politique industrielle offensive, en créant un fonds souverain pour investir dans le numérique, en imposant des obligations de financement aux géants étrangers en contrepartie de l’accès à notre marché et en poussant un accord international sur l’intelligence artificielle. », « stratégie du “Fabriqué en Europe“ », « “Buy European Act” qui réservera en priorité la commande publique européenne aux productions européennes », « _Sortir de la société du « tout jetable » en luttant contre l’obsolescence programmée, en créant un “droit à la réparabilité”, en développant une filière européenne de la réparation et du recyclage. », « Lutter contre la fracture numérique en imposant que tout investissement privé dans le numérique s’accompagne de financements pour renforcer les infrastructures et services numériques dans les territoires ruraux. », « créer un “défenseur des droits” élu par le Parlement européen. », « Affirmer une réelle exception culturelle européenne pour protéger notre création, doubler le budget européen de la culture pour qu’il atteigne 700 M€ par an, protéger les droits d’auteur. », « Instaurer un Erasmus universel accessible à toutes et tous, concrétiser l’Espace européen de l’éducation par une reconnaissance mutuelle des diplômes dans tous les domaines et par la mise en place d’un mécanisme européen de protection de la liberté académique », « Réguler l’espace numérique et les réseaux sociaux pour lutter contre le cyberharcèlement, les pratiques abusives, la manipulation de l’information et les ingérences étrangères en ligne, assurer l’éducation aux médias et au numérique partout en Europe. », « Assurer l’intégrité de la démocratie européenne et lutter contre l’influence des intérêts privés et étrangers en créant une agence coordonnant la lutte contre les ingérences et une haute autorité de l’intégrité de la vie publique européenne, dotée de pouvoirs d’enquête et de sanctions. », « Développer la démocratie participative via les Initiatives citoyennes européennes qui doivent déboucher sur projet de loi. »

    28. NON A L’UE ET A L’OTAN, COMMUNISTES POUR LA PAIX ET LE PROGRES SOCIAL

    Positionnement et idéologie : extrême gauche

    Site non trouvé. Indirectement via http://www.communcommune.com/2024/05/europeennes-2024-la-liste-officielle-de-candidats-de-la-liste-non-a-l-ue-et-a-l-otan-communistes-pour-la-paix-et-le-progres-social-charles-hoareau.html

    Rien de particulier sur le numérique et sur nos thématiques.

    29 ALLIANCE RURALE

    Positionnement et idéologie : centre ou attrape-tout

    Site https://alliancerurale.fr/

    « défend les libertés individuelles, la liberté d’entreprendre, la liberté de penser et combat les idéologies dogmatiques et liberticides », « défend le principe fondamental de propriété privée ». Rien de particulier sur le numérique et sur nos thématiques.

    30. FRANCE LIBRE

    Positionnement et idéologie : extrême droite ou attrape-tout

    Site https://www.francelibre-2024.fr/

    Rien de particulier sur le numérique et sur nos thématiques.

    31. EUROPE TERRITOIRES ÉCOLOGIE

    Positionnement et idéologie : centre gauche

    Site https://europeterritoiresecologie.fr/

    « doctrine de cyberdéfense », « Taxer les productions importées ne respectant pas des conditions sociales, environnementales ou climatiques minimales dans le pays d’origine. » (probable effet sur le numérique), « supprimant la concurrence fiscale et les paradis fiscaux au sein de l’Union » (probable effet sur les GAFAM et autres), « Créer un “Netflix européen” pour accéder à toutes les productions culturelles financées par les fonds publics. », « Créer un fonds européen pour lutter contre les violences faites aux femmes, y compris les violences numériques. », un « Défenseur des droits européen pour développer des standards communs pour éviter les biais algorithmiques et garantir l’audit obligatoire des IA les plus sensibles pour empêcher les discriminations », « Renforcer la mise en œuvre du RGPD et sa supervision afin de garantir le droit fondamental à la vie privée. », « Éduquer et sensibiliser à l’échelle européenne à la valeur des données à caractère personnel et aux méthodes de protection de ces données car “on a tous quelque chose à cacher” »

    Volt, qui s'est engagé à répondre à Convergences numériques, fait partie de cette coalition.

    Édition post-publication : ajouté en commentaire la réponse de Volt au questionnaire du CNLL.

    32. LA RUCHE CITOYENNE

    Positionnement et idéologie : attrape-tout

    Site https://www.laruchecitoyenne.eu/

    « Pour la fin de l’obsolescence programmée, par la création d’un label européen “éco-durable” afin de promouvoir les biens de consommation les plus pérennes et ainsi réduire nos besoins de recyclage. », « Pour la mise en place des réglementations strictes concernant la gestion des déchets et imposer des normes plus élevées aux entreprises en matière de recyclage. »

    33. GAUCHE UNIE POUR LE MONDE DU TRAVAIL SOUTENUE PAR FABIEN ROUSSEL

    Positionnement et idéologie : gauche radicale

    Site https://www.deffontaines2024.fr/programme

    « L’objectif est aujourd’hui de conquérir la maîtrise des choix politiques, industriels, commerciaux, énergétiques, monétaires, agricoles, alimentaires, numériques et culturels. », « Nous nous battons pour la relocalisation, la création de nouvelles filières industrielles et la maîtrise des filières stratégiques grâce à des nationalisations et des coopérations renforcées entre services publics et entreprises industrielles (énergie, transports, télécommunications…) avec des objectifs sociaux et environnementaux. », « Nous sommes les défenseurs du “Made in Europe“ », « Nous veillerons à ce qu’Internet ne soit pas une zone de non-droit et à ce que les règles françaises et européennes soient appliquées et renforcées. Nous devons mettre fin au monopole des Gafam et autres grandes plateformes, et les réguler. », « construire une industrie européenne du numérique permettant de répondre aux besoins des populations et garantissant la neutralité du Net au niveau continental », lutte « contre la fraude dans le commerce électronique », « construction d’un cloud européen. », « participation des grandes entreprises consommatrices de flux numérique (Gafam, plateformes de type Netflix ou Amazon Prime) au financement des infrastructures Internet dans chaque État-membre, au prorata des flux consommés », « reconstruire une filière nationale et européenne des composants électroniques (processeurs, mémoires…). », « reconstruire des filières nationales et publiques coopérant à l’échelle européenne dans les équipements de télécom et de réseau. », « construction de filières industrielles du numérique, autour des nouvelles technologiques telles que le quantique »

    « taxation des flux et stockages de données numériques », « numérique vienne appuyer la souveraineté agricole et soutenons un usage raisonné des technologies, notamment spatiales d’observation et géolocalisation. », « indépendance et notre souveraineté en matière de géolocalisation, observation et télécommunications spatiales, », lutte « contre l’obsolescence programmée, en favorisant les matériels électroniques reconditionnés », « face à la vague de l’intelligence artificielle, nous voulons mettre en place des garde-fous démocratiques », « une plateforme européenne d’audit des algorithmes, en favorisant pour cela les logiciels en source ouverte, et plus globalement en développant les moyens publics de suivi et anticipation des impacts sociaux et environnementaux des technologies numériques. », « créer des bridages spécialisées (sic) pour contraindre les plateformes numériques à retirer les contenus pédopornographiques », « réviser la directive sur la lutte contre les violences à l’égard des femmes (…) y compris ses dispositions sur l’exploitation sexuelle et la cyber-violence à l’égard des femmes », « Afin de garantir notre souveraineté culturelle face aux attaques des Gafam, il convient de protéger nos industries culturelles », « conservation d’un nombre minimum de 30 % d’œuvres européennes sur les plateformes de vidéos à la demande (VOD) et les chaînes de télévision traditionnelles. », « S’agissant de l’IA générative, nous proposerons que les propriétaires de droits d’auteur puissent réellement interdire l’utilisation de leur création pour la formation des IA (données d’en-(sic) », « création de plates-formes numériques publiques doit être favorisée pour sortir de l’hégémonie des Gafam. » et « L’obligation de financement de la création audiovisuelle française et européenne par les services de médias audiovisuels doit être maintenue, et l’attribution des aides à la création par des professionnelles soutenue »

    34. DEFENDRE LES ENFANTS

    Positionnement et idéologie : attrape-tout

    Site https://defendre-les-enfants.eu/candidats/

    « la numérisation et l’automatisation de ce qui peut l’être [domaine protection des droits de l’enfant et des droits parentaux] », « jugements et suivis de plaintes devraient être accessibles via Internet », « outil web encadré permettrait aux parents de réaliser leurs contacts téléphoniques et en visio via cette interface. », « audiences familiales et de l’Enfance doivent être être  (sic) numérisées en vidéo et accessibles par huissiers, avec retranscription automatisés des débats en texte (notes d’audience). Toutes les décisions doivent être enregistrées numériquement et accessibles aux journalistes et aux universitaires. », « suivi statistique pour l’INSEE, les journalistes et les universitaires » (open data ?), « outil web informatique doit également permettre de suivre les remises en cause de l’autorité parentale par décision judiciaire » et « partage du suivi de santé (carnet de santé) accessible à tous les titulaires de l’autorité parentale », « protection des enfants par rapport à la pornographie comme à tous contenus pour adultes. Nous défendons donc la mise en place d’accès internet “Enfance-adolescence” qui soit limité et adapté à nos enfants ou, à défaut, d’un système de confirmation de l’âge, anonyme et sans conservation de traces informatiques, pour le même résultat »

    35. ÉCOLOGIE AU CENTRE

    Positionnement et idéologie : centre ou attrape-tout

    Site https://ecologieaucentre.com/programme/propositions-europeennes-2024/

    « Interdire tout ce qui peut être remplacé par du filaire (toutes formes d’internet sans fil). », « Interdire le téléphone portable pour les moins de 15 ans. »

    36. DEMOCRATIE REPRESENTATIVE

    Positionnement et idéologie : extrême gauche

    Site non trouvé. Indirectement via https://aulnaycap.com/2024/05/11/hadama-traore-a-boucle-sa-liste-pour-les-europeennes-2024-et-presente-son-programme/

    « impératif de maintenir une gestion publique sur certains biens communs et de les mettre à l’abris (sic) des soubresauts de la financiarisation : la santé, l’éducation, les énergies, les transports, le développement durable, les services des eaux, télécommunications… », « Valoriser un secteur de recherche, de formation, de qualification et économique innovant dans le domaine du développement durable et de nouveaux secteurs stratégiques, de pointe, émergents comme le numérique », « Mener une politique culturelle publique qui pérennise et met au cœur de la société la culture, les arts, le savoir, la création. Ceci en soutenant ses acteurs, professionnels et en développant des lieux de diffusions diverses et accessibles par tous. », « Défendre l’harmonisation fiscale en Europe » (potentiel effet sur les GAFAM et autres)

    37. ESPERANTO LANGUE COMMUNE

    Positionnement et idéologie : attrape-tout

    Site https://europe2024.fr/notre-mouvement/notre-programme/

    Édition post-publication initiale : leur programme mentionne bien « Promouvoir une informatique libre» « Parce que les logiciels libres et les standards ouverts jouent un rôle important dans la démocratisation de l’accès à l’informatique, qu’ils sont une source de liberté et de transparence pour les utilisateurs, par exemple en cas de vote électronique, leur utilisation dans le secteur public doit être encouragée. »

    Rien de particulier sur le numérique et sur nos thématiques, en dehors du multilinguisme.

    38. LIBERTÉ DÉMOCRATIQUE FRANÇAISE

    Positionnement et idéologie : extrême-droite ou attrape-tout

    (liste ajoutée par l'arrêté du 23 mai 2024), post-publication initiale)

    Site: https://www.groupe-ldf.fr/documents/profession-de-foi-de-campagne.pdf

    « sécuriser, limiter les nouvelles technologies (écrans, IA) » (contexte de la protection de l'enfance). Contre l'écriture inclusive et divers trafics, très probablement en ligne aussi.

    Mes retours ?

    • 37 38 programmes à chercher et étudier c’est long, très long, et il ne s’agit que d’un simple parcours (il y a des programmes qui font plus de 170 pages par exemple).
    • a contrario c’est très intéressant de voir apparaître les vraies différences de positionnement
    • certaines listes sont actuellement très peu visibles en ligne
    • certains programmes sont incomplets ou en cours de rédaction. D’autres sont imprécis, que ça soit volontaire ou non (je pense en particulier à une proposition de « lutter (…) contre certains pays »…). Certaines mesures me semblent risibles, disons qu’il y a parfois à boire et à manger parmi ces 37 38 programmes. Certaines mesures ne relèvent pas de l’Union européenne. Certains programmes sont outranciers et parfois à la limite de la légalité sur la non-discrimination (à mon humble avis).
    • beaucoup de programmes n’abordent pas les thématiques autour du numérique (en particulier de nombreux partis dits « attrape-tout » ou les partis extrémistes
    • il y a des thématiques dans l’air du temps : la lutte contre l’évasion ou la fraude fiscale, contre la corruption, sur l’indépendance des médias, les fausses informations, les infrastructures ferroviaires et le train en général, la transparence des instances européennes ou leur réforme, etc.
    • côté numérique : l’intelligence artificielle est présente à toutes les sauces, la volonté de plus d’autonomie en matière de logiciel, matériel et infrastructure autour des données (dont datacenters et satellites), la production de contenus, le filtrage ou non de certains contenus (porno, désinformation), euro numérique et cryptomonnaies, identité numérique, fiscalité du numérique, sobriété et réparabilité, recyclage et obsolescence programmée, modération et biais algorithmiques, etc.
    • quelques partis mentionnent explicitement le logiciel libre (4. LA FRANCE INSOUMISE - UNION POPULAIRE, 6. EUROPE ECOLOGIE, 10. PARTI PIRATE, 37. ESPERANTO LANGUE COMMUNE). Notons aussi que Volt, et donc 31. EUROPE TERRITOIRES ÉCOLOGIE, s'ils ne mentionnent pas explicitement le logiciel libre dans leur programme s'est engagé à répondre à Convergences numériques. Ajouts post-publication : Volt et le Parti pirate ont répondu au questionnaire du CNLL.
    • ça ne couvre que la France (n’hésitez pas si vous voulez vous livrer à l’exercice sur d’autres pays de l’Union européenne)
    • les exceptions françaises rendent les candidatures difficiles pour les nouveaux entrants (seuil de remboursement, seuil d’élection, barrière médiatique où seuls sont regardés/invités/analysés les 7 ou 8 premiers). Voir cet article Européennes 2024 : comment expliquer une telle profusion de listes ? avec des témoignages.
    • si j’ai aidé une personne électrice en faisant cette dépêche, ou inciter une seule personne à aller voter du 6 au 9 juin, ou contribué à ramener les sujets européens dans la discussion, alors je n’aurais pas perdu mon temps.
    • n’hésitez pas à compléter dans les commentaires. Et merci aux personnes qui ont lu jusqu'ici.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Les IA et LinuxFr.org

    Sur LinuxFr, on préfère les IN (intelligences naturelles) aux IA (intelligences artificielles). Las, nous ne sommes pas les seuls à constater un début d’envahissement du site par les IA. Voici ce qui vous (nous) attend dès que ça sera mis en production pour essayer d’y pallier.

    Les faits

    Le constat est le suivant : non seulement les IA spammeuses commencent à polluer le site, mais, en prime, au niveau rédactionnel, elles se montrent plus futées que les vulgaires spammeurs en mode SEO auxquels on était habitués jusqu’à présent. De facto, leur prose est parfois difficile à différencier de celle des autres intelligences, naturelles, elles, qui interagissent sur le site.

    Rédigé ou pas par des IN, le spam reste du spam.

    La solution retenue actuellement

    Heureusement, d’autres que nous se sont penchés sur la question et il existe des critères permettant de faire la différence entre une IA et une IN. À part le test de Turing, s’entend. Après quelques hésitations, nous sommes arrivés à une solution qui devrait, en outre, répondre aux prochains textes législatifs et réglementaires dont l’objectif est de réguler cette zone de non-droit qu’est Internet.

    Dès que ça sera mis en production, les personnes qui accèdent au site sans être connectées auront donc droit à cette fenêtre modale qui nous permettra de séparer le bon grain (les IN) de l’ivraie (les IA). On est franchement désolés d’en arriver là, mais on n’avait pas vraiment le choix. Merci à l’avance de votre compréhension.

    Il est demandé aux personnes de certifier qu’elles peuvent trouver des feux de circulation sur une image même si elles sont aveugles

    La problématique et d’autres solutions envisageables

    Le spam sur un site web peut avoir de nombreuses conséquences négatives, notamment la dégradation de l’expérience utilisateur, la perte de crédibilité et de confiance des utilisateurs, et la diminution du trafic sur le site. En outre, le spam peut également entraîner des problèmes de sécurité, tels que des attaques par déni de service ou l’infection des visiteurs par des logiciels malveillants.

    Pour protéger le site web LinuxFr.org contre le spam, il est nécessaire de mettre en place des mesures techniques restrictives et contraignantes. Ces mesures comprennent l’utilisation de captcha, la validation des adresses IP, la limitation du nombre de publications par utilisateur, la modération automatique des commentaires, et la mise en place de filtres anti-spam.

    Ces mesures permettent de limiter la capacité des spammeurs à envoyer du contenu indésirable sur le site, tout en préservant la facilité d’utilisation pour les utilisateurs légitimes. Bien que ces mesures puissent être contraignantes pour les utilisateurs, il est essentiel de les mettre en place pour garantir la sécurité et la fiabilité du site. En mettant en place ces mesures, LinuxFr.org peut protéger sa réputation et maintenir la qualité de son contenu, tout en offrant une expérience utilisateur optimale à ses visiteurs.

    Dans un second temps, des ajustements seront faits pour :

    1. Renforcer les protocoles de sécurité pour limiter les accès non autorisés et renforcer la protection des données des utilisateurs.
    2. Mettre en place un système de validation stricte pour l’inscription des nouveaux membres afin d’éviter les trolls et les spams.
    3. Limiter la publication de contenus sensibles ou offensants en mettant en place un système de modération plus strict.
    4. Renforcer les mesures anti-piratage pour protéger les contenus et les informations confidentielles du site.
    5. Mettre en place un système de surveillance des activités des membres pour détecter et prévenir les comportements inappropriés ou dangereux.
    6. Renforcer les règles de confidentialité et de protection des données personnelles des utilisateurs en conformité avec les réglementations en vigueur.
    7. Mettre en place des audits de sécurité réguliers pour garantir la fiabilité et l’intégrité du site et de ses serveurs.
    8. Mettre en place un système de sauvegarde automatique des données pour éviter toute perte d’informations en cas de problème technique.
    9. Renforcer la sécurité des transactions en ligne pour protéger les données financières des utilisateurs.
    10. Mettre en place des formations régulières pour sensibiliser les membres aux bonnes pratiques en matière de sécurité informatique.

    Il est essentiel de trouver un équilibre entre la sécurisation absolue des données et la préservation totale de la vie privée et de la liberté d’expression sans limite des utilisateurs.

    Dans un troisième temps, les retouches finales seront apportées :

    • Créer un champ de force magnétique autour du datacenter pour éloigner les astéroïdes et les débris spatiaux.
    • Utiliser des hologrammes pour créer des illusions d’optique afin de détourner l’attention des ennemis potentiels.
    • Utiliser des lasers géants pour dévier les ouragans avant qu’ils n’atteignent les serveurs.
    • Mettre au point une machine à voyager IPoT dans le temps pour aller régler les problèmes du passé avant qu’ils ne deviennent des catastrophes.
    • Créer des capsules de sommeil ultra-efficaces pour permettre aux administrateurs de se reposer en seulement quelques minutes.
    • Utiliser des mini-robots volants pour surveiller et protéger le réseau physique d’accès au site.
    • Développer une technologie de téléportation pour se déplacer instantanément d’un endroit à un autre pour les interventions.

    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

    ❌