Vue lecture

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

AuX sources du fun N° 1 : retrouver le fun dans les inutilitaires graphiques

Après un épisode 000 sur les logiciels inutiles et donc indispensables autour de l'ASCII art, cette dépêche entre dans la fin du XX° siècle avec les inutilitaires ayant des interfaces graphiques.

Sommaire

Introduction : poétique de l’inutile et regard de Xeyes

En ce passage vers une nouvelle année, c’est l’occasion d’inviter à de nouveaux regards, notamment à travers les inutilitaires avec interface graphique dans le domaine du libre, de la même manière que l’interface graphique a étendu leurs possibilités. Il s’agit d’une revisite de ces logiciels qui ont marqué, qui constituent les traces de l’histoire informatique et qui ouvrent à une perception renouvelée, traversés par des souffles multiples, à la fois historiques, poétiques, ludiques et philosophiques, et étendus dans le village global de 2026. Ainsi, nous les aborderons sous ces différentes modalités, à l’aune de ces différentes lumières.

Pour inviter à porter ce regard sur ces angles multiples, nous présenterons les inutilitaires graphiques dans une perspective plurielle, à la fois ludique, poétique et philosophique. En effet, ces équivalents dotés d’une interface graphique (GUI) de leurs homologues en ASCII ART, loin de toute logique de consommation, offrent un espace où le regard peut vagabonder, où l’expérience naît aussi de l’inattendu et de la contemplation. Ce changement de point de vue se manifeste notamment dans des exemples comme le petit programme Xeyes. Aussi inutile soit-il, il est installé par défaut dans la plupart des distributions : il se contente d’afficher des yeux qui suivent la souris, participant ainsi, à son échelle, au déplacement de la perception dans le logiciel libre. Il ne s’agit pas d’affirmer que Xeyes est intrinsèquement dépourvu d’usages utiles possibles, mais de le considérer ici dans une poétique du just for fun à l’instar de Linus Torvalds qui proclamait à Amsterdam que « The most important design issue… is the fact that Linux is supposed to be fun… ». Ainsi Xeyes est vu comme un objet ludique et réflexif, en outre sa page de manuel elle-même adopte un ton d’humour noir explicite : « Xeyes watches what you do and reports to the Boss. »

Bien entendu, Xeyes ne contient aucune backdoor destinée à transmettre des données à un quelconque supérieur — d’où son inutilité revendiquée (OUF). Avec le recul, on pourrait néanmoins y voir une préfiguration ironique des révélations de Snowden, infiniment plus utiles, quant à elles, pour dénoncer des pratiques bien réelles de surveillance. Là où Xeyes se contente d’en proposer une parodie, il rappelle, par le jeu et le décalage, que le logiciel libre sait aussi penser le regard et l’interface autrement que sous l’angle de l’efficacité, participant ainsi, à sa façon, à cette autre poétique. Les yeux malicieux de Xeyes ont aussi été transportés sur d'autres OS

xeyes

De cette contemplation découle également une autre réflexion. Dans son essai « Sauvons le Beau : L’esthétique à l’ère numérique », le philosopheByung-Chul Han (Pyŏng-ch’ŏl Han 한병전) regarde le monde d’aujourd’hui, saturé d’images lisses et parfaites, façonnées par un productivisme qui aplanit l’expérience personnelle. Tout est policé, séduisant, immédiatement consommable, mais dépourvu de profondeur. L’expérience esthétique se consomme comme un fruit sans chair, et le regard se laisse séduire sans se laisser transformer.

À travers Jeff Koons et le corps pornographié, il montre que l’expérience esthétique perd sa rugosité, son mystère, sa personnalisation et sa capacité à surprendre et à bouleverser. Elle devient un reflet étincelant dont l’intérieur sonne creux. Face à cet appauvrissement, Han appelle à se tourner vers l’altérité. Il invite à arracher l’individu à son narcissisme, à le détourner du miroir aux alouettes trop lisse, mais qui ne renvoie qu’une image vide. Voir l’altérité, c’est ramener le spectateur hors de lui-même, le confronter à une expérience esthétique qui change son regard, née de l’inattendu, de la divergence, de ce qui déstabilise. Dans cette rencontre, l’expérience esthétique cesse d’être un simple objet de consommation et redevient un souffle qui questionne, qui surprend et qui bouleverse.

Cette attention au surprenant trouve un écho pour le moins inattendu dans le monde du logiciel libre. Dans The Cathedral and the Bazaar, Eric S. Raymond écrit : « Every good work of software starts by scratching a developer’s personal itch. » Ainsi, chaque programme, chaque création naît d’un désir ou d’un besoin vécu, d’une singularité que l’on cherche à exprimer et à explorer. Ensuite, il ajoute également : « The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better. » Parfois, ce n’est pas l’idée initiale, mais la rencontre avec ce qui vient d’ailleurs, qui enrichit et change la perception. Le logiciel libre, via la rencontre avec l’altérité et de par ses pratiques open source, amènent une approche mêlant une esthétique de la participation, qui constitue une proposition à la critique esthétique d’Han, laquelle, de manière tout à fait surprenante, s’incarne dans le processus de participation à travers le projet libre Gource, intégrant l’approche décrite par Eric S. Raymond et une esthétique du libre dans une danse poétique lumineuse sous forme de constellation spatiale globale.

Entre Xeyes et Gource s’étale une certaine diversité d’inutilitaires que nous parcourons comme une mini-rétrospective, mêlant parfois la grande histoire de l’actualité informatique avec la petite histoire des inutilitaires, souvent inattendue, encourageante, conviviale et poétique. De cette mosaïque émergeront certaines réflexions sur les inutilitaires sous forme d’abandonware, notamment à travers « le voyage de Necko et la retraite de Kodo ». Ces réflexions sont aussi l’occasion de redécouvrir des inutilitaires abandonnés à explorer, véritables parties prenantes de la grande aventure du logiciel libre, de son processus participatif en open source et de son invitation à une ouverture d’esprit et du code.

xeyes

Les décoratifs graphiques

Xjokes

MxIco

Xtacy

Cette quête de l’émerveillement et de la profondeur, au cœur du quotidien hypermoderne, nous mène aussi vers un autre temps, hors de l’aliénante productivité : celui d’un second Han, l’ermite Han Shan 寒山, sur les monts froids de la Chine des Mings. Là, dans la solitude et l’oisiveté attentive, l’expérience ne se cherche pas, elle advient. La légende dit que ses poèmes surgissaient sur les murs, les rochers, les arbres. Poète ch’an, ancêtre du zen japonais, Han Shan demeurait sous les pins, au bord d’un torrent, oublieux de lui-même, contemplant un papillon sans savoir s’il rêvait le papillon ou si le papillon le rêvait, comme chez Zhuang Zi. Puis, puis, dans un élan soudain, il grave quelques vers dans la pierre et s’en retourne en riant vers son ermitage comme tout maitre ch’an , énigmatique et joyeux.

une fois à Han Shan les dix mille affaires cessent
plus aucune pensée fugace ne s’accroche au cœur
oisif, sur un rocher j’inscris des poèmes,
accordé au flux, comme une barque sans amarre.

寒山詩

一住寒山萬事休
更無雜念掛心頭
閑書石壁題詩句
任運還同不繫舟

han shan

xjokes

Dans le logiciel libre, Xjokes se fait l’écho de cette suspension de l’utilité. Ainsi, un trou noir engloutit l’écran, des figures clignent de l’œil, l’écran peut disparaître tout entier. Comme le Boing Ball de l’Amiga ou MxIco fait tourner de simples polyèdres , ces logiciels laissent le regard vagabonder. Oisifs, ces logiciels offrent un espace où le temps semble suspendu, accordé au flux du geste, comme un souffle qui traverse l’espace simplement.

mxico

Un autre poète inconnu sous Xtacy (ecstasy) écrira lui aussi sur le même thème :

Retrouve dans ta tête
Ton âme de poète
Souviens-toi comme c´est chouette
La parfum des violettes
Un soir de pâquerettes

poesie

xtacy

Ainsi Xtacy le fera chanter avec ses couleurs changeantes, ses fractales, ses quadrilatères rebondissants et ses vagues sinusoïdales décalées, invite au vertige .


Les animaux virtuels et autres éléments virtuels de companies

gkrellm-bfm

Ce programme de monitoring dispose d'un canard qui sert… de compagnon?
Un plugin de monitoring de charge pour GKrellM, inspiré de wmfishtime et bubblemon. Il met en scène des poissons pour illustrer le trafic réseau, des bulles pour l’utilisation du processeur et un canard… pour représenter un canard.

Xteddy

Xteddy, en tant qu’inutilitaire, a eu des usages inattendus, allant bien au‑delà de sa fonction de simple peluche virtuelle de premier abord.L’auteur originel de Xteddy, Stefan Gustavson, raconte sur le site archivé :

« I created Xteddy way back in 1994 as a spare time hack for fun. The reception I got from my colleagues was so heart-warming I was encouraged to distribute him world-wide. Much to my surprise, the response was overwhelming. By now, I have received hundreds of friendly messages of appreciation from all over the world, and they keep dropping in even this long after the release. To all of you teddy bear lovers out there: thanks! »

Ce simple projet ludique, conçu pour le plaisir, a rapidement touché et fédéré une communauté internationale. Un utilisateur raconte sur le site xteddy.org :

« Ever since I found out about the Xteddy Unix program, I ran it on my workstations when I was doing my University assignments, as it helped me think. »

Pour certains utilisateurs, dont celui qui a partagé son expérience et mis a disposition le site Xteddy.org, Xteddy a eu un impact bien au‑delà du divertissement : il a servi de soutien émotionnel et d’aide à la réflexion, apportant réconfort et motivation dans des périodes marquées par l’anxiété sociale ou les troubles paniques. Touché par l’influence positive de ce logiciel, cet utilisateur a pris contact et a ensuite créé le site xteddy.org, à la fois espace de témoignage personnel et lieu de mémoire pour la communauté.

« I still get feedback at least once a year thanking me for what I’ve written here, so it > shall remain. I hope others find this interesting and helpful. »

Son engagement s’inscrit également dans une démarche plus large de contribution au logiciel libre, puisqu’il participe activement à divers projets open source, prolongeant ainsi l’esprit collaboratif et de soutien qui entoure Xteddy.
Aujourd’hui, bien que le site de l’auteur original ne soit plus accessible, l’héritage de ce programme se perpétue grâce aux nombreuses distributions

xteddy

XSnow

La neige, avec son blanc immaculé et sa douceur fragile, a inspiré le poète coréen Kim Sowol dans son célèbre poème 눈 오는 저녁 (Snowy Evening). Comme lui, certains pensent à leur amour lointain en observant la neige tomber, tandis que d’autres n’ont pas eu la chance de voir le Père Noël. Cette neige qui s’éparpille au vent mais ne fond qu’au contact des flammes rappelle la fragilité et la profondeur du cœur humain. Aujourd’hui, même ceux qui n’ont pas la chance de contempler la neige réelle peuvent retrouver cette magie grâce à XSnow, un programme qui fait tomber la neige virtuelle sur le bureau, recréant une mini ambiance hivernale dans le silence d’un monde immobile. Sous le ciel pâle, les pensées s’immobilisent, lentes et blanches, tandis que la nuit écoute le pas léger de l’hiver, et que la neige continue de transformer le quotidien en souvenir poétique, et observer par intermittence le traineau du Père Noël defiler sur son ecran. Un classique qui ajoute une touche de fraîcheur aux sessions de travail.

xsnow

xsnow

XPenguins : La Marche des Rêveurs Polaires

Dans le paysage immaculé de votre écran, là où ne règnent que l'ordre et la logique, une troupe inattendue fait son apparition. XPenguins, œuvre de l'esprit créatif de Robin Hogan, est une douce folie, un souffle d'air vif des terres australes. Inspirés des graphismes espiègles du jeu Pingus, ces petits pingouins pixelisés arpentent l'impossible. Ils cheminent le long des précipices de vos fenêtres, se faufilent entre les barres de menus comme entre des séracs de glace, transformant votre bureau en un iceberg numérique où règne une joyeuse absurdité. Ils défilent, pattent, courts et déterminés, dans une marche tranquille et hypnotique, offrant un ballet burlesque contre la rigueur austère de l'interface. Mais leur magie ne s'arrête pas aux confins de votre moniteur. Avec un clin d’œil à XBill, il se poursuit dans le jeu Pingus.

xpenguins

Doggo

Doggo est une IA de chien, développée en Python avec Pygame. Le chien se déplace aléatoirement sur l’écran, change de direction et d’état, et sa couleur de pelage varie de manière aléatoire. Les changements d’état suivent une chaîne de Markov. Ce projet est né de l’envie d’un collègue de l’auteur, qui ne pouvait pas avoir de chien, de créer un compagnon virtuel tout en explorant les chaînes de Markov.

doggo

Xroach

Xroach est un jeu classique qui consiste à afficher des cafards répugnants sur votre fenêtre principale. Ces petites créatures se déplacent frénétiquement jusqu'à trouver une fenêtre sous laquelle se cacher. À chaque fois que vous déplacez ou réduisez une fenêtre, les cafards se précipitent à nouveau pour se mettre à l'abri.

Xfishtank

Un vieil étang (haïku)

Un vieil étang
Une grenouille saute
Des sons d’eau

Aussi bref que ce célèbre haïku de Matsuo Bashō, et rapide qu’un « plouf » dans l’étang, Xfishtank nous transporte directement devant un aquarium où l’on peut contempler la diversité de la faune et de la flore marines, comme on contemple le poème de Bashō.

Xfishtank


Les inutilitaires liés à l’actualité et à l’histoire de l’informatique

Est-ce que Windows est un virus ? XBill

Dans les années 1990, le procès USA Department of Justice (DOJ) vs Microsoft a largement dominé les médias, révélant au grand public les pratiques monopolistiques jugées déloyales de diffusion du système d’exploitation de la firme de Redmond sur les marchés mondiaux. L’accord conclu entre Microsoft et le DOJ n’ayant pas été respecté, de nouvelles poursuites ont été engagées. Ces événements ont nourri les réflexions des autorités européennes de la concurrence et préparé le terrain pour le futur procès contre Microsoft, qui interviendra plus tard, dans les années 2000, au sein de l’Union européenne.

Le mini-jeu XBill, créé dans ces années 1990, illustre ces pratiques de diffusion de manière caricaturale et a suscité des réflexions humoristiques sur une question récurrente : Microsoft Windows n’est-il pas un virus finalement ?

Ainsi, le livre PC GAGS, qui réunit les perles humoristiques de l’époque frappant les plateformes MS-DOS, Windows 3.1 et Windows 95, nous donne à voir cet état d’esprit décalé.

“ Une rumeur persistante circule dans les milieux informatiques, selon laquelle Windows lui-même ne serait rien d’autre qu'un virus plus ou moins bien camouflé (leitmotiv : pour les uns, c’est un système d’exploitation, pour les autres, c’est le plus long virus du monde).

Quelques spécialistes d’Internet ont examiné à la loupe cette théorie. Voici leurs conclusions :
1. Les virus se répandent rapidement. Okay, Windows en fait autant
2. Les virus consomment de précieuses ressources du système et ralen­tissent ainsi le travail de l’ordinateur. Okay, Windows fait la même chose.
3. Les virus anéantissent parfois le disque dur. Okay, Windows est également connu par certains utilisateurs comme se livrant à ce genre d'exaction.
4. Les virus sont souvent glissés dans un ensemble de programmes utiles sans que l’utilisateur le sache, ou bien sont transmis directement avec l’ordinateur. Okay, Windows se propage également de cette manière.
5. Les virus sont parfois responsables de ce que l’utilisateur trouve son système trop lent et s’en achète un autre. Okay, cela arrive aussi avec Windows.
Jusqu’ici, il semble bien que Windows soit effectivement un virus !

Mais il existe trois différences fondamentales :
1. Les virus fonctionnent sur presque tous les ordinateurs.
2. Leur programmation est efficace et leur taille petite.
3. Plus ils se développent, plus ils font des progrès.
Windows ne satisfaisant pas à ces conditions de base, il faut se rendre l’évidence : Windows n’est pas un virus ! ”

Dans ce contexte, XBill s’inspire de cette critique pour caricaturer la propension de Bill Gates à installer Windows partout. Cette caricature interactive montre, d’une part, le CEO de Microsoft, qui installe Windows sur tous les ordinateurs qu’il rencontre, et, d’autre part, Windows lui-même se répandre via les réseaux se multiplier à l’instar d’un virus informatique, infectant les ordinateurs et supprimant les autres systèmes d’exploitation et en s y installant confortablement à leurs places.

xbill

XLennart

Une version dérivée de ce jeu, XLennart, reprend le concept pour caricaturer la controverse autour de Lennart et son init, en montrant son installation remplaçant tous les init des autres systèmes sur les machines Unix-like, poursuivant ainsi l’esprit satirique de XBill appliqué à l’univers des systèmes libres. (N.D.R. : pour éviter de nourrir les trolls, on constate l’existence de cet inutilitaire sans prendre position sur la question de fond.)

xlennart

xlennart

X026 : l’héritage des cartes perforées Hollerith

Bien avant les claviers et les écrans, l’informatique reposait sur des cartes perforées Hollerith, inventées à la fin du XIXᵉ siècle par Herman Hollerith. D’abord utilisées pour accélérer le recensement américain de 1890, elles sont devenues pendant des décennies le support central du stockage des données et des programmes. Dans les années 1950 à 1970, des machines comme le poinçon IBM 026 permettaient de transformer texte et chiffres en trous soigneusement alignés sur des cartes de 80 colonnes. Chaque caractère était codé en BCD-H, un système directement lisible par les ordinateurs de l’époque. Programmer en FORTRAN signifiait alors saisir chaque ligne sur une carte distincte : la moindre erreur impliquait de refaire la carte au format binaire BCD, ce qui imposait une grande rigueur. Le langage herita de ces syntaxes et exigeait ses règles strictes à cause du support physique : colonnes, indentation, numéros de lignes… bref, le code avait autant de contraintes que les joueurs de Tetris les plus acharnés !

L’émulateur X026 redonne vie à cette pratique. En simulant fidèlement l’IBM 026, il permet d’expérimenter concrètement la lenteur, la précision et la discipline qu’exigeait la saisie des données à l’ère des cartes perforées. Plus qu’un simple outil, X026 est une plongée dans l’histoire de l’informatique.

x026

Xabacus

Xabacus est un émulateur de boulier qui illustre les origines du calcul manuel. Il complète bien des inutilitaires comme X026 en experimentant avec ce qui existait avant même l’ère des cartes perforées. Il reproduit le fonctionnement d’un boulier (souvent de type chinois suanpan 算盤 ou japonais soroban 算盤(そろばん) .

xabacus


Assistant virtuel

Les assistants virtuels sont des personnages qui sont l'équivalent humain ou anthropomorphe des animaux virtuels et qui ont soit une fonction esthétique, soit parfois une fonction anecdotique.

Macopix

MaCoPiX (Mascot Constructive Pilot for X) est l'application de mascottes ultime pour les systèmes UNIX et X Window. Vous pouvez y créer des petites créatures qui se posent sur vos fenêtres, des mascottes fixes qui s'installent confortablement sur votre bureau, et même des mascottes horloges pour vous tenir compagnie tout en affichant l'heure. De quoi rendre votre bureau un peu plus vivant et amusant !

macopix

XClock Cat

Issu d’un imaginaire ancien du chat souriant, malicieux et légèrement surréaliste, popularisé dès 1865 par Lewis Carroll avec le Chat du Cheshire dans Alice au pays des merveilles, puis codifié visuellement par l’animation et le design américains des années 1920–1930 (grands yeux expressifs, sourire exagéré, animation souple de type rubber hose), cet archétype trouve une incarnation emblématique avec le Kit-Cat Klock au début des années 1930, célèbre horloge animée aux yeux roulants et à la queue oscillante, avant d’être réinterprété par Disney en 1951 dans Alice in Wonderland ; c’est dans cette continuité culturelle et graphique que s’inscrit Xclock catclock, une variante à base de motifs (motif-based) du programme xclock du X Window System, développée à la fin des années 1980 par des ingénieurs issus du MIT, de DEC, de BBN et de l’université de Berkeley, et remise en ligne sur GitHub à l’occasion du 30ᵉ anniversaire de X10 : cette version ajoute un mode animant yeux et queue à l’écran avec une option de suivi du tempo musical permettant de synchroniser les mouvements du chat avec la musique, Ce chat de Cheshire des temps moderne illustre la rencontre entre histoire de l’informatique, culture visuelle du cartoon et design ludique rétro.

xclockcat

Viguor : le Clippy qui agace… encore plus que Clippy

Pour ceux qui ont connu la torture du traitement de texte Microsoft Word et de son assistant Clippy dans les années 90, Viguor, sur le ton de l’humour noir, permet de retrouver cette expérience frustrante… mais en pire. Cette caricature de l’assistant agaçant n’a qu’un seul objectif : vous faire sourire… ou doucement sombrer dans le désespoir numérique. Bien sûr, il vous demandera ironiquement de signer un impossible EULA/CLUF avant d’interagir avec lui.

vigor

KDE Amor

Amor est une interface permettant de gérer des animations virtuelles sous KDE. Cette application permet d'interagir avec différents personnages de bureau, ajoutant un peu de vie et d’interactivité à l’environnement de travail. Le store KDE fournie de nouvelles versions en ligne

Amor Config


Les écrans de veille : XScreensaver

Dans les temps anciens, lorsque les écrans affichaient une image fixe trop longtemps, ils pouvaient être endommagés par un phénomène appelé combustion interne du phosphore. Pour prévenir ce problème, des utilitaires appelés « économiseurs d'écran » ont été créés. Bien que cette fonction soit aujourd'hui obsolète, les écrans de veille sont devenus des artefacts artistiques en soi, souvent appréciés pour leur côté créatif. Aujourd'hui, tous les bons environnements de bureau en proposent, tandis que les mauvais ont tendance à les retirer de leur offre.

Ainsi, malgré leur origine pratique, les économiseurs d’écran ont évolué et continuent d’offrir une valeur ajoutée au-delà de leur utilité initiale. C’est précisément dans ce contexte que XScreenSaver s'inscrit comme un exemple parfait de réinvention. En 2022, il a célébré son trentième anniversaire, prouvant qu'un bon logiciel peut traverser le temps et les générations. Lancé en 1992, il est rapidement devenu un incontournable pour les systèmes Linux et Unix utilisant le système de fenêtres X11. En plus de proposer une vaste collection d’économiseurs d’écran, XScreenSaver devient une sorte de musée de l’informatique montrant les screensaver les plus vieux (comme la boule rouge et blanche d’Amiga) jusqu’aux effets de demos récentes, offrant une rétrospective de ce qui s'est fait aux différents âges de l’informatique. En somme, XScreenSaver est bien plus qu’une simple collection d’écrans de veille : c’est une courte contemplation, rétrospective esthétique de l’évolution de l’informatique comme peinture animée.

xscreensaver amiga

xscreensaver


Les inutilitaires de « Passage »

Les inutilitaires suivants nous permettent de percevoir le passage, la spatialité et la transition entre les espaces et dimensions sous des angles multiples.

Passage du pixel art au jeu poétique

Poète symboliste influencé par Verlaine et Rimbaud, Antonio Machado privilégie la suggestion, le souffle du rythme et l’émotion intérieure plutôt que la description réaliste. Cette sensibilité se retrouve aussi dans Passage, qui n’est pas un simple jeu libre mais un jeu-art à forte dimension poétique. Comme dans la poésie symboliste, le sens n’est jamais donné explicitement : il se construit à travers des images simples, presque abstraites, et une atmosphère mélancolique. Le pixel art, volontairement épuré, agit comme un symbole, à l’image des paysages intérieurs de Machado, où le temps, le souvenir et le chemin de la vie sont suggérés plus que racontés. À la manière d’Antonio Machado, qui cherchaient à « faire sentir » plutôt qu’à expliquer, Passage invite le joueur à une expérience sensorielle et méditative, proche d’un poème visuel en mouvement.

Divulgachage / Spoiler Alert / Des vidéos de spoiler de Passage existent sur YouTube, mais nous ne vous déconseillons de les regarder avant d’y jouer. Comme dans la poésie symboliste d’Antonio Machado, le sens de l’œuvre naît de l’expérience personnelle et de la découverte progressive. Regarder le jeu à l’avance enlèverait une grande partie de son impact émotionnel, car Passage repose sur la surprise, le temps vécu et l’interprétation intime. À l’image d’un poème que l’on doit lire et ressentir soi-même, ce jeu-art ne se comprend pleinement qu’en étant parcouru, pas observé de l’extérieur

passage

Du réalisme logiciel au réalisme magique… en labyrinthe

XEarth, XMountains et XWorld

Dans la cité-monde numérique, XEarth, XMountains et XWorld, véritables ancêtres de Google Earth et OpenStreetMap, incarnent une approche réaliste de l’exploration. XEarth reproduit la topographie et les climats d’une planète tangible, XMountains offre des chaînes de reliefs et de vallées à arpenter, et XWorld articule ces espaces en un réseau interconnecté reflétant un village global cohérent. Dans ces univers, la navigation est ordonnée et structurée : chaque élément a sa place, chaque espace peut être cartographié et compris, malgré leur grandeur presque infinie, rappelant la logique combinatoire finie mais immense décrite dans la Bibliothèque de Babel de Borges. Ces environnements offrent une immersion classique, vue extérieure, où l’utilisateur agit comme un arpenteur rationnel dans un monde cartographié et cohérent.

xearth

xmountain

xworld

FSV2 et GopherVR

Dans FSV2 et GopherVR, chaque déplacement transforme l’espace en un labyrinthe vivant. En parcourant répertoires et sites, l’utilisateur croise des chemins qui se multiplient, se bifurquent et se recroisent, révélant des angles inattendus et des perspectives surprenantes à chaque pas. On ne se contente plus de « voir » : on ressent l’infini et l’ordre simultanément, chaque choix de parcours offrant un condensé d’informations et de points de vue au-delà de la perception 2D habituelle. Explorer ses fichiers dans FSV2 devient un acte poétique et intellectuel, presque rituel. GopherVR, quant à lui, transforme l’accès à la base de données en une exploration tridimensionnelle digne du Gibson dans le film Hackers

fsv

gophervr

Pour ceux qui souhaitent une simulation du voyage dans le Gibson, XScreenSaver, cité précédemment, en offre cette expérience immersive. Comme dans La Demeure d’Astérion, chaque couloir, chaque recoin est à la fois familier et mystérieux, invitant l’utilisateur à se perdre pour mieux se retrouver, à savourer la surprise de chaque bifurcation et à redécouvrir l’ordinateur comme un espace à la fois tangible et imaginaire.

Gibson xscreensaver

fsv linux gibson

Le voyage de Neko et la retraite de Kodo

Réflexion sur les inutilitaires en tant qu’abandonwares libres et sur ceux sans équivalents libres

Dans notre exploration des inutilitaires graphiques libres, nous avons remarqué un contraste frappant entre deux situations. Cela nous a conduits à une réflexion sur le rapport entre abandonware et logiciel libre, que nous appellerons « le voyage de Neko et la retraite de Kodo », comme un conte philosophique oriental illustrant certains paradoxes numériques.

Le voyage de Neko

neko

Il hante nos écrans d’un pas de velours numérique, ce petit chat blanc échappé des brumes des années 80. Neko… Son nom, qui signifie simplement « chat » en japonais, est bien plus qu’un mot : c’est une présence tranquille dans le paysage froid de la machine. Ce félin graphique est né sur les NEC PC-9801 en 1988 par Naoshi Watanabe (若田部 直), un programme propriétaire mais doté d’une grâce qui franchirait les décennies. Il a été le compagnon discret de nos révolutions numériques, suivant la danse des curseurs à travers les âges du silicium. Son ballet est hypnotique : il poursuit le pointeur avec la grâce d’un félin mythique, s’arrête parfois pour une pause, s’enroule sur lui-même, et succombe à un sommeil paisible, un sphinx pixelisé attendant le prochain mouvement.

  • 1989 : Sur Macintosh, Neko devient un accessoire de bureau signé Kenji Gotoh, toujours propriétaire mais distribué gratuitement, avec ses fameuses animations de sommeil.

  • Années 90 : Il parcourt Windows 3.x (WNEKO et Neko Runs Free), IBM OS/2 et NEXTSTEP, restant à chaque fois propriétaire et distribué, mais non modifiable.

  • 1991 (System 7) : Sur Mac, la version System 7 permet de modifier le pointeur avec divers jouets pour chat, ajoutant un charme ludique aux interactions.

  • 1991 (Xneko) : Masayuki Koba (古場正行) réécrit Neko pour Unix/X11, lui donnant la liberté du code. Il devient alors un logiciel libre, partageable et modifiable.

  • Toujours em 1991 : Oneko par Tatsuya Kato transpose Xneko sur Linux et BSD, introduisant d’autres animaux. Son esprit libre pénètre les jardins de GNU/Linux

  • 1997 : Sur Amiga, Neko devient Ameko, adaptation freeware mais sans code source ouvert. Pas encore de port pour Aros. Fin des années 90, un port fermé existe pour BeOS (Replicat).

  • Des années 2000 à aujourd’hui : Neko continue de danser sur nos écrans, que ce soit dans Tux Paint. On le retrouve notamment avec Neko on Desktop (Mac, 2000), webneko en JavaScript (2004), Neko in Java (2010), une version tactile sur Arduino (2010), Neko x64 pour Windows (2010) et enfin sur Android via le repot libre F-Droid avec Aneko

Ainsi, le voyage de Neko s’écrit des contrées privatives aux archipels du libre : un petit chat de pixels, doux fantôme du passé, qui rappelle que la magie réside parfois dans les choses les plus simples.
Cependant, ce voyage soulève une question : combien d’autres fantômes numériques, d’inutilitaires propriétaires, sont restés prisonniers de leurs époques et de systèmes fermés, incapables de franchir le miroir ? De nombreux petits programmes sur Amiga, Atari ST,Amstrad CPC, OS/2, Acorn, Sinclair QL, Commodore 64, ZxSpectrum, MS-DOS, DR DOS Windows 3.1 Windows 95 et toutes les familles Unix proprietaires… ont disparu avec les systèmes d’exploitation qui les portaient, abandonnés à jamais.

onkeo

La retraite de Kodo

En parallèle, on trouve Kodo ou Kodometer, né libre mais ayant connu un retrait de parcours.Kodomètre était une application KDE qui mesurait la distance parcourue par le curseur de la souris sur le bureau. Son interface imitait un compteur kilométrique et permettait de suivre la distance totale ainsi que des trajets précis, en unités métriques ou américaines.À l’origine basé sur le programme VMS/Motif Xodometer de Mark H. Granoff, il a été porté vers KDE/C++ par Armen Nakashian, qui l’a découvert sur le bureau d’un collègue. L’application restait surtout ludique, permettant d’observer ses habitudes d’utilisation. Avec le temps, Kodomètre a été abandonné : il ne figurait plus dans les paquets KDE.

Abandonware et logiciel libre : fragilité des inutilitaires

Ainsi, certains inutilitaires propriétaires ont été définitivement abandonnés, tandis que d’autres, semblent glisser progressivement vers ce statut. D’autres encore n’ont jamais franchi « l’autre côté du miroir », à l’image du voyage de Neko, c’est-à-dire le passage d’un modèle propriétaire vers une version libre. Bien que cela n’altère pas leur valeur ludique, artistique ou philosophique, cela compromet leur avenir : privés de sources accessibles, ils perdent toute possibilité d’évolution et de renouvellement. Pour ceux qui ne sont pas passés de l’autre côté du miroir, l’émulation ou la virtualisation restent souvent les seuls moyens de les préserver de l’oubli. Toutefois, en tant qu’inutilitaires peu connus, ils risquent de disparaître lentement de la mémoire collective. L’approche préservation d’abandonware tente d’apporter une réponse, mais elle demeure contraignante : rares sont ceux qui installeront un système complet, en dual-boot ou en machine virtuelle, au seul fin de retrouver la poésie singulière de ces inutilitaires obscures. Dans le cas de la mise en retrait de Kodo, ou de l’abandonware dans le logiciel libre, Eric S. Raymond rappelait un principe fondamental :

« When you lose interest in a program, your last duty to it is to hand it off to a competent successor. »

Comme il le souligne dans The Cathedral and the Bazaar, la vitalité d’un logiciel dépend non seulement de l’engagement de ses créateurs initiaux, mais aussi de leur capacité à le transmettre à ceux qui sauront le faire vivre et évoluer.
Cette dualité met en lumière la fragilité des « inutilitaires » numériques : les logiciels propriétaires abandonnés demeurent prisonniers de leur époque, tandis que certains logiciels libres sombrent également dans l’oubli faute de suivi ou de communauté active.

Nous en arrivons désormais à Gource, afin de percevoir ce que représente une communauté vivante, participative et active : la face la plus connue du logiciel libre, celle que tous les community managers aspirent à montrer et que tous les participants souhaitent expérimenter, à l’inverse des logiciels abandonnés.

Gource en guise de conclusion pour 2025 et de Passage en 2026

Gource ou la danse du libre dans le village global contemporain

En passant à la nouvelle année 2026, notre ère actuelle de la participation collaborative, portée par les projets libres et open source, Gource déploie l’histoire d’un projet logiciel comme un poème en mouvement : des points de lumière naissent, se rapprochent, se séparent, traçant dans l’obscurité la mémoire vivante du code. Chaque commit devient une bifurcation du temps, et l’écran se fait constellation où l’effort collectif palpite. À la manière d’Octavio Paz, cette visualisation n’explique pas : elle révèle. Elle suspend le regard entre le flux et la forme, entre l’instant et la durée, rappelant le mouvement circulaire de son texte Piedra de sol (1957), où le temps n’avance pas en ligne droite mais revient, se replie et se réinvente. De la même façon, Gource ne raconte pas le développement comme une simple succession de versions, mais comme un présent perpétuel où passé et devenir coexistent à l’écran.

Chaque apparition de fichier ou de contributeur agit comme un « instant éclair », où le flux se condense et devient visible. La visualisation devient alors un espace de dialogue — entre individus, entre traces, entre silence et action — faisant écho à Blanco (1967), poème de l’espace et de la relation, ouvert à des lectures multiples, sans centre unique. Comme chez Paz, le sens ne naît pas de la juxtaposition de signes, mais de leur mise en relation.

Cette pluralité en mouvement rejoint la vision cosmopolite de Himno entre ruinas, où les voix du monde se croisent sans se dissoudre. Gource matérialise cette dynamique en montrant le développement comme une constellation d’acteurs dispersés sur la planète, unis par un même espace symbolique. Ici, l’interconnexion n’est pas un simple outil technique : elle est la condition même de l’existence du projet. C’est en cela que Gource rejoint la pensée de Marshall McLuhan, pour qui le « village global » ne désigne pas une uniformisation du monde, mais une intensification des relations, où chaque geste local résonne immédiatement à l’échelle planétaire.

Enfin, à l’image de Viento entero, où le présent se construit à partir de fragments hérités et réassemblés, Gource fait émerger une œuvre collective à partir de traces, de modifications successives, de strates de mémoire. Dans cette cité-monde interconnectée que McLuhan entrevoyait, la réflexion ne commence plus à partir d’un centre stable, mais du réseau lui-même. Gource en offre une figuration sensible : un village global de code et de lumière, où la création naît du passage, de l’échange et de la rencontre, et où l’interconnexion devient le point de départ de toute pensée commune.

Chaque contribution devient un souffle, chaque fichier une étoile, et le code collectif se déploie comme un poème en mouvement, où passé et présent, technique et humain, local et global s’entrelacent. C’est ainsi que nous sommes invités à percevoir nos vies numériques au cœur de nos interactions et de nos commits au sein de ce projet planétaire.

Ainsi, à travers Gource, l’esthétique du processus de collaboration globale propre au logiciel libre apporte une réponse concrète au questionnement du philosophe Byung-Chul Han (Pyŏng-ch’ŏl Han 한병전), qui déplorait la perte de profondeur au profit de surfaces lisses, brillantes et réflexives, mais fondamentalement creuses. Gource, par sa cartographie en constellations des processus collaboratifs du logiciel libre, démontre qu’il est possible d’évoluer au sein d’une constellation scintillante sans renoncer à la profondeur, celle-ci étant incarnée par le code source, l’historique des contributions et le processus open source d’élaboration collective du logiciel libre.

Contrairement aux œuvres de Jeff Koons, dont la brillance tend à masquer le vide, la visualisation proposée par Gource repose sur un socle profond, multiple et participatif. La surface lumineuse n’y est jamais autonome : elle renvoie toujours à une réalité sous-jacente faite de travail, de temporalité, de négociations, et de coopérations. En ce sens, Gource peut être considéré comme un exemple paradigmatique d’un reflet brillant issu d’un modèle profondément structuré, à l’exact opposé de l’esthétique lisse et creuse dénoncée par Han.

Par ailleurs, Gource incarne de manière exemplaire un espace de l’altérité, rendu visible par la contribution de chacun. Chaque contributeur y apporte sa perspective singulière, sa sensibilité propre et sa touche personnelle, participant ainsi à une œuvre collective en perpétuel devenir. Cette dynamique rejoint l’analyse d’Eric S. Raymond dans The Cathedral and the Bazaar, lorsqu’il souligne que « The next best thing to having good ideas is recognizing good ideas from your users », rappelant que la richesse du logiciel libre réside précisément dans la reconnaissance et l’intégration des apports de l’autre.

Enfin, à l’instar des poèmes de Han Shan surgissant sur les rochers ou les murs, Gource fait apparaître un ciel constellé, où chaque contribution éclaire fugitivement la galaxie vivante du projet, révélant la fluidité d’un processus créatif libre et en mouvement.

gource

gource2

Conclusion

L’histoire des inutilitaires se déploie comme une poésie vivante, du calcul solitaire à l’intelligence collective. Sur son chemin, des instants inattendus surgissent : Xteddy, simple peluche virtuelle, montre que l’inutile peut étonner, émerveiller et tisser des liens, éveillant réflexion et imagination.

Les communautés libres insufflent vie à ces créations, leur offrant la force de survivre, d’évoluer et de voyager librement de plateforme en plateforme, à l’instar de Neko.

Dans un monde de codes et de réseaux, chaque contribution devient une étoile dans le « village global » de McLuhan, où frontières et distances s’effacent. Gource, FSV2 et GopherVR transforment l’exploration numérique en chorégraphie de lumière et de mémoire, révélant l’élan vivant et créatif des communautés du logiciel libre. L’informatique cesse alors d’être purement utilitaire : elle devient poésie, labyrinthe et voyage.

Mais la survie d’un logiciel ne repose pas seulement sur l’ouverture de son code : elle exige transmission, engagement communautaire et capacité à évoluer. Nous espérons que de plus en plus d’abandonwares et d’inutilitaires suivront le voyage de Neko, passant de l’ombre à la lumière du libre, enrichissant sans cesse l’espace vivant du logiciel. Il est tout aussi crucial que les logiciels déjà libres ne soient pas abandonnés, afin que l’histoire de l’informatique continue de s’écrire dans une dynamique collective et créative, où chacun reste acteur de son informatique, à l’inverse des monopoles évoqués dans XBill.

Et qu’un jour, nous puissions nous voir dans une de ces constellations cartographiques telle que Gource nous le montre, pour contempler, émerveillés, que dans cette poésie numérique, nous y avons tous participé.

Bonne année 2026 !

Pour aller plus loin ensemble en traineau

Il existe peu de livres consacrés aux inutilitaires, car, comme le pensait IBM (à l’inverse, par exemple, de l’Amiga) et sous son influence sur le domaine, l’informatique était considérée comme une affaire sérieuse. Pourtant, certains ouvrages ont documenté et inspiré ces créations décalées et humoristiques, notamment :

Commentaires : voir le flux Atom ouvrir dans le navigateur

La Commission européenne publie une feuille de route sur le logiciel libre

La Commission européenne a récemment publié une feuille de route stratégique intitulée « Feuille de route thématique sur l’open source et contributions sur les principes de confiance communs » (« La voie du logiciel libre vers la souveraineté numérique et la compétitivité de l'Union européenne »), préparée par l'Alliance européenne pour les données industrielles, l'Edge et le Cloud (dont l'auteur de ces lignes fait partie). Ce document de 68 pages propose et détaille un plan d'action visant à positionner le logiciel libre comme un pilier central de la stratégie européenne pour renforcer son autonomie technologique face aux acteurs non-européens.

Le rapport part du constat de la dépendance de l'Europe dans les domaines du cloud, de l'edge et de l'IoT, et propose 70 actions concrètes pour y remédier. Parmi les mesures les plus significatives, on trouve notamment : la mise en place d'une politique d'achat public favorisant systématiquement les solutions libres européennes, la création d'un fonds de financement dédié aux projets critiques, et l'application de standards d'interopérabilité réellement ouverts pour contrer le verrouillage fournisseur (vendor lock-in).

Ce ne sont bien sûr que quelques propositions parmi les 70. Pour plus de détails, cliquez sur « lire la suite ».

Sommaire

Le contexte

Cette feuille de route a pour objectif de transformer les ambitions de souveraineté numérique en un programme d'actions d'ordre technique, économique et politique. Elle s'adresse aux décideurs, notamment politiques, mais son contenu a des implications directes pour les développeurs, les entreprises et les contributeurs de l'écosystème du logiciel libre et Open Source en Europe. Bien évidemment (et malheureusement), rien n'est acté à ce stade, mais au moins, les propositions sont sur la table et entre les mains de la DG CONNECT (direction générale des réseaux de communication, du contenu et des technologies de la Commission européenne).

L'Alliance européenne pour les données industrielles, l'Edge et le Cloud, qui est à l'origine de ce document, est une initiative facilitée par la Commission européenne. Elle réunit des entreprises exclusivement européennes, des représentants des États membres et des experts du domaine. Son rôle est officiellement de guider les investissements et de conseiller les instances européennes pour construire un écosystème numérique compétitif et autonome.

Notons que, bien que la feuille de route concerne explicitement uniquement le Cloud, l'Edge et l'IoT (infonuagique, informatique en périphérie et objets connectés),

Le document a été produit par un groupe de travail dédié (task force) au sein du groupe de travail constitué de Stéfane Fermigier (Abilian), Alberto P. Martí (OpenNebula Systems), Jean-Baptiste Piacentino (Clever Cloud), Charles-Henri Schulz (Vates) et Arthur van der Wees (Arthur Strategies & Systems), puis validé en session plénière par l'ensemble de l'Alliance.

Le diagnostic

Le rapport identifie (ou rappelle) les principaux freins au développement d'un écosystème numérique européen souverain fondé sur le logiciel libre :

  • L'interopérabilité et les standards : L'influence d'acteurs dominants qui promeuvent des standards faussement « ouverts » (open washing) pour maintenir leur position et complexifier l'intégration de solutions alternatives. On pourra consulter à ce sujet le passionnant papier de Nora von Ingersleben-Seip, "How the European Union Fell Out of Love with Open-Source Software" (TUM School of Social Sciences and Technology, 2025).
  • Les ressources et le financement : La dépendance de nombreux projets libres et Open Source européens à des financements sporadiques ou à l'effort de bénévoles, ce qui limite leur capacité à assurer la maintenance, la sécurité et l'évolution à long terme.
  • L'adoption par le marché : La persistance de préjugés sur la complexité et le manque de support des solutions libres, renforcée par l'omniprésence du marketing des fournisseurs de logiciels propriétaires et de services cloud propriétaires fermés.
  • Les compétences et les "talents": Un déficit de professionnels qualifiés sur les technologies libres et Open Source, ce qui accroît la dépendance à l'expertise non-européenne.
  • La gouvernance : Le fait que de nombreux projets Open Source, même avec une forte contribution européenne, soient gouvernés par des fondations ou entités basées hors de l'UE, alignant potentiellement leurs décisions sur des intérêts stratégiques non-européens et les soumettant aux lois extra-territoriales américaines (notamment).

Des propositions articulées en 5 piliers

Pour répondre à chacun de ces défis, nous avons proposé dans la roadmap une série de mesures, articulées autour de 5 "piliers", dont chacun vise un objectif précis :

  1. Développement technologique : Bâtir une fondation technique souveraine et interopérable.
  2. Développement des compétences : Créer le vivier de talents nécessaire pour faire fonctionner cet écosystème.
  3. Achat public : Utiliser la puissance de la commande publique comme levier d'adoption stratégique.
  4. Croissance et investissement : Mettre en place un environnement propice au financement et à la croissance des projets.
  5. Gouvernance et durabilité : Assurer la pérennité, la sécurité et le contrôle européen des initiatives clés.

Voici une sélection des propositions les plus structurantes, groupées par pilier :

Piller 1: Développement technologique

  • Appliquer des standards d'interopérabilité techniques (API, protocoles de transfert) réellement ouverts, gratuits, et implémentables sans restriction pour garantir une interopérabilité effective.
  • Créer et financer un Fonds de Souveraineté Européen pour l'Open Source (EOSSF), un fonds dédié pour soutenir durablement les projets libres jugés critiques pour l'infrastructure et l'autonomie de l'Europe. OpenForum Europe propose, par exemple, la création d'un fonds pour la souveraineté technologique européenne (EU Sovereign Tech Fund - EU-STF).
  • Produire des implémentations de référence complètes pour des secteurs clés (santé, administration…) basées exclusivement sur des briques logicielles libres européennes.

Pillier 2: Développement des compétences

  • Mettre en place des programmes de formation et de certification techniques reconnus au niveau européen (orchestration, sécurité, conformité RGPD) et axés sur les solutions libres européennes.
  • Intégrer les concepts du logiciel libre et de la souveraineté numérique dans les cursus d'ingénierie et d'informatique.

Pillier 3: Achat public

  • Adopter la politique « Public Money, Public Code, Open Source First, European Preference », rendant obligatoire la priorité aux solutions logicielles libres dans la commande publique, en y ajoutant une clause de préférence pour les projets d'origine européenne.
  • Établir des critères clairs pour définir un projet « Open Source Européen » (origine du développement, localisation de la gouvernance, communauté) afin de qualifier une solution et d'éviter le marketing trompeur.
  • Créer un référentiel public de solutions libres recommandées sur le modèle du SILL français, pour guider les acheteurs publics. NB: il en existe déjà un au niveau européen, mais qui le connait?

Pillier 4: Croissance et investissement

  • Développer une plateforme d'investissement (EOSIP), un portail centralisant toutes les aides (subventions, prêts, capital-risque) disponibles pour les projets libres européens.
  • Lancer une marque « European Open Source » pour promouvoir la visibilité et la crédibilité des projets respectant des standards élevés de qualité et de sécurité.

Pillier 5: Gouvernance et durabilité

  • Fournir des ressources pour la conformité réglementaire, notamment pour aider les projets libres (en particulier les PME et petites structures) à se conformer aux régulations comme le Cyber Resilience Act (CRA) sans freiner leur développement.
  • Créer un comité consultatif européen pour le logiciel libre, composé d'experts de l'industrie et de la communauté, pour superviser la stratégie de financement et de soutien.

Conclusion et appel à l'action

Face à 70 propositions, la première réaction peut être le scepticisme ou le sentiment d'impuissance. Ce serait une erreur de voir ce rapport comme un bloc monolithique à prendre ou à laisser. Il faut plutôt le considérer comme une boîte à outils : certaines actions sont politiques et nécessitent un appui fort ; d'autres sont techniques et peuvent être mises en œuvre de manière distribuée. Certaines sont des marathons structurels ; d'autres des sprints à l'impact rapide. Certaines ont un coût important, d'autres sont simplement un choix de réallocation de resources ou de changement de perspective.

La question n'est donc pas de savoir si tout sera appliqué, mais bien : par où commencer, et qui fait quoi ?

Ce rapport ne survivra pas au cynisme de salon. Dire que « ça ne marchera jamais » est la plus facile des prophéties auto-réalisatrices. La seule démarche constructive consiste à se demander : quelles sont les conditions de réussite pour les propositions qui nous semblent les plus critiques, et comment pouvons-nous, chacun à notre échelle, y contribuer ?

La question devient alors : que faire, concrètement ?

  • S'informer et maîtriser le sujet : Lire le rapport (au moins le résumé exécutif et les propositions qui vous concernent directement) pour pouvoir en parler avec précision.
  • Diffuser et interpeller : Faire connaître cette feuille de route. Contacter les élus (députés nationaux, européens) et les décideurs (dans l'administration, les collectivités territoriales ou les entreprises) pour leur demander de se positionner. Un plan d'action, même ébauché, ne vaut que s'il est connu de ceux qui peuvent le mettre en œuvre.
  • Participer et apporter l'expertise technique : Suivre les consultations publiques de la Commission européenne ou s'enregistrer comme expert lorsque c'est pertinent. Y répondre est une occasion d'injecter une expertise technique de terrain dans le processus réglementaire.
  • Décliner : Traduire les principes de la feuille de route en actions locales. Que ce soit au sein de son entreprise, de son administration ou de sa collectivité, il est possible d'adapter les recommandations : évaluer sa propre dépendance technologique, monter un programme de formation interne, ou proposer un schéma directeur et une politique d'achat favorisant l'ouverture et l'interopérabilité. Il s'agit de rendre la démarche opérationnelle sur son propre terrain.
  • S'engager et construire : Soutenir les organisations qui portent ces combats au niveau européen (APELL, FSFE, OSI, OpenForum Europe, etc.). Et surtout, contribuer directement et soutenir les projets de logiciels libres ou autour du libre européens qui sont au cœur de cette stratégie.

Annexe: la liste des 70 propositions

Voici la liste complète des propositions de la feuille de route, traduites en français et toujours organisées par pilier.

Pilier 1 : Développement Technologique

  • Définir des spécifications techniques en tant que standards ouverts pour les environnements cloud, edge et IoT Open Source européens.
  • Financer des projets pilotes d'interopérabilité qui privilégient l'utilisation des technologies Open Source européennes.
  • Exiger que tous les projets d'infrastructure numérique financés par l'UE adhèrent à ces standards d'interopérabilité.
  • Promouvoir et imposer la mise en œuvre de standards ouverts dans toute l'UE.
  • Créer un "Fonds de Souveraineté Open Source Européen" (EOSSF) dédié aux projets essentiels.
  • Offrir des subventions ciblées pour la sécurité, la maintenance et le renforcement de la souveraineté des projets Open Source.
  • Favoriser une collaboration approfondie avec les institutions universitaires européennes et les bureaux de programmes Open Source (OSPO).
  • Développer un guide pratique pour les responsables des marchés publics afin d'évaluer les solutions Open Source européennes.
  • Créer des architectures de référence spécifiques à chaque secteur basées sur les technologies Open Source européennes.
  • Lancer des projets de démonstration à grande échelle pour illustrer les avantages pratiques des solutions Open Source européennes.
  • Produire et distribuer des "guides pratiques" ("playbooks") complets pour le déploiement de solutions Open Source européennes.
  • Mettre en œuvre des politiques pour encourager activement l'adoption de ces implémentations de référence dans les marchés publics.

Pilier 2 : Développement des Compétences

  • Organiser des ateliers de formation axés sur l'industrie avec un accent européen sur les outils et plateformes Open Source.
  • Offrir des subventions de formation ciblées aux PME et aux organismes du secteur public pour le perfectionnement en Open Source européen.
  • Lancer des programmes de certification pour la maîtrise des technologies et des standards Open Source européens.
  • Mettre en place des programmes de reconversion financés par l'UE pour aider les professionnels à se tourner vers des rôles Open Source européens.
  • Collaborer avec des partenaires industriels pour créer des opportunités d'apprentissage pratique et de placement dans l'Open Source.
  • Offrir des incitations financières aux entreprises qui participent à des programmes de reconversion et utilisent l'Open Source européen.
  • Développer une plateforme de ressources Open Source européenne regroupant du matériel de formation, des bonnes pratiques et des études de cas.
  • Intégrer les principes de l'Open Source européen dans les cursus STIM (Sciences, Technologie, Ingénierie et Mathématiques) du secondaire à l'université.
  • Soutenir la création de "centres d'excellence" Open Source européens dans les universités.
  • Développer des concours de codage et des hackathons à l'échelle de l'UE axés sur les solutions Open Source européennes.
  • Introduire une formation sur les modèles économiques de l'Open Source européen dans la formation professionnelle.
  • Créer des modules de formation professionnelle pour la gestion de projet Open Source européen.
  • Établir une certification pour la maîtrise des compétences commerciales liées à l'Open Source européen.

Pilier 3 : Pratiques d'Achat Public

  • Lancer une consultation avec les organismes du secteur public et les fournisseurs Open Source pour identifier les défis liés aux marchés publics.
  • Rendre obligatoires les politiques "Argent Public, Code Public, Open Source d'Abord, Préférence Européenne" dans les marchés publics.
  • Élaborer des lignes directrices complètes pour les marchés publics afin d'évaluer et de sélectionner les solutions Open Source européennes.
  • Financer des projets de démonstration montrant le succès du remplacement de systèmes propriétaires par l'Open Source européen.
  • Établir des critères clairs pour définir ce qui constitue une solution Open Source "européenne".
  • Fournir un guide pratique aux responsables des marchés publics pour évaluer les solutions Open Source.
  • Collaborer avec l'industrie et les organismes de normalisation pour développer des critères d'évaluation accessibles pour l'Open Source.
  • Créer un répertoire public des solutions Open Source européennes recommandées.
  • Encourager les organismes du secteur public à adopter les solutions développées dans le cadre de l'initiative "Next Generation Internet" (NGI).
  • Lancer des projets transfrontaliers d'achats pré-commerciaux (PCP) axés sur l'Open Source européen.
  • Créer des plateformes de partage de connaissances pour les retours d'expérience des initiatives PCP et les bonnes pratiques Open Source.
  • Impliquer activement les fournisseurs Open Source européens dans la co-conception de solutions dans le processus PCP.
  • Publier des lignes directrices pour aider les organisations du secteur public à gérer et soutenir l'Open Source européen.
  • Promouvoir la participation active des représentants du secteur public dans les communautés Open Source européennes.
  • Soutenir des programmes de formation pour le personnel du secteur public sur la gestion de projet et la conformité Open Source.
  • Engager les parties prenantes pour affiner et simplifier de manière collaborative les pratiques d'achat pour l'Open Source.

Pilier 4 : Croissance et Investissement

  • Créer une Plateforme d'Investissement Open Source Européenne (EOSIP) pour centraliser les informations sur le financement.
  • Organiser des ateliers d'information pour les PME et startups européennes sur la manière d'obtenir des investissements.
  • Établir des partenariats avec des investisseurs privés pour former un réseau de fonds de capital-risque axés sur l'Open Source européen.
  • Étendre l'initiative "Next Generation Internet" (NGI) en mettant l'accent sur le cloud, l'edge et l'IoT Open Source.
  • Évaluer régulièrement l'impact des programmes de financement sur la croissance des communautés et l'adoption par le marché.
  • Allouer un financement dédié aux projets Open Source européens à fort impact qui répondent à des besoins stratégiques.
  • Développer des modèles de co-investissement qui associent des fonds publics à des investissements du secteur privé européen.
  • Lancer des accélérateurs et des incubateurs spécialement conçus pour les technologies Open Source européennes.
  • Développer une stratégie de marque à l'échelle de l'UE pour souligner la qualité et la souveraineté de l'Open Source européen.
  • Mettre en valeur les succès de l'Open Source européen sur des plateformes internationales par le biais de campagnes marketing.
  • Former des partenariats stratégiques avec les organisations industrielles européennes pour accroître la visibilité des projets.
  • Mettre en place des consortiums de R&D public-privé sur l'Open Source européen pour les projets hautement prioritaires.
  • Offrir des incitations aux contributions du secteur privé à des initiatives Open Source européennes critiques.
  • Développer des plateformes d'échange de connaissances et de collaboration intersectorielle au sein de l'écosystème européen.

Pilier 5 : Gouvernance

  • Mener des évaluations de vulnérabilité pour les projets Open Source européens critiques.
  • Collaborer avec les agences européennes de cybersécurité pour développer des modèles de menace pour les environnements Open Source.
  • Publier les conclusions et les bonnes pratiques des évaluations de sécurité auprès de l'écosystème européen.
  • Offrir des conseils de conformité sur mesure pour aider les projets Open Source européens à naviguer dans les réglementations de l'UE.
  • Faciliter l'accessibilité à la certification du "Cyber Resilience Act" (CRA) pour les projets Open Source européens.
  • Fournir des ressources et un soutien pour la documentation et l'audit des projets européens.
  • Assurer un financement stable et à long terme pour l'infrastructure Open Source européenne de base.
  • Mettre en place des programmes de mentorat axés sur le développement de talents européens pour les projets critiques.
  • Créer un Conseil Consultatif de l'Open Source Européen pour superviser le financement et l'orientation des projets.
  • Exiger que les projets européens soutenus par l'UE adhèrent à des pratiques de gouvernance et de responsabilité transparentes.
  • Soutenir l'implication de la communauté européenne dans la gouvernance des projets Open Source.
  • Faciliter la contribution de la communauté à l'élaboration des politiques européennes relatives à l'Open Source.
  • Publier des lignes directrices sur les bonnes pratiques pour la gestion du cycle de vie des projets Open Source européens.
  • Offrir des ressources pour la maintenance et le support de fin de vie responsable des projets européens.
  • Encourager une documentation complète et le partage des connaissances au sein de l'écosystème européen.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Au source du fun N° Zéro : retrouver le fun dans le libre

La plupart des logiciels libres sont devenus indispensables dans la vie professionnelle des gens sérieux qui perdent leur vie à la gagner.

Heureusement la productivité n’est pas une fatalité. Avec Au source du fun, LinuxFr.org inaugure une série de dépêches pour les gens marrants qui veulent perdre leur temps sans gagner leur vie !

Ce premier épisode traite des inutilitaires dans le libre. Il est conseillé de le consulter pendant un temps parfaitement inutile telle que la réunion du comité exécutif sur la stratégie IA de votre entreprise.

Sommaire

Je (NdM : chilinhualong) médite souvent sur cette dualité de notre époque hyper moderne : nos machines n’ont jamais été aussi puissantes, et pourtant, nous n’avons jamais été aussi prisonniers de leurs schémas de demande de productivité au détriment d’une certaine liberté d’exister. Chaque clic doit servir à quelque chose, chaque touche pressée doit justifier son existence. Mais il fut un temps où l’on savait encore jouer avec les ordinateurs — comme des enfants jouent avec des boîtes en carton — pour le simple plaisir de l’exploration.

Je me souviens de ces après-midi perdus à cliquer sur des programmes qui ne servaient à rien et qui transformaient le clavier en instrument désaccordé ou dessinaient des fractales hypnotiques. On appuyait sur Échap et il ne se passait… rien… de sérieux. Il restait juste ce sourire idiot, comme lorsqu’on trouve un caillou parfaitement lisse sur le sentier du hasard.

J’ai l’impression, dans la même perspective qu'Eugène Ionesco* et Nuccio Ordine, que ce qu’on nomme « inutile » est souvent ce qui nous touche le plus. Un poème. Un rayon de soleil dans une tasse vide. Un programme open-source qui n’offre rien d’autre qu’une expérience qui nous rappelle notre capacité à nous émerveiller. Ainsi, l’autre jour, j’ai repensé à l’arbre de Zhuangzi, celui qu’on n’abattit pas parce que « trop tordu pour être utile ». Comme lui, des logiciels non-productivistes ont existé précisément parce qu’ils refusaient la logique du rendement.

« *Si on ne comprend pas l’utilité de l’inutile, l’inutilité de l’utile, on ne comprend pas l’art ; et un pays où l’on ne comprend pas l’art est un pays d’esclaves et de robots, un pays de gens malheureux, de gens qui ne rient pas ni ne sourient, un pays sans esprit ; où il n’y a pas l’humour, où il n’y a pas le rire, il y a la colère et la haine »Ionesco

Je revois :

  • L’Amiga, boîte magique dont chaque registre électronique faisait jaillir des vitraux numériques étincelants — où le #FF00FF n’était pas une simple valeur hexadécimale, mais la pourpre même de quelque adolescence éternelle retrouvée sur Aminet.

  • Les soundtrackers, laboratoires de sons modulaires où nous apprenions, comme des enfants maladroits devant un piano désaccordé, que la musique naît d’abord des contraintes — ces boîtes à rythmes qui clignotaient dans la pénombre des chambres d’étudiant, démiurges d’un futur artistique encore à explorer.

  • Les démos minimalistes, merveilles cousues dans l’étroit habit du kilooctet, où chaque opcode était un ciselé économe dans le minimum de mémoire d’une disquette 1,44 mégaoctet — ainsi la démonstration tenait sur l’équivalent d’un mouchoir de poche numérique.

  • Les jeux faits maison /Homebrew/, bâtards glorieux nés d’un « goto » mal placé et d’une nuit sans sommeil, où le hasard des bugs engendrait des monstres plus charmants que toutes les mécaniques bien huilées — ces bugs qui devenaient des fonctionnalités.

  • L’art ASCII, calligraphie de l’ère du terminal – où chaque caractère est un coup de pinceau, et chaque ligne un sourire qui charge en 256 caractères

  • Les inutilitaires, ces petits riens qui valaient tous les logiciels sérieux — parce qu’ils ne servaient à rien, justement, et qu’en cela ils ressemblaient aux poèmes, aux baisers, aux collections de cailloux dans les poches des enfants.

« Au Source du Fun » – ce titre, ce sont ces cailloux tombés dans nos poches « au petit bonheur la chance », un petit rappel de ces jours où l’informatique sentait encore l’aventure. Où l’on ouvrait un programme comme on ouvre un livre trouvé par hasard, sans savoir quelle histoire il allait nous raconter.

Ainsi, cher Journal, nous (Devnewton & ChilinHuaLong) te proposons cette fois-ci de revisiter les sources du fun via ces inutilitaires oubliés, et nous laisser surprendre. Sans objectif. Sans KPI. Juste pour le plaisir de (re)voir ce qui arrive. Revoir ces résistants numériques qui furent au code ce que les situationnistes furent à la ville : des semeurs de trouble bienveillants.

L’ASCII art, entre calligrammes numériques et typogrammes icôniques.

À l’aube de l’informatique, les écrans n’affichaient que du texte (ASCII), sans images ni sons. On était encore loin de l’âge du multimédia, pourtant anticipé par McLuhan, et des outils open source comme Blender, Gimp ou Inkscape, qui ont donné naissance à des œuvres tels que Flow,Elephants Dream, Big Buck Bunny… Le clavardage était déjà de rigueur, et les salons IRC et les BBS fleurissaient. Ainsi vint le succès des émoticônes ;-) : ces caractères prirent leur envol grâce à la communication textuelle virtuelle.
Ensuite, vinrent l’art ASCII (ou ASCII art), qui consiste en une succession de caractères de la table ASCII formant une image intelligible. Les artistes numériques et autres hackers rivalisaient d’ingéniosité pour afficher sur l’écran ces œuvres cyber-expressionnistes. La demoscene a aussi récupéré cette nouvelle forme d’art.
Bien que l’on distingue rarement l’ASCII art en catégories comme on le ferait en peinture, deux « courants » divergents :

  • Les œuvres "réalistes" sous forme de calligrammes, qui s’inspirent de médias antérieurs (photos, dessins animés, 3D, bandes dessinées, logotypes, films) et substitue des groupes de pixels par des caractères ASCII.
  • Les œuvres "schématistes" : les caractères forment des typogrammes, schémas iconiques dont les smileys qui représentent des émotions sous leurs formes les plus simples.

Pour l’approche schématique, chaque caractère compte autant par son essence que par sa forme. En revanche, les approches réalistes ne considèrent que la silhouette d’ensemble : on peut y échanger des lettres comme remplacer tous les v par des b sans bouleverser l’image. À l’inverse, dans une émoticône – forme minimale –, modifier un seul signe déplace toute la signification.

Entre ces deux pôles s’étend une palette de degrés : nous explorerons ces nuances à travers les inutilitaires libres

ASCII art schématique


SL

L’inutilitaire sl sort du lot. En effet, il offre un clin d’œil amusant aux dyslexiques ou aux utilisateurs maladroits avec leur clavier en affichant un train ASCII traversant le terminal. Derrière cette animation se cache une parodie de la fameuse commande ls (listing) : ici, le nom est inversé, et le programme affiche une locomotive filant à toute allure, avertissant l’utilisateur qu’une faute de frappe a provoqué cette inversion de lettres.

SL Train


Cbonsai

Envie de cultiver un bonsaï, mais vous n’êtes pas un expert en jardinage ? cbonsai est là pour vous ! Ce programme permet de faire pousser un bonsaï directement dans votre terminal. Un petit projet zen pour adoucir vos sessions de travail.

CBonsai Zen


Asciiquarium

Si vous aimez les poissons mais que votre appartement est déjà trop plein d’animaux (chat, chien, hamster…), Asciiquarium vous permet de créer un aquarium animé dans votre terminal. C’est comme avoir un petit coin de nature, sans les inconvénients du bruit des poissons.

Asciiquarium


Moon-Buggy

Certains jeux ont ainsi été conçus, comme le célèbre nethack, Moon-Buggy, lui aussi, possède un graphisme réduit à sa plus simple expression. Vous incarnez un pilote de véhicule lunaire qui doit éviter les cratères et détruire les rochers. La jouabilité est bonne, et celui-ci garde le charme de son gameplay. Ce jeu est une version ASCII de Moon Patrol, un classique de l’arcade des années 80.

Moon Buggy


Hollywood Hacker Screen Style

Dans presque tous les films hollywoodiens, on voit des hackers tapant sur leur clavier, entourés de lignes de code, de diagrammes et de chiffres qui défilent rapidement sur un terminal. On va recréer cette scène culte dans la réalité grâce à un outil simple qui transforme votre terminal Linux en un véritable terminal de hacking à la Hollywood, en temps réel.

Hollywood Hacker Screen Style


Cmatrix

Dans la continuité de l’esprit de la représentation hollywoodienne du hacker, un inutilitaire s'inspirant de Neo vous est proposé. Ainsi, si vous avez aimé le film Matrix — ou du moins si l’idée de voir des caractères verts tomber à toute vitesse sur votre écran vous amuse — cmatrix vous permet de recréer cette animation. À vous de jouer pour vous glisser dans la peau de Keanu Reeves, avec des lunettes noires et un air aussi expressif qu’un parpaing.

cmatrix


Lolcat

Lolcat est une commande qui fonctionne comme cat pour afficher du texte dans le terminal, mais avec une particularité : le texte s’affiche en couleurs arc-en-ciel, façon mème Internet. Parfait pour égayer un monde de terminal parfois bien trop monotone.

lolcat


L’ASCII art schématique dans les descriptifs et les commentaires de codes sources

Qu’il s’agisse d’un terminal austère, d’un LISEZMOI / README oublié, des fichiers ID.DIZ retrouvés sur disque dur, des commentaires perdus dans un code source, ces dessins ASCII ne se contentent pas d’être décoratif — ils sont une rébellion contre la platitude du texte brut.

Boxes

Boxes apporte une touche d’élégance aux interfaces texte en générant des cadres sophistiqués, allant du simple rectangle épuré aux motifs plus élaborés. Cet outil permet de mettre en valeur des titres, des messages ou des éléments clés, transformant ainsi une sortie console ordinaire en une présentation soignée. Une solution discrète mais efficace pour ajouter du relief visuel à l’environnement terminal, tel que par exemple le code source de l’Ascii calendrier Snoopy - repris dans l’historiographie du MIT Press - .



 __   _,--="=--,_   __
         /  \."    .-.    "./  \
        /  ,/  _   : :   _  \/` \
        \  `| /o\  :_:  /o\ |\__/
         `-'| :="~` _ `~"=: |
                 (_)     `/
     .-"-.   \      |      /   .-"-.
.---{     }--|  /,.-'-.,\  |--{     }---.
 )  (_)_)_)  \_/`~-===-~`\_/  (_(_(_)  (
(        Different all twisty a         )
 )         of in maze are you,         (
(           passages little.            )
 )                                     (
'---------------------------------------'
Figlet

Fan d’ASCII art qui a du style ? Figlet est fait pour vous ! Ce petit malin transforme vos mots en typographies géantes et stylées, façon panneau publicitaire rétro. Avec sa collection de polices variées, créez des designs qui claquent en une seule commande – parfait pour pimper vos scripts ou égayer un terminal trop sérieux.

 _____ ___ ____ _      _   
|  ___|_ _/ ___| | ___| |_ 
| |_   | | |  _| |/ _ \ __|
|  _|  | | |_| | |  __/ |_ 
|_|   |___\____|_|\___|\__|

figlet

L’approche réaliste de l’ASCII art

asciiPrime : où l’art mathématique rencontre l’ASCII

Ce logiciel ingénieux ne se contente pas de convertir des images en art ASCII – il les transforme en nombres premiers. Chaque pixel devient une donnée numérique, chaque caractère un chiffre, pour former une œuvre unique… et mathématiquement certifiée.

Comment ? Grâce au test de primalité de Rabin-Miller décrit dans The Art of Computer Programming de Knuth. Un mélange surprenant de créativité visuelle et de rigueur algorithmique.

asciiPrime


La Demo BB et sa AALib

L’art ASCII s’est largement répandu dans les cercles des demo-makers, ces passionnés qui ont repoussé les limites artistiques et techniques de ce médium. Ainsi, une démo particulièrement aboutie, mêlant selon la tradition musique électronique, animations et programmation, offre un spectacle visuel remarquable. Cette création nous entraîne dans un voyage qui semble tout droit sorti d’un Alice au pays des merveilles psychédélique. L’anecdote historique de la démo BB est liée à la volonté d’afficher un logo sous GNU/Linux :

Tout commença lorsque deux amis, férus d’informatique, souhaitèrent afficher un logo Linux sur leurs vieux écrans Hercules.
Problème : ces écrans monochromes ne supportaient pas la couleur. Pour contourner cette limitation, ils tentèrent une conversion en ASCII art… avec un premier résultat désastreux. L’un d’eux développa alors un nouvel algorithme pour optimiser la conversion.
Plus tard, en travaillant sur XaoS (un visualiseur fractal), l’idée d’appliquer l’ASCII art aux ensembles de Mandelbrot émergea - avec un rendu stupéfiant ! La bibliothèque AA venait de naître et la démo BB par la suite.

BB

zebra : BB Wiki

BB 3

BB4


Libcaca : quand le cinéma ASCII devient un acte Dadaïste contemporain

Dans la même tendance que la demo BB, la bibliothèque libcaca a été créée pour pousser le concept plus loin. Son objectif ? Rendre les sorties console non seulement lisibles, mais véritablement artistiques, en ajoutant couleurs et effets visuels là où l’ASCII classique se limitait au noir et blanc. Une façon de transformer un terminal austère en une toile numérique vibrante !

La véritable innovation de Libcaca réside dans son inutilité assumée sous forme de manifeste artistique, comme l'expliquent ces déclarations de son auteur :

« Que dites-vous ?… C’est inutile ?… Je le sais !
Mais on ne se bat pas dans l’espoir du succès !

Non ! non, c’est bien plus beau lorsque c’est inutile ! »


— Edmond Rostand, *Cyrano de Bergerac*

« Je sais parfaitement que Libcaca est aussi futile qu’il n’y paraît. Inutile de me le rappeler. Je vous invite à lire la préface de Théophile Gautier pour *Mademoiselle de Maupin*, qui explique par ailleurs excellemment l’origine du nom « libcaca » :

« Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce qui est utile est laid, car c’est l’expression de quelque besoin ; et ceux de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. — L’endroit le plus utile d’une maison, ce sont les latrines. »

Théophile Gautier

Ainsi, par extension de l’esprit subversif de Libcaca, l’intégration de cette bibliothèque dans Mplayer reflète bien plus qu’une simple fonctionnalité – ce serait un véritable manifeste psychédélique. Ce module transforme radicalement l’expérience cinématographique en une performance absurde où les films deviennent des énigmes ASCII. Comme l’aurait probablement proclamé Tristan Tzara s’il avait été développeur :

«  Nous n’avons pas besoin de voir les films, nous voulons les deviner ! »

Dans cette logique, Libcaca opère un détournement radical de la perception visuelle : la vidéo devient une composition en caractères, où chaque image se transforme en message cryptique. Les couleurs, vives mais aléatoires, les formes, reconnaissables mais floutées, créent une tension permanente entre ce qui est perçu et ce qui est imaginé. « Nous avons réinventé le cinéma pour ceux qui préfèrent lire leurs films », confesseraient le réalisateur surréaliste Luis Buñuel Portolés et le peintre Salvador Dalí après leurs experimentations de cette bibliothèque sur leur chien andalou :) .

Cette bibliothèque répond avec ironie à une question que personne ne s’est encore posé :

Comment regarder un film sans être distrait par l’image ?

En hommage à Malevitch et son Carré noir, aux situationnistes et leur détournement, à nos vieux écrans CRT évoqués par les auteurs de BB qui tenaient vingt ans, Libcaca nous offre le cinéma du moins : moins de définition, moins de réalisme, mais infiniment plus de possibilités interprétatives. Car c’est bien là l’effet du projet : Libcaca loin de dévoiler l’image, il en déplace le langage. Les visages deviennent des motifs abstraits, les paysages des compositions géométriques. Le spectateur, autrefois passif, devient co-créateur, projetant ses propres visions sur cette toile numérique mouvante.

Dès lors, cette approche s’inscrirait naturellement dans la pure tradition Dada. Il suffirait de suivre une démarche minimale :

  1. Choisir un film complexe (Un Holy Mountain (1973) de Alejandro Jodorowsky fonctionnerait à merveille)
  2. Exécuter la commande sacrée : mplayer -vo caca The_Holy_Mountain.avi
  3. Contempler l’œuvre qui émergerait, mi-code, mi-poésie visuelle
  4. Documenter soigneusement les hallucinations provoquées

Ainsi, « La beauté est dans l’œil de celui qui… se force beaucoup » pourrait murmurer un critique d’art néo-classique après trois heures de cette expérience :P De plus, comme toute œuvre Dada qui se respecte, le résultat défie les conventions, ce même critique médusé se demanderait :

Est-ce encore du cinéma ? De l’art numérique ? Une blague de programmeur ?

La réponse importe finalement peu, tant l’expérience elle-même prime – cette confrontation joyeuse avec l’absurde technologique. Après tout, comme le rappelait Marcel Duchamp : « L’art est un jeu entre tous les hommes de toutes les époques. » , Libcaca est simplement la déclinaison contemporaine… en mode texte. In Fine, cette expérience nous invite aussi à reconsidérer notre rapport à l’image à l’ère du tout-HD, faisant de chaque projection une occasion unique où l’imagination du spectateur retrouve ses droits face à la perfection technique.

En guise de conclusion, dans l’hypothèse où McLuhan tel un observateur critique de cet art multimédia avait analysé « Libcaca » il aurait probablement conclue que :

« L'ordinateur, est le medium cool par excellence, il ne révèle son pouvoir hallucinogène que lorsqu’on ose y entrer en dialogue - Libcaca est l’anti-cinéma qui transforme la salle obscure en terminal psychédélique, il nous invite à devenir les programmeurs de nos propres hallucinations. Chaque interaction est un plan coupé dans le film total de la réalité. Ce que Buñuel faisait avec des rasoirs sur des yeux de film, Libcaca le fait avec de l’ASCII sur nos rétines numériques. . »

Mplayer.Libcaca

Mplayer.Libcaca2


Les inutilitaires en traits d’esprit

Fortune, un biscuit chinois dans le terminal

Comme les fameux biscuits des restaurants chinois (ou fortune cookies en anglais), fortune glisse dans votre terminal des pépites inattendues de sagesse ancestrale ou humour geek. Ces messages prennent des airs de petits vœux — bénédictions technologiques entre deux ls et grep. Ainsi, chaque connexion devient une surprise. Le plus charmant ? On peut y ajouter ses propres phrases : répliques de films, citations philosophiques ou pensées vagabondes…

« La route vers l’enfer est pavée de commandes sudo. »

« sudo rm -rf / : la recette moderne du néant »

Ces fortunes peuvent se voir combinées avec le logiciel cowsay, qui donne un phylactère de bande dessinée à une vache, à Tux (ou à toute autre variante disponible dans la bibliothèque). Parce qu’un terminal avec une âme, c’est tout de suite plus chaleureux.


+----------------------------+
| Moo may represent an idea, |
|  but only the cow knows.   |
+----------------------------+
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||



Pyjoke
$ pyjoke 
« C'est C++ qui dit à C: 'Voyons ! Tu n’as pas de classe' »,


$ pyjoke 
If you put a million monkeys at a million keyboards, one of them will eventually write a Java program. The rest of them will write Perl.

Comme son nom l’indique, pyjoke permets d’afficher des blagues. Malheureusement, il y en a peu en français. Peut-être que les moules pourraient y contribuer ?


Fin de piste

Ce petit tour d’horizon – bien trop court pour être complet – aura peut-être réveillé cette étincelle qui nous faisait autrefois sourire devant l’étrange, le décalé et la beauté brute de l’ASCII art sous forme d’inutilitaires. Une manière de retrouver cet émerveillement espiègle face à des logiciels absurdes, qui ne servent à rien… si ce n’est qu’à exister, simplement parce que pourquoi pas ?

Linus Torvalds souligne avec humour que : « Le principal défi de la conception… c’est que Linux est censé être ludique… » – une pensée au cœur du libre qui réarticule sous un jour nouveau ce précédent aphorisme du théoricien du village global, McLuhan : « Prendre terriblement au sérieux de simples choses de ce monde (globalisé) trahit un défaut de lucidité. ».
Ainsi, Linus Benedict Torvalds rappel avec cette lucidité que le libre puise aussi sa source dans cette simple approche philosophique : « just for fun ».

 fortunes.cookies

Pour aller plus loin à skis

En 2023, le MIT press a publié un ouvrage nommé « From ASCII Art to Comic Sans: Typography and Popular Culture in the Digital Age » (avec version Open Access) retraçant cette historiographie trop souvent oubliée de l’ASCII art. L’autrice Karin Wagner y explore l’art des machines à écrire (pré-ASCII) jusqu’à ses déclinaisons contemporaines, avec un détour savoureux par Comic Sans — cette police que tout le monde adore détester. Cette plongée au croisement de trois champs (informatique, typographie et culture pop ex: Calendrier Snoopy en Ascii art) réhabilite ces oubliés de l’histoire comme éléments clés de notre expérience numérique, héritiers de l’esprit libertaire des premiers hackers. L’analyse du rejet de Comic Sans, devenu un phénomène culturel s’étendant jusqu’au domaine politique, est particulièrement éclairante.

Ainsi, devant la standardisation de la création de notre époque, ces artisanats « inutiles » prennent une nouvelle résonance. Comme l’arbre de Zhuangzi sauvé pour son inutilité, l’ASCII art et Comic Sans rappellent que la vraie innovation naît souvent du détournement , de la liberté créative et des contraintes. Leur persistance dans la culture numérique — des forums underground aux protestations politiques — interroge nos obsessions productivistes et célèbre la beauté des formes simplement imparfaites… Ces pratiques nous rappellent que le numérique gagne à conserver ces espaces de liberté et d’imperfection créative — comme autant de contrepoints nécessaires à la standardisation croissante de nos outils et imaginaires mis sous pression par les monopoles hyper-modernes que sont ces géants GAFAM.

Source :

Command Line Fun
Forum Linux Mint

Snoopy

Commentaires : voir le flux Atom ouvrir dans le navigateur

Un serveur musical pour mon salon

Aujourd’hui, on va mettre en place un serveur musical pilotable à distance en utilisant MPD. Il sera notamment capable de jouer de la musique stockée dessus ou des radios Internet. Il sera aussi capable de se comporter comme une enceinte Bluetooth.

On va parler de récup de vieux matos, de Debian, MPD, PipeWire, Samba, d’agent Bluetooth, de systemd (-analyze, -logind), de Powertop et de vbetool.

Serveur musical - les clients MPD se connectent à MPD, les clients Bluetooth peuvent jouer de la musique, les clients SMB peuvent envoyer des fichier, et le serveur est relié à des enceintes en Jack

Cet article au ton très « administration système » s’adresse à :

  • des gens qui voudraient mettre en place un système plus ou moins similaire, même pour faire autre chose dans le même esprit (en mode tutoriel) ;
  • des gens qui aiment les détails techniques et voir les trucs cools qu’on peut faire avec les logiciels libres ;
  • toute autre personne curieuse pour d’autres raisons.

Il est probablement trop technique pour quelqu’un qui ne manipule pas la ligne de commande, qui pourra peut-être malgré tout, avec suffisamment de motivation, se laisser porter par la démarche.

Sommaire

Introduction

Note de lecture : cette dépêche est très détaillée, je vous conseille de passer les sections qui vous intéressent moins.

Motivation

Dans mon salon, j’ai des petites enceintes toutes bêtes qui sonnent plutôt bien. Mettre de la musique implique de s’embêter à brancher un ordinateur, sur lequel je suis le seul avoir le contrôle. Ce serait bien d’avoir un système prêt à l’emploi et que tout le monde peut contrôler.

Objectifs

  • Pas d’achat : on fait avec de la récup
  • Peu gourmand en énergie
  • Silencieux (à part la musique, bien sûr)
  • Facile à utiliser pour une personne non technique
  • Pouvoir mettre de la musique sans que ça soit pénible, en utilisant ma bibliothèque musicale locale, ou des radios internet
  • Pouvoir laisser n’importe qui se connecter en Bluetooth et lancer sa propre musique

Nous allons, ensemble, remplir ces objectifs. On va rentrer dans les détails, qui peuvent être utiles dans d’autres applications, et parce que je sais que certaines personnes ici aiment ça, bande de geeks :-)

Matériel à disposition

  • des enceintes parfaitement fonctionnelles mais sans fonctionnalité Bluetooth
  • un appareil style netbook du début des années 2010 (dans mon cas, c’est une vieille tablette Airis Kira Slimpad plus vraiment adaptée au web moderne, dotée d’un processeur Intel Atom un peu lent, d’un peu de stockage assez lent, d’un Wifi plutôt lent, du Bluetooth, d’1 Giga de mémoire vive)

Note sur les interférences Wifi et Bluetooth. Le Wifi de cette tablette est en 2,4 GHz, pareil que le Bluetooth. Tout échange wifi cause des perturbations sur le Bluetooth et tout transfert intensif rend le Bluetooth inutilisable. Du grand classique. Un Wifi 5, 6 ou 7 aurait été appréciable. Il serait possible d’utiliser une carte Wifi USB, mais je n’en ai pas donc on fera sans.

Ce qu’on va faire dans les grandes lignes

  • Installer une Debian minimale
  • La configurer pour qu’elle soit accessible par le réseau, la plus rapide et légère possible en utilisation mémoire, en temps de démarrage et en consommation énergétique
  • Installer et configurer MPD
  • Installer et configurer Samba
  • Configurer en mode « enceinte Bluetooth »

Installation standard minimaliste de Debian

Par souci de concision, on ne va pas détailler l’installation de Debian, il existe d’autres ressources au besoin.

En résumé :

  • Debian classique en 32 bits (ça consomme moins de mémoire que du 64 bits)
  • j’ai laissé l’installateur faire le partitionnement (une partition principale en ext4, et une partition swap de 1G)
  • j’ai ajouté l’option noatime sur la partition principale pour éviter d’écrire inutilement lors des accès, ce qui use le SSD et ralentit le système (d’autant que le SSD est lent)
  • lors de l’étape Tasksel, choisir console, serveur ssh et utilitaires standard, et en particulier pas d’environnement de bureau
  • on installe sudo et on ajoute l’utilisateur au groupe sudo, ou alors on se donne accès à root en ssh avec une clé SSH
  • on installe iwd (le remplaçant moderne de wpa_supplicant, supposé plus performant et plus stable permettant également de se passer de NetworkManager assez facilement) et on connecte l’appareil en wifi avec
  • on identifie et désactive ou on désinstalle le superflu avec systemd-analyze critical-chain et systemd-analyze blame (typiquement, si vous avez installé NetworkManager, ModemManager a peut-être été installé alors que vous n’avez pas de modem à gérer)
  • on peut configurer le menu de Grub pour moins attendre au démarrage

Note : sur cette tablette, l’installateur Debian n’arrive pas à se connecter en Wifi, j’ai donc utilisé la version DVD (le premier suffit).

Gains énergétiques potentiels

Éteindre l’écran

L’écran est potentiellement une des plus grosses sources de consommation électrique. On n’en a pas besoin, donc on va l’éteindre au démarrage et à la sortie de veille.

Pour cela, on va installer vbetool (sources : outils pour éteindre l’écran, lancer une commande au démarrage, lancer une commande après la veille):

sudo apt install vbetool
cat << EOF | sudo tee /etc/systemd/system/screenoff.service
[Unit]
Description=Screen off
After=suspend.target

[Service]
ExecStart=vbetool dpms off

[Install]
WantedBy=multi-user.target suspend.target
EOF

Attention : ça peut compliquer grandement l’usage de l’appareil, on peut vouloir appliquer un délai avant extinction pour se faciliter la vie.

Powertop pour améliorer la consommation électrique

Powertop permet de voir ce qui utilise le CPU et les diverses ressources, et d’ajuster un peu les paramètres de mise en veille de différents périphériques.

On va l’installer :

sudo apt install powertop

Ensuite, ça peut être cool de lancer l’outil pour constater un peu ce qui tourne et consomme des ressources, de se déplacer dans les onglets, et de tenter des trucs dans l’onglet « Tunables » :

sudo powertop

Si passer tout à Good ne cause pas de problème d’instabilité évidente, alors on peut appliquer la configuration de Powertop à chaque démarrage (source) :

cat << EOF | sudo tee /etc/systemd/system/powertop.service
[Unit]
Description=PowerTOP auto tune

[Service]
Type=oneshot
Environment="TERM=dumb"
RemainAfterExit=true
ExecStart=/usr/sbin/powertop --auto-tune

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable powertop.service

Sinon, il y a des solutions mentionnées dans la source pour désactiver certains changements (si vous observez des dysfonctionnements avec certains périphériques par exemple, et notamment si vous avez des problèmes de Wifi ou Bluetooth)

Perso, je sais que sur cette tablette, passer tout à Good fait (faisait il y a 10 ans en tout cas) qu’après un délai la première frappe sur le clavier ou le premier clic de la souris était ignoré, et aussi était nécessaire pour réveiller l’USB – clairement je m’en fiche ici, mais si votre wifi ou votre Bluetooth est en USB et que les paramètres causent une extinction après un délai, clairement ce n’est pas bon).

Bonus : Configurer le bouton power pour mettre en veille

Sur ma tablette, un appui court sur le bouton power éteint la tablette (et ensuite on la rallume en appuyant 3 longues secondes). Si on souhaite qu’un appui court mette en veille l’appareil et un appui long l’éteigne, comme ça on fait un compromis énergétique supposément raisonnable pour rendre l’ensemble un poil plus pratique, c’est facile avec systemd.

Ajoutez ces deux lignes au fichier /etc/systemd/logind.conf :

HandlePowerKey=suspend
HandlePowerKeyLongPress=poweroff

Rechargez les paramètres :

sudo systemctl restart systemd-logind

MPD : Music Player Deamon

Ok, passons au cœur du sujet : mpd.

Késako

Simplement, c’est un lecteur de musique pilotable à distance qui est capable de :

  • lire de la musique que vous mettez dans son dossier de travail ;
  • lire des playlists que vous mettez dans son dossier de travail ;
  • lire des flux radio, qui sont par exemple définis dans des playlists.

Entre autres.

Certains clients MPD, comme Cantata (une application Qt5 plus ou moins abandonnée mais encore dans les dépôts), sont même capables de lire de la musique sur votre serveur MPD que vous avez localement sur votre ordinateur, ou de gérer les playlists. Ça rend d’ailleurs la constitution de playlists vaguement confortable. Vous n’avez pas besoin d’écrire des playlists M3U à la main, quoi.

Les avantages sont multiples :

  • c’est méga léger, une machine épuisée peut faire tourner MPD à l’aise
  • si vous lisez la musique stockée sur le serveur, le réseau n’est pas engorgé
  • on peut être plusieurs à contrôler la musique, ce n’est pas une personne qui contrôle tout, et on peut le faire depuis le canapé
  • il existe toute une flopée de clients, il y en a pour tous les goûts pourvu que vous aimiez les logiciels abandonnés ou en ligne de commande / en ncurses (ouais, c’est quand même un problème que j’identifie et qui a largement retardé mon adoption de MPD)
    • les gens non techniques apprécieront les applications mobiles telles que M.A.L.P pour gérer la musique et le volume sonore.

C’est parti pour l’installation

sudo apt install mpd

On va modifier sa configuration :

sudo nano /etc/mpd.conf

On peut laisser les paramètres par défaut suivants :

music_directory         "/var/lib/mpd/music"
playlist_directory              "/var/lib/mpd/playlists"

Vous l’aurez compris, c’est là où on stocke les musiques et les playlists. Dans la section suivante, on verra comment rendre le dépôt de morceaux simple et convivial.

On va laisser la plupart des autres paramètres par défaut.

On va changer bind_to_address, qui est par défaut à localhost, mais on veut que n’importe quel appareil sur le réseau soit capable de s'y connecter. On va aussi explicitement mettre le port à la valeur par défaut (ce n’est probablement pas nécessaire, mais c’est ce que j’ai fait) :

bind_to_address                 "0.0.0.0"
port                            "6600"

On veut aussi que quand des fichiers sont changés dans les dossiers music et playlists, mpd se mette à jour tout seul pour ne pas avoir à le baby-sitter :

auto_update     "yes"

J’ai tenté d’activer zeroconf pour que les clients MPD puissent le trouver tout seul :

zeroconf_enabled                "yes"
zeroconf_name                   "Music Player @ %h"

Mais en vrai, je n’ai pas réussi à faire fonctionner ça. En tout cas, un prérequis est d’avoir installé et activé avahi-daemon, on verra ça plus tard dans la partie Samba du coup.

Vous aurez peut-être envie de mettre un mot de passe voire de changer les permissions par défaut en décommentant et adaptant les paramètres suivants, mais c’est optionnel :

#password                        "password@read,add,control,admin"

#default_permissions             "read,add,control,admin"

Ensuite, la partie critique, la sortie audio. Pour l’instant, on va dire à mpd d’utiliser Alsa directement. C’est le plus direct et le plus léger (on passera à PipeWire plus tard, pour gérer l’aspect récepteur Bluetooth)

audio_output {
       type            "alsa"
       name            "My ALSA Device"
       device          "hw:0,0"        # optional
       mixer_type      "hardware"      # optional
     # mixer_device    "default"       # optional
       mixer_control   "Master"        # optional
       mixer_index     "0"             # optional
}

Pour une de mes installations, j’ai commenté mixer_device parce que ce n’est manifestement pas la bonne valeur chez moi, et que ça marche bien sans.

Vous pouvez vous passer des autres valeurs optionnelles, mais vous n’aurez pas le contrôle du volume sonore depuis les clients MPD si vous faites ça. Vous allez donc devoir trouver les bonnes valeurs pour les paramètres mixer_*, et pour device. ainsi que mixer_control et mixer_index.

Quelques indices :

  • hw:0,0 est probablement la bonne valeur pour device, et 0 pour mixer_index aussi. Vous pouvez lister vos cartes son avec aplay -L. Vous aurez peut-être besoin d’installer le paquet alsa-utils.
  • la valeur de mixer_control est le nom du contrôle que vous utiliserez pour changer le volume dans alsamixer, du paquet alsamixergui que vous aurez probablement besoin d’installer.

Si vous galérez trop avec les valeurs de mixer-*, vous pouvez simplement utiliser mixer_type "software", c’est moins propre mais ça devrait faire le taf. Et sinon, vous pouvez toujours sortir l’artillerie lourde et passer directement à PipeWire.

Pour appliquer vos modifications :

systemctl enable --now mpd # À partir de Debian Trixie, mpd n’est plus activé par défaut au niveau du système
systemctl restart mpd # Si MPD tournait déjà

Vous pouvez déboguer vos changements avec la commande suivante, qui suit les logs en temps réel :

journalctl -fu mpd

Vous avez plusieurs options pour essayer de lire des choses avec mpd :

  • installer l’application M.A.L.P sur votre téléphone Android, ou une autre application cliente MPD, et ajouter un profil avec la bonne adresse, le bon port et le bon mot de passe ;
  • installer un client comme Cantata sur votre ordinateur, avec la bonne adresse, le bon port et le bon mot de passe ;
  • installer mpc directement sur le serveur. Normalement mpc play permet de lancer la lecture.

Moi, j’ai testé avec une webradio dans une playlist (/var/lib/mpd/playlists/radio-paradise-main-mix.m3u avec le contenu http://stream.radioparadise.com/ogg-192m), mais on peut aussi évidemment placer un morceau dans /var/lib/mpd/music/.

ReplayGain

Le niveau sonore de mes morceaux n’est pas homogène, donc il faut sans cesse adapter le volume d’un morceau à l’autre. C’est pénible, voire inutilisable en l’état. Une solution pour ça est replay gain : on analyse et on enregistre le niveau sonore d’une piste dans ses métadonnées.

Il existe plein d’outils pour faire ça, dont https://github.com/complexlogic/rsgain

On peut le faire avant d’envoyer les fichiers sur l’appareil. Pour ma part, je l’ai fait sur la tablette, et il n’existe pas de paquet Debian 32 bits, donc je l’ai compilé :

sudo apt install cmake build-essential pkd-config git libavcodec-dev libavformat-dev libtag1-dev libebur128 libinih-dev libfmt-dev
git clone --depth=1 https://github.com/complexlogic/rsgain
cd rsgain
mkdir build
cd build
cmake ..
make -j2
sudo make install

Il faudra s'assurer que les morceaux au format Opus sont étiquetés avec le tag R128_TRACK_GAIN et pas REPLAYGAIN_TRACK_GAIN, parce que c'est ce que MPD s’attend à avoir. Pour ça, on va convaincre rsgain de suivre les standards (que certains lecteurs de musiques ne comprennent pas) en créant un preset qui contient :

[Opus]
OpusMode=s

Mes morceaux ne sont pas organisés par albums, donc je désactive l’analyse par album. Je vais donc partir du preset no_album :

mkdir -p ~/.config/rsgain/presets; cat << EOF > ~/.config/rsgain/presets/no_album_standard_opus.ini 
[Global]
TagMode=i
Album=false
TargetLoudness=-18
ClipMode=p
MaxPeakLevel=0.0
TruePeak=false
Lowercase=false
ID3v2Version=keep
PreserveMtimes=false
DualMono=false
OpusMode=s
EOF

Ensuite, on peut le rsgain sur le dossier de musiques avec ce preset. Mes morceaux ne sont pas organisés par albums, donc je désactive l’analyse par album.

rsgain easy -p no_album_standard_opus -m MAX /var/lib/mpd/music

Note : l'option --skip-existing permet d'ignorer les fichiers déjà taggés :

rsgain easy --skip-existing -p no_album_standard_opus -m MAX /var/lib/mpd/music

Avec cette option, on peut exécuter cette tâche régulièrement, par exemple dans un cron, pour calculer le ReplayGain pour les nouveaux fichiers. Pour la première exécution, il vaut certainement mieux ne pas l’utiliser, sinon, si vous aviez déjà des fichiers qui avaient l'information, il se peut que le résultat ne soit pas uniforme.

Il faut dire à MPD d’utiliser le ReplayGain dans /etc/mpd.conf :

replaygain                      "track"

Vous aurez peut-être besoin de jouer avec les autres paramètres liés au volume et au ReplayGain.

Voici les miens :

# Ce paramètre définit la pré-amplification à appliquer pour les morceaux qui ont l'information du ReplayGain
replaygain_preamp              "0"

# Ce paramètre définit la pré-amplification à appliquer pour les morceaux qui ne l'ont pas
replaygain_missing_preamp      "0"

# Faut-il interdire à MPD de dépasser le niveau original d'amplification en appliquant le ReplayGain?
replaygain_limit                "no"

# Faut-il permettre à MPD d'ajuster le volume pendant la lecture pour normaliser ?
volume_normalization            "no"

Un autre paramètre qu’on peut régler, c'est la manière dont MPD règle le volume dynamiquement pour ReplayGain. Dans votre bloc audio_output, vous pouvez ajouter replay_gain_handler et la valeur "software" (c'est la valeur par défaut) ou "mixer". En théorique, les traitements software dégradent le son, mais en pratique, avec "mixer", je tombe sur ce bug qui met le volume à 100% après chaque changement de piste.

Note : je ne suis pas encore convaincu d’avoir réussi à trouver les réglages parfaits, n’hésitez pas à expérimenter.

Les clients MPD

À ce stade, vous devriez avoir un serveur MPD fonctionnel et configuré. Si applicable, vous pouvez commencer à suggérer aux gens de votre foyer d’installer l’application M.A.L.P sur leur appareil Android ; elle est libre et disponible sur F-Droid et sur le Play Store. Avec un peu de chance, votre enthousiasme était communicatif et c’est eux qui vous demanderont :-)

Pour les autres types d’appareils, vous allez devoir faire vos recherches vous-même je n’ai pas étudié les options sous Windows, Mac ou iPhone, mais il y en a. Pour Linux, j’ai essayé Cantata. Il me convient, si ce n’est qu’il a l’air un peu abandonné, et il a une interface certes conviviale, mais quand même un peu brute. Il existe des widgets qui s’intègrent aux différents environnements de bureaux pour les différents systèmes d’exploitation, je n’ai pas exploré. Le site de MPD propose une liste de clients, et le wiki de Arch aussi.

 M.A.L.P, un client mobile pour MPD

Samba pour déposer les morceaux (et les playlists)

Déposer des morceaux, vous allez probablement le faire depuis un ordinateur, et à peu près n’importe quel système d’exploitation est capable d’aller chercher un dossier SMB en réseau, alors je vous propose de configurer un serveur Samba. Ça a le bon goût d’être très léger, très simple à faire et de fonctionner depuis n’importe quel OS. Allons-y, et tant qu’à faire, on va aussi installer Avahi, qui permettra aux ordinateurs sous Linux et Mac de découvrir les dossiers partagés tous seuls :

sudo apt install samba avahi-daemon

On va partager nos dossiers music et playlists au monde entier en lecture-écriture (YOLO). On édite /etc/samba/smb.conf:

[Musique]
path=/var/lib/mpd/music
read only=no
writable=yes
comment=Fichiers musique MPD
guest ok = yes
force group = audio
force user = mpd
browsable = yes
public = yes
create mask = 0644
directory mask = 0755

[Playlists]
path=/var/lib/mpd/playlists
read only=no
writable=yes
comment=Listes de lecture MPD
guest ok = yes
force group = audio
force user = mpd
browsable = yes
public = yes
create mask = 0644
directory mask = 0755

Je ne maitrise pas particulièrement Samba et il y a peut-être des options superflues, mais globalement l’esprit c’est :

  • n’importe qui doit pouvoir accéder à ces deux en lecture et en écriture depuis le réseau. En particulier, la création de dossiers doit marcher
  • MPD doit pouvoir lire ce qu’on a écrit dans ces dossiers
  • les fichiers et dossiers doivent avoir des permissions sensées

Bien sûr, on peut vouloir restreindre l’accès à certains utilisateurs et/ou avec un mot de passe. Je vous laisse creuser.

Après un redémarrage de Samba :

sudo systemctl restart samba

Avec un peu de chance, dans l’onglet « Réseau » de votre gestionnaire de fichier, dans la section « Partages SMB », votre appareil apparait. Sinon, vous devriez pouvoir y accéder avec smb://HOST/ avec Dolphin et probablement Nautilus, probablement \\HOST sous Windows.

Alternatives possibles à Samba

  • Si on a un NAS, monter un dossier sur le serveur MPD, voire installer MPD sur le serveur de stockage, ou avoir une tâche chron qui fait un rsync bien placé
  • Mettre en place une synchronisation avec Nextcloud ou Syncthing, et faire pointer MPD vers le bon dossier, ou ajouter le dossier de MPD comme dossier de stockage externe à Nextcloud par exemple
  • SFTP
  • NFS
  • FTP (mais les autres options sont probablement meilleures)

Récepteur Bluetooth

Ce n’est bien sûr pas nécessaire si vous êtes parfaitement satisfait·e avec MPD, mais si vous voulez que votre appareil soit en plus capable de se comporter comme une enceinte Bluetooth, vous êtes au bon endroit.

Les difficultés qu’on va résoudre sont les suivantes :

  • pour l’instant, MPD accède au son directement avec ALSA, et en général on ne peut pas être plusieurs sur ALSA. En tout cas, et même s’il a l’air possible de faire fonctionner Bluetooth et ALSA ensemble, ça n’a pas l’air d’être terriblement simple ou même stable. Donc on va utiliser PipeWire. On aurait pu utiliser PulseAudio, mais PipeWire le remplace, et fonctionne généralement mieux.
  • PipeWire, c’est pensé pour être lancé dans une session graphique d’un utilisateur, mais nous, on a un serveur headless. Il va falloir faire en sorte de lancer une session utilisateur au démarrage sans interaction, et que cette session ne soit pas tuée.
  • mpd tourne avec son utilisateur, PipeWire avec son utilisateur, et après s’être rendu compte qu’il faut que ça soit les mêmes, faut aussi savoir comment, et le faire.

Lors de l’installation de Debian, on a défini un utilisateur. On peut utiliser cet utilisateur. Sinon, on peut aussi en créer un pour ça, pensez bien à l’ajouter aux groupes audio et bluetooth.

Garder une session utilisateur active

On va démarrer une session utilisateur au boot :

sudo loginctl enable-linger user # remplacer user par le nom d’utilisateur

On va s’assurer que les processus de cette session ne sont pas tués au moment où on quitte une session (par exemple quand on quitte une session ssh) : dans le fichier /etc/systemd/logind.conf, décommentez la ligne KillExcludeUsers et ajouter le nom d’utilisateur après le =. Vous deviez avoir

KillExcludeUsers=user

user est le nom d’utilisateur.

On peut maintenant recharger ces paramètres :

sudo systemctl restart systemd-logind

Installer PipeWire et les choses nécessaires

À ce stade, MPD bloque probablement l’utilisation du son parce qu’il s’y connecte via ALSA. On va le stopper.

sudo systemctl stop mpd

PipeWire et WirePlumber vont dorénavant gérer le son, et libspa-0.2-bluetooth permet au démon qui gère le Bluetooth (Bluez) de s’inter-connecter à PipeWire pour le Bluetooth Audio.

sudo apt install wireplumber pipewire libspa-0.2-bluetooth

En tant que votre utilisateur (nommé user dans les commandes précédentes) (c’est important), activez PipeWire au démarrage et lancez-le :

systemctl --user enable --now pipewire wireplumber

Notez que pipewire-pulse n’est pas nécessaire, d’ailleurs vous pouvez le supprimer ou le désactiver en toute sécurité s’il a été installé.

Installer un agent Bluetooth qui accepte toutes les connexions audio sans vérifications avec code

Normalement, accepter les connexions Bluetooth se fait à l’aide d’un agent Bluetooth :

  • qui tourne dans votre session graphique : c’est géré par votre environnement de bureau, ou une application comme bluetooth-applet (est-ce que ça existe encore ?) que vous lancez. Là, évidemment, on n’a pas de session graphique, et pour l’instant on n’a pas d’agent Bluetooth qui tourne.
  • En ligne de commande, avec un outil comme bluetoothctl. Je vous invite à essayer. Vous pouvez lancer des commandes comme pairable on, discoverable on, scan on, et essayer de vous connecter avec un autre appareil. Après vos tests, vous pouvez tout recommencer en faisant oublier les appareils des deux côtés.

Évidemment, on ne va pas se connecter en ssh pour lancer bluetoothctl à chaque fois qu’on veut se connecter en Bluetooth. On va mettre en place un agent qui démarre automatiquement et qui a un comportement similaire à un casque ou des enceintes Bluetooth : qui accepte toutes les connexions Bluetooth audio. Pour ça, on va utiliser un script Python partagé par Collabora sous Licence LGPL 2.1+ qui fait ça très bien et qu’on va lancer au démarrage.

Bien sûr, ça veut dire que vos voisins peuvent s’amuser à jouer des trucs chez vous, ou même se connecter fortuitement en choisissant la mauvaise entrée.

Ce script a une dépendance, qu’on va installer :

sudo apt install python3-dbus

On va placer ce script dans speaker-agent.py:

#!/usr/bin/python3
# SPDX-License-Identifier: LGPL-2.1-or-later

import dbus
import dbus.service
import dbus.mainloop.glib
from gi.repository import GLib

BUS_NAME = 'org.bluez'
AGENT_INTERFACE = 'org.bluez.Agent1'
AGENT_PATH = "/speaker/agent"

A2DP = '0000110d-0000-1000-8000-00805f9b34fb'
AVRCP = '0000110e-0000-1000-8000-00805f9b34fb'

bus = None


class Rejected(dbus.DBusException):
    _dbus_error_name = "org.bluez.Error.Rejected"


class Agent(dbus.service.Object):
    exit_on_release = True

    def set_exit_on_release(self, exit_on_release):
        self.exit_on_release = exit_on_release

    @dbus.service.method(AGENT_INTERFACE,
                         in_signature="", out_signature="")
    def Release(self):
        print("Release")
        if self.exit_on_release:
            mainloop.quit()

    @dbus.service.method(AGENT_INTERFACE,
                         in_signature="os", out_signature="")
    def AuthorizeService(self, device, uuid):
        # Always authorize A2DP and AVRCP connection
        if uuid in [A2DP, AVRCP]:
            print("AuthorizeService (%s, %s)" % (device, uuid))
            return
        else:
            print("Service rejected (%s, %s)" % (device, uuid))
        raise Rejected("Connection rejected by user")

    @dbus.service.method(AGENT_INTERFACE,
                         in_signature="", out_signature="")
    def Cancel(self):
        print("Cancel")


if __name__ == '__main__':
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

    bus = dbus.SystemBus()

    agent = Agent(bus, AGENT_PATH)

    mainloop = GLib.MainLoop()

    # By default Bluetooth adapter is not discoverable and there's
    # a 3 min timeout
    # Set it as always discoverable
    adapter = dbus.Interface(bus.get_object(BUS_NAME, "/org/bluez/hci0"),
                             "org.freedesktop.DBus.Properties")
    adapter.Set("org.bluez.Adapter1", "DiscoverableTimeout", dbus.UInt32(0))
    adapter.Set("org.bluez.Adapter1", "Discoverable", True)

    print("RPi speaker discoverable")

    # As the RPi speaker will not have any interface, create a pairing
    # agent with NoInputNoOutput capability
    obj = bus.get_object(BUS_NAME, "/org/bluez")
    manager = dbus.Interface(obj, "org.bluez.AgentManager1")
    manager.RegisterAgent(AGENT_PATH, "NoInputNoOutput")

    print("Agent registered")

    manager.RequestDefaultAgent(AGENT_PATH)

    mainloop.run()

Le script mentionne le Raspberry Pi, mais il n’y a absolument rien de spécifique au Raspberry dedans, il est suffisamment générique.

On va lancer ce script au démarrage en créant le fichier ~/.config/systemd/user/speaker-agent.service

[Unit]
Description=Bluetooth speaker agent

[Service]
ExecStart=python3 speaker-agent.py

[Install]
WantedBy=default.target

Et en l’activant (--now le lance tout de suite) :

systemctl --user enable --now speaker-agent.service

Il faudra aussi mettre JustWorksRepairing = always dans /etc/bluetooth/main.conf pour permettre le re-appairage sans interaction. Bon là j’avoue, je paraphrase largement ma source :-)

Ensuite, on va autoriser la connexion Bluetooth même sans session active (en SSH par exemple) (source). Si on ne fait pas ça, la connexion Bluetooth n’est pas possible si l’utilisateur n’a pas une session active (les symptômes : on arrive à se connecter en Bluetooth que quand on est loggué en SSH ou autre, et la connexion Bluetooth casse dès qu’on quitte la session).

mkdir -p ~/.config/wireplumber/bluetooth.lua.d
cat > ~/.config/wireplumber/bluetooth.lua.d/80-disable-logind.lua << EOF
-- Disable arbitration of user allowance of bluetooth via D-Bus user session
bluez_monitor.properties["with-logind"] = false
EOF
systemctl --user restart wireplumber

Adapter MPD (et Samba) pour utiliser PipeWire

Pour que MPD utilise PipeWire, il faut adapter :

  1. sa configuration pour qu’il tourne avec le même utilisateur
  2. sa configuration audio_output
  3. les permissions dans /var/lib/mpd

Dans /etc/mpd.conf, changer la ligne user :

user                            "mpd"

Elle doit maintenant utiliser votre utilisateur :

user                            "user"

Commentez votre bloc audio_output, on va maintenant utiliser PipeWire (je suppose qu’on pourrait garder les deux et les clients MPD peuvent probablement permettre de choisir la sortie son, mais ça me parait complexifier l’utilisation pour un intérêt pas clair, ce qui va contre nos objectifs) :

audio_output {
        type            "pipewire"
        name            "PipeWire Sound Server"
}

Maintenant, il est temps d’adapter les permissions dans /var/lib/mpd. On va stopper Samba juste avant, et adapter sa configuration.

sudo systemctl stop mpd samba # si mpd tournait encore
sudo chown -rv user /var/lib/mpd
sudo systemctl start mpd

Note : MPD peut aussi être démarré dans une session utilisateur et à ce stade, c’est ce qu’il serait probablement le plus logique de faire, en bougeant /etc/mpd.conf et le contenu de /var/lib/mpd dans le dossier de notre utilisateur. C’est d’ailleurs la manière privilégiée de démarrer MPD à partir de Debian Trixie. Par simplicité et cohérence, et parce que cette section « Récepteur Bluetooth » est optionnelle mais que les manipulations pour lancer une session utilisateur au démarrage décrites dans cette section seraient nécessaires pour lancer MPD en tant que service utilisateur au démarrage dans tous les cas et que ça apporte une réelle complexité, on fait le choix de garder MPD en tant que service système.

Modifiez /etc/samba/smb.conf. Dans les deux blocs de partages qu’on a ajouté précédemment, changez la ligne force user = mpd en:

force user = user

Puis on peut redémarrer Samba :

sudo systemctl start samba

Permettre à PipeWire de configurer sa priorité

Si vous voyez cela dans les logs de PipeWire :

user@tablette:~$ journalctl --user -fu pipewire
avril 29 13:41:01 tablette systemd[514]: Started pipewire.service - PipeWire Multimedia Service.
avril 29 13:41:01 tablette pipewire[531]: mod.rt: Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running?
avril 29 13:41:01 tablette pipewire[531]: mod.rt: found session bus but no portal
avril 29 13:41:02 tablette pipewire[531]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
avril 29 13:41:02 tablette pipewire[531]: mod.rt: could not set nice-level to -11: Permission non accordée
avril 29 13:41:02 tablette pipewire[531]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
avril 29 13:41:02 tablette pipewire[531]: mod.rt: could not make thread 547 realtime using RTKit: Permission non accordée

Ça veut grosso modo dire que PipeWire cherche à se rendre plus prioritaire via un mécanisme fourni par les environnements de bureau (xdg-desktop-portal), n’y arrive pas parce qu’évidemment, aucun environnement de bureau ne tourne, alors il essaie de demander au service système rtkit, et se fait jeter.

Ce n’est pas très grave et on pourrait vivre sans, mais ça pourrait aider à limiter les saccades sonores, donc on va réparer ça (et je pense avoir vu une bonne amélioration grâce à ça).

Le fichier /usr/share/polkit-1/actions/org.freedesktop.RealtimeKit1.policy dicte qui a le droit ou non de configurer sa priorité (découvert ici, mais le conseil de modifier ce fichier système n’est pas bon, au moins parce qu’une mise à jour future risque d’écraser les modifications) :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
        "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
        "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
        <vendor>Lennart Poettering</vendor>

        <action id="org.freedesktop.RealtimeKit1.acquire-high-priority">
                <description>Grant high priority scheduling to a user process</description>
                <description xml:lang="tr">Bir sürece yüksek öncelikli çalışabilme yetkisi ver</description>
                <message>Authentication is required to grant an application high priority scheduling</message>
                <message xml:lang="tr">Sürecin yüksek öncelikli çalıştırılabilmesi için yetki gerekiyor</message>
                <defaults>
                        <allow_any>no</allow_any>
                        <allow_inactive>yes</allow_inactive>
                        <allow_active>yes</allow_active>
                </defaults>
        </action>

        <action id="org.freedesktop.RealtimeKit1.acquire-real-time">
                <description>Grant realtime scheduling to a user process</description>
                <description xml:lang="tr">Bir sürece gerçek zamanlı çalışabilme yetkisi ver</description>
                <message>Authentication is required to grant an application realtime scheduling</message>
                <message xml:lang="tr">Sürecin gerçek zamanlı çalıştırılabilmesi için yetki gerekiyor</message>
                <defaults>
                        <allow_any>no</allow_any>
                        <allow_inactive>yes</allow_inactive>
                        <allow_active>yes</allow_active>
                </defaults>
        </action>

</policyconfig>

Dans un système Unix, les paramètres systèmes sont dans /etc. Pour Polkit, il existe un mécanisme pour écrire des règles, qu’on va utiliser. On va créer une règle qui permet à n’importe quel utilisateur du groupe audio de modifier la priorité de ses processus. C’est probablement trop large, mais je ne connais pas bien Polkit et ça fera le taf pour notre application dédiée à l’audio. Si vous avez des meilleures idées, n’hésitez pas à partager en commentaire.

sudo cat > /etc/polkit-1/rules.d/rt.rules << EOF
polkit.addRule(function(action, subject) {
        if (subject.isInGroup("audio") && (
                action.id == "org.freedesktop.RealtimeKit1.acquire-high-priority" ||
                action.id == "org.freedesktop.RealtimeKit1.acquire-real-time"
        )) {
                return polkit.Result.YES;
        }
})
EOF

sudo systemctl restart polkit.service
systemctl --user restart pipewire

On pourra constater l’absence des échecs dans les journaux de PipeWire.

Bon, on sent bien que toute cette utilisation audio sans session utilisateur standard n’est pas un cas d’utilisation hyper bien prévu et on se retrouve à toucher des coins un peu sombres du système…

Évitez les flux Wifi 2,4 GHz

Si vous avez un Wifi en 2,4 GHz, ça peut causer des soucis avec le Bluetooth, et le son peut saccader. Si vous observez cela, il faudra alors limiter au maximum les services et autres tâches de fond qui font des communications réseau. Évidemment, si vous pouvez utiliser un câble Ethernet, c’est encore mieux.

Sur ce plan, tous les codecs audio Bluetooth ne semblent pas se valoir. Pour tester ça, j’ai lancé un test iperf3 entre la tablette et mon ordinateur portable pour saturer le Wifi. Ça devenait immédiatement catastrophique avec le codec SBC-XQ, alors qu’avec le codec Opus 05, il y a initialement des saccades, puis ça s’améliore vite. J’imagine que le codec Opus dégrade très efficacement la qualité pour compenser. Bon, malheureusement, tous les systèmes ne permettent pas de choisir son codec donc ce n’est qu’une solution partielle au problème.

Note sur l’utilisation des ressources

C'est léger :

load average: 0,12, 0,10, 0,05
$ free -mh
               total       utilisé      libre     partagé tamp/cache   disponible
Mem:           986Mi       253Mi       324Mi       6,1Mi       550Mi       733Mi
Échange:       974Mi          0B       974Mi

Globalement, le CPU s’ennuie en pleine lecture, et à peine un tiers du Giga de mémoire vive est utilisé, la partition d’échange s’ennuie, donc il y a encore largement la place de faire tourner d’autres trucs sur cet appareil si jamais. On peut aussi constater qu’ajouter MPD et tout ce bazar à une installation existante ne la surchargerait pas plus que ça.

On a aussi un temps de démarrage autour des 20 secondes, ce qui est franchement pas mal.

Conclusion et améliorations possibles

On est pas mal rentrés dans les détails, c’était l’occasion d’explorer plein de choses mine de rien. J’ai à la fois appris des choses, précisé des connaissances, et mis plein de choses que je savais ensemble pour obtenir un résultat très satisfaisant. On se retrouve à manipuler de la gestion de services, des configurations systemd un peu poussées, du bluetooth, du son avec ALSA et PipeWire, de la gestion de session utilisateur sur un système headless, et plein d’autres trucs et aller dans les détails comme le boot pour avoir quelque chose de rapide, comme l’écran éteint au bon moment, ou la personnalisation du comportement du bouton power (honnêtement, je n’étais pas très sûr que c’était possible, j’avais lancé la recherche au cas où !).
J’espère que l’aventure vous a plu aussi.

Bien sûr l’ensemble est perfectible, alors je vous laisse avec des idées, n’hésitez pas à partager les vôtres en commentaires :

  • Jouer un son au démarrage / à l’appairage Bluetooth. – pour l’instant, la tablette s’allume et puis plus rien. En général, les enceintes Bluetooth jouent un petit son quand elles sont prêtes ou qu’elles viennent d’être appairées et ça peut être pratique
  • Commande vocale. Il y a clairement des manières d’utiliser le micro de la tablette pour demander le morceau suivant, précédent ou régler le volume. Ça peut être pratique quand on n’a pas le téléphone sous la main et ça peut avoir son petit effet en soirée la première fois, tant que les gens ne sont pas encore complètement blasés par le concept parce que tout le monde n’a pas un Google Nest ou un Alexa chez soi, surtout dans ma bulle sociale. Mais c’est probablement finalement très gadget et je me vois mal interrompre une conversation en criant un ordre pour gérer la musique…
  • Appairage Bluetooth plus sécurisé. En général, les enceintes Bluetooth acceptent les nouveaux appareils dans un mode spécial. En appuyant sur le bouton Bluetooth, ou quelque chose comme ça. Ça peut éviter que les voisin·e·s ne te rickrollent au moment le plus inopportun. Ça vaudrait le coup de travailler sur quelque chose comme ça. Avec l’écran tactile, il est probablement possible de dessiner une forme particulière reconnue (ça serait un peu badasse, ou plus probablement, n’accepter (une seule) nouvelle connexion que dans les X minutes après le démarrage ou le retour de veille. Comme ça, demander l’appairage consiste à appuyer deux fois sur le bouton power, ce qui est plutôt acceptable. Si vous avez des idées, n’hésitez pas à partager…
  • Réveil à distance avec du Wake-on-LAN. Ça ne s’applique probablement pas à mon matériel, mais il est possible d’utiliser astucieusement le WoL pour réveiller l'appareil à distance, avec éventuellement la complicité d’un routeur ou d’un serveur toujours allumé chez vous.
  • Désactiver le Wifi quand le Bluetooth est utilisé. Pour éviter les interférences, on pourrait imaginer que quand un appareil se connecte en Bluetooth, on éteint le Wifi (avec rfkill par exemple), on met MPD en pause (ou on le stoppe s’il est en train de jouer un flux) parce qu’on ne peut plus le contrôler, puisque le Wifi n’est plus actif, et on réactive le Wifi quand l’appareil Bluetooth est déconnecté. On pourrait même être plus fin et détecter quand du son est joué.
  • Automatiquement mettre MPD en pause lors d’une connexion Bluetooth. (un peu doublon avec le précédent point) Pour l’instant, il faut manuellement mettre en pause mpd, sinon les deux flux audios se jouent en même temps. -- Changer la classe Bluetooth de l’appareil. Ça permettrait à l’appareil de se déclarer comme appareil audio, pour que ça affiche le bon icône sur les autres appareils.
  • Mises à jour automatiques. Il ne faut pas que ça casse des choses en pleine lecture, ni que ça cause des interférences avec le Bluetooth à cause des téléchargements.
  • Ne pas persister les logs. Pour l’instant, les logs sont écrits dans /var/log sur le SSD, entrainant une usure et un ralentissement cependant probablement tous deux négligeables. On pourrait vouloir ne pas les garder, mais c’est aussi risquer de perdre des informations de débogage le jour où il y a un pépin.

Je vais probablement trouver d’autres choses à améliorer après publication de l’article. Je partagerai peut-être les choses intéressantes en commentaires ou dans des journaux, et je ferai peut-être vivre l’article sur mon site.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Des nouvelles de Unvanquished

La dernière dépêche sur le jeu Unvanquished a été publiée ici en 2023, pour son dixième anniversaire. La dernière version annoncée ici était la version 0.53, en 2022. Alors que nous sommes à deux mois de 2025 et à quelques jours de la prochaine version 0.55, c’est l’occasion de faire un point sur ce qui s’est passé ces dernières années et d’ajouter un épisode à la série « des nouvelles de [votre jeu préféré] » et de faire suite à celui sur Xonotic.

Unvanquished

Laisse-moi sortir de là ! — réclame la version 0.55…

Unvanquished est un jeu de stratégie en temps réel (RTS) à la première personne (FPS) où des extraterrestres évolutifs et des humains lourdement armés s’affrontent pour leur survie. Son développement, basé sur Tremulous, a commencé en 2011.

Sommaire

Quelques nouvelles en vrac

Un nouveau lanceur

En prévision de la prochaine version 0.55 qui arrive (deux « release candidates » ont déjà été publiées), le « lanceur » (aussi appelé « updater ») a été mis à jour en juillet dernier.

Le lanceur est le moyen recommandé d’installer Unvanquished : il permet une intégration optimale avec le système (possibilité de cliquer sur des liens pour lancer une partie) et propose la mise à jour du jeu quand une nouvelle version est disponible. Le lanceur sait aussi se mettre à jour et c’est ce qui a été fait en juillet.

Des améliorations graphiques

L’année dernière le projet Unvanquished avait annoncé être en recherche d’un développeur spécialisé dans les moteurs de rendus. Reaper a rejoint l’équipe et a réalisé un gros travail : débugage et finalisation des miroirs récursifs et d’autres choses. Il fait aussi progresser le moteur pour tirer partie d’OpenGL 4.6 et autre techniques avancées (« bindless textures », etc.).

Un explorateur de serveur minimaliste

Viech a publié un explorateur de serveur de jeu minimaliste qui tient dans la barre de notification (tray browser). C’est à la fois simple et pratique.

Des vidéos et un compte Mastodon

Diverses vidéo montrant les avancées du développement ont été publiées sur la chaîne Youtube d’Unvanquished, c’est l’occasion de rappeler l’existence de cette chaîne : https://www.youtube.com/@UNVofficial

Pour ceux qui préfèrent Peertube, qui permet aussi de s’abonner aux chaînes à travers Mastodon et plus globalement le Fédiverse, avec la publication de certaines parties : https://vdo.unvanquished.greboca.com/

Un compte Mastodon a été créé sur l’instance idtech.space dédiée aux technologies id Tech et projets associés (le moteur d’Unvanquished dérive d’id Tech 3) : https://idtech.space/users/UNVofficial

Ce compte Mastodon s’ajoute aux comptes X et Facebook. Le public libriste sera peut-être plus intéressé par ce compte Mastodon.

Unvanquished, ARMé et dangereux

De nouvelles architectures

La version 0.54 de Unvanquished sortie en janvier 2023 avait été la première à être jouable autrement que sur PC (x86 et x86-64), en proposant des binaires pour les processeurs ARM (sous Linux seulement pour l’instant).

Côté moteur la version 0.54 avait reçu de nombreuses optimisations pour mieux tourner sur des machines moins performances, par exemple, Certaines ressources logiciels optionnelles comme les deluxemaps ne sont plus chargées si désactivées, ceci économise non seulement le calcul, mais aussi la mémoire de la carte graphique. Les lightstyles peuvent être désactivés, ce qui peut accélérer le rendu graphique, etc. La compatibilité matérielle sera encore étendue avec la version 0.55.

À partir de la version 0.54 tous les binaires pour toutes les architectures matérielles et systèmes d’exploitation sont compilés dans des containers Docker, y compris les binaires macOS compilés dans un container Linux en utilisant Darling, Darling étant à macOS ce que Wine est à Windows. La version 0.55 sera produite de la même manière.

La version 0.55 apportera la compatibilité pour un nouveau système d’exploitation ! 🤫️

Interface, jouabilité et bots

Chargement de carte

Le nouvel écran de chargement des cartes.

L’interface avait été revue à l’occasion de la version 0.54 :

  • Nouvelles icônes d’inventaire contribuées par Nanaa, Gireen et Bob Vador
    Ces icônes donnent un coup de fraîcheur, on distingue mieux les deux types de grenades et les armures ainsi que le mode de déplacement.
  • L’écran de chargement des cartes affiche le nom de la carte et des auteurs (si renseigné) depuis les métadonnées. Historiquement, les artistes inscrivaient ces informations sur l’image d’illustration de la carte avec un logiciel de dessin… (!!!)
  • La version 0.55 apportera des modifications d’interface réalisées par Grise.

Côté jouabilité, la version 0.54 avait corrigé le momentum négatif qui était particulièrement pénalisant. Le momentum, est généré par les Leech (Alien) ou les Drills (Humain). Il faut qu’il y ait assez de momentum pour pouvoir construire d’autres éléments.

La version 0.54 a apporté toute une série de nouveautés au niveau des bots (entités qui remplacent les joueurs afin de compléter les équipes) :

  • Amélioration de l’évitement d’obstacles pour les bots.
  • Les bots peuvent viser des cibles situées sur des navmesh différents.
  • Certains bots n’hésiteront pas à sauter pour atteindre une cible en hauteur, d’autres se retiennent d’exécuter une attaque qui pourraient les blesser si la cible est trop proche…

Depuis quelque temps, le développement des bots suscite un regain d’intérêt. La version 0.55 ne sera pas la plus riche à ce sujet car elle apportera surtout des améliorations du moteur. Le développement de gameplay ne s’est pas ralenti mais s’est surtout focalisé sur des mods dont il faudra fusionner les avancées dans le tronc commun après la sortie de la version 0.55. Ces améliorations de gameplay sont déjà jouables sur des serveurs en ligne.

L’amélioration du comportement des bots à permis un nouveau type de jeu : Le PVE. C’est à dire que les joueurs peuvent jouer ensemble contre l’ennemi piloté par le serveur. Certaines cartes ont été créées spécifiquement pour ce type de jeu, et d’autres ont été adaptées à l’aide de layout qui étaient déjà utilisés pour créer des variantes de parties.

La version 0.54.1 n’avait pas vraiment proposé de modifications des données, il s’agissait surtout de publier des correctifs de bugs gênant du moteur. La version 0.55 viendra avec une mise à jour des données et donc avec les corrections attendues. Par exemple un bug dans la chaîne logicielle de conversion d’images avait produit des artefacts dans certaines textures, ce sera corrigé dans la version 0.55.

La danse des submodules

            _________________
           /                 \
          |         ✝         |  
          |                   |
          |      beloved      |
          |     submodule     |
          |                   |
          |    2017-12-30     |
          |     2023-04-11    |
          |                   |
          |       R.I.P.      |
          |                   |  🄵
  (,,)é   |                   |   ɘ̀(⹁⹁)  ɘ̀(⹁⹁)
////////////////////////////////////////////////

Press F to Pay Respects!

Tous ceux qui doivent traiter avec Git savent que les submodules sont très pratiques mais parfois bien ennuyeux. Un travail de fond réalisé sur les outils de production des données a permis la réintégration du dossier source unvanquished_src.dpkdir. Le générateur de code CBSE qui produit la plomberie pour la logique de jeu a été réintégré aussi. Cela rend plus facile de travailler sur des mods en évitant de devoir gérer plusieurs dépôts différents.

Contributions

Unvanquished recrute
Voulez-vous en savoir plus ?

Comme vous le voyez, ce cycle de développement a aussi vu de nouveaux contributeurs apporter leur concours au projet. Certaines de leurs améliorations ont déjà été publiées dans la version mineure 0.54.1, d’autres arriveront avec la version 0.55.

Récement, le développeur Slipher qui est un des développeurs Unvanquished les plus prolifiques et les plus fidèles a étendu ses activités au moteur de rendu et a rejoint la petite élite de ceux qui savent comment le moteur fonctionne. Il a corrigé entre autre le rendu de vidéo sur des surfaces et une fonctionnalité de sprites.

La liste de régressions depuis le désormais lointain ancêtre d’Unvanquished, Tremulous, est maintenant réduite à peau de chagrin.

Des traductions !

La grosse nouveauté de la version 0.54.1 publiée en décembre 2023 a été de proposer à nouveau des traductions intégrées au jeu. L’outil de traduction est gracieuseuement hébergé par Weblate.

L’interface Weblate

L’interface de traduction Weblate.

Il y a longtemps, le jeu était traduit, mais suite à de très profonds changements (par exemple le remplacement total de la technologie utilisée pour faire des menus, désormais sous RmlUi), l’effort de traduction avait été interrompu.

La traduction francophone est bien avancée, mais la traduction en breton a besoin de plus de contributions. Si vous souhaitez contribuer votre langue régionale, vous êtes les bienvenus, c’est ici que cela se passe !

La 0.55 arrive !

Préparez votre souris et votre clavier, la version 0.55 arrive très bientôt.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Visualisation d’imageries médicales avec Invesalius

Nous allons parler ici des examens par imageries médicales de type scanner ou IRM. Un scanner est une série d’images faites aux rayons X et pour une IRM c’est de la résonance magnétique. Pour une IRM, vous passez dans un énorme aimant extrêmement puissant (attention aux objets métalliques). Quand vous passez l’un de ces examens, vous repartez avec un CD ou DVD que vous donnez à votre médecin ou bien vous avez un code pour aller chercher vos images sur internet. Vous pouvez aussi parfois y accéder avec votre smartphone. Il s’agit le plus souvent d’une série d’images en noir et blanc de type jpeg. Elles sont difficiles à interpréter par des non-spécialistes. C’est là qu’intervient un logiciel dédié. Vous pouvez parfois obtenir la série d’images sous un format dédié, c’est le serveur qui fait la conversion sur demande, par exemple le format DICOM (« Digital Imaging and Communications in Medecine ») qui est le standard de facto pour la gestion d’images médicales, ou NIFTI. Gimp peut lire le format DICOM, mais ce n’est pas très pratique.

Dans le package Debian med-imaging des tas de logiciels sont fournis, comme des logiciels de traitement du signal (du cœur par exemple). Pour lire le format DICOM, nous avons ITK-SNAP, mais nous nous attarderons aujourd’hui sur Invesalius. Il a été nommé ainsi en honneur d’un docteur belge Andreas Vesalius (1514-1564) considéré comme le père de l’anatomie moderne. InVesalius a été développé depuis 2001 par le Centre de Technologie de l’Information Renato Archer (CTI), une unité du Ministère des Sciences et de la Technologie (MCT), du Brésil. Il est disponible pour Windows, GNU/Linux et Mac OS X. La licence est la GNU GPL (General Public License) version 2 et cerise sur le gâteau, il est disponible en français.

Invesalius 2

Une fois les données converties en DICOM et téléchargées, nous les importons dans Invesalius. C’est un peu long et il faut une bonne machine, car les données font 3 Go. Nous choisissons les données à visualiser. Puis nous pouvons choisir un intervalle de nuance de gris et générer la surface 3D correspondante. On peut ainsi sélectionner les os, cartilagineux ou pas, les organes, les muscles ou la peau. On peut aussi avoir les vaisseaux puisqu’ils injectent de l’iode, un produit de contraste. Les vaisseaux apparaissent alors comme les os. Pour finir, on peut affecter des couleurs à chaque surface créée. On peut alors exporter le tout sous les formats STL, OBJ ou PLY. C’est donc alors bien entendu lisible sous FreeCAD ou Blender.

Invesalius 1

Commentaires : voir le flux Atom ouvrir dans le navigateur

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

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

    Sommaire

    L’étude des langues à travers le monde

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

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

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

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

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

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

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

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

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

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

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

    La liste SIL des langues

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

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

    Glottocode : par le Max Planck Institute for Evolutionary Anthropology.

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

    Aperçu du Glottolog à travers la liste des langues

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

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

    La langue Nisvai dans le Glottolog

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

    Les autres

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

    Documenter les langues

    ELAN : des schémas d’annotation flexibles

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

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

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

    FLEX : gérer un projet de documentation

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

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

    Aperçu de Flex

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

    Et il y en a bien d’autres encore

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

    L’archivage et la compilation de corpus

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

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

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

    DoReCo

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

    Les langues dans DoReCo

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

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

    Multi-CAST

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

    La page d’accueil de Multi-Cast

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

    Conclusion

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

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

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

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Entretien avec GValiente à propos de Butano

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

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

    Game Boy Advance

    Sommaire

    Partie 1: présentation

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

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

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

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

    Pourquoi le retrogaming est-il important pour vous ?

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

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

    Partie 2: Game Boy Advance

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

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

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

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

    La GBA SP

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

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

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

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

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

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

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

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

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

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

    La console peut-elle faire de la 3D ?

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

    Comment fonctionne le son ?

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

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

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

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

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

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

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

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

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

    Les cartouches peuvent-elles embarquer des coprocesseurs ?

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

    Les émulateurs sont-ils bons ?

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

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

    Beacoup :

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

    Astro Boy Omega Factor

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

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

    D'autres très bons:

    gba-microjam-23

    Partie 2 : Butano

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

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

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

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

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

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

    Varooom 3D

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Pourquoi le choix de C++ pour ce SDK ?

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

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

    Par exemple:

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

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

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

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

    Partie 3: pour finir

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

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

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

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

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

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

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

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

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

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

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

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

    Mmh… rien qui me vienne à l'esprit.

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

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

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

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Nouveautés d'avril 2024 de la communauté Scenari

    Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous rédigez une seule fois votre contenu et vous pouvez les générer sous plusieurs formes : site web, PDF, OpenDocument, diaporama, paquet SCORM (Sharable Content Object Reference Model)… Vous ne vous concentrez que sur le contenu et l’outil se charge de créer un rendu professionnel accessible et responsive.

    À chaque métier/contexte son modèle Scenari :

    • Opale pour la formation
    • Dokiel pour la documentation
    • Optim pour les présentations génériques
    • Topaze pour les études de cas

    Mini-webinaire Scenari

    L’association propose un mini-webinaire intitulé « Scenaristyler : ajouter son logo dans les publications PDF, web, diapo » le lundi 15 avril 2024 de 17h à 18h heure de Paris, à l’adresse https://scenari.org/visio/miniwebinaire.
    Pour préparer la session, vous pouvez participer à ce fil de discussion sur le forum Scenari.

    Rencontres Scenari : inscriptions ouvertes

    Découvrez le programme en détails, et inscrivez-vous dès maintenant aux Rencontres Scenari 2024 à l’Université Toulouse Capitole du 3 au 7 juin.

    Tarifs préférentiels pour toute inscription avant le 3 mai. N’attendez pas !

    L’équipe de l’UT Capitole a négocié des options de logement. Les détails sur le site des Rencontres.

    Aidez-nous à diffuser l’événement et partagez l’annonce des Rencontres sur les réseaux sociaux : Mastodon, LinkedIn et Telegram.

    Offres d’emploi autour de Scenari

    Deux offres d’emploi autour de Scenari :

    • Une offre de Sorbonne Université pour un⋅e ingénieur⋅e pédagogique devant « connaître les outils numériques de l’établissement » : Scenari entre autres.
    • Une offre d’une école supérieure localisée à La Défense pour un⋅e technicien⋅ne support de plateformes pédagogiques. Le poste consiste à « administrer des environnements numériques », « suite logicielle Scenari » entre autres, et à « participer à la médiatisation des contenus en utilisant la chaîne éditoriale Scenari ».

    Nouvelles versions d’outils Scenari

    Nouvelles versions d’outils Scenari :

    • Sortie de IDKey 2 et mise à jour de OpenKeys. Retrouve les détails sur le forum.
    • Nouvelle version de Topaze (4.0.7) apportant quelques corrections.
    • Sortie de TechnOpale 2.2.5 (dérivé d’Opale 4.0.5). TechnOpale est une modification d’Opale destinée à l’enseignement des sciences expérimentales dans le secondaire. Les détails d’installation de la nouvelle version sont sur le forum.

    Mettez à jour vos modèles dès que possible !

    Évolutions Opale : à vos claviers

    Le Comité Opale prévoit de se réunir en mai pour analyser les demandes d’évolution, et les passer à priorisation par les adhérent⋅e⋅s lors des Rencontres 2024 (tiens, encore une bonne raison pour adhérer :) ).

    Donc si vous avez une idée d’évolution, essayez de la proposer avant mai (sinon ce n’est pas grave ça sera pour l’année prochaine).

    Ça se passe sur la place des évolutions Opale (lisez les explications pour bien comprendre comment on s’y prend)

    Traductions vers l’italien

    L’équipe de traduction communautaire vers l’italien a été constituée.

    Si vous pouvez donner un coup de main pour traduire du français vers l’italien (chacun⋅e en fonction de ses disponibilités), écrivez à direction@scenari.org.

    Ainsi nos amis transalpins pourront utiliser aussi les outils Scenari dans leur langue.

    Le savais-tu ?

    Astuce Scenari : si vous utilisez ScenarichainDesktop ou bien toute autre application Scenari individuellement sur votre propre poste, il est possible de manipuler deux fenêtres application du même atelier.

    Il suffit de cliquer sur le menu de trois petits points verticaux en haut à gauche de la fenêtre, puis d’aller dans le sous-menu Fenêtres > Dupliquer la fenêtre. Il existe un raccourci clavier : ctrl+n sur Windows/Linux, pomme+n sur Mac.

    Duplication d’une fenêtre Scenari desktop

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌