Vue lecture

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

Podcast Projets Libres saison 4 épisode 19 : surveiller les grandes plateformes grâce à Open Terms Archive

Titre de l'image

Comment rendre plus transparents les changements des conditions d'utilisation des grands services numériques ?
Pour ce nouvel épisode sur les communs numériques, nous partons à la découverte d'Open Terms Archive !

Open Terms Archive permet de suivre et alerter des changements qui se cachent dans ces documents peu compréhensibles.

Avec Sydney Wheeler et Matti Schneider nous revenons sur :

  • la genèse du projet
  • sa gouvernance et sa communauté
  • son fonctionnement
  • ses défis de structuration après sa phase d'incubation au sein du ministère des affaires étrangères jusqu'à janvier 2026
  • son utilisation en dehors de la France

Commentaires : voir le flux Atom ouvrir dans le navigateur

Un arc-en-ciel dans le logo de LinuxFR.org

Le mois de juin est le mois des fiertés. C’est l’occasion de diverses mobilisations en faveur des droits des personnes LGBTQIA+, son symbole est le drapeau arc-en-ciel.

Avec cet arc-en-ciel qui nous saute aux yeux, il a été difficile de résister à la tentation d’en évoquer les couleurs. Et, évidemment, ça donne aussi un excellent prétexte pour expliquer en quoi l’informatique a libéré les couleurs.

Quatre variantes de drapeaux des fiertés

Sommaire

Le mois des fiertés, pourquoi ?

Pas récent du tout, le mois des fiertés a été instauré en 1969 à la suite des émeutes de Stonewall à New-York consécutives à une descente de la police dans un bar gay de la ville et son cortège de violences policières et d’arrestations.

L’actualité fait qu’il est toujours essentiel de rappeler les droits des personnes LGBT, quelques exemples : aux USA, l’Iowa a révoqué les règles de protection des personnes transgenres en 2025. Toujours aux USA, les personnes transgenres sont exclues de l’armée. Au Ghana, le Parlement vient de voter une loi visant à criminaliser l’existence des personnes LGBT. En France, le nombre de crimes et délits anti-LGBT est en forte hausse, une violence très marquée politiquement à droite. Et cela va de pair avec des attentats masculinistes susceptibles d’être perpétrés par une population d’hommes de plus en plus jeunes et dangereux et qui inquiète la Direction générale de la sécurité intérieure (DGSI). Il n’est même pas nécessaire que les faits soient exacts où qu’il y ait une violence physique, une rumeur peut faire des dégâts.

Il paraît utile de rappeler que l’homosexualité par exemple n’est pas contre-nature. Ainsi nos amis les manchots, qui sont monogames, soit le temps de reproduction, soit toute leur vie peuvent être homosexuels et former des couples qui, comme les manchots australiens Sphen et Magic, peuvent être amenés à couver et élever des poussins.

Quel est le rapport avec LinuxFR.org, outre le fait qu’il s’agit de droits humains fondamentaux qui concernent la vie privée. Travailler dans la sphère informatique n’empêche nullement de se préoccuper de ces questions. On peut citer Mary Ann Horton, qui a, notamment, été pionnière en matière de politique d’égalité d’emploi des personnes transgenres, elle a aussi participé au développement de l’éditeur de texte vi et travaillé sur UNIX et Internet. On peut aussi rappeler Lynn Conway (1938 – 2024) qui a, entre autres, travaillé pour le DARPA (agence américaine de la Défense chargée de projets de recherche militaires) dans le domaine de l’intelligence artificielle et militera aussi pour les droits des personnes transgenres.

Un arc-en-ciel, mais avec combien de couleurs ?

Les couleurs du drapeau de mois des fiertés sont celles de l’arc-en-ciel, ça réunit les couleurs de tous les drapeaux des différents pays. Il faut savoir, cependant, que l’arc-en-ciel est présent dans d’autres drapeaux. Ce sont ainsi les couleurs du drapeau de la paix, du drapeau bouddhiste ou encore du drapeau des peuples andins, le Wiphala.

Comme on peut le voir sur le bandeau qui orne cette dépêche, le nombre de couleurs du drapeau des fiertés n’est pas figé. Il en existe plusieurs variantes (EN), on trouve même sur OpenClipart une version avec les références hexadécimales des couleurs (EN). Ce qui nous mène à la question du nombre de couleurs de l’arc-en-ciel. La réponse n’est pas sept, enfin, pas vraiment.

L’arc-en-ciel apparaît quand le soleil éclaire des zones de pluie, à l’opposé du soleil. Cet évènement météorologique a intéressé, intrigué les êtres humains depuis la nuit des temps et de nombreuses civilisations l’ont relié à des symboles, divins ou autres.

Pour Isaac Newton (1642 – 1727), l’arc-en-ciel compte sept couleurs : rouge, orange, jaune, vert, bleu, indigo et violet. Mais :

Quand il décrit les couleurs qui apparaissent, Newton n’en distingue souvent que cinq (pas l'indigo ou le violet, pas l'orange et l'indigo). Quand il ordonne les couleurs, il en nomme sept. (Bernard Maitte, Histoire de l’arc-en-ciel)

Et si, continue Bernard Maitte, le poète Dante Alighieri (entre 1265 et 1267 – 1321) et le philosophe italien Marsile Ficin (1433 – 1499) voyaient aussi sept couleurs, mais différentes, dans l’arc-en-ciel, ce n’était pas le cas d’Aristote (384 – 322 AEC), des Arabes, dont notamment le mathématicien Alhazen (vers 965 – vers 1039) auteur d’un traité d’optique, du moine Vitellion (1230 – vers 175) lui aussi auteur d’un traité d’optique, de l’astronome allemand Johannes Kepler (1571 – 1630) ou du grand rival de Newton, Robert Hooke (1635 – 1703).

Il est plus que probable que ces sept couleurs auxquelles s’accrochait Newton sans les distinguer étaient plus liées à des raisons qui n’avaient rien à voir avec la physique : suivre les sept notes de la notation musicale par exemple. Par ailleurs, le nombre sept, dans la tradition judéo-chrétienne est lié à nombre de symboliques : les sept jours de la création, les sept péchés capitaux, les sept vertus théologales et cardinales, les sept paroles du Christ en croix, etc. Sans oublier les sept jours de la semaine, on comprendra aisément pourquoi Newton a choisi de parer son arc-en-ciel de sept couleurs. On peut imaginer que s’il avait, dans un monde parallèle, lu les Annales du Disque monde de Terry Pratchett, il aurait décrété que l’arc-en-ciel comportait en fait huit couleurs, la huitième étant l’octarine qui pourrait être « une sorte de jaune-pourpre verdâtre fluorescent » ou « une nuance particulière de rose-violet électrique ». En hexadécimal, ce serait la couleur #CCDD00, en rgb 204, 221, 0 et 8 %, 0 %, 100 %, 13 % en CMJN.

En définitive, il y en a combien ? Selon les cultures, le nombre de couleurs varie : cinq chez les Japonais par exemple. En fait, un arc-en-ciel n’est pas composé de rayures bien nettes mais d’un dégradé du rouge au violet, donc on peut dire une seule couleur si on veut. La vision et l’interprétation du nombre de couleurs peut ainsi dépendre de plusieurs facteurs et notamment celle de la qualité de la perception des couleurs des personnes qui regardent un arc-en-ciel.

Les nuanciers : comment l’informatique a libéré les couleurs

Dans son Traité des couleurs et vernis de 1773, M. Mauclerc, qui se disait marchand épicier, explique (j’ai volontairement gardé les graphies d’origine) :

D’abord l’Homme a eu des Couleurs telles quelles, par l’expression des plantes

puis précise que :

la Chimie les a perfectionnées & rendu plus nombreuses.

Et ajoute en note :

Le tournefol, l’indigo font bleu ; le ſaffran, la gaude, la graine d’avignon font jaune, le ſang-dragon, la cochenille, l’aucus, la garance, l’orſeille font rouge. L’on tire encore de la teinture, des bois tels que du terra-merita, du bois de fernanbouc, du bois d’Inde.

Dès qu’on sort des couleurs « brutes » (et même avec d’ailleurs) il devient nécessaire de pouvoir maîtriser les mélanges afin d’être sûr d’obtenir les mêmes nuances avec le même type de mélange. C’est d’ailleurs suite à des plaintes de clients de la Manufacture des Gobelins sur la qualité de la teinture des laines que le chimiste Michel-Eugène Chevreul (1786 – 1889) se penchera sur les couleurs. Il en ressortira, entre autres, des cercles chromatiques et une recherche sur « Un moyen de définir et de nommer les couleurs d’après une méthode précise et expérimentale », titre d’un exposé qu’il prononcera en 1861 devant l’Académie des sciences de l’Institut de France.

Pantone et Adobe

Les nuanciers sont un moyen de définir et de nommer les couleurs. Il en a existé, il en existe de multiples, sous des formes matérielles diverses. Le plus connu est probablement le nuancier Pantone qui contient quelque chose comme un millier de nuances de couleurs et fait autorité sur la question et c’est, évidemment, un nuancier propriétaire. Il est principalement utilisé en imprimerie et dans le secteur du graphisme. L’une des raisons de sa popularité parmi les graphistes c’est le partenariat noué avec Adobe. Les références Pantone étaient donc dans les logiciels Adobe : Indesign, Illustrator, Photoshop. Et puis arrive le jour de la rupture contractuelle entre les deux partenaires. En 2023, Pantone disparaît des produits Adobe. Nicolas Taffin, co-fondateur des éditions C&F, raconte au micro de France Inter que du jour au lendemain, les utilisateurs et utilisatrices des logiciels Adobe se sont retrouvés avec des fichiers qui avaient perdu leurs couleurs. Tous les fichiers créés avec des versions plus anciennes des logiciels Adobe étaient couverts de pavés noirs en lieu et place des « vieilles » couleurs aux références Pantone.

Une collection de nuanciers

Les nuanciers peuvent être utilisés de diverses façons, quelques exemples.

  • Vendre des produits comme le nuancier de fils à tricoter de la filature Bergère de France.

Nuancier Bergère de France, Idéale
Le nuancier avec ses échantillons de fil à tricoter permet de voir et de toucher les laines pour les choisir plus facilement. Les noms des couleurs figurent à côté des échantillons.

  • Signaler les références des couleurs appliquées sur les surfaces qui vont accueillir les peintures pour pouvoir effectuer un choix définitif.

Bâtiment avec des références de couleur tirées du nuancier Baumit
Les affichettes sur ce bâtiment parisien indiquent la teinte de la peinture selon le nuancier Baumit. Pour la petite histoire, celle avec un point vert est la nuance retenue.

  • Pour les céramistes, savoir comment rendra un oxyde après cuisson selon la terre utilisée.

Nuancier sur grès noir
Nuancier en grès de la céramiste Michèle Fischer, les rayures avec les notations « étain », « K 470 » ou encore « K 470 + étain » indiquent l’oxyde ou la combinaison d’oxydes utilisées.

Des couleurs codées et libérées

La gestion des couleurs en informatique peut se faire de plusieurs façons, et aucune n’est liée à une entreprise commerciale ce qui fait qu’elles sont utilisables universellement, si le matériel les supporte.

Pour commencer : le numéro de code hexadécimal utilisé pour les sites HTML. Il est composé d’une série de six lettres et chiffres. Si KcolorChooser fonctionne correctement, le rouge du premier drapeau des fiertés en haut de la page a comme numéro de code #e40303.

Au début du web, il n’y avait qu’un nombre très limité de couleurs auquel on pouvait se fier, elles ont un nom : navy, lime, etc. Il n’était pas sûr que les logiciels puissent gérer correctement les autres nuances. Depuis cette quinzaine de couleurs, incluant le blanc (#FFFFFF) et le noir (#000000) ont gardé leurs noms.

Les couleurs RVB, pour rouge-vert-bleu ou RGB en version anglaise est un système de codage basé sur trois couleurs primaires qui sont donc le rouge, le vert et le bleu. C’est le système de couleurs des écrans d’ordinateurs, d’ordiphones ou de tablette. On peut écrire le code de répartition des trois couleurs primaires sous la forme de pourcentage, mais le plus souvent sous cette forme : 225–3–3 qui est le rouge #e40303. Cette façon de coder les couleurs a des limites, notamment le RVB ne gère pas les couleurs plus saturées et le fait que, selon les écrans, l’affichage peut avoir des rendus différents.

Le système TSL (HSL en anglais) pour teinte-saturation-luminosité, c’est :

un modèle colorimétrique perceptuel car il se rapproche fortement de la perception physiologique de la couleur par l’œil humain. Dans ce système, les couleurs sont toujours caractérisées par trois dimensions mais qui ont une signification tout autre que dans le modèle RVB, puisqu’elles représentent ici la teinte, la saturation et la luminosité (…).

  • La teinte qui correspond à la perception de la couleur est mesurée sur une échelle circulaire (cercle de chromaticité de Newton) par un angle de 0° à 360°.
  • La saturation mesure le degré de pureté d’une couleur, c’est-à-dire la quantité de gris ajoutée à la couleur. Elle est représentée par le rayon d’une section circulaire du cône et varie de 1 (couleur pure ou saturée) à 0 (niveau de gris correspondant).
  • La luminosité représente le degré d’éclaircissement ou d’assombrissement d’une couleur. Elle est définie selon une échelle linéaire allant de 0 (noir) à 1 (blanc) en passant par tous les niveaux de gris. (Cours Université de Paris).

Et enfin, le modèle de couleurs quadrichromique CMJN pour Cyan (bleu), Magenta, Jaune, Noir qui est celui utilisé en imprimerie offset. La répartition des couleurs primaires est indiquée sous forme de pourcentage de la couleur dans les 100 % de la nuance.

Et si vous voulez vous amuser à calculer vous trouverez même un convertisseur qui vous donne les formules.

Ressources, idées supplémentaires et mot de la fin

Rapide bibliographie pour prolonger le voyage dans les couleurs

Pour créer vos propres palettes pour LibreOffice et GIMP et Inkscape

Les fichiers de palette de LibreOffice sont des.soc, celle de Gimp et Inkscape sont des.gpl. Les deux types de fichiers se glissent dans le dossier palette de l’application. Krita a un autre format de palette.

Des idées de dépêches sur le mois des fiertés

Si vous voulez vous aussi écrire une dépêche sur le mois des fiertés en lien avec les thématiques de LinuxFR.org, ces quelques suggestions, de Benoît Sibaud pour commencer :

Cela pourrait être soit des projets très ciblés, soit des projets non spécialement ciblés mais affichant clairement un soutien, soit des événements, un char de libristes, soit…

Krunch quant à lui pense qu’il y a du potentiel pour écrire des articles sur des informaticien·ne·s/libristes queer célèbres comme : Mary Ann Horton, Jon Hall, Lynn Conway ou Sophie Wilson.

Le mot de la fin

Cette dépêche n’aurait sans doute pas existé si la lecture du livre de Bernard Maitte n’avait pas été suggérée dans un commentaire. Mais je laisse à la chanteuse américaine Dolly Parton le mot de la fin en vous souhaitant un été plein d’arc-en-ciel :

Si tu veux l’arc-en-ciel, tu dois supporter la pluie.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Migrer de WordPress vers Hugo

Passer du système de gestion de contenu WordPress au générateur de sites statiques Hugo c’est changer de paradigme, il faut savoir ce que l’on va gagner et ce que l’on va perdre et il faut retrousser ses manches, un jour viendra où cela se fera en un clic, mais ce n’est pas aujourd’hui !

Sommaire

Avant même de se poser la question comment, on peut se poser la question : pourquoi ?

Avec WordPress chaque page repose sur du PHP, un programme est exécuté qui peut faire de nombreuses actions, il y a une base de données. WordPress est un des classiques LAMP (Linux, Apache, MySql, PHP) et consorts, il nécessite l’installation de multiples composants. Quand le contenu à délivrer doit s’adapter au contexte utilisateur et à d’autres facteurs, c’est approprié, pour un site de commerce ça l’est, s’il s’agit d’une vitrine statique, ça ne l’est pas. Entre les deux on trouve le blog, qui peut se balancer d’un côté ou de l’autre si l’on souhaite gérer des accès utilisateurs, suivre les pages ou ajouter des interactions.

Avec Hugo, le site est généré une seule fois puis les pages sont délivrées, à l’ancienne dirait-on. À la grande époque où l’on éditait le HTML à la main et on publiait son site via FTP. Sauf qu’avec Hugo on manipule du Markdown plutôt que du HTML. Le Markdown est pratique, c’est l’héritage pragmatique d’Aaron Schwartz dont on peut encore trouver la trace dans le code PHP de génération. Le Markdown lui-même porte une étincelle de liberté, il est désormais normalisé dans la RFC 7763. Et on utilise le programme Hugo qui est un binaire fourni, ou bien compilé depuis du code Go, pour générer des pages HTML. Le site généré peut être délivré en http par Hugo ou bien par n’importe quel serveur web. Hugo repose aussi sur des en-têtes front-matter dans les fichiers Markdown qui est une extension plus récente.

Sortir de WordPress c’est sortir d’une zone de confort et ce sera nécessairement perdre des fonctionnalités, comme l’édition en ligne directe intégrée par exemple, le suivi de vues et les formulaires.

C’est aussi faire un choix simplificateur, économe et efficace. Beaucoup moins énergivore il est aussi beaucoup plus efficace et rapide. Il est aussi beaucoup plus facile à déployer qu’un WordPress puisqu’en définitive ce n’est qu’un binaire et un thème.
Une autre bonne raison de migrer est la sécurité, comme a pu le faire le projet Xubuntu à la fin de l’année dernière suite à la compromission de leur site de téléchargement sous WordPress

Mais pourquoi Hugo et pas une autre solution, par exemple Jekyll ?

Hugo est la version la plus efficace, écrit en Go et compilé, les performances se rapprochent sans les égaler de celles de Rust ou de C. Et il est maintenu, dispose d’une communauté qui maintient des thèmes permettant de facilement avoir un rendu à la mode. Jekyll est en Ruby qui n’est pas le plus performant des langages mais est très versatile. Jekyll est apparu avant Hugo ce qui explique sa notoriété.

Ces deux logiciels ont popularisé la génération de sites statiques, mais ce ne sont pas les seuls, eleventry par exemple a déjà été couvert par un journal sur LinuxFr.org.

Ma vie, mon œuvre

Dans mon cas je ne me suis pas posé la question puisque je réponds à une demande d’une personne qui a déjà fait son choix, il faut migrer !

Avant de me lancer dans l’aventure j’ai dû me renseigner, parce que j’opère bien un site statique qui me sert de vitrine et celui-ci est en Markdown sous Git, mais tout est fait à la main et je ne connais pas Hugo. Je ne suis pas non plus un grand utilisateur de WordPress, que j’ai toujours trouvé lourd, et d’ailleurs j’ai toujours eu un faible pour les challengers, et je m’étais penché sur Joomla qui a les mêmes défauts. Utiliser ces CMS c’est déjà avoir appris une façon de penser, avec les pages et les posts, cela ne m’a jamais paru intuitif.

Donc j’étais absolument et résolument prêt pour cette migration !

Vous pouvez à ce moment me demander pourquoi donc l’ai-je fait ?

Parce qu’un ami me l’a demandé, parce qu’il rémunère pour cela et parce que je trouve que cela va dans le bon sens. Celui de l’éco-responsabilité, une sobriété qui ne transige pas avec la qualité et un mouvement vers plus d’indépendance.

Donc je me renseigne.

WordPress via le navigateur, Hugo via le terminal

Si vous ne souhaitez pas utiliser de terminal et des scripts shells, alors je serais d’avis de vous déconseiller fortement de vous lancer dans l’aventure Hugo.
Parce qu’Hugo c’est du Web as code, très exactement l’inverse du WYSIWYG le PETALE Pris à l’écrit tel à l’écran. Tout se fait en Markdown dans votre éditeur favori.
Cela s’opère souvent via Git et le fait de pousser le commit git vers le serveur régénère le contenu du site.
S’il est possible de le faire via un VSCodium, je reste sur mon Emacs favori, mais évidemment ceci un choix très personnel.
Un bon éditeur de texte capable de te laisser saisir des codes Markdown est absolument nécessaire, un éditeur de texte dans ce cas ce n’est pas un traitement de texte, Libreoffice par exemple ne m’apparait pas comme l’outil adapté, mais je vous laisse juge.

On installe le plugin, clic ! On importe le résultat et c’est fini !

C’est assez évident en fait il suffit de suivre ce que propose le projet Hugo en matière de migration vers Hugo.

Ça c’est ce que l’on souhaite et j’y ai presque cru.

Il n’y a pas de plugin WordPress officiel pour exporter vers Hugo, mais il y en a pour exporter en Jekyll. Sachant que Hugo sait importer du Jekyll, cela semble évident.

Tout d’abord il faut importer le plugin sous WordPress.
Si cela semble évident quand le plugin est disponible dans le magasin des plugins WordPress, cela ne l’est plus quand il faut l’installer à la main.

Dans mon cas, et peut être dans le vôtre aussi vous n’avez pas installé le WordPress, il vous a été fourni en tant que service hébergé, et c’est pourquoi vous êtes limités aux plugins officiels, quand encore, on vous y autorise.

Donc en suivant le lien de migration depuis WordPress je lis (en anglais, mais je vous offre gratuitement la traduction) :

wordpress-to-hugo-exporter

Un plugin en un clic qui convertit tous les posts, pages, taxonomies, metadata, et settings en Markdown et YAML et déposable dans Hugo. (Note: Si vous avez des difficultés avec ce plugin, vous pouvez exporter le site pour Jekyll et utiliser le convertisseur intégré à Hugo listé ci-dessus)

Oui mais non, je n’ai pas accès au backend.

Et pourquoi ne pas juste installer un plugin officiel comme celui dont wordpress-to-hugo-exporter dérive ? Le jekyll-exporter

Ce n’est pas un échec, mais ça n’a pas marché.

Après l’installation du plugin et l’utilisation de l’export le site me réponds avec aplomb : 500 Internal ERROR.

Plutôt que d’abandonner, je cherche sur le projet source s’il y a un bug en cours et effectivement : Issue #400 sur wordpress-static-site-exporter. Sur ce, je rajoute mes informations sur le bug et j’attends une réponse.

Donc le ça fonctionne en un clic n’aura pas tenu bien longtemps, en attendant un correctif je me penche sur une alternative. Mais ne vous inquiétez pas, nous y reviendrons, si vous avez suivi le lien de l’issue vous le savez déjà !

Exportez votre site WordPress et appliquez un outil magique !

Ce n’est pas bien grave, il y a d’autres outils…

blog2md
Fonctionne sur l’XML exporté depuis le site gratuit votre VOTRE-DOMAIN.wordpress.com. Cela sauve aussi les commentaires approuvés sous forme YOUR-POST-NAME-comments.md à côté des posts.

Ce projet n’a pas évolué depuis quatre ans, je ne vais pas choisir cette option.

wordhugopress
Un petit utilitaire écrit en Java qui exporte le site WordPress depuis la base de donnée et les resources (c’est-à-dire par exemple les images) stockées localement ou à distance. Ainsi la migration depuis des backups est possible. Support de multiples sites vers un seul site Hugo.

Je n’ai pas accès à la base de données où à l’export des backups, je ne vais pas choisir cette option non plus.

wp2hugo

Celui-ci est un très bon candidat, sauf que je vends mon travail et la licence de cet outil est Attribution-NonCommercial-ShareAlike 4.0 International, donc je ne vais pas choisir cette option. Si mon budget avait été très important j’aurais envisagé de contacter l’auteur pour négocier, mais ce n’est pas le cas.

Donc aucun de ces autres outils ne répond à mes besoins.

La vérité est ailleurs ?

Oui, mais il n’y a pas que site Hugo de référence non plus.

Les forums et en particulier https://discourse.gohugo.io/t/wordpress-migration-url-rewriting/3827, mais il a été écrit il y a presque dix ans…
Et dans mes pérégrinations hors des sentiers battus des scripts Python émergent https://www.infinitescript.com/2024/01/migrate-from-wordpress-to-hugo/.
Ce guide aussi m’a inspiré https://fr.benchwiseunderflow.in/blog/guide-complet-migration-wordpress-hugo/ ceci dit fournir les scripts Python dans son blog sans l’indentation, ce n’est pas ce qui se fait de mieux.

Voici la liste des projets que j’ai regardés, je n’en ai testé qu’une sous partie entre ceux utilisant de l’IA ou pour lesquelles mon utilisation ne respecterait pas la licence et celles dont le contenu semble trop vieux…

Site Commentaire langage html -> markdown license testé
https://github.com/benbalter/wordpress-to-jekyll-exporter plugin officiel nécessite une migration supplémentaire jekyll -> hugo php wordpress plugin Markdownify GPL-3.0
https://github.com/SchumacherFM/wordpress-to-hugo-exporter basée sur une version du projet ci-dessus mais datant de 2014, a dérivé depuis. Ce n’est hélas pas un plugin officiel php wordpress plugin Markdownify GPL-3.0-or-later
https://github.com/lonekorean/wordpress-export-to-markdown travailler sur l’export en XML it won’t migrate GUID correctly nodeJs javascript turndown -
https://github.com/bradfeld/wp-to-hugo plus complet mais : IA generated Claude / typescript via API strip WordPress block comments nodeJs typescript turndown MIT License (& IA ?) Non : IA
https://github.com/ashishb/wp2hugo attachment page post wp_navigation wp comments footnote go [[site_scrapping_vers_Hugo#johanneskaufmann_html_to_markdown]] Attribution-NonCommercial-ShareAlike 4.0 Non, licence non commerciale et c’est un travail commercialisé
https://github.com/helgeklein/WordPress-Hugo-Migration-Scripts-HTML-Markdown/ https://helgeklein.com/blog/scripted-wordpress-html-to-hugo-markdown-migration/ post_type in (“post”, “page”)… donc pas de gestion des blocks python BeautifulSoup MIT
https://github.com/some-programs/exitwp https://web.archive.org/web/20221120194327/https://www.justindunham.net/migrating-from-wordpress-to-hugo/ 2019 ? page et post + item_type_filter python beautifulsoup html2text ~ GNU GPL 3
https://github.com/dreikanter/wp2md issues https://github.com/dreikanter/wp2md/issues python html2text
https://fr.benchwiseunderflow.in/blog/guide-complet-migration-wordpress-hugo/ status “publish” post_type “post”, “page” le code fourni est à copier coller et non fonctionnel python pandoc
https://www.infinitescript.com/2024/01/migrate-from-wordpress-to-hugo/ post de blog contenant le code python utilisé python re (regular expression python)
https://github.com/palaniraja/blog2md Le projet a 4 ans et part de blogger et non de WordPress javascript ? absence de licence non testé

C’est wordpress-export-to-markdown qui a remporté une partie du travail. Cela a nécessité l’installation de node puisque le code est en javascript.

J’exporte donc le site via la fonction standard d’export de site WordPpress qui fourni un fichier XML.

Cet export contient tout sauf les images et les autres ressources, donc il faudra que l’outil puisse les rechercher, et donc que le site WordPress soit toujours activé. Ceci ne peut donc pas se faire sur un site indisponible ou bien même déjà arrêté.

On installe Hugo

Et il faut un serveur, une vraie machine avec une adresse IP publique, un serveur web.
Là où pour du WordPress un hébergeur fournit la solution, en Hugo le plus classique est tout de même de mettre en place son propre serveur. Avec tout ce qui va bien, et le certificat pour HTTPS.

Mais avant de faire le pas, cela s'installe en local sur une machine de développement avec docker, podman, inclus ou bien même directement puisque ce n’est qu’un exécutable.

sur une machine Linux :

sudo apt install hugo

ou

snap install hugo

Il suffit de lancer hugo server dans le répertoire du projet hugo et se connecter sur localhost avec l’URL qui a été fournie dans le terminal.

Dans le cas d’une migration vous aurez forcément à modifier de nombreuses pages de votre site qui comportent des problèmes de code markdown mal converti depuis le HTML.

Et il vous faudra utiliser des scripts, dans votre langage préféré, mais dans tous les cas l’utilisation d’expressions régulières sera nécessaire. C’est-à-dire : il faut connaître un minimum de programmation.

Voici le genre de commande qui recherche tous les fichiers avec l’extension.md et supprime le 'Proudly powered by WordPress' dedans :

text='Proudly powered by <a href="https://wordpress.org" rel="nofollow">WordPress</a>'
find content -name '*.md' -print0 | xargs -0 sed -i 's|'"$text"'||g'

Attention cette commande fonctionne, car le texte $text est compatible avec la syntaxe de commande sed en particulier utiliser un '|' dans la variable text serait problématique.

En suivant la procédure d’installation rapide https://gohugo.io/getting-started/quick-start/ on va créer un dépôt git. Si par la suite on souhaite le répliquer pour le tester ailleurs alors il ne faudra pas oublier les submodules pour le thème, sinon la génération du site rendra un site vide.

git clone user@server:quickstart --recurse-submodules mon_site
cd mon_site
hugo server

On termine avec un firefox http://localhost:1313 par exemple pour voir en local.

on pourra alors éditer le contenu sous content avec notre éditeur préféré et créer un commit git quand nous sommes contents de notre résultat local.

git add content
git commit -m 'édition numero xx du site'
git push

Cela doit pousser sur le git parent le contenu. Si le git parent est attaché à la production alors la production est mise à jour ainsi.

C’est pas beau hein ?

Le contenu généré par l’outil de migration ayant été copié dans le répertoire content du projet Hugo, il suffit de lancer le serveur Hugo pour qu’il soit délivré sur le port indiqué en console. En se connectant avec un navigateur firefox https://localhost:1313, le contenu apparait…

Ah j’oubliais, en Hugo toute la présentation est contrôlée par le thème, ici le thème choisi est ananke, c’est celui proposé dans la documentation de démarrage rapide de Hugo

Il y a du contenu, certes mais quand même il y a eu des dégâts collatéraux.

Cliquez sur l’image pour voir la vidéo.

vue comparée du site avant et pendant migration

Les blocs réutilisables de WordPress

Il s’agit d’une fonctionnalité ajoutée dans l’éditeur de WordPress Gutemberg, la possibilité de créer des blocs réutilisables qui seront référencés dans d’autres pages ou bien même dans d’autres blocs

Pratiquement tous les outils d’export ne conservent pas les items qui ne sont ni de type page ni de type post et quand ils conservent les autres type, ils ne gèrent pas les blocs réutilisables.

Dans le fichier d’export.xml de WordPress on les retrouve ainsi :

<item>
…
<wp:post_id>610</wp:post_id>
…
</item>

et sont utilisés par référence :

<!-- wp:block {"ref":610} /-->

Dans mon cas pour l’outil wordpress-export-to-markdown, j’ai créé une demande de fonctionnalité pour le support des blocs réutilisables.

En pratique les outils perdent complètement le contenu de ces blocs.

Une façon de résoudre le problème est d’utiliser la source HTML générée par WordPress directement et de la convertir en Markdown.

Les <figure>

Hugo ne gère pas le tag <figure>, il faut supprimer ces tags, sinon les images qu’ils contiennent n’apparaissent juste pas. Or WordPress génère souvent des blocks HTML avec des tags figure.

Voici un script bash qui supprime le tag figure partout dans tous les fichiers.md de content.

find_files=(find content -name '*.md' -print0)
command2=(xargs -0 sed -i 's|</\?figure[^>]*[>]||g;')
"${find_files[@]}" | "${command2[@]}"

URL permanentes

Il est crucial que les pages migrées se retrouvent au même endroit après migration. C’est crucial car cela fait partie du SEO, votre référencement, si vos pages changent de place, les moteurs de recherche vont vous perdre, tout comme les références depuis tout autre site.

En Hugo c’est le champ urldans l’entête front-matter du fichier markdown qui sert à indiquer où la page destinée à être délivrée.
Cette URL peut être totalement différente du répertoire dans lequel le fichier se trouve, même s’il est conseillé de conserver la mẽme hiérarchie, c’est une solution pratique.

URL relatives

WordPress délivre toutes ses pages avec des URL absolues dans le corps c’est-à-dire avec le nom du site intégré dans l’URL, ceci est un souci quand on souhaite déplacer le site, ou bien avec un site réplica lui aussi accessible en ligne mais sous une autre URL.

Les expressions régulières sont là pour ça, il faut supprimer http://monsite du début des toutes les URL. Pour rappel, à l’intérieur d’une page HTML un lien href='/article/linuxfr.html' est une référence relative dans le site courant, si l’URL du site est https://example.com alors le lien avec l’URL absolue est au lien `href='https://example.com/article/linuxfr.html'.

Si vous ne faites pas vous pourriez avoir la surprise lors de l’arrêt du site WordPress de ne plus avoir les images et autres ressources, car elles étaient sur le site original et non sur le nouveau site migré !

voici un exemple en bash

find_files=(find content -name '*.md' -print0)
command2=(xargs -0 sed -i "s|https://${site_domain}||g")
"${find_files[@]}" | "${command2[@]}"

Le menu

Le menu a été perdu, c’est ballot !
Via l’export Hugo il n’y a pas de menu du tout, il est perdu.
Dans WordPress le menu est supporté par du CSS les classes wp-block-navigation…
En Hugo c’est le thème qui le gère, ici avec ananke il faut rajouter des entrées de menu avec menu.main, dans mon cas j’ai rajouté le menu globalement dans le fichier de configuration Hugo, mais il y a plusieurs façons de définir les menus en Hugo.

Un site WordPress c’est un site web comme un autre

Une autre approche est de considérer qu’un site WordPress c’est un site web comme un autre.
Un navigateur n’a pas de code particulier pour visualiser un site WordPress, donc un site WordPress est juste un site web, certes avec beaucoup de JavaScript et CSS, mais un site web.
Et un site web, ça se siphonne, et c’est facile, il suffit de regarder le projet internet archive, par exemple le site de LinuxFr.org le 2 avril 2018 pour s’en convaincre, il est très facile de récupérer le contenu visible d’un site web, à condition de connaître tous les points d’entrée et en pratique il suffit de partir de la page principale.
Puisque vous migrez un site que vous possédez, il n’y a pas de souci à utiliser un aspirateur de site.

Une fois le site récupéré, il y a des convertisseurs Markdown.

En particulier j’ai employé le convertisseur de HTML vers Markdown de Johannes Kaufmann, qui est aussi une base pour d’autres projets de conversion pour des applications particulières dont WordPress.

Et le tour est joué ! Ou presque…

On repart de zéro et on mélange tout

Si aucune des solutions ne fonctionne, chacune permet de créer une partie du site. En utilisant toutes les générations on peut récupérer les meilleurs pages.

Dans mon cas le plugin officiel de migration de jekyll vers hugo a été corrigé et j’ai donc pu l’utiliser.

En utilisant aussi des parties générées depuis le site statique, j’ai obtenu un résultat acceptable, mais cela ne s’est pas fait sans une série de petits scripts en bash à base de find et de sed et donc d’expression régulières, les fameuses regex.

Variations mais pas sur le même thème

Une fois le contenu cohérent, il est temps de tester d’autres thèmes Hugo pour donner au site une apparence différente.
Ces thèmes aussi peuvent être personnalisés. La notion de thème existe déjà dans WordPress, donc vous ne devez pas être surpris, mais les thèmes de WordPress ne peuvent pas être transposés tels quels dans Hugo, par exemple le thème twentytwo désormais classique ne se résout pas en la copie de son continu sur Hugo.
Mais passer à Hugo c’est aussi l’opportunité de se démarquer.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Podcast Projets Libres saison 4 épisode 19 : facturation électronique, état d’avancement pour les communautés Dolibarr et Odoo

Titre de l'image
Dans ce nouvel épisode, on reparle de la facturation électronique, qui arrive en France à partir de septembre 2026 ! 📢 🎧

Après avoir introduit le sujet dans un épisode précédent, nous voyons aujourd'hui :

  • les évolutions de la réforme en elle-même avec l'introduction du projet de loi finance 2026
  • l'état des implémentations dans Dolibarr, Odoo et module OCA
  • le déploiement de PDP Libre, sa gouvernance et son choix de plate-forme agréée.

Autour de la table :

  • Alexis de Lattre (Akretion), membre de l'Odoo Community Association (OCA)
  • Maxime Kohlhass (ATM Consulting), membre de la communauté Dolibarr
  • Philippe Scoffoni (OpenDSI), membre de la communauté Dolibarr et président de PDP Libre

Commentaires : voir le flux Atom ouvrir dans le navigateur

SelfRecover — protocole AGPL de récupération de compte sans email

Je suis agriculteur en Creuse et je code sur mon temps libre. J'ai commencé à m'intéresser à la question de la récupération de compte en développant ARC PVE Hub, un site destiné à fédérer une communauté de joueurs. Je n'ai jamais compris pourquoi il fallait transmettre son email pour régénérer un mot de passe — ça déplace la sécurité du compte vers un fournisseur SMTP tiers, qui n'est pas contrôlé par l'utilisateur.

J'ai donc imaginé un protocole de récupération sans email, sans SMS et sans tiers. Le travail s'est étoffé en partenariat avec un assistant IA (Claude), comme outil de réflexion et de mise en forme — j'y reviens en fin de dépêche dans une note de transparence.

L'incident de sécurité ANTS du 15 avril 2026 a publiquement illustré le problème. J'en ai eu connaissance après avoir développé SelfRecover, ce qui m'a confirmé la pertinence d'un protocole sans dépendance à l'email. SelfRecover est publié sous AGPL-3.0-or-later sur GitHub.

Cette dépêche présente le protocole, ses choix de conception, ses limites assumées, et la comparaison avec les approches existantes (Keycloak Recovery Codes en particulier, qui m'a été suggéré en relecture). Audit communautaire bienvenu.

Sommaire

Le contexte

Depuis l'essor du web, la réponse standard à « l'utilisateur a oublié son mot de passe » est « on lui envoie un lien de réinitialisation par email ». C'est devenu si universel qu'on oublie ce que ça implique :

  • La sécurité du compte est déléguée au fournisseur de la boîte mail (Gmail, Outlook, ProtonMail). Si la boîte mail tombe, le compte aussi.
  • Le canal email est régulièrement exploité par phishing : campagnes imitant des mails de réinitialisation légitimes pour capturer les mots de passe.
  • Les bases de données qui stockent les emails des utilisateurs deviennent une cible massive : leur fuite expose à la fois l'identité et les vecteurs de récupération.

L'incident de sécurité ANTS illustre une autre facette du problème de gestion des données d'authentification dans les services en ligne. Détecté le 15 avril 2026 et rendu public le 20 avril, il a touché 11,7 millions de comptes selon les communiqués officiels. La cause technique identifiée est une faille d'énumération de type IDOR (Insecure Direct Object Reference) : il était possible d'accéder aux données d'un autre compte en modifiant un identifiant dans une URL. La fuite ne concerne ni les mots de passe, ni les pièces justificatives, mais les données personnelles associées aux demandes de titres.

Devant ces limites structurelles autour de l'authentification web, SelfRecover propose une inversion : conserver le secret de récupération chez l'utilisateur, et utiliser le navigateur pour faire les calculs cryptographiques nécessaires à la vérification. Le serveur ne détient plus que des dérivés, jamais les secrets bruts.

Le protocole en deux phrases

Côté navigateur, on calcule HMAC-SHA256(secret, domaine) : une fonction cryptographique standard qui combine le secret de l'utilisateur avec le nom de domaine du site, et produit une empreinte impossible à inverser. Côté serveur, on ne stocke que cette empreinte, en plus protégée par un hash adaptatif et memory-hard : Argon2id, qui est le standard moderne recommandé contre les attaques par brute force.

Deux propriétés découlent de cette construction :

  • Le secret brut ne quitte jamais le poste de l'utilisateur.
  • Un secret capturé sur un site A (par exemple via phishing) est mathématiquement inutilisable sur un site B : la dérivation HMAC produit des empreintes différentes pour des domaines différents. C'est de l'anti-phishing par construction, pas par convention.

Note conceptuelle : l'inspiration vient des machines à rotors historiques type Enigma. Le principe partagé est qu'une même configuration secrète, présente des deux côtés (émetteur et récepteur), permet de produire et vérifier un message dérivé. La cryptographie moderne (HMAC-SHA256 ici) repose sur des fondations mathématiques différentes, mais ce principe de dérivation contrôlée par un secret commun est resté.

Deux modes d'adoption

SelfRecover propose deux modes selon le contexte de déploiement.

Mode Full — Sans email

L'application abandonne entièrement le flow de réinitialisation par email. L'utilisateur génère une passphrase diceware à l'inscription (liste EFF de 7 776 mots, 4 à 7 mots par défaut), qu'il mémorise ou stocke dans son gestionnaire de mots de passe. Cette passphrase, combinée au nom de domaine du site via HMAC-SHA256, permet de réinitialiser le mot de passe sans aucune dépendance externe.

Pour qui : nouveaux projets qui veulent s'affranchir de SMTP dès la conception, ou services qui adoptent un modèle de menace post-fuite (l'email n'est plus considéré comme un canal de confiance).

Mode Lite — Avec email + mot mémorisé

L'application conserve le flow de réinitialisation par email habituel, mais y ajoute une étape supplémentaire : l'utilisateur saisit un mot mémorisé (choisi à l'inscription) qui est dérivé HMAC-SHA256 côté navigateur. Le mot brut n'est jamais transmis au serveur. La validation combine donc deux facteurs :

  1. La possession de la boîte mail (lien reset reçu)
  2. La connaissance du mot mémorisé (dérivé HMAC côté client)

Pour qui : applications existantes qui ne peuvent abandonner SMTP du jour au lendemain, mais veulent durcir progressivement leur flow de récupération. Conséquence : un email intercepté seul ne suffit plus à compromettre un compte — il faut aussi connaître le mot mémorisé.

Synthèse

Mode Canal email Crypto utilisateur Cible
Full Aucun Passphrase diceware EFF + HMAC Nouveaux projets
Lite Conservé Mot mémorisé + HMAC Applications existantes

SelfRecover vs Keycloak Recovery Codes

Lors de la relecture de cette dépêche, devnewton a soulevé une question importante : quelle est la différence avec les Recovery Codes de Keycloak ?

Keycloak est l'IAM (Identity and Access Management) open-source de référence, maintenu par Red Hat sous licence Apache 2.0, déployé dans de nombreuses organisations depuis plus d'une décennie. Son mécanisme de Recovery Codes est un fallback d'authentification à deux facteurs : si l'utilisateur perd son téléphone TOTP, il peut saisir un code de secours préalablement généré côté serveur.

Note importante de positionnement : les Recovery Codes Keycloak adressent le cas « j'ai perdu mon 2FA mais je connais toujours mon mot de passe principal ». Le password reset principal de Keycloak utilise, lui, le canal email standard (configuration SMTP dans l'onglet Email de l'admin console).

SelfRecover s'attaque à un cas différent : « j'ai oublié mon mot de passe principal et je ne veux pas dépendre de l'email pour le récupérer ». Concrètement :

Aspect Keycloak Recovery Codes SelfRecover
Cible Fallback 2FA Password recovery sans email
Architecture Serveur IAM standalone (Java + BDD + admin) Bibliothèque à intégrer dans le code de l'application
Source du secret Serveur génère, utilisateur sauvegarde Utilisateur génère/mémorise (diceware ou mot mémorisé)
Stockage utilisateur Codes à sauvegarder physiquement Passphrase mémorisable (mode Full) ou mot mémorisé (mode Lite)
Email reset principal Reste nécessaire (SMTP configuré dans l'admin) Aucun (mode Full) ou en complément (mode Lite)
Anti-phishing crypto Pas spécifique au mécanisme Dérivation HMAC par domaine : un secret capturé sur un site est mathématiquement inutilisable ailleurs
Licence Apache 2.0 AGPL-3.0-or-later
Maturité 10+ ans, audité, déployé largement Récent, audit communautaire bienvenu

Pour la majorité des projets qui acceptent l'email comme canal de récupération, Keycloak (et son écosystème) reste le bon choix. SelfRecover s'adresse aux applications qui veulent réduire ou supprimer leur dépendance à SMTP, et qui n'ont pas besoin de la richesse d'un IAM complet (multi-realm, OIDC/SAML, fédération d'identité, etc.).

Que se passe-t-il si l'utilisateur perd son secret ?

C'est la question critique d'un protocole de récupération. SelfRecover y répond par escalade progressive sur trois niveaux, complétée par un système de litiges et un chat administrateur pour les cas extrêmes.

Niveau 1 — Passphrase oubliée

L'utilisateur saisit son username + sa passphrase diceware (match exact). Sur succès, un nouveau mot de passe est généré et affiché une seule fois. Anti-brute force : 3 tentatives par 15 minutes, 3 blocages successifs → éjection vers L2.

Niveau 2 — Passphrase perdue, mais identifiant + mot de récupération retenus

L'utilisateur saisit son identifiant public (numéro client, identifiant métier — fourni par le site) et son mot de récupération dérivé HMAC-SHA256 côté navigateur. 3 tentatives maximum avec compteur visible. Sur 3 échecs → redirection vers L3. Un litige est automatiquement créé (LIT-XXXX), tracé en base, admin notifié. Les litiges auto-résolus sont purgés après 24 heures.

Niveau 3 — Accès complètement perdu

Entrée par un lien discret « accès perdu » sur la page de connexion. L'utilisateur saisit son identifiant public en premier (anti-timing : délai forcé de 2 à 3 secondes), puis remplit un formulaire de scoring multi-facteur :

Catégorie Champs Points
Identifiant public 4 20
Mot de récupération (dérivé HMAC) 5 25
Username 3 30
Passphrase (fragments) 3 25

Bonus passifs : IP connue (+5), fingerprint connu (+5).

  • Score ≥ 60/100 → compte récupéré, nouveau mot de passe généré
  • Score < 60/100 après 3 tentatives → le compte passe en mode restreint : l'utilisateur n'a plus accès qu'au chat administrateur, le compte n'est ni utilisable ni écrasable tant que l'admin n'a pas validé
  • Cooldown : 1 heure entre tentatives

Chat administrateur humain en mode restreint — état actuel

Dans l'implémentation actuelle (déployée en production sur ARC PVE Hub), le chat L3 est un canal direct entre l'utilisateur en mode restreint et un administrateur humain du site. Pas d'intermédiaire automatisé, pas de bot.

Le canal de chat est bidirectionnel et fonctionne en polling (pas WebSocket temps réel, pour rester simple). L'admin vérifie l'identité par l'échange et décide manuellement :

Accorder la récupération : mot de passe régénéré, compteurs réinitialisés, litige clôturé, mode restreint levé.

Refuser la récupération : ban temporaire de 24 heures, pas de nouveau litige possible pendant cette fenêtre, compteur de refus incrémenté (1/3, 2/3, 3/3). À chaque clic, l'interface admin rappelle explicitement les conséquences via une modale de confirmation (ban 24h aux refus 1 et 2, suppression définitive au 3e refus).

Au 3e refus, le compte est définitivement supprimé : décision exclusivement humaine, prise en pleine connaissance de cause par l'admin via la modale d'avertissement explicite. La suppression libère l'identifiant public pour une nouvelle inscription.

Principe de design MySelf : aucune destruction de données utilisateur n'est déclenchée sans validation humaine consciente. L'interface admin explicite systématiquement les conséquences avant chaque action irréversible. Une IA peut se tromper ou être manipulée ; lui déléguer la décision de supprimer un compte créerait une surface d'attaque.

Ce mécanisme empêche un attaquant de spammer les litiges indéfiniment : chaque refus lui coûte 24 h, et trois échecs effacent toute trace. Un propriétaire légitime bloqué par erreur peut retenter après chaque fenêtre de ban, ou se réinscrire depuis zéro si totalement verrouillé.

Évolution prévue (en réflexion) : pré-traitement optionnel par chatbot LLM local

En complément du chat admin humain (qui resterait toujours disponible), une couche de pré-traitement par un agent conversationnel local (Ollama auto-hébergé) est en cours de design. Le chatbot poserait les questions initiales de vérification d'identité et estimerait si la demande est légitime. Sur estimation positive, le mot de passe serait régénéré directement ; sur doute, l'admin humain reprendrait la main.

Cette option serait configurable par site qui déploie (activable ou non), et le chatbot ne se substituerait jamais à l'admin pour les décisions destructives (suppression de compte) — ces décisions resteraient exclusivement humaines, conformément au principe MySelf énoncé plus haut.

L'enjeu principal en cours de réflexion : calibrer le seuil de confiance du chatbot pour ne pas créer un nouveau vecteur d'attaque par social engineering (un attaquant pourrait essayer de manipuler le LLM par prompts).

Démo standalone vs implémentation de référence

La démo publique (bi-self.my-self.fr/selfrecover/) ne couvre que les niveaux L1 et L2, car L3 nécessite une interface admin, un système de disputes et un dashboard — trop pour une démo à page unique.

L'implémentation de référence en production se trouve sur ARC PVE Hub, un site communautaire de joueurs ARC RAIDERS qui sert de terrain de test à l'écosystème MySelf. L1 + L2 + L3 + mode restreint + chat admin + dispute system y sont fonctionnels.

Pourquoi assumer cette friction

Dans la vie réelle, si l'on perd sa carte bancaire, son code, sa pièce d'identité, son adresse et sa date de naissance, on ne récupère pas son compte bancaire par email. On passe en agence avec preuve d'identité.

SelfRecover applique la même logique en ligne : la sécurité réelle nécessite parfois un passage par l'humain ou un processus d'identification rigoureux. Cette friction est assumée comme un trade-off conscient, pas comme une limitation à compenser.

Pour quel public

Adapté :
- Applications avec un administrateur actif et disponible pour traiter les litiges (forum communautaire, association, e-commerce indépendant, boutique en ligne militante)
- Sites où la sécurité prime sur la fluidité de récupération (services manipulant des données sensibles)
- Communautés à taille humaine (du forum de 50 membres au service de quelques milliers d'utilisateurs)

Non adapté :
- Plateformes à très grande échelle sans admin individuel (réseaux sociaux massifs, services publics avec millions d'utilisateurs) — le volume de litiges dépasse les capacités d'un humain réactif
- Services où une friction de récupération est inacceptable (gaming compétitif, services temps-réel)
- Projets sans maintenance active (l'admin doit pouvoir répondre aux litiges dans des délais raisonnables)

Pour ces cas, un IAM mature comme Keycloak avec ses mécanismes éprouvés reste plus adapté.

Modèle de menace assumé

Pour la transparence, voici les classes d'adversaires explicitement hors périmètre du protocole :

  • Compromission du poste utilisateur (logiciels malveillants, RAT, keyloggers) — un attaquant qui contrôle le poste peut capturer la passphrase à la saisie, indépendamment du protocole.
  • Compromission du navigateur (extensions malveillantes, exploits 0-day) — même cause, même effet : si le moteur JS qui calcule HMAC est compromis, la sortie l'est aussi.
  • Coercition physique — SelfRecover n'offre pas de plausible deniability (pas de second compte caché ou décoy).
  • Cryptanalyse théorique de SHA-256 / HMAC / Argon2id — un cassage mathématique de ces primitives mettrait à mal la quasi-totalité des systèmes cryptographiques modernes, pas seulement SelfRecover.

Ces limitations sont le périmètre normal d'un protocole côté navigateur. Pour les usages à plus haute exigence (cérémonies cryptographiques sensibles, génération initiale de clé maître), MySelf-Live est annoncé dans la roadmap V0.2 : une distribution Linux Live USB minimale, RAM-only, signée GPG, qui isolerait les opérations sensibles du système hôte. Pour les usages courants à fort enjeu, Tails ou Qubes OS offrent déjà ce niveau d'isolation et sont recommandés.

Démos en ligne

Aucune inscription préalable n'est requise. Les données sont éphémères côté serveur.

Code et image Docker

docker run -p 8080:8080 ghcr.io/pierroons/selfrecover:v0.1.1

La démo de référence tourne sur PHP 8.0+ et SQLite (~600 lignes auditables, zéro dépendance externe). Tag GPG-signé v0.1.1, release datée du 5 mai 2026.

Licence et philosophie

AGPL-3.0-or-later. Toute version déployée publiquement doit publier ses modifications sous la même licence. Pas de capture SaaS possible.

SelfRecover est une brique du méta-projet MySelf, un écosystème de modules auto-hébergés qui couvre l'identité, la modération communautaire, le droit, et l'agriculture.

Un module complémentaire répond de manière directe à la problématique illustrée par l'incident ANTS : SelfDataGuard chiffre les données utilisateur côté client de telle sorte qu'une fuite de base de données ne livre que des blobs inexploitables. Le code est public, AGPL, en v0.1.0-beta — une dépêche dédiée pourra suivre quand le module aura plus de maturité (audit communautaire, retours d'intégration).

Note de transparence

Conception en partenariat avec un assistant IA

Ce protocole a été conçu et codé en partenariat avec un assistant IA (Claude), comme outil de réflexion, de revue critique, et d'écriture de code.

Pour être totalement transparent : je ne suis pas développeur de formation. Mon expérience technique vient du dev web amateur (ARC PVE Hub, un site destiné à fédérer une communauté de joueurs ; un outil de gestion de stock pour mon entreprise ; quelques sites perso). Pour SelfRecover, l'écriture des primitives cryptographiques et la mise en œuvre du protocole ont été largement assistées par l'IA, sur la base de mes choix architecturaux et de ma vision.

Ce qui vient de moi (humain) :
- La vision (souveraineté numérique, refus du SMTP comme canal de récupération)
- Les choix philosophiques (AGPL-3.0-or-later, fallback humain assumé, aucune destruction de données sans validation humaine consciente)
- Le contexte initial (besoin né en développant ARC PVE Hub)
- Chaque décision de trade-off d'architecture
- La responsabilité juridique et morale du code publié sous mon nom et signé GPG

Ce qui vient de l'IA :
- L'écriture des primitives cryptographiques (HMAC, dérivations, vérifications)
- L'agencement du code, la structure des fichiers
- La formalisation des paragraphes du whitepaper et de cette dépêche
- La génération de tests unitaires
- La vérification de cohérence interne

Plan d'audit

  • Auto-audit interne : en cours et continu (chaque modification est relue critiquement)
  • Audit communautaire : ouvert dès maintenant, je réponds aux remarques techniques avec sérieux (cette dépêche en est l'illustration directe)
  • Audit tiers certifié : envisagé à moyen terme via un cabinet agréé CESTI ANSSI (Synacktiv, Quarkslab, Wavestone, ou équivalent), sous réserve de financement

Statut du projet

SelfRecover en est à la version 0.1.1, taguée GPG et signée. C'est un état PoC fonctionnel + déployé en production sur un site réel (ARC PVE Hub), mais pas encore mature pour une adoption massive dans des contextes à fort enjeu. La roadmap V0.2 (MySelf-Live, finalisation du chatbot L3, audit tiers) précisera ce périmètre.

Engagement communauté LinuxFr et culture du libre

Mon compte LinuxFr est récent, mais mon ancrage dans la culture du libre ne l'est pas : utilisateur exclusif de distributions Linux depuis quinze ans (principalement Debian), j'ai aidé plusieurs proches à migrer des PC anciens vers Debian pour leur donner une seconde vie au lieu de la déchèterie. J'arrive sur LinuxFr depuis le monde agricole/permaculture et le jeu vidéo (ARC PVE Hub), pas du milieu dev historique.

Je suis salarié couvreur dans une PME et installé en agriculture à temps partiel — mon temps libre pour le développement et la participation communautaire est compté. Je m'engage à répondre aux retours techniques sur cette dépêche et à suivre les disputes sur l'état du projet. Pour le reste (commentaires réguliers, dépêches futures sur d'autres modules MySelf — en particulier SelfDataGuard quand il sera plus mature), ce sera au gré du temps disponible, sans promesse.

Toute critique technique constructive est bienvenue. Pour les critiques sur la légitimité du projet ou la nature humain/IA de la collaboration, j'invite à juger sur les choix concrets, le code public, et la qualité des réponses à vos questions.

Pour aller plus loin

SelfRecover est un module de l'écosystème MySelf, expérimentation citoyenne sur la souveraineté numérique sous licence AGPL-3.0-or-later.

Les retours techniques, audits communautaires, propositions d'intégration et questions de fond sont les bienvenus — en commentaire de cette dépêche ou en issue sur le repo GitHub.

Si une administration ou une organisation souhaite tester le protocole en environnement isolé, l'image Docker et le Dockerfile sont à disposition. Aucune démarche commerciale n'est associée à cette publication.

Merci aux modérateurs et contributeurs de LinuxFr — Pierre Jarillon, devnewton, Florent Zara, bobble bubble — dont les retours pendant la phase de rédaction ont substantiellement amélioré cette dépêche.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Migrer de Windows vers un système libre — « Libre à vous ! » du 19 mai 2026 — Podcasts et références

276e émission « Libre à vous ! » de l’April. Podcast et programme :

  • sujet principal : Migrer de Windows vers un système libre sur le poste de travail avec Magali Garnero, présidente de l’April, membre de Framasoft ; Zoé Pélegry, porte-parole des mouvements Alternatiba et ANV-COP21 ; David Frissard de l’association Désobsolescence
  • chronique de Gee sur « Pourquoi je fais de l’art libre »
  • chronique de Benjamin Bellamy sur « La nouvelle série à la mode dont tout le monde parle sur les réseaux sociaux »
  • Quoi de Libre ? Actualités et annonces concernant l’April et le monde du libre

Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune. Vous pouvez nous laisser un message sur le répondeur de la radio : pour réagir à l’un des sujets de l’émission, pour partager un témoignage, vos idées, vos suggestions, vos encouragements ou pour nous poser une question. Le numéro du répondeur : +33 9 72 51 55 46. La prochaine émission sera diffusée mardi 2 juin à 15h30 (puis en podcast). Nos invitées seront la LDH et Amnesty International France. Pour avoir le regard d'assocations dont l'objet premier n'est pas "le numérique", mais qui pour autant ont développé une analyse de ces enjeux à l'aune de leur propre combat. Et plus particulièrement, des associations de défense des droits humains.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Courrier à madame la présidente de Quimper Bretagne Occidentale (QBO) sur les dépendances numériques extra-européennes

Le collectif Linux Quimper vient d'envoyer un courriel à madame la présidente de la Communauté d'agglomération de Quimper Bretagne Occidentale (QBO) pour lui proposer d'engager une étude sur les dépendances numériques extra-européennes qui pourraient exister dans les services de QBO afin de trouver des solutions européennes de remplacement comme l'a demandé l'État français à ses ministères lors du séminaire interministériel du 8 avril 2026

Courriel adressé à madame la présidente de la communauté d'agglomération de Quimper Bretagne Occidentale (QBO) par Linux Quimper, collectif quimpérois de défense et de promotion des logiciels libres

Objet : Proposition d’étude sur les dépendances numériques extra-européennes

Madame la Présidente de QBO,

À la suite du séminaire interministériel (1) du mercredi 8 avril 2026, consacré notamment à la réduction des dépendances numériques extra-européennes, nous souhaitons attirer votre attention sur l’intérêt qu’une telle démarche pourrait également présenter à l’échelle de notre agglomération.

Notre collectif qui participe depuis 2006 à la promotion des logiciels libres et de Linux en particulier, sur Quimper et ses environs, suit avec attention les enjeux liés à la souveraineté numérique, à la maîtrise des coûts et à la pérennité des systèmes d’exploitation et des logiciels. Dans un contexte de fortes évolutions technologiques et de dépendances parfois peu visibles, il nous paraît utile qu’une collectivité puisse disposer d’une vision claire et partagée de ses propres dépendances numériques.

Dans cet esprit, nous nous permettons de suggérer que Quimper Bretagne Occidentale puisse engager une étude portant sur les dépendances numériques extra-européennes de ses services comme précisées dans le compte-rendu du séminaire interministériel : poste de travail, outils collaboratifs, antivirus, intelligence artificielle, bases de données, virtualisation et équipements réseau. Une telle démarche permettrait de dresser un état des lieux objectif, d’identifier les points de vulnérabilité éventuels et de dégager des pistes d’évolution adaptées aux besoins de la collectivité.

Cette réflexion pourrait, à terme, permettre de définir un objectif chiffré de réduction de ces dépendances, accompagné d’un calendrier progressif et réaliste. Elle offrirait également l’occasion de valoriser les solutions ouvertes, interopérables et maîtrisées, dans une logique de continuité de service et d’efficacité budgétaire.

Dans un esprit de transparence et de dialogue, nous vous serions reconnaissants de veiller à ce que l’évolution de cette réflexion fasse l’objet d’une information accessible aux citoyennes et citoyens.

Nous restons à votre disposition pour, si nécessaire, vous apporter des explications complémentaires.

Nous vous prions d’agréer, Madame la Présidente de QBO, l’expression de notre considération distinguée.

pour Linux Quimper, collectif Quimpérois de défense et de promotion des Logiciels Libres,
https://linuxquimper.org/
contact at linuxquimper.org

Commentaires : voir le flux Atom ouvrir dans le navigateur

Orbitiny, un bureau Linux portable qui se lance comme une appli et qui n’a rien demandé à personne

Orbitiny est un bureau Linux portable qui se lance comme une appli et qui ne joue pas dans la même catégorie.

Un bureau qui tourne au-dessus d’un autre, et ce n’est pas une blague

Dans l’écosystème des environnements de bureau Linux, on connaît les approches classiques, un gestionnaire de fenêtres, un compositeur, un panel, un menu, des services de session. Orbitiny arrive avec une idée qui semble contre nature, un bureau complet qui se lance comme une simple application, au-dessus de votre environnement actuel, sans remplacer quoi que ce soit, sans ouvrir une nouvelle session, sans toucher à votre configuration.

On clique, et un deuxième bureau apparaît, avec son propre panel, son propre menu, son propre gestionnaire de fichiers, comme une couche graphique autonome qui s’empile sur la première. C’est inhabituel, mais ça fonctionne.

Comment ça marche réellement, sous le capot

Orbitiny n’utilise pas KWin, Mutter ou Openbox. Il embarque son propre mini gestionnaire de fenêtres, écrit en Qt et C++, qui ne prend pas le contrôle de la session. Le système hôte continue de gérer les vraies fenêtres, les notifications, les entrées clavier et souris. Orbitiny ne gère que ce qu’il crée lui-même.

Techniquement, Orbitiny est une application Qt géante, un conteneur qui simule un bureau, un panel, un menu, un gestionnaire de fichiers et des services internes. Cela lui permet de tourner au-dessus de KDE, GNOME, Xfce ou n’importe quoi d’autre, sans conflit de compositeur, sans guerre de raccourcis clavier, sans écraser les paramètres de session.

C’est cette encapsulation qui rend possible le mode portable et l’exécution parallèle.

Qu’est-ce que ça apporte que les autres bureaux n’apportent pas

Orbitiny ne cherche pas à remplacer KDE ou GNOME. Il propose autre chose, un bureau autonome, portable, encapsulé, qui peut être lancé n’importe où, sans installation, sans dépendances lourdes, sans interaction profonde avec le système.

Ce que cela change concrètement :

  1. un bureau que l’on transporte réellement sur une clé USB, avec ses réglages et ses plugins
  2. un environnement isolé pour tester des applications sans polluer son bureau principal
  3. un espace de travail temporaire pour les techniciens, les formateurs, les utilisateurs nomades
  4. une solution pour les distributions live qui veulent proposer un bureau complet sans l’intégrer au système
  5. une manière de contourner les limitations d’un bureau hôte sans le modifier

Orbitiny n’est pas un remplaçant, c’est un bureau parallèle, un bac-à-sable/sandbox graphique.

Des fonctionnalités déjà bien avancées

Le gestionnaire de fichiers maison, Qutiny, propose des fonctions rarement vues ailleurs, fusion de fichiers texte par glisser déposer, fusion d’images verticalement, recherche par nom et par contenu, double panneau, gestion des opérations avec emblèmes visuels. Ce sont des fonctions immédiatement utiles, sans installer d’outils externes.

Le bureau gère les gestes souris, jusqu’à douze par bouton, gauche ou droit. On peut dessiner un cercle pour ouvrir un terminal, une ligne pour lancer un navigateur, un zigzag pour fermer une fenêtre interne. C’est rapide, efficace, et entièrement configurable.

Chaque écran physique peut avoir son propre fond d’écran, ses propres raccourcis, ses propres applets. Chaque bureau virtuel peut également avoir sa propre configuration. Cela permet de créer des espaces de travail réellement indépendants.

Orbitiny détecte automatiquement WINE et DOSBox. On peut lancer un .exe Windows ou un programme DOS directement depuis le bureau ou le gestionnaire de fichiers, sans créer de fichier .desktop ou de configuration manuelle.

Le mode portable, la vraie différence

L’archive fait environ 185 Mo. On la décompresse sur une clé USB, on lance start-orbitiny, et tout fonctionne immédiatement. Tous les réglages sont stockés dans le dossier d’extraction. On peut donc transporter son bureau complet, ses préférences, ses plugins, et les retrouver sur n’importe quelle machine Linux.

Pour les techniciens, c’est un bureau de secours.
Pour les utilisateurs avancés, c’est un environnement jetable.
Pour les curieux, c’est un terrain d’expérimentation sans risque.
Pour les distributions live, c’est un bureau plug and play.

Informations concrètes

Orbitiny est sous licence GPLv3. Le code source et les binaires sont disponibles sur SourceForge. Le projet est développé par Sasko Usinov. Les premières versions datent de 2023, la version actuelle est la 0.3.0.

Orbitiny utilise Qt 5 et Qt 6 selon les modules, du C++ moderne, et une architecture modulaire composée de 48 composants isolés. Si un composant plante, le reste du bureau continue de fonctionner. C’est un choix technique rare dans les environnements de bureau.

Le développement est actif, et les prochaines étapes annoncées concernent l’amélioration du système de plugins, un thème sombre complet et la stabilisation du mode portable.

Premières impressions, un projet jeune mais déjà solide

Orbitiny tourne vite, tourne bien, tourne même très bien pour un bureau qui s’empile sur un autre. Le gestionnaire de fichiers accède directement au système hôte, le panneau de configuration est déjà complet, l’ensemble est fluide et cohérent.

On est loin du prototype bricolé un dimanche soir. Orbitiny ressemble à un projet avec une vision claire, et surtout avec une approche technique différente de ce que l’on voit habituellement.

Un concept étrange mais une idée qui mérite d’exister

Orbitiny ne remplacera pas KDE ou GNOME, mais ce n’est pas son but. Il propose une approche différente, un bureau autonome, portable, encapsulé, qui peut cohabiter avec n’importe quel environnement existant. Rien que pour ça, il mérite d’être essayé.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Banques en ligne : l’authentification forte doit-elle imposer Android ou iPhone ?

L’obligation croissante d’utiliser une application mobile bancaire pour valider des opérations sensibles devient un problème bien réel pour une partie des usagers : personnes sans smartphone, téléphones trop anciens, appareils non compatibles, ou encore systèmes alternatifs et dégooglisés.

Le sujet n’est pas seulement bancaire. Il touche aussi aux logiciels libres, à la liberté de choix technique, et plus largement à l’exclusion numérique. Lorsqu’une opération essentielle ne peut plus être validée que depuis une application propriétaire distribuée dans les écosystèmes de Google ou d’Apple, l’accès au service dépend alors d’un canal technique unique.

Le cas de BoursoBank a récemment relancé la discussion sur LinuxFr. Dans mon cas, lors d’opérations sécurisées, l’interface web m’a renvoyé vers l’application mobile comme unique moyen de validation. Certaines pages d’aide de la banque évoquent pourtant des solutions alternatives ou de secours, mais le service client m’a indiqué aujourd’hui qu’il n’existait en pratique pas d’autre moyen de valider ces opérations sans l’application mobile.

C’est précisément ce décalage entre la communication affichée, l’expérience réelle et la réponse du support qui pose problème. Il laisse l’usager dans une situation d’incertitude, y compris lorsqu’il cherche à quitter ce modèle pour une autre banque, sans garantie de ne pas retrouver la même contrainte quelques mois plus tard.

Cette évolution interroge : pourquoi ne pas proposer systématiquement des alternatives robustes, comme un second facteur indépendant de l’application mobile ?

Dans ce contexte, une pétition a été lancée pour demander que les banques opérant en France proposent au moins une méthode de validation forte utilisable sans application mobile imposée. Elle met en avant un principe simple : une banque peut être sécurisée sans réserver de fait ses services aux smartphones Google ou Apple.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Kudu, le logiciel qui veut remettre de l’ordre dans l’optimisation du système

Un nouvel outil de maintenance système attire l’attention : Kudu. Présenté comme une suite open source (sous licence MIT), le logiciel propose un ensemble de fonctions destinées à nettoyer, surveiller et optimiser un ordinateur, avec une compatibilité annoncée avec Windows, MacOS et Linux.

L’idée n’est pas totalement nouvelle, mais Kudu tente de se démarquer par une approche plus large que celle des utilitaires classiques. Le logiciel regroupe des outils de nettoyage, de gestion du démarrage, d’analyse de doublons, de surveillance des performances et plusieurs fonctions de maintenance avancée dans une interface unique.

Une alternative à des outils bien connus

Kudu est souvent présenté comme une alternative à CCleaner, un positionnement qui parle immédiatement aux utilisateurs habitués à ce type d’outils. Là où le projet cherche à marquer des points, c’est sur son statut open source, sa disponibilité multi-plateforme et l’intégration de fonctions qui vont au-delà du simple ménage système.

Le logiciel met aussi en avant des fonctions liées à la sécurité et à la confidentialité. On y trouve notamment des options de contrôle sur certains composants du système, des réglages de durcissement et des mécanismes de nettoyage plus poussés, avec une logique d’utilisation pensée pour rester simple.

Une approche tout-en-un

La documentation du projet insiste sur une organisation en plusieurs blocs : sécurité, maintenance et outils. Cette structure permet de retrouver rapidement les fonctions les plus courantes, tout en gardant à portée de main des actions plus techniques pour les utilisateurs qui veulent aller plus loin. L’un des points mis en avant est aussi la possibilité d’utiliser le logiciel sans compte obligatoire, avec une partie cloud présentée comme facultative.

Un projet à observer

Kudu arrive sur un terrain déjà bien occupé, mais il bénéficie d’un positionnement intéressant : open source, multiplateforme et orienté maintenance complète. Ce trio peut lui permettre de trouver sa place auprès des utilisateurs qui cherchent une alternative plus ouverte aux outils propriétaires habituels.

Reste maintenant à voir comment le projet évoluera dans la durée. Comme souvent pour ce type d’utilitaire, la différence se fera sur la qualité réelle des fonctions, la stabilité, la fréquence des mises à jour et la confiance que le logiciel inspirera au quotidien.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Au café libre — « Libre à vous ! » du 14 avril 2026 — Podcasts et références

273e émission « Libre à vous ! » de l’April. Podcast et programme :

  • sujet principal : Au café libre, débat autour de l’actualité du logiciel libre et des libertés informatiques avec Isabelle Carrère, Pierre Beyssac et Vincent Calame
  • chronique « Que libérer d’autre que du logiciel » avec Antanak
  • chronique de Vincent Calame sur « Le numérique est l’affaire de toutes d’Isabelle Collet »
  • Quoi de Libre ? Actualités et annonces concernant l’April et le monde du Libre

Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune. Vous pouvez nous laisser un message sur le répondeur de la radio : pour réagir à l’un des sujets de l’émission, pour partager un témoignage, vos idées, vos suggestions, vos encouragements ou pour nous poser une question. Le numéro du répondeur : +33 9 72 51 55 46.

Commentaires : voir le flux Atom ouvrir dans le navigateur

🪶 Les journaux LinuxFr.org les mieux notés de mars 2026

LinuxFr.org propose des dépêches et articles, soumis par tout un chacun, puis revus et corrigés par l’équipe de modération avant publication. C’est la partie la plus visible de LinuxFr.org, ce sont les dépêches qui sont le plus lues et suivies, sur le site, via Atom/RSS, ou bien via partage par messagerie instantanée, par courriel, ou encore via médias sociaux.

Bannière LinuxFr.org

Ce que l’on sait moins, c’est que LinuxFr.org vous propose également de publier directement vos propres articles, sans validation a priori de lʼéquipe de modération. Ceux-ci s’appellent des journaux. Voici un florilège d’une dizaine de ces journaux parmi les mieux notés par les utilisateurs et les utilisatrices… qui notent. Lumière sur ceux du mois de mars passé.

Commentaires : voir le flux Atom ouvrir dans le navigateur

8 liseuses KINDLE seront débranchées par AMAZON en mai 2026 - Quelles alternatives FOSS?

À partir du 20 mai 2026, Amazon mettra fin au support de huit modèles de liseuses Kindle et de certaines tablettes Kindle Fire commercialisées entre 2007 et 2012.

C'est l'occasion de réviser et partager entre nous toutes les solutions FOSS en 2026 pour lire, stocker et partager des ouvrages électroniques multimédias sans se faire piéger par les solutions propriétaires. À vos claviers pour les commentaires !

Ces appareils ne pourront plus accéder à la boutique Kindle pour acheter, emprunter ou télécharger de nouveaux livres ou contenus. Amazon justifie cette décision par l’évolution technologique et le fait que ces modèles ont été pris en charge pendant au moins 14 ans, voire 18 ans pour certains.

Modèles concernés : Les liseuses Kindle et tablettes Kindle Fire de 2012 ou antérieures. Après cette date, il sera impossible d’ajouter de nouveaux livres sur ces appareils, et en cas de réinitialisation ou de déconnexion du compte Amazon, ils ne pourront plus être réenregistrés. Amazon annonce qu'une réduction de 20 % sur l’achat d’un nouveau modèle sera proposée aux utilisateurs concernés, ainsi qu’un crédit pour l’achat de livres électroniques.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Discussions et débats sur l’affichage d’astérisques à la saisie du mot de passe par sudo-rs

L’ancien sudo (écrit en C) a été récréé en Rust (sudo-rs), par une autre équipe, pour des raisons de sécurité mémoire notamment. Plusieurs distributions intègrent cette nouvelle implémentation dans leurs paquets et, en particulier, Ubuntu 25.10 l’utilise par défaut.

Pour mémoire (source) : Cette commande permet à un administrateur système d’accorder à certains utilisateurs (ou groupes d’utilisateurs) la possibilité de lancer une commande en tant qu’administrateur, ou en tant qu’autre utilisateur, tout en conservant une trace des commandes saisies et des arguments.

Le récent changement est que, par défaut, la saisie du mot de passe sudo affiche désormais des astérisques via sudo-rs, à l’inverse du comportement antérieur.

Le débat porte principalement sur l’utilisabilité en opposition à la tradition de sécurité Unix de ne rien afficher du tout.

Les arguments du choix portent notamment sur les aspects sécurité, utilisabilité, et tradition. Là où les pro-astérisques estiment la fuite de longueur tolérable, qu’elle confirme l’entrée fonctionnelle, et qu’il s’agit d’une amélioration moderne, les anti-astérisques considèrent que cela expose la longueur aux observateurs, que c’est inutile pour les experts, et que cela casse l’héritage Unix.

Du côté des arguments pour les astérisques, la rétroaction visuelle confirme que les frappes s’enregistrent, ce qui aide les nouveaux utilisateurs ou ceux avec des claviers défaillants et réduit les erreurs de saisie.

Les partisans notent que les risques d’épaulement (voir les caractères réels) sont faibles aujourd’hui avec l’accès distant courant, et que les indices de longueur sont mineurs comparés aux gains d’utilisabilité.

Du côté des arguments contre les astérisques, la conception Unix traditionnelle cache la longueur du mot de passe pour contrer les attaquants observant de loin, préservant une norme de sécurité de 46 ans même si imparfaite.

Les admins vétérans y voient un risque inutile dans les environnements partagés ou physiques, avec des solutions faciles comme pwfeedback pour revenir en arrière.

Vous savez peut-être comment configurer votre choix, notamment en écrivant dans /etc/sudoers soit Defaults pwfeedback (ce qui sera de toutes façons le comportement par défaut avec astérisques), soit Defaults !pwfeedback (avec le point d’exclamation en préfixe).

Si ce paramètre vous rappelle quelque chose, c’est normal. Les plus préoccupés d’entre nous par la sécurité se rappellent de l’incident de sécurité (CVE-2019-18634) lié à ce paramètre il y a quelques années : le paramètre pwfeedback introduit, en version 1.7.1 de sudo, avait hélas introduit un bug qui n’avait été corrigé que bien après.

Un peu de politique FOSS (un tout petit peu hors sujet ;-) )

Je profite de cette dépêche pour faire un appel, car ce débat et l’ancien bug lié à pwfeedback nous rappellent les risques qui pèsent sur les composants FOSS parfois vitaux et répandus comme XZ Utils, qui manquent de main d’œuvre et de moyens.
La récente attaque (CVE-2024-3094) contre OpenSSH en 2024 via sa dépendance logistique à XZ Utils, par un pirate qui avait exploité de l’ingénierie sociale sur Lasse Collin, le mainteneur fatigué et esseulé deXZ Utils, a failli compromettre un grand nombre d’ordinateurs utilisantOpenSSH`.
C’est un tiers, Andres Freund, employé de Microsoft, qui a contré le piratage en détectant puis identifiant l’erreur.

De même, vous avez su que Todd, C. Miller, l’unique mainteneur de sudo depuis 30 ans, appelait au secours et aux financements en début d’année 2026. Certes, ce point particulier a peut-être été réglé par la ré-écriture en Rust (sudo-rs) avec l’aide de Miller, mais le sujet est global pour le FOSS.

Mon souhait : donnons plus de notre personne ou de notre poche aux projets et personnes du FOSS.

Les informations que vous n’avez pas demandées (ou Too much information you didn't ask for)

Rust veut dire « rouille » en anglais, mais l’auteur de Rust faisait apparemment référence aux « rouilles » biologiques, qui sont les maladies dues à des champignons, les Pucciniales, qui donnent ainsi un aspect rouillé aux plantes parasitées, comme la rouille grillagée du poirier. Graydon Hoare a choisi ce terme, pour s’inspirer de ces champignons qui sont extrêmement sophistiqués dans leur capacité à survivre, comme on pourrait le vouloir pour nos programmes.

Commentaires : voir le flux Atom ouvrir dans le navigateur

J'ai mis un proxy entre claude et Internet

Je sais que le mot "IA" sur LinuxFr, c'est un peu comme prononcer "systemd" en 2015 ; ça ne laisse personne indifférent. Et je comprends. La merdification est réelle, la bulle est réelle, les externalités sont réelles. Je n'ai aucune envie d'en rajouter une couche. Mais voilà, les lignes sont devenues floues, et j'ai pris le virage du coding assisté. D'abord avec curiosité et prudence, et maintenant les deux pieds dans le plat : ça ne remplace pas ma façon de penser, mais ça m'a ouvert des portes : des concepts que je ne maîtrisais pas, des langages que je n'aurais pas pris le temps de toucher avant ; l'assistant me permet d'explorer, de comprendre, et de construire des outils qui m'aident. Et j'espère qu'ils aident d'autres personnes aussi.

Sauf que voilà. Au début, j'étais prudent. Je vérifiais chaque commande, chaque accès. Et puis petit à petit, j'ai lâché prise. J'ai désactivé les confirmations, laissé l'agent tourner sans supervision, accepté les permissions sans lire. On connaît tous ce moment où on clique "Allow" les yeux fermés parce que c'est la quinzième fois qu'il demande. J'ai fait exactement ce qu'on ne devrait jamais faire en sécurité : faire confiance par défaut.

Et un jour, je me suis dit : je n'ai aucune idée de ce que cet agent envoie sur le réseau. Aucune.

Alors j'ai construit un proxy un peu.. particulier.

Sommaire

Cher journal,

Ça fait un bail que je n'ai pas vraiment contribué à l'open source. Mes derniers vrais projets publics, c'était Kivy et les projets autour… ça remonte à quelques années maintenant, et j'ai pris ma "retraite" sur ces projets.

Mais je n'ai jamais arrêté de coder. J'ai juste réalisé un truc sur moi-même : le code, c'est un peu comme la musique pour moi. J'aime construire des choses. Je m'exprime mieux avec un éditeur et un terminal qu'avec ma voix ou mes mots. C'est probablement pour ça que je suis là à t'écrire un journal au lieu de faire un talk quelque part.

Le constat

On a passé des années à construire des pare-feux, des IDS, du monitoring pour nos serveurs de prod. Sur des entreprises plus grandes, on traque les connexions suspectes… Et puis un agent IA débarque sur notre machine de dev, on lui dit "tiens, refactore-moi ce module", et il fait ce qu'il veut sur le réseau sans qu'on le sache.

C'est quand même un peu absurde, non ?

Le truc, c'est qu'il n'existe pas vraiment d'équivalent à tcpdump ou iptables pour les agents IA sur nos machines. Pas de couche d'observabilité entre l'agent et Internet. Ou on contrôle, on se fait notre liste d'outils qu'on accepte, ou on fait confiance parce que bon, la sécurité, c'est pas si important… vraiment ?

Greywall et greyproxy

Avec l'équipe de Greyhaven, on a construit deux outils open source :

Greywall est un bac à sable deny-by-default pour les agents IA. Pas de Docker, pas de VM. Ça utilise directement les mécanismes du noyau Linux (namespaces, Landlock, Seccomp, eBPF) pour isoler le processus. Sur Linux, l'isolation réseau passe par un device TUN dans un namespace réseau dédié ; le processus sandboxé ne peut structurellement pas contourner le proxy. Sur macOS, c'est un peu moins élégant en utilisant des variables d'environnement pour forcer un proxy socks5h, si l'outil ne le supporte pas, il ne peut quand même pas sortir. Ça fait le job pour la plupart des outils.

Greyproxy est le plan de contrôle réseau. Un proxy SOCKS5/HTTP avec un dashboard web temps réel. Chaque connexion sortante de l'agent apparaît dans le dashboard. Si aucune règle ne matche, la connexion reste en attente et tu peux l'autoriser ou la refuser en direct, sans relancer la session.

Concrètement, ça donne :

greywall -- claude

Et hop, Claude Code tourne dans son bac à sable. Tu ouvres http://localhost:43080 et tu vois en direct chaque domaine qu'il tente de contacter. Tu autorises api.anthropic.com, tu autorises github.com pour les pushes, tu refuses le reste. Tout est interactif, tout est visible.

Ce que j'ai observé

Au début, c'était juste des connexions supplémentaires. Tiens, c'est quoi ces appels à opencode.ai quand je démarre opencode ? Tiens, pourquoi Claude appelle 2x toutes les 4 minutes un domaine chez Google ? Entre de la télémétrie que l'on ne peut pas désactiver, ou des requêtes qui font "office" de regarder si une nouvelle version est disponible… 2x toutes les 4 minutes. Ce n'est pas le meilleur argument, mais contrairement aux autres sandboxes, au moins ici je le vois en temps réel, et je peux dire oui ou non sur ce que peut accéder la commande.

Le dashboard de greyproxy rend tout ça visible. Tu vois passer les requêtes DNS, les connexions TCP, les domaines contactés. Tu peux construire progressivement une liste d'autorisations adaptée à ton projet. Il y a même un mode apprentissage qui trace les accès filesystem avec strace et génère automatiquement un profil de sécurité.

Ce n'est pas un outil pour les paranos. C'est un outil pour ceux qui pensent que l'observabilité, c'est un droit, pas un luxe.

Pourquoi ça compte

Je sais que l'enthousiasme pour l'IA est réellement différent en fonction des gens. Les questions sur la qualité du code généré, la consommation énergétique, la centralisation chez les GAFAM ; tout ça est légitime.

Mais justement. Si on utilise ces outils (et beaucoup d'entre nous le font, même ceux qui restent prudents), autant le faire avec les yeux ouverts. Greywall, c'est pas un outil pour promouvoir l'usage des agents IA. C'est un outil pour que, si tu en utilises un, tu gardes le contrôle.

Il y a une phrase qu'on a mise sur le site et qui résume bien l'idée :

"The security layer around your tools should be independent of the company selling you the AI."

La couche de sécurité autour de tes outils ne devrait pas dépendre de la boîte qui te vend l'IA. Claude a son propre sandbox intégré, Codex a le sien. Mais tu fais confiance aux entreprises pour te protéger d'elles-mêmes ? C'est un problème d'indépendance, pas de technologie.

Greywall est agnostique. Ça marche avec Claude Code, Codex, Cursor, Aider, Goose, Gemini CLI, Cline, et une dizaine d'autres. Tu changes d'agent, ta couche de sécurité reste la même.

Et après : vers un proxy sémantique

Le greyproxy actuel travaille au niveau des connexions : il voit les domaines, les ports, les IPs. Il ne déchiffre pas le TLS, il ne lit pas le contenu. C'est déjà très utile pour contrôler les accès réseau.

Mais là où ça devient vraiment intéressant, c'est quand on commence à reconstruire les conversations LLM qui passent par le proxy. Pas en cassant le chiffrement ; en instrumentant le flux côté client. L'idée, c'est de construire un proxy sémantique qui comprend ce que l'agent envoie et reçoit, qui peut faire du remplacement de variables d'environnement à la volée (pour ne jamais exposer tes vrais secrets à l'API du LLM), et qui te donne une vision complète de ce que l'IA fait en ton nom.

On en est au début, mais la direction est claire : remettre l'humain au milieu du système. Pas comme un goulot d'étranglement, mais comme un observateur informé qui peut intervenir quand c'est nécessaire. C'est ce qui manque cruellement à des systèmes comme OpenClaw et à la plupart des outils d'orchestration d'agents.

Pour essayer

Installation rapide :

# Homebrew
brew tap greyhavenhq/tap && brew install greywall

# Ou via curl (pas taper)
curl -fsSL https://raw.githubusercontent.com/GreyhavenHQ/greywall/main/install.sh | sh

Ça tourne sur Linux et macOS. Sur Linux, il te faut bubblewrap et socat comme dépendances. Greyproxy s'installe comme service systemd si tu veux qu'il tourne en permanence.

Si tu veux comprendre les détails techniques de l'architecture (les 5 couches de sécurité, pourquoi on a abandonné Docker, comment fonctionne la capture réseau transparente), on a écrit un article technique détaillé ici : https://greyhaven.co/insights/why-we-built-our-own-sandboxing-sytem

La question

J'ai une vraie question pour la communauté. Ceux d'entre vous qui utilisent des agents IA pour coder (même occasionnellement, même à contrecœur) : comment vous gérez la sécurité ? Vous faites confiance par défaut ? Vous avez mis en place quelque chose ? Ou vous préférez ne pas y penser ?

Et pour ceux qui n'utilisent pas d'agents IA : est-ce que le manque de transparence et de contrôle fait partie des raisons ?

Ça m'intéresse vraiment de savoir :)

Commentaires : voir le flux Atom ouvrir dans le navigateur

JemaOS : un système d’exploitation français et souverain pour lutter contre l'obsolescence

JemaOS est un projet de système d’exploitation français, développé à Sophia Antipolis, qui propose une réponse concrète aux enjeux de souveraineté et de numérique responsable.

Le contexte est marqué par l’arrêt imminent du support de Windows 10, une transition qui menace de mettre au rebut près de 400 millions de PC encore fonctionnels à travers le monde. Face à cette obsolescence matérielle massive, JemaOS permet de réhabiliter ces parcs informatiques (machines de 2010 à 2025) en offrant une alternative fluide et sécurisée.

Architecture Open-Core et Optimisation Cible

Sous le capot, JemaOS s’appuie sur un modèle Open-Core combinant des briques de Gentoo Linux, Arch Linux et Chromium. Pour garantir des performances maximales sur du matériel ancien, le système mise sur une optimisation par compilation pour l’architecture cible. Cette approche permet de tirer le meilleur parti de chaque processeur, là où des distributions génériques peuvent accuser des lenteurs.

Sécurité par immuabilité et sandboxing

La sécurité du système repose sur deux piliers majeurs :

  • L’immuabilité : Le système de fichiers racine est verrouillé en lecture seule, protégeant le cœur de l’OS contre les corruptions accidentelles ou les écritures malveillantes.
  • Le sandboxing : Toutes les applications et processus sont isolés nativement dans des « bacs à sable ». Cette isolation stricte empêche une faille dans une application de compromettre l’intégralité du système, rendant l’usage d’antivirus tiers obsolète.

Pour l’interface, le choix s’est porté sur Aura Shell (Ash) afin d’offrir une expérience utilisateur réactive et épurée.

Le « dispositif Jema » : le Plug & Play pour s’affranchir des configurations complexes pour les non-initiés

L’aspect le plus original de JemaOS est son mode de déploiement via le dispositif Jema (NdM (rectifiée le 22 mars suite à mise à jour de la doc du projet): qui est au format clé USB mais est « un véritable système embarqué complet. Faisant l'objet d'un brevet, (…) Intégrant son propre processeur, sa mémoire vive (RAM) et son espace de stockage interne). » L’idée est de supprimer toute la complexité habituelle : plus besoin de créer des clés USB bootables, de partitionner des disques ou de modifier des réglages BIOS/UEFI complexes.

On branche le dispositif, et le système démarre. Grâce à un chargeur d’amorçage compatible Secure Boot (via « Enroll MOK »), JemaOS tourne en isolation complète. Il exploite les ressources (CPU/RAM) de la machine hôte sans jamais toucher aux données du disque dur interne.

Écosystème applicatif : PWA et P2P

Pour rester léger, le système déporte la partie logicielle vers des Progressive Web Apps (PWA), dont beaucoup fonctionnent en Peer-to-Peer (P2P) pour garantir la confidentialité :

  • Anima & Nephtys : Messagerie et visioconférence en P2P.
  • JemaNote : Prise de notes avec assistance IA (Mistral).
  • OsiVibe : Un éditeur vidéo 4K multi-pistes qui s’exécute directement dans le navigateur.

Gestion de parc et souveraineté

Le modèle économique semble s’appuyer sur une offre SaaS pour les entreprises, permettant une gestion centralisée assez complète :

  • Pilotage de parc : Suivi des machines, sauvegardes et gestion des droits d’accès.
  • Administration : Gestion des dispositifs Jema et support technique.
  • Souveraineté : L’infrastructure Cloud est hébergée en France, ce qui permet de rester sous protection du RGPD et d’échapper au Cloud Act américain.

Une initiative française intéressante à suivre pour ceux qui s’intéressent au numérique responsable.

NdM: les offres Pro/Ultime/Premium sont orientées entreprises avec un paiement mensuel par utilisateur. Les mises à jour OTA majeures sont payantes. Il est possible d'utiliser JemaOS sans payer (cf la documentation) en désactivant les mises à jour automatiques et installant manuellement les nouvelles versions.
Sur les 14 dépôts publics : la licence varie suivant les dépôts (MIT, AGPLv3, BSD avec clause publicitaire (dont une concernant Google (sic), un dépôt avec le logiciel WidevineCdm propriétaire de Google). La plupart des dépôts n'ont qu'un seul contributeur johnkryptochain, visiblement intéressé par les cryptomonnaies, Telegram et les NFT ; l'autre contributeur a deux commits sur un unique dépôt. L'entreprise qui porte le projet a 10 salariés d'après le site.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Trivabble a 10 ans

Il y a 10 ans, je présentais Trivabble ici sur LinuxFR. Le dernier article ici remontant à 2021, c’est l’occasion de présenter les nouveaux développements. Et je dois remercier les contributeurs et contributrices externes, parce que c’est surtout de leur fait s’il y a des nouvelles choses à présenter.

Trivabble en 2026

Présentation rapide

Pour les gens qui ne connaissent pas, il s’agit d’un jeu en réseau qui propose un plateau, des chevalets et des pièces, inspiré du Scrabble mais configurable et adaptable pour que chacun puisse inventer ses propres manières de jouer. Un des principes derrière Trivabble est de ne pas forcer une manière de jouer ou des règles particulières, et si vous voulez jouer en mode rapide où tout le monde joue n’importe quand le plus vite possible pour former des mots qui n’existent pas et sans commencer au milieu, le jeu ne vous en empêchera pas.

Améliorations

Ysabeau a dessiné un sac. Ça avait été annoncé dans le journal précédent. C’est évidemment intégré, depuis le temps.

Laurent Mazet a pas mal bossé. On peut maintenant :

  • jouer avec des plateaux de différentes tailles
  • vérifier si le premier mot posé est bien au centre
  • être averti quand on quitte une partie, pour éviter les fausses manipulations
  • bloquer les pièces sur le plateau, pour ne plus pouvoir revenir sur les coups précédents

Côté maintenance du code, il a également regroupé des feuilles styles CSS qui étaient séparées parce qu’elles venaient de projets différents, mais je ne maintiens plus ces projets et la seule conséquence de cette séparation dans Trivabble, c’est de la complexité inutile.

Arnaudv6 a partagé quelques idées d’amélioration pour l’interface, qui a été un peu retravaillée pour plus de cohérence, de simplicité et de discrétion :

  • le nombre de tuiles restantes est maintenant sur le sac1
  • les boutons et les boites de sélections ont maintenant une apparence plus unifiée, et ont été déplacés et regroupés pour gagner de la place et de la cohérence
  • changer son nom se fait avec un bouton « crayon » plus discret. D’ailleurs, des correctifs permettent que changer de nom ne cause plus des bugs dans le comptage des mots et la vérification orthographique

Autres améliorations diverses :

  • Le jeu se redimensionne automatiquement pour prendre la taille de la fenêtre. Cela fonctionne dans les navigateurs modernes (sauf WebKit / Safari à cause d’un bug dans la gestion des coordonnées) en s’appuyant sur la propriété CSS zoom nouvellement standard et un peu de javascript. Pour les navigateurs ne prenant pas en charge ce zoom, le redimensionnement n’est plus bloqué et il est maintenant possible de zoomer avec les doigts. Le zoom automatique est également désactivé .
  • Les messages de chat persistent. Jusqu’à maintenant, recharger la page ou revenir sur une partie plus tard perdait les messages. Ce qui fait qu’un plantage perdait la discussion, et il était impossible d’utiliser le chat intégré au jeu dans le cadre d’un jeu asynchrone.
  • Il y a maintenant un mode sombre. Il s’applique automatiquement en fonction des réglages du navigateur, mais on peut aussi forcer le thème sombre ou le thème clair.

Enfin, Philippe Lhardy a intégré Trivabble à Yunohost, ce qui permet d'installer facilement Trivabble sur une instance Yunohost.

Conclusion

Je partage une petite pensée pour ma grand-mère, qui a été la motivation pour lancer le projet il y a 10 ans, et qui nous a depuis quitté.

Trivabble est stable et évolue lentement. Le jeu est dans un état utilisable et l’instance qui fait fonctionner trivabble.org se fait oublier. Ce n’est pas un projet très actif, il n’y a d’ailleurs pas eu de développement entre 2021 et 2025. Il n’y a pas de dépendance externe à part Node.js et le système d’exploitation dessous, c’est du Javascript très simple, donc la maintenance est triviale.

Le projet n’est pas abandonné pour autant. Ce sont les contributeurs et contributrices qui réveillent le projet et me motivent pour m’y remettre de temps à autre. Je trouve ça agréable de me replonger dans ce code, mais il n’y a pas tellement besoin de le faire, ça fonctionne tel quel, donc c’est plutôt rare, mais n’hésitez pas à rejoindre l’aventure :-)

C’est toujours utilisé, probablement pas énormément, en fait je n’en sais rien. J’ai reçu un mail assez rapidement la seule fois où j’ai cassé mon installation suite à une migration. Des gens ont créé des routines autour de Trivabble, et se retrouvent tous les samedis soir pour leur partie hebdomadaire. Je trouve ça plutôt chouette.


  1. ça a été un petit défi technique, parce qu’il a fallu le faire dans le code SVG du sac, qui ne pouvait donc plus être affiché à l’aide d’une balise img mais en l’intégrant directement comme une balise svg, et les styles SVG étaient alors bloqués par la politique CSP dans Chrome… Une conversion en attributs SVG a heureusement résolu le problème sans modifier l’apparence du sac. 

Commentaires : voir le flux Atom ouvrir dans le navigateur

Au café libre — « Libre à vous ! » du 17 février 2026 — Podcasts et références

269eme émission « Libre à vous ! » de l’April. Podcast et programme :

  • sujet principal : Au café libre (débat autour des actualités du logiciel libre) avec Maud Royer, Gee, Vincent Calame ;
  • chronique de Gee sur « Attention à l’économie de l’attention » ;
  • chronique de Vincent Calame sur « Pris dans la toile » de Sébastien Broca (la suite) ;
  • Quoi de Libre ? Actualités et annonces concernant l’April et le monde du Libre.

Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune. Vous pouvez nous laisser un message sur le répondeur de la radio : pour réagir à l’un des sujets de l’émission, pour partager un témoignage, vos idées, vos suggestions, vos encouragements ou pour nous poser une question. Le numéro du répondeur : +33 9 72 51 55 46.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Workshops on Demand version 1.0.2

Nous avons travaillé dur avec mon collègue Frédéric Passeron pour préparer l'atelier donné lors du récent AlpOSS 2026 (gros succès au passage !) consacré à notre outillage Workshops on Demand (ou WoD).

Logo Workshop On Demand

Maintenant que nous en avons le temps, nous avons publié la version 1.0.2 utilisée pour cet atelier que nous considérons comme stable et prête à être utilisée par toute structure pour proposer une plateforme de transfert de connaissances basée sur les NoteBooks Jupyter.

Pour rappel (ou découverte pour ceux découvrant notre projet !) nous fournissons une plateforme de 3 machines (frontend, API-DB, backend) que vous pouvez installer automatiquement (VM ou physique) et qui fournissent un portail d'enregistrement fonctionnel pour permettre l'accès à 20 Notebooks sur diverses technologies FLOSS (Open Source et/ou Libres) qui sont gérés par un JupyterHub sur le backend, le tout orchestré par des APIs REST et SMTP/procmail APIs (description simplifiée, plus de détails via notre USER GUIDE).

En déployant cette pile, vos utilisateurs pourront s'auto-enregistrer pour suivre un Notebook choisi dans notre+votre catalogue de sujets, dérouler le Noteboook pour acquérir les connaissances qui y sont décrites, sans intervention de votre part, la plateforme gérant les inscriptions et effacements de demandeurs en autonomie (mais sans IA dedans, juste de la logique, du code des APIs et une Base de Données !).

Portail des Workshops à la demande

Et comme pour tout bon projet construisant sa communauté, nous vous encourageons à souscrire à notre mailing-list pour recevoir de l'aide, apporter des retours, être informés des nouveautés,… Simple comme envoyer ce mail ou cliquer sur ce lien.

Et nous espérons des contributions, en particulier des contenus complémentaires que vous voudriez promouvoir au travers de notre solution WoD.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Grafik Labor 2026 – Appel à conférenciers et à stands

Création graphique, artistique et outils libres

GrafikLabor revient le samedi 4 avril 2026 à Rennes, dans les locaux d’Activdesign, pour sa huitième édition dédiée aux logiciels libres, aux pratiques créatives ouvertes et aux artistes, designers et développeurs qui les utilisent au quotidien. Issu du LibreGraphicsMeeting, l’esprit se veut ouvert aux diverses pratiques créatives, aux différents secteurs de création graphique pourvu qu’ils mettent en avant les outils, les licences ou du contenu libre.

À cette occasion, l’équipe d’organisation de l’AFGRAL lance un appel à conférenciers et à stands.

Pour rappel, GrafikLabor est un événement communautaire associatif. Il s’adresse aux personnes qui utilisent, développent ou promeuvent des logiciels libres dans leurs pratiques créatives : graphisme, illustration, jeux vidéos, édition, UX/UI, web, motion, 3D, typographie, etc.

L’événement met l’accent sur :

  • les retours d’expérience concrets
  • les choix d’outils et de workflows
  • la transmission de savoirs
  • les enjeux culturels et politiques du logiciel libre dans la création

Appel à conférenciers

Nous recherchons des propositions de conférences ou de présentations autour de, par exemple :

  • création graphique et artistique avec des outils libres (GIMP, Inkscape, Krita, Scribus, Blender etc.)
  • UX/UI, design web ou produit avec des stacks open-source
  • typographie, édition, illustration ou motion en environnement libre
  • jeux vidéo réalisés avec outils libres comme Godot
  • automatisation, scripts, bidouille et détournement d’outils
  • retours d’expérience d’artistes, studios, collectifs ou associations
  • réflexions sur l’autonomie, la pérennité et l’éthique des outils

Les formats peuvent être variés : talk, démo, étude de cas, retour d’expérience, atelier.

Modalités de participation

L’appel est ouvert, mais la programmation se fait sur sélection afin de garantir la cohérence de l’événement.

Les propositions se font en deux étapes :

  • un formulaire de prise de contact (nom, email, motivation)
  • après validation, l’envoi d’un lien vers le formulaire de proposition détaillée

L’événement est aussi ouverts aux sponsors ou aux associations qui aimeraient avoir un stand faire connaitre leur activité.

Informations pratiques

Date : vendredi 4 avril
Lieu : Activdesign, Rennes
Public : artistes, designers, développeurs, étudiants et personnes intéressées par le libre

Commentaires : voir le flux Atom ouvrir dans le navigateur

Comment se crée le grand secret de LinuxFr.org

Le 17 janvier 2026 était publié un journal au titre cryptique « Le grand secret de LinuxFr.org ». Son contenu se limite à pointer un tableau (le voici au format Markdown ou en image) et huit vers énigmatiques par un piètre rimailleur. Et pour renforcer l’aspect mékeskidi, une prédiction à propos d’un second secret.

Comment en est-on arrivé là ? Quel rapport avec LinuxFr.org ? Quel est ce grand secret ? Et le second ? Y avait-il des éléments cachés dans des éléments cachés dans des éléments cachés ? Voilà ce qui sera détaillé dans la suite.

Avertissement : évidemment si vous allez lire la suite, vous gâchez le plaisir de la recherche de la réponse par vous-même. Si vous lisez cette dépêche longtemps après sa publication, la résolution devrait rester inchangée.

    Sommaire

    Il était une fois

    De l’auteur

    Je suis, entre autres choses, un amateur de jeux de société, de jeux de rôle, de petits jeux quotidiens (comme Sutom (MIT) ou Le Mot (GPL v3) ou ClueBySam (gratuit, code propriétaire), de petits jeux de réflexion comme GNOME Sudoku (GPLv3+), habitué à recourir à dcode.fr (CC By) pour coder/décoder sur divers jeux (ou à CyberChef (Apache 2) pour des choses plus orientées sécurité) ou de participer à de longues séries d’énigmes genre calendrier de l’Avent (dernièrement celles du ChocoCervo (gratuit à but caritatif, code propriétaire) ou celles de Professeur Zwolle (payant et code propriétaire).

    Dans la dernière édition de ce dernier, qui s’est terminée mi-novembre 2025, il y avait une grille codée à résoudre et j’avais adoré le principe de cette énigme à tiroirs. Je me suis demandé qu’elle serait la difficulté à en faire une similaire, voire en augmentant la densité de l’information stockée dans la grille. Bref début décembre 2025, j’ai commencé à remplir une grille (entre diverses résolutions de calendriers de l’Avent orientés énigmes/jeux ou bien sécurité).

    Mi-décembre j’avais obtenu le résultat quasi final, mais j’avais du mal à résoudre moi-même l’énigme, donc il fallait réduire sa difficulté et ma motivation a baissé avec une fin d’année compliquée. Et début 2026, en rediscutant avec des amis de l’énigme en préparation, la motivation est revenue, j’ai fini de retester en une soirée, découvert une typo qui a nécessité des corrections de dernière minute, et le lendemain, tout était prêt pour la publication.

    La publication

    J’avais produit mon beau tableau Markdown pour publier directement sur LinuxFr.org (c’était un peu l’idée initiale). J’admire donc le résultat de mon copier-coller. Et le résultat est illisible, car le tableau est assez grand avec 26 lignes et 51 colonnes. Et surtout la dernière ligne contient du texte assez large dans chaque colonne, si on n’affiche pas le texte verticalement. Ce que ne permet pas LinuxFr.org. Bon, de toute façon, c’est nettement plus facile à résoudre dans un tableur genre LibreOffice (MPL 2.0) et j’ai d’ailleurs rapidement suggéré de l’utiliser en réglant la largeur des colonnes sauf la première à 0,7 cm par exemple, et d’ajuster l’affichage du texte en vertical pour la dernière ligne. Voir par exemple le rendu en image.

    Vient ensuite le petit poème (que je vais amputer involontairement initialement en le terminant par « mater » au lieu de « materas », nuisant à la rime certes, mais sans effet sur la résolution) :

    Il y aura du blanc, il y aura du noir.
    Criards sont ⚫ et ⚪, parce qu’ils braillent.
    Qu’un fond de la même couleur leur aille.
    Similitude des drapeaux, vers un espoir ?
    Bariolés ils finiront néanmoins blancs.
    Tout comme la ponctuation qui n’en est pas.
    Mêmes six dans une colonne, des éléments
    D’autres parties à chercher, ensuite materas.

    Normalement, avec le titre, le tableau bariolé cryptique plein de symboles et les vers bizarres, le lectorat comprend qu’il s’agit d’une énigme à résoudre, pour découvrir un « grand secret du site » donc. Voire un second secret.

    La résolution

    Le picross

    La variété dans le tableau est le signe qu’il y a différentes choses à trouver, donc on peut commencer de différentes façons.

    Les amateurs de jeu ont sans doute déjà reconnu un picross (Wikipédia nous dira qu’il est « connu sous de nombreux autres noms : Crucipixel ; Edel ; FigurePic ; gameLO; Grafilogika ; Griddlers ; Hanjie ; Illust-Logic ; Japanese Crosswords ; Japanilaiset Ristikot ; Japanese Puzzels ; Kare Karala! ; Logic Art ; Logic Square ; Logicolor ; Logigraphe ; Logik-Puzzles ; Logimage ; Nonograms ; Oekaki Logic ; Oekaki-Mate ; Paint by numbers ; Paint Logic ; Pic-a-Pix ; Pikurosu ; Pixel Puzzles ; Puzzle Giapponese ; Puzzle Japones ; Shchor Uftor ; Tsunami ; Pictopix. »). Pour les autres, j’avais donné un indice avec « Une façon de commencer est de regarder ce qui est lisible et qui flèche la résolution. » Dans le coin supérieur gauche, on voit les mots WIKIPEDIA et PICROSS qui sont pointés par des flèches.

    W I K I P E D I A 📖
    B j Y W R y
    🦙 🖱️ K c m l ♾️ l 💾 📬
    💽 🐧 Y W 5 z I G
    P I C R O S S

    Un autre indice était le vers « Il y aura du blanc, il y aura du noir. ». Effectivement on va avoir besoin de cases noires et blanches (plutôt gris clair et foncé pour pouvoir lire le contenu en pratique), et pas que pour le picross. On va aussi s’aider de « ⚫ et ⚪ (…) Qu’un fond de la même couleur leur aille. » (donc les ronds noirs sont des cases noires et les ronds blancs des cases blanches. Et enfin on va s’aider de « drapeaux (…) ils finiront néanmoins blancs », donc les drapeaux sont des cases blanches, et de « Tout comme la ponctuation », dont la « ponctuation » (voire plus loin, mais on parle ici des cases contenant des points et des tirets) est aussi sur des cases blanches.

    Ne reste plus qu’à résoudre le picross. Et on découvre un QR-code 50x25 (en fait 25x25 les cases étant dédoublées). Il a été produit ainsi avec le paquet go-qrcode (licence Expat), -t pour la sortie texte, -s pour la taille, -d pour éviter la bordure :

    qrcode -t -d -s 33 "1 Le site " > qrcode.txt

    Ce qui donne un 33x33 mais 25x25 sans le cadre. Avec une petite moulinette de 48 lignes assez basique nommée pycross-me.py je l’ai converti en un picross. Et une dernière commande vient remplacer les blancs (espaces) par des @ et les noirs par des espaces pour faciliter la lecture dans un tableau ensuite.

    ./pycross-me.py  qrcode.txt |sed -e 's/" "/"@"/g' -e 's/"█"/" "/g' > qrcode.csv

    Le qrcode.txt :

                  ██  ██      ██████  ██              
      ██████████  ██      ████  ██    ██  ██████████  
      ██      ██  ██    ████    ████  ██  ██      ██  
      ██      ██  ████████████    ██████  ██      ██  
      ██      ██  ████  ████    ████  ██  ██      ██  
      ██████████  ██      ██████████  ██  ██████████  
                  ██  ██  ██  ██  ██  ██              
    ████████████████  ██  ████  ████  ████████████████
    ████      ██  ██  ████████████  ██      ████      
          ████  ██  ██████  ████  ██████  ██████  ██  
      ██  ██  ██  ██    ████████  ████  ██  ██  ██    
      ██  ██    ████████    ██████  ██████  ████████  
    ██████  ████  ██    ████  ██    ██  ████      ██  
          ████████    ██  ██  ██      ██    ██████████
      ████  ██    ██          ██  ██████  ██████████  
      ████████  ████    ████████████        ██  ██    
      ██    ████          ██  ██  ██              ██  
    ████████████████      ██    ████  ██████    ██  ██
                  ██████  ██          ██  ██    ████  
      ██████████  ████          ██    ██████  ████    
      ██      ██  ██        ██████            ██  ████
      ██      ██  ██    ██      ████████        ████  
      ██      ██  ██    ████  ██    ██      ████  ██  
      ██████████  ██████    ██████  ██  ██  ████████  
                  ██████████    ████  ██████          
    

    Bref ce qu’il fallait trouver dans cette sous-partie était « 1 Le site ».

    Le coin en haut à gauche

    La partie blanche était celle contenant WIKIPEDIA et PICROSS précédemment évoquée, plus quelques émojis pour décorer (dont un lama déchaîné et un manchot, et divers moyens de stockage d’information).

    On ne conservant que la partie noire dans cette partie on a ce qui suit :

    c m l l b i B k Y W 5 z
    G x ⏹️
    c y B j Y W R y Z
    M K c m l ♾️ l b
    B k Y W 5 z I G x
    c y B
    Y W ⏹️ R y Z X M 🫟 K 🥾

    On peut noter que c’est une des rares zones comportant des minuscules. Et la raison est qu’on peut y lire la phrase cmllbiBkYW5zIGxlcyBjYWRyZXMK répétée deux fois, qui est nettement plus lisible si on devine qu’il s’agit d’un codage base64 :

    $ echo cmllbiBkYW5zIGxlcyBjYWRyZXMKcmllbiBkYW5zIGxlcyBjYWRyZXMK|base64 -d
    rien dans les cadres
    rien dans les cadres

    Bref ça ne sert à rien.

    Le coin en bas à gauche

    D’abord la partie en blanc :

    B R 🕶️ W P 🐧 P A R 👩🦯
    A I E I
    L L L
    E B 📖
    R 📖 A I 🦙 L L E

    On a donc une dame avec une canne blanche, des lunettes noires, deux fois Braille, un « WP (pour Wikipédia) pareil » (que pour Picross), et les habituels manchot et lama déchaîné. Bref c’est un indice pour une autre partie, mais pas de réponse en vue si je puis dire.

    Alors la partie en noir :

    P 🐙 4 s 🍂 a S s 3 Z c 🌲 l
    i R s
    r L @ u T ♾️ r E
    C 🫟 @ d r e s
    A r i e n À Y t
    o U v
    R m @ i 5 🦀 C o U 🥖 c O u

    Une fois les émojis décoratifs retirés, on peut lire « P4s aSs3Z cl4iR sUr L (sic) @uTrEs C@dres y A rien À Y tRoUvER m@i5 CoUcOu » (la fôte n’était pas voulue) pour « Pas assez clair sur les autres cadres ? Y a rien à trouver, mais coucou. »

    Le coin en haut à droite

    D’abord la partie en blanc :

    T A A H T A A H M
    A A H
    A A H
    A A
    O T I T A A H
    🎶 🎵 I R T I T I T

    Qu’il faut lire comme du code morse avec des tirets longs dits « taah » et des points courts dits « ti » (et des notes de musique pour suggérer les sons).

    taah taah -> M
    taah taah taah -> O
    ti taah ti -> R
    ti ti ti -> S
    ti -> E

    Super, on a « morse » codé en morse. Et on n’a rien appris.

    Puis la partie en noir :

    a W w g b i d 5 I G E g d
    J h
    W 1 l b n Q g c m
    l b i B ⏹️ k Y W 5
    I G 🟦 🔴 🟢 ⏸️ H x
    c y B
    Y 🫟 W R y Z X 🦣 M K 🍄

    Encore des minuscules et encore du base64.

    echo aWwgbid5IGEgdnJhaW1lbnQgcmllbiBkYW5zIGxlcyBjYWRyZXMK|base64 -d
    il n’y a vraiment rien dans les cadres

    Le cœur de la grille

    Dans la partie en blanc, on peut lire (après remise en forme) « message pour l’intelligence naturelle ou artificielle qui lira cette phrase ce n’est pas ce qu’il faut avec les blancs voir plutôt les non-lettres sinosn (sic) » (la typo est involontaire).

    Dans la partie en noir, on peut lire (après remise en forme) :

    D’abord vient le numéro d’un système avant le systemd.
    Puis une pause car besoin d’espace.
    Ensuite une lettre qui ne doit pas être confondue avec le zéro.
    Suivi d’un langage de programmation orienté données et statistiques.
    Arrive une arobase mais plus simple.
    Puis la première lettre du langage de templates utilisé jusqu’en deux-mille onze > par le site.
    Décidons une nouvelle pause.
    Tout est au point, alors mettons-en deux.

    Les réponses étant 5 (System V), espace, o, r, a, t (Templeet), espace, :.
    L’élément est donc « 5 orat : ».

    Le braille

    On aurait pu faire le braille dès le début, sans résoudre le picross. Il était indiqué par « ⚫ et ⚪, parce qu’ils braillent. »

    Les ronds noirs (avec l’aide des ronds blancs pour savoir où sont situés les 3 lignes et 2 colonnes codant un caractère braille) permettent de lire de haut en bas et de gauche à droite le message « 3 aux contribu » (la première zone code un chiffre, la seconde est entièrement blanche donc vide donc espace, et les suivantes codent des lettres).

    Le morse

    On aurait pu faire le morse dès le début, sans résoudre le picross. Le vers parle de « ponctuation qui n’en est pas » et il faut donc y voir du morse dans les parties comportant des points et des tirets. On peut déchiffrer « 2 vit grâce » (la première zone code un chiffre, la seconde est◽donc espace, et les suivantes codent des lettres).

    Les drapeaux

    On aurait pu faire les drapeaux dès le début, sans résoudre le picross. Le vers parle de « Similitude des drapeaux ». Il faut remarquer que dans le premier groupe de six ils ont en commun un partage en 4. Le second groupe ne comporte que des drapeaux blancs, donc espace. Et chacun des autres groupes va coder une lettre, la première lettre commune des pays concernés. Le message à trouver était donc « 4 tions du lect ».

    Les six

    On aurait pu faire les six dès le début, sans résoudre le picross. Les derniers vers non encore utilisés sont

    Mêmes six dans une colonne, des éléments
    D’autres parties à chercher, ensuite materas.

    Une petite observation montre qu’il existe une colonne avec six fois le caractère Unicode☝🏼. On cherche donc des mains et des doigts. Et si leurs emplacements dessinent les lettres v, o, u et s. Le message à trouver était donc « 6 vous »

    La solution

    Le grand secret

    Les six éléments trouvés et remis dans l’ordre donne la phrase suivante : « Le site vit grâce aux contributions du lectorat : vous ». Ce qui est effectivement le grand secret de LinuxFr.org, site qui vit par et pour vous. Il figure d’ailleurs en première phrase sur la page pour proposer un contenu.

    Et voici une visualisation de la solution complète de la grille :

    Solution complète

    Un second secret ?

    Au moment où j’ai écrit le journal, je me suis dit que la résolution pourrait être longue et difficile, qu’une personne seule aurait dû mal à la faire, qu’elle aurait besoin de l’aide, des suggestions, des pistes, des idées, des erreurs, des indices et de la motivation apportée par d’autres personnes. Que sur un site contributif les personnes allaient s’entraider et se nourrir des questions/réponses des autres via les commentaires. Et c’est bien, selon moi, le second grand secret derrière LinuxFr.org. Je ne pouvais que pressentir les commentaires qui viendraient par la suite sous le journal d’annonce de l’énigme.

    A posteriori

    De la création d’énigme

    Voici mes quelques impressions retour sur la création d’une telle énigme :

    • je voulais le plus petit QRcode possible pour avoir une petite grille, mais au final elle n’est pas si petite que cela, et cela veut dire des tests longs et pénibles, des soucis d’affichage sur le site à la publication, et une plus grande difficulté pour résoudre ;
    • je suis satisfait de la quantité d’informations que j’ai pu glisser dans la grille : toutes les cases sont utiles à l’exception des émojis servant de diversions pour la partie « les six ». Et cela inclus des indices glissés pour suggérer le picross, le braille et le morse, ainsi que des fausses pistes ;
    • l'Unicode et les emojis offrent vraiment plein de possibilités pour des énigmes basées sur du texte et des symboles ;
    • il reste plus de typos que l’on pense, parce que c’est difficile/pénible à relire. Celle trouvée la veille de la publication aurait pu obliger à tout décaler dans la grille, ce qui aurait pu être très pénible (j’ai pu m’en sortir avec un changement singulier/pluriel qui a limité le décalage à une seule phrase). Et de fait il en reste après les publications (il faut dire qu’il n’y a pas eu d’équipe de bêta-test, personne n’était au courant de la publication) ;
    • la capacité à être résolue a été un souci : je connaissais le QRcode, mais il ne pouvait servir directement de picross. J’ai donc rajouté des zones pour le braille, les drapeaux et le morse avec des couleurs définies, pour qu’il soit faisable. Et ensuite il faut tout retester depuis le début pour vérifier. La quantité de zones ajoutées augmente ou diminue la difficulté de la partie picross ;
    • je n’avais pas conçu en amont plus que « qrcode pour faire un picross » et en ajoutant les autres parties au fur et à mesure, on se retrouve à devoir revoir des cases (c’est complètement le cas de la partie « les six » qui a consisté à trouver où je pourrais dessiner mes lettres et à remplacer des cases déjà remplies d’autres émojis ;
    • à défaut de pouvoir tout recréer/régénérer automatiquement, il est important de garder des notes de ce qui a été fait, des différentes énigmes et des solutions, ça évite de devoir re-résoudre plusieurs fois, et ça aide pour écrire la solution in extenso ensuite ;
    • c’est assez fun de construire les différentes parties, de mettre des indices, des fausses pistes, des blagues semi-privées sur le manchot et le lama déchaîné, ou les dinosaures parce que tout le monde aime les dinosaures ;
    • il y a une certaine fébrilité à la publication (y aura-t-il de l’intérêt ou pas ? Y aura-t-il des résolutions complètes ou non ? Y aura-t-il de l’entraide ?), puis une attente (ça fait déjà 5min que c’est publié et personne n’a tout résolu encore ? Bon 10 min maintenant. Et après quelques heures ?) et enfin un petit jeu sur comment donner des indices sans donner les réponses directement (c’est clairement la meilleure partie, les échanges par commentaires interposés sur le site, et avec Bookynette & Echarp via Signal (AGPLv3).

    Et ensuite ?

    Ce n’est pas la première fois que j’organise un jeu de ce type sur le site, il y a eu plusieurs fois des chasses aux œufs durant des vacances autour de Pâques (en 2020 et 2021). C’est la première fois que cela prend cette forme d’une énigme mystérieuse. Peut-être qu’il y en aura d’autres ainsi, peut-être pas, cela dépend de vos retours, de la motivation et de l’inspiration. Et de l’envie éventuelle de tester d’autres formes (un escape game ? Quelque chose basé sur le site lui-même ? Ou bien en dehors en utilisant des ressources libres genre OpenStreetMap ou OpenFoodFacts ?). De faire quelque chose en partenariat avec l’April, qui a déjà fait un jeu de l’oie et un espace game ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Statistiques 2025 du site LinuxFr.org

    2025 est amené son lot de changements : un trafic en hausse principalement en raison des moteurs de recherche et d’IA et du spam, plus de contenus publiés mais moins de commentaires. Que cela ne nous empêche pas de revenir sur l’année passée, l’activité du site LinuxFr.org, les détails des changements en termes de trafic Web, de contenus créés, de commentaires déposés, de navigateurs utilisés, d’utilisation des fonctionnalités du site, de contribution au code, etc. Bref, quelles sont les tendances ?

    Le site rend accessible un grand nombre de statistiques (faites‑vous plaisir si vous souhaitez vous plonger dedans, c’est fait pour) ; cette dépêche résume les variations constatées en 2025.

    Nb: le podcast Projets Libres fournit aussi des statistiques publiques.

    Sommaire

    Statistiques Web

    La comparaison des statistiques annuelles (voir 2024 et 2025, les deux comportant des effets de bots bourrins visiblement) montre un quasi doublement des visites, hausse des consultations (pages, fichiers) et des hits (notamment l’effet des bots pour l’intelligence artificielle), avec un passage à ~996 000 hits par jour et ~149 800 visites par jour, le tout pour ~1,77 Tio par mois.

    Statistiques Web 2025

    Le nombre de contenus publiés en un an augmente de 10 %. Le nombre de commentaires publiés en un an diminue cette année de 3%.

    Trafic de LinuxFr.org normalisé, entre 2002 et 2025

    Contenus

    Au 31 décembre 2025, le site comportait environ 123 820 contenus publiés répartis ainsi :

    • 28 185 dépêches :
      • 386 dépêches publiées en 2025 (➡️, 383 en 2024),
      • la taille moyenne (en code Markdown, hors images donc) des dépêches a encore très nettement augmenté, battant le précédent record de 2019 ;
    • 40 701 journaux (↗️, 409 en 2024 et 460 en 2025),
    • 41 047 entrées de forums (↘️, 458 en 2024 et 406 en 2025),
    • 11 140 liens (↗️,2050 en hausse par rapport aux 1714 en 2024),
    • 475 sondages (10 en 2024 et 7 en 2025),
    • 159 pages de wiki (5 en 2024 et 2 en 2025).

    Pour la première année, le pic de publication des contenus se confirme le mercredi. Ce qui continue à différer désormais du pic de modération, voir la partie Modération plus bas).

    Un jour de semaine compte 64 % de publications en plus qu’un jour de week-end.

    La publication sous licence Creative Commons By-SA se fait par défaut depuis les dix ans de CC, fin 2012 pour les dépêches (permet explicitement une rédaction collaborative ou un renvoi en re‐rédaction) et les journaux (qui peuvent être convertis en dépêches) : tout naturellement, on retrouve 97 % de dépêches et 99 % des journaux sous cette licence au final (les autres étant notamment sous licence Art Libre ou autre, au choix de l’auteur).

    Les dépêches collaboratives (et pas uniquement celles réattribuées à l’utilisateur Collectif) sur de multiples sujets sont toujours à compter parmi les vraies réussites du site ; nous sommes cependant toujours à la recherche de volontaires pour couvrir les nombreux sujets qui n’ont pu être abordés. Une liste des thèmes récurrents sur LinuxFr.org peut donner des idées de participation : si une dépêche n’a pas été créée dans les temps, tout inscrit peut la démarrer dans l’espace de rédaction.

    Concernant la visibilité par contenu (analyse sur décembre 2023) : les journaux ont jusqu’à deux fois moins de visibilité que les dépêches (faites des dépêches…) et les liens ont beaucoup moins de visibilité que les journaux et les dépêches (préférez donc faire des dépêches ou des journaux, pour la visibilité).

    Modération

    Le temps moyen passé entre la création d’une dépêche (en rédaction ou directement envoyée en modération) et sa modération et publication est de 600 (!) heures (contre 309 h en 2023 et 337 h en 2024) ; la mesure du temps passé uniquement en modération n’est pas actuellement disponible (et la modération retient volontairement des dépêches non urgentes pour réguler la publication) ; le temps médian est descendu à 22 heures. Il y a des demandes de statistiques dans le suivi, envoyez les demandes d’intégration Git (pull‐requests). ;-)

    Le jour préféré de modération a priori des contenus est toujours le mardi pour les dépêches et le lundi pour les sondages.

    Commentaires

    Au 31 décembre 2025, le site comporte 1,97 million de commentaires. Le nombre de commentaires publiés en un an baisse cette année de 3 % pour arriver à 31 011.

    Il y a désormais, en moyenne, 24 commentaires par journal (29 en 2023 et 29 en 2024), 9 par dépêches (9 en 2023 et 9 en 2024), 47 par sondage (54 précédemment, mais très dépendant des sondages considérés), 9 par entrée de forum (7 en 2023 et 8 en 2024), 2 par entrée de suivi, 6 par lien (contre 7 en 2023 et 7 en 2024) et une poignée par page wiki.

    Le jour préféré pour commenter reste le mercredi, et un jour de semaine compte deux fois plus de commentaires qu’un jour de week-end.

    Notes

    Il n’y a (toujours) pas de statistiques disponibles concernant les notes. Les entrées de suivi sur les statistiques n’ont pas avancé.

    Néanmoins diverses statistiques concernant la notation sur les contenus et les commentaires ont été données en juin 2021, avec des graphes.

    Étiquettes (tags)

    Au 31 décembre 2025, le site comporte :

    • 16 502 étiquettes, dont 13 594 étiquettes publiques (contre 12 867 fin 2024) ;
    • 195 491 saisies d’étiquettes (étiquetées en moyenne treize fois pour les étiquettes publiques et cinq fois pour les étiquettes privées) ;
    • les étiquettes sont réparties ainsi par contenu :
      • 68 367 pour les dépêches,
      • 54 720 pour les journaux,
      • 31 732 pour les forums,
      • 38 903 pour les liens,
      • 835 pour les pages wiki,
      • 397 pour les sondages,
      • 537 pour le système de suivi des défauts et évolutions.

    Plus de détails dans la dépêche de février 2022 À propos des étiquettes sur le site LinuxFr.org.

    Depuis le début du site, on constate en moyenne 5 étiquettes par page wiki, 3,5 par lien, 2,4 par dépêche, 1,3 par journal, 0,8 par sondage, 0,8 par entrée de forum et 0,3 par entrée du suivi.

    Le jour préféré pour apposer des étiquettes est le lundi (biais de la création initiale des étiquettes), suivi du samedi.

    Il y a plusieurs biais concernant les étiquettes :

    • beaucoup ont été et sont ajoutées automatiquement ;
    • le thème mobile par défaut ne montre pas les étiquettes (sauf à basculer son Firefox en « Version ordinateur » ou équivalent sur un autre navigateur).

    Équipe de bénévoles

    Il y a actuellement 4 personnes pour l’administration du site, 11 pour la modération, 6 pour l’animation de l’espace de rédaction et 2 pour la maintenance qui font tourner ce site. Pour mémoire, il s’agit de bénévoles plus ou moins disponibles et donc absolument pas de 23 équivalents temps plein pour jargonner comme une entreprise. Merci pour le travail accompli.

    Code et développement

    Au 31 décembre 2025, le système de suivi de défauts et de demandes d’évolutions contient 285 entrées ouvertes (contre 269 en 2024). On voit assez rapidement un manque de développeurs apparaître. En 2025, il y a eu 34 entrées ouvertes (contre 54 en 2024) : 20 entrées encore ouvertes venant s’ajouter à celles datant d’avant, 12 corrigées et 2 déclarées invalides. On peut noter que ceux qui ouvrent le plus d’entrées sont des membres actuels ou anciens de l’équipe du site.

    C’est Bruno qui garde le record de correction d’entrées. Merci aussi à Adrien Dorsaz. Le temps moyen de résolution est de 164 jours (contre 166 précédemment). La moitié des entrées fermées ont été traitées en moins de sept jours. On ressent donc toujours un besoin de nouveaux contributeurs côté code.

    La charge moyenne sur le serveur est de 1,4 sur la machine actuelle (baptisée oups). La charge minimale a été de 0,8 et la maximale de 3,6.

    La consommation mémoire est restée stable (en dépit de la perte d’une barrette de mémoire). Le trafic réseau sur la partie Web uniquement est en croissance à 9,1 Mbit/s sortants.

    Comptes utilisateur

    Au 31 décembre 2025, sur les 53 375 comptes utilisateur valides existants, 2 215 ont été utilisés au cours des trois derniers mois, dont 31 % (-2) ont déjà rédigé des dépêches, 41 % (-4) des journaux, 42 % (-3) des entrées de forums, 10 % (-1) des entrées dans le système de suivi, 17 % des liens (=) et 2 % une page de wiki ; 80 % (-7) ont écrit des commentaires et 48 % (-4) étiqueté des contenus ; 32 % (-1) ont contribué sur au moins une dépêche ; 24 % (-3) des comptes actifs ont indiqué un site personnel, 8 % (=) un identifiant XMPP, 6 % (+1) une adresse Mastodon, 28 % (-1) un avatar et 6 % (=) une signature.

    Côté utilisation des fonctionnalités, 14 % (=) ont demandé à ne pas afficher les contenus avec une note négative, 8 % (-1) ont demandé le tri chronologique en page d’accueil, 5 % (-1) à ne pas voir les avatars, 4 % (-1) à afficher la tribune dans une boîte latérale et 3 % (=) à ne pas voir les signatures, et à peine quelques pourcents ont changé les contenus par défaut en page d’accueil (souvent pour retirer les sondages et ajouter les journaux). Peu de feuilles de style CSS du site sont utilisées : quatre visiteurs sur cinq utilisent celle par défaut ; il est facile d’en changer avec le lien Changer de style. En janvier 2024, il n’y avait pas de rupture générationnelle marquée entre les comptes 1999 et 2024 en termes d’utilisations des fonctionnalités.

    Seuls huit comptes ont un karma négatif et zéro ont un karma nul, soit 0 % des visiteurs actifs ; 18 % des comptes actifs durant les trois derniers mois ont été créés en 2025 (+8 points, avec probablement un biais dû aux spammeurs).

    32 % (+2) des visiteurs actifs ont une adresse de courriel GMail, 11 % (-1) chez Free, 3 % (-1) chez LaPoste, 3 % (=) chez Yahoo, 3 % (=) chez Hotmail ou Outlook et 2 % (=) chez Orange ou Wanadoo.

    Les visiteurs actifs ont des adresses XMPP chez jabber.fr, gmail.com, im.apinc.org, jabber.org, movim.eu et chapril.org notamment. Et des adresses Mastodon chez mastodon.social, piaille.fr, mamot.fr, framapiaf.org, pouet.chapril.org et mastodon.tetaneutral.net notamment.

    2025 correspond aussi au second anniversaire de la mise à place des nouvelles règles de pérennité des comptes LinuxFr.org et données à caractère personnel.

    Soucis divers

    Le compteur d’années sans mises en demeure reçues passe à quatre (après deux mises en demeure en 2019 et une en 2020, voir la dépêche sur la no 3 en attendant la publication d’informations sur les no 4 et 5). Mais un courriel d’avocat est néanmoins arrivé dans l’année 2025.

    / Only five formal notices in the default \
    \   install, in a heck of a long time!    /
     -----------------------------------------
       \
        \
            .--.            / Ouep...  \
           |o_o |           \ Euh coin /
           |:_/ |            ----------
          //   \ \              \ 
         (|     | )               \
        /'\_   _/`\                \ >()_
        \___)=(___/                   (__)__ _
    

    Depuis la création du site, statistiques liées au légal (dans les sens liés à la force publique ou à du juridique) :

    • cinq mises en demeure reçues (pour zéro assignation) ;
    • une réquisition judiciaire reçue (qui au final ne nous concernait pas, mais a donné l’occasion de discuter avec la police nationale) ;
    • un cas d’usurpation d’identité et de harcèlement type « revenge porn » (discussion avec la gendarmerie nationale).

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Le numéro 8 du Lama déchainé promeut la diversité

    Vous l’avez déjà lu, mais chaque numéro du Lama déchainé a une thématique particulière. Cette fois-ci, c'est un numéro qui parle de diversité et d’inclusivité mais surtout des richesses que cela peut apporter à une communauté !

    La diversité chez les barbus linuxiens

    Pour l’édito de ce numéro, nous avons fait appel à notre spécialiste, celle qui anime les chroniques F/H/X dans l’émission Libre à vous ! sur la radio Cause commune: Florence Chabanois. Merci pour son texte !

    La parole bénévole est à Ewa, qui anime les stands parisiens et est intervenue à la radio.

    Sinkra, présidente des sans-pagEs, a tenu la plume invitée pour nous présenter cet incroyable projet qui vise à enrichir l’encyclopédie Wikipédia de pages consacrées à des femmes.

    La distribution libre choisie cette semaine est FreeBSD, ça change de GNU/Linux !

    L’écho des assos est pour découvrir l’association GEBULL, qui ne s’intéresse pas qu'au numérique.

    Le logiciel libre pour Android présenté par Michael Opdenacker est Joplin, pour prendre des notes.

    Dans ce numéro, vous aurez enfin les dernières étapes pour finir de construire votre LPI (Lama photonique Interpellant) et bien sûr, toutes les chroniques habituelles. Sans oublier les mots croisés évidement.

    Notre actu brulante s’en est prise au Canard enchainé qui nous a « atrocement et très beaucoup » déçu.

    Frise d'avancement à 41%

    Petit rappel (désolée…), le Lama déchaîné présentera les actions de l’April et de ses proches jusqu’à Noël 2025, avec, si possible, humour, subjectivité et parfois espoir. Nous travaillons à un numéro bonus avec de nombreux cadeaux à l’intérieur ! Nous réfléchissons au choix du papier qui les emballera.

    Ce travail qui occupe plusieurs membres de l’association, chaque semaine pendant plus de 20h, a pour but d’assurer la pérennité des activités de l’April qui essaie de récolter une somme de 30 000€ avant le 31 décembre 2025.

    Cette semaine, la somme récoltée a dépassé les 40%. Il ne reste plus que trois semaines pour atteindre les 100%. Le finish sera manifestement mouvementé. Un sprint final pour la dernière semaine est déjà envisagé !

    Merci de votre lecture, de vos commentaires, de vos nombreux relais sur les réseaux sociaux ou ailleurs (c’est un bon moyen de nous aider que de relayer) et, bien sûr, de votre soutien !

    Y a vraiment de plus en plus de liens dans ces articles. 

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Une rare interview/video de Linus Torvalds : Building the PERFECT Linux PC with Linus Torvalds

    Linus Torvalds est invité dans cette toute récente vidéo sur la chaîne Linus Tech Tips. La vidéo dure presque une heure, ce qui est inhabituellement long pour cette chaîne, et permet de laisser s'exprimer un Linus Torvalds invité. Torvalds s'exprime sur de nombreux sujets tout en regardant un PC « idéal » être monté pour lui et ses travaux sur le noyau Linux.

    Il discute du Libre, Gaming, Linux, Git, A.I., de son travail, dans une atmosphère bon enfant et avec un humour mordant.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Ackify CE : preuve de lecture cryptographique en Go + Vue3

    Ackify CE est une plateforme open-source (AGPL v3) permettant de générer des preuves de lecture cryptographiquement vérifiables pour des documents internes.

    Le problème

    Les organisations doivent souvent prouver qu'un collaborateur a lu un document (politique RGPD, charte de sécurité, formation obligatoire). Les solutions existantes sont soit trop lourdes (signature électronique qualifiée comme DocuSign à 10-30€/utilisateur/mois), soit non sécurisées (simple email).

    La solution

    Ackify génère des preuves de lecture cryptographiques avec :

    • Signatures Ed25519 (même algo que SSH)
    • Horodatage immutable (PostgreSQL triggers)
    • Hash chain blockchain-like
    • Vérification offline possible

    Cas d'usage

    • Validation de politiques internes (sécurité, RGPD)
    • Attestations de formation obligatoire
    • Prise de connaissance de procédures
    • Accusés de réception contractuels

    Différence avec DocuSign

    Ackify n'est pas une alternative à DocuSign pour des contrats juridiques. C'est une solution simple pour des besoins internes où la signature qualifiée est overkill.

    N'hésitez pas si vous avez des questions techniques !

    Installation

    curl -fsSL https://raw.githubusercontent.com/btouchard/ackify-ce/main/install/install.sh | bash
    cd ackify-ce
    nano .env  # Configurer OAuth2
    docker compose up -d

    Installation complète en ~5 minutes.

    Stack technique

    Backend

    • Go 1.24 (Clean Architecture / DDD)
    • PostgreSQL 16
    • Chi Router
    • OAuth2 (Google, GitHub, GitLab, custom) ou Magic Link (passwordless)

    Frontend

    • Vue 3 + TypeScript
    • Tailwind CSS
    • i18n (FR, EN, ES, DE, IT)

    DevOps

    • Docker distroless < 30 MB
    • CI/CD GitHub Actions
    • Tests : 72,6% couverture (180 tests unitaires + 33 intégration)

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Blender 5.0 est de sortie

    La version 5.0 de Blender vient de sortir ce 18 novembre 2025. Blender est un logiciel de modélisation, animation, montage, et de rendu en 3D. Il est distribué sous licence GPL depuis 2002.

    Sommaire

    Même si la rétrocompatibilité est cassée sur certaines fonctionnalités, cette sortie est plus — en dehors de la correction de bugs — une amélioration de « qualité de vie » pour les usagers, car elle combine et utilise des concepts déjà implémentés dans la version 4.5 LTS.
    C’est pourquoi cette dépêche couvrira aussi certains aspects de la version précédente (plus certaines notes personnelles).

    Vu que Blender est une sorte de monstre à tout faire (et à rien faire aussi…), bourré de termes internes à sa logique, j’ai préparé un petit lexique qui vous évitera de vous endormir (j’espère !) pendant la lecture.

    Note 1: Les nouveautés sont classées de façon subjective, et donc certaines sont passées à la trappe, pour plus de détails, voir ici.

    Note 2: Suite a une question dans la zone de rédaction sur la compatibilité des Addons (greffons) et des Extensions, la responsabilité incombe aux développeurs des Addons d’assurer la compatibilité entre versions, ce qui redescend sur les utilisateurs évidemment… Les développeurs peuvent consulter cette page et les utilisateurs (des extensions) peuvent se référer à ce site dans les changelogs.

    Lexique préliminaire

    Shaders ou pour les anglophobes, des nuanceurs permettent de donner une apparence à une surface dans un environnement 3D. Sur Wikipédia en plus exhaustif.
    Exemple:
    shader metal

    Les Modificateurs sont des fonctions internes qui modifient un objet de façon non destructive et peuvent être empilés de façon logique (ex : suivre une courbe, lisser, cloner en pavage, etc.) en s’appliquant les uns à la suite des autres.

    Les Geonodes sont un langage de programmation visuel dont l’interface est héritée de celle des shaders. Ils permettent de manipuler la géométrie d’un objet de façon non destructive en accédant à l’API de Blender via des entrées/sorties appelés nœuds. On peut les animer et en configurer l’entrée / sortie (menus, curseurs, boîte de saisie, interface graphique) pour une utilisation plus facile. Ils sont considérés en interne comme des Modificateurs.
    Exemple (cônes instanciés sur sphères instanciées sur plan):
    geonode exemple

    Les Assets sont des bibliothèques d’objets Blender qu’on peut créer et enregistrer pour une utilisation future. Ils s’intègrent à une « scène » par simple cliquer-glisser.

    Le VSE est un éditeur de séquence vidéo, comme Kdenlive (mais avec beaucoup moins de fonctionnalités). L’avantage de l’utiliser dans Blender est son intégration au système de « scènes » du logiciel.

    Le Compositeur permet de modifier un rendu en direct dans la scène 3D, avec des effets que l’on trouve dans la plupart des logiciels de retouche d’image (GIMP, ImageMagick, etc.). Évidemment cela ne s’applique que sur un rendu Blender et donc ne remplace pas les logiciels précédemment cités.
    Exemple : simple passe Hue Saturation Value (HSV)
    compositor passe hsv

    Le Grease Pencil, ou crayon gras, permet de dessiner en vectoriel directement dans la fenêtre de visualisation sur des objets ou des surfaces. Ces tracés sont également des objets 3D manipulables, mais sont « plaqués » dans la perspective de la caméra.
    Exemple (ceci n’est pas un shader avec une image mais un objet Grease Pencil):
    grease pencil exemple


    Assets

    La possibilité de faire ses propres bibliothèques (objets, nœuds, shaders, etc.) a été facilitée : Une scène peut être marquée comme « asset » avec une prévisualisation à créer à partir de la vue caméra et automatiquement importée.
    Les assets peuvent être partagés en tant que fichier .blend en suivant un certain protocole.


    Compositeur et gestion des couleurs

    Déjà présent dans la 4.5
    Ajout des textures procédurales issues de l’éditeur de shader (Briques, Damier, Bruit, etc.).
    D'autres nœuds du compositeur deviennent obsolètes, le compositeur se rapprochant de plus en plus de l’éditeur de shader dans ses fonctionnalités, ce qui amène à…
    Nouveau dans 5.0
    Le compositeur possède maintenant ses propres blocs de données ; ce qui veut dire que les compositions peuvent être portées d’un fichier à l’autre et également être enregistrées en tant qu’assets.
    Plusieurs assets sont fournis à titre d’exemple dans cette sortie (vignette, grain, aberration chromatique, etc.)

    Plus

    • Le nœud « distorsion de lentille » gère maintenant la transparence.
    • Nouveau nœud « Pavage Radial »
    • Ajout de la gestion de couleur ACES 2.0

    L’éditeur de séquence vidéo (VSE)

    Le chapitre précédent implique également qu’on puisse maintenant travailler directement avec le compositeur dans le VSE, ce qui ouvre la voie pour de la post-production en « temps réel ».
    Ainsi, le nouveau modificateur « Compositeur » permet à une grande partie des nœuds du compositeur de s’appliquer aux séquences individuelles du VSE.
    Un exemple vidéo: disponible ici.
    Note perso :
    J’avais l’habitude d’exporter des séquences images rendues avec Blender, puis pré-travaillées avec G'MIC ou GIMP pour les superposer en alpha sur un autre canal du VSE. Maintenant je peux m’en passer, tout du moins pour les opérations simples ; pour les autres, plus complexes ces deux outils me restent indispensables (faut pas abuser, le Compositeur n’est pas la panacée pour moi et à vrai dire, ça a tendance à faire exploser les temps de calcul sur certaines opérations).


    GeoNodes (nœuds de géométrie)

    Des nœuds déjà disponibles dans la 4.5 sont :

    • « Repeat Zone » permet de répéter un groupe de nœuds X fois dans la zone concernée.
    • « Simulation Zone » permet de répéter un groupe de nœuds pour chaque frame dans la zone concernée.

    Nouveau dans la 5.0 :
    Ajout du nœud « Bunddles » qui permet de stocker des valeurs dans un dictionnaire, de combiner des dictionnaires et de les séparer. Très utile pour rendre ses compositions plus lisibles et réutilisables.
    Les GeoNodes deviennent également plus modulaires avec la notion de « Closures », en fait « juste » des groupes de nœuds que l’on peut transformer en fonctions génériques réutilisables.
    Une explication plus détaillée est dispo dans le blog des développeurs.

    Plus

    • Toute une nouvelle série de nœuds pouvant manipuler les volumes.
    • Nouveau nœud « Pavage Radial ».

    Certains GeoNodes font leur apparition dans les modificateurs (et vont en remplacer certains à terme ?)

    • Modificateur « Géométrie comme source » (prend aussi une collection) qui peut se cumuler avec les 3 modificateurs qui suivent
    • Itération d’objet (array) : Circulaire, sur courbe et avec les GUI qui vont bien.
    • Distribution d’objets sur surface
    • Instanciation d’objets sur faces/arêtes/points
    • Courbe comme tube
    • Déformation par lattice (treillis) disponible par menu contextuel

    Note perso :
    L’API ouverte aux GeoNodes s’étoffe de plus en plus, et ça devient très vite très complexe. L’avantage d’avoir une barre de recherche pour les nœuds aide beaucoup, et créer des choses simples pour bricoler des effets reste faisable; mais je pense que la « création de Nodes » va devenir un domaine en soi dans Blender, tout comme le scripting.


    En vrac

    Animation et Rigs

    • Attention : Les données d’animation de la version 5 sont incompatibles avec les versions inférieures à la 4.5.
    • Le greffon « Copy Global transform » a été intégré à Blender.

    Note: Le système d’animation est en train d’être revu assez profondément depuis 2023, et n’étant ni animateur ni rigger je ne peux pas en dire plus. Je vous invite donc à suivre ce lien pour plus d’informations sur les bases de cette refonte.

    Crayon gras (Grease pencil)

    • Ajout du « motion-blur » (flou lié au mouvement)
    • Ajout de deux nouveaux styles de coins

    Note perso :
    Il y a eu beaucoup de mouvements sur cette fonctionnalité, qui est le seul moyen (avec freestyle) de faire du contour direct pour avoir un rendu BD sur des objets 3D. Mais en partant d’une scène, c’est loin d’être magique et il faut vraiment une topologie très propre pour éviter des heures de paramétrage, ou dessiner directement sur les objets (mais vu que je sais pas dessiner !).

    Cycles (Moteur de rendu)

    • Texture de ciel améliorée, avec diffusion multiple de la lumière.
    • La sortie du shader « Déplacement » sur une « Surface de subdivision » est intégrée par défaut.

    EEVEE et fenêtre de visualisation

    • Prise en compte de Vulkan (déjà dans la 4.5)
    • Traitement amélioré du HDR
    • Nouveaux MatCaps
    • Ajout de la surcharge des matériaux sur les calques

    Shaders

    • Nouveau nœud « Pavage Radial ».
    • Nœuds « Closure », « Bundle », « Repeat Zones » disponibles (voir la section GeoNodes).

    Jeu « Dog walk »

    jeu dogwalk
    Le studio blender, une équipe affiliée à la fondation chargée de tester les dernières versions du logiciel au sein de projets concrets, a sorti en juillet 2025 un jeu vidéo nommé « Dog Walk ».
    Une « simulation » de promenade de chien hivernale. Le but initial était de créer/renforcer les outils d’intégration entre Blender et le moteur de jeu Godot.

     Comment débuter ?

    Arrrg, question difficile. Il y a beaucoup trop de ressources, et chaque utilisation est particulière (créer des rendus, animer des séquences d’images, faire de la composition vidéo, faire de l’intégration dans un moteur de jeu) ; donc chaque cas d’usage doit faire l’objet d’une recherche propre (une chose est sure, si vous voulez faire de la CAD, utilisez d’autres logiciels libres !).

    Pour la base de la base et en français, il y a ce lien, c’est daté, mais il y a plein de trucs encore utiles. Sinon il y a le forum Blendertribu, qui semble assez actif.

    Il y a aussi le manuel officiel… pour les barbu/es.

    Pour les impatients, il y a BlenderGuru sur YouTube. Oui « ToiTube » saimal; mais en revanche, le type est là depuis longtemps, explique très bien et a un chouette accent australien pour les anglophones, de plus ses vidéos sont traduites en français.

    Si vous avez d’autres liens à partager n’hésitez pas à commenter ou wikifier.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Sortie du jeu Bim! en version 12

    Bim! est un jeu libre (code AGPL3 et assets CC-by-sa 4.0) multijoueur de type dernier survivant, et qui se joue uniquement en ligne. Il n’est disponible que pour les systèmes Android.

    Le jeu est développé depuis plus de deux ans. Jusque-là restreint à quelques pays sur le PlayStore, la sortie de la version 12 marque la mise à disposition de l’app à tous les pays en mode tests ouverts ; c’est-à-dire que vous pouvez installer l’app et même laisser des commentaires mais ceux-ci ne seront pas visibles dans le PlayStore.

    En plus du PlayStore, le jeu est disponible sur GitHub, F-Droid, et d’autres magasins alternatifs.

    La suite de la dépêche présente les nouveautés des versions publiées depuis la dernière communication en ces pages, soit les versions 11 et 12.

    Bim est multijoueur pour jouer avec ses amis

    Sommaire

    Bim! est un jeu « à la bomberman ». Deux à quatre joueurs sont dans une arène, le dernier survivant a gagné. Pour combattre, les joueurs posent des bombes dont ils peuvent augmenter la puissance en trouvant les améliorations disséminées dans l’arène. De plus, d’autres bonus peuvent être découverts pour faire varier l’expérience de jeu.

    Un pilier dans la création de ce jeu est de proposer aux joueurs de partager un bon moment d’amusement avec d’autres personnes. C’est pourquoi il ne propose aucun mode hors-ligne ni de bots en guise d’adversaires.

    Le jeu est disponible en allemand, anglais, brésilien, breton, français, portugais, et turc.

    Historique du développement

    Le développement du jeu a été régulièrement conté dans des journaux sur LinuxFr.org, au rythme d’un journal toutes les deux versions. J’en profite pour remercier profondément tous ceux qui ont testé ou commenté jusqu’ici :)

    Le premier journal, dix mois après la création du dépôt, intitulé Bim! On parle de dev de jeu mobile, de gestion de projet, de dépendances, etc., présente le début du projet, les choix de technos, la mise en place d’outils de dev, et le chemin pour arriver à une première application et un environnement de dev robuste. Au final on obtient une application humble sur laquelle on va pouvoir construire, et bien qu’elle soit en mode texte le mode de jeu en réseau est déjà fonctionnel.

    Première version avec gameplay, dans un terminal Première version de l’app graphique
    Première version avec gameplay, dans un terminal Première version de l’app graphique

    Dans le deuxième journal, Dev update du jeu Bim!, on présente les résultats d’une première version graphique, et des problèmes liés à la gestion de sticks logiciels. Des assets temporaires sont utilisés en attendant de valider le fonctionnel.

    Capture de la version de Bim! lors du second journal

    Le troisième journal, Bim! Ça joue là, marque la mise à disposition du premier APK. Les joueurs peu regardants sur l’esthétique du jeu peuvent faire des matchs.

    Capture de la version de Bim! lors du troisième journal
    Clique sur l’image pour voir une vidéo du jeu.

    Le quatrième journal, Version 2 de Bim!, avec des menus, présente l’interface des premiers menus. L’interface du jeu lui-même est toujours à base de placeholders mais les menus s’approchent d’une esthétique convenable. On y parle aussi de réglages liés au jeu en réseau.

    Capture de la version de Bim! lors du quatrième journal

    Dans le cinquième journal, Sortie de Bim! en version 3 pour les fêtes, on parle de l’arrivée de l’écran de paramétrage, ainsi que de réglages graphiques suite à des sessions de tests avec joueurs. C’est aussi dans cette version qu’est introduite l’enregistrement des parties sur le serveur afin d’aider à déboguer a posteriori.

    Écran des paramètres Interface de visualisation des parties enregistrées
    Écran des paramètres Interface de visualisation des parties enregistrées

    Le sixième journal, De beaux graphismes dans la version 4 de Bim!, marque un tournant avec le remplacement des assets du jeu par des graphismes convenables. Ça change tout. L’avatar du joueur, la bombe, les flammes, et les caisses sont le résultat d’une commande à Aryeom. Pour le reste c’est de mon fait, parfois avec des ressources libres trouvées sur le web. On y parle aussi de conso mémoire, d’équité dans la répartition des bonus, et de recherche graphique.

    Capture d’une partie Recherche d’adversaire
    Capture d’une partie Recherche d’adversaire

    La version présentée dans le septième journal, Sortie de Bim! en version 6, est la première à ne plus utiliser d’éléments graphiques provisoires. C’est aussi celle qui introduit le mode de jeu avec brouillard de guerre.

    Capture de la version du septième journal
    Clique sur l’image pour voir une vidéo du jeu.

    Dans la version du huitième journal, Ça bouge dans Bim! en version 8, les joueurs sont enfin animés. C’est aussi une version qui contient des contributions externes, notamment le bonus d’invisibilité. Enfin, les joueurs gagnent maintenant des pièces en jouant, leur permettant d’acheter les modes de jeu supplémentaires.

    Animations du personnage Vidéo du bonus d’invisibilité
    Animations du personnage Vidéo du bonus d’invisibilité

    Enfin, le neuvième et dernier journal en date, Sortie de Bim! en version 10, avec un bouclier et des stats, marque l’arrivée du bonus « bouclier » ainsi que d’une refonte graphique des bonus. Cette version est aussi la première à proposer une boutique ainsi qu’à présenter les stats de jeu au joueur. Enfin, grâce à Weblate des contributeurs à travers le monde ont pu proposer de nouvelles traductions.

    Boutique Statistiques Bonus
    Boutique Statistiques Bonus

    Nouveautés des versions 11 et 12

    Il n’y a qu’une nouveauté de gameplay dans ces versions, il s’agit d’une modification du comportement des flammes pour qu’elles puissent se croiser. Auparavant une flamme qui en rencontrait une autre était bloquée, ce qui réduisait de fait son pouvoir de destruction. Dorénavant elles s’étendront jusqu’au prochain obstacle solide. Cela rend les fins de parties et les mêlées vachement plus fun.

    Capture avec intersection des flammes

    Du côté des outils j’ai intégré l’instrumentalisation avec Tracy, et j’ai commencé à faire quelques mesures de perf, pour voir où le jeu se situe. Très sympa comme outil, ça me permet de prendre des mesures par frame et de regarder comment l’application se comporte. Il y a aussi la possibilité de tracer des données personnalisées, ce dont je me sers pour suivre le trafic réseau.

    Utilisation de Tracy

    Sur cette frame on a une petite pile d’appels (c’est moi qui indique manuellement quelles fonctions doivent être mesurées) qui correspond à l’update du jeu. En rouge on a l’étape de synchronisation avec le serveur, où on joue ce qu’il nous a envoyé pour ensuite simuler les itérations locales. En bleu on a la préparation de l’affichage. Tout cela est inclus dans la section « update », qui contient d’autres trucs non tracés et prend donc une milliseconde sur mon Pixel 3a. Sur la droite il y a une section « draw » qui n’a pas de pile d’appels. Il s’agit de l’affichage proprement dit, géré par Axmol. Ça prend donc 14 ms, ce qui est un peu trop à mon goût. Il faudra que je creuse.

    Nouveautés sur le serveur

    Le serveur de jeu maintient maintenant des statistiques d’activité sur une fenêtre glissante, à savoir le nombre de parties jouées et le nombre de joueurs connectés. Ces deux métriques sont disponibles en instantané, sur la dernière heure, les 24 dernières heures, et les 30 derniers jours. Ces statistiques sont disponibles dans les logs du serveur mais aussi à la demande des clients.

    Ce travail est basé sur une contribution de HanevyN. Dans le cadre de l’utilisation de Bim! comme outil d’apprentissage du C++ présenté dans le journal sur la version 8, cette personne avait choisi la tâche d’intégrer des statistiques au serveur. Le problème à résoudre était mal spécifié, mais nous avons trouvé une reformulation plus réaliste qui a ensuite bien occupé ce contributeur. Lorsqu’il n’a plus pu se charger de ce développement j’ai pris la suite pour le finaliser et l’intégrer au dépôt.

    Nouveautés sur le client.

    Les transitions entre les écrans sont maintenant animées ! C’est vachement plus agréable. Avec l’arrivée d’animations dans les menus j’ai dû remettre le framerate à 60 dans ces derniers parce que sinon c’était trop saccadé.

    Affichage de statistiques du serveur

    Autre nouveauté sur le client, il affiche maintenant une statistique du serveur. À l’origine de cette fonctionnalité il y a une demande d’un utilisateur reçue par courriel :

    Bim is such a great game, but sometimes I join for a casual match, and there is no one playing. Sometimes I sit in the lobby for 2 minutes to check if someone else's game ends and join them, but it would be even greater to have a games in progress count in the lobby.

    Le problème de cette personne est qu’elle lance une recherche d’adversaire et la laisse tourner sans jamais voir de joueur la rejoindre. C’est très frustrant en effet. Cette personne propose d’avoir une indication sur l’écran principal de l’application du nombre de parties en cours.

    C’est quelque chose que j’avais auparavant refusé de faire, car la plupart du temps cela affichera zéro, et si c’est zéro sans doute que les joueurs qui ouvrent l’app ne vont pas tenter de lancer un match, ce qui ne va pas aider à faire monter le compteur.

    Cependant, suite à ce message, j’ai réfléchi à la possibilité de suggérer l’activité sur le serveur mais de manière toujours positive. L’idée est d’indiquer le nombre de parties en cours mais de se rabattre sur une indication du nombre de joueurs connectés s’il n’y a pas assez de matchs en cours. Et s’il n’y a pas trop de joueurs, alors on se rabat sur des mesures agrégées sur la dernière heure, puis les 24 dernières heures, puis les 30 derniers jours. Ça tombe bien, j’avais toutes ces mesures sur le serveur !

    Ça me semble être un bon compromis. On ne voit pas qu’il n’y a personne, mais on voit que le jeu n’est pas à l’abandon.

    Boutons pour la boutique et les stats sur le lobby.

    J’ai fait pas mal d’UI dans ces versions à commencer par ajouter un bouton permettant d’accéder à la boutique et un autre pour afficher les statistiques du joueur. Auparavant on accédait à la première en cliquant sur le solde de pièces et les secondes étaient affichées directement sur l’écran principal.

    Le plus simple pour moi, quand je dois faire ce genre de bouton, est de commencer par des croquis pour dégrossir les idées.

    Des croquis

    En haut à gauche on voit la base du bouton. L’icône est trop petite, et le libellé trop rigide ; je l’ai donc incliné (c’est une des lignes directrices que j’applique pour l’interface, d’avoir des inclinaisons, pour donner un sentiment de dynamisme). Pour l’icône je me suis posé plein de questions sur la taille du store, la forme de la porte, les proportions… D’où le lot de croquis.

    Pour l’icône des statistiques c’était plus simple, il y avait moins de questions. Enfin, il y a surtout eu des questions de couleurs mais ça je ne le travaille pas sur le carnet.

    Au final ça donne ça. J’ai peut-être fait un peu de zèle pour l’icône de la boutique, sans doute que je voulais impressionner mon enfant qui me regardait dessiner dans GIMP (ça a marché :)).

    Icône de la boutique

    Intégration d’un outil d’analytics

    L’application Android intègre maintenant une remontée de statistiques anonymes sur son utilisation. L’outil que j’ai choisi est PostHog, qui a le bon goût d’être libre, auto-hébergeable, de proposer le stockage des données en Europe, d’avoir une offre gratuite, et de permettre une remontée des statistiques sans identification de l’utilisateur.

    Grâce à cet outil j’ai maintenant une idée de ce qu’il se passe sur le client ; notamment le nombre d’utilisateurs par jour, ou encore la proportion de joueurs qui cherchent et trouvent un adversaire.

    Écran de sélection des fonctionnalités de jeu.

    Le déblocage et la sélection des fonctionnalités de jeu se faisaient auparavant sur l’écran de recherche d’adversaire. Les joueurs pouvaient activer la chute de blocs, les boucliers, le brouillard, ou encore l’invisibilité depuis cet endroit. Dans la nouvelle version cette sélection se fait maintenant sur un écran dédié, accessible depuis le lobby. De plus, seules deux options peuvent être activées par joueur. Cela permettra d’avoir un peu plus de variété et de surprise dans les matchs en combinant les fonctionnalités activées par les uns et les autres.

    Cet écran a été un très gros chantier, avec pas mal de code qui n’était pas prêt mais que je ne le savais pas et que donc j’ai dû m’interrompre plein de fois pour préparer ce code que j’aurais dû écrire en amont. Galère.

    Déjà sur les croquis ont voit que ça n’allait pas être simple.

    Encore des croquis

    J’avais envisagé une vue grille (en haut à gauche) pour ensuite m’orienter sur une liste de fiches présentant chaque fonctionnalité (milieu gauche). J’avais besoin d’emplacements où poser les éléments sélectionnés par le joueur, que je mettais en haut sur les croquis, sans trop savoir s’ils allaient être en ligne ou en pyramide, inclinés ou horizontaux.

    Étonnamment dès lors que j’ai ouvert GIMP pour faire une maquette j’ai abandonné l’idée des fiches en faveur de la grille. La longue liste de fiches m’a semblé soudain peu attrayante par rapport à une grande grille qui montrerait au premier coup d’œil la variété de l’offre.

    J’ai ajouté une zone de présentation de chaque fonctionnalité ainsi qu’une petite notice explicative, et j’ai fait beaucoup d’essais pour déterminer la couleur des contours des boutons.

    Essais

    Et au final, quand j’ai mis ça dans l’application, eh bien j’ai jeté la petite explication pour la fusionner dans la nouvelle boîte de présentation des fonctionnalités ! On avance clairement à tâtons sur cet écran.

    Personnalisation des parties

    Il faut savoir qu’il y a aussi beaucoup d’animations liées aux interactions sur cet écran, mais évidemment ça ne se voit pas sur les images :)

    Quelques statistiques

    À chaque communication je présente quelques statistiques du jeu. Comme d’habitude je vais sortir des graphiques à partir des logs du serveur, mais cette fois j’ai aussi des mesures intégrées au client grâce à PostHog ; je vais donc pouvoir sortir quelques graphes supplémentaires. Commençons par le nombre de joueurs par jour :

    Nombre de joueurs par jour

    On y voit clairement le déploiement des deux mises à jour. Dès lors que ça arrive sur F-Droid il y a plein de joueurs qui débarquent. Ensuite voici le nombre de parties par jour (logs serveur) :

    Nombre de parties par jour

    Une chouette info que me donnent les mesures sur le client est la proportion de joueurs qui lancent une recherche d’adversaire et trouve effectivement quelqu’un :

    Proportion de joueurs qui lancent une recherche d’adversaire et trouve effectivement quelqu’un

    Sur un autre graphe que je n’affiche pas ici, j’apprends que les joueurs restent en moyenne 17 secondes sur la recherche d’adversaire avant de laisser tomber.

    En termes de répartition du nombre de joueurs par partie, cela donne :

    Nombre de joueurs Nombre de parties
    2 708
    3 182
    4 42

    Et enfin, pour la répartition des joueurs par pays, on a :

    Répartition des joueurs par pays

    Ce sera tout pour cette fois. On se retrouve en match :)

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Parution du numéro 4 du Lama déchainé, mur de la joie et un navigateur perturbateur

    Grâce aux remontées de plusieurs personnes, nous avons appris que les Chrome/Chromium récents n'affichaient pas le site du Lama Déchaîné et crashaient sur l'affichage (avec un s et pas un c). Manifestement ces navigateurs n'aiment pas les mots croisés, enfin le multicolonage des grilles. Après quelques ajustements, le site devrait être à peu près accessible, sans que le problème ne soit vraiment réglé. Bref, ce n'est pas optimal. Help! :-)

    Le mur de la joie a enfin fait son apparition sur la page d'accueil. Par mur de la joie, on entend en fait un mur de remerciement. Chaque nouvel adhérent ou adhérente, et chaque donateur ou donatrice, se voit remercié publiquement (prénom + initiale du nom), car c'est grâce à eux que la campagne avance. Si vous aussi, vous voulez apparaître sur ce mur, vous savez quoi faire ;-)

    Enfin le numéro 4 du Lama sort ce mercredi 12 novembre ! Comme ce week-end c'est le Capitole du Libre, la thématique de notre numéro est la communauté.

    L'April: un lama à mille pattes? - enfin 10, dont 8 qui portent des projets April

    L'équipe de journalistes vous propose donc

    • un édito pour rappeler ce que l'April fait pour sa communauté et la remercier pour son soutien !
    • une anecdote d'un truc à savoir (et à vérifier) qui s'est passé l'année dernière au Capitole du Libre et un le saviez-vous pour dévoiler comment les stands sont organisés ;
    • une astuce de Gee pour changer le monde :
    • l'écho des assos est laissé à Infini, un des rares GULL plus vieux que l'April (si si c'est possible) ;
    • la plume invitée est pour nos amis de Framasoft qui nous présentent, s'il est encore besoin, le super logiciel PeerTube ;
    • un bénévole nous a permis de photographier son ordinateur, où un lama venait d'emménager à côté d'un autocollant… je vous le donne en mille, Linux-Fr ;
    • le logiciel Android proposé par Michaël cette semaine est StreetComplete ;
    • la distribution libre est cette fois-ci Zorin OS ;
    • une autre étape pour fabriquer le Lama Photonique interpellant ;
    • une nouvelle ineptia ;
    • et bien sûr des mot-croisés qui font planter Chromium/Chrome.

    Merci à Miguel pour son témoignage de nouvel adhérent et Acryline qui a accepté de participer au courrier des lecteurs !

    Bannière de la campagne du Lama déchaîné

    Rappel, Le Lama déchaîné a pour but de vous présenter les actions de l’April et de ses proches jusqu'à Noël 2025, avec humour, légèreté et parfois quelques coups de gueule.

    Ce travail astronomique qui occupe de nombreux bénévoles est fait pour assurer la pérennité des activités de l’April qui, comme de nombreuses associations en péril ces derniers temps, cherche à récolter une somme de 30 000€ avant le 31 décembre. Les débuts de la campagne sont difficiles avec seulement 10% récoltés en quatre semaines. Toujours moins que l’année dernière à la même époque. Nous essayons de ne pas nous inquiéter, car tout se joue les derniers jours… n'est-ce pas ?

    Merci de votre lecture, de vos commentaires, de vos relais sur les réseaux sociaux ou ailleurs et, bien sûr, de votre soutien !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Delphine Demange et les compilateurs

    Cette année, la date de la journée Ada Lovelace, une journée dont l’objectif est d’accroître la visibilité des contributions des femmes dans les domaines scientifiques, technologiques, mathématiques et ingénierie (STEM), est le 15 octobre 2025.

    Pour l’occasion, en 2023, LinuxFr avait consacré une dépêche à Lorinda Cherry, Evi Nemeth et Jude Milhon. En 2024, cela avait donné lieu à une mini-série sur la participation des femmes à la conquête de l’espace. Cette année, on se penchera sur les compilateurs, créés par Grace Hopper, et qui ont valu à Frances Allen un prix Turing en 2006 et on dressera le portrait de Delphine Demange, lauréate du prix Gilles Kahn 2013.

    Bandeau Journée Ada Lovelace, la photo vectorisée d’Ada sur fond d’un de ses manuscrits dans des tons sépia

    Sommaire

    Qu’est-ce qu’un compilateur ?

    La naissance des compilateurs

    Le premier compilateur, il s’appelait « translator » (traducteur) à l’époque, a été inventé par Grace Murray Hopper pour l’UNIVAC 1 en 1951, l’A-O System. Soit après la sortie de l’IBM 604 (1948), avant celle de l’IBM 650 (1954) et un peu avant le FORTRAN, langage compilé, créé vers 1953 par John Backus pour l’IBM 701 et lancé en 1957. La même année où IBM embauche Frances Allen pour former des scientifiques et des ingénieurs réticents à l’utilisation du langage. Elle sera, en 2006, la première femme à obtenir un prix Turing. Elle raconte, dans les Annals of History of Computing (Volume 6, N°1, janvier 1984) que :

    L’une des façons dont le laboratoire de recherche a convaincu les gens à utiliser ce langage a été d’imposer son utilisation via un règlement.

    Elle ajoutera :

    le compilateur FORTRAN a établi la norme en matière d’efficacité du code objet. Mais surtout, il a démontré la faisabilité de l’utilisation des langages de haut niveau. Lorsque j’ai enseigné le FORTRAN en 1957, l’utilisation de ce langage a rencontré une forte résistance. Cette résistance a rapidement été érodée par le type de code produit par le compilateur.

    John Backus, qui trouvait par ailleurs que Grace Murray Hopper était difficile à égaler, détaillait dans ces mêmes annales les auteurs et l’autrice du compilateur. Peter Sheridan avait écrit la section 1 qui analysait les expressions algébriques, les traduisait en code et optimisait ce code. Pour la section 2, Harlan Herrick avait inventé l’instruction DO, rédigé : « la partie de la section 1 qui regroupe toutes les informations sources non utilisées dans les expressions algébriques dans des tableaux nécessaires aux sections suivantes. ».

    C’est également à Herrick que l’on doit l’introduction des mots clés GO TO ! Roy Nutt a conçu la majeure partie du langage d’entrée/sortie et rédigé la partie de la section 1 qui traduisait les instructions d’E/S en boucles DO. Il a également rédigé la section 6, qui assemblait le programme symbolique final et complétait le traitement des instructions d’E/S. C’est également à Nutt que l’on doit l’introduction de l’instruction FORMAT. Bob Nelson et Irv Ziller ont rédigé la section 2, qui s’est avérée être la plus grande section du compilateur. Elle analysait les références aux tableaux dans les boucles DO et produisait un code hautement optimisé pour le reste du programme source. Leur travail a eu un impact important sur le niveau global d’optimisation que j’ai mentionné précédemment. Dick Goldberg a rédigé la section 3, qui rassemblait le code compilé par les sections 1 et 2 et produisait d'autres informations nécessaires aux sections suivantes. Les gens continuaient à se concerter et à demander aux auteurs des sections précédentes de produire un peu plus, quelques tableaux supplémentaires dont ils avaient finalement besoin. Dick a également joué un rôle important dans le débogage de la section 5. Lois Haibt (en) a rédigé la section 4, qui effectuait une analyse statistique de la fréquence d'exécution […] Ici, la section 4 a également préparé de nombreux tableaux pour la section 5, si je comprends bien. Sheldon Best a écrit la section 5, qui a converti le programme utilisant de nombreux registres d'index en un programme en utilisant trois. Ses méthodes ont eu un impact considérable sur les travaux ultérieurs dans ce domaine et ont eu un effet majeur sur le niveau d'optimisation du compilateur. Enfin, David Sayre a rédigé un manuel du programmeur exceptionnellement clair et concis et a aidé Dick Goldberg à déboguer la section 5.

    Structure d’un compilateur : 1 déclarations identifieur et traducteur, 2  analyse indice et déclaration DO, 3 Interface entre 1 et 4, 4 anlyseur de flux de contrôle, 5 allocateur de registre global, 6 assemblage final
    Schéma de la structure du compilateur de l’ordinateur IBM 704 adapté de celui fait par Frances Allen dans les « Annals of History of Computing », Volume 6, N°1, janvier 1984 (page 24).

    De leur côté, les Soviétiques, qui fabriquaient aussi des ordinateurs, utilisaient également des compilateurs. Dans son article sur les ordinateurs soviétiques, Yves Logé rapporte qu’ils utilisaient, en 1955, les langages de compilation : PP2 – PP et BESM. Le BESM étant un ordinateur sorti en 1953. La fondatrice de la programmation théorique en Ukraine, Katerina Yushchenko (en), y a fort probablement contribué.

    À quoi ça sert ?

    En août 2001, dans un entretien (en) avec Janet Abbate qui lui demandait comment elle définirait un compilateur, Frances Allen répondait :

    Je pense qu’un compilateur sert à traduire ce que l’utilisateur de l’application […] demande […] à la machine de manière à obtenir la bonne réponse, mais aussi à utiliser au mieux les ressources de la machine. C’est ça, l’optimisation. On peut se contenter de transposer les choses sans tirer parti des registres et de nombreuses autres unités de calcul, mais cela ne serait pas aussi efficace. L’optimisation consiste donc à tirer parti des ressources de la machine et à très bien connaître cette dernière. C’est en quelque sorte combler un fossé, afin que l’utilisateur n’ait pas besoin de tout savoir !

    Plus généralement, un compilateur est décrit comme un programme dans un langage de haut niveau qui traduit le code-source en code objet pour le rendre exécutable en détectant les erreurs et en l’optimisant par la même occasion.

    Schéma d’un compilateur
    Le code source est envoyé au compilateur qui le traduit en langage machine.

    Les compilateurs sont des outils essentiels et très complexes qui interviennent dans tous les programmes, notamment des logiciels très critiques :

    Par exemple, les programmes embarqués dans les systèmes bancaires, dans les systèmes de contrôle de vol des avions, ou même dans la chirurgie assistée par ordinateur ou les centrales nucléaires […] : la présence d’erreur durant leur exécution pourrait avoir des conséquences désastreuses, que ce soit en termes de vies humaines, de dégâts écologiques, ou de coût financier. (Delphine Demange, Semantic foundations of intermediate program representations, Thèse soutenue le 19 octobre 2012.)

    Comment ça marche ?

    Réponse rapide : avec beaucoup de mathématiques. Réponse un peu plus détaillée : à partir de différents types d’analyses après une phase de pré-traitement qui permet de déterminer comment traiter les informations.

    1. L’analyse lexicale : découpe le code en unités lexicales ou « tokens » qui vont permettre au compilateur de traiter les données par la suite. Ce faisant le compilateur sépare les différents types d’éléments : variables, opérateurs, séparateurs, mots-clés, etc.
    2. L’analyse syntaxique : vérifie que le programme source ne contient pas d’erreur de syntaxe et que le code source est correct et, évidemment le compilateur signale les erreurs qu’il a pu trouver à ce stade.
    3. L’analyse sémantique : après la syntaxe, c’est le sens du code qui est examiné. Le compilateur va ainsi vérifier s’il y a des erreurs de logique, passant, que le code fait bien ce qu’il est censé faire. À ce stade, le compilateur va aussi signaler les erreurs, voire, rejeter un code incorrect.
    4. L’optimisation : permet de nettoyer le code pour le rendre plus rapide à exécuter. À l’heure actuelle avec des processus très gourmands en ressources, c’est une étape-clé, ça n’a pas toujours été forcément le cas.
    5. La génération du code final : c’est la dernière phase dont le résultat est le code exécutable.

    Delphine Demange : comment vérifier que les compilateurs font leur travail correctement

    Parcours

    Delphine Demange entre en licence d’informatique à l’université de Rennes 1 en 2004. Elle y obtiendra un magistère Informatique et télécommunications en 2006 puis fera le mastère de recherche en informatique de la même université en 2008. Elle achèvera cette partie de ses études par un stage de master à l’IRISA (équipe Celtique), en vérification de programme. Au bout des cinq mois de stage, en 2009, elle s’inscrira en thèse. Une thèse, Fondements sémantiques des représentations intermédiaires de programmes (en), soutenue en 2012 et qui lui vaudra le prix de thèse Gilles Kahn 2013 de la SIF, et qui porte sur :

    la vérification formelle de logiciel, c’est-à-dire à l’ensemble des techniques et d’outils scientifiques qui permettent d’assurer qu’un logiciel remplit ces exigences [de qualité des systèmes critiques]. (Résumé étendu de sa thèse).

    Elle part ensuite pour les USA, à l’Université de Pennsylvanie pour une année de post-doctorat. Là, elle travaillera sur un projet alliant vérification et sécurité. De retour en France, elle passe des concours. Elle est, depuis 2013, maîtresse de conférence à l’université Rennes 1.

    En février 2024, elle donnait un cours au Collège de France : Représentations intermédiaires pour la compilation : s’affranchir du graphe de flot de contrôle.

    On peut retrouver ses communications et articles ainsi que sa thèse, toutes en anglais, sur HAL science ouverte.

    La vérification des logiciels

    Comme elle le dit en résumé de sa thèse :

    Nos vies quotidiennes dépendent de plus en plus, sans même parfois que nous nous en rendions compte, de l’utilisation de programmes informatiques. Ces programmes n’ont toutefois pas tous le même niveau de criticité. Par exemple, les programmes embarqués dans les systèmes bancaires, dans les systèmes de contrôle de vol des avions, ou même dans la chirurgie assistée par ordinateur ou les centrales nucléaires sont appelés systèmes critiques : la présence d’erreur durant leur exécution pourrait avoir des conséquences désastreuses, que ce soit en termes de vies humaines, de dégâts écologiques, ou de coût financier. Ce type de programme requiert donc de fortes garanties : leur exécution ne devrait pas échouer, et leur correction fonctionnelle devrait être garantie.

    Elle ajoute plus loin que les compilateurs étant des logiciels, ils sont à leur tour susceptibles d’avoir des bugs comme n’importe quel autre programme. Il est donc nécessaire qu’ils répondent aux mêmes exigences infaillibilité que les systèmes critiques sur lesquels ils travaillent.

    Dans un entretien accordé au site de l’université de Rennes en 2014, elle précise que son travail a pour but final :

    d’assurer, par une preuve mathématique et assistée par ordinateur, que les compilateurs compilent correctement les programmes (i.e. ils n’ajoutent pas de nouveaux comportements aux programmes), et que les vérifieurs calculent des propriétés sur des modèles corrects des programmes (si le modèle du programme ne comporte pas d’erreur, alors le programme d’origine n’en comporte pas non plus).

    Ses travaux de thèse portant les représentations intermédiaires (IR) des programmes sur lesquels travaillent les compilateurs et vérificateurs. Ces IR simplifient les analyses de ces outils qui peuvent analyser des programmes très complexes. Elle continue, depuis, ses recherches dans le même domaine avec :

    la vérification des techniques de compilation optimisantes pour les langages de haut-niveau, en y incluant les aspects les plus difficiles des langages modernes, comme la gestion de la mémoire, la concurrence et les modèles de mémoire faibles. (entretien, Université de Rennes).

    Tout cela demande beaucoup de mathématique, parfait pour quelqu’un qui a hésité entre les maths et l’informatique.

    Quelques autres sources d’information

    Sur les compilateurs, internet est bien pourvu en ressources en français sur le sujet, par exemple :

    — Compilation informatique : définition concrète et rôle, Journal du net, 2016,
    — Comment fonctionnent les compilateurs, IBM, [sd],
    — Qu’est-ce qu’une conception de compilateur ? Types, outils de construction, exemple, Kaia Céruléen, GURU99, [septembre 2025 ?],
    — Cours de compilation, [sd],
    — Compilation, pdf à télécharger,
    — Langages de programmation et compilation, Jean-Christophe Filliâtre, septembre 2016,
    — Représentations intermédiaires pour la compilation : s’affranchir du graphe de flot de contrôle, cours au Collège de France, 15 février 2024
    — Fondements sémantiques des représentations intermédiaires de programmes, thèse, en anglais, de Delphine Demange.

    Sinon on peut aussi lire ou relire l’hommage à France Allen sur LinuxFr. Il y a aussi, en anglais, cet article Early Computers and Computing Institutions (en) qui raconte les débuts de FORTRAN. C’est très intéressant. Mais il faut soit l’acheter (15,50 dollars pour les membres ou 30 dollars pour les non-membres) ou faire partie d’une structure adhérente.

    Questions et remerciements

    Compte de tenu de l’importance des compilateurs, la question se pose de la raison pour laquelle la personne qui a été à l’origine du premier compilateur et du COBOL, Grace Murray Hopper (1906-1992) n’a pas reçu le prix Turing pourtant créé de son vivant, en 1966, et à une époque où elle était encore active. Le récipiendaire du prix Turing 1966 ayant d’ailleurs été Alan J. Perlis pour la construction de compilateurs.

    Question complémentaire, pourquoi France Allen n’a reçu son prix Turing qu’en 2006 « pour ses contributions pionnières à la théorie et à la pratique des techniques utilisés par les compilateurs optimiseurs qui ont jeté les bases des compilateurs optimiseurs modernes et de l’exécution parallèle automatique. » Frances (“Fran“) Elizabeth Allen. A.M. Turing Award 2006 (en), alors qu’elle avait pris sa retraite depuis 2002. Elle reste toujours aussi importante : un de ses textes de 1970 fait partie de la bibliographie de la thèse de Delphine Demange.

    Dernière question, dans son discours de remise du prix Turing en 2007, Frances Allen disait qu’après une phase de stagnation des compilateurs, on devrait avoir une phase de progrès significatifs dans le domaine. Est-ce que vous avez une idée de ce à quoi elle aurait pu penser ?

    Un très grand merci à vmagnin pour son aide et les documents qu’il m’a envoyés pour m’aider à rédiger cette dépêche.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Le Lama Déchainé, campagne de l'April 2025

    Certains s'en souviennent encore, d'autres sont passés à côté. Certains en ont rêvé, d'autres ont hâte de retrouver les mots croisés! Certains se demandent ce que l'April a fait cette année, d'autres ont d'autres associations à financer…

    Le Lama Déchainé revient !

    Bannière de la campagne du Lama Déchainé

    À travers neuf éditions hebdomadaires du 15 octobre au 16 décembre, (sauf surprise, manque de temps, perte d'un journaliste, dissolution de l'assemblée nationale, voire démission d'un président).

    Vous y retrouverez les éditos, de nouvelles anecdotes, des dessins humoristiques explicites, les mots croisés, les chiffres, de nouveaux logiciels libres. Comme l'année dernière, la plume invitée sera laissée à des personnes amies nous parlant d'elles ou de leurs projets. Toujours plus de trucs à savoir et à partager

    De nouvelles rubriques ont également été mises en place, nous avons scindé les citations en deux, la première sera nourrie uniquement de citations de notre site Libre à lire! qui regroupe toutes les transcriptions réalisées (conférences, vidéos, podcasts, car le texte rend plus accessible les médias). Pour la deuxième, les citations seront des extraits des chroniques de notre émission radio Libre à vous! diffusée sur Cause commune et en podcast.

    Autre nouvelles rubriques :

    • Distribution libre, qui sera composée de petits textes présentant succinctement différentes distributions. Avec l'opération Adieu Windows, bonjour le libre!, beaucoup de personnes nous demandent quelle distribution choisir. Nous espérons, avec cette rubrique, leur donner quelques pistes de réflexion.
    • L’écho des assos, pour vous parler des associations qui accueillent, rencontrent et aident le grand public au jour le jour (merci à elles).
    • IneptIA, tout est dans le titre, on vous laisse découvrir (et commenter, forcément).
    • Qui fréquente votre lama?, où n'importe qui pourra participer en (demandant puis) envoyant des photos de leur lama.

    Grande nouveauté de cette année : Le Lama Photonique… Ce sera le feuilleton de la fin d'automne, chaque semaine, vous pourrez découvrir comment fabriquer votre propre Lama Photonique en dix étapes !

    Tout peut arriver d’une semaine à l’autre alors, pour ne rien rater, suivez avec vigilance les mots clics #LeLamaDéchainé et #CampagneApril2025 sur les réseaux sociaux ou abonnez-vous au flux RSS.

    Cette gazette vise à vous présenter l’étendue de nos actions, dans un format plus léger et humoristique que nos lettres d’informations (que nous vous encourageons malgré tout à lire pour vous convaincre de la pertinence de notre travail).

    Afin d’assurer la pérennité de nos activités, nous cherchons à récolter une somme de 30 000€ avant le 31 décembre. Si vous pensez que l’April doit continuer à exister dans ce contexte où l’hégémonie des géants du logiciel privateur se fait toujours plus forte, vous pouvez adhérer ou faire un don.

    Merci de votre lecture, de vos commentaires, de votre soutien!

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Interminable liste de terminaux

    Ah, la ligne de pêche Maginot commande ! Que ce soit pour gérer ses fichiers, récupérer des commits, lancer une compilation, se connecter à un serveur, redémarrer un service, consulter les logs, voire contrôler la musique, afficher des images, cette interface reste en 2025 exceptionnellement boomer rapide et même parfois confortable.

    Sans compter que le terminal est l'endroit où lancer des applications dédiées, pour lire ses mails ou un million d'autres choses.

    Bref rappel avant se lancer dans de longues comparaisons

    • TTY vient de teletypewriter. Si vous tapez (Xorg comme Wayland) Control + Alt + F3 par exemple, vous vous retrouverez devant une invite de commande.
    • pts/pty : quand vous ouvrez un terminal

    L'invite de commande pourra bénéficier d'un shell personnalisé. Le bureau permettra l'usage d'un terminal.

      Sommaire

      Le jeu de les shells

      Le shell est un interpréteur de commande. On peut simplement lancer une commande pour consulter l'état du système (top, ps), déplacer un fichier (mv), … Ou combiner des commandes, écrire des scripts basés sur des conditions et des variables, … Donc comme l'explicite le manuel GNU, un shell unix est la fois un interpréteur de commande et un langage de programmation.

      La plupart des distributions utilisent par défaut "Bash", mais il est possible de changer de shell, par exemple interactivement en utilisant la commande chsh ("change shell"), ou en modifiant les paramètres d'un terminal en particulier, ou d'un multiplexeur, ou encore plus globalement en modifiant le shell par défaut d'un user (faites un peu attention dans ce cas — les shells ne sont pas tous compatibles, ne tombez pas !).

      Les shells tombent

      Les scripts précisent aussi quel shell invoquer… Si je prends un tuto sur un shell au hasard, voici ce que je vais trouver

      #!/bin/bash
      # This script will take an animated GIF and delete every other frame
      # Accepts two parameters: input file and output file
      # Usage: ./<scriptfilename> input.gif output.gif

      Attention : ce script référence explicitement /bin . Pas 100% sûr que bash y soit installé. Une solution peut être d'utiliser env.

      #!/usr/bin/env bash

      Hormis interpréter les commandes tapées, le shell affiche également un prompt invitant à taper une commande. Quelque chose comme cela :

      [goat@arch:~]$ 
      

      Pour la partie prompt, certains shells vont autoriser un peu de paramétrage, ou l'on peut même installer des plugins pour enrichir les possibilités, comme avec powerline ou même le liquid prompt présenté ici même par son auteur Dolmden.

      On peut aussi trouver un prompt comme starship qui est utilisable avec les différents shells.

      De la préhistoire au Bash

      Pour l'histoire, le premier shell Unix date de 1971, puis le Bourne Shell (sh), du nom de son auteur, apparait en 1977. Beaucoup de fonctionnalités sont déjà présentes : il est scriptable (on peut définir un script avec des conditions dont la si laide esac, définir des boucles, …), les processus peuvent être contrôlés, il est possible de définir des alias, …

      Bourne Shell implémente la norme POSIX que d'autres shells respectent. La licence du Bourne Shell est débatue (avec une certaine vigueur sur Wikipédia!) , en tout cas son code est ici.

      KORN shell n'était, au départ, pas open source - le code n'est libéré que dans les années 2000. Korn Shell implémente les fonctionnalités du Bourne Shell mais ajoutera d'autres éléments, comme des raccourcis vi/emacs, ou comme les tableaux

      $ typeset -A age
      $ age[bob]=42
      $ age[alice]=31
      $ print ${age[bob]}
      42
      

      GNU BASH : /bin/bash

      GNU Bash

      B.A.S.H. = Bourne Again Shell (superbe jeu de mots avec Born Again Shell). Bash implémente la norme POSIX… et un peu plus.

      GNU bash connait une première release en 1989. Il reprendra à son compte des fonctionnalités trouvées jusqu'ici dans de précédents shells, y compris Korn Shell. Bash reste le shell interactif par défaut sur de nombreuses distributions. Il fut le shell sous MacOS.

      Anecdote - quel est le plus gros programme bash que vous connaissiez ? nb, qui propose de gérer vos notes en mode texte (org, markdown, etc), est principalement composé d'un script .sh de … 26736 lignes. Je vous laisse partager vos trouvailles en commentaire !

      DASH : le Debian Almquist shell est renommé ainsi en 1997. Debian l'adopte par défaut pour les scripts, tandis que le shell interactif des utilisateurs reste bash. Ubuntu y passe par défaut sur la 6.10. Dash est léger et performant. Moins de dépendances égal plus de sécurité.

      ZSH

      ZSH ZSH sort en 1990. Toujours compatible avec la norme POSIX, Zsh va améliorer de bien pratiques fonctionnalités d'auto-complétion : appuyez sur <TAB> et Zsh complète pour vous.

      Mais bien plus largement, Zsh va atteindre le paroxysme en terme de fonctionnalités. Tout existe dans Zsh.

      Zsh est connu pour proposer de très nombreuses possibilités de configuration. Ses plugins se comptent par centaine — y compris plusieurs gestionnaires de plugins… Mais un outil très utilisé pour le configurer sort du lot : Oh my zsh, qui permet de gérer plus de 300 plugins ainsi que de nombreux thèmes.

      FISH

      Fish

      Fish pour "Friendly Interactive Shell", date de 2005. C'est un shell non POSIX - certaines fonctionnalités ne seront pas compatibles. Un script bash ne marchera pas forcément.

      Ce shell se veut demander peu de configuration - il est prêt à l'emploi. Choix appréciable quand on peut déjà passer tant de temps à configurer d'autres choses (distro, bureaux, nano, terminaux..)  !

      Il suffit de l'installer pour avoir

      • une coloration syntaxique indiquant quelle commande est valide
      • suggestions : en tapant, on obtient des candidats que l'on peut auto-compléter

      Fish est également scriptable et se veut proposer un syntaxe plus saine. À vous de tester (mais vous ne codez qu'en Rust, n'est-ce pas ?)

      Le gros point de Fish à mon sens, c'est de proposer une configuration par défaut déjà utilisable, comme le fait de se baser sur les pages man ainsi que sur l'historique pour proposer l'auto-complétion. Oubliez les heures passées à configurer - je ne sais pas si Fish a le plus de chevaux dans le moteur, mais avec lui vous êtes déjà prêts à partir.

      Petite fonctionnalité sympa, taper fish_config ouvre une page ouaibe. On peut alors prévisualiser les thèmes, personnaliser le prompt, visualiser les fonctions et variables, consulter l'historique et les raccourcis claviers. Fish a un mode vi.

      Fish a été réécrit en Rust entre 2022 et 2024.

      Ravissant multiplex, 200 mètres carrés

      Gnu Screen

      Ok donc nous avons un shell à choisir, y compris le prompt et il faudra le lancer dans un terminal, mais avant ça, si on avait un gestionnaire de fenêtre dans le gestionnaire de fenêtre ? C'est bien comme cela qu'est présenté GNU Screen, qui gère des fenêtres, typiquement de terminaux. C'est un multiplexeur, en français : la possibilité d'ouvrir plusieurs terminaux dans un seul terminal. GNU Screen sait lister les terminaux ouverts, passer de l'un à l'autre, en tuer… Comme souvent, le wiki arch détaille bien notre affaire concernant screen. Mais GNU Screen est un vieux de la vieille, qui date de 1987.

      Tmux

      Plus souvent cité de nos jours, Tmux (2007) propose des raccourcis à la Emacs ou à la Vim, un menu graphique, des splits verticaux ou horizontaux.

      Zellij

      Il existe d'autres multiplexeurs. On peut citer par ex. Zellij, orienté développeurs, qui affiche une barre de statut, peut afficher les raccourcis claviers…

      Envolez-vous vers un nouveau terminal

      Le choix d'un terminal pourra définir l'apparence de votre interface, comment vous gérez le multi-fenêtre et/ou multi-onglet, la capacité à rechercher, copier-coller, les raccourcis clavier, peut être même comment accéder aux emplacements, vous connecter en ssh.

      Certains terminaux proposent un mode inspiré de Guake (première release 2007), lui même inspiré du terminal dans Quake : le terminal est toujours ouvert et dispo, mais caché et l'appui d'un raccourci clavier le fera apparaître. Le temps de taper trois commandes et le même raccourci le fera disparaître. À voir ce qui se fait encore sous Wayland, je vois par ex. qu'il y a encore une extension GNOME.

      La console sur le bureau

      Première piste : tout simplement utiliser la terminal qui vient avec son bureau, si l'on en utilise un. Évidemment le premier avantage sera une bonne intégration, mais en pratique ?

      Nous verrons aussi plus bas certains terminaux qui sont le terminal par défaut de gestionnaires de fenêtre, mais il s'agit simplement d'un choix par défaut et pas d'une affiliation ni d'une intégration particulière, donc pas de raison de les mentionner ici.

      Console (GNOME)

      Le terminal par défaut a changé sous GNOME 42 (euh bah oui c'était y'a un moment), pour devenir GNOME Console (anciennement Kings Cross Station d'où kgx — j'ai cherché l’exécutable un moment…). Assez peu de fonctions particulières mais : devient rouge lorsqu'on est connecté en root ou violet en ssh, envoie une notif quand une longue commande se termine, sympa. Un bouton de recherche un peu étonnant peut s'avérer pratique. Clairement la logique est d'afficher peu de boutons, peu de choix, et d'investir sur des options par défaut qui fonctionnent. Je ne vais pas retenir Console pour mon usage mais je trouve qu'effectivement c'est un terminal élégant.

      Pour changer le shell de Console, il faudra passer par l'éditeur dconf et modifier l'option org.gnome.Console.shell.

      Certaines distributions ont préféré maintenir gnome-terminal, plus complet, mais gnome-terminal est resté Gtk3 (alors que kgx est bien Gtk4).

      Petite note sur kgx et gnome-terminal : ces terminaux sont basés sur la libvte dont dépendent d'autres terminaux GTK. Voici quelques exemple cités par une page du wiki gnome :

      On pourrait y ajouter Lxterminal (merci à Impromptux).

      Konsole

      Konsole

      Le choix logique pour le bureau KDE. En termes de fonctionnalités, c'est l'artillerie lourde. Multi-profils, signets, multiplexeur, prévisualisation d'images. Konsole est intégrée dans plusieurs applications KDE.

      Pour changer le shell de Konsole, vous pouvez passer par le menu Settings > Configure Konsole > Profiles .

      C'est le moment de mentionner Qtermwidget : ce widget fut originellement basé sur Konsole et servit à développer Qterminal.

      xfce-terminal

      Terminal par défaut du bureau Xfce. Il dépend et hérite de libvte. Il est en Gtk3.

      • Permet plusieurs onglets
      • Intégration avec un gestionnaire de fichiers (ouverture dans le répertoire courant du terminal)
      • Prévention de collage dangereux : quand ça contient un retour chariot, ouvre une popup qui permet d’inspecter et modifier le contenu dangereux.
      • Permet d’envoyer un signal au processus en cours
      • Permet d’avoir une console rapide à la Guake
      • Permet de colorer les onglets manuellement.

      Il est possible de changer le shell dans les préférences.

      Terminology

      Terminology

      Ce terminal sort en 2013, il fait partie du bureau Enlightenment Je pense que c'est le premier terminal à pouvoir afficher des images. Il est possible d'avoir des informations en survolant une URL. Une barre de progression s'affiche durant l’exécution de commandes. Les performances sont au rendez-vous. (Subjectif - serait-ce tout simplement la meilleure appli e17?)

      Emacs et (Neo)Vim

      Mais plutôt que d'utiliser le terminal intégré à son environnement de bureau, pourquoi ne pas utiliser directement celui intégré à son éditeur de texte? Un bon éditeur de texte en effet a forcément son bon terminal. Même Vim? Et oui. C'est donc une solution de lancer le terminal depuis l'éditeur de texte, par exemple pour reproduire les fonctionnalité d'une IME vivre sa vie entière en mode texte.

      Emacs

      Démarrons tout de même par Emacs, où la prise en charge du terminal est plus ancienne.

      Emacs a… 4 terminaux, pourquoi faire simple. 4 terminaux ? Non pas vraiment : 2 shell et 2 terminaux. Il peut y en avoir plus.
      En fait, puisqu'on peut, malgré la rumeur, bel et bien éditer du texte dans emacs, pourquoi ne pas gérer ses commandes au même endroit ? On peut même s'amuser à gérer ses fichiers dans dired, ses processus, finalement un peu tout l'aspect système.

      Mastering Emacs le développe mieux que moi mais vous aurez donc plusieurs possibilités sous Emacs :

      2 SHELLS

      • eshell, le plus emacsien des 2 : un shell 100% implémenté en elisp (!!!). On peut faire beaucoup de emacs dedans , mais tout ne fonctionnera pas. Ne lancez pas journalctl dedans ^^
      • shell. Même chose, ne lancez pas journalctl

      2 TERMINAUX

      • term / ansi-term. Cette fois c'est vraiment un terminal, mais… lent.
      • vterm. Ok cette fois c'est vraiment un terminal, et ça utilise une bibliothèque en C derrière, donc ouf un vrai terminal Emacs existe bel et bien. Attention vterm a besoin d'une bibliothèque.

      Oui je pense qu'il y a vraiment des utilisateurs du terminal sous Emacs. Et il est possible de trouver de petits benchmarks sur les réseaux comme par exemple reddit.

      Vim

      Qui a dit que vim n'était pas bloated et ne pouvait pas gérer cela? (À sa défense vim ne gère pas encore l'email.. ) Vim prend en charge le terminal depuis la version 8.1. Pour changer le shell dans vim, ajouter cette commande dans le fichier de config

      :set shell=/usr/bin/zsh
      

      Les indies

      Pourquoi utiliser le terminal de son bureau, ou de son éditeur de texte, alors que l'on peut utiliser un million d'autres ? Bienvenue dans la jungle. Ne m'en voulez pas si votre petit favori n'est pas listé ici, mais rajoutez sa description en commentaire - il a existé de bien trop nombreux concurrents, et même en se limitant aux projets actifs la liste est bien trop longue. La liste ici pourrait compléter cette dépêche.

      Je rappelle que sont listés ici les terminaux qui sont proposés par défaut sous certains gestionnaires de fenêtre, le parti pris étant que dans ce cas il n'y ait pas d'intégration particulière, contrairement par exemple au terminal KDE.

      Enfin la liste se veut à moitié lister les terminaux populaires actuels, à moitié lister quelques terminaux plus pour un intérêt historique, mais cette dépêche n'étant pas une thèse cette volonté sera assez peu rigoureuse.

      Blackbox

      Blackbox terminal n'est pas affilié à GNOME ni un terminal officiel mais est développé avec cet environnement en tête. Il utilise Gtk4.

      Ptyxis

      Là c'est un cas à part : pour reprendre sans recul le readme.md :

      A modern terminal emulator built for the container era.
      Seamlessly navigate between your host system and local containers like Podman,
      Toolbox, and Distrobox with intelligent detection and a beautiful, responsive
      GNOME interface.

      L'intérêt est donc d'intégrer les conteneurs de toutes sortes pour y accéder rapidement (et les définir rapidement).

      Ptyxis

      Il semblerait qu'il puisse devenir le terminal par défaut sous Ubuntu (25.10?).

      St

      La philosophie de st, dont la première release, 0.1, est de 2017, c'est de rester simple et léger - le point que son site discute, c'est le nombre de lignes de codes limité que devrait avoir un terminal. Son auteur serait fainéant ? Ce terminal sous licence MIT/X Consortium s'apparente à mon sens à un reliquat du passé : il tourne sur X et uniquement sur X (oui, oui je sais pour Xwayland). Néanmoins il m'a paru logique de le citer ici.

      Kitty

      Kitty a une place importante car il a légué quelque chose aux successeurs… Il implémente en effet des extensions venant étendre le protocole historique.

      Ce terminal tourne sous Python et requiert OpenGL. Malgré son âge (première release 2017), c'est le choix par défaut pour Hyprland.

      Kitty offre une tonne de raccourcis claviers, gère les onglets/fenêtres, peut afficher des images, sait afficher des notifications et bien d'autres choses. En terme de philosophie, il se veut orienté power-user.

      Alacritty

      Alacritty se veut un terminal simple et est écrit en Rust. Il est sortit en 2017. Alacritty respecte XDG en cherchant en priorité un fichier de config $XDG_CONFIG_HOME/alacritty/alacritty.toml.

      C'est le terminal par défaut pour au moins deux gestionnaires de fenêtre Wayland très différents l'un de l'autre : Wayfire et Niri.

      • vi mode : appuyez sur control + shift + space et vous passez dans le mode "normal" de vi (par opposition au mode insertion). Les touches au lieu de permettre de taper du texte, permettront alors de se déplacer, sélectionner du texte, le copier…
      • ctrl shift o pour afficher des "hint" sur les URL, ce qui permet de les activer en 1 touche
      • recherche normal (ctrl shift f ) , recherche vi
      • multi fenêtre (spawn new instance)
      • theme https://github.com/alacritty/alacritty-theme

      Pas d'onglet, pas de split — utiliser un multiplexeur au besoin.

      Foot

      Ce serait un peu le successeur de St, au sens où il est codé en C et les premières fonctionnalités mises en avant sont la légèreté et la performance, mais en natif Wayland. Pour autant Foot n'est pas avare sur certaines fonctionnalité. Sa première release est de 2019. C'est le terminal par défaut pour Sway, Dwl.

      Il faudra le configurer à l'aide d'un fichier texte, et foot respectant XDG, ce sera ici $XDG_CONFIG_HOME/foot/foot.ini. Foot propose pas mal de raccourcis claviers, dont le même Hint mode que Alacritty : taper Ctrl Shift O .

      Au cas où il ne serait pas assez léger, Foot propose un mode serveur.

      Wezterm

      De nouveau un terminal en Rust. Wezterm se veut complet, et cross-platform. Il affiche des images, gère les hyperliens, la connexion en SSH avec un client intégré, fait office de multiplexeur.

      Il se configure en Lua.

      Ghostty

      Ghostty

      Ghostty est sous licence MIT. LWN l'a présenté. Il s'agit d'une application récente, début en 2022, v1.0 fin 2024.

      Une barre gtk4 permet d'afficher les onglets, d'en créer un nouveau. Sympatique fonction, ghostty +list-keybinds --default montre toutes les options (et un raccourci permet d'éditer le fichier de config). On peut aussi lister les thèmes avec ghostty +list-themes.

      Peut afficher des gifs, comme Kitty.

      Ghostty se veut un compromis entre la vitesse, les fonctionnalités, l'interface, et cross-platform. Il se veut agréable sans avoir besoin de modifier le paramétrage par défaut. Et il est petit, le paquet Debian par exemple fait 113 Ko.

      Vous pouvez changer le shell sous Ghostty :

      ~/.config/ghostty/config:
      command = /usr/local/bin/fish --login --interactive
      
      

      De plus Ghostty intègre des fonctionnalités "Shell-integration".

      Rio

      (2022)
      https://github.com/raphamorim/rio
      vi mode, hyperlinks, images,

      Le shell peut être modifié dans la config, plusieurs exemples sont fournis

      [shell]
      program = "pwsh"
      args = ["-l"]

      Warp

      Alors là on bascule du côté obscur de l'IA !… et du proprio. Warp est d'abord une entreprise, qui a souhaité réimaginer un outil des développeurs - le terminal. Ce terminal, écrit en Rust, ne sera pas open source : https://github.com/warpdotdev/Warp/discussions/400

      À la première ouverture, Warp suggère d'ouvrir un compte « pour bénéficier de toutes les fonctionnalités ». Ensuite, on ne se trouve pas directement dans une console mais Warp propose plutôt d'ouvrir / cloner un projet. Un raccourci permet cependant de lancer une session normale…
      … Si ce n'est qu'outre des commandes, on peut taper des phrases ! En passant par Claude pour les interpréter… L'IA peut également suggérer des commandes en se basant sur votre historique. Tout ceci peut être désactivé dans les paramètres. Les fonctionnalités IA requièrent une connexion Internet.

      J'ai par exemple testé "Install Wave term from the internet". Warp a commencé par vérifier s'il y avait une commande de disponible "yay", mais cette commande n'était pas dispo sur mon système. Il a alors intelligemment testé d'autres gestionnaires de AUR et a trouvé que paru était installé. De là, il a découvert waveterm dans les dépôts AUR et m'a suggéré d'utiliser paru -S waveterm-bin (control+entrée pour valider, et gogogo). Une fois ces folies passées, on revient à une expérience normale où la commande se déroule (pensez à lire les AUR avant d'installer aveuglément !)

      Quand vous parcourez un projet, Warp peut indexer ces projets pour améliorer les suggestions.

      Au lieu d'utiliser votre clavier pour taper, Warp peut reconnaître votre voix. Outre des commandes ou des phrases, il est possible de commencer par un "/" pour taper une "slash command".

      Il y a également des fonctionnalités d'équipe, notamment une fonctionnalité de collaboration en temps réel. Certaines fonctionnalités sont payantes.

      Warp propose un certain nombre de fonctionnalités classiques : personnalisation du prompt, apparence, raccourcis claviers, …

      L'entreprise fournit un benchmark où Warp s'en sortirait aussi bien que Kitty ou Alacritty sur vtebench

      WaveTerm

      Waveterm est un peu la réponse open source à Warp (Apache 2.0).

      Quand on l'ouvre la première fois, c'est la foire ! à gauche, le panneau invite de commande qui occupe un tiers de l'écran.
      Tiers du milieu : en haut la consommation du CPU (hein?). Au milieu, un bout de page internet (hein?). En bas, un explorateur de projet. Tiers à droite : en haut, des raccourcis clavier qui s'affichent. Au milieu, un bout de doc sur Wave. En bas, une invite pour Wave IA. Bien sûr il s'agit d'une démo et il sera possible de personnaliser ce qui est visible au démarrage. Il est également possible lorsqu'on utilise un des "blocs" de le passer en mode "pleine fenêtre" puis le réduire par la suite.

      Bon, testons l'invite IA en demandant d'installer… Warp! Il commence par m'expliquer les différentes méthodes d'install en fonction de l'OS (ah ! il n'a pas détecté…). J'explique que j'utilise Arch et il me dit d'utiliser un AUR helper ou de cloner le dépôt du AUR. Mais il ne détecte pas si j'ai paru ou yay ou autre.

      On peut utiliser d'autres modules IA. Wave inclut également un explorateur de fichiers.
      Les paramètres se gèrent bloc par bloc - on paramètre d'un côté les blocs que l'on souhaite au démarrage, de l'autre pour un bloc donnée, par exemple les préférences.

      3. Liens

      Norme POSIX sur le shell

      https://linuxfr.org/news/gameshell-apprendre-les-rudiments-du-shell-en-s-amusant

      Bref cours sur le shell

      Cours plus complet sur le Bourne Shell

      Revue de fish :

      Autre revue de Fish

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      🏆 Meilleures contributions LinuxFr.org : les primées de septembre 2025

      Nous continuons sur notre lancée de récompenser celles et ceux qui chaque mois contribuent au site LinuxFr.org (dépêches, commentaires, logo, journaux, correctifs, etc.). Vous n’êtes pas sans risquer de gagner un livre des éditions Eyrolles, ENI et D-Booker. Voici les gagnants du mois de septembre 2025 :

      Les livres gagnés sont détaillés en seconde partie de la dépêche. N’oubliez pas de contribuer, LinuxFr.org vit pour vous et par vous !

      Les livres 📚 sélectionnés

      Bandeau LinuxFr.org

      Certaines personnes n’ont pas pu être jointes ou n’ont pas répondu. Les lots ont été réattribués automatiquement. N’oubliez pas de mettre une adresse de courriel valable dans votre compte ou lors de la proposition d’une dépêche. En effet, c’est notre seul moyen de vous contacter, que ce soit pour les lots ou des questions sur votre dépêche lors de sa modération. Tous nos remerciements aux contributeurs du site ainsi qu’aux éditions Eyrolles, ENI et D-Booker.

      Logo éditions ENI Logo éditions Eyrolles Logo éditions B-BookeR
           

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Lettre d'information XMPP d'août 2025

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

      Bannière de la lettre d'information XMPP

      Bienvenue dans la lettre d'information XMPP, ravie de vous retrouver ! Ce numéro couvre le mois d'août 2025.

      Tout comme cette lettre d'information, de nombreux projets et leurs efforts au sein de la communauté XMPP sont le résultat du travail bénévole de certaines personnes. Si vous êtes satisfait des services et des logiciels que vous utilisez, n'hésitez pas à les remercier ou à aider ces projets ! Vous souhaitez soutenir l'équipe de la lettre d'information ? Lisez en bas de page.

        Sommaire

        Vidéos

        Articles XMPP

        Actualités des logiciels XMPP

        Clients et applications XMPP

        • Cheogram a publié sa version 2.19.0-1 pour Android. Consultez le journal des modifications pour tous les détails.

        • Conversations a publié ses versions 2.19.3 et 2.19.4 pour Android. Cette version améliore la performance sur les gros salons publics, une nouvelle page « discussions vides » au lieu de rediriger vers l'écran « nouvelle discussion », et l'exigence d'utiliser TLS 1.3 pour toutes les connexions, avec un paramètre pour le désactiver, entre autres corrections et améliorations. Vous pouvez consulter le journal des modifications pour tous les détails.

        • Converse.js a publié sa version 12.0.0 de son client web open-source, avec divers améliorations et corrections de bogues. Plusieurs modifications "sous le capot" concernent des corrections touchant OMEMO, l'usage de rspack au lieu de webpack, publiant un build ESM de la version "headless" de la bibliothèque, et utilisant une mise à jour de la liste de fournisseurs issue de providers.xmpp.net pour l'enrôlement en ligne. Référez vous à la page de la publication pour l'ensemble des modifications !

        • Gajim a publié sa version 2.3.4 de son client XMPP gratuit et bourré de fonctionnalités. Cette publication ajoute le support des fuseaux horaires dans les profils, améliore la gestion du glisser-déposer, active l'affichage des messages longs, et corrige un bon nombre de petits bogues. Vous pouvez consulter le journal des modifications pour l'ensemble des détails. Merci pour toutes vos contributions !

        • Monal a publié sa version 6.4.13 pour iOS et macOS.

        • Monocles a publié sa version 2.0.13 de son client pour Android, embarquant moult améliorations telle que la refonte du retrait et modération des messages (les messages et fichiers retirés le sont désormais des 2 cotés), un redesign de la bulle de message, afficher toutes les images en haute définition, une nouvelle option pour importer ses propres stickers et GIF, entre autres fonctionnalités et corrections de bogues. Consultez le journal des modifications pour tous les détails !

        • Profanity a publié sa version 0.15.1 de son populaire client XMPP pour console. Vous pouvez lire tous les détails concernant cette publication dans le journal des modifications.

        • Prose a publié ses versions 0.12.0 et 0.12.1 de son client web prose-app-web ! Vous pouvez lire tous les détails dans l'annonce de publication.

        • Psi+ a publié les versions 1.5.2109 à 1.5.2114 de sa branche de développement du client XMPP Psi.

        • XOWS a publié ses versions 0.9.9 et 0.9.9b de son client web XMPP Over WebSocket, avec un grand nombre de corrections et quelques nouvelles fonctionnalités.

        XOWS 0.9.9.b: incrustation automatique des images, vidéos et sons

        Serveurs XMPP

        Bibliothèques et outils XMPP

        Extensions et spécifications

        La XMPP Standards Foundation développe des extensions pour XMPP dans sa série XEP en plus des RFC XMPP. Des développeuses, développeurs et experts en standards du monde entier collaborent sur ces extensions, en élaborant de nouvelles spécifications pour des pratiques émergentes et en affinant des méthodes existantes. Proposées par n’importe qui, celles qui rencontrent un grand succès deviennent Finales ou Actives, selon leur type, tandis que d’autres sont soigneusement archivées comme Reportées. Ce cycle de vie est décrit dans XEP-0001, qui contient les définitions formelles et canoniques des types, états et processus. En savoir plus sur le processus des standards. La communication autour des standards et des extensions a lieu sur la liste de diffusion des standards (archive en ligne).

        Extensions proposées

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

        • Aucune XEP proposée ce mois-ci.

        Nouvelles extensions

        • Aucune nouvelle XEP ce mois-ci.

        Extensions déférées

        Si une XEP expérimentale n’est pas mise à jour pendant plus de douze mois, elle sera retirée de la catégorie Expérimental pour être classée comme Déférée. Si une mise à jour intervient, la XEP sera replacée dans la catégorie Expérimental.

        • Aucune XEP déférée ce mois-ci.

        Extensions mises à jour

        • Version 1.2.3 de XEP-0167 (Jingle RTP Sessions)

          • Redéfini l'attribut ssrc en tant que xs:unsignedInt (32-bit) au lieu de xs:string pour être cohérent avec la RFC3550. (lnj)
        • Version 1.6.3 de XEP-0198 (Stream Management)

          • Suppression des éléments résiduels <optional/> et <required/> dans l'élément <sm/> (egp)
          • Version 0.3.0 de XEP-0317 (Hats)
          • ajout des processus de création et de destruction de casquettes ;
          • ajout du paramètre optionnel hue;
          • ajout du signalement des casquettes en même temps que la presence dans les salons;
          • finalisation de disco#info ;
          • clarification de la manière dont le service devrait propager les mise à jour de casquettes;
          • correction de typos ;
          • standardisation des champs de formulaire; (tj)
        • Version 1.0.4 de XEP-0388 (Extensible SASL Profile)

          • le schéma doit utiliser all au lieu de sequence (dg)
        • Version 0.4.0 de XEP-0455 (Service Outage Status)

          • suppression des dernières références à pubsub, ajout de considérations concernant l'accessibilité (mp)

        Derniers appels

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

        • Aucun dernier appel ce mois-ci.

        Extensions stables

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

        Extensions dépréciées

        • Aucune XEP n’a été dépréciée ce mois-ci.

        Extensions rejetées

        • Aucune XEP n’a été rejetée ce mois-ci.

        Partagez les nouvelles

        N'hésitez pas à partager ces nouvelles sur d'autres réseaux :

        Consultez également notre flux RSS !

        Vous recherchez des offres d’emploi ou souhaitez engager une personne en tant que consultante professionnelle pour votre projet XMPP ? Consultez notre tableau des offres d’emploi XMPP.

        Contributions et traductions de la lettre d'information

        Il s’agit d’un effort communautaire, et nous souhaitons remercier les bénévoles pour leurs contributions. Le bénévolat et les traductions dans d'autres langues sont les bienvenus ! Les traductions de la lettre d'information XMPP seront publiées ici (avec un certain délai) :

        • Anglais (original) : xmpp.org
          • Contributions générales : Adrien Bourmault (neox), Alexander "PapaTutuWawa", Arne, Badri Sunderarajan, Benson Muite, cal0pteryx, emus, Federico, Gonzalo Raúl Nemmi, Jonas Stein, Kris "poVoq", Licaon_Kter, Ludovic Bocquet, Mario Sabatino, melvo, MSavoritias (fae,ve), nicola, Schimon Zachary, Simone Canaletti, singpolyma, XSF iTeam
        • Français : jabberfr.org et linuxfr.org
          • Traducteurs : Adrien Bourmault (neox), alkino, anubis, Arkem, Benoît Sibaud, mathieui, nyco, Pierre Jarillon, Ppjet6, Ysabeau
        • Allemand : xmpp.org
          • Traducteur : Millesimus
        • Italien : notes.nicfab.eu
          • Traducteur: nicola
        • Portugais : xmpp.org
          • Traducteur : Paulo
        • Espagnol : xmpp.org
          • Traducteur : Gonzalo Raúl Nemmi

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Dans le coffre aux trésors d’Unicode 17 : des chameaux et un trombone

        La version 17 d’Unicode est sortie le 9 septembre. Elle ajoute quatre systèmes d’écriture à son répertoire, quelques émojis et divers symboles plus ou moins ésotériques. Elle apporte aussi quelques modifications techniques. Avec les 4 803 caractères ajoutés, le répertoire Unicode en compte maintenant 159 801.

        Selon l’expression consacrée, cette version annule et remplace la précédente.

        Les émojis ajoutés à la version 17

        Sommaire

        Les systèmes d’écritures nouvellement adoptés

        Les quatre systèmes d’écriture ajoutés ont des origines géographiques et historiques très diverses.

        Le Sidétique : une écriture âgée de plus de 3200 ans

        Le Sidetique est un système d’écriture très ancien et qui remonte à l’âge de fer (soit environ 1 200 ans avant notre ère) qui était utilisé en Anatolie. C’est un système alphabétique composé de vingt-neuf lettres ; voyelles et consonnes très inspiré du grec. On le retrouve essentiellement sur des inscriptions en pierre et des pièces de monnaie. La création d’une police de caractères pour le sidétique est un des projets de l’Atelier National de Recherche Typographique (ANRT) à Nancy.

        La proposition d’intégration du sidétique (PDF en anglais) à Unicode date de janvier 2023. Elle concerne vingt-neuf lettres différentes plus trois lettres additionnelles et est maintenant rangée dans les blocs 10940 à 1095F.

        Le Tolonge de Siki, à peine un quart de siècle

        Le Tolonge de Siki est un système d’écriture nettement plus récent puisque sa première publication date de 1999. Il a été créé par un physicien indien, le Dr Narayan Oraon, assisté du directeur de l’Institut central des langues indiennes (Central Institute of Indian Languages) de l’époque Francis Ekka, du précédent Vice-chancelier de l’université Ranchi dans l’État du Jarkhand et de Nirmal Minz. L’idée était de concevoir une écriture pour le Kuruth, la langue du Jarkhang, un État du Nord-est de l’Inde. Il comporte trente-cinq consonnes et six voyelles et s’écrit de gauche à droite. La demande d’intégration de l’alphabet Tolonge a été soumise au consortium Unicode (fichier PDF en anglais) en janvier 2023. Une police de caractère ainsi qu’une image de la disposition de clavier peuvent être téléchargées (EN) sur le site qui promeut la langue Kuruth (EN).

        Les blocs Unicode 11DB0 à 11DEF lui sont attribués.

        Beria Erfe, une écriture inspirée du marquage des chameaux

        Le peuple Béri1, est une ethnie dont les membres se répartissent géographiquement entre les régions de Wadi-Fira et de l’Ennedi au nord-est du Tchad et la région du Darfour au nord-ouest du Soudan. Les Arabes les appellent Zaghawa, nom sous lequel le peuple Béri apparaît dans Wikipédia. Une appellation d’autant plus inadaptée qu’elle ne concerne, selon les historiens, qu’une partie du peuple Béri. La société Béri est de type clanique et chaque clan a ses marques spécifiques pour ses animaux, essentiellement des dromadaires.

        Dans les années 1950, un instituteur, Adam Tajir a créé une écriture basée sur le marquage des dromadaires des clans (EN) Béri et que d’aucuns ont appelé « écriture des chameaux ». Cette écriture a fait ensuite l’objet d’amélioration en 2000. À la suite de quoi, l’écriture a été bien adoptée et présentée au Consortium Unicode en janvier 2024 (PDF, EN), par, notamment, l’auteur des modifications, un vétérinaire béri Siddick Adam Issa, sous le nom de « Beria Erfe ». L’alphabet se lit de gauche à droite et comporte vingt-cinq lettres, soit une collection de cinquante caractères en tout comprenant des minuscules et des majuscules. Il utilise aussi des signes diacritiques. Visuellement il fait un peu penser au Tiffinagh.

        Pour que cet alphabet soit pleinement utilisé avec les outils d’écriture modernes il fallait une fonte et une disposition de clavier. Une image de cette dernière figure dans la proposition soumise à Unicode. Une police de caractère a été créée en 2007 sous l’égide du SIL (EN). Cette version ne répondait pas aux standards d’Unicode, mais on peut récupérer la version actuelle sur la page du projet Kedebideri (EN). Debian propose aussi un paquet mais qui n’est pas (pas encore ?) encodé selon les standards d’Unicode.

        Les blocs Unicode 16EA0 à 16EDF lui sont attribués.

        Le Tai Yo une écriture thai du Vietnam

        Les Thai sont une minorité ethnique importante du Vietnam qui dispose de cinq écritures : le Tay noir, le Tay blanc, le Tay Dèng, le Tay yo qui vient de faire son entrée dans le registre Unicode et le Lai pao qui n’est plus utilisé.

        L’écriture Tai Yo (PDF en anglais) :

        occupe une place très à part dans l’ensemble des écritures thai du Vietnam. Elle s’écrit verticalement, de haut en bas, et les lignes se succèdent de droite à gauche sur le modèle de l’écriture chinoise. Les manuscrits se consultent en tournant les pages de la gauche vers la droite comme les anciens livres chinois. (Michel Ferlus Les Écritures thai du Vietnam in : Cahiers de linguistique - Asie orientale, vol. 35 2, 2006. pp. 209-239.)

        Elle compte vingt-neuf consonnes plus huit qui sont placées uniquement en dernière position et treize voyelles ainsi que neuf signes indiquant une voyelle en position finale.

        La police Tai Yo a été ajoutée à la collection des polices Noto de Google. Il existe également une disposition de clavier pour ordinateur. Les deux sont téléchargeables (EN) sur le site de Tools for indigenous languages on the web (outils pour les langues indigènes sur le web).

        La demande d’intégration du Tay Yo à la norme Unicode a été faite en décembre 2022. Il occupe les blocs : 1E6C0 à 1E6FF.

        Les autres ajouts, et ce qui ne figure pas dans cette version

        Les émojis

        Pas forcément l’aspect le plus intéressant d’Unicode, mais, au moins, le plus amusant. La version 17 (EN) nous en propose des sympathiques et qui figurent dans la police Noto Color empoji (EN). Ce sont :

        • un visage déformé pour marquer l’anxiété, la panique, la surprise, etc., U+1FAEA,
        • un nuage de bataille, du style de ce que l’on peut voir dans Astérix par exemple, U+1FAEF
        • une créature velue, un yéti en fait, U+1FACB,
        • une ballerine avec des variantes de couleur, U+1F9D1, U+200D et U+1FA70,
        • un personnage avec des oreilles de lapin U+1F46F, déclinable en plusieurs variantes,
        • des personnes en lutte (du catch ?), déclinable en plusieurs variantes, U+1F93C,
        • un orque U+1FACD,
        • une avalanche, U+1F6D8,
        • un trombone U+1FA8A, à ne pas confondre avec ceux qui traînent sur vos bureaux U+1F4CE et qui sont entrés dans l’Unicode en 2010,
        • et, pour finir et ranger tout ça : le coffre aux trésors U+1FA8E.

        Le trognon de pomme qui avait résisté vaillamment jusqu’à la version bêta d’Unicode 17 ne figure finalement pas dans la version définitive. Mozilla l’avait ajouté sous la forme d’une pomme croquée rappelant le logo d’Apple.

        Des symboles et des suppléments

        Cette version Unicode ajoute des caractères supplémentaires à l’écriture Sharada qui contient les caractères historiques du cachemiri, du sanscrit et de diverses autres langues du nord du sous-continent indien utilisés du 8e au 20e siècle. L’Inde, rappelons-le, recense 270 langues parlées dont 22 langues officielles. Ce supplément ajoute sept voyelles nécessaires pour un usage contemporain de l’écriture, bloc U+11B60 à U+11B7F.

        Le tangut (ou tangoute), un système d’écriture logographique d’un ancien peuple du nord-ouest de la Chine, se voit également doté d’un supplément de 128 caractères, U+18D00 à U+18D7F.

        Des points de code, U+323B0 à U+3347F, sont également ajoutés à l’extension J (pour japonais) des idéographies unifiés chinois-japonais-coréens portant à 4 298 le nombre de signes recensés. Il s’agit de caractères rares et historiques japonais, coréens et vietnamiens.

        Pour finir en majesté, cette version propose divers symboles supplémentaires, points de code U+1CEC0 à U+1CEFF, dont : seize symboles astronomiques (Flora U+ 1CEC, Victoria U+1CEC5 et Irène U+1CEC7 ont leur numéro de code), autant de symboles de géomancie (par exemple Lætitia U+CEE8 ou Rubeus U+1CEE4), quatre symboles de jeux d’échec et un symbole divers qui se trouve être un cercle blanc de taille moyenne avec une barre horizontale utilisé en chimie : U+1CEF0.

        Et sur le plan technique ?

        Très peu de nouveautés ou de changements significatifs pour cette version.

        On peut noter la création d’une nouvelle de césure « Unambiguous_Hyphen (HH) » qui suit les modifications apportées au saut de ligne forcé : U+034F Combining grapheme joiner (combinaison de graphème), une nouvelle cédille U+00BB. Dans sa note de blog, Stéphane Bortzmeyer explique cela mieux que moi.

        On pourra peut-être relever aussi que les attributs pour les propriétés obsolètes : Gr_Link, Hyphen, isc, kGB7, kJa, XO_NFC, XO_NFD, XO_NFKC, XO_NFKD, FC_NFKC ont été supprimés et qu’une annexe a été ajoutée sur les principes d’encodage de la base de données des hiéroglyphes égyptiens.

        Remerciements (!?) et lectures complémentaires

        Cette dépêche n’aurait pas été écrite si, sur Mastodon, Stéphane Bortzmeyer ne m’avait taguée pour me signaler que le trognon de pomme avait été éjecté d’Unicode 17. Ce qui m’importe assez peu à vrai dire, sauf en ce qui concerne le fonctionnement d’Unicode. Mais comme j’ai quelques bonnes manières, je l’en ai remercié en lui demandant des nouvelles du système d’écriture maya, ce qui était une gaffe parce qu’il m’a répondu en me parlant de l’écriture des chameaux. Un procédé parfaitement déloyal ! Mais j’imagine que je dois tout de même le remercier (j’ai appris plein de choses).

        Et comme pour cette dépêche j’ai pas mal lu, je vous inflige la liste de ce que j’ai parcouru ou lu en plus des liens in-texte au cas où vous voudriez aussi poursuivre la lecture :


        1. Selon les sources, Béri prend ou non un accent. Il en va de même pour Zaghawa qui est orthographié de différentes façons. 

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        🪶 Les journaux LinuxFr.org les mieux notés d'août 2025

        LinuxFr.org propose des dépêches et articles, soumis par tout un chacun, puis revus et corrigés par l’équipe de modération avant publication. C’est la partie la plus visible de LinuxFr.org, ce sont les dépêches qui sont le plus lues et suivies, sur le site, via Atom/RSS, ou bien via partage par messagerie instantanée, par courriel, ou encore via médias sociaux.

        Bannière LinuxFr.org

        Ce que l’on sait moins, c’est que LinuxFr.org vous propose également de publier directement vos propres articles, sans validation a priori de lʼéquipe de modération. Ceux-ci s’appellent des journaux. Voici un florilège d’une dizaine de ces journaux parmi les mieux notés par les utilisateurs et les utilisatrices… qui notent. Lumière sur ceux du mois d'août passé.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Pocket est mort, vive wallabag

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

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

        Une alternative à Pocket

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

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

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

        Mettre à jour votre instance

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

        La suite

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

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

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        muttum, un nouveau jeu de devinette de mots pour Linux

        muttum est un jeu libre dont le but est de retrouver un mot en quelques essais. La première lettre est fixe pour avoir des plateaux différents à chaque fois. Une première version de muttum est publiée sur Flathub depuis le début de l’été.

        Sommaire

        Histoire

        plateau de jeu

        Le projet muttum est né suite à la découverte des jeux Wordle et Sutom qui proposent également de deviner un mot une fois par jour dans le dictionnaire anglais pour le premier et français pour le second.

        J’ai décidé de me lancer dans l’aventure de développer muttum sur mon temps libre pour proposer le jeu de devinette sans avoir besoin d’Internet et pour pouvoir essayer plusieurs mots dans la même journée sans limitation artificielle.

        Une autre de mes motivations était d’apprendre à créer une application avec les bibliothèques GTK et GObject. J’avais déjà joué avec GTK quelques fois, mais je n’avais pas utilisé le concept des objets proposé par GObject et il me semblait que GObject pouvait simplifier l’utilisation des composant GTK complexes. Par exemple, après avoir implémenté la vue en table des budgets HomeBank, j’ai eu l’impression que ça aurait été plus facile de créer la table GTK si les données à afficher avait déjà été mises en forme avec GObject.

        Je voulais également essayer également d’utiliser le langage C directement, le langage utilisé par GTK, pour ne pas avoir besoin de dépendre des introspections (interfaces de GTK avec les autres langages de programmation, comme Python, C++…).

        C’est ainsi que le développement a commencé en février 2022 sous le nom temporaire LeBonMot avec une structure assez simple qui mélangeait le moteur logique du jeu et l’interface graphique dans un seul et même code source.

        Après quelques semaines de développement, j’ai trouvé le nom muttum et j’ai débuté la location du nom de domaine muttum.org en avril 2022 :

        $ rdap muttum.org
        Domain:
        Domain Name: muttum.org
        Domain Name (Unicode): > muttum.org
        […]
        Event:
        Action: registration
        Date: 2022-04-12T08:46:16.285Z

        muttum serait, d’après le Wiktionnaire, un nom commun latin qui signifie bruit, grognement et dont la dérivation en français a formé le nom commun mot. Cette information m’a bien plu puisque justement le but du jeu est de retrouver le bon mot et que, en plus, c’est un palindrome.

        Durant la même période, j’ai commencé une réorganisation du code pour séparer la partie moteur de calcul de la partie graphique, ce qui permettra dans le futur de développer plusieurs styles d’interface graphique. Pour l’instant muttum ne propose qu’une interface développée pour la plateforme GNOME, car elle dépend de la bibliothèque libadwaita.

        Quand je décide de faire cette séparation, j’ai deux idées d’interfaces  : une qui serait multi-plateforme en n’utilisant que GTK (sans libadwaita) et une interface web en utilisant WebAssembly pour utiliser le moteur de muttum. Pour l’instant, aucune de ces 2 interfaces n’a été développée. La version multiplateforme sera assez rapide à implémenter (il faut enlever libadwaita des dépendances) et la version web ne sera peut-être jamais utile finalement : depuis 2025 GTK propose un portage expérimental pour la plateforme Android.

        Gagné !

        Vers septembre 2022, je décide de séparer le code source dans deux répertoires différents: muttum ne contiendra que l’interface graphique et libmuttum ne contiendra que le moteur du jeu. Le travail est donc continué sur libmuttum jusqu’à fin janvier 2023 (séparation du moteur, ajout de tests pour le moteur…).

        Le projet est en pause complète jusqu’en novembre 2024, je ne sais plus pourquoi, mais certainement parce que les rénovations de ma maison ont débuté en 2023 et que je n’avais plus la tête à coder sur mon temps libre.

        En novembre 2024, le premier commit de la reprise indique que je reprends le code du moteur avec le langage Rust et ce pour plusieurs raisons :

        1. je souhaitais apprendre Rust et le code de ce moteur était un bon bac à sable pour apprendre un nouveau langage. Il m’avait d’ailleurs déjà permis d’apprendre à utiliser C et GObject ;
        2. je ne retrouve plus la référence exacte, mais un des développeurs principaux de GTK conseillait d’utiliser Rust pour débuter de nouvelles applications (c’était probablement l’article On Vala d’Emmanuele Bassi) ;
        3. les éditions ENI m’ont offert le livre Rust, Développez des programmes robustes et sécurisés pour une de mes contributions à LinuxFr.

        Enfin, en juin 2025, la première version publique a été publiée sur Flathub.

        Fonctionnalités

        muttum fonctionne avec des dictionnaires : ce sont des fichiers textes qui contiennent un mot connu par ligne et qui sont encodés en UTF-8. Les dictionnaires distribués avec la version Flathub proviennent des projets:

        • wfrench pour le français
        • scowl pour les dictionnaires anglais
        • igerman98 pour les dictionnaires allemands

        muttum permet aux distributeurs de définir n’importe quel dictionnaire avec un fichier de configuration. Ceci permet aux empaqueteurs d’utiliser les paquets déjà existant pour les dictionnaires et de donner le chemin à charger pour chaque langue. Ce fichier de configuration est également utilisé dans le dialogue À propos des dictionnaires pour créditer les projets qui ont créé les dictionnaires.

        À propos des dictionnaires

        muttum sait gérer l’alphabet latin, mais il est architecturé pour définir d’autres alphabets. Pour ce faire, il faut définir les caractères de base. muttum utilise cette liste pour filtrer les caractères entrés par l’utilisateur et pour filtrer les mots valides.

        À mesure que l’utilisateur essaie des mots différents, muttum met à jour l’alphabet affiché en dessous du plateau pour indiquer si toutes les occurrences d’une lettre ont été trouvées (couleur verte), si des occurrences ont été trouvées et qu’il pourrait en exister plus (couleur orange) ou si une lettre n’existe pas dans le mot (couleur grise).

        Limitations

        muttum nécessite un clavier pour saisir les caractères, il n’y a pour l’instant pas de possibilité de saisir les caractères avec un écran tactile. L’écran doit aussi être assez grand pour pouvoir afficher le plateau complètement, donc pour l’instant il n’est pas utilisable sur les smartphones.

        muttum n’applique pas de filtres sur les mots des dictionnaires, il contrôle uniquement qu’un mot est valide selon l’alphabet défini. Par exemple, il est conseillé qu’un dictionnaire contienne les conjugaisons complètes des verbes et donc un mot à deviner peut être n’importe quelle forme du verbe.

        Développements futurs

        Pour l’instant, je vais faire une pause dans le développement de ce jeu, parce que je souhaite travailler sur d’autres projets.

        Néanmoins, j’ai déjà quelques idées pour la suite de ce projet :

        1. ajouter un dialogue pour expliquer comment jouer (utilisation du clavier), la signification des couleurs et la mise à jour de l’alphabet sous le plateau
        2. ajouter un chronomètre en sous-titre de la fenêtre et afficher le temps pour terminer le plateau dans le dialogue de fin de jeu
        3. dans le dialogue de fin, j’aimerai ajouter un bouton de partage comme le fait Sutom. Pour que ce soit intéressant, il faudra que j’ajoute un lien pour que les amis puissent essayer le même plateau. Donc il faut que muttum gère le schéma d’application muttum:// et il faudrait mettre le mot à trouver encodé en base64 et les paramètres du plateau dans le lien
        4. vers la fin du projet, j’ai appris l’existence de l’option pedantic pour le linter clippy et je voudrais corriger les points qu’il remonte pour avoir un meilleur style de code.
        5. la bibliothèque icu a sorti une nouvelle version majeur, il faudrait mettre à jour le code de muttum pour celle-ci.
        6. rendre l’application compatible avec les smartphones. Ça passera sûrement par l’utilisation d’entrées textes à la place des labels dans le plateau, cacher l’alphabet par défaut et rendre le plateau défilable.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        LinuxFr.org rejoint l'Open Source Initiative

        L'Open Source Initiative (OSI), fondation qui a défini et maintient la définition officielle de l'Open Source, et LinuxFr.org ont le même âge, à cinq mois près. Toutes deux sont nées en 1998, LinuxFr.org le 28 juin et l'OSI en février 1998. Nous avons fêté nos 20 ans ensemble à Paris Open Source Summit et depuis, nous nous retrouvons régulièrement autour de cupcakes, de bières ou toute autre occasion festive.

        LinuxFr.org et l'OSI célébrant leurs 25 ans communs en 2023

        Mais il était temps d'aller un cran plus loin. LinuxFr.org (via l'association LinuxFr) devient membre de l'Open Source Initiative (OSI), comme organisation affiliée. Cela vient renforcer le lien avec les communautés du logiciel libre et de l'Open Source francophones et mettre en valeur les initiatives locales soutenant une collaboration ouverte dans le monde.

        « Après d'innombrables célébrations d'anniversaire aux côtés de l'Open Source Initiative, LinuxFr.org est fier d'unir ses forces en tant qu'organisation affiliée. À une époque où l'Open Source est confrontée à des défis quotidiens, ce partenariat est essentiel pour mettre en avant des valeurs communes. Ce n'est qu'en rapprochant nos communautés que nous pourrons préserver et promouvoir les libertés que nous défendons tous deux. » – Florent Zara, membre du conseil d'administration de LinuxFr

        L'OSI se réjouit « de collaborer avec [LinuxFr.org] pour soutenir notre engagement commun en faveur de l'Open Source. Leur participation renforce notre réseau international et souligne l’importance de nourrir les cultures Open Source dans toutes les langues et toutes les régions. »

        Les cupcakes et la cuvée spéciale des 25 ans !

        Les cupcakes et la cuvée spéciale des 25 ans !

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Elpe, un compromis entre NixOS et Ubuntu

        Je travaille depuis quelque temps sur Elpe, un projet qui vise à obtenir les bonnes propriétés de Nix/NixOS (les mises à jour atomiques, la reproductibilité), mais avec des paquets Ubuntu.

        Le code : https://nest.pijul.com/pmeunier/elpe

        L'idée est de définir des recettes de compilation en OCaml et de les envoyer à un backend Rust, qui se charge de les exécuter dans un conteneur sans réseau, en exposant uniquement le contexte nécessaire à la bonne exécution de la compilation. Les produits du build sont indexés par le contenu de la recette du build, et indexés une deuxième fois par le résultat : c'est ce deuxième hash qui est utilisé dans les dépendants du paquet, ce qui permet de construire un arbre de Merkle du système complet (et non seulement de ses sources), qui rend toute modification ultérieure facilement détectable.

        De plus, le système de base provient des dépôts de paquet Debian ou Ubuntu. Cependant, tous les chemins sont hard-codés (comme dans Nix), ce qui permet de garantir la reproductibilité, au détriment toutefois du coût de mise à jour en termes d'espace et opérations disque.

        Si le choix de Rust devient relativement consensuel par les temps qui courent, OCaml est plus surprenant. Après divers essais avec plusieurs langages, je l'ai choisi parce que c'est le seul langage avec à la fois :

        • Une bonne approximation du système de types dont j'avais besoin: typage nominal et aussi structurel, entre autres.
        • Un système de types relativement simple (pas de typeclasses ni de monades comme en Haskell, de borrow checkers comme en Rust ni de types dépendants comme en TypeScript).
        • Du late binding, nécessaire pour exprimer des "overrides" et des "hooks", courants quand on veut compiler des choses (autoconf et make ont plein d'options de ce type, par exemple).
        • Un compilateur ultra-rapide.
        • Un bytecode, pour (dans le futur) contrôler aussi l'isolation du code de build de façon très légère.

        La simplicité et l'expressivité d'OCaml sont bien adaptés à ce projet: les fonctions simples à concevoir y sont relativement claires à énoncer.


        Pourquoi pas NixOS, me direz-vous ? En tant qu'utilisateur et contributeur depuis environ 10 ans, un certain nombre de problèmes plus ou moins récents m'ont motivé à explorer une alternative:

        • En termes de gouvernance, la communauté a traversé dans la dernière année plusieurs crises de différentes tailles (Anduril, Devenv…). On pourrait y voir un signe de maturation ou au moins de croissance du projet, mais plusieurs éléments me permettent d'en douter, dont les réactions répétées de la fondation Nix, qui semble avoir beaucoup de mal à comprendre les messages pourtant clairs des contributeurs.

        • Je vois aussi les choix de design imposés par les fondateurs du projet depuis quelques années comme un bien mauvais signe: les flakes (en 2020) étaient une première incarnation de cette tendance, et plus récemment la "distribution propriétaire" de Nix est clairement une mauvaise idée, alors que la qualité de code de Nix n'est pas au niveau où on l'attendrait et que le gros du projet repose depuis plusieurs années sur le travail pharaonique des contributeurs de Nixpkgs.

        • On pourrait parler longtemps de la sécurité de Nix, qui me fait de plus en plus peur y compris pour mon usage personnel. Les process de gestion des rapports ne me conviennent pas, de même que l'opacité de certains choix techniques (les flags de compilation désactivés sur certaines plateformes, entre autres), souvent bien cachés dans les entrailles de Nixpkgs.

        • Enfin, le langage trop complexe à utiliser (principalement par manque de typage statique et de messages d'erreurs pertinents) rend Nix difficile à utiliser au sein d'une organisation d'une taille importante, et encourage les comportements peu inclusifs (éviter d'écrire de la doc, inventer des casse-têtes pour faire des choses simples…). Je suis bien sûr conscient que des entreprises (comme Anduril) et des ONGs (comme Médecins Sans Frontières) l'utilisent, mais je ne pense pas que ce soit généralisable aux situations où j'aimerais voir ce genre de projet utilisé.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        QEMU 10.0

        Comme tous les ans, Qemu sort une nouvelle version majeure. Le numéro n'implique donc pas de grands bouleversements. Il s'agit plutôt d'une base stable qui va être maintenue et améliorée pendant quelques années. Ainsi, les versions 7, 8 et 9 ont eu des mises à jour en mars 2025.

        Comme d'habitude, les architectures ARM et Risc-V se taillent la part du lion et sont enrichies de nouvelles architectures. Les accès aux stockages sont partout plus rapides, et l'espace utilisateur accède toujours mieux au matériel.

        Qemu est devenu une pièce importante dans le monde des serveurs et des développeurs. En tant qu'émulateur il permet de développer, compiler ou lancer un programme sur un processeur ou une machine différente. Couplé à KVM, XEN ou VMWare, il permet une virtualisation performante.

        Quoi de neuf ?

        L'article de Next résume bien les changements sur ARM et Risc-V. C'est technique, n'étant pas connaisseur je vous y renvoie.

        x86 bénéficie de changements globaux à toutes les architectures avec quelques ajouts spécifiques pour des processeurs Intel. Mon petit doigt impatient de tester me souffle que ça sera plus rapide avec des accès "multithread1" aux périphériques de stockage (virtio-scsi et virtio-blk). L'accès direct au matériel en espace utlisateur continue de s'améliorer (VFIO, fonctions virtuelles d'entrées-sorties).

        Les autres changements concernent l'émulation des architectures HPPA et S390.

        Attention aux trucs enlevés

        À chaque version ou presque, des morceaux sont enlevés. Si vous faites dans l'exotique, ne vous précipitez pas sur la dernière version sans consulter la liste des Removed features.

        Documentation d'introduction pour QEMU et la virtualisation

        En guise de conclusion, voici quelques pistes pour ceux et celles qui débutent avec la virtualisation sous Linux et/ou QEMU. Différentes distributions Linux ont de la documentation sous licence libre. Loin d'être exhaustif, voici quelques choix :


        1. Qu'on me pardonne ce mot, je simplifie pour faire court! 

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Kivy : un cadriciel graphique unique en Python

        Kivy est un cadriciel (framework) graphique, permettant de développer des interfaces tactiles (ou utilisable à la souris) sur toutes les plateformes, y compris mobiles. Il s'accompagne d'une suite de logiciels très pratiques que nous allons présenter ici.

        logo Kivy

        Sommaire

        Kivy : boîte à outils graphique multi-plateformes

        Kivy permet de créer des interfaces graphiques naturellement adaptées aux écrans tactiles (mais qui restent utilisables sur un environnement de bureau traditionnel, à la souris et sans écran tactile). Il est écrit principalement en Python mais les parties critiques sont écrites en Cython, ce qui lui permet d’avoir de bonnes performances.

        Une interface Kivy peut s’écrire de deux façons (ou, plus couramment, par une combinaison de ces deux façons) : en Python directement, ou via kv, une syntaxe déclarative dont nous parlons plus bas.

        Pour vous donner une idée, voici un exemple de hello world repris du site officiel de Kivy :

        from kivy.app import App
        from kivy.uix.button import Button
        
        class TestApp(App):
            def build(self):
                return Button(text='Hello World')
        
        TestApp().run()

        Ce qui donnera :
        capture d’écran du hello world

        Une interface est composée de « widgets » agencés via des « layouts ». Certains widgets permettent de facilement mettre en place des composants communs de nos jours, comme par exemple le widget Carousel :
        capture d’un widget Carousel

        D’autre part, Kivy fournit des outils qui simplifient la vie du développeur ou de la développeuse, en particulier un système de propriétés (à ne pas confondre avec les propriétés Python) qui permet de mettre automatiquement l’interface à jour quand elles sont modifiées, ou de facilement attacher une fonction de rappel (« callback »), voir plus bas pour un exemple simple. On peut aussi citer un mécanisme d’animations très pratique et efficace.

        kv : interface graphique en déclaratif

        kv est un langage permettant de décrire des interfaces, il met à profit les propriétés mentionnées plus haut et l’interface va se mettre à jour automatiquement quand des propriétés utilisées dans kv sont modifiées.

        Reprenons le hello world vu plus haut, et faisons-le avec kv:

        Widget:
            Button:
                text: "Hello World"
        

        Plutôt simple non ?
        Le code kv est généralement mis dans des fichiers séparés avec l’extension .kv.

        Les propriétés

        Kivy a donc un concept de propriété, qui permettent la liaison de données bidirectionnelles (two-way data binding), ou en d’autres termes de facilement avoir l’état mis à jour entre le code python et l’interface décrite dans le fichier kv. C’est à l’usage très pratique et facile.

        Un exemple va sans doute aider à comprendre.

        Commençons par faire un environnement virtuel Python avec Kivy:

        $ mkdir demo
        
        $ cd demo
        
        $ python -m venv env
        
        $ source env/bin/activate
        
        $ pip install kivy

        Ensuite créez le fichier demo.py suivant :

        from kivy.app import App
        from kivy.uix.boxlayout import BoxLayout
        from kivy.properties import NumericProperty
        
        class CompteurWidget(BoxLayout):
            compteur = NumericProperty(0)
        
            def increment(self):
                self.compteur += 1
        
        class DemoApp(App):
            def build(self):
                return CompteurWidget()
        
        DemoApp().run()

        Et maintenant, dans le même répertoire, ajoutez le fichier demo.kv suivant, ce dernier sera automatiquement découvert par Kivy parce qu’il s’appelle comme notre application (DemoApp) sans le suffixe App et en minuscule :

        
        <CompteurWidget>:
            orientation: 'vertical'
            padding: 20
        
            Label:
                text: str(root.compteur)
                font_size: 30
        
            Button:
                text: "Incrémenter"
                on_press: root.increment()
        

        Il ne nous reste plus qu’à lancer le programme :

        python demo.py

        Et à admirer :

        capture d’écran du programme de démo

        Le label se met automatiquement à jour quand le compteur compteur est incrémenté.

        La lectrice ou le lecteur assidu de DLFP pourra faire un TapTempo en exercice.

        Note: Ne vous arrêtez pas au fait que l’UI est un peu "moche" par défaut, il y a des extensions beaucoup plus attractives (cf. KivyMD plus bas), et il est très facile de personnaliser l’interface et d’en faire une très belle en modifiant un peu ses fichiers .kv.

        Plyer : accéder facilement aux fonctionnalités matérielles de votre appareil

        Plyer est une bibliothèque permettant d’accéder à nombre de fonctions utiles de manière indépendante de la plateforme. Ainsi vous avez une API commune pour afficher une notification, demander l’état de la batterie, faire vibrer l’appareil, faire de la synthèse vocale de texte (« text-to-speech »), ouvrir un fichier avec le dialogue natif de la plateforme, etc.

        Bien que développé par la même équipe que Kivy, ce paquet est utilisable indépendamment et est donc particulièrement utile pour n’importe quel projet multi-plateformes. Référez-vous à la page du projet pour avoir un tableau des fonctionnalités supportées selon les plateformes, et à la documentation pour plus de détails.

        Python For Android : utiliser Python… sur Android

        Si vous souhaitez distribuer votre application sur Android, vous allez devoir avoir une version de Python compilée pour cette plateforme, ainsi que de tous les paquets nécessitant une compilation.

        C’est le rôle de Python pour Android, qui est une collection d’outils qui s’appuient sur l’Android SDK pour permettre d’utiliser Kivy ou d’autre paquets Python sur Android, et ainsi faire votre propre distribution Python.

        Si vous utilisez un paquet qui n’est pas en pur Python (c’est-à-dire qu’il y a des parties à compiler) et qui n’est pas encore disponible ou qui l’est mais dans une version trop ancienne, vous pouvez écrire ou mettre à jour des « recettes » (recipes en anglais) qui indiquent comment compiler. Référez-vous à la documentation pour voir comment faire.

        Notez toutefois qu’il y a une pénalité à utiliser du Python par rapport à une application dans un langage compilé : il faut charger l’interprète au démarrage, et au tout premier lancement de votre application (et uniquement au premier) il y a aura une phase de décompression de vos fichiers. En dehors de ces petits inconvénients, ça fonctionne très bien.

        Là encore, le projet est indépendant de Kivy et peut être utilisé avec un autre cadriciel.

        Kivy for iOS : déployez sur les appareils Apple

        À l’instar d’Android, l’équipe de Kivy fournit les outils pour faire votre distribution Python pour iOS.

        Il vous faudra posséder une machine Apple pour les utiliser, à cause des restrictions imposées par cette plateforme (ceci n’est pas spécifique à Kivy pour iOS, mais s’applique à tous les outils pour développer sur iOS).

        Ainsi avec une seule base de code (et après avoir passé un peu de temps pour configurer correctement les outils de compilation), vous pouvez déployer votre application Kivy/Python sur toutes les plateformes majeures (hormis le web, pour lequel il existe d’autres options comme Brython, Pyodide ou PyScript, mais c’est un sujet pour une autre dépêche).

        Pyjnius : utiliser l’API Java Android depuis Python

        Parfois l’utilisation de Plyer mentionné plus haut et de la bibliothèque standard Python ne suffisent pas, et vous avez besoin d’accéder à l’API d’Android, mais cette dernière est faite pour être utilisée avec Java ou Kotlin.

        Pour pouvoir utiliser l’API d’Android depuis Python, PyJNIus est disponible. Ce paquet permet d’accéder aux classes Java comme à des classes Python en utilisant JNI (« Java Native Interface » ou « Interface Native de Java »).

        Ce paquet fournit une méthode autoclass qui convertit automatiquement une classe Java en Python, c’est très facile à utiliser et souvent suffisant pour les cas simples.

        KivyMD, des widgets Material Design

        KivyMD n’est pas un projet officiel de l’équipe Kivy, mais un projet tiers dédié à la création d’un ensemble de Widgets thémables adoptant Material Design.

        Image d’exemple de KivyMD issue de la documentation

        L'image ci-dessus est issue de la documentation de KivyMD, vous trouverez également des démos vidéo sur le dépôt du projet.

        Quelques limitations

        Une petite note sur mon expérience personnelle (Goffi). Kivy est un excellent cadriciel, et l’équipe est accueillante et réactive : c’est un projet que je recommanderais en général. Ceci dit, dans mon cas particulier (un client XMPP ayant de nombreuses fonctionnalités), j’ai quelques limitations qui me poussent actuellement à chercher des alternatives, notamment basées sur Qt (PyQt et PySide) :

        • l’accessibilité est un problème majeur. L’équipe y travaille, mais aujourd’hui les applications Kivy ne sont pas accessibles. C’est notamment dû au fait que l’interface utilisateur est entièrement gérée par Kivy, au lieu d’utiliser des composants natifs, et c’est un point complètement bloquant pour moi.
        • il n’y a pas de webview ou de rendu HTML natif, ce qui est bloquant parce que je fais du rendu de blogs.
        • le rendu de texte est incomplet, notamment sur les plateformes mobiles. C’est compliqué de faire un rendu riche avec des émojis, par exemple, un gros problème pour une application de messagerie de nos jours.
        • le support des portails Freedesktop est inexistant : il faut faire l’implémentation à la main, alors qu’il est natif sur des cadriciels majeurs comme GTK ou Qt. Je pense par exemple à l’ouverture ou l’enregistrement de fichier. Les portails sont particulièrement nécessaires si on veut voir son application sur Flatpak. Plus de détails sur ce ticket.
        • le support Wayland existe, mais lors de mes tests sur des distributions GNU/Linux sur Pinephone, il n’a pas fonctionné et je n’ai pas pu afficher l’application.
        • le chargement de l’interprète Python prend un certain temps, ce qui rend le lancement de l’application sur plateformes mobiles telle qu’Android et probablement iOS (que je n’ai pas testé) un peu lent. Sachant que sur ces plateformes l’application peut être tuée à n’importe quel moment auquel cas il faut tout relancer, cela peut mener à une mauvaise expérience utilisateur. Ceci dit, avec une distribution optimisée (en enlevant les paquets non utilisés), et sur les téléphones actuels qui sont très puissants, le problème est sans doute moindre.

        Notez que je n’ai pas eu l’occasion de travailler avec Kivy récemment, peut-être que ces remarques ne sont plus à jour. Merci d’indiquer en commentaires s’il y a eu de l’évolution sur ces points.

        Aussi, mon cas d’utilisation est très demandant (rendu HTML, affichage de texte performant, etc). Dans la plupart des cas, Kivy remplit sans problème toutes les cases (sauf l’accessibilité, qui reste son problème le plus important à mon sens).

        Conclusion

        Comme vous pouvez le voir, un travail considérable a été effectué sur Kivy et son écosystème, et il en sort un cadriciel performant, pratique, et qui peut potentiellement fonctionner sur la plupart des plateformes. Kivy est agréable à utiliser, et dispose d’une communauté très active et disponible.

        Ce cadriciel mérite de s’y attarder, et est une option sérieuse si vous voulez développer un projet rapidement pour une ou plusieurs plateformes.

        Une note d’histoire

        Cette dépêche a été commencée le 04 octobre 2018 à 14:19 (au premier jour de la Pycon FR 2018, à Lille, où une partie de l’équipe de Kivy était présente). Je crois que c’est haut la main la dépêche qui est restée le plus longtemps dans l’espace de rédaction. Comme quoi, tout vient à point à qui sait attendre, comme dirait l’autre.

        Merci à toutes les personnes qui ont participé à la correction de la dépêche.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Revue de presse de l’April pour la semaine 17 de l’année 2025

        Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

        [Le Monde Informatique] Econocom mise sur Proxmox en interne

        ✍ Benoît Huet, le vendredi 25 avril 2025.

        «Est-ce que je dois payer tous les ans des licences de solutions propriétaires toujours plus élevées avec des inflations délirantes? Quand vous disposez d’un budget restreint, il faut trouver des idées intelligentes»

        [01net.] Du flop au hack: l'Ai Pin retrouve une nouvelle vie avec l'open source

        ✍ Mickaël Bazoge, le jeudi 24 avril 2025.

        Ne jetez pas votre Ai Pin tout de suite! Certes, le badge connecté de feu-Humane a tiré sa révérence en début d’année, après seulement quelques mois d’existence et une acquisition par HP. Mais l’appareil pourrait trouver un second souffle grâce à un projet open source…

        Note: la licence du projet est BY-NC-SA, ce qui est considéré non libre.

        [Le Monde.fr] La Commission européenne inflige d'importantes amendes à Meta et Apple, les premières dans le cadre du règlement visant à limiter le pouvoir des géants du numérique

        Le mercredi 23 avril 2025.

        Les sanctions sont les premières prises dans le cadre du nouveau règlement européen sur les marchés numériques, entré en vigueur l’an dernier pour mettre fin aux abus de position dominante des géants de la tech.

        [Journal du Net] L'open source, une réponse stratégique aux incertitudes et menaces de la guerre tarifaire

        ✍ Dimitri Casvigny, le mardi 22 avril 2025.

        Aujourd’hui, des considérations géopolitiques et macroéconomiques s’invitent à la table du DSI. Face à ces défis, une solution émerge avec force: l’open source.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        WoPiX, un serveur WOPI libre, indépendant, simple et léger

        Un serveur WOPI (Web application Open Platform Interface) permet à un logiciel client de modifier un fichier stocké sur un serveur. C'est la couche indispensable pour qu'OnlyOffice, LibreOffice (Collabora Online) et d'autres suites bureautiques puissent être utilisés sur le web. Ainsi, lorsque vous réclamez l'ouverture d'un document depuis votre navigateur web, vous vous connectez à la suite bureautique en ligne avec une URL particulière, contenant, entre autres, le nom du fichier à ouvrir. La suite bureautique peut alors discuter avec le serveur WOPI pour récupérer le document. Les lectures, écritures et modifications d'un document sont gérées par le serveur WOPI, à la demande de la suite bureautique. Le protocole a été créé par Microsoft en 2012, la révision 14.5 de WOPI est sortie le 18 février 2025.

        Les serveurs WOPI libres de Nextcloud, Seafile, Tracim… ne sont pas indépendants. Comme je voulais utiliser Collabora Online sans déployer un NextCloud complet, j'ai écrit un serveur WOPI très simple. Il est utilisé depuis plus d'un an sans problème et il est libre. Il est écrit en Java.

        J'ai commencé ce développement car je travaille sur deux lieux privés différents avec un ordinateur à chaque endroit, un NAS dans l'un d'eux et je communique entre les deux machines à l'aide d'un dépôt git sur le NAS. Ça fonctionne relativement bien pour des fichiers qui n'ont pas vocation à rester ouverts dans des applications, mais pour des fichiers ODS ou ODT qui restent ouverts, c'est plus compliqué car je me retrouve souvent avec des versions concurrentes sur les deux machines. J'ai donc regardé du côté des suites de collaboration en ligne.

        À une époque , je me servais d'Etherpad et de son équivalent tableur Ethercalc. Mais ces logiciels manquent de fonctionnalités, surtout le tableur. Problème supplémentaire : j'ai déjà beaucoup de fichiers aux formats LibreOffice.

        Ça tombe bien, il y a la suite LibreOffice online, éditée par Collabora Online (CODE). Le problème — comme souligné par une dépêche — c'est qu'une fois CODE installé, tu te retrouves à poil avec rien qui marche : il faut un serveur utilisant le protocole WOPI.

        Pour éviter d'installer tout un NextCloud, j'ai écrit un petit serveur WOPI. C'est du Java avec Spring Boot. Le serveur est très simple, sur le principe que plus un système est simple, moins il a de chances de tomber en panne.

        Par exemple, il n'y pas de droits d'accès et on ne peut pas avoir plusieurs utilisateurs simultanés. Il faudrait mettre en œuvre le système de verrous et le système de droits d'accès (faire reposer les droits d'accès sur les droits du système de fichier, implique d'avoir un utilisateur sur la machine pour chaque utilisateur du logiciel). Cela n'a pas été implanté parce que je suis le seul utilisateur sur ma machine. Mais ce ne serait pas long à développer.

        Le serveur une fois lancé expose des services REST, accessibles par la suite bureautique, mais aussi un service https qui permet d'afficher la liste des fichiers. Cette liste de fichier est cliquable et permet de se connecter à Libre Office avec la bonne URL. C'est la raison des paramètres proxyHost et code URL de l'application : être en mesure de générer la bonne URL.

        Liste des fichiers

        Le code est prévu pour avoir plusieurs backends à l'aide d'une interface. Le seul mis en œuvre pour l'instant c'est un stockage sur disque local (avec auto discovery : on lui donne un répertoire et il expose tout les documents du répertoire).

        Il consomme peu de ressources, la charge dépendra plus de Collabora Online ou d'OnlyOffice. Le serveur WOPI se contente de lire un fichier à l'ouverture et de l'écrire de temps en temps (comme lors des enregistrements automatiques).

        Il n'est pas testé avec OnlyOffice. En principe WOPI est une norme et ça devrait fonctionner.

        On peut le lancer avec java -jar. C'est du Spring Boot. On pourrait utiliser systemd. De mon côté, je l'ai mis dans un container docker qui lance la commande suivante

        java -Dlogging.level.root=INFO \
             -Dlogging.level.org.wopiserver=INFO \
             -Dserver.port=8880 \
             -jar /opt/app/app.jar \
             --baseDir /mnt/docs \
             --disableTLSCheck \
             --codeURL https://172.17.0.8:9980 \
             --proxyHost 192.168.124.252

        Le code de WoPiX est dispo sur github et je suis ouvert à toute requête :-)

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        CryptPad 2025.3.0 est disponible

        Nous venons de publier CryptPad 2025.3.0, suite collaborative chiffrée de bout en bout et open-source. Et, bien qu’il n’introduise pas de nouvelles applications majeures, il inclut d’importantes améliorations techniques, des corrections de bugs, et des ajustements de convivialité, en particulier pour les utilisateurs sur mobile ou avec des disques de grande taille.

        Cette version marque également le début d’un effort de refonte plus large, visant à rendre CryptPad plus rapide, plus modulaire, et plus facile à maintenir et à étendre au fil du temps.

        Le document #1 et la présentation sont maintenant ouverts sur cryptpad.fr

        De nombreux utilisateurs ont demandé le support des documents (DOCX/ODT) et des présentations (PPTX/ODP) compatibles avec Office.

        Grâce au travail de Wolfgang Ginolas, ces éditeurs sont disponibles en beta sur cryptpad.fr (même pour les utilisateurs gratuits) et font de CryptPad une alternative plus complète pour la collaboration en ligne sécurisée.

        Vous pouvez commencer un document ou une présentation sur cryptpad.fr (aucun compte n’est requis).

        Meilleure performance, en particulier sur les mobiles et les grands comptes

        Si vous avez déjà attendu un certain temps pour que CryptPad se charge, en particulier lorsque vous travaillez avec un grand disque ou des dossiers d’équipe, cette version devrait faire une différence notable.

        Nous avons restructuré la façon dont les blocs et les dossiers sont chargés : au lieu de tout charger en même temps, CryptPad donne maintenant la priorité au document que vous ouvrez, les autres contenus se chargeant en arrière-plan. Cela signifie :

        • délai plus court pour la première interaction lors de l’ouverture d’un bloc-note,
        • moins de retard lors de l’accès aux dossiers partagés et aux disques d’équipe,
        • une expérience plus réactive sur les appareils mobiles.

        Ce travail prépare également le terrain pour de futures améliorations, comme une API JavaScript, qui permettrait aux applications tierces de se connecter plus facilement aux serveurs CryptPad.

        Autres améliorations et corrections

        Cette version comprend également :

        • nouveaux outils d’administration : les administrateurs peuvent maintenant ajouter ou supprimer d’autres administrateurs via l’interface,
        • améliorations de l’écran tactile dans Kanban et Forms,
        • améliorations de l’interface utilisateur pour les mobiles (meilleures dispositions, mode de prévisualisation pour le code, boutons améliorés),
        • améliorations de l’accessibilité, en particulier dans le calendrier et l’interface d’administration,
        • corrections pour les téléchargements de fichiers OnlyOffice et amélioration des messages d’erreur dans plusieurs parties de l’interface utilisateur,
        • améliorations du backend et de l’utilisation de la mémoire pour aider les instances à s’adapter plus efficacement,
        • corrections de sécurité. Si vous utilisez une instance CryptPad auto-hébergée, nous vous recommandons de la mettre à jour dès que possible,
        • pour une liste complète des changements, consultez les notes de version.

        Remarque : nous avions prévu de mettre à niveau les éditeurs OnlyOffice vers la version 8 dans cette version, mais nous travaillons toujours sur les problèmes d’intégration. Comme les mises à jour de documents ne peuvent pas être annulées, nous attendrons et inclurons ce changement dans la version 2025.3.1, une fois qu’elle sera stable.

        Statistiques du projet

        Voici un rapide aperçu de la situation actuelle de CryptPad :

        • plus de 2 millions de pads ouverts par mois sur cryptpad.fr,
          • environ 200 000 utilisateurs par mois,
        • 55 000 utilisateurs avec des lecteurs personnels,
          • plus de 1 000 abonnés soutenant le projet,
        • plus de 1 400 instances CryptPad dans la nature.

        Nous sommes reconnaissants à la communauté qui nous aide à tester, à rapporter les bugs, à aider les autres et à soutenir le projet par le biais de dons et d’abonnements.

        Vous pouvez également contribuer à la viabilité financière de CryptPad. Si vous êtes un utilisateur individuel, vous pouvez faire un don via Open Collective ou en vous abonnant à CryptPad.fr. Les organisations peuvent contribuer par le biais d’abonnements ou de parrainages de fonctionnalités. Nous sommes totalement transparents sur notre financement et publions des mises à jour annuelles sur le blog CryptPad.

        Prochaines étapes

        Nous continuons à améliorer les performances, le support mobile et l’intégration d’OnlyOffice. Pour la prochaine version majeure (prévue pour l’été 2025), nous visons à apporter plus d’améliorations en termes de convivialité et de qualité de vie dans tous les domaines.

        Comme toujours, nous nous efforçons de faire de CryptPad une alternative solide et respectueuse de la vie privée aux outils bureautiques classiques ; quelque chose sur lequel les gens peuvent compter sans renoncer au contrôle de leurs données.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Raspberry Pi 5, évolution ou révolution ?

        Les méandres de l'espace de rédaction sont parfois mystérieux. La rédaction de certaines dépêches s'étalent parfois sur de long mois, parfois sans même comprendre pourquoi la dépêche ne part pas vers le stade de la publication. C'est ce qui est arrivé à cette dépêche qui ne suit donc pas autant qu'elle aurait pu l'actualité de la sortie de la nouvelle mouture de la microcarte de la Fondation Raspberry Pi, qui porte le nom très original de Raspberry Pi 5. Cette dépêche - qui nous offre une comparaison de cette nouvelle édition avec son illustre ancêtre ainsi qu'une investigation de ses nouveautés - reste substantielle et il nous a semblé qu'il valait mieux la publier même tardivement plutôt que de la plonger dans l'oubli éternel.

          Sommaire

          Cette dépêche ne traitera pas de l’ensemble de ce que l’on peut faire, la précédente dépêche sur les SoC faite pour la sortie de la Raspberry Pi 4 est toujours d’actualité en ce qui concerne ces sujets.

          Comparaison entre Raspberry Pi 4 et Raspberry Pi 5

          Sorti en 2019, le RPi4 avait fait forte impression—mais quasiment en constante pénurie entre 2020 et 2023, il commençait par accuser le coup par rapport à la concurrence du Rockchip RK3588 (Quad-core Cortex-A76 + Quad-core Cortex-A55).

          Aussi, la Raspberry Pi 5 introduit des avancées significatives par rapport à la Raspberry Pi 4, dont le Tableau 1 présente une synthèse des différences.

          Composants Raspberry Pi 4 Raspberry Pi 5
          SoC Broadcom BCM2711 Broadcom BCM2712
          CPU Quad-core Cortex-A72 (1.8 GHz) Quad-core Cortex-A76 (2.4 GHz)
          GPU VideoCore VI (500 MHz) VideoCore VII (800 MHz)
          Mémoire 1, 2, 4, 8 GB LPDDR4-3200 SDRAM 4, 8 GB LPDDR4X-4267 SDRAM
          Wi-Fi Dual-band 802.11ac Dual-band 802.11ac
          Bluetooth 5.0, BLE 5.0, BLE
          USB 2 USB 3.0, 2 USB 2.0, 1 Type-C port 2 USB 3.0, 2 USB 2.0, 1 Type-C port
          Stockage MicroSD MicroSD (SDR104⟹R/W↗ˣ²) + ligne PCIe pour NVME M.2 SSD
          Ethernet Gigabit Ethernet Gigabit Ethernet
          Puissance Jusqu’à 7.5 W 2 modes : jusqu’à 15 W et jusqu’à 25 W
          Gestion HDMI 2 HDMI 2.0 (1 gérant 4k@60 Hz) 2 HDMI 2.0 (tous les deux gérant 4k@60 Hz)
          Format vidéo H.264 (AVC) H.265 (HEVC)
          PCIe Non 1 lane PCIe pour périphériques haute performance
          Bouton d’alimentation Non Oui

          Tableau 1 : comparatif des Raspberry Pi 4 et 5

          Détail des améliorations de la Raspberry Pi 5

          La Raspberry Pi 5 introduit des avancées significatives par rapport à la Raspberry Pi 4, en particulier avec l’introduction du southbridge RP1. Voici une comparaison détaillée mettant en évidence les principales différences et l’impact du RP1 :

          • Processeur : La Raspberry Pi 5 est équipée d’un CPU ARM Cortex-A76, une amélioration substantielle par rapport au Cortex-A72 trouvé dans la Raspberry Pi 4. Cette mise à niveau fait que la Pi 5 est deux à trois fois plus rapide que son prédécesseur.
          • RAM : La Raspberry Pi 5 utilise de la LPDDR4X-4267 SDRAM, nettement plus rapide que la LPDDR4-3200 SDRAM utilisée dans la Pi 4. Cette amélioration offre plus de bande passante, contribuant à des performances globalement plus rapides.
          • Puissance graphique : La Raspberry Pi 5 dispose d’un GPU VideoCore VII plus puissant, cadencé à 800 MHz et prenant en charge OpenGL ES 3.1 et Vulkan 1.2. C’est une avancée par rapport au GPU VideoCore VI de la Raspberry Pi 4, qui prend en charge OpenGL ES 3.1 et Vulkan 1.0. Le GPU de la Pi 5 comprend également un nouveau processeur de signal d’image pour la gestion des données des caméras.
          • Chip RP1 Southbridge : La puce RP1 est une innovation majeure dans la Raspberry Pi 5. Elle agit comme un southbridge, gérant la plupart des fonctions I/O (entrée/sortie), réduisant ainsi la charge sur le CPU. Cela permet une augmentation de la bande passante I/O, bénéficiant aux dispositifs de stockage, USB et autres périphériques.
          • Vitesse des cartes MicroSD : Le port microSD de la Pi 5 prend en charge le mode haute vitesse HDR 104 avec les cartes microSD UHS-1, offrant des vitesses de lecture de 80-90 Mbps, soit le double de la vitesse de 40-50 Mbps de la Pi 4.
          • Ports USB : Dans la Raspberry Pi 5, chacun des deux ports USB 3.0 dispose d’une bande passante dédiée de 5 Gbps, grâce à la puce RP1. C’est une amélioration par rapport à la Pi 4, où les deux ports USB 3.0 partageaient la bande passante de 5 Gbps.
          • Connecteur PCIe : La Pi 5 inclut un connecteur PCIe (PCI Express), une nouvelle addition répondant à la demande pour des interfaces plus rapides. Cependant, l’interface PCIe de la Pi 5 n’est pas un connecteur M.2 standard ; elle nécessite un câble ruban pour se connecter à un HAT, et le dispositif M.2 se connectera au HAT. Caractéristiques
          • Un bouton marche/arrêt : Eh oui, on est quand même dans le 3ᵉ millénaire ;-)
          • Alimentation : Tout comme la Raspberry Pi 4, la Raspberry Pi 5 utilise un connecteur d’alimentation au format USB Type-C. En revanche, doublement de la puissance oblige, la puissance nécessaire à son fonctionnement passe de 7.5 W à 15 W, il faudra donc une alimentation en 3A minimum pour être tranquille. À noter que si vous souhaitez utiliser des périphériques externes qui consomment beaucoup comme des disques durs ou SSD, il est conseillé d’avoir une alimentation de 25 W (5A). La Raspberry Pi détecte si l’alimentation fournit plus de puissance et passe la limite de consommation USB à 1,6A au lieu de 1,2A.

          Raspberry Pi 5 : Nouveau South Bridge RP1 vs Raspberry Pi 4

          Le RP1 est un contrôleur d’entrée/sortie (I/O) conçu pour le Raspberry Pi 5, représentant le programme d’ingénierie le plus complexe et coûteux entrepris par Raspberry Pi, avec un développement s’étendant sur plus de sept ans et ayant coûté environ 25 millions de dollars. Ce contrôleur est le premier produit phare de Raspberry Pi à utiliser une puce conçue en interne​.

          Architecture du South Bridge RP1

          — Description : Le RP1 est un southbridge de 12×12 mm avec un pas de 0.65 mm en BGA (Ball Grid Array), fournissant la majorité des capacités d’E/S pour la Raspberry Pi 5.
          — Caractéristiques : Il comprend un point de terminaison PCIe 2.0 à 4 voies, un contrôleur Ethernet MAC Gigabit et deux contrôleurs hôtes USB 3.
          — Améliorations : Plus du double de la bande passante USB utilisable par rapport à la Raspberry Pi 4.
          — Documentation RP1 : RP1 Datasheet

          Sources des informations sur le RP1

          — L’article d’Eben Upton pour annoncer le RP1 : RP1 : the silicon controlling Raspberry Pi 5 (ce court article est accompagné d’une vidéo YT de 35 minutes à ce sujet, mais dont le contenu est reproduit textuellement en suivant un lien)
          — Lien direct vers la vidéo YT : RP1 : the silicon controlling Raspberry Pi 5

          Impacts du RP1

          Le RP1 constitue une avancée importante, puisque les GPIOs “physiques” de la carte ne sont plus directement reliées aux GPIOs du microprocesseur et de leurs fonctions possibles (SPI/I2C/UART/I2S) attribuées par le fondeur dans le silicium.

          1. Connectivité principale : Le RP1 se connecte à un processeur d’application (AP) via un bus PCIe 2.0 x4, consolidant de nombreux contrôleurs numériques et PHYs analogiques pour les interfaces externes du Raspberry Pi 5​​.
          2. Contrôle du trafic : Le tissu interne du RP1 permet de prioriser le trafic en temps réel de la caméra et de l’affichage sur le trafic non en temps réel de l’USB et de l’Ethernet. Des signaux de qualité de service (QoS) sur le lien PCI Express soutiennent la priorisation dynamique entre le trafic provenant du RP1 et le trafic des maîtres de bus en temps réel et non en temps réel au sein de l’AP​​.
          3. Fonctionnalités supplémentaires : Pour une flexibilité maximale des cas d’utilisation, le RP1 dispose de plusieurs fonctionnalités telles qu’un contrôleur DMA à huit canaux pour les périphériques à basse vitesse, trois PLL intégrées pour la génération d’horloges vidéo et audio indépendantes, un convertisseur analogique-numérique à cinq entrées, 64kB de SRAM partagée, et des générateurs de base temporelle pour le rythme de la DMA ou pour le debouncing des événements GPIO​​​​.
          4. Gestion des contrôleurs de bus : Les modules de régulation intégrés à chaque port de contrôleur de bus permettent de surveiller ou de limiter leur comportement. Ces modules régulent le flux de données selon le nombre de transactions en attente, assurent le respect des limites d’adresses AXI et PCIe, et disposent de compteurs statistiques pour évaluer la qualité de service ou les performances.
          5. Interfaces clés externes : Le RP1 fournit des interfaces externes clés telles que deux contrôleurs XHCI indépendants connectés à un seul PHY USB 3.0 et un seul PHY USB 2.0, deux contrôleurs de caméra MIPI CSI-2 et deux contrôleurs d’affichage MIPI DSI connectés à deux PHY transceivers MIPI DPHY à 4 voies partagées, et un contrôleur d’accès média (MAC) intégré pour l’Ethernet Gigabit​​​​.
          6. Compatibilité et évolution : Le RP1 maintient la compatibilité avec la gamme de fonctions offerte sur le Raspberry Pi 4 Model B, tout en permettant une évolution vers des processus de géométrie réduite, sans avoir à reproduire tous les éléments analogiques du système. Cela pourrait permettre à changer plus facilement de fournisseur de SoC.

          Évolution des performances

          Afin de permettre de mieux visualiser les évolutions des performances Alasdair Allan a fait un benchmark complet dont certains éléments sont repris ici.

          Tout d’abord une analyse des performances du CPU avec geekbench. Les Figures 1 et 2 montrent une augmentation des performances en single core d’approximativement 2.2x,
          performances single core

          Figure 1. : Comparaison des performances single core entre RPi4 et 5
          performances multi core

          Figure 2. : Comparaison des performances multi core entre RPi4 et 5

          Compilation de différents benchmarks entre RPi 4 et 5

          Benchmark Unités Raspberry Pi 4 Raspberry Pi 5 Augmentation de Performance
          Sysbench Mono-Thread MBps 699 1041 x1,49
          Sysbench Multi-Thread MBps 2794 4165 x1,49
          Stress-ng Mono-Thread op/s 104,78 182,68 x1,74
          Stress-ng Multi-Thread op/s 413,12 737,21 x1,78
          Bzip Mono-Thread secondes 44,98 20,53 x2,19
          Bzip Multi-Thread secondes 28,59 14,36 x1,99
          Gimp Redimensionner secondes 67,01 29,95 x2,24
          Gimp Rotation secondes 77,24 32,77 x2,36
          Gimp Niveaux Auto secondes 80,52 34,64 x2,32
          Gimp Masque Flou secondes 115,16 49,71 x2,32
          Speedometer 2.1 score 20,5 62,5 x3,05
          Glmark2 score 97 202 x2,08
          Openarena Timedemo FPS 8,77 27,05 x3,08
          RAMspeed Écriture MBps 4391 29355 x6,69
          RAMspeed Lecture MBps 5902 27931 x4,73
          HDparm Lecture MBps 43,81 90,05 x2,06
          dd Écriture MBps 34,49 61,23 x1,78
          Iozone 4 K Écriture RAND MBps 9,38 15,22 x1,62
          Iozone 4 K Lecture RAND MBps 4,71 4,6 x0,98
          Temps de démarrage secondes 33,4 19,1 x1,74

          performances des I/O

          La Figure 3. issue du travail d’Adafruit permet de mettre à jour le graphique sur la vitesse performance de la commutation des I/O proposé dans la dépêche sur la RPi4. La Figure 4. quant à elle montre une légère amélioration de la performance par Watt sur le nouveau modèle.

          Titre de l’image
          Figure 3. Évolution de la vitesse de commutation d’une sortie numérique

          Titre de l’image
          Figure 4. Évolution de la performance en fonction de la puissance électrique

          Interfaces USB et Ethernet

          — Interfaces: Le RP1 fournit deux interfaces USB 3.0 et deux interfaces USB 2.0, ainsi qu’un contrôleur Ethernet Gigabit.
          — Source: Circuit Digest – The New Raspberry Pi 5 is here

          Le Gigabit Ethernet fourni par le RP1 est en tout point semblable à celui du RBPi4 (voir : RP1 : the silicon controlling Raspberry Pi 5:

          Liam 13:21: So we’ve got the Ethernet MAC but not the PHY. So the Ethernet’s brought out to an RGMII interface, which then connects to an on-board Ethernet PHY.

          Eben 13:35: And this is a fairly similar architecture to Raspberry Pi 4, except that in that case, the MAC was in the Broadcom device, but there was still an external – in fact exactly the same external – PHY, [BCM]54213. Cool. So that’s the overall structure of the design.

          Interfaces MIPI CSI/DSI

          Ces interfaces d’entrée/sortie vidéo peuvent être qualifiées d’historiques dans l’écosystème RaspberryPi puisqu’elles sont présentes depuis la version 1. Le RBPi5 apporte toutefois une nouveauté assez remarquable par rapport à ses prédécesseurs : au lieu d’avoir un port CSI (pour une caméra) et un port DSI (pour un écran), les ports du RBPi5 peuvent être configurés pour l’une ou l’autre fonction. Malheureusement, cela s’est traduit par des changements notables au niveau de la disposition des composants sur la carte, qui ne sont pas sans susciter quelques grincements de dents parmi les utilisateurs.

          Les points discutables/discutés

          Le réarrangement de la carte

          — Le port audio a disparu, pour laisser sa place au port MIPI DSI (qui peut faire CSI à présent), lui-même remplacé, au-dessus du lecteur de carte microSD, par un connecteur FPC exposant les lignes PCIe.
          — le port DSI est passé de 15 pins à 22 pins (comme sur la carte CMIo4)
          — Et, encore une fois, les ports Ethernet et USB ont été inversés.

          Si cela ne pose pas de problèmes particuliers pour un utilisateur lambda, de nombreux projets basés sur les cartes RasperryPi à la recherche de performance de calcul (et donc potentiellement intéressés par ce nouveau RBPi5) doivent entièrement revoir la conception de leur matériel.

          Le non réarrangement de la carte

          C’est un reproche que l’on peut trouver dans de nombreux témoignages : mettre un HAT (carte d’extension) sur un RBPi, juste au dessus du CPU, c’est un non-sens en termes de refroidissement (et ce, quelle que soit la version du RBPi).
          Mais, pour relativiser, on peut dire la même chose de quasiment toutes les autres solutions alternatives au RBPi.

          Les limites du format carte de crédit

          Ce format (86x56 mm) est devenu une référence pour presque tous les acteurs du monde des SBC. Et donc, il s’agit là aussi d’un constat plus général, non spécifiquement adressé à RaspberryPi. Mais sachant que ce sont les locomotives du marché, peut être pourraient-ils initier une nouvelle approche…
          Certes, ce format permet d’élaborer des solutions compactes, mais l’on peut constater :

          — qu’augmenter la puissance et les fonctionnalités des puces embarquées tout en restant sur ce format conduit à un gaspillage inutile de ressources : il est en effet impossible d’implémenter toutes les fonctionnalités matérielles proposées par les puces sur une si petite surface, et par ailleurs il devient difficile de refroidir efficacement le système.
          — pour exposer le port PCIe, RaspberryPi a supprimé le port audio, déplacé le port DSI ; mais pour alimenter le bouzin, il vous faut du 5V 4A. Ensuite un peu tout le monde se trouve planté là : débrouillez-vous.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          Sortie d’AgentJ en 2.1 - Une nouvelle version majeure depuis la 1.6

          AgentJ est une solution anti-spam utilisé pour filtrer et bloquer les messages indésirables (spams) en entrée et en sortie.
          Ce logiciel est une solution sous licence GNU Affero General Public License V3.

          Voici une description générale de ses fonctionnalités :

          • Filtrage du spam : Identifie les messages non sollicités ou suspects (spams) à l'aide d'algorithmes qui analysent le contenu, les adresses d'envoi, et d'autres facteurs.
          • Apprentissage automatique : Utilise des techniques d'apprentissage automatique pour s'adapter aux nouveaux types de spam et améliorer son efficacité au fil du temps.
          • Blocage des adresses : Peut bloquer ou mettre sur liste noire certaines adresses e-mail, domaines, ou adresses IP connues pour envoyer des spams.
          • Authentification humaine : La première fois qu'un nouvel expéditeur vous contacte, un mail de confirmation lui est envoyé pour vérification
          • Rapports et statistiques : Fournis des rapports pour suivre le nombre de spams bloqués, les tendances, et d'autres informations utiles pour les administrateurs.
          • Personnalisation : Permet de définir des règles spécifiques, de créer des listes blanches (whitelist) et noires (blacklist), et d'adapter le niveau de filtrage en fonction des besoins.
          • Gestion multi domaines mail distincts ou miroir.
          • Rapport quotidien pour les utilisateurs qui les informe des mails en attente de déblocage.

          Logo AgentJ
          Cette nouvelle version 2.1 amène son lot d’améliorations, mais elle est surtout marquée par une amélioration majeure : la gestion des mails envoyés / le filtrage de mail en sortie.

          Filtrage de mails en sortie

          Cela permet de gérer l’ensemble du flux de mails sortants.

          Apprentissage des mails sortants

          Cette fonctionnalité permet que, lors d’un envoi de mail par un utilisateur interne, les destinataires (to, cc et cci) soient automatiquement autorisés.
          Nous retrouverons les adresses autorisées comme les adresses actuelles avec comme précision « autorisée par envoi de mail ».

          Paramétrage du taux d’envoi de mail

          L’objectif est de permettre le paramétrage du nombre de mails par heure, par utilisateur. Le paramétrage pourra se faire soit pour le domaine mail, soit pour un groupe d’utilisateur, soit pour un utilisateur.
          Sur un compte utilisateur, il sera indiqué le taux en vigueur et l’usage actuel pour l’utilisateur.

          Alerte sur évènements indésirables

          Cette fonctionnalité permettra de paramétrer un envoi d’alerte à un ou des mails spécifiques.
          Les alertes pourront être envoyées lors des événements suivant :
          • Spam (le niveau considéré comme Spam sera réglable)
          • Virus
          • Dépassement du taux d’envoi

          Recherche de mail

          Nous avons ajouté une recherche de mail avancé pour l’administrateur.

          Recherche mail

          Libération depuis le rapport mail

          Maintenant, il n’est plus nécessaire de se loguer pour libérer un mail depuis le rapport quotidien envoyé par AgentJ un simple clique suffit.

          Amélioration du tableau de bord

          Nous avons amélioré le rendu du tableau de bord des statistiques

          Tableau de bord

          Prévisualisation sécurisée des emails

          Vous pouvez désormais prévisualiser vos emails bloqués avant de décider de les libérer (ou non).

          Prévisualisation mail

          Test de performance

          Nous avons effectué des tests de performance sur un VM avec 4 cœurs et 4 Go de RAM avec les paramétrages par défaut. AgentJ traite 10 000 mails en 11 min. Pour précision, les tests ont été effectués avec l’envoi de mail valides, car ils sont les plus longs en traitement comparé à des spams.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          Venez tester si Fedora Linux a trouvé la bonne réponse avec la version 42 Beta

          En ce mardi 18 mars 2025, la communauté du Projet Fedora sera ravie d’apprendre la disponibilité de la version bêta de Fedora Linux 42.

          Malgré les risques concernant la stabilité d’une version bêta, il est important de la tester ! En rapportant les bogues maintenant, vous découvrirez les nouveautés avant tout le monde, tout en améliorant la qualité de Fedora Linux 42 et réduisant du même coup le risque de retard. Les versions en développement manquent de testeurs et de retours pour mener à bien leurs buts.

          La version finale est pour le moment fixée pour le 15 ou le 22 avril.

          Sommaire

          Expérience utilisateur

          • L’environnement de bureau GNOME est proposé dans sa version 48 ;
          • L’environnement de bureau Xfce bénéficie de la version 4.20 ;
          • L’environnement de bureau LXQt passe à la version 2.1 ;
          • Le logiciel d’installation d’Anaconda devient une application Wayland native ;
          • Anaconda a enfin une interface web UI pour l’étape du partitionnement ;
          • Anaconda en profite pour également être une web UI par défaut pour Fedora Workstation ;
          • L’édition KDE Plasma devient une édition à part entière, étant mise au même niveau que Fedora Workstation avec l’environnement GNOME ;
          • L’écran de chargement lors du démarrage plymouth utilise simpledrm pour réduire l’attente qu’un GPU soit disponible ;
          • L’environnement de bureau COSMIC bénéficie de sa propre édition Spin ;
          • Activation de la mise à jour automatique par défaut pour la version atomique de KDE Plasma nommée Kinoite.

          Gestion du matériel

          • Amélioration de la prise en charge des webcams basées sur le protocole MIPI au lieu de USB dans les ordinateurs portables x86 ;
          • L’Intel Compute Runtime, qui prend en charge notamment le fonctionnement de l’API OpenCL pour les processeurs Intel, a été mise à jour vers la version 24.39 qui signifie également une non prise en charge des processeurs d’avant 2020 (à partir de la 12ᵉ génération) ;
          • Introduction de la pile Intel SGX pour permettre son utilisation dans le futur pour améliorer l’isolation et la protection mémoire en particulier pour les machines virtuelles ;
          • Intégration du projet FEX dans les dépôts pour permettre l’exécution des programmes x86 / x86_64 depuis les architectures AArch64 ;
          • L’installateur Anaconda utilise la norme GPT par défaut pour la table de partitionnement pour les architectures PPC64LE et s390x, l’architecture x86_64 et Aarch64 ayant déjà sauté le pas avec Fedora Linux 37 ;
          • Les versions atomiques n’auront plus d’images compatibles avec l’architecture PPC64LE ;
          • Le paquet du logiciel Zezere qui sert à automatiser l’installation et la configuration de systèmes IoT a été retiré des dépôts.

          Internationalisation

          • Mise à jour de l’entrée de saisie IBus 1.5.32 ;
          • Son aide à la saisie pour le chinois ibus-libpinyin est aussi mise à jour à la version 1.16 ;
          • Proposition d’une nouvelle aide à la saisie vocale avec Ibus Speech to Text via le paquet ibus-speech-to-text qui permet de faire de la reconnaissance vocale en local.

          Administration système

          • Les répertoires /usr/bin et /usr/sbin sont fusionnés ;
          • DNF5 va proposer à l’utilisateur de supprimer les clés GPG qui ont expiré, ou qui ont été révoquées, évitant de devoir le faire à la main avec la commande rpmkeys --delete ;
          • La commande fips-mode-setup a été retirée du paquet crypto-policies qui permet de rendre dynamiquement son système compatible avec les exigences du gouvernement américain concernant les modules cryptographiques. Cette option doit être activée lors de l’installation par d’autres moyens maintenant ;
          • Le navigateur de fichiers pour Cockpit cockpit-navigator est remplacé par cockpit-files ;
          • Les éditions dérivées de Fedora Workstation auront par défaut le pare-feu configuré avec l’option IPv6_rpfilter=loose, ce qui suit la politique appliquée pour l’IPv4 depuis Fedora 30 ;
          • Ajout du paquet bpfman pour le déploiment et la gestion des programmes eBPF dans le système ;
          • Réduction du nombre de règles SELinux liées au type unlabeled_t qui mènent à ne pas enregistrer dans le journal d’audit des erreurs détectées ;
          • Mise à jour de l’outil de gestion de configuration Ansible à la version 11 ;
          • Le serveur de proxy inverse Apache Traffic Server évolue vers sa 10ᵉ version ;
          • La version de compatibilité PostgreSQL 15 a été retirée, PostgreSQL 16 reste la version par défaut ;
          • Les utilitaires liés au projet OpenDMARC ont été mis dans des paquets individuels au lieu du paquet opendmarc qui les fournissait tous ;
          • L’agent pam-ssh-agent a été supprimé des dépôts.

          Développement

          • La chaîne de compilation GNU bénéficie de GCC 15, binutils 2.44, glibc 2.41 et gdb 15 ;
          • La chaîne de compilation LLVM progresse à la 20ᵉ version ;
          • La boîte à outils Python nommée Django utilise la version 5.x ;
          • Mise à jour du langage Go vers la version 1.24 ;
          • Le langage Ruby brille avec la version 3.4 ;
          • Le langage de programmation PHP s’impose de tout son poids à la version 8.4 ;
          • Le compilateur du langage fonctionnel Haskell, GHC, passe à la version 9.8 et sa suite de paquets Stackage utilise la version 23 ;
          • Le langage de programmation fonctionnel Idris dispose d’une mise à jour majeure vers sa 2ᵉ version ;
          • Le langage de scripts Tcl/Tk a été mis à jour vers la 9ᵉ version ;
          • La bibliothèque de calcul scientifique en Python NumPy passe à la version majeure 2 ;
          • L’outil de développement de paquets Python Setuptools a été mis à jour vers la version 74 ;
          • Mise à jour de la bibliothèque de compression zlib-ng à la version 2.2.x ;
          • La bibliothèque graphique SDL utilise la version 3 pour assurer la compatibilité avec sa version 2 dorénavant ;
          • Les anciennes versions de OpenJDK pour le langage Java à savoir 8, 11 et 17 ne sont plus fournies par les dépôts de Fedora mais devront être installés via un dépôt tiers tel que Adoptium Temurin dont le paquet adoptium-temurin-java-repository permet son activation ;
          • Le paquet de compatibilité Python pour la version 3.8 a été retiré ;
          • La bibliothèque Rust zbus version 1 a été supprimée, la version 4 ou supérieure reste proposée dans les dépôts ;
          • La bibliothèque de compatibilité entre Rust et Python, PyO3, se voit retirer les anciennes versions 0.19, 0.20, et 0.21 ;
          • L’utilitaire d’exécution des tests unitaires en Python python-pytest-runner est déprécié et sera supprimé dans un futur proche ;
          • La bibliothèque de compatibilité entre GTK3 et Rust est marquée comme dépréciée et sera supprimée dans une prochaine version.

          Projet Fedora

          • Fedora Linux proposera des archives permettant d’être installé avec Windows Subsystem for Linux ;
          • Les paquets RPM peuvent bénéficier de la fonction systemd sysusers.d pour créer des utilisateurs dédiés lors de l’installation des paquets RPM ;
          • Les mises à jour de Fedora CoreOS passent de OSTree à OCI ;
          • Les fichiers Kickstart seront distribués également comme des artéfacts OCI ;
          • Activation par défaut de composefs pour les images atomiques bureautiques de Fedora Linux ;
          • L’utilitaire edk2 est compilé avec des options de sécurité supplémentaires pour améliorer la sécurité des machines virtuelles reposant sur l’UEFI ;
          • Les images live de Fedora Linux utilisent le système de fichiers EROFS en lieu et place de SquashFS ;
          • Ajout d’un générateur de dépendances pour les extensions de GNOME Shell, permettant de lier la version de l’extension avec celle de gnome-shell à partir du fichier metadata.json de l’extension ;
          • Redéfinition des dépendances de nombreux paquets de git vers git-core.

          Tester

          Durant le développement d’une nouvelle version de Fedora Linux, comme cette version Beta, quasiment chaque semaine le projet propose des journées de tests. Le but est de tester pendant une journée une fonctionnalité précise comme le noyau, Fedora Silverblue, la mise à niveau, GNOME, l’internationalisation, etc. L’équipe d’assurance qualité élabore et propose une série de tests en général simples à exécuter. Suffit de les suivre et indiquer si le résultat est celui attendu. Dans le cas contraire, un rapport de bogue devra être ouvert pour permettre l’élaboration d’un correctif.

          C’est très simple à suivre et requiert souvent peu de temps (15 minutes à une heure maximum) si vous avez une bêta exploitable sous la main.

          Les tests à effectuer et les rapports sont à faire via la page suivante. J’annonce régulièrement sur mon blog quand une journée de tests est planifiée.

          Si l’aventure vous intéresse, les images sont disponibles par Torrent ou via le site officiel.

          Si vous avez déjà Fedora Linux 41 ou 40 sur votre machine, vous pouvez faire une mise à niveau vers la bêta. Cela consiste en une grosse mise à jour, vos applications et données sont préservées.

          Nous vous recommandons dans les deux cas de procéder à une sauvegarde de vos données au préalable.

          En cas de bogue, n’oubliez pas de relire la documentation pour signaler les anomalies sur le BugZilla ou de contribuer à la traduction sur Weblate. N’oubliez pas de consulter les bogues déjà connus pour Fedora 42.

          Bons tests à tous !

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          Atelier : Mieux comprendre l'impact du Cyber Resilience Act sur les pratiques Open Source !

          ATELIER du lundi 31 mars de 11h30 à 13h30 à Paris (participation en ligne possible).

          Titre de l'image

          Etes-vous prêts pour les échéances de 2026 et 2027 du Cyber Resilience Act (CRA) ?

          Le CRA est un dispositif adpoté par la Commission Européenne en 2024 pour répondre à la vulnérabilité accrue aux cyberattaques des entreprises et services publics européens,. Il vise à renforcer la cybersécurité et la cyberrésilience des produits logiciels (et matériels qui comportent des éléments numériques) connectés.

          Le premier guide de conformité au CRA dédié aux acteurs de l’open source, proposé par le CNLL et inno³ a pour objectif de faciliter la compréhension du CRA et les effets attendus, et de proposer des recommandations concrètes.

          N'attendez pas pour commencer à évaluer vos obligations nouvelles à venir et les adaptations nécéssaires de vos processus, rejoignez l'atelier du 31 mars !

          📅 Quand ? Le 31 mars de 11h30 à 13h30, la rencontre sera suivie d'un buffet pour les personnes sur place.

          📍 Où ? 137 Boulevard de Magenta 75010 Paris (nombre de places limité, participation en ligne possible).

          L'objectif est de rendre la session de discussion la plus active possible, n'hésitez pas à lire d'un œil critique et intéressé le guide en amont. Vous pouvez même nous envoyer dès aujourd'hui vos diverses questions ou remarques afin de nous aider à préparer l'atelier : mission-cra-cnll@framagroupes.org.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          Nouveautés de mars 2025 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 (qui s’adapte à la taille de l’écran).

          À 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 ;
          • et bien d’autres…

          🖥️ Prochain mini-webinaire : « Découvrir Parcours-PHP » 17 mars

          Lundi 17 mars de 17h à 18h heure de Paris, à l’adresse https://scenari.org/visio/miniwebinaire.

          Pour que la session colle au mieux aux besoins de la communauté, tu peux participer à ce fil de discussion sur le forum.

          Situer Parcours-PHP.

          Les enregistrements des mini-webinaires précédents sont sur la page dédiée de scenari.org et dans notre canal peertube.

          Pour proposer des sujets, rends-toi sur ce fil de discussion.

          Parole de scénariste

          💗 Parole de Scenariste

          Les fonctionnalités souvent « originales » de SCENARI favorisent notre productivité. Facilité+++ de mise en ligne des contenus (FTP intégré), logique de « grains de contenu » et de réutilisation, chartes graphiques personnalisables => mise à disposition du même contenu à des entités différentes, affichage « dynamique » de plusieurs versions du même contenu (exemple : version originale de règlements alternant avec version résumée plus « pédagogique »)…

          Jean-Philippe Claude Jean-Philippe Claude, dirigeant Organisme de Conseil et Formation. Vethyqua. Modèles utilisés : Opale, Optim, Dokiel

          Rappel : propose une communication/atelier pour les Rencontres Scenari 2025 avant le 11 mars !

          📣 Rappel : propose une communication/atelier pour les Rencontres Scenari 2025 avant le 11 mars !

          Tu as jusqu’au 11 mars 2025 pour nous envoyer ta proposition de retour d’expérience ou d’atelier à l’adresse rencontres@scenari.org en indiquant :

          • nom / prénom des intervenants
          • structure (ton université/entreprise/association…)
          • titre provisoire
          • descriptif provisoire
          • éventuelles indisponibilités inéluctables

          Partager tes usages de Scenari c’est une occasion pour apporter à la communauté et pour que la communauté t’apporte aussi, alors n’hésite pas à faire une proposition !

          Merci de relayer cet appel dans tes réseaux sur Mastodon, Telegram et LinkedIn !

          Deux nouveaux outils autour de Scenari

          📣 Deux nouveaux outils autour de Scenari

          Deux nouveaux outils ont été ajoutés à la page des « Outils autour de Scenari » :

          1. Un outil pour exporter le référentiel ScoLOMFR afin de les utiliser dans Scenari.
          2. Un autre outil pour exporter une bibliographie Zotero vers Opale ou Optim.

          Tu utilises Parcours ou Platine-suite ? Partage ton retour d’expérience

          📣 Tu utilises Parcours ou Platine-suite ? Partage ton retour d’expérience

          Katia a rejoint Kelis pour travailler sur les derniers outils Scenari pour la formation, notamment Parcours et Platine-suite.

          Elle souhaite avoir des retours sur ton usage de ces deux outils si tu en utilises un.

          Rends-toi sur son message sur le forum.

          Parler de Scenari aux Journées du Logiciel Libre (JDLL) à Lyon

          📣 Parler de Scenari aux Journées du Logiciel Libre (JDLL) à Lyon

          Cette année les JDLL auront lieu le week-end du 24-25 mai 2025, à l’ENS de Lyon site René Descartes.

          Tu es dans le coin, disponible et motivé pour y parler de ton usage de Scenari aux JDLL ?

          Loïc peut t’aider sur la partie présentation de l’association, de la communauté et des principes de Scenari.

          Tu as jusqu’au 16 mars pour faire une proposition de conférence ou atelier aux JDLL.

          ✨ Le savais-tu ?

          Depuis la version 6.3 de Scenari, un bouton permet de vider d’un coup la corbeille d’un atelier. Plus besoin d’éliminer un par un les items.

          Si tu utilises MySenari, nous te demandons de vider régulièrement tes corbeilles des ateliers afin d’économiser l’espace disque qui est partagé entre tous les utilisateurs et utilisatrices de MyScenari.

          vider d’un coup la corbeille d’un atelier

          📊 Le chiffre du mois

          1372 1372, C’est le nombre de membres sur le forum Scenari.

          🦋 Scenari présent dans…

          • Dans cette vidéo (à 7:28) liée au projet Pactes. Scenari est décrit comme un outil qui favorise l'accessibilité numérique.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          La liberté des calculatrices graphiques ?

          Les calculatrices graphiques sont de lointains dérivés des ordinateurs de poche des années 1980, dans lesquelles subsiste cette capacité native à pouvoir être programmé.
          J’en serais probablement resté à mon expérience de lycéen, et l’éternel combat Casio / Texas Instrument, s’il n’y avait pas eu un virage (pas forcément bien courbe) autour de Python dans la fin des années 2010.

          Entre passion de l’informatique, doux rêveur, promesse de calculatrice libre et réalité du marché… j’avais l’envie de vous partager mes quelques heures de recherches et de réflexions sur le sujet.

          Sommaire

          Ordinateur de poche, calculatrice et langage BASIC

          Les ordinateurs de poche existent depuis les années 80 et ont fait le succès de sociétés telles que Sharp, Casio ou Psion. Ils se confondent avec les calculatrices les plus évoluées, et restent aujourd’hui les seules survivantes de ces deux mondes.

          Elles sont programmables, majoritairement dans de nombreux dialectes du langage BASIC, directement sur la machine, mais aussi dans d’autres langages plus bas niveau, souvent via un ordinateur plus conventionnel.

          Une évolution de rupture

          Dans la fin des années 2010, deux évolutions sont poussées dans le monde des calculatrices : le « mode examen » et le besoin d’un langage plus moderne, beaucoup se tournant vers le langage Python.

          C’est l’occasion pour NumWorks de se lancer dans ce marché très spécial. Deux point sont mis en avant :

          • Le langage Python comme le langage de programmation utilisateur (alors que ce n’est qu’un autre ajout pour les constructeurs historiques).
          • Un modèle « libre », qui as fait beaucoup parler de ce nouveau venu, notamment ici.

          Libre - Un peu, beaucoup, à la folie, passionnément… pas du tout

          La mise en application s’est vite montrée moins claire. La libération matérielle tient, à en juger par leur GitHub, à huit fichiers STL, sous licence CC-BY-NC-ND, et dont la dernière mise à jour date de 2020. Il est donc interdit d’en faire des modifications et/ou une utilisation commerciale… une liberté relative.

          Le système d’exploitation, nommé epsilon, qui offre une bonne implémentation de Python, mais qui souffre de plusieurs problèmes de jeunesse, est bien disponible… mais également sous cette même licence CC-BY-NC-ND.

          Omega

          Critiquée pour cette différence entre le discours commercial de liberté, et la réalité de la licence, en mai 2018 elle fut finalement modifiée en CC-BY-NC-SA, autorisant donc la modification et la redistribution de versions modifiées. Il en naîtra notamment Omega un dérivé communautaire d’Epsilon, alors en version 11.

          Ma petite CASIO

          Dans un esprit de découverte, j’ai eu l’envie d’explorer moi-même ce nouveau monde du Python sur calculatrice. Peut-être un peu entrainé par les différentes lectures sur la calculatrice libre que je lisais un peu partout.

          Cependant, l’interprétation assez personnelle de NumWorks du libre, et l’obligation de passer par leur site pour communiquer avec la calculatrice a orienté mon choix vers une Casio Graph 90E.

          Pas que cette dernière soit plus libre, bien au contraire… juste qu’elle est simplement reconnue comme une clef USB pour y transférer des éléments depuis l’ordinateur et qu’elle a une communauté plus importante.

          Le micro-python qui y est intégré est limité, et s’il permet de faire des choses… on voit que le constructeur s’est limité à ce qui était juste nécessaire. Ce qui limite les possibilités laissées aux utilisateurs.

          J’aurais pu en rester là, et c’est même un peu ce que j’ai fait jusqu’à peu.

          NumWorks - L’esprit d’ouverture… ou pas

          Alors que j’explorais d’autres domaines, et que ma Casio prenait la poussière, le monde évoluait, et NumWorks en était à la 4ᵉ variante matérielle de sa calculatrice révolutionnaire.

          La définition du « Libre » par l’entreprise avait elle aussi eu le temps d’évoluer.

          Epsilon depuis sa version 16 du 30 novembre 2021, verrouille les calculatrices pour n’autoriser que les systèmes officiels du constructeur. Un peu à l’image des consoles de jeu, que certains hackent pour installer des homebrew ou firmware modifiés, il en devient de même pour la « calculatrice libre » : on chasse les évolutions communautaires.

          Epsilon en est aujourd’hui (28 février 2025) à sa version 23… sans volonté affichée d’ouverture supplémentaire. Le dépôt GitHub n’affiche pas de licence dans ses métadonnées, mais une mention « Copyright - All rights reserved. NumWorks is a registered trademark. » figure en bas de la page de présentation.

          Oméga a mis en pause son développement depuis février 2024, renvoyant vers une autre alternative Upsilon, qui ne s’installe pas mieux sur une calculatrice NumWorks verrouillée… mais quelqu’un a compilé pour la CASIO.

          La magie du libre

          C’est M. Bernard PARISSE qui a compilé une version d’Upsilon comme application pour la génération de CASIO que je possède. Je vous invite à en lire tous les détails sur la page de son projet.

          Arrivant donc à avoir le meilleur des mondes, le travail de NumWorks, les additions de la communauté et plus de puissance supplémentaire de ce matériel.

          Mais cela est conditionné par la possibilité de pouvoir faire fonctionner des applications tierces sur ces calculatrices…

          Vers la fin des applications avancées

          Il y a historiquement deux méthodes pour développer des applications pour ces calculatrices.

          Un langage haut niveau, qui est un dialecte BASIC, une adaptation de Python, ou d’autres langages plus ou moins évolués, qui sont directement modifiables sur l’appareil (même si le clavier d’une calculatrice n’y est pas toujours optimal).

          Un langage bas niveau, typiquement du C ou même de l’assembleur, édité et compilé sur un ordinateur puis transféré vers la calculatrice (même si certaines machines Sharp pouvaient se programmer en C directement sur la machine).

          Et c’est un point que met en valeur Bernard PARISSE dans son argumentaire sur Upsilon pour CASIO : l’ouverture de ce constructeur aux développements tiers.

          Mais voila, ce n’est pas forcément le sens que prennent les constructeurs, même chez CASIO.

          Le test communautaire de la CASIO Math+, qui succède à la Graph 90E, ne permet pas ces applications tierces développées en langage de bas niveau, et la conclusion sur ce point est tout sauf optimiste.


          Voila qui conclut ce petit tour dans le sous-domaine de l’informatique qu’est celui des calculatrices graphiques, même si ce n’est probablement pas ce qui vous servira dans une discussion autour de la machine à café (sauf, peut-être, si vous êtes prof de math).

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          ❌