Vue lecture

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

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

          Unvanquished 0.55, enfin là !

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

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

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

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

          Sommaire

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

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

          Gameplay

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

          Bots

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

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

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

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

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

          Interface utilisateur

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

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

          Traductions

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

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

          Nouveaux visuels

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

          Le chaingun Le nouveau chaingun d’extreazz.

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

          La painsaw La nouvelle painsaw d’Alex Tikkoiev.

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

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

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

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

          Fichier d’entité

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

          Le futur est lumineux

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

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

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

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

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

          Corrections du moteur de rendu

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

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

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

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

          Performance améliorées

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

          Le moteur et le jeu sont plus rapides que jamais !

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

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

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

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

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

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

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

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

          Bien entendu que ça fait tourner Unvanquished !

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

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

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

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

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

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

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

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

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

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

          Nouveaux joujoux

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

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

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

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

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

          À venir

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

          Il est temps de jouer !

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

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          GIMP 3.0 RC3 est sorti

          Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC3 du 10 février 2025 (en anglais).

          Nous sommes ravis de partager la troisième version candidate de GIMP 3.0 pour ce qui (nous l'espérons) sera la dernière série de tests communautaires avant la version stable ! Cette version fait suite à la récente conférence GIMP 3 and Beyond de Jehan au FOSDEM 2025.

            Sommaire

            Corrections de bogues et changements importants

            Alors que nous réduisions les quelques derniers bogues majeurs à néant, nous avons effectué un certain nombre de modifications qui selon nous nécessitent un sérieux coup d’œil de la communauté.
            Jetez-en donc un, d’œil, sur les points suivants lorsque vous essayerez la Release Candidate:

            Nouvelle version de GTK3

            Juste à temps pour GIMP 3.0, une nouvelle version de GTK3 est sortie !
            Entre autres changements, GTK 3.24.48 inclut des correctifs pour plusieurs bugs affectant GIMP avec des patchs initialement fournis par Jehan, comme un crash dans Wayland lors du déplacement de calques et des problèmes de texte dans certains widgets avec des langues de droite à gauche. Nous tenons à remercier Carlos Garnacho et Matthias Clasen pour leur aide sur ces patchs respectifs.

            GTK 3.24.48 ajoute également la prise en charge de la version 2 de xdg_foreign pour Wayland (la v1 reste prise en charge en tant que solution de secours). Plus précisément, l'absence de cette prise en charge provoquait le blocage de GIMP avec certaines actions sur KDE/Wayland, ce qui est désormais corrigé.

            En raison de ces problèmes (certains d'entre eux rendant GIMP vraiment instable sur Wayland), nous recommandons aux empaqueteurs de mettre à jour vers la dernière version de GTK3 lors de l'empaquetage de notre RC3. Cependant, veuillez nous informer si vous remarquez des régressions ou d'autres problèmes résultant de la nouvelle version de GTK3.

            Améliorations du graphe d'images

            Grâce à l'édition non destructive dans GIMP, les utilisateurs peuvent désormais empiler plusieurs filtres les uns sur les autres. Ces filtres fonctionnent généralement dans un format à haute résolution de bits, de sorte que les informations de l'image ne sont pas perdues. Cependant, la sortie de chaque filtre était convertie vers et depuis la résolution de l'image d'origine lors de l'empilement. Ainsi, si l'image n'était que de 8 bits, une grande quantité d'informations était perdue dans ces conversions constantes. Jehan a résolu ce problème en convertissant uniquement au format de l'image lorsque le filtre est censé être fusionné, plutôt que dans des piles non destructives. Comme il s'agit d'un changement important dans le fonctionnement des filtres, nous souhaitons que davantage d'utilisateurs testent ce changement pour détecter d'éventuelles régressions.

            Changements dans Projection Thread-safe

            Lorsque des modifications sont apportées à une image (comme une peinture), la projection de l'image doit être « vidée » pour afficher les nouvelles modifications à l'écran. Certains aspects de ce processus n'étaient pas « thread-safe », ce qui signifie que lorsque votre ordinateur utilisait plusieurs threads pour accélérer le travail, ils pouvaient entrer en conflit les uns avec les autres et provoquer un plantage. Cela a été observé dans notre fonctionnalité d'expansion automatique de calques. Jehan a corrigé la fonction pour qu'elle soit entièrement thread-safe. Cependant, les modifications apportées au multithreading peuvent laisser des bugs bien cachés, donc des tests communautaires supplémentaires seraient utiles.

            Procédures privées

            Le navigateur de base de données procédurale de GIMP montre aux développeurs de greffons et de scripts toutes les fonctions auxquelles ils peuvent accéder. Jusqu'à présent, il affichait également les fonctions « privées » qui ne sont utilisées qu'en interne. Jehan a ajouté un indicateur pour masquer ces fonctions. Dans un premier temps, nous avons ratissé trop large et caché certaines fonctions publiques importantes. Bien que nous ayons corrigé ces cas, nous aimerions que la communauté nous donne plus de détails pour nous assurer que nous n'avons oublié aucune fonction publique mal étiquetée.

            Améliorations

            Bien que nous soyons toujours en phase de gel des fonctionnalités majeures jusqu'à la version stable de GIMP 3.0, quelques améliorations mineures et autonomes ont été apportées aux greffons.

            Script-fu

            API Filtre

            Le nouvel appel PDB (gimp-drawable-merge-filter) permet aux auteurs de Script-fu d'utiliser des étiquettes pour spécifier les propriétés des filtres. Cela donnera aux utilisateurs de Script-fu la même flexibilité pour appeler et mettre à jour les filtres que les développeurs de greffons C et Python ont dans l'API GIMP 3.0. À titre d'exemple, voici un appel au filtre Emboss :

            (gimp-drawable-merge-new-filter mask-emboss "gegl:emboss" 0 LAYER-MODE-REPLACE 1.0 "azimuth" 315.0 "elevation" 45.0 "depth" 7 "type" "emboss")
            

            Vous pouvez voir plus d'exemples dans notre dépôt de scripts.

            Nouvelle syntaxe de passage des arguments par noms

            Dans Script-Fu, toutes les fonctions générées à partir de la procédure PDB des greffons doivent désormais être appelées avec une toute nouvelle syntaxe d'argument nommé, inspirée de la variante Racket de Scheme.

            Par exemple, disons que votre greffon souhaite appeler le greffon Foggify, au lieu d'appeler :

            (python-fu-foggify RUN-NONINTERACTIVE 1 (car (gimp-image-get-layers 1)) "Clouds" '(50 4 4) 1.0 50.0)

            Vous devez maintenant appeler :

            (python-fu-foggify #:image 1 #:drawables (car (gimp-image-get-layers 1)) #:opacity 50.0 #:color '(50 4 4))

            Cela présente quelques avantages :

            • des appels beaucoup plus auto-documentés, d'autant plus que certains greffons ont beaucoup d'arguments (on pouvait donc se retrouver avec des fonctions avec une douzaine d'entiers ou de flottants et c'était très déroutant) ;
            • l'ordre des arguments n'a plus d'importance ;
            • vous pouvez ignorer les arguments lorsque vous les appelez avec des valeurs par défaut ;
            • cela permet d'améliorer les procédures des greffons dans le futur en ajoutant de nouveaux arguments sans casser les scripts existants.

            Ce dernier point en particulier est important, et l'ordre des arguments n'avait plus d'importance lors de l'appel de procédures PDB depuis l'API C, ainsi que toutes les liaisons introspectées. Script-Fu était la seule interface restante dont nous disposions qui se souciait encore de l'ordre et du nombre d'arguments. Ce n'est plus le cas et c'est donc un grand pas vers une API beaucoup plus robuste pour GIMP 3 !

            Formats de fichiers

            Toutes les modifications apportées aux greffons de chargement d'images sont vérifiées avec le cadriciel de tests automatisés créé par Jacob Boerema pour éviter les régressions.

            PSD

            En plus des corrections de bogues telles que l'enregistrement correct des images fusionnées CMJN, Jacob Boerema a ajouté la prise en charge du chargement des fichiers PSD LAB 16 bits par canal. Il a également mis à jour la boîte de dialogue d'exportation PSD pour utiliser les fonctions d'exportation de métadonnées intégrées de GIMP.

            DDS

            CMYK Student a implémenté la prise en charge très demandée du chargement d'images DDS avec prise en charge BC7. Jacob Boerema a travaillé pour corriger la compatibilité avec les fichiers DDS exportés à partir d'anciennes versions de GIMP.

            AppImage: c'est officiel !

            Après neuf mois d'incubation (le nombre est une simple coïncidence 🙂), nous présentons un « nouveau » format de distribution pour les utilisateurs Linux : .AppImage. Au départ, nous l'utilisions comme format interne pour les tests, comme déjà évoqué dans des articles précédents. Les efforts de Bruno Lopes nous ont permis d'améliorer le processus de construction. Nous sommes maintenant confiants avec l'AppImage générée et nous avons donc pour objectif de la rendre officielle.

            En tant que package officiel en amont, aucun greffon tiers sophistiqué ou autre binaire arbitraire qui ne soit pas une dépendance de GIMP n'est ajouté pour ne pas le « surcharger ». C'est ce que certains appellent GIMP « vanilla », un GIMP propre mais complet pour la production (c'est-à-dire pour une utilisation générale).

            Comme tout format d'empaquetage, il a ses propres caractéristiques et limites. Dans le cas de l'AppImage de GIMP, les outils inclus tels que gimp-console* et gimp-debug-tool* nécessitent une extraction préalable du fichier .AppImage avec la commande --appimage-extract. De plus, en partie à cause de la conception d'AppImage, les commandes qui pointent vers $PWD ne fonctionneront pas. Ces deux limitations de fonctionnalités sont les seules connues à ce jour. Donc, si vous en trouvez d'autres ou même des bogues, veuillez les signaler sur notre outil de suivi.

            Divers

            • Il est maintenant plus facile de charger des images depuis Google Drive ainsi que d'autres plateformes distantes ou dans le cloud, sans avoir a sélectionner un format de fichier pour essayer de l'ouvrir.

            • Notre processus de création génère désormais des icônes supplémentaires avec l'extension -rtl, qui sont automatiquement utilisées avec les langues s'écrivant de droite à gauche. Les icônes de flèches gauche et droite en sont un exemple : elles sont désormais orientées dans la bonne direction dans les deux types de langues.

            • Les développeurs de greffons n'ont plus besoin de créer des boutons de sélection de fichiers personnalisés - GimpProcedureDialog les crée désormais automatiquement lorsqu'un paramètre de type de fichier est utilisé. Vous pouvez également spécifier si le bouton sert à ouvrir ou à enregistrer des fichiers et des dossiers.

            • Rupert Weber a continué ses efforts pour nettoyer notre greffon BMP. De plus, il travaille actuellement à ajouter la prise en charge de l'importation de profils de couleurs dans les BMP, qui, espérons-le, sera prête dans une future version.

            • CMYK Student a mis à jour le greffon ICNS avec une nouvelle prise en charge des types d'icônes « ic05 » et des formats d'icônes ARGB. Ils ont également corrigé un bogue lors du chargement d'anciens formats ICNS sans masque de transparence. Lukas Oberhuber a aidé à diagnostiquer et à résoudre un bogue connu dans le format ICNS qui faisait que notre icône macOS affichait des pixels brouillés dans les petites tailles.

            GEGL

            La version 0.4.54 de GEGL contient également quelques améliorations et corrections de bogues. Thomas Manni a mis à jour le filtre Noise Spread pour éviter les bogues lorsqu'il est appliqué à des groupes de calques vides. Jonny Robbie a ajouté de nouvelles options et de nouveaux types de papier au filtre Negative Darkroom, et a optimisé certaines opérations en virgule flottante dans GEGL dans son ensemble.

            Statistiques

            Depuis GIMP 3.0 RC2, dans le dépôt principal de GIMP :

            • 85 rapports ont été fermés comme RÉPARÉS ;
            • 56 demandes de fusion ont été acceptées ;
            • 335 commits ont été poussés ;
            • 19 traductions ont été mises à jour : basque, bulgare, catalan, chinois (Chine), danois, néerlandais, finnois, géorgien, italien, norvégien nynorsk, persan, portugais, slovaque, slovène, espagnol, suédois, turc, ukrainien, vietnamien.

            33 personnes ont contribué à des modifications ou des correctifs à la base de code de GIMP 3.0.0 RC3 (l'ordre est déterminé par le nombre de commits ; certaines personnes sont dans plusieurs groupes) :

            • 13 développeurs pour le code principal : Jehan, Alx Sa, Jacob Boerema, Lloyd Konneker, Anders Jonsson, Thomas Manni, Bruno, Daniele Forsi, Lloyd Konneker, Lukas Oberhuber, Rupert, cheesequake, Øyvind Kolås ;
            • 10 développeurs de greffons ou modules : Alx Sa, Jacob Boerema, Jehan, Rupert, Lloyd Konneker, Anders Jonsson, Bruno, Daniel Novomeský, Daniele Forsi, lillolollo ;
            • 19 traducteurs : Alan Mortensen, Alexander Shopov, Nathan Follens, Kolbjørn Stuestøl, Hugo Carvalho, Asier Sarasua Garmendia, Ngọc Quân Trần, Jordi Mas, Marco Ciampa, Sabri Ünal, Anders Jonsson, Danial Behzadi, Ekaterine Papava, Jiri Grönroos, Jose Riha, Luming Zh, Martin, Rodrigo Lledó, Yuri Chornoivan ;
            • 1 Concepteur de thème : Alx Sa ;
            • 6 contributeurs pour la compilation, l’empaquetage ou l’intégration continue : Bruno, Jehan, Lloyd Konneker, Alx Sa, Rupert, Jacob Boerema.

            Contributions sur d'autres dépôts dans GIMPverse (l'ordre est déterminé par le nombre de commits) :

            • GEGL 0.4.54 est composé de 11 commits de 16 contributeurs : Øyvind Kolås, Alexander Shopov, Hugo Carvalho, JonnyRobbie, Alan Mortensen, Anders Jonsson, Asier Sarasua Garmendia, Bartłomiej Piotrowski, Jehan, Martin, Nathan Follens, Nils Philippsen, Rodrigo Lledó, Sam L, Thomas Manni, Yuri Chornoivan ;
            • ctx a enregistré 233 commits depuis la sortie de RC2 par 1 contributeur : Øyvind Kolås ;
            • gimp-data a enregistré 6 commits de 4 contributeurs : Bruno, Jehan, Alx Sa, Andre Klapper ;
            • gimp-test-images (nouveau référentiel pour les tests de prise en charge des images) a enregistré 5 commits de 2 contributeurs : Jacob Boerema, Alx Sa ;
            • la version gimp-macos-build (scripts de packaging macOS) a eu 6 commits par 2 contributeurs : Lukas Oberhuber, Bruno ;
            • la version flatpak a eu 12 commits par 3 contributeurs après la version RC2 : Bruno Lopes, Jehan, Hubert Figuière ;
            • notre site web principal a eu 42 commits par 6 contributeurs : Jehan, Alx Sa, Bruno, Jacob Boerema, Andre Klapper, Petr Vorel ;
            • notre site web de développement a eu 18 commits par 5 contributeurs : Jehan, Bruno, Lukas Oberhuber, Alx Sa, Anders Jonsson ;
            • notre documentation 3.0 comptait 373 commits de 13 contributeurs : Andre Klapper, Kolbjørn Stuestøl, Nathan Follens, Jacob Boerema, Alan Mortensen, Yuri Chornoivan, Dick Groskamp, ​​Jordi Mas, Alevtina Karashokova, Alx Sa, Anders Jonsson, Daniele Forsi, Hugo Carvalho.

            N'oublions pas de remercier toutes les personnes qui nous aident à trier dans Gitlab, à signaler les bugs et à discuter des améliorations possibles avec nous.
            Notre communauté est également profondément reconnaissante envers les guerriers d'Internet qui gèrent nos divers canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

            Remarque : compte tenu du nombre de parties dans GIMP et de la façon dont nous obtenons des statistiques via les scripts « git », des erreurs peuvent se glisser dans ces statistiques. N'hésitez pas à nous dire si nous avons oublié ou mal classé certains contributeurs ou contributions.

            Autour de GIMP

            Miroirs de téléchargement

            Depuis la publication de la nouvelle version 3.0RC2, deux nouveaux miroirs ont été ajoutés :

            • Saswata Sarkar, Gurugram, Inde ;
            • Hoobly Classifieds, États-Unis.

            Les miroirs sont importants car ils aident le projet en répartissant la charge pour des dizaines de milliers de téléchargements quotidiens. De plus, en ayant des miroirs répartis dans le monde entier, nous garantissons que tout le monde peut avoir un accès rapide au téléchargement de GIMP.

            Comment citer GIMP dans la recherche

            GIMP est souvent utilisé dans la recherche et est donc cité dans diverses publications scientifiques. Un chercheur utilisant GIMP pour le traitement d'images astronomiques nous a contactés pour savoir comment citer GIMP correctement, d'autant plus qu'il est utilisé pour effectuer une étape importante de son algorithme.

            Comme cela semble être une question intéressante, nous avons mis à jour notre page « Citing GIMP and Linking to Us » avec une nouvelle sous-section « Citing GIMP in research » contenant la conclusion de cette discussion.

            En particulier, une entrée BibTex, destinée aux chercheurs utilisant LaTeX pour gérer leur bibliographie, est disponible sur ce lien pour simplifier votre travail. Par exemple, disons que vous utilisez ce RC3 pour vos recherches, vous pouvez citer GIMP avec cette entrée :

            @software{GIMP,
                author = {{The GIMP Development Team}},
                title = {GNU Image Manipulation Program (GIMP), Version 3.0.0-RC3. Community, Free Software (license GPLv3)},
                year = {2025},
                url = {https://gimp.org/},
                note = {Version 3.0.0-RC3, Free Software}
            }

            Merci à Cameron Leahy pour ce morceau de code BibTex !

            Télécharger GIMP 3.0 RC3

            Vous trouverez toutes nos versions officielles sur le site officiel de GIMP (gimp.org) :

            • Linux AppImages pour x86 et ARM (64 bits) ;
            • Linux Flatpaks pour x86 et ARM (64 bits) ;
            • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits) ;
            • Paquet MSIX (GIMP Preview) pour x86 et ARM (64 bits) ;
            • Paquets macOS DMG pour le matériel Intel ;
            • Paquets macOS DMG pour le matériel Apple Silicon.

            D'autres paquets réalisés par des tiers devraient évidemment suivre (paquets de distributions Linux ou *BSD, etc.).

            Et ensuite ?

            Nous apprécions vraiment tous les tests et commentaires de la communauté que nous avons reçus au cours des deux dernières versions candidates !
            Nous espérons que ce sera la dernière version candidate avant la version stable 3.0. Notre objectif est maintenant de terminer la résolution des quelques bugs restants dans notre liste de jalons 3.0, tout en gardant un œil sur les nouveaux rapports résultant des changements dans RC3.

            N’oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, afin de contribuer et d’accélérer le développement de GIMP. L’engagement de la communauté aide le projet à se renforcer !

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            Nouvelles de Haiku - Hiver 2024-25

            Haiku est un système d’exploitation pour les ordinateurs personnels. Il s’agit à l’origine d’une réécriture de BeOS. Le projet a démarré en 2001 et est actuellement en phase de beta-test pour une première version stable avec support à long terme. Depuis 2024, l’activité du projet Haiku s’accélère grâce entre autres à l’embauche d’un développeur à plein temps. Les dépêches sur Haiku sont donc désormais publiées tous les 3 mois au lieu de tous les ans pour leur conserver une longueur digeste.

            La complète liste des changements survenus pendant ces 3 mois comporte près de 300 commits. La dépêche ne rentre pas dans les détails de chaque changement et met en valeur les plus importants.

            Les grosses évolutions sont un nouveau port de Iceweasel (Firefox), et des grosses améliorations sur la gestion de la mémoire.

            Comme on est en début d’année, c’est aussi le moment du bilan financier.

            Sommaire

            Rapport financier 2024

            Recettes

            L’association Haiku inc (association de type 501(c)3 aux USA) publie chaque année un rapport financier. Le rôle de l’association est de récolter les dons et de les redistribuer pour aider au développement de Haiku. Elle ne prend pas part aux décisions techniques sur l’orientation du projet, et habituellement les dépenses sont faites en réponse aux demandes des développeurs du projet.

            L’objectif en début d’année 2024 était de récolter 20 000$ de dons. Cet objectif a été largement atteint, il a dû être mis à jour 2 fois en cours d’année et finalement ce sont plus de 31 000$ qui ont été reçus ! Cela en particulier grace à un assez gros don de 7 500$.

            Les dons sont récoltés via différentes plateformes: Github Sponsors (intéressant, car il n’y a aucun frais de traitement), PayPal, Liberapay, Benevity (une plateforme de « corporate matching »), ainsi que des paiements par chèque, virements bancaires, et en espèce lors de la tenue de stands dans des conférences de logiciels libres. La vente de T-Shirts et autre merchandising via la boutique Freewear reste anecdotique (une centaine de dollars cette année).

            Il faut ajouter à ces dons une contribution de 4 400$ de la part de Google en compensation du temps passé à l’encadrement des participants au Google Summer of Code.

            Il faut également ajouter des dons en crypto-monnaies, principalement en bitcoins. Le rapport financier présente les chiffres en détail en tenant une compatibilité séparée en dollars, en euros, et en crypto-monnaies, avant de convertir le total en dollars pour dresser un bilan complet.

            Une mauvaise nouvelle tout de même: le service de microdons Flattr a fermé ses portes. L’entreprise propose maintenant un service de bloqueur de publicités payant, qui reverse de l’argent aux sites dont les publicités sont bloquées.

            Le compte Flattr de Haiku avait été créé pour recevoir des dons sur la plateforme, mais n’avait jamais été configuré pour transférer ces dons vers le compte en banque de l’association. Malgré un certain temps passé à discuter avec le service client de Flattr et à leur fournir tous les documents demandés, il n’a pas été possible de trouver une solution pour récupérer cet argent. Ce sont donc 800$ qui ne reviendront finalement pas au projet Haiku.

            Au final, les recettes sont de 36 479 dollars, de loin la plus grosse somme reçue par le projet en un an.

            Dépenses

            La dépense principale est le paiement de Waddlesplash, le développeur actuellement employé par Haiku inc pour accélérer le développement du système (les autres développeurs participent uniquement sur leur temps libre, en fonction de leurs autres activités). Cela représente 25 500$, un coût assez faible par rapport au travail réalisé.

            Le deuxième poste de dépenses est l’infrastructure, c’est-à dire le paiement pour l’hébergement de serveurs, les noms de domaines, et quelques services « cloud » en particulier pour le stockage des dépôts de paquets.

            Le reste des dépenses consiste en frais divers (commission PayPal par exemple), remboursement de déplacements pour la participation à des conférences, ainsi que le renouvellement de la marque déposée sur le logo Haiku.

            Le total des dépenses s’élève à 31 467$. C’est moins que les recettes, et l’association continue donc de mettre de l’argent de côté. L’année 2022 a été la seule à être déficitaire, suite au démarrage du contrat de Waddlesplash. Ce contrat est à présent couvert par les donations reçues.

            Réserves

            L’association dispose de plus de 100 000$ répartis sur son compte en banque, un compte PayPal (qui permet de conserver des fonds en euros pour les paiements en euros et ainsi d’éviter des frais de change), et un compte Payoneer (utilisé pour recevoir les paiements de Google).

            Elle dispose également de près de 350 000$ en crypto-monnaies dont la valeur continue d’augmenter. Cependant, actuellement ces fonds ne sont pas accessibles directement, en raison de problèmes administratifs avec Coinbase, l’entreprise qui gère ce portefeuille de crypto-monnaies. Le compte n’est pas configuré correctement comme appartenant à une association à but non lucratif et cela pose des problèmes de déclaration de taxes lorsque on souhaite vendre des crypto-monnaies contre du vrai argent. Cette situation persiste depuis plusieurs années, mais l’association n’a pour l’instant pas besoin de récupérer cet argent, les réserves dans le compte en banque principal étant suffisantes.

            Applications

            Iceweasel

            Le navigateur web Iceweasel est disponible dans les dépôts de paquets (seulement pour la version 64 bits pour l’instant). Il s’agit d’un portage de Firefox utilisant la couche de compatibilité Wayland. Le nom Firefox ne peut pas être utilisé puisqu’il ne s’agit pas d’un produit officiel de Mozilla.

            En plus du travail de portage pour réussir à faire fonctionner le navigateur, cela a nécessité un gros travail d’amélioration au niveau de la gestion de la mémoire, une partie du système qui est fortement mise à contribution par ce navigateur. On en reparle plus loin dans la dépêche.

            Le navigateur est encore considéré comme expérimental: plusieurs fonctions sont manquantes et il peut y avoir des plantages. WebPositive (le navigateur natif basé sur WebKit) reste donc le navigateur installé par défaut avec Haiku, mais les deux sont complémentaires. Par exemple, Iceweasel permet d’afficher les vidéos Youtube avec des performances acceptables.

            Tracker

            Tracker est le gestionnaire de fichiers de Haiku. Il implémente une interface « spatiale », c’est-à-dire que chaque dossier s’ouvre dans une fenêtre séparée et enregistre sa position à l’écran.

            Le code du Tracker fait partie des composants qui ont pu être récupérés de BeOS. Cela signifie que certaines parties du code ont été développées il y a près de 30 ans, dans un contexte où l’élégance du code n’était pas la priorité (il fallait pour les développeurs de BeOS, d’une part livrer un système fonctionnel dans un temps raisonable, et d’autre part, fonctionner sur les machines relativement peu performantes de l’époque).

            Les évolutions sur le Tracker nécessitent donc souvent du nettoyage dans de nombreuses parties du code, et provoquent souvent des régressions sur d’autres fonctionnalités. Toutefois, les choses s’améliorent petit à petit.

            Ce trimestre, on a vu par exemple arriver la correction d’un problème avec l’utilisation de la touche « echap ». Cette touche peut servir à plusieurs choses:

            • Fermer une fenêtre de chargement ou d’enregistrement de fichier,
            • Annuler le renommage d’un fichier,
            • Annuler une recherche rapide « type ahead » qui consiste à taper quelques lettres et voir immédiatement la liste de fichiers du dossier courant se réduire à ceux qui contiennent cette chaîne de caractères.

            Ces différentes utilisations peuvent entrer en conflit. Plus précisément, lorsqu’on utilise le filtrage « type ahead », puis qu’on change d’avis et qu’on appuie sur la touche « echap », il ne faut pas que cela ferme la fenêtre en même temps.

            Un autre changement concerne plutôt la validation des données: Tracker interdit l’insertion de caractères de contrôle ASCII dans le nom de fichiers. Ce n’est pas strictement interdit (ni par Haiku, ni par ses systèmes de fichiers, ni par POSIX) en dehors de deux caractères spéciaux: le '/' et le 0 qui termine une chaîne de caractères. Mais, c’est très probablement une mauvaise idée d’avoir un retour à la ligne ou un autre caractère de contrôle enregistré dans un nom de fichier. Le Tracker interdit donc désormais de le faire et si vous êtes vraiment résolu à y parvenir, il faudra passer par le terminal.

            Enfin, une nouvelle fonctionnalité dans le Tracker est la mise à jour en temps réel des menus pop-up. Cela peut se produire pour plusieurs raisons, par exemple, l’appui sur la touche « command » modifie le comportement de certains menus. Avant ce changement, il fallait ré-ouvrir le menu (command + clic droit) pour voir ces options modifiées. Maintenant, on peut d’abord ouvrir le menu, puis maintenir la touche command enfoncée pour voir les options modifiées.

            Cela a nécessité une refonte complète de la gestion de ces menus (qui proposent de nombreuses autres choses comme la navigation « rayons X »). Au passage, certaines options qui étaient uniquement disponibles au travers de raccourcis claviers ou de la barre de menu des fenêtres du Tracker sont maintenant aussi affichées dans le menu pop-up.

            TeamMonitor

            TeamMonitor est le gestionnaire d’applications affiché quand on utilise la combinaison de touches Ctrl+Alt+Suppr. Il permet de stopper des programmes, de redémarrer la machine, et autres manipulations d’urgence si le système ne fonctionne pas comme il faut.

            Les processus lancés par une même application sont maintenant regroupés et peuvent être tous arrêtés d’un seul coup. Ce changement est nécessaire suite à l’apparition de IceWeasel, qui crée beaucoup de processus en tâche de fond pour une seule instance du navigateur web.

            HaikuDepot

            HaikuDepot est l’interface graphique pour le système de paquets de Haiku. Il se présente comme un magasin d’applications, permettant non seulement d’installer et de désinstaller des logiciels, mais aussi de les évaluer avec une note et un commentaire.

            • Ajout d’un marqueur sur les icônes des paquets qui sont déjà installés, et remplacement du marqueur utilisé pour indiquer les applications « natives » (utilisant le toolkit graphique de Haiku, par opposition à Qt et GTK par exemple).
            • Affichage plus rapide de l’état « en attente d’installation » lorsqu’on demande l’installation d’un paquet.
            • L’interface pour noter un paquet est masquée si l’attribution de notes n’est pas possible.

            Préférences

            Diverses améliorations dans les fenêtres de préférences:

            • Correction d’un crash dans les préférences d’affichage (korli).
            • Les préférences de fond d’écran n’acceptent plus le glisser-déposer d’une couleur sur un contrôle de choix de couleur désactivé. La modification de la position X et Y de l’image de fond se met à jour en temps réel quand on édite la valeur des contrôles correspondants.
            • Ajout de réglages supplémentaires (vitesse, accélération, défilement) dans les préférences des pavés tactiles. Ces options étaient déjà implémentées dans l’input_server, mais configurable uniquement pour les souris.
            • Suppression de code mort et amélioration de la gestion des polices de caractères dans les préférences d’apparence.

            Plusieurs améliorations sur les préférences de sons de notifications:

            • La fenêtre de sélection de fichiers retient le dernier dossier utilisé,
            • Elle permet également d’écouter un son avant de le sélectionner,
            • Les menus de sélection rapide de sons affichent uniquement les fichiers et pas les dossiers,
            • Certains sons ont été renommés.

            La plupart des sons ne sont cependant toujours pas utilisés par le système.

            Expander

            Expander est un outil permettant d’extraire plusieurs types de fichiers archivés.

            Peu de changement sur cet outil qui est assez simple et fonctionnel. La seule amélioration ce mois-ci concerne un changement des proportions de la fenêtre pour éviter un espace vide disgracieux.

            Cortex

            Cortex est une application permettant de visualiser et de manipuler les nœuds de traitement de données du Media Kit.

            Le composant « logging consumer » qui reçoit des données d’un autre noeud et les enregistre dans un fichier de log pour analyse a été amélioré pour enregistrer un peu plus d’informations.

            Icon-O-Matic

            L’éditeur d’icônes vectoriels Icon-O-Matic évolue peu, après un projet Google Summer of Code qui a ajouté la plupart des fonctionnalités manquantes. Ce trimestre, un seul changement: l’ajout d’une entrée menu pour supprimer un « transformeur ».

            PowerStatus

            L’application PowerStatus affiche l’état de la batterie. Cela peut se présenter comme une icône dans la barre des tâches. L’icône est de taille réduite, et les différents états n’étaient pas forcément bien visibles. Ce problème a été corrigé avec des nouveaux marqueurs pour l’état de la batterie (en charge ou inactive).

            StyledEdit

            StyledEdit est un éditeur de texte simple, permettant tout de même de formater le texte (un peu comme WordPad pour Windows).

            L’application reçoit une nouvelle option pour écrire du texte barré. Le code nécessaire a également été ajouté dans app_server, puisque cette possibilité était prévue, mais non implémentée.

            WebPositive

            Le navigateur WebPositive reçoit peu d’évolutions en ce moment, en dehors de la maintenance du moteur WebKit. On peut tout de même mentionner l’ajout d’un menu contextuel sur les marque-pages, permettant de les renommer et de les supprimer. Ce développement est issu d’un vieux patch réalisé par un candidat au Google Summer of Code, qui ne fonctionnait pas et n’avait jamais été finalisé.

            Mode sombre et configuration des couleurs

            Depuis la version Beta 5, Haiku dispose d’un nouveau système de configuration des couleurs, permettant d’obtenir facilement un affichage en « mode sombre ». Cependant, cet affichage est loin d’être parfait, et de petits ajustements sont à faire petit à petit dans toutes les applications qui n’avaient pas été pensées pour cela. En particulier, le changement de couleurs se fait en direct lorsqu’on change les réglages. On trouve ces trois derniers mois des changements dans DeskBar, Tracker, HaikuDepot, l’horloge, ainsi que la classe BTextView.

            Outils en ligne de commande

            pkgman peut rechercher les paquets installés et qui n’ont aucun autre paquet dépendant d’eux. Cela permet de trouver des paquets inutiles qui peuvent être désinstallés (il manque encore la possibilité de marquer un paquet comme étant « installé manuellement » avant de pouvoir automatiser le nettoyage).

            La commande route accepte la syntaxe utilisée par openvpn pour la configuration d’une route par défaut, ce qui facilite l’utilisation de VPN avec Haiku.

            Correction d’un problème dans le compilateur de ressources: la commande rc -d ne savait pas décompiler la structure app_version des applications Haiku, uniquement le format plus ancien utilisé par BeOS.

            La commande screenmode permet maintenant de récupérer la valeur actuelle du réglage du rétro-éclairage (en plus de permettre de changer cette valeur).

            Kits

            La bibliothèque de fonctions de Haiku est découpée en « kits » qui regroupent un ensemble de classes et de fonctionnalités liées.

            Application kit

            L’Application Kit permet, comme son nom l’indique, de lancer des applications. Il offre également toutes les fonctionnalités de boucles d’évènements, et d’envoi de messages entre applications et entre composants d’une application.

            Correction d’un problème de suppression d’un port dans la classe BApplication.

            Debug kit

            Le Debug Kit fournit les services nécessaires au Debugger pour débugger une application. Cela consiste d’une part en un accès privilégie à l’espace mémoire d’une application, et d’autre part en outils pour analyser les fichiers ELF des exécutables et bibliothèques.

            Le Debug Kit reçoit ce trimestre plusieurs évolutions et corrections permettant le décodage des stack traces dans les programmes compilés avec clang et lld. Par exemple, les fichiers ELF générés par ces outils sont découpés en plusieurs segments, alors que ce n’est pas le cas pour gcc.

            Device Kit

            Le Device Kit regroupe tout ce qui concerne l’accès direct au matériel et aux entrées-sorties depuis l’espace utilisateur: ports série, accès direct aux périphériques USB, accès aux joysticks et manettes de jeu.

            Les ports série RS232 peuvent être configurés avec des valeurs en baud personnalisées (pour l’instant uniquement pour les adaptateurs série USB).

            Interface kit

            L’Interface Kit regroupe tout ce qui concerne l’affichage de fenêtres et de vues à l’écran et les interactions avec ces fenêtres.

            • Ajout de constructeur « move » et d’opérateur d’assignation pour BRegion et BShape pour améliorer les performances en évitant les copie d’objet immédiatement suivies de suppression.
            • Ajout d’un constructeur pour BRect avec deux arguments (largeur et hauteur) pour les rectangles alignés en haut à gauche ou dont la position n’a pas d’importance.
            • Remise en place d’un cas particulier dans BBitmap::SetBits pour la gestion du canal alpha afin d’avoir un comportement plus proche de celui de BeOS.
            • BColorControl réagit correctement et déclenche les évènements nécessaires lorsqu’on modifie sa couleur par glisser-déposer.

            Media Kit

            Correction d’une assertion vérifiant la mauvaise condition dans BTimeSource.

            Réécriture de la classe BTimedEventQueue pour améliorer ses performances en évitant d’allouer de la mémoire dynamique.

            Amélioration de l’affichage des « media controls » (sliders de contrôle de volume par exemple) en mode sombre.

            libshared

            La « libshared » contient plusieurs classes expérimentales, en cours de développement, mais déjà utilisées par plusieurs applications. Il s’agit d’une bibliothèque statique, ce qui permet de changer facilement son contenu sans casser l’ABI des applications existantes.

            Ajout de la classe ColorPreview qui existait en plusieurs exemplaires dans le code de Haiku (préférences d’apparence et Terminal). Cette classe permet d’afficher une couleur dans un petit rectangle. Elle est utilisée à plusieurs endroits dans des contrôles de choix de couleur plus complexes, tels que des listes ou des menus.

            Servers

            Les servers sont des processus systèmes implémentant différentes fonctionnalités de Haiku. Le concept est similaire à celui des daemons dans UNIX, ou des services dans Windows NT et systemd.

            app_server

            L’app_server s’occupe de l’affichage des applications à l’écran.

            Suppression de code inutilisé depuis longtemps permettant l’accélération matérielle d’opérations de dessin en 2D (blit, tracé de lignes, remplissage de rectangles…).

            Sur les cartes graphiques PCI, ces opérations étaient souvent réalisées plus rapidement par le CPU qui tourne à une fréquence bien plus rapide que la carte. Sur les cartes AGP, l’accès en lecture à la mémoire vidéo par le CPU est très lent, et il était donc plus intéressant de faire ces opérations en RAM centrale avant d’envoyer un buffer prêt à afficher à la carte graphique. Enfin sur les cartes PCI express modernes, ces fonctions d’accélération ont disparu ou en tout cas n’ont pas du tout une interface compatible avec les besoins de Haiku. Il est donc temps de jeter ce code.

            Modification de la façon dont les applications récupèrent la palette de couleurs en mode graphique 256 couleurs: elle utilise maintenant une mémoire partagée, et il n’est plus nécessaire que chaque application demandent au serveur graphique d’en obtenir une copie.

            input_server

            L’input_server se charge des entrées souris et clavier. Cela comprend les méthodes d’entrée de texte (par exemple pour le Japonais) ainsi que des filtres permettant de manipuler et d’intercepter ces évènements d’entrée avant leur distribution dans les applications.

            Améliorations du filtre PadBlocker pour bloquer le touchpad quand le clavier est en cours d’utilisation sur les PC portables: gestion des répétitions de touches, blocage uniquement du touchpad et pas des autres périphériques de pointage.

            net_server

            Le net_server se charge de la configuration des interfaces réseau.

            Arrêt du client d’autoconfiguration (DHCP par exemple) lors de la perte du lien sur un port Ethernet, pour ne pas essayer d’envoyer des paquets alors que le câble est débranché.

            notification_server

            notification_server se charge de l’affichage de panneaux de notification pour divers évènements tels que la connexion et déconnexion d’interfaces réseau, un niveau dangereusement bas de la batterie, la fin d’un téléchargement…

            La fenêtre de notification a été retravaillée pour mieux s’adapter à la taille de police d’affichage choisie par l’utilisateur.

            mail_daemon

            mail_daemon permet d’envoyer et de recevoir des e-mails. Les messages sont stockés sous forme de fichiers avec des attributs étendus pour les métadonnées (sujet, expéditeur…). Plusieurs applications clientes permettent de rédiger ou de lire ces fichiers. Ainsi chaque application n’a pas besoin de réimplémenter les protocoles IMAP ou SMTP.

            Amélioration de la fenêtre de logs pour la compatibilité avec le mode sombre.

            runtime_loader

            Le runtime_loader est l’outil qui permet de démarrer un exécutable. Il se charge de trouver toutes les bibliothèques partagées nécessaires et de les placer dans la mémoire.

            Ajout du flag PF_EXECUTE qui rend exécutable uniquement les sections ELF qui le nécessitent (auparavant, toutes les sections qui n’étaient pas accessibles en écriture étaient exécutables). Cela est utilisé en particulier par clang, qui sépare une zone en lecture seule (pour les constantes) et une autre en lecture et exécution (pour le code). Avec gcc, les deux sont habituellement regroupées dans la même section.

            Drivers

            Périphériques de stockage

            Correction de bugs dans la couche SCSI (utilisée également pour d’autres périphériques de stockage qui encapsulent des commandes SCSI). Des drapeaux d’état n’étaient pas remis à 0 au bon moment, ce qui causait des kernel panic avec le message « no such range! ».

            Cela a été l’occasion de faire du ménage : suppression de champs inutilisés dans des structures de données, et suppression du module d’allocation mémoire locked_pool qui n’était utilisé que par la pile SCSI. À la place, utilisation des fonctions d’allocation mémoire standard du noyau, qui sont amplement suffisantes pour répondre aux besoins de ce module (waddlesplash).

            Cartes son

            Correction d’erreurs dans le code de gestion mémoire des pilotes es1370 et auvia. Ces drivers utilisaient deux copies d’un code d’allocation identique, mais avaient divergé l’un de l’autre. Ils ont été réunifiés mais cela a provoqué quelques régressions, avec des difficultés pour trouver des machines permettant de tester chacune des cartes son concernées. Haiku peut heureusement compter sur des utilisateurs « avancés » qui testent régulièrement les nightly builds pour détecter ce type de régression (korli).

            Réseau

            Correction d’une fuite mémoire lors de l’utilisation de sockets « raw » permettant d’envoyer et de recevoir directement des paquets ethernet (en contournant la couche IP).

            Pilotes FreeBSD

            Une grande partie des pilotes de carte réseau de Haiku sont en fait ceux de FreeBSD ou d’OpenBSD. Une couche de compatibilité permet de réutiliser ces pilotes avec très peu de changement dans leur code source. Ainsi, les évolutions et corrections peuvent être partagées avec l’un ou l’autre de ces systèmes. La collaboration avec les *BSD pour les pilotes réseau se passe de mieux en mieux : suite au développement d’une couche de compatibilité permettant d’utiliser les pilotes OpenBSD dans Haiku, les développeurs de FreeBSD étudient la possibilité de réutiliser également ces pilotes. De plus, les développeurs de Haiku et d’OpenBSD sont en contact pour coordonner les mises à jour et les tests.

            Génération de statistiques plus fiables sur les paquets réseaux dans la couche de compatibilité FreeBSD et remontée des statistiques générées par les pilotes associés.

            Synchronisation du pilote realtekwifi avec la version de FreeBSD et reconnaissance d’un identifiant de périphérique USB supplémentaire dans ce pilote.

            Amélioration de la couche de compatibilité pour se comporter plus précisément comme FreeBSD, et suppression de patchs correspondants dans les pilotes qui sont devenus superflus.

            Amélioration des performances de la couche de compatibilité: retrait de comparaisons de chaînes de caractères et d’allocations inutiles.

            Pilotes spécifiques à Haiku

            Amélioration du comportement du pilote USB RNDIS (partage de connexion sur USB de certains téléphones Android) lorsque le câble USB est déconnecté. Le pilote incluait du code pour tenter de restaurer la connexion existante si le même appareil est reconnecté, mais les périphériques RNDIS utilisent des adresses MAC aléatoires qui changent à chaque connexion, donc cela ne pouvait pas fonctionner. De plus, certains transferts USB n’étaient pas correctement annulés pour laisser la pile USB dans un état propre après la déconnexion du périphérique.

            USB

            Ajout d’une annulation de transferts de données en attente dans le pilote pour les périphériques de stockage USB, ce qui corrige un kernel panic lors de l’utilisation de lecteurs de disquettes USB. Arrêt immédiat des opérations (au lieu de ré-essayer pendant quelques secondes) si le périphérique indique « no media present » (CD ou disquette éjectée de son lecteur par exemple).

            Ajout d’une vérification de pointeur NULL et de libération de mémoire manquantes dans la pile USB, ce qui corrige des fuites de mémoires (qui étaient là depuis longtemps) et une assertion qui se déclenchait (introduite plus récemment).

            Le pilote de webcam UVC est mis à jour pour utiliser des constantes (identifiants de types de descripteurs…) partagées avec le reste du système au lieu de toutes les redéfinir une deuxième fois. L’affichage des descripteurs dans listusb est également complété pour décoder toutes les informations disponibles. Le pilote n’est toujours pas complètement fonctionnel: l’établissement des transferts au niveau USB fonctionne, mais pour l’instant le pilote ne parvient pas à décoder les données vidéo reçues correctement.

            Le pilote HID sait reconnaître les « feature reports », qui permettent de configurer un périphérique. Par exemple, cela peut permettre de configurer un touchpad en mode multi-point (dans lequel le système doit effectuer lui-même le suivi de chaque doigt sur la surface tactile pour convertir cela en mouvements de pointeur de souris) ou en mode émulation de souris (où on ne peut utiliser qu’un doigt à la fois, mais avec un pilote beaucoup plus simple).

            Le pilote pour les tablettes Wacom reconnaît la tablette CTH-470.

            PS/2

            Les ports PS/2 ont disparu de la plupart des machines ces dernières années, mais le protocole reste utilisé pour le clavier des ordinateurs portables, ainsi que pour certains touchpads. Malheureusement, le protocole est seulement émulé au niveau de l’« embedded controller » (le microprocesseur qui se charge de l’interfaçage de divers composants annexes). Le résultat est que l’implémentation du protocole et des registres d’interface peut s’éloigner considérablement des documents officiels.

            Amélioration de la détection des contrôleurs PS/2 supportant le protocole « active multiplexing » permettant de connecter à la fois une souris et un touchpad. La procédure de détection officielle peut générer des faux positifs: certains contrôleurs répondent bien à cette commande, mais n’implémentent en fait pas du tout le protocole. Cela provoquait un long délai au démarrage alors que le pilote tente d’énumérer des périphériques de pointage qui n’existent pas. Une vérification supplémentaire après l’activation du mode multiplexé permet de détecter ce cas.

            virtio_pci

            virtio est un standard matériel pour les machines virtuelles. Plutôt que d’émuler un vrai matériel (carte réseau, carte graphique…), une machine virtuelle peut émuler un matériel qui n’a jamais été fabriqué, mais dont la programmation est beaucoup plus simple. Cela permet également des opérations inimaginables sur du matériel réel, comme la possibilité de changer la taille de la RAM en cours d’exécution pour mieux partager la mémoire de l’hôte entre différentes machines virtuelles.

            Le pilote virtio_pci est à la racine du système virtio. Il détecte la « carte PCI » virtio et implémente les primitives de base d’envoi et de réception de messages entre l’hôte et la machine virtualisée (du côté virtualisé, pour le côté hôte, c’est le virtualisateur, par exemple QEMU, qui s’en charge).

            Correction de plusieurs problèmes avec les numéros de files virtio qui rendaient les pilotes instables.

            ACPI

            ACPI est un cadriciel pour la gestion de l’énergie et l’accès au matériel. Le fabricant du matériel fournit (dans la ROM du BIOS) un ensemble de « tables » contenant une description du matériel disponible, ainsi que des méthodes compilées en bytecode pour piloter ce matériel. Le système d’exploitation doit fournir un interpréteur pour ce bytecode, puis réaliser les entrées-sorties vers le matériel demandé lors de l’exécution.

            Haiku utilise actuellement ACPICA, une bibliothèque ACPI développée principalement par Intel.

            Correction d’un problème d’accès à de la mémoire non cachée. Une modification faite pour les machines ARM a déclenché un problème sur les machines x86.

            Sondes de température

            Ajout d’un nouveau pilote amd_thermal, ajout de ce dernier ainsi que des pilotes pch_thermal et acpi_thermal dans l’image disque par défaut. Ces pilotes devraient permettre de récupérer la température du processeur sur la plupart des machines. Il reste maintenant à intégrer cela dans les outils en espace utilisateur pour faire un bon usage de ces informations.

            Pilotes graphiques

            Ajout de deux nouvelles générations de cartes graphiques dans le pilote intel_extreme.

            Le pilote VESA est capable de patcher le BIOS de certaines cartes graphiques à la volée pour y injecter des modes graphiques supplémentaires (la spécification VESA permettant à l’OS uniquement de choisir un mode parmi une liste fournie par la carte graphique, liste souvent assez peu fournie). Ce mode est désormais activé par défaut sur les cartes graphiques où il a pu être testé avec succès.

            Systèmes de fichiers

            FAT

            FAT est un système de fichier développé par Microsoft et qui remonte aux premiers jours de MS-DOS. Il est encore utilisé sur certaines clés USB et cartes SD, bien que exFAT tend à le remplacer petit à petit. Il est également utilisé pour les partitions systèmes EFI.

            Le pilote de Haiku a été récemment réécrit à partir de celui de FreeBSD. L’amélioration de ce nouveau pilote se poursuit, avec ce mois-ci :

            • Les noms de volumes FAT sont convertis en minuscules comme le faisait l’ancien pilote FAT,
            • Le cache de blocs implémente maintenant un mécanisme de prefetch pour récupérer plusieurs blocs disque d’un coup, et le pilote FAT utilise cette nouvelle possibilité pour améliorer en particulier le temps de montage,
            • Correction de problèmes dans le cache de fichiers si deux applications accèdent au même fichier mais avec des noms différents par la casse (le système de fichier ignorant ces différences).

            BFS

            BFS est le système de fichier principal de BeOS et de Haiku. Il se distingue des autres systèmes de fichiers par une gestion poussée des attributs étendus, avec en particulier la possibilité de les indexer et d’effectuer des requêtes pour trouver les fichiers correspondants à certains critères.

            Clarification de la description des options disponibles lors de l’initialisation d’un volume BFS.

            Correction des fonctions d’entrées/sorties asynchrones pour référencer correctement les inodes, ce qui corrige un très ancien rapport de bug. Des corrections similaires ont été faites également dans les pilotes FAT et EXFAT.

            Correction des requêtes sur l’attribut « dernière modification », et amélioration de la gestion du type « time » pour éviter les conversions inutiles (ce type d’attribut est historiquement stocké en 32 bits mais migré en 64 bits lorsque c’est possible pour éviter le bug de l’an 2038, aussi le code doit être capable de traiter ces 2 formats de stockage).

            packagefs

            Le système de fichier packagefs est au centre de la gestion des paquets logiciels dans Haiku. Les paquets ne sont pas extraits sur le disque, mais montés dans un système de fichier spécifique (qui implémente une version tout-en-un de ce qui pourrait être réalisé sous Linux avec squashfs et overlayfs).

            Ce système de fichier se trouve donc sur le chemin critique en termes de performances, ce qui fait que même de petites optimisations peuvent déboucher sur de gros gains de performance.

            Optimisation de la gestion de la mémoire: utilisation d’un allocateur dédié pour allouer et désallouer très rapidement de la mémoire de travail avec une durée de vie courte.

            Ajout d’une vérification manquante sur la présence du dossier parent, qui pouvait déclencher un kernel panic.

            NFS4

            Le pilote NFS4 permet de monter des partages réseau NFS. Cependant, le pilote ne fonctionne pas toujours, et certains utilisateurs doivent se rabattre sur le pilote NFS v2 (ancienne version du protocole de moins en moins utilisée), ou encore sur des systèmes de fichiers FUSE comme SMB ou sshfs.

            Le pilote NFS4 peut maintenant être compilé avec userlandfs (équivalent de FUSE pour Haiku) pour s’exécuter en espace utilisateur. Cela facilitera le déboguage.

            ramfs et ram_disk

            ram_disk est un périphérique de stockage qui stocke les données en RAM, il a une taille fixe et doit être formaté avec un système de fichiers avant de pouvoir être utilisé.
            ramfs est un système de fichier stockant les données directement en RAM sans passer par un périphérique de stockage de type bloc. Sa taille est dynamique en fonction des fichiers qui sont stockés dedans.

            Ces deux pilotes ont reçu divers nettoyages et corrections, suite à des problèmes mis en évidence par des assertions ajoutées précédemment dans le code.

            Dans le ramfs, nettoyage de code dupliqué, réduction de la contention sur les verrous, amélioration de la fonction readdir pour retourner plusieurs entrées d’un coup au lieu de les égréner une par une.

            Ajout de la gestion des fichiers « spéciaux » (FIFOs nommés, sockets UNIX) dans ramfs.

            Autres

            Refonte de l’algorithme de « scoring » des requêtes sur les systèmes de fichiers. Cet algorithme permet d’estimer quels sont les termes de la requête les moins coûteux à évaluer, afin de réduire rapidement le nombre de fichiers répondant aux critères, et d’effectuer les opérations complexes seulement sur un petit nombre de fichiers restants. Les requêtes s’exécutent ainsi encore plus rapidement (waddlesplash).

            Réécriture du code pour identifier les partitions dans mount_server. Ce code permet de re-monter les mêmes partitions après un redémarrage de la machine, mais l’ancien algorithme pouvait trouver de faux positifs et monter des partitions supplémentaires (OscarL et waddlesplash).

            Correction d’une option de debug pour intercepter les accès aux adresses non initialisées (0xcccccccc) ou déjà libérées (0xdeadbeef). Cela permet de détecter certains accès à des pointeurs invalides. Cette option ne fonctionnait correctement que sur les systèmes 32 bit, maintenant, l’adresse correspondante pour les machines 64 bit est également protégée.

            libroot

            La libroot est la librairie C de base de Haiku. Elle regroupe les fonctions parfois implémentées dans les libc, libm, libpthread, librt et libdl pour d’autres systèmes. Haiku choisit une approche tout-en-un, car il est excessivement rare qu’une application n’ait pas besoin de toutes ces bibliothèques.

            Du fait de la grande diversité des services rendus par cette bibliothèque, il est difficile de présenter les changements de façon cohérente et organisée.

            Correction de quelques cas particuliers dans le traitement des tableaux de descripteurs de fichiers pour select() et déplacement d’une partie des définitions de sys/select.h vers des en-têtes privés non exposés aux applications (waddlesplash).

            Ajout d’une fonction manquante dans les « stubs » de la libroot, qui sont utilisés lors de la compilation de Haiku en mode « bootstrap » (sans aucune dépendance précompilée externe). Les stubs sont normalement générés à l’aide d’un script, mais celui-ci n’avait pas pris en compte une fonction nécessaire seulement sur les architectures x86.

            Poursuite du travail d’unification des fonctions de manipulation des temps d’attentes pour toutes les fonctions de la libroot qui peuvent déclencher un timeout. Correction d’un cas où la fonction pthread_testcancel retournait NULL au lieu de la valeur attendue PTHREAD_CANCELED.

            Optimisation de la fonction strcmp, remplacement d’autres fonctions avec de meilleures implémentations provenant de la bibliothèque C musl.

            Compatibilité POSIX-2024

            La spécification POSIX Issue 8 a été publiée et comporte de nombreux changements. Après la version 7, la façon de travailler est devenue plus ouverte, avec un outil de suivi de bugs permettant de proposer des améliorations. Cela conduit à la standardisation de nombreuses extensions qui sont communes entre les systèmes GNU et BSD, rendant plus facile d’écrire du code portable entre tous les systèmes compatibles POSIX.

            • Ajout de fonctions qui ouvrent des descripteurs de fichiers avec le drapeau O_CLOEXEC activé par défaut (dup2, pipe3)
            • Ajout de reallocarray (un mélange de calloc et realloc)
            • Ajout de memmem (recherche d’une suite d’octets dans une zone de mémoire)
            • Ajout de mkostemp
            • Ajout de posix_devctl et modifications de l’implémentation de ioctl
            • Ajout de pthread_getcpuclockid pour mesurer le temps CPU consommé par un thread
            • Ajout de la constante d’erreur ESOCKTNOSUPPORT bien qu’elle ne soit jamais utilisée (cela facilite le portage d’applications qui attendent l’existence de ce code d’erreur)
            • Correction d’une boucle infinie dans pipe2
            • Suppression des fonctions *randr48_r des en-têtes publics. Il s’agit d’une extension disponible uniquement dans la glibc, et qui ne devrait donc pas être disponible dans la libroot. Cependant, l’implémentation est conservée pour assurer la compatibilité d’ABI avec les applications existantes.

            ioctl et posix_devctl

            La fonction ioctl existe depuis le début de UNIX et permet de réaliser des opérations spéciales sur les descripteurs de fichiers (tout ce qui n’est pas une simple lecture ou écriture). En particulier, elle est beaucoup utilisée pour les pilotes de périphériques qui exposent une interface sous forme de fichiers dans /dev.

            L’existence de cette fonction était demandée dans la spécification POSIX, mais son fonctionnement n’était pas documenté à l’exception de quelques cas particuliers. La documentation spécifie une fonction avec un nombre d’arguments variable : un numéro de descripteur de fichier, un identifiant de l’opération à effectuer, puis des paramètres qui dépendent de l’opération. On trouve des opérations avec aucun, un, ou deux paramètres.

            Dans UNIX et la plupart de ses dérivés, la liste des opérations possibles est définie à l’avance, et le format des numéros identifiants permet de déterminer de façon prédictible quel est le nombre de paramètres attendus. Ce n’est pas le cas dans Haiku : les pilotes de périphériques ont le choix d’assigner n’importe quelle valeur à n’importe quelle opération, et la même valeur numérique peut donc avoir une signification différente selon le type de fichier.

            L’opération ioctl est donc en réalité implémentée avec toujours 4 arguments pour Haiku : en plus des deux déjà mentionnés, il faut ajouter un pointeur vers une zone de mémoire, et un entier indiquant la taille de cette zone. Des acrobaties à base de macros permettent de remplir ces deux paramètres avec des valeurs par défaut lorsqu’ils ne sont pas nécessaires (au moins pour les programmes écrits en C ; en C++, ces deux paramètres sont simplement déclarés avec une valeur par défaut).

            Heureusement, ces problèmes avec ioctl vont être résolus, puisque POSIX a introduit une nouvelle fonction en remplacement : posix_devctl. Celle-ci fonctionne comme l’implémentation de ioctl dans Haiku, mais les arguments doivent toujours être spécifiés explicitement. Cela va donc permettre de disposer d’une interface réellement portable pour ces opérations.

            Kernel

            Correction de la taille du tampon mémoire par défaut de la classe KPath qui permet au noyau de manipuler des chemins dans le système de fichiers (waddlesplash).

            VFS

            Le VFS (virtual filesystem) est l’interface entre les appels systèmes d’accès aux fichiers (open, read, write…) et les systèmes de fichiers proprement dit. En plus de ce travail d’interfaçage (par exemple : convertir un chemin de fichier absolu en chemin relatif à un point de montage), cette couche regroupe un ensemble de fonctionnalités qui n’ont pas besoin d’être réimplémentées par chaque système de fichier: vérification des permissions, mémoire cache pour limiter les accès au disque.

            Si les systèmes de fichiers identifient chaque objet par un inode (en général lié à la position de l’objet sur le disque ou dans la partition de stockage), le VFS travaille lui avec des vnode qui existent uniquement en RAM et sont alloués dynamiquement pour les fichiers en cours d’utilisation.

            D’autre part, les systèmes de fichiers peuvent se reposer sur un cache de blocs. Ce dernier se trouve plutôt à l’interface entre un système de fichier et le support de stockage correspondant, puisqu’il fonctionne au niveau des blocs de données stockées sur disque. Mais son intégration avec le VFS est nécessaire pour savoir quels sont les fichiers en cours d’utilisation et les opérations prévisibles sur chacun (par exemple, il est utile de pré-charger la suite d’un fichier lorsque un programme demande à en lire le début, car il est probable que ces informations vont bientôt être nécessaires).

            Le VFS est donc un élément central en particulier pour obtenir de bonnes performances sur les accès aux fichiers, en minimisant les accès aux vrais systèmes de fichiers qui doivent maintenir beaucoup d’informations à jour sur les disques. Tout ce qui peut être traité en utilisant uniquement la RAM grâce à la mise en cache est beaucoup plus rapide.

            Investigation et amélioration des performances de la commande git status qui prenait beaucoup plus de temps à s’exécuter que sur d’autres systèmes (waddlesplash):

            • Meilleure gestion des vnodes inutilisés à l’aide d’une liste chaînée 'inline' protégée par un spinlock, à la place d’un mutex peu performant dans ce code très fréquemment appelé.
            • Modification de la structure io_context pour utiliser un verrou en lecture-écriture (permettant plusieurs accès concurrents en lecture, mais un seul en modification).
            • Ajout d’un chemin rapide dans le cas le plus simple de la recherche de vnode.

            Avec ces changements, les performances sont améliorées au moins lorsque les données nécessaires sont déjà disponibles dans le cache disque.

            Nettoyage et corrections dans les fonctions d’entrées-sorties vectorisées et asynchrones do_iterative_fd_io et do_fd_io utilisées par les systèmes de fichiers: meilleure gestion des références et prise en compte de certains cas particuliers. Cela permet de simplifier un peu le code de pré-remplissage du cache de blocs (waddlesplash).

            La prise en compte des drapeaux O_RDONLY|O_TRUNC lors de l’ouverture d’un fichier est maintenant faite directement dans le VFS, il n’est plus nécessaire de transmettre la requête au système de fichier. Cette combinaison de drapeaux est un comportement indéfini dans POSIX, et supprime le contenu du fichier dans Linux. Dans Haiku, elle remonte une erreur.

            Correction du comportement de l’ouverture d’un symlink invalide (ne pointant pas sur un fichier) avec le flag O_CREAT.

            Le parser de requêtes pouvait essayer de lire des données invalides (la taille de clé d’un index inexistant) dans certains cas particuliers.

            Nettoyage de logs dans tous les systèmes de fichiers qui affichaient un message lors de chaque tentative d’identification. On avait donc un message de chaque système de fichier pour chaque partition. Maintenant, le cas le plus courant (le système de fichier ne reconnaît pas du tout la partition) ne déclenche plus de logs.

            Correction d’une erreur dans userlandfs sur la fonction file_cache_read pour les tentatives d’accès après la fin d’un fichier (cas particulier nécessaire pour implémenter correctement mmap).

            Correction d’une mauvaise gestion du errno dans le cache de blocs, qui pouvait aboutir à un kernel panic.

            Diverses améliorations, nettoyages et corrections de fuites mémoire: dans la gestion des fichiers montés comme image disques, dans les entrées-sorties asynchrones, dans l’enregistreur d’évènements scheduling recorder.

            Console et affichage

            Unification du code d’affichage du splash screen (par le bootloader) et des icônes de la séquence de démarrage (par le kernel) pour éviter qu’ils prennent des décisions différentes sur le positionnement (par exemple si l’un est compilé pour afficher le logo de Haiku, et l’autre en version « dégriffée » sans ce logo qui est une marque déposée) (waddlesplash).

            Initialisation de la console framebuffer beaucoup plus tôt dans le démarrage du noyau, ce qui permet d’afficher un message à l’écran en cas de kernel panic y compris dans les premières étapes du démarrage (par exemple, l’initialisation de la mémoire virtuelle). Auparavant, ces informations étaient disponibles uniquement dans le syslog (inaccessible si le système ne démarre pas) ou via un port série (en voie de disparition sur les machines modernes) (waddlesplash).

            Réseau

            Remontée des données annexes (ancillary data) en une seule fois lorsque c’est possible. Ces données sont utilisées en particulier dans les sockets de domaine AF_UNIX pour permettre d’échanger des descripteurs de fichiers entre processus. Ce regroupement de données n’est pas exigé par la spécification POSIX, mais c’est le comportement attendu par le code de communication interprocessus de Firefox et de Chromium (ils utilisent tous les deux le même code) (waddlesplash).

            Gestion de la mémoire

            Comme indiqué plus haut dans la dépêche, l’apparition du navigateur Iceweasel a mis en évidence de nombreux problèmes autour de la gestion de la mémoire. Cela a donc été l’objet d’un gros travail de stabilisation et d’amélioration.

            • Le cache d’objets du noyau pouvait parfois ignorer le paramètre indiquant la réserve minimum d’objets devant toujours être disponibles (waddlesplash)
            • Amélioration de l’implémentation de la famille de fonctions autour de mprotect, qui permettent une gestion fine et bas niveau de la mémoire. En particulier, plusieurs problèmes se posaient lors de l’utilisation de ces fonctions lors d’un appel à fork, les deux processus se retrouvant dans un état incohérent,
            • Suppression de logs présents dans les méthodes de défaut de page, qui sont peu appelées pour les applications classiques, mais exploitées volontairement par d’autres applications (machines virtuelles Java ou Javascript par exemple). Les logs étaient donc superflus dans ce cas (waddlesplash),
            • Optimisation de l’écriture par lot de plusieurs pages de mémoire vers le swap,
            • Meilleure gestion des permissions d’accès page par page,
            • Correction de plusieurs problèmes conduisant à un blocage ou fort ralentissement du système quand il n’y a plus assez de mémoire libre,
            • Amélioration de la stratégie d’allocation de la table des descripteurs de fichiers,
            • Regroupement de code dupliqué pour chaque plateforme qui était en fait générique.

            Ce travail se poursuit avec un remplacement de l’allocateur mémoire actuel, qui est basé sur hoard2. Cette implémentation est assez ancienne et montre aujourd’hui ses limites. Des essais sont en cours avec l’implémentation de malloc d’OpenBSD, ainsi qu’avec mimalloc de Microsoft, pour déterminer lequel des deux sera utilisé. D’autres allocateurs ont été rejetés, car ils ne répondent pas au besoin de Haiku, en particulier la possibilité de fonctionner efficacement sur un système 32 bits ou l’espace d’adressage est une ressource limitée.

            Autres

            Sécurisation des permissions sur les zones mémoire partagées: une application ne peut pas ajouter des permissions en écriture aux zones mémoire d’une autre application. Une application qui n’est pas lancée par l’utilisateur root ne peut pas inspecter la mémoire d’une application lancée par l’utilisateur root. Ajout toutefois de cas particuliers pour permettre au Debugger de faire son travail (il a besoin d’accéder à la mémoire d’autres applications).

            Ajout et amélioration de commandes dans le debugger noyau pour investiguer l’état de l’ordonnanceur d’entrées-sorties, qui se charge de programmer les accès disque dans un ordre le plus efficace possible (waddlesplash).

            La fonction vfork n’appelle plus les fonctions pre-fork. Haiku n’implémente pas complètement vfork, mais peut se permettre des optimisations sur le travail qu’un duo fork + exec classique demanderait normalement.

            La configuration de la randomization de l’espace mémoire (ASLR) est maintenant faite par la libroot et pas par le noyau. Ainsi une application peut utiliser une version différente de la libroot pour avoir une politique de randomization différente.

            Optimisation de l’accès par un thread à sa propre structure Thread

            Chargeur de démarrage

            L’écran de démarrage s’affiche correctement sur les systèmes EFI utilisant un mode écran avec une profondeur de couleur 16 bits (korli).

            Affichage de la taille des partitions démarrables dans le menu de démarrage, pour faciliter leur identification (waddlesplash).

            Activation des warnings du compilateur sur les chaînes printf invalides.

            Augmentation de la zone de mémoire utilisée pour la décompression de l’archive de démarrage lors du boot sur le réseau, l’archive était devenue trop grosse suite à l’ajout de nouveaux pilotes.

            Refactorisation du code de gestion de la mémoire entre le bootloader et le runtime_loader, ajout de tests pour cette implémentation, et optimisation de l’utilisation mémoire du bootloader.

            Amélioration du comportement si le device tree définit un port série sans spécifier de baudrate: le bootloader suppose que le baudrate est déjà configuré, et utilise le port sans essayer de le réinitialiser.

            Outils de compilation

            La compilation de Haiku est un processus relativement complexe: il faut utiliser deux compilateurs pour Haiku lui-même (un gcc récent plus une version plus ancienne pour assurer la compatibilité avec BeOS) ainsi que un compilateur pour le systême hôte de la compilation (qui peut être Linux, BSD, Mac OS ou Windows) pour générer des outils nécessaires à la compilation elle-même. L’outil retenu est Jam, une alternative à Make avec une meilleure gestion des règles génériques réutilisables.

            • Ajout de vérification pour éviter d’avoir un build partiellement configuré, avec des ConfigVars définies mais vides.
            • Retrait d’un warning incorrect dans l’outil de build jam si on spécifie à la fois un profil et une cible de compilation sur la ligne de commande.
            • Reconnaissance des processeurs hôtes ARM et RISC-V pour la compilation croisée, correction d’autres problèmes avec les architectures non-x86.
            • Ajout de dépendances manquantes dans les règles de compilation de packagefs.
            • Suppression de fichiers de licence fournis avec Haiku mais concernant du code qui avait été supprimé de Haiku auparavant.
            • Amélioration de la remontée d’erreur du script configure si un interpréteur Python n’a pas été trouvé.
            • Correction de messages d’avertissement de awk pour l’utilisation de fonctions qui n’existent plus dans le traitement des fichiers d’identifiants matériels USB et PCI.

            Documentation

            Documentation interne

            Ajout de documentation sur les détails d’implémentation de ioctl et posix_devctl et les spécificités de Haiku pour la première (PulkoMandy).

            Correction de fautes de frappe dans l’introduction au launch_daemon.

            Remplacement de toutes les références à "OpenBeOS" par "Haiku".

            Documentation d’API

            Ajout de documentation pour les méthodes GetFontAndColor et SetFontAndColor de BTextView.

            Ajout de documentation pour les classes BShelf et BGameSound.

            Réorganisation de la liste des caractères de contrôles dans la documentation du clavier, ajout d’entrées manquantes dans cette liste et ajoute de commentaires indiquant à quelles combinaisons de touches ces caractères sont normalement associés.

            Traductions de Haiku

            La traduction du système dans différentes langues est un facteur important d’inclusivité et d’accessibilité (même si la communication avec l’équipe de développeurs pour le support n’est pas toujours simple).

            Haiku est disponible dans 30 langues, la trentième étant le coréen, pour lequel il y a un nouveau responsable des traductions (le précédent avait cessé toute activité et laissé la traduction inachevée).

            Haiku recherche des volontaires pour s’occuper des traductions en biélorusse, croate, bulgare, hindi, punjabi et slovène, pour lesquelles les précédents responsables de relectures n’ont plus le temps d’assurer le rôle. Ainsi bien sûr que de l’aide pour la traduction du système, du manuel d’utilisation, et des applications tierces, que ce soit pour ajouter de nouvelles langues ou pour renforcer les équipes s’occupant de langues existantes. Le point d’entrée est le portail d’internationalisation de Haiku.

            La traduction du système Haiku s’effectue avec Pootle. L’outil n’est plus développé et des investigations sont en cours pour le remplacer par Weblate. La traduction du manuel d’utilisation s’effectue avec [un outil spécifiquement développé pour cela](https://github.com/haiku/userguide-translator. La traduction des applications s’effectue également avec un outil personnalisé nommé Polyglot.

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            Linux Mint 22 : vidéos pas à pas pour les débutants

            Voici une série de vidéos (62) consacrée à la distribution Linux Mint 22 intitulée « Pas à pas pour les débutants ».

            Je suis passé à Linux Mint voilà à peu prés cinq ans. J'ai été aidé pour cela par l'équipe Linux de l'époque du Forum SOSPC (Mia, Darksky, Azamos, …).
            Animé par cet esprit de partage, j'ai voulu à mon tour rendre la pareille. Je viens donc de terminer une série de vidéos sur Linux Mint 22. De petites vidéos (à part la 1 et la 62) qui traitent chacune d'un thème bien précis. Ces vidéos s'adressent exclusivement à un public de débutants (et faite par un débutant… de 5 ans).

            de :
            Vidéo 01
            à
            Vidéo 62

            Visibles à partir :

            Vidéos d'une durée d'une quinzaine de minutes pour la première et la dernière, quelques minutes pour les autres :

            1. C'est quoi Mint ?
            2. Possible pour vous ?
            3. Télécharger Cinnamon
            4. Vérifier avec 7Zip
            5. Créer la clé d'installation
            6. Créer une clé persistante
            7. Graver un DVD
            8. Démarrage rapide
            9. Edge à Firefox
            10. Chrome à Firefox
            11. Exporter thunderbird
            12. Export carnets d'adresses
            13. Export Agenda
            14. Ouvrir le BIOS
            15. Visite en Français
            16. Installation
            17. Démarrage et dualboot
            18. Veille contrôllée
            19. Écran de bienvenue
            20. Timeshift
            21. Gestionnaire de pilotes
            22. Gestionnaire de mise à jour
            23. Pare-feu
            24. Couleurs du Bureau
            25. Une mise à jour
            26. Paramètres du système
            27. Personnaliser le Bureau
            28. Une mise à jour du noyau
            29. La Logithèque
            30. Flatpack
            31. Alternativeto
            32. Paramètres du panneau
            33. Configuration Liste groupée de fenêtres
            34. Ajouter des Applets
            35. Mode d’édition du panneau (1)
            36. Mode d’édition du panneau (2)
            37. Réglage du MENU
            38. Applications préférées
            39. La corbeille
            40. Barre d'outils
            41. Ranger les éléments
            42. Marque pages
            43. Panneau latéral
            44. Menus contextuels
            45. Imprimante et Scanner
            46. Informations système
            47. la suite LibreOffice (une petite erreur à corriger)
            48. Installer les polices Microsoft sur Linux
            49. Capture d'écran et Flameshot
            50. PDF Visionneur de document ou Okular
            51. La Télévision avec FreetuxTV
            52. Thunderbird
            53. Carnets d’adresses
            54. Agenda
            55. Paramètres et paramètres des comptes
            56. Injecter le profil de Firefox de Windows dans Linux
            57. Sauvegarde des données avec Grsync
            58. Gparted renommer le disque de sauvegarde
            59. Vider le cache de Linux avec le Terminal
            60. Restaurer avec Timeshift
            61. Démarrage - enlever ou mettre un mot de passe
            62. Petit bilan et conseils

            Pour télécharger également le PDF (Pack débutant (partie 1) - Linux Mint 22 - Pas à pas sur YouTube en Libre accès
            Sur celui-ci, chaque vidéo est présentée par un petit texte, chaque vignette est active et permet en cliquant dessus de rejoindre la vidéo choisie, la durée de chaque vidéo est indiquée.

            Si cela peut intéresser quelqu’un.

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            Nouveautés de février 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…

            🖥️ Pas de mini-webinaire en février

            Les dates des vacances de février compliquent l’organisation d’un mini-webinaire en milieu du mois de février.

            On se retrouvera donc le 17 mars à 17h pour le prochain mini-webinaire. On y abordera Parcours-PHP.

            Parole de Scenariste

            💗 Parole de Scenariste

            J'utilise Canoprof au lycée pour produire mes séquences et séances de cours, les partager et les faire évoluer avec mes collègues. A l'université, nous proposons aux étudiants en master et DIU enseignement Sciences de la Vie et de la Terre de se familiariser avec un gabarit que nous avons créé pour réaliser des outils professionnels de préparation de séquence et de séances.

            Le glossaire nous a permis de mettre à leur disposition des fondamentaux de didactique intégrables directement à leurs préparations. Canoprof facilite grandement la réflexion professionnelle et aide à la formaliser.

            Delphine Séchet, Professeure de SVT Lycée de l'Essouriau Les Ulis & formatrice académique MEEF2 SVT université Paris-Saclay.
            Modèle utilisé : Canoprof

            Rencontres 2025 : Appel à communication - rappel

            📣 Rencontres 2025 : Appel à communication - rappel

            Rappel !

            Tu as jusqu’au 11 mars 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 !

            Nouvelle version de Parcours

            📣 Nouvelle version de Parcours

            Une nouvelle version de maintenance de Parcours est disponible : Parcours 1.0.3.

            Cette version apporte des corrections et des améliorations.

            À noter qu’une version avec de nouvelles fonctionnalités et une ergonomie de l’éditeur simplifiée, basée sur la technologie SCENARI 6.4, est en développement, prévue pour cet été 2025.

            Appel à formation en ligne pour doctorant⋅e⋅s au Maroc

            📣 Appel à formation en ligne pour doctorants et doctorantes au Maroc

            Nous relayons un appel d'un adhérent du Maroc :

            « Je suis ravi de vous annoncer que le Laboratoire Larslam lance des formations en ligne destinées à ses doctorants ainsi qu'à ceux des laboratoires partenaires. Ces formations se dérouleront durant les mois de janvier et février 2025, avec des séances programmées chaque samedi de 10h à 12h. D'autres créneaux pourront être proposés selon vos disponibilités.

            Votre contribution en tant qu'intervenant à ces formations est cruciale pour doter les futurs docteurs des compétences rédactionnelles, méthodologiques, didactiques et pédagogiques nécessaires à la réussite de leur parcours.

            Nous vous offrons la liberté de choisir les thématiques de votre intervention. Pour cela, merci de bien vouloir remplir le formulaire suivant : Formulaire d'inscription. »

            Une bonne occasion d'aider à la diffusion de Scenari dans le Maghreb.

            En cas de doute contacte Adil, l'auteur de cet appel.

            ✨ Le savais-tu ?

            Sur une configuration serveur (MyScenari ou votre propre serveur standard), il est possible d'exporter la liste des utilisateurs créés.

            Il faut aller sur l'url https://####/~~chain/web/u/adminWsp?cdaction=ExportConfig (remplacer « #### » par « [nom de ton instance].scenari-community.org » pour MyScenari, ou par « [url de ton serveur Scenari]/starter » pour une installation serveur standard).

            Tu obtiendras un xml.

            Ensuite dedans, en faisant par exemple une recherche sur la chaîne « <s k="userType">user</s> », le nombre d’occurrences te donnera le nombre d'utilisateurs créés.

            exporter la liste des utilisateurs créés

            📊 Le chiffre du mois

            Le chiffre du mois

            28, C'est le nombre de nouveaux adhérents depuis les Rencontres Scenari 2025, dont 8 Utilisateurs Personne Morale !

            👋 Nouvelles adhésions d'organisations

            Souhaitons la bienvenue à :

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            Alors ? Vous êtes content de votre imprimante Bambu Lab ?

            Cette dépêche est issue du journal d'Antoine Catton qui passe en revue le marché des imprimantes 3D à l'occasion verrouillage récent de l'accès à l'impression par le fabricant Bambu Lab.

            Plus de détails dans la suite de la dépêche.

            Il y a quelques années, je suis tombé dans la marmite de l'impression 3D. Mon employeur nous donne accès à un « makerspace » d'entreprise, en tant qu'avantage en nature. Il y a, entre autres, quelques imprimantes 3D.

            Au bout d'un moment, j'en avais marre de ne pouvoir imprimer qu'au boulot, donc j'ai passé le pas. Ch'suis pas dépensier, ch'suis pas fan de bagnoles, ni de foot, j'achète un nouvel ordi tous les 5-6 ans en moyenne, donc j'ai cassé la banque et me suis fait plaisir en m'achetant une imprimante 3D.

            Je sais pas si tu sais, mais il y a plusieurs types d'imprimantes 3D. Le type le plus connu, c'est le type « FDM » ou « dépôt de fil fondu » dans la langue de Molière. La meilleure description, c'est « un pistolet à colle chaude sur une table traçante. » Aujourd'hui, c'est ce que la majorité des gens imagine quand on dit « imprimante 3D. » Il y a d'autres types d'imprimantes 3D, comme, par exemple, les imprimantes à résine, qui utilisent un écran LCD ultraviolet pour solidifier de la résine au fond d'un bac de résine liquide. Ces imprimantes 3D sont, en général, utilisées pour imprimer des détails plus fins, surtout pour les otakus qui impriment des figurines de Manga et Animés, entre autres. Dans ce journal, je ne parle que d'imprimantes dites « FDM », c'est-à-dire, « l'imprimante 3D normale, » comme dirait François Hollande.

            Schéma d'une imprimante avec dépôt de fil fondu

            Je sais pas si tu sais, mais, en gros, y a cinq « marques » principales d'imprimantes 3D pour les « prosumer », comme disent les Américains qui ont la classe. (En françois on pourrait traduire ça par « utilisateur quasi-pro », j'ai aussi vu la traduction « prosommateur », mouais…)

            Dans l'ordre de ce que j'estime la plus grosse part de marché à la petite:

            • Bambu Lab : un constructeur de Shenzhen, en Chine, j'en parle plus tard dans ce journal.
            • Creality : un autre constructeur de Shenzhen, avec les prix parmi les plus bas du marché, pour une qualité médiocre.
            • Prusa : un constructeur tchèque, j'en parle plus tard dans ce journal.
            • Anycubic : un troisième constructeur de Shenzhen, avec les prix et la qualité qui rivalisent avec Creality.
            • Voron : c'est pas vraiment une marque, mais plus une gamme d'imprimantes conçue par des ingénieurs sur leur temps libre. Ils collaborent et publient les plans sur Internet, le tout sous licence libre. Si tu veux une imprimante de cette marque, il faut commander les pièces individuellement sur Amazon, Alibaba & Cie. Ya aussi des entreprises qui vendent des kits à assembler, comme chez Ikea, si tu veux pas trop t'embêter. La qualité des kits est… variable, on va dire.

            Si t'es comme moi, et que tu traînais dans les salons Linux et les conférences de logiciels libres ya 10-15 ans, je sais pas si tu te rappelles, y'avait toujours le geek du coin qui voulait se la raconter. Le mec ramenait son imprimante 3D pour la montrer, comme d'autres montrent leur Porsche dans les salons auto. C'était toujours une imprimante avec un châssis en contreplaqué, découpé au laser, et avec « Ultimaker » ou « Makerbot » écrit dessus, brûlé au laser. Tu t'souviens ? Eh bien, ces marques ont fusionné, maintenant, ils ne vendent que des imprimantes 3D professionnelles à plus de 5 000 €.

            Photo d'une imprimante Ultimaker

            Bref, pour en revenir à nos marques, je sais pas si t'as remarqué, mais la plupart sont de Shenzhen. C'est pas une coïncidence : Shenzhen, c'est La Mecque du composant électronique. Des servomoteurs ? Des circuits imprimés ? Tu trouves ça sur le marché local du coin pour faire du prototypage. Et, une fois que je veux fabriquer, ya 100 usines qui sont prêtes à mettre en production ton projet. Voilà pourquoi il est bien normal que ce soit plus facile pour un constructeur d'imprimante 3D de faire tourner une entreprise sur place, quand ses fournisseurs sont à 30 min de trajet.

            En dehors de Voron, y'a un constructeur qui sort du lot : Prusa. Alors, je suis partial, je suis fan de ce constructeur. Ils étaient parmi les premiers, après Ultimaker et Makerbot, à vendre des imprimantes 3D directement aux bidouilleurs en tout genre. Au début, c'était un mec dans son garage qui achetait des pièces détachées en gros, et les mettait en détail dans des kits qu'il revendait. C'était l'esprit RepRap. Depuis, ils ont grossi et utilisent leurs propres imprimantes pour imprimer les pièces en plastique des imprimantes qu'ils vendent. Beaucoup de leurs composants, surtout électroniques, viennent de Chine, mais ils disent qu'ils essaient de faire marcher au max des fabricants européens.

            Au fil des années 2010-2020, Prusa est devenu la référence de l'imprimante quasi-pro de qualité. Pendant cette période, Prusa a fait évoluer son imprimante petit à petit. Certaines pièces peuvent être imprimées avec l'imprimante pour que les utilisateurs puissent profiter des mêmes améliorations que les nouvelles imprimantes vendues. Une fois tous les 2 ou 3 ans, ils sortent une nouvelle version majeure de leur imprimante et vendent des kits à bas coût. Ça permet aux anciens clients de pouvoir moderniser leur imprimante. C'est l'esprit bidouille et réparabilité.

            Petit aparté : pour imprimer en 3D, il te faut un modèle 3D, ça va de soi. Mais, il te faut aussi un « slicer », en bon français, un « logiciel de découpage en tranches ». Ce logiciel convertit le modèle 3D en instructions physiques pour l'imprimante 3D : « va 2cm à droite, 5cm vers l'avant, etc. » On appelle ça du découpage en tranche, parce que ces instructions physiques permettent d'imprimer les couches successives de plastique.

            J'en parle, parce que ce qui a contribué significativement à l'ascension de Prusa comme référence pour l'impression, c'est son slicer. Ils ont très rapidement forké un logiciel libre sous AGPL : Slic3r. Ils l'ont amélioré grandement pour que les utilisateurs puissent profiter de leur imprimante au mieux.

            Très rapidement, Prusa Slicer est devenu la référence du logiciel de découpage en tranche, au côté de Ultimaker Cura.

            Mais, soudain, en 2020, un nouveau constructeur apparaît ! Bambu Lab.

            C'est le chamboulement ! Le nouveau constructeur vend une imprimante avec une qualité d'impression aussi bonne que Prusa, mais avec une vitesse supérieure incomparable, pour 900 € au lieu de 1 500 € chez Prusa. À ce prix-là, il y a aussi plus d'accessoires que Prusa. La Bambu Lab P1S vient avec un boîtier et un filtre à air d'origine (Le boîtier chez Prusa est dans les 300 € de plus et le filtre à air un peu en dessous de 100 € chez Prusa).

            C'est un carnage : le monde des « makers » se retourne contre Prusa et ne fait l'éloge que de Bambu Lab. Prusa est comparé à Blackberry et Nokia qui ont loupé le tournant du smartphone. Prusa est critiqué à chaque tournant.

            Pendant ce temps-là, les libristes et les makers originaux se sentent mal. Bambu Lab est l'iPhone de l'imprimante 3D. L'imprimante est fabriquée en grosses séries, avec du plastique moulé par injection.

            L'entreprise a forké Prusa Slicer, et a renommé le tout « Bambu Studio ». C'est dans leur droit, le logiciel est libre. Ils ont préservé la licence, et précisent bien dans leur README que c'est une reprise de Prusa Slicer. Jusque-là, tout va bien. Il n'y a pas réellement de fonctionnalité supplémentaire par rapport à Prusa Slicer, mais ils ont implémenté la compensation de la résonance. C'est compréhensible, c'est ça qui leur permet d'imprimer aussi vite, et à l'époque Prusa Slicer n'avait pas cette fonctionnalité.

            Le problème, c'est la partie impression… Bambu Lab promeut « le cloud. » Pour imprimer, il faut envoyer le modèle 3D sur des serveurs avec logiciel proprio, en dehors de l'Europe. L'imprimante se connecte aux mêmes serveurs et reçoit les instructions pour l'impression. Les gens s'en foutent, ce qui importe, c'est que ça marche et que l'interface utilisateur soit facile et harmonieuse ! On peut même imprimer depuis son téléphone, dis-donc !

            Tu dois te demander, pourquoi je te raconte tout ça ? Bein voilà… Il y a quelques jours, Bambu Lab a fait une mise à jour du logiciel interne de ses imprimantes. Ils prétendent que, pour des raisons de sécurité, ils ont dû verrouiller l'accès à l'impression. Maintenant, si tu veux imprimer avec ta Bambu Lab, de ce que j'ai compris, tu ne peux passer que par l'appli proprio « Bambu Connect » qui utilise des clés de chiffrement privées. Si j'étais dans les théories du complot, je dirais que ça sent la fermeture à distance d'un produit acheté.

            C'est le fameux Bait-and-Switch, comme Gandi. Bientôt, je vais être connu sur DLFP comme la moule qui dénonce les tromperies sur marchandises.

            Bref, j'ai acheté une Prusa, donc je m'en contrefiche. Mais, y'a deux ans, les gens me prenaient pour un loser qui avait encore un BlackBerry en 2010. Maintenant, je biche.

            Si t'es affecté, il y a des guides pour contourner les mesures techniques de « protection ».

            Sinon, si t'as pas d'imprimante, mais après cette dépêche tu réfléchis à t'en acheter une, tu dois te demander : j'achète quoi ?

            Avertissement : je suis un fanboy de Prusa, donc je suis pas impartial. Fais-toi ta propre idée. Je n'ai aucun lien financier direct ou indirect avec ces constructeurs, à part avoir été acheteur d'une Prusa MK4, qui a été modernisée en MK4S depuis.

            • Si tu fais attention à tes dépenses et que tu veux pas trop acheter de la crotte, regarde du côté de la Creality Ender-3. C'est principalement proprio, c'est pas la meilleure qualité, mais une bonne affaire pour le prix. Il y a une grosse communauté qui propose des améliorations avec les moyens du bord.
            • Si tu veux pas t'embêter, et que t'es prêt à mettre de l'argent, et que tu veux quelque chose à 80% ouvert et de bonne qualité, je conseillerai la Prusa MK4S pré-assemblée, avec l'option boîtier. Achète l'option filtre plus tard si besoin. Je sais que la Prusa Core One a été annoncée, mais personne ne l'a encore testée. Moi, j'attendrais le résultat des tests de consommateurs avant de juger.
            • Si t'es prêt à mettre plus d'argent, un ou deux week-ends d'assemblage, que tu veux quelque chose de presque totalement ouvert et de bonne qualité, il y a la Voron 2.4. Il va falloir que tu trouves un kit de qualité si tu veux pas acheter les pièces individuellement. Si tu veux pas trop te prendre la tête, regarde la Rat Rig V-Core 4 en kit à assembler sois-même. C'est une boite portugaise, c'est pas une Voron 2.4, mais c'est similaire et le kit arrive avec tout (Contrairement à la plupart de kits de Voron qui te demandent d'imprimer les pièces en plastique toi-même).

            En tout cas, si t'es libriste, j'espère que je t'ai empêché d'acheter une Bambu Lab.

            J'ai mis aucun lien vers les constructeurs pour éviter la pub, mais votre moteur de recherche vous mènera au bon site.

            Note: même si je ne suis pas journaliste, et que le droit de réponse ne s'applique pas, Bambu Lab a communiqué sur l'affaire. Je met un lien pour être fair-play.

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            ❌