❌

Vue lecture

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

FreeCAD 1.0

FreeCAD est sorti le 18 novembre 2024 en version 1.0 (voir l'annonce officielle et sa vidéo associée). Cette sortie est marquée par une amélioration majeure : l'atténuation du problÚme de dénomination topologique.

Nouveau logo FreeCAD

Sommaire

La derniĂšre dĂ©pĂȘche sur FreeCAD remonte Ă  avril 2021 pour la sortie de la version 0.19. Depuis, il y a eu les versions 0.20 (juin 2022) et 0.21 (aoĂ»t 2023). Cette version 1.0 a portĂ© le nom de 0.22 pendant son dĂ©veloppement.

Qu'est-ce que FreeCAD ?

Exemple 1 utilisation

Extrait de wiki.freecad.org :
FreeCAD est un modeleur paramĂ©trique de CAO 3D open source sous licence LGPL. FreeCAD est destinĂ© Ă  l'ingĂ©nierie mĂ©canique et Ă  la conception de produits mais — Ă©tant trĂšs gĂ©nĂ©rique — il s'adapte Ă©galement Ă  une gamme plus large d'utilisations autour de l'ingĂ©nierie, telles que l'architecture, l'analyse par Ă©lĂ©ments finis, l'impression 3D et d'autres tĂąches.

FreeCAD propose des outils similaires à CATIA, SolidWorks, Solid Edge ou Revit et entre donc également dans la catégorie CAO, GCVP, CFAO, IAO et BIM. Il s'agit d'un modélisateur paramétrique basé sur les caractéristiques d'une architecture logicielle modulaire qui permet de fournir des fonctionnalités supplémentaires sans modifier le systÚme de base.

FreeCAD est aussi multiplateforme. Il fonctionne sous Windows, Linux/Unix et macOS avec la mĂȘme apparence et les mĂȘmes fonctionnalitĂ©s sous toutes les plateformes.

Historique

La toute premiĂšre version de FreeCAD est sortie en 2002. FreeCAD est dĂ©veloppĂ© en C++, Qt et Python et son cƓur repose sur les bibliothĂšques OpenCASCADE (ou OCCT) spĂ©cialisĂ©es dans la CAO.

Son développement est assuré par un large panel de contributeurs : certains sont historiques, d'autres sont spécialisés sur un aspect particulier et beaucoup sont plus ou moins occasionnels.

Les versions se sont enchaßnées à un rythme quasi annuel, apportant moult améliorations et fonctionnalités nouvelles.

En 2021, quelques contributeurs historiques fondent la FreeCAD Project Association (FPA) qui est un organisme indépendant à but non lucratif pour collecter des dons et apporter un soutien au développement du projet.
Ce soutien passe notamment par leur programme "FreeCAD Grant Program", qui permet d'embaucher ou de récompenser des personnes pour des projets spécifiques. Ce programme a un budget de 50k$ pour l'année 2024. A titre d'exemple récent, 500$ ont été octroyés pour une étude sur les runners CI de Github, 1000$ pour un gros travail de correction de bugs, et enfin 500$ pour la création d'une vidéo sur les nouvelles fonctionnalités de cette version 1.0.

FreeCAD bénéficie d'une communauté impliquée permettant notamment d'avoir une documentation complÚte, à jour et traduite dans de nombreuses langues.

Le problÚme de dénomination topologique

C'Ă©tait un des points noirs de FreeCAD jusqu'Ă  cette version 1.0.
Il faut imaginer que dans ce logiciel, la modĂ©lisation d'une piĂšce (dans le sens objet physique) passe par une suite d'opĂ©rations mathĂ©matiques et gĂ©omĂ©triques en dĂ©finissant Ă  chaque fois des contraintes ou des paramĂštres. Une opĂ©ration est par exemple la crĂ©ation d'un trou borgne de 5 mm sur telle face Ă  10 mm des bords haut et gauche. Un autre exemple est d'ajouter une « languette » sur telle face cylindrique. Ou bien d'ajouter un chanfrein de 2 mm sur telle arĂȘte, etc.

Ainsi, petit à petit, la piÚce modélisée se construit, prend forme, se détaille et se complexifie.

Cet historique de ces opĂ©rations successives est toujours prĂ©sent et modifiable. À tout moment, il est possible de modifier une des Ă©tapes intermĂ©diaires.

D'un point de vue technique, vous aurez sans doute compris que chaque opĂ©ration s'applique Ă  un Ă©lĂ©ment prĂ©cis et existant de la piĂšce Ă  ce moment-lĂ  (une face ou une arĂȘte par exemple). Dans FreeCAD ces Ă©lĂ©ments ont tous un identifiant unique (Face6, Edge9, etc.), continu et incrĂ©mental. Si l'objet a 13 faces Ă  une des Ă©tapes, les faces seront numĂ©rotĂ©es de Face1 Ă  Face13. Chaque opĂ©ration est rattachĂ©e Ă  l'identifiant de l'Ă©lĂ©ment (Face5 par exemple).

Et le problĂšme se situe Ă  ce niveau : lors d'une modification d'une Ă©tape intermĂ©diaire, il arrive souvent que cela change la gĂ©omĂ©trie globale de la piĂšce et donc que les nombres de faces ou d'arĂȘtes augmentent ou diminuent. Et FreeCAD rĂ©attribue alors ces identifiants uniques aux diffĂ©rents Ă©lĂ©ments.
Ainsi, si l'objet passe de 13 à 11 faces, c'est l'ensemble des faces qui vont recevoir un nouvel identifiant dans la plage Face1 à Face11, avec un trÚs fort risque qu'une face, pourtant non touchée par la modification, porte un identifiant différent.

Et vous voyez le problĂšme arriver : si une des opĂ©rations suivantes dans l'historique Ă©tait de faire un perçage sur la Face6 qui est maintenant devenue la Face3
 Toute la modĂ©lisation part en vrille.

Ce problÚme de dénomination topologique est documenté sur le wiki de FreeCAD : problÚme de dénomination topologique.

Pour Ă©viter cela, il Ă©tait conseillĂ© de suivre un ensemble de bonnes pratiques de modĂ©lisation sous FreeCAD : Édition de fonctions. Il faudra certainement suivre l'Ă©volution de cette page avec cette sortie.

Cette version 1.0 marque donc l'intĂ©gration de codes correctifs de cette problĂ©matique. Les notes de version indiquent tout de mĂȘme que tout n'est pas rĂ©solu, et qu'il y aura d'autres amĂ©liorations dans les prochaines versions. Cette petite vidĂ©o en anglais vous montre la diffĂ©rence de comportement entre la version 0.21 et 0.22dev (qui a servi de base Ă  la 1.0).

Les autres améliorations

Un outil d'assemblage par défaut avec solveur dynamique

Le terme assemblage dĂ©signe la fonctionnalitĂ© de regrouper plusieurs Ă©lĂ©ments afin d'obtenir un objet fonctionnel. Ce peut ĂȘtre, par exemple, une boĂźte constituĂ©e d'un couvercle sur charniĂšres maintenues par des vis avec des rangements amovibles Ă  l'intĂ©rieur. Ou bien un moteur thermique avec ses carters, vilebrequin, bielles, pistons, soupapes, etc. Il est parfois utile de pouvoir fournir des indications de positionnement et/ou de libertĂ© des Ă©lĂ©ments entre eux, et de pouvoir animer le tout.
Ces opérations d'assemblage n'étaient pas intégrées dans FreeCAD avant la version 1.0. Elles étaient néanmoins possibles grùce aux ateliers. Plusieurs ont été créés pour cela avec chacun leurs spécificités et leurs approches mais aussi une incompatibilité entre eux : A2plus, Assembly3 ou Assembly4.
Cette version 1.0 propose un nouvel atelier mais intégré par défaut. Il a été mis au point par la société Ondsel (voir plus bas). Il est encore jeune, et il est encore trop tÎt pour savoir s'il finira par s'imposer par rapport à l'existant déjà en place. Un tutoriel concernant l'atelier d'assemblage est d'ores et déjà disponible pour une introduction à cette nouvelle fonctionnalité de la v1.0.

L'atelier sketcher amélioré

Cet atelier permet de dessiner les esquisses techniques utilisĂ©es dans la conception mĂ©canique. C'est dans celui-ci que sont dessinĂ©s les « plans 2D » avec les cotes et les contraintes dimensionnelles et spatiales. Cette version apporte un nombre consĂ©quent d'amĂ©liorations et de nouvelles fonctionnalitĂ©s rendant son utilisation plus facile, plus puissante et plus rapide. Le mieux est de regarder les notes de version animĂ©es.

Les ateliers Arch et BIM sont morts, vive la prise en charge native du format ouvert IFC

Si le titre est cryptique, c'est que l'on parle de BTP et d'outils destinĂ©s aux Ă©quipes de MaĂźtrise d'ƒuvre impliquĂ©es dans la conception d'une opĂ©ration construction (Architectes, Bureaux d'Études). Comme ce n'est pas forcĂ©ment le lot commun des visiteurs de LinuxFr.org, rĂ©sumons la situation:

  • L'atelier Arch, pour Architecture, exploite depuis longtemps les capacitĂ©s de crĂ©ation 3D de FreeCAD pour dessiner facilement, fondations, murs, planchers, fenĂȘtres, portes etc. Cet atelier se basait sur le format natif des fichiers FreeCAD, *.FcStd.

  • Dans l'atelier BIM (pour Building Information Model <= l'article Wikipedia_FR est bien Ă©crit pour qui veut comprendre l'essentiel), on retrouve un certain nombre d'outils de dessin et de crĂ©ation d'objets qui s'avĂšrent redondants pour certains avec ceux de l'outil Arch tout en implĂ©mentant les paradigmes bien plus vastes qu'induit l'approche BIM d'un projet de construction <=> pas uniquement de la gĂ©omĂ©trie, mais aussi du prix, des donnĂ©es mĂ©caniques, physiques, des fiches produit, du planning 


  • L'approche BIM tend Ă  se gĂ©nĂ©raliser dĂšs lors que la complexitĂ© et le coĂ»t du projet le justifient. Elle repose (en thĂ©orie) sur un format d'Ă©change IFC (pour Industry Foundation Class).
    Il est ouvert et au format texte.
    Oui avec vim, c'est possible de bidouiller ;)
    mais un fichier IFC fait rapidement quelques centaines de Mo voire quelques Go 


L'Association "Building Smart" en définit les caractéristiques. Tous les logiciels sur le marché savent ouvrir et exporter dans ce format, à la norme IFC 2.3 ad minima et IFC 4.2 voire 4.3 pour les up to date.

L'atelier BIM de FreeCAD utilisait jusqu'à présent IfcOpenShell, une application tierce Open Source pour convertir un fichier du format *.ifc vers du *.FcStd en passant (sans doute) par du OpenScad dans le processus.

Titre de l'image
Une image qui devrait parler au LinuxFrien (!) pour la classe IFC Material-Constituent-Set,

Pour la version 1.0 de FreeCAD, Yorik Van Havre, développeur historique de FreeCAD, (par ailleurs, architecte et Président la FreeCAD Project Association) a entrepris de fusionner ces deux ateliers, d'en faire une fonctionnalité native de FreeCAD, c'est-à-dire qui se passe du vaillant IfcOpenShell (grùce notamment au travail fait sur Blender-Bim) pour que FreeCAD puisse ouvrir et enregistrer directement au format IFC sans conversion inutile.

L'atelier FEM

Cet atelier d'analyse par éléments finis comporte également des améliorations considérées comme majeures avec cette version 1.0, détaillées dans un article de blog sur l'atelier FEM de FreeCAD.

Les avancées majeures sont liées à la prise en charge de fonctionnalités de CalculiX, un des solveurs utilisés par cet atelier : symétrie cyclique, analyses 2D et contraintes de corps rigide.

Le reste

Comme à chaque nouvelle version, beaucoup de choses ont été apportées, que ce soit dans l'interface, ou dans la plupart des ateliers intégrés. Les notes de version de la v1.0, comme trÚs souvent détaillées en images, permettent de voir l'évolution de ce logiciel.

FreeCAD a également annoncé son nouveau logo, choisi aprÚs un appel à concourir auprÚs de la communauté (lien). Le logo en SVG est disponible sur cette page.

L'essai commercial d'Ondsel

Outre la crĂ©ation en 2021 de l'association FPA (voir plus haut), d'autres dĂ©veloppeurs, notamment Brad Collette, mainteneur de longue date de l'atelier Path et auteur de deux livres sur FreeCAD, ont crĂ©Ă© dĂ©but 2023 la sociĂ©tĂ© amĂ©ricaine ONDSEL sous la forme d'une Public Benefit Corporation (PBC) qui pourrait se traduire par « une entreprise d'intĂ©rĂȘt pour la sociĂ©té ». Malheureusement, aprĂšs environ 2 ans, Brad Collette informe de l'arrĂȘt de la sociĂ©tĂ© ONDSEL, faute d'avoir trouvĂ© un marchĂ©.

La sociĂ©tĂ© voulait s'appuyer sur FreeCAD pour « apporter des fonctionnalitĂ©s commerciales qui rendent FreeCAD plus utile aux utilisateurs commerciaux ». (Source)

Pour cela, ONDSEL a produit sa propre version de FreeCAD avec ses propres choix esthétiques et ergonomiques, et a fourni un cloud pour simplifier le travail en équipe et le partage.
À noter qu'ONDSEL indiquait soumettre ses amĂ©liorations Ă  FreeCAD pour intĂ©gration et que son cloud Ă©tait disponible sous forme de module dans FreeCAD. Ces amĂ©liorations se retrouvent dans cette version 1.0 de FreeCAD, notamment le nouvel outil intĂ©grĂ© d'assemblage ainsi que les trĂšs nombreuses nouvelles fonctionnalitĂ©s de l'atelier Sketcher.

La sociĂ©tĂ© ONDSEL avait dĂ©taillĂ© sa relation avec le projet FreeCAD indiquant notamment leur mode de collaboration. Ils avaient Ă©galement un blog en anglais intĂ©ressant, oĂč ils abordent plusieurs thĂ©matiques, notamment sur l'Ă©volution de CATIA ou bien la liste des nouveautĂ©s agrĂ©mentĂ©e de nombreuses animations.

Dans l'annonce de cet arrĂȘt, Brad Collette revient Ă©galement sur ce qu'ils ont apportĂ© au projet FreeCAD. Tout ce qu'ils ont dĂ©veloppĂ© Ă©tait en open source et dĂ©jĂ  intĂ©grĂ© pour la plupart Ă  FreeCAD. Les fondateurs d'ONDSEL continueront de contribuer au projet directement.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Capitole du Libre 2024 - au programme du 16 et 17 novembre

Le Capitole du Libre est un week-end dĂ©diĂ© au logiciel libre et Ă  la culture libre en Occitanie. Cette annĂ©e, la onziĂšme Ă©dition se tiendra les samedi 16 et dimanche 17 novembre 2024 Ă  l’ENSEEIHT, dans le centre‐ville de Toulouse (INP-N7).

Capitole du Libre

En quelques mots

Le Capitole du Libre, c'est:

  • PrĂšs de 100 confĂ©rences
  • Une dizaine d'ateliers
  • Une trentaine de stands associatifs
  • Une communautĂ© prĂ©sente en nombre : plus de 1000 participants tous les ans
  • Tous les publics reprĂ©sentĂ©s, du curieux au dĂ©veloppeur noyau, en passant par les geeks et les supporters de la culture libre

Présentation

ComplÚtement gratuit, le Capitole du Libre regroupe un large ensemble d'activités:

  • des confĂ©rences, qui couvrent un large ensemble de sujets et permettront Ă  tous les publics de dĂ©couvrir ou d'approfondir des sujets techniques, leur maĂźtrise d'un logiciel, les actualitĂ©s relatives au numĂ©rique, etc.
  • des ateliers, pour dĂ©couvrir par la pratique des logiciels libres
  • une table ronde: cette annĂ©e, elle portera sur le thĂšme des modĂšles de gouvernance des projets libres

Un village associatif sera également présent pour vous permettre de rencontrer et discuter avec de nombreux acteurs du monde libre.

⚠ L'accĂšs est gratuit, mais une inscription est obligatoire.

Flyer de l'Ă©vĂšnement

Keynotes

Deux moments sont proposés pour cette édition:

Ateliers

Venez dĂ©couvrir le logiciel libre lors d’ateliers avec des experts pour vous assister.

Les ateliers au programme cette année traiteront de logiciels de dessin, de réalisation de jeu vidéo, de réalisation physique d'objets, de développement, de résolution de problÚmes, d'éditeurs de textes, etc.

Village associatif

Retrouvez les associations qui Ɠuvrent pour le logiciel libre : Framasoft, April, Toulibre, CHATONS


Install party

Venez-vous faire aider pour installer Linux, pour corriger les problĂšmes que vous rencontrez avec votre installation ou pour toute question autour du logiciel libre.
Un atelier permanent est dédié tout le week-end.

Boutique

Repartez avec un T-shirt de l’évĂ©nement, un sweatshirt d'un logiciel libre que vous apprĂ©ciez, un mug, 

Les ventes permettent de financer le Capitole du Libre.

LAN party

Pour les jeunes (et moins jeunes) qui souhaiteraient s'amuser tout en restant dans le thĂšme du logiciel libre, venez jouer Ă  quelques jeux libres avec la LAN party.

Cocktail

Comme chaque année, un moment de convivialité ouvert à tous et toutes est prévu le samedi soir.

MiniDebConf

Logo de la MiniDebConf

Cette année, une conférence MiniDebConf aura lieu en parallÚle du Capitole du Libre, accessible directement à partir du hall principal de l'école, et vous pourrez donc profiter des conférences des deux évÚnements à votre guise, rencontrer des développeurs Debian, etc.

Pour plus d'information sur la MiniDebConf


Informations pratiques

Restauration

Des food trucks sont à votre disposition les midis, directement à l'intérieur de l'établissement.

Si vous préférez vous restaurer à l'extérieur, le quartier possÚde également de nombreux restaurants et boulangeries.

Entrée

Comme tous les ans, l’accĂšs Ă  l’évĂ©nement est totalement gratuit !

⚠ Attention, puisque l'Ă©tablissement qui nous accueille est une Ă©cole, une inscription en ligne est obligatoire et le personnel de sĂ©curitĂ© demandera Ă  inspecter vos sacs Ă  l'entrĂ©e.

Les portes seront ouvertes:

  • le samedi 16 novembre 2024 de 9h30 Ă  22h
  • le dimanche 17 novembre 2024 de 10h Ă  16h30

Nous vous attendons nombreux !

Commentaires : voir le flux Atom ouvrir dans le navigateur

PyConFR 2024, planning et inscriptions

La PyConFR 2024 a lieu du jeudi 31 octobre au dimanche 3 novembre Ă  l’UFR MathĂ©matique et d’Informatique de Strasbourg. Le planning est disponible et les inscriptions sont ouvertes !

Comme toujours, la PyConFR est un Ă©vĂšnement gratuit et l’inscription est obligatoire.

Les deux premiers jours de la conférence seront occupés par les sprints. Et les deux jours suivants seront dédiés aux conférences (longues et courtes) et ateliers.

Trois keynotes sont Ă©galement au programme :

  • De villageoise Ă  l’itWoman
 Quelles actions pour faire de mon rĂȘve TECH une rĂ©alité ?, par Houleymatou BaldĂ©
  • Recherche des bonnes pratiques de packaging, par Françoise Conil
  • Reality is not an end-to-end prediction problem: Applied NLP in the age of Generative AI, par Ines Montani

Cette annĂ©e, un espace enfants (de 3 ans Ă  12 ans) est mis Ă  disposition gratuitement sur inscription. Vous pouvez inscrire vos enfants jusqu’au 15 octobre.

Durant cette Ă©dition, c’est aussi le retour du dĂ©jeuner PyLadies. Un des objectifs est de tisser des liens entre la communautĂ© PyLadies et le reste de la communautĂ© Python francophone.
Les inscriptions au dĂ©jeuner PyLadies sont ouvertes jusqu’au 27 octobre.

Le dimanche matin, l'AFP y tiendra son assemblĂ©e gĂ©nĂ©rale. Si vous souhaitez y voter, assurez vous d'ĂȘtre Ă  jour de cotisation.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Y a le Frido 2024 qu'est lĂ 

Le Frido est un livre de mathématique libre. Il est l'enveloppe convexe entre la matiÚre de l'agrégation et les bases (axiomatique des ensembles non comprise). Autrement dit : il construit les ensembles de nombres, et va jusqu'au bout du programme de l'agrégation en bouchant tous les trous. En français, il comprend 2888 pages au 25 août 2024 et est publié sous licence FDL.

Sommaire

Images de couvertures

Les images de couverture proviennent de Pepper et Carrot.

Image de couverture du tome 1

(pour voir les couvertures des tomes 2, 3 et 4)

Elles sont aussi visibles via les sources Ă©videmment.

Changements depuis l'année passée

Intégration sur variétés

J'ai dĂ©cidĂ© que la partie parlant d'intĂ©gration sur les variĂ©tĂ©s allait ĂȘtre laissĂ©e Ă  l'abandon.

  • Elle ne sert qu'Ă  dĂ©montrer le point fixe de Brouwer via Stokes. Trop compliquĂ©, trop long, pas adaptĂ© au niveau visĂ©.
  • La preuve de Brouwer continu est maintenant faite de façon plus conventionnelle.
  • La gĂ©omĂ©trie diffĂ©rentielle est dĂ©veloppĂ©e dans la partie en anglais.

DĂ©rivation

La définition de la dérivée d'une fonction \mathbb{R}\to \mathbb{R} n'est plus une définition «fondamentale». Les choses sont maintenant faites dans cet ordre :

  • DĂ©finition de la diffĂ©rentielle d'applications entre espaces de Banach.
  • DĂ©finition de la dĂ©rivĂ©e directionnelle comme application de la diffĂ©rentielle Ă  un vecteur (la direction).
  • DĂ©finition des dĂ©rivĂ©es partielles comme cas particulier.
  • La dĂ©rivĂ©e «usuelle» est dĂ©finition comme f'=\partial_1f.

Ce qui est marrant avec la derniĂšre dĂ©finition est que \partial_1 peut ĂȘtre interprĂ©tĂ© soit comme la dĂ©rivĂ©e partielle dans la premiĂšre direction (il y en a une seule dans \mathbb{R}) soit comme la dĂ©rivĂ©e directionnelle selon le vecteur 1.

ThéorÚme de Stokes

Le théorÚme de Stokes est démontré. C'est un assez gros morceau.

Ce qu'il y a de mieux qu'ailleurs

Le Frido se distingue d'autres livres de math en cela qu'il est meilleur sur certains points.

Certains détails sont traités correctement.

Je me demande si je suis le seul au monde à avoir remarqué que, quand on parle de l'extension de corps K[a], ce qu'on obtient dépend du corps ambiant dans lequel sont K et a.

Par exemple si je prend \mathbb{Q}[\sqrt{2}]
 Il n'y a pas de problÚmes à construire un sur-corps de \mathbb{Q} contenant l'élément \sqrt{2} dans lequel \sqrt{2}^2=3.

Ce genre de détails sont traités dans le Frido, l'exemple de \mathbb{Q}[\sqrt{2}] est donné en détail, et il est bien fait mention que la notation \mathbb{Q}[a] réfÚre toujours à des sous-corps de \mathbb{C}.

Notation pour les dérivées partielles

Considérez les trois fonctions suivantes : f,g,h:\mathbb{R}^2\to \mathbb{R} données par

f(x,y)=x\sin(y)

g(u,v)=u\sin(v)

h(y,x)=y\sin(x)

Est-ce que vous oseriez Ă©crire f=g=h ? Si oui, c'est que vous pouvez remplacer «f» par «g» ou «h» partout. Alors que signifie \frac{\displaystyle\partial g}{\displaystyle\partial x} ?

Bien que ces infectes notations «\frac{\partial f}{\partial x}» soient utilisées à quelques endroits dans le Frido, je m'efforce à écrire (\partial_if) qui signifie la dérivée de f dans la i-iÚme direction.

Un minimum de notations

Bien que je sois un psychorigide sur les abus de notations, le Frido a une autre rĂšgle : utiliser un minimum de symboles difficiles Ă  Ă©crire. Tout doit pouvoir ĂȘtre Ă©crit Ă  la main sur des feuilles volantes dans le tram.

  • pas de gras pour les vecteurs (impossible Ă  rendre Ă  la main)
  • le mĂȘme symbole «*» est utilisĂ© pour \mathbb{K}^* pour dire \mathbb{K}\setminus\{0\} et dans E^* pour dĂ©signer le dual algĂ©brique.

Variétés et cartes

D'habitude, on définit une variété comme étant un ensemble avec des cartes provenant d'ouverts de \mathbb{R}^n.

Or on dĂ©finit quand mĂȘme souvent des variĂ©tĂ©s avec des cartes ne provenant pas de \mathbb{R}^n. Par exemple lorsqu'on travaille sur des sous-groupes de Lie, on prend souvent la carte exponentielle provenant de l'algĂšbre de Lie.

Dans Giulietta (NdM : extension en anglais qui va de l’agrĂ©gation jusqu’à tout ce que l'auteur sait en mathĂ©matique), on dĂ©finit correctement une variĂ©tĂ© comme ayant des cartes provenant d'ouverts d'espaces vectoriels normĂ©s quelconques. Il est alors dĂ©montrĂ© que toute telle variĂ©tĂ© est isomorphe Ă  une variĂ©tĂ© avec des cartes de \mathbb{R}^n.

Je ne me souviens pas avoir vu cette subtilité traitée quelque part. Notons qu'avec cette définition, on ne peut plus parler de l'ensemble de toutes les cartes.

Citations

Le Frido cite (à peu prÚs) correctement ses sources. Chaque théorÚme vient avec les sources qui ont contribué soit à l'énoncé soit à la preuve. Les inventions personnelles sont mentionnées trÚs explicitement. Pas peur de citer wikipédia, des commentaires sur math.stackexchange.com ou d'autres sources moins conventionnelles que des livres.

Je suis souvent choqué étonné par la quantité de cours mis en ligne par des profs se contentant de citer trois livres en disant «pour en savoir plus, le lecteur pourra consulter les ouvrages suivants». Ensuite, on va se plaindre que si les étudiants ne citent pas leurs sources dans leurs mémoires, c'est du plagiat.

Le plagiat massif est simplement la norme dans les textes de math que les profs mettent dans les mains des Ă©tudiants.

ChatGPT

Cette annĂ©e, ChatGPT entre dans la bibliographie. C'est lui qui a fourni une partie de la preuve que si f_1 et f_2 sont mesurables (depuis le mĂȘme espace) alors le vecteur (f_1, f_2) est mesurable.

Il y a d'ailleurs une belle anecdote Ă  ce sujet.

ChatGPT se contente de prouver correctement que le théorÚme est vrai sur les mesurables de la forme A_1\times A_2, et dit vaguement que si c'est bon sur une partie qui engendre la tribu produit, alors c'est bon pour toute la tribu. Typiquement le genre de trou dans la preuve que laisserait un humain.

Si vous voulez contribuer

Niveau facile

Lisez et Ă©crivez-moi si vous trouvez une faute ou un passage pas clair. CritĂšre : si vous ĂȘtes relativement bon en math et que vous mettez plus de 20 minutes sur une ligne, c'est qu'il y a un problĂšme avec le texte.

Niveau intermédiaire

S'il manque une démonstration, rédigez-en une, faites une photo de votre feuille et envoyez-la moi.

Niveau difficile

  • Si vous ĂȘtes bon en gĂ©omĂ©trie diffĂ©rentielle, vous pouvez tenter de rĂ©pondre Ă  cette question:

https://math.stackexchange.com/questions/4917916/commute-two-sums-when-defining-integral-of-differential-manifold

Enjeu : toutes les dĂ©finitions que je connais de l'intĂ©grale d'une forme sur une variĂ©tĂ© sont fausses. Sauf celle que j'ai inventĂ©e moi-mĂȘme.

  • Si vous vous y connaissez en processus de Poisson, vous pouvez rĂ©pondre Ă  cette question :

https://math.stackexchange.com/questions/4957480/density-of-the-vector-of-jump-times-in-a-poisson-process

Note : je ne suis mĂȘme pas sĂ»r que l'Ă©noncĂ© soit correct. La dĂ©monstration que je connais vient d'ici mais je ne suis pas convaincu.

  • Si vous ĂȘtre bon en probabilitĂ©s, vous pouvez tenter de rĂ©pondre Ă  cette question :

https://math.stackexchange.com/questions/4961074/is-the-join-density-the-density-of-the-vector

Niveau supérieur

Vers la fin, il y a une section consacrée aux différentes propriétés et conjectures autour de la constante de Weiner. Si vous en connaissez d'autres, faites-le moi savoir.

LaTeX

Modifier l'environnement proof pour qu'il prenne un paramÚtre booléen optionnel inBook. Par défaut il vaut True et la démonstration est affichée. Si inBook est False, la démonstration n'est pas affichée. Au lieu de la preuve, il y a le texte «Voir la version en ligne : ».

La raison est expliquée plus bas.

Agreg (1)

Il me faut une liste des thĂ©orĂšmes dont les dĂ©monstrations peuvent ĂȘtre sautĂ©es pour un candidat Ă  l'agreg. J'imagine que tout ce qui utilise explicitement le lemme de Zorn peut sauter, tout ce qui parle de topologie sur les espaces de distribution peut sauter, la partie sur les mesures peut partir, etc.

Pour la raison de ce besoin, voir plus bas.

Agreg (2)

Il me faut une liste de théorÚmes qui peuvent servir de développements.

Contrainte

Je n'ai pas accĂšs aux livres privateurs. Inutile de m'en conseiller un.

Ventes

Les chiffres

Précision sur le prix : le prix indiqué est le prix de vente cÎté imprimeur. Je ne gagne pas d'argent dessus. D'ailleurs je me demande bien qui achÚte le Frido 


Certes, le rĂšglement de l'agrĂ©gation interdit les livres qui ne sont pas vendus (incidemment, les livres qui ne sont plus en vente sont interdits), mais j'ai du mal Ă  croire qu'il y ait autant de monde qui utilise le Frido Ă  l'agreg. Mais si ce n'est pas pour l'agreg, qui paye 100 euros pour avoir quatre briques de 6cm d'Ă©paisseur A4 alors qu'on peut avoir un pdf sur un Ă©cran ?

Voici un tableau qui montre, pour chaque année, le nombre de livres vendus, et le prix total. Les cases avec un x correspondent au nombres dont je n'ai pas pris note.

année prix de tout le Frido Nombre de livres vendus
2016 x 51
2017 x 37
2018 x 30
2019 89,36 17
2020 x 32
2021 97,59 13
2022 x x
2023 106,79 16
2024 110,88

Au total, ce sont 196 bouquins vendus plus ceux de 2022 dont je n'ai pas pris note. On doit ĂȘtre un peu au-dessus de 200.

Précisions :

  • La ligne 2021 correspond au Frido 2021 vendu entre septembre 2021 et septembre 2022. Plus gĂ©nĂ©ralement, la ligne N correspond aux ventes entre septembre N et septembre N+1.
  • En 2019, il fallait payer 89,36 euros pour acheter les 4 Fridos. 17 livres ont Ă©tĂ©s vendus. Le fait que 17 ne soit pas divisible en 4 est dĂ» au fait que le tome 2 a Ă©tĂ© achetĂ© 5 fois, tandis que les autres ont Ă©tĂ© vendus 4 fois.

Une pensée à propos des prix

La page 77 du rapport 2023 indique qu'un livre n'est autorisé que s'il jouit d'une diffusion commerciale. La motivation est que :

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.

Je ne sais pas si l'auteur de ces lignes avait l’accessibilitĂ© financiĂšre en tĂȘte en rĂ©digeant cela. Si oui, alors le Frido est probablement le seul livre autorisĂ© Ă  l'agreg :)

Quoi qu'il en soit, le Frido commençant à dépasser les 100 euros, il y a un problÚme.

Pour faire baisser le prix, il faut baisser le nombre de pages.
Une piste serait de supprimer les démonstrations des théorÚmes non nécessaires à l'agreg.

Pour cela il me faudrait les deux contributions LaTeX et agreg (1) dont je parle plus haut :

  • LaTeX : Une modification de l'environnement proof.

  • Agreg : il me faut une liste des thĂ©orĂšmes dont les dĂ©monstrations peuvent ĂȘtre sautĂ©es pour un candidat Ă  l'agreg.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Nouveautés de septembre 2024 de la communauté Scenari

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

À chaque mĂ©tier/contexte son modĂšle Scenari :

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


Prochain mini-webinaire : « Ajouter un en-tĂȘte personnalisĂ© Ă  sa publication web» 19 septembre

đŸ–„ïž Prochain mini-webinaire : « Ajouter un en-tĂȘte personnalisĂ© Ă  sa publication web» 19 septembre

La session aura lieu le mardi 19 septembre de 17h à 18h heure de Paris, à l’adresse https://scenari.org/visio/miniwebinaire.

Pour que la session colle au mieux aux besoins de la communauté, tu peux participer à ce fil de discussion sur le forum.

Les sessions précédentes sont sur la page dédiée de scenari.org et dans notre canal peertube.

Pour proposer des sujets, rends-toi sur ce fil de discussion.

Celui que beaucoup attendaient : LTI-suite

📣 Celui que beaucoup attendaient : LTI-suite

LTI-suite est un serveur d’écriture structurĂ©e et collaborative, couplĂ© Ă  un dĂ©pĂŽt de documents et ressources.

Jusque-lĂ  rien de nouveau par rapport Ă  un serveur Scenari-suite classique.

La grande nouveautĂ© est que sur le dĂ©pĂŽt de LTI-suite, il est possible de dĂ©poser des ressources SCORM exploitables par des plateformes d’apprentissage (LMS) via le protocole LTI. Plus besoin de dĂ©poser les paquets SCORM dans la LMS. Tout est plus fluide !

LTI-suite 1.0 est un projet en phase beta. Kelis est intĂ©ressĂ©e par vos retours Ă©ventuels afin de finaliser la version.

Ressources pour l'Apprentissage Par ProblĂšmes

📣 Ressources pour l'Apprentissage Par Problùmes

Unisciel a crĂ©Ă© une page dĂ©diĂ©e Ă  l'Apprentissage Par ProblĂšmes (APP) : https://app.unisciel.org/

Il y a dans cette page notamment deux guides trĂšs bien faits :
* « Apprentissage par problĂšmes - RĂ©diger un PROSIT Â»
* « Apprentissage par problĂšmes - Animer un tutorat Â»

Tu peux crĂ©er des contenus selon cette modalitĂ© d'apprentissage avec l'extension Situation-problĂšme pour Opale 4 (qui sera peut-ĂȘtre bientĂŽt disponible pour Opale 5 et Opale 24).

Nous publieront bientÎt la conférence que Julie Tardy a donné sur ce sujet aux Rencontres Scenari 2024.

Opale 24 entre en scĂšne !

📣 Opale 24 entre en scĂšne !

Opale 24 est sorti ! Entre autres nouveautĂ©s, tu trouveras :
* Typage personnalisé de ton contenu décuplé (tu en sauras plus quand on publiera la conférence sur la question)
* PossibilitĂ© d’insĂ©rer des exercices directement dans les grains de contenu (c'Ă©tait une demande d'Ă©volution de la communautĂ©, comme quoi la place des Ă©volutions c'est utile 😉)

La liste complĂšte des nouveautĂ©s d'Opale 24 est disponible dans la documentation.

Radiographie de la communauté Scenari

📣 Radiographie de la communautĂ© Scenari

Les informations proviennent de ce que les membres du forum Scenari ont auto-déclaré sur leur profil :
Contexte d'usage :
* Secteur public 44%
* Personnel 25%
* Entreprise 22%
* Association 9%
Domaine d'usage :
* Enseignement supérieur 33%
* Documentation 27%
* Enseignement professionnel 18%
* Enseignement primaire-secondaire 11%
* Information et communication 11%
Usage de Scenari :
* Je crée des documents avec Scenari 49%
* Je découvre 26%
* Je pilote des projets en lien avec Scenari 12%
* Je gĂšre des SCENARIserver 7%
* Je crée des modÚles avec SCENARIbuilder 3%
* Je crée des chartes graphiques avec SCENARIstyler 2%
* Je crée Scenari 2%

N'hĂ©site pas Ă  mettre Ă  jour ton profil sur le forum !

Mets Ă  jour tes applications Scenari

📣 Mets à jour tes applications Scenari

Nouvelle version de maintenance de la suite SCENARI (6.3.10). Quelques corrections sécuritaires et amélioration de la publication des listing informatiques.

Nouvelle version de Topaze (5.0.2). Liste des nouveautés sur le forum.

Une nouvelle version corrective de Dokiel est disponible : Dokiel 6.0.7 disponible en Français, Anglais, Portugais, Italien.

Cette version apporte :
* L’ajout d’une option pour ne pas redimensionner physiquement les images - utile pour les GIF animĂ©s ;
* Quelques corrections mineures dans l’éditeur.

Une nouvelle version de Optim  : Optim 24.0.1 est disponible. Cette version apporte entre autres l’ajout de tags Open Graph aux publications Web pour une meilleure intĂ©gration de liens fait sur les rĂ©seaux sociaux et autres plateformes.

ParallĂšlement, OptimPlus 24, une version plus complĂšte de Optim, est maintenant disponible, offrant :

  • Des nouveautĂ©s dans la gestion de la bibliographie dans les publications PDF ;
  • La possibilitĂ© d’importer une bibliographie Zotero au format MODS directement par glisser-dĂ©poser ;
  • La possibilitĂ© d’ajouter des formules mathĂ©matiques Ă©crites en LaTeX.

Enfin, pour les fans de lexiques et de thĂ©saurus, une nouvelle version de maintenance de Lexico est disponible : Lexico 3.0.2. Cette version apporte une correction dans la publication PDF.

Le savais-tu ?

✹ Le savais-tu ?

Créer un lien web dans l'éditeur Scenari est probablement encore plus facile que tu ne le penses.

Il suffit de :
1. copier l'url que tu souhaites ajouter,
2. sélectionner la portion de texte qui doit porter le lien dans ton contenu,
3. et coller (ctrl+v). Une popup te demanderas si tu veux créer un lien ou copier le lien en texte brut.

On ne peut plus simple !

Créer un lien web dans l'éditeur Scenari

Tu peux retrouver cette astuce, et beaucoup d'autres, sur le forum.

Commentaires : voir le flux Atom ouvrir dans le navigateur

🏆 Meilleures contributions LinuxFr.org : les primĂ©es de l'Ă©tĂ© 2024

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

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

Les livres 📚 sĂ©lectionnĂ©s

Bandeau LinuxFr.org

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

Logo Ă©ditions ENI Logo Ă©ditions Eyrolles Logo Ă©ditions B-BookeR
     

Commentaires : voir le flux Atom ouvrir dans le navigateur

Capitole du Libre 2024 Ă  Toulouse - appel Ă  participation

Capitole du Libre

L’évĂšnement du logiciel libre et de la culture libre en Occitanie

L’édition 2024 du Capitole du Libre se dĂ©roulera le week-end du 16 et 17 novembre Ă  Toulouse pour sa onziĂšme Ă©dition, en centre‐ville (INP-ENSEEIHT).

PrĂ©sentation de l’évĂšnement

ComplÚtement gratuit, le Capitole du Libre regroupe un large ensemble de conférences et d'ateliers, qui permettront aux experts comme au grand public de se réunir pour découvrir ou approfondir des sujets techniques ou des actualités relatives au numérique.

Un village associatif sera présent pour rencontrer et discuter avec les acteurs de ces communautés.

Des animations seront également proposées tout le week-end.

Les thÚmes généralement abordés par les conférences et ateliers sont:

  • Enjeux et Culture du Libre
  • Vie privĂ©e, sĂ©curitĂ©
  • DĂ©veloppement: langages et framework
  • DevOps, Web
  • Technique
  • Graphisme et logiciels 3D
  • CommunautĂ©s et projets de Logiciel Libre

Appel à participation ouvert jusqu’au 15 septembre

L’appel Ă  participation est lancĂ© et ouvert jusqu’au 15 septembre 23h59 (la dĂ©pĂȘche est publiĂ©e assez tard par rapport Ă  cette Ă©chĂ©ance, mais on compte sur vous pour nous surprendre par votre capacitĂ© Ă  improviser rapidement une belle proposition !).

Plusieurs formats de propositions sont possibles :

  • prĂ©senter une confĂ©rence de 25 ou 55 minutes (questions comprises)
  • organiser et animer un atelier de ~2h
  • tenir un stand au village associatif pour toute la durĂ©e de l’évĂ©nement (2 jours)

Vous pouvez proposer autant de confĂ©rences et d’ateliers que vous le souhaitez, mais sachez que nous retiendrons au maximum deux de vos interventions. Bien entendu, cela ne s’applique pas aux stands, vous pouvez tenir un stand et Ă©galement prĂ©senter des confĂ©rences ou des ateliers. De plus, nous vous invitons Ă  ne pas dĂ©passer deux personnes par confĂ©rence.

Pour plus de dĂ©tails, ou pour voir tous les aspects logistiques, tous les dĂ©tails sont disponibles sur le formulaire d’inscription!

Accéder au Capitole du Libre

D’accĂšs libre et gratuit, l’entrĂ©e est possible le samedi de 9h30 Ă  22h30 et le dimanche de 9h30 Ă  16h30.
Comme pour l’édition prĂ©cĂ©dente, il vous sera demandĂ© de prĂ©senter un billet Ă  l’entrĂ©e de l’évĂ©nement. Ce billet gratuit est rĂ©servable Ă  partir de la page dĂ©diĂ©e.

Si vous avez des questions et/ou des remarques, vous pouvez nous contacter à l’adresse contact@capitoledulibre.org

Commentaires : voir le flux Atom ouvrir dans le navigateur

Sortie de CrĂšme CRM en version 2.6

Le 5 août 2024 est sortie la version 2.6 du logiciel de gestion de la relation client CrÚme CRM (sous licence AGPL-3.0), environ 11 mois aprÚs Creme 2.5 (11 septembre 2023).

IcĂŽne de CrĂšme CRM

Au programme notamment, un systĂšme de notification, des amĂ©liorations pour le calendrier ou des filtres rĂ©servĂ©s aux rapports. Les nouveautĂ©s sont dĂ©taillĂ©es dans la suite de la dĂ©pĂȘche.

Sommaire

Description du logiciel

CrĂšme CRM est un logiciel de gestion de la relation client, gĂ©nĂ©ralement appelĂ© CRM (pour Customer Relationship Management). Il dispose Ă©videmment des fonctionnalitĂ©s basiques d’un tel logiciel :

  • un annuaire, dans lequel on enregistre contacts et sociĂ©tĂ©s : il peut s’agir de clients, bien sĂ»r, mais aussi de partenaires, prospects, fournisseurs, adhĂ©rents, etc. ;
  • un calendrier pour gĂ©rer ses rendez‐vous, appels tĂ©lĂ©phoniques, confĂ©rences, etc. ; chaque utilisateur peut avoir plusieurs calendriers, publics ou privĂ©s ;
  • les opportunitĂ©s d’affaires, gĂ©rant tout l’historique des ventes ;
  • les actions commerciales, avec leurs objectifs Ă  remplir ;
  • les documents (fichiers) et les classeurs.

CrĂšme CRM dispose en outre de nombreux modules optionnels le rendant trĂšs polyvalent :

  • campagnes de courriels ;
  • devis, bons de commande, factures et avoirs ;
  • tickets, gĂ©nĂ©ration des rapports et graphiques


L’objectif de CrĂšme CRM est de fournir un logiciel libre de gestion de la relation client pouvant convenir Ă  la plupart des besoins, simples ou complexes. À cet effet, il propose quelques concepts puissants qui se combinent entre eux (entitĂ©s, relations, filtres, vues, propriĂ©tĂ©s, blocs), et il est trĂšs configurable (bien des problĂšmes pouvant se rĂ©soudre par l’interface de configuration) ; la contrepartie est qu’il faudra sĂ»rement passer quelques minutes dans l’interface de configuration graphique pour avoir quelque chose qui vous convienne vraiment (la configuration par dĂ©faut ne pouvant ĂȘtre optimale pour tout le monde). De plus, afin de satisfaire les besoins les plus particuliers, son code est conçu pour ĂȘtre facilement Ă©tendu, tel un cadriciel (framework).

Du cÎté de la technique, CrÚme CRM est codé notamment avec Python/Django et fonctionne avec les bases de données MySQL, SQLite et PostgreSQL.

Principales nouveautés de la version 2.6

Voici les changements les plus notables de cette version :

Le nouveau systĂšme de notification

Depuis toujours CrĂšme possĂšde un systĂšme de MĂ©mentos (Reminders), qui permet de recevoir des e-mails pour vous prĂ©venir d’une Ă©chĂ©ance. Ce systĂšme est utilisĂ© par les Alertes & les ToDos ; par exemple vous recevez un e-mail lorsqu’une Alerte qui vous est attribuĂ©e va expirer dans 30 minutes. Et comme vous pouvez crĂ©er des Alertes dont la date d’expiration est un champ date de la fiche associĂ©e, cela permet par exemple d’ĂȘtre prĂ©venu qu’une activitĂ© importante Ă  laquelle vous participez va bientĂŽt avoir lieu.

Le nouveau systÚme de notification qui a été introduit amÚne 2 avancées principales :

  • les notifications envoyĂ©es ne sont pas limitĂ©es Ă  des e-mails, vous pouvez aussi les voir dans votre navigateur (donc sans quitter CrĂšme).
  • si les mĂ©mentos ont Ă©tĂ© retravaillĂ©s pour utiliser ce nouveau systĂšme, d’autres parties de CrĂšme en profitent aussi. Par exemple, une notification vous est envoyĂ©e si un administrateur a changĂ© votre mot de passe ; ou bien quand un job d’import CSV vient de s’achever.

Une notification web est arrivée

Chaque notification est associĂ©e Ă  un canal, et vous pouvez configurer les canaux pour savoir si la notification est envoyĂ©e dans le navigateur, par e-mail ou bien les 2. Si le canal n’est pas obligatoire, vous pouvez aussi choisir de ne pas recevoir les notifications du tout. Chaque utilisateur peut utiliser sa propre configuration si la configuration gĂ©nĂ©rale du canal ne lui convient pas.

La configuration des canaux

Améliorations du calendrier

  • Le composant JavaScript FullCalendar est passĂ© Ă  la version 5. MĂȘme si ce n’est pas la toute derniĂšre version (il faut dire qu’il y a pas mal de changements cassants entre chaque version), on profite de pas mal d’amĂ©liorations diverses.
  • Il est maintenant possible de configurer graphiquement le calendrier (premier jour de la semaine, plage horaire, jour travaillĂ©s
). Il y a une configuration globale utilisĂ©e par tout le monde, mais comme presque toujours dans Creme, il est possible de crĂ©er des configurations par rĂŽle.

La configuration des calendriers du module « ActivitĂ©s »

Filtres spécifiques aux Rapports

Les Rapports utilisent gĂ©nĂ©ralement un filtre, afin d’affiner leurs rĂ©sultats. Ces filtres sont les mĂȘmes que ceux qu’utilisent les vues en liste ; par exemple si vous faites un Rapport sur les Devis, il peut utiliser les filtres disponibles sur la liste des Devis.

Un problĂšme que cela entraĂźne est que beaucoup d’utilisateurs crĂ©ent des filtres un peu spĂ©cifiques afin de les utiliser dans leurs Rapports, mais ces filtres viennent « polluer » la vue en liste correspondante (car la sĂ©lection de filtres proposent de nombreux filtres non pertinents). Afin de corriger ce souci, il est dĂ©sormais possible de crĂ©er des filtres utilisables uniquement dans les Rapports. Les Rapports peuvent bien sĂ»r continuer Ă  utiliser les filtres classiques, mais les filtres spĂ©cifiques aux Rapports ne sont pas utilisables dans les vues en liste Ă©videmment.

La crĂ©ation d’un rapport avec un filtre spĂ©cifique sĂ©lectionnĂ©

Quelques autres améliorations notables

  • Python 3.12 est officiellement gĂ©rĂ©.
  • Dans le module facturation, vous pouvez maintenant configurer les statuts sĂ©lectionnĂ©s par dĂ©faut (dans les formulaires), ainsi que les statuts utilisĂ©s par les Factures lorsque leur numĂ©ro est gĂ©nĂ©rĂ©.
  • Un nouveau bouton, qui peut ĂȘtre mis sur la vue dĂ©taillĂ©e des Contacts, est disponible: « CrĂ©er un appel non abouti » (dĂ©tails).
  • La configuration des blocs d’un rĂŽle peut maintenant ĂȘtre crĂ©Ă©e en clonant la configuration d’un autre rĂŽle (les rĂŽles pouvant avoir des configurations assez proches, ça peut ĂȘtre un gain de temps apprĂ©ciable).
  • Les blocs basĂ©s sur OpenStreetMap sont maintenant utilisĂ©s dans l’installation par dĂ©faut (Ă  place de ceux basĂ©s sur GoogleMaps).
  • Un rĂŽle «Utilisateur normal» est crĂ©Ă© dans les nouvelles installations. Dans la mesure oĂč c’est une bonne chose que tout le monde ne soit pas connectĂ© en tant que super-utilisateur, ce rĂŽle devrait permettre de gagner du temps et servir au moins de base de travail.
  • Un bouton permettant de transformer un simple Contact en utilisateur a Ă©tĂ© ajoutĂ©. Auparavant il fallait fusionner ce Contact avec le Contact automatiquement crĂ©Ă© Ă  la crĂ©ation d’un utilisateur.
  • Les Graphes ont reçu de nombreuses amĂ©liorations : plus de champs sont disponibles en abscisse, plus de champs sont disponibles pour le filtrage, les couleurs associĂ©es aux petits modĂšles auxiliaires (du genre « Statut ») sont utilisĂ©es

  • La validation des URLs est dĂ©sormais moins stricte dans les champs informatifs. Cela posait pas mal de problĂšmes notamment lors des imports, les gens mettant rarement le « http:// Â» dans leur base de donnĂ©es.

Le futur

La prochaine version marquera notamment le passage Ă  Django 5.2, la future LTS qui sortira en avril 2025. À l’annĂ©e prochaine !

Commentaires : voir le flux Atom ouvrir dans le navigateur

TuxGuitar : c'est reparti pour un tour

TuxGuitar est un Ă©diteur / lecteur de tablatures multipistes, publiĂ© sous licence LGPL. Il s’adresse aux musiciens jouant de la guitare, de la basse, et plus gĂ©nĂ©ralement des instruments Ă  cordes frettĂ©es.

Logo du logiciel Tux Guitar

Ce logiciel a Ă©tĂ© dĂ©veloppĂ© et maintenu sur SourceForge de 2005 Ă  2022 par un dĂ©veloppeur argentin, Julian Gabriel Casadesus. Avec, comme pour beaucoup de logiciels libres, des pĂ©riodes de dĂ©veloppement plus ou moins actives au fil des annĂ©es. De maniĂšre assez soudaine, mi-2022, le dĂ©veloppeur a cessĂ© toute activitĂ©, et il n’a plus donnĂ© aucun signe de vie depuis. Le nom de domaine historique (en.com.ar) a cessĂ© d’ĂȘtre maintenu fin 2022. C’est bien dommage, une grande quantitĂ© d’information a Ă©tĂ© perdue.

Depuis des annĂ©es, TuxGuitar est une rĂ©fĂ©rence dans le monde du libre guitaristique. Alors pour les utilisateurs la question se pose : quel avenir pour TuxGuitar ?

En 2023, aprĂšs avoir tentĂ© de reprendre contact avec le crĂ©ateur de TuxGuitar sans succĂšs, quelques enthousiastes – dont je fais partie – ont relancĂ© une branche sur Github. Depuis, plusieurs nouvelles versions ont Ă©tĂ© publiĂ©es, la toute derniĂšre version 1.6.3 vient juste de sortir.

Adopter un logiciel libre orphelin peut s’avĂ©rer dĂ©licat : code source assez volumineux, aucune documentation, aucune base de test, commentaires trĂšs rares dans le code (et en espagnol). Et surtout, comment faire connaĂźtre ce projet ? C’est l’objet de cette dĂ©pĂȘche.

AprĂšs des dĂ©buts timides cette nouvelle initiative prend petit Ă  petit sa place, et une communautĂ© commence Ă  se recrĂ©er autour de ce nouveau dĂ©pĂŽt. Depuis fin avril cette nouvelle version est plus tĂ©lĂ©chargĂ©e que la version historique : TuxGuitar semble bel et bien reparti pour une seconde vie. À noter que wikipedia a suivi le mouvement et pointe maintenant sur ce nouveau dĂ©pĂŽt.

Copies d’écran de Tux Guitar en pleine action
TuxGuitar est disponible pour Linux (.tar.gz,.deb et.rpm), Windows, macOS, FreeBSD, et Android. Une version flatpak a Ă©tĂ© Ă©galement mise Ă  jour par la communautĂ©. CĂŽtĂ© distributions, je n’ai pas fait de recherche exhaustive, mais cette nouvelle mouture est disponible directement dans les dĂ©pĂŽts d’openSUSE. J’ai Ă©galement trouvĂ© un paquet pour ArchLinux, une spĂ©cification pour construire un paquet rpm pour Fedora, et des instructions pour Gentoo.

Certainement pas aussi complet que le logiciel commercial de rĂ©fĂ©rence, Guitar Pro, TuxGuitar reste une sĂ©rieuse alternative libre. Tout particuliĂšrement pour le monde Linux, que l’éditeur de Guitar Pro a officiellement abandonnĂ© depuis plusieurs annĂ©es.

Alors avis aux guitaristes, bassistes, ukulĂ©listes et autres instrumentistes Ă  cordes : n’hĂ©sitez pas Ă  y jeter un Ɠil, et Ă  faire circuler l’information !

Commentaires : voir le flux Atom ouvrir dans le navigateur

L’informatique sans Ă©cran

Lors d’un NoĂ«l de ma tendre jeunesse prĂ©-adolescente est arrivĂ© un « ordinateur Â» dans le foyer. Ce PC (Intel 386) a Ă©tĂ© installĂ© dans le bureau et a vite dĂ©gĂ©nĂ©rĂ© en console de jeux. Puis les annĂ©es passant c’est devenu une formidable source d’expĂ©rimentation informatique pour un geek en devenir. À cette Ă©poque on sensibilisait la jeunesse Ă  ne pas passer trop de temps devant la tĂ©lĂ©vision et la console de jeux, puis devant l’ordinateur et les jeux vidĂ©o violents. Mais on ne parlait pas vraiment de l’écran.

Aujourd’hui les messages de sensibilisation se rĂ©sument aux Ă©crans :

  • « pas d’écran avant trois ans Â»
  • « nos jeunes passent leurs temps sur leurs Ă©crans Â» (comme si les « vieux Â» n’y Ă©taient pas non plus)
  • « attention les Ă©crans fabriquent une gĂ©nĂ©ration de crĂ©tins Â»
  • « les Ă©crans, les Ă©crans, les Ă©crans »

Il est vrai qu’aujourd’hui l’informatique ne se rĂ©sume presque plus qu’à un Ă©cran. De l’ordinateur avec clavier+souris+Ă©cran, voire crayon optique, on est passĂ© aux tablettes et ordiphones qui n’ont plus que l’écran (tactile quand mĂȘme).

Pour prendre le contre-pied de cette obsession des Ă©crans, je me demandais donc s’il existait encore une informatique « sans Ă©cran Â». La formidable multiplicitĂ© des activitĂ©s que l’on peut avoir sur un ordinateur pourrait-elle se faire sans Ă©cran ? Dans quelle mesure peut-on coder, surfer sur le web, lire/envoyer des mails sans Ă©cran ? Cette informatique fantasmĂ©e par notre ex-ministre de l’éducation est elle une rĂ©alitĂ© ?

    Sommaire

    L’informatique, une histoire d’abord sans Ă©cran

    Si l’on date la naissance de l’ùre de l’informatique avec Ada Lovelace, et qu’on estime l’arrivĂ©e des ordinateurs avec Ă©crans Ă  la fin des annĂ©es 1970, alors on peut aisĂ©ment dire que l’informatique a Ă©tĂ© plus longtemps sans Ă©cran qu’avec.

    Peinture d’Ada LovelaceMalgrĂ© son look cosplay de manga elle n’a pas subi trop d’écrans dans son enfance, elle.

    De mĂȘme, il est raisonnable de considĂ©rer l’ordinateur comme l’outil principal pour faire de l’informatique. Il fut largement sans Ă©cran Ă  ses dĂ©buts.

    Ken Thompson (assis) et Dennis Ritchie (debout) manipulant un DEC PDP-11
    Pas d’écran pour ces deux geeks qui ont dĂ©veloppĂ© UNIX et le langage C (source)

    L’altair8800, sorti en 1975 et sur lequel Microsoft a Ă©crit son BASIC, se programmait avec des rubans perforĂ©es, voire avec des commutateurs, et l’affichage se faisait avec quelques diodes (DEL) en face avant.
    Les cartes à trous étant plutÎt utilsées avec les gros ordinateurs (aka Big Iron).

    Vue de face de l’Altair8800Difficile de considĂ©rer ces deux lignes de diodes rouges comme l’écran de l’Altair8800

    L’écran ≠ la vue

    Pour faire sans Ă©cran, on pense instinctivement Ă  utiliser d’autres sens que la vue comme l’ouĂŻe ou le toucher (pour le goĂ»t ou l’odorat difficile d’imaginer la chose). Mais l’histoire de l’informatique nous montre que les premiĂšres interfaces homme-machine ne fonctionnaient pas avec des Ă©crans, et pourtant utilisaient la vue (lumiĂšre, LED, imprimante, position mĂ©canique
).

    Mais qu’appelle-t-on Ă©cran ?

    D’aprĂšs la dĂ©finition de WikipĂ©dia, « un Ă©cran d’ordinateur est un pĂ©riphĂ©rique de sortie vidĂ©o d’ordinateur. Il affiche les images gĂ©nĂ©rĂ©es par la carte graphique de l’ordinateur. GrĂące au taux de rafraĂźchissement d’écran Ă©levĂ©, il permet de donner l’impression de mouvement. »

    Donc si l’on s’en tient Ă  wikipĂ©dia, un Ă©cran d’ordinateur c’est :

    • des images gĂ©nĂ©rĂ©es par une carte graphique d’ordinateur. Exit la tĂ©lĂ© cathodique avec un tuner analogique (qui devient rare aujourd’hui avec la TNT).
    • avec un taux de rafraĂźchissement Ă©levĂ©. Exit les liseuses et autres appareils utilisant un affichage type «  papier Ă©lectronique Â».
    • pas d’indication de rĂ©solutions.

    On peut sans doute rajouter les écrans (comme les télés) qui ne sont pas raccordés à une carte graphique dans la catégorie écran.

    Cela serait donc la résolution (définition et taille
) et le rafraßchissement (fréquence de balayage) du périphérique de sortie vidéo qui font un écran.

    La matrice 5 × 5 d’un micro:bit ne correspond pas Ă  un critĂšre de rĂ©solution suffisant, pas plus que les deux poussoirs ne pourraient prĂ©tendre Ă  ĂȘtre un clavier.
    micro:bit Pourtant il affiche bien une « image » de cƓur <3 !

    Les afficheurs 7 segments ne peuvent pas ĂȘtre considĂ©rĂ©s comme des Ă©crans. Ils n’affichent que des chiffres et quelques symboles. Difficile de crĂ©er une impression de mouvement avec seulement des segments.
    Afficheur 7 segmentsEn faisant un effort, on arrive Ă  reconstituer quelques lettres.

    En doublant le nombre de segments, on arrive à afficher l’ensemble des lettres de l’alphabet latin
    Afficheur 14 segmentsSans diacritiques, faut pas pousser

    Un « panel Â» LCD 20×4 et ses caractĂšres de 8 pixels sur 5 forme un Ă©cran de 100 pixels sur 32, la rĂ©solution est dĂ©jĂ  meilleure, mĂȘme s’il est toujours prĂ©vu pour n’afficher que du texte. NĂ©anmoins on se rapproche de l’idĂ©e que l’on se fait d’un « Ă©cran Â».

    Du papier Ă©lectronique ne peut pas ĂȘtre un Ă©cran. La rĂ©solution peut ĂȘtre excellente mais le rafraĂźchissement reste insuffisant.

    Finalement la dĂ©finition de WikipĂ©dia n’est guĂšre rigoureuse ni efficace, entre l’unique LED du panneau de contrĂŽle et l’écran haute rĂ©solution, il y a un continuum de pĂ©riphĂ©riques de sortie utilisant des signaux lumineux pour former des images. Il faut peut-ĂȘtre alors chercher les systĂšmes informatiques qui, dans leur usage normal, utilisent d’autres pĂ©riphĂ©riques de sortie ou pas de pĂ©riphĂ©riques de sortie du tout.

    L’embarquĂ©e, une informatique massivement sans Ă©cran

    Bien sĂ»r il faut dĂ©finir le mot « informatique Â». Si l’on se rĂ©fĂšre Ă  la dĂ©finition de WikipĂ©dia :

    L’informatique est un domaine d’activitĂ© scientifique, technique, et industriel concernant le traitement automatique de l’information numĂ©rique par l’exĂ©cution de programmes informatiques hĂ©bergĂ©s par des dispositifs Ă©lectriques-Ă©lectroniques : des systĂšmes embarquĂ©s, des ordinateurs, des robots, des automates, etc.

    Avec cette dĂ©finition, le moindre dispositif Ă©lectronique embarquĂ© est de l’informatique. Lancer une machine Ă  laver, programmer son four ou prĂ©parer une cafetiĂšre pour le lendemain est donc une forme de manipulation informatique
 qu’on peut envisager sans Ă©cran.

    Cependant dĂšs que vient le besoin de dĂ©velopper un systĂšme embarquĂ© ou mĂȘme de le rĂ©parer/dĂ©verminer, l’écran revient au galop. On a rapidement besoin d’un Ă©cran pour y connecter son environnement de dĂ©veloppement et sa sonde de debug. Et mĂȘme l’oscilloscope ou l’analyseur logique que l’on branche pour « voir Â» les signaux dispose d’un Ă©cran.

    En usage normal donc, certains dispositifs informatiques sont conçus pour ne pas nĂ©cessiter d’écran parce qu’ils disposent d’un autre pĂ©riphĂ©rique de sortie. Certains centres commerciaux, certaines gares proposent des distributeurs d’histoires courtes : trois boutons comme pĂ©riphĂ©rique d’entrĂ©e et une imprimante thermique comme pĂ©riphĂ©rique de sortie. Appuyez et vous aurez de la lecture pour une, trois ou cinq minutes.

    Distributeur d’histoires courtes en gare de Lyon-PerracheSoyons optimistes : il n’y aura pas plus de cinq minute d’attente !

    Plus courant, une box Internet domestique est aussi un dispositif informatique sans Ă©cran.

    Livebox 6- Il est oĂč l’écran ? - Dans ton
 navigateur

    Il faut reconnaĂźtre que si l’usage courant, la connexion Ă  l’Internet, ne nĂ©cessite pas d’écran sur la box, son paramĂ©trage en utilise bien un : celui de l’ordinateur sur lequel tourne votre navigateur prĂ©fĂ©rĂ©.

    Les assistants vocaux sont des ordinateurs sans Ă©cran. Les principaux pĂ©riphĂ©riques d’entrĂ©e comme de sortie sont audio : commande vocale, rĂ©ponse Ă©galement. Radio France fait d’ailleurs la publicitĂ© pour son offre pour enfants, une histoire et
 Oli, sur cette absence d’écran, jouant, sans trop le dire, sur cette peur parentale des Ă©crans.

    Pourrait-on pousser l’utilisation de ces ordinateurs pour faire du dĂ©veloppement et «coder en vocal» ? Possible, il est tout Ă  fait possible de programmer l’ouverture de ses volets, la lecture d’une musique ou le thermostat de sa chaudiĂšre avec. Mais ça n’est pas du dĂ©veloppement.

    L’éducation numĂ©rique mais sans Ă©cran

    Il est largement possible d’apprendre l’informatique sans Ă©cran, et mĂȘme sans ordinateur.

    La robotique pĂ©dagogique se dĂ©veloppe depuis l’apparition de la tortue Logo. Actuellement, pour les plus jeunes dĂšs l’école maternelle, c’est une abeille qui est proposĂ©e comme initiation Ă  la programmation.

    Bee-Bot en actionSi, si, je suis bien un ordinateur

    La Bee-Bot se programme Ă  l’aide de sept touches et les pĂ©riphĂ©riques de sortie sont les moteurs de dĂ©placement, un petit haut-parleur et en option un porte-crayon. Avec une interface HommeEnfant-Machine aussi simple, il s’agit plutĂŽt d’une mĂ©morisation de sĂ©quences de mouvements que de programmation Ă  proprement parler et pour en utiliser toutes les capacitĂ©s, un interfaçage avec une application ou un ordinateur plus conventionnel est possible, mais on y retrouve un Ă©cran ! De nombreux autres robots pĂ©dagogiques, un peu plus complexes et performants, existent mais ceux-ci utilisent un Ă©cran classique pour accĂ©der Ă  l’interface de programmation.

    Quitte Ă  supprimer les Ă©crans autant aller au bout de la dĂ©marche et supprimer l’ordinateur dans son ensemble. Des pĂ©dagogues ont ainsi inventĂ© l’informatique dĂ©connectĂ©e. Un papier, un crayon, ni Ă©cran ni matĂ©riel comme le jeu du robot idiot. Les esprits chagrins pourraient y voir une solution au manque de matĂ©riel des Ă©tablissements scolaires.
    Plus que d’informatique il s’agit en fait d’initiation à l’algorithmie.

    Mais peut-on se passer d’écran pour dĂ©velopper ?

    Les plages braille

    Il existe une catĂ©gorie de population qui est contrainte de se passer d’écran pour se servir d’un ordinateur : les aveugles.

    Les personnes aveugles peuvent pourtant se servir d’ordinateur, notamment grĂące Ă  un clavier spĂ©cifiquement dĂ©veloppĂ© pour eux nommĂ© « plage braille Â». GrĂące Ă  ces plages brailles, les aveugles peuvent lire les caractĂšres en braille en touchant une ligne munie de petites pointes pilotĂ©s.

    Le prix de ces appareils est assez prohibitif pour quelqu’un qui voudrait jouer avec sans en avoir rĂ©ellement besoin (un geek quoi). C’est pourtant une bonne maniĂšre de faire de l’informatique sans Ă©cran. Pour le codage informatique, on utilise un braille Ă  huit points au lieu des six habituels ce qui permet d’avoir 256 combinaisons, soit autant que la table ASCII. La table braille informatique actuelle a Ă©tĂ© approuvĂ©e Ă  l’unanimitĂ© en 2007 par la Commission Évolution du Braille Français, elle porte le numĂ©ro TBFR2007.

    Que vaudrait un jeu vidĂ©o dĂ©veloppĂ© pour une plage braille ? Et pourrait-on l’appeler jeu vidĂ©o ?

    Avec du papier et un stylo/machine à écrire/carte perforé puis scanner

    On peut Ă©galement faire beaucoup de choses un papier un crayon/stylo/pinceau puis le scanner pour qu’il soit utilisĂ© dans l’ordinateur. Ça reste gĂ©nĂ©ralement qu’une Ă©tape du dĂ©veloppement les programmes ne sont pas plus rĂ©alisĂ©s intĂ©gralement sur papier avant d’ĂȘtre intĂ©grĂ© Ă  l’ordinateur.

    Pour conclure

    Avec des Ă©crits comme « la fabrique du crĂ©tin digital Â» et des propos comme ceux de notre ex-ministre de l’éducation, les Ă©crans sont devenus la bĂȘte noire de tous les pĂ©dagogos.

    Mais l’important n’est-il pas de savoir ce que l’on fait avec un Ă©cran ? Faut-il vraiment s’acharner Ă  s’en passer ?

    Sans doute pas.

    Il serait cependant intĂ©ressant d’apprendre Ă  se servir d’outils rĂ©servĂ©s aux aveugles par exemple. Si nous n’avons plus besoin de la vue pour coder, nous pourrions ĂȘtre un peu plus multi-tĂąches et coder tout en
 regardant la tĂ©lĂ© !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    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

      Cybersécurité - le texte du CRA a été finalisé

      Le texte final du CRA, projet de directive qui a pour objectif d’amĂ©liorer la cybersĂ©curitĂ© des produits numĂ©riques en Europe, a Ă©tĂ© adoptĂ© par Ă  l’issue du trilogue entre les institutions de l’Union EuropĂ©enne. Il est probable qu’il sera adoptĂ© prochainement lors d’un vote au Parlement europĂ©en, et qu’il entrera en vigueur dans environ deux ans. À la clef, des pĂ©nalitĂ©s trĂšs fortes pour les entreprises qui ne respecteront pas les critĂšres.

      Le texte prĂ©voit que la Commission doit prĂ©parer des guides, notamment Ă  l’intention des PME :

      La Commission devra Ă©laborer des guides pour aider les opĂ©rateurs Ă©conomiques, en particulier les micro, petites et moyennes entreprises, Ă  appliquer le prĂ©sent rĂšglement. Ces guides devront porter notamment sur le champ d’application du prĂ©sent rĂšglement, en particulier la notion de traitement des donnĂ©es Ă  distance et les implications pour les dĂ©veloppeurs de logiciels libres, l’application des critĂšres utilisĂ©s pour dĂ©terminer la pĂ©riode de maintenance des produits comportant des Ă©lĂ©ments numĂ©riques, l’interaction entre le prĂ©sent rĂšglement et d’autres textes lĂ©gislatifs de l’Union et la notion de « modifications substantielles ».

      Par ailleurs, l’UE a chargĂ© le CEN/CENELEC d’élaborer des normes de dĂ©veloppement de logiciels sĂ©curisĂ©s et invite les communautĂ©s du logiciel libre Ă  contribuer Ă  ce processus, directement ou indirectement:

      (6b) Lors de l’élaboration des mesures de mise en Ɠuvre du prĂ©sent rĂšglement, la Commission consulte et tient compte des avis des parties prenantes concernĂ©es, tels que les autoritĂ©s compĂ©tentes des États membres, le secteur privĂ©, y compris les micro, petites et moyennes entreprises, la communautĂ© des logiciels libres, les associations de consommateurs, le monde universitaire et les agences ou organes de l’Union compĂ©tents ou les groupes d’experts Ă©tablis au niveau de l’Union.

      Le consensus des observateurs sur le document final semble ĂȘtre que celui-ci a « patché » les problĂšmes les plus graves qui ont Ă©tĂ© soulevĂ©s par les acteurs du logiciel libre au cours du processus lĂ©gislatif. NĂ©anmoins il reste Ă  la fois des problĂšmes de fond (le texte donne une dĂ©finition des « logiciels libres et open source » qui se dĂ©marque sensiblement des dĂ©finitions de la FSF et de l’OSI) dont l’impact juridique Ă  long terme n’est pas encore connu, ainsi que toutes les questions pratiques de la mise en Ɠuvre de la directive et des normes associĂ©es par les entreprises, avec un surcoĂ»t pour les PME qui reste estimĂ© Ă  30% des coĂ»ts de dĂ©veloppement.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Ouvrir le code des algorithmes ? — oui, mais
 (2/2)

      Voici le deuxiĂšme volet (si vous avez ratĂ© le premier) de l’enquĂȘte approfondie d’Hubert Guillaud sur l’exploration des algorithmes, et de son analyse  des enjeux qui en dĂ©coulent.


      Dans le code source de l’amplification algorithmique : que voulons-nous vraiment savoir ?

      par Hubert GUILLAUD

      Que voulons-nous vraiment savoir en enquĂȘtant sur l’amplification algorithmique ? C’est justement l’enjeu du projet de recherche qu’Arvind Narayan mĂšne au Knight Institute de l’universitĂ© Columbia oĂč il a ouvert un blog dĂ©diĂ© et qui vient d’accueillir une grande confĂ©rence sur le sujet. Parler d’amplification permet de s’intĂ©resser Ă  toute la gamme des rĂ©ponses qu’apportent les plateformes, allant de l’amĂ©lioration de la portĂ©e des discours Ă  leur suppression, tout en se dĂ©fiant d’une rĂ©duction binaire Ă  la seule modĂ©ration automatisĂ©e, entre ce qui doit ĂȘtre supprimĂ© et ce qui ne doit pas l’ĂȘtre. Or, les phĂ©nomĂšnes d’amplification ne sont pas sans effets de bord, qui vont bien au-delĂ  de la seule dĂ©sinformation, Ă  l’image des effets trĂšs concrets qu’ont les influenceurs sur le commerce ou le tourisme. Le gros problĂšme, pourtant, reste de pouvoir les Ă©tudier sans toujours y avoir accĂšs.

      Outre des analyses sur TikTok et les IA gĂ©nĂ©ratives, le blog recĂšle quelques trĂ©sors, notamment une monumentale synthĂšse qui fait le tour du sujet en expliquant les principes de fonctionnements des algorithmes (l’article est Ă©galement trĂšs riche en liens et rĂ©fĂ©rences, la synthĂšse que j’en propose y recourra assez peu).

      Narayan rappelle que les plateformes disposent de trĂšs nombreux algorithmes entremĂȘlĂ©s, mais ceux qui l’intĂ©ressent particuliĂšrement sont les algorithmes de recommandation, ceux qui gĂ©nĂšrent les flux, les contenus qui nous sont mis Ă  disposition. Alors que les algorithmes de recherche sont limitĂ©s par le terme recherchĂ©, les algorithmes de recommandation sont bien plus larges et donnent aux plateformes un contrĂŽle bien plus grand sur ce qu’elles recommandent Ă  un utilisateur.

      La souscription, le rĂ©seau et l’algorithme

      Pour Narayan, il y a 3 grands types de leviers de propagation : la souscription (ou abonnement), le rĂ©seau et l’algorithme. Dans le modĂšle par abonnement, le message atteint les personnes qui se sont abonnĂ©es Ă  l’auteur du message. Dans le modĂšle de rĂ©seau, il se propage en cascade Ă  travers le rĂ©seau tant que les utilisateurs qui le voient choisissent de le propager. Dans le modĂšle algorithmique, les utilisateurs ayant des intĂ©rĂȘts similaires (tels que dĂ©finis par l’algorithme sur la base de leurs engagements passĂ©s) sont reprĂ©sentĂ©s plus prĂšs les uns des autres. Plus les intĂ©rĂȘts d’un utilisateur sont similaires Ă  ceux dĂ©finis, plus il est probable que le contenu lui sera recommandĂ©.

      À l’origine, les rĂ©seaux sociaux comme Facebook ou Twitter ne fonctionnaient qu’à l’abonnement : vous ne voyiez que les contenus des personnes auxquelles vous Ă©tiez abonnĂ©s et vous ne pouviez pas republier les messages des autres ! Dans le modĂšle de rĂ©seau, un utilisateur voit non seulement les messages crĂ©Ă©s par les personnes auxquelles il s’est abonnĂ©, mais aussi les messages que ces utilisateurs choisissent d’amplifier, ce qui crĂ©e la possibilitĂ© de cascades d’informations et de contenus “viraux”, comme c’était le cas de Twitter jusqu’en 2016, moment oĂč le rĂ©seau introduisit le classement algorithmique. Dans le modĂšle algorithmique, la souscription est bien souvent minorĂ©e, le rĂ©seau amplifiĂ© mais surtout, le flux dĂ©pend principalement de ce que l’algorithme estime ĂȘtre le plus susceptible d’intĂ©resser l’utilisateur. C’est ce que Cory Doctorow dĂ©signe comme « l’emmerdification  Â» de nos flux, le fait de traiter la liste des personnes auxquelles nous sommes abonnĂ©s comme des suggestions et non comme des commandes.

      Le passage aux recommandations algorithmiques a toujours gĂ©nĂ©rĂ© des contestations, notamment parce que, si dans les modĂšles d’abonnement et de rĂ©seau, les crĂ©ateurs peuvent se concentrer sur la construction de leur rĂ©seau, dans le « modĂšle algorithmique, cela ne sert Ă  rien, car le nombre d’abonnĂ©s n’a rien Ă  voir avec la performance des messages  Â» (mais comme nous sommes dans des mĂ©langes entre les trois modĂšles, le nombre d’abonnĂ©s a encore un peu voire beaucoup d’influence dans l’amplification). Dans le modĂšle algorithmique, l’audience de chaque message est optimisĂ©e de maniĂšre indĂ©pendante en fonction du sujet, de la « qualitĂ© Â» du message et d’un certain nombre de paramĂštres pris en compte par le modĂšle.

      Amplification et viralité

      La question de l’amplification interroge la question de la viralitĂ©, c’est-Ă -dire le fait qu’un contenu soit amplifiĂ© par une cascade de reprises, et non pas seulement diffusĂ© d’un Ă©metteur Ă  son public. Le problĂšme de la viralitĂ© est que sa portĂ©e reste imprĂ©visible. Pour Narayan, sur toutes les grandes plateformes, pour la plupart des crĂ©ateurs, la majoritĂ© de l’engagement provient d’une petite fraction de contenu viral. Sur TikTok comme sur YouTube, 20 % des vidĂ©os les plus vues d’un compte obtiennent plus de 70 % des vues. Plus le rĂŽle de l’algorithme dans la propagation du contenu est important, par opposition aux abonnements ou au rĂ©seau, plus cette inĂ©galitĂ© semble importante.

      Parce qu’il est particuliĂšrement repĂ©rable dans la masse des contenus, le contenu viral se prĂȘte assez bien Ă  la rĂ©tropropagation, c’est-Ă -dire Ă  son dĂ©classement ou Ă  sa suppression. Le problĂšme justement, c’est qu’il y a plein de maniĂšres de restreindre le contenu. Facebook classe les posts rĂ©trogradĂ©s plus bas dans le fil d’actualitĂ© qu’ils ne le seraient s’ils ne l’avaient pas Ă©tĂ©, afin que les utilisateurs soient moins susceptibles de le rencontrer et de le propager. À son tour, l’effet de la rĂ©trogradation sur la portĂ©e peut ĂȘtre imprĂ©visible, non linĂ©aire et parfois radical, puisque le contenu peut devenir parfaitement invisible. Cette rĂ©trogradation est parfaitement opaque, notamment parce qu’une faible portĂ©e n’est pas automatiquement suspecte, Ă©tant donnĂ© qu’il existe une grande variation dans la portĂ©e naturelle du contenu.

      Amplification et prĂ©diction de l’engagement

      Les plateformes ont plusieurs objectifs de haut niveau : amĂ©liorer leurs revenus publicitaires bien sĂ»r et satisfaire suffisamment les utilisateurs pour qu’ils reviennent
 Mais ces objectifs n’aident pas vraiment Ă  dĂ©cider ce qu’il faut donner Ă  un utilisateur spĂ©cifique Ă  un moment prĂ©cis ni Ă  mesurer comment ces dĂ©cisions impactent Ă  long terme la plateforme. D’oĂč le fait que les plateformes observent l’engagement, c’est-Ă -dire les actions instantanĂ©es des utilisateurs, comme le like, le commentaire ou le partage qui permettent de classer le contenu en fonction de la probabilitĂ© que l’utilisateur s’y intĂ©resse. « D’une certaine maniĂšre, l’engagement est une approximation des objectifs de haut niveau. Un utilisateur qui s’engage est plus susceptible de revenir et de gĂ©nĂ©rer des revenus publicitaires pour la plateforme.  Â»
      Si l’engagement est vertueux, il a aussi de nombreuses limites qui expliquent que les algorithmes intĂšgrent bien d’autres facteurs dans leur calcul. Ainsi, Facebook et Twitter optimisent les « interactions sociales significatives Â», c’est-Ă -dire une moyenne pondĂ©rĂ©e des likes, des partages et des commentaires. YouTube, lui, optimise en fonction de la durĂ©e de visionnage que l’algorithme prĂ©dit. TikTok utilise les interactions sociales et valorise les vidĂ©os qui ont Ă©tĂ© regardĂ©es jusqu’au bout, comme un signal fort et qui explique certainement le caractĂšre addictif de l’application et le fait que les vidĂ©os courtes (qui ont donc tendance Ă  obtenir un score Ă©levĂ©) continuent de dominer la plateforme.

      En plus de ces logiques de base, il existe bien d’autres logiques secondaires, comme par exemple, pour que l’expĂ©rience utilisateur ne soit pas ralentie par le calcul, que les suggestions restent limitĂ©es, sĂ©lectionnĂ©es plus que classĂ©es, selon divers critĂšres plus que selon des critĂšres uniques (par exemple en proposant des nouveaux contenus et pas seulement des contenus similaires Ă  ceux qu’on a apprĂ©ciĂ©, TikTok se distingue Ă  nouveau par l’importance qu’il accorde Ă  l’exploration de nouveaux contenus
 c’est d’ailleurs la tactique suivie dĂ©sormais par Instagram de Meta via les Reels, boostĂ©s sur le modĂšle de TikTok, qui ont le mĂȘme effet que sur TikTok, Ă  savoir une augmentation du temps passĂ© sur l’application)
 

      « Bien qu’il existe de nombreuses diffĂ©rences dans les dĂ©tails, les similitudes entre les algorithmes de recommandation des diffĂ©rentes plateformes l’emportent sur leurs diffĂ©rences Â», estime Narayan. Les diffĂ©rences sont surtout spĂ©cifiques, comme Youtube qui optimise selon la durĂ©e de visionnage, ou Spotify qui s’appuie davantage sur l’analyse de contenu que sur le comportement. Pour Narayan, ces diffĂ©rences montrent qu’il n’y a pas de risque concurrentiel Ă  l’ouverture des algorithmes des plateformes, car leurs adaptations sont toujours trĂšs spĂ©cifiques. Ce qui varie, c’est la façon dont les plateformes ajustent l’engagement.

      Comment apprĂ©cier la similaritĂ© ?

      Mais la grande question Ă  laquelle tous tentent de rĂ©pondre est la mĂȘme : « Comment les utilisateurs similaires Ă  cet utilisateur ont-ils rĂ©agi aux messages similaires Ă  ce message ?  Â»

      Si cette approche est populaire dans les traitements, c’est parce qu’elle s’est avĂ©rĂ©e efficace dans la pratique. Elle repose sur un double calcul de similaritĂ©. D’abord, celle entre utilisateurs. La similaritĂ© entre utilisateurs dĂ©pend du rĂ©seau (les gens que l’on suit ou ceux qu’on commente par exemple, que Twitter valorise fortement, mais peu TikTok), du comportement (qui est souvent plus critique, « deux utilisateurs sont similaires s’ils se sont engagĂ©s dans un ensemble de messages similaires  Â») et les donnĂ©es dĂ©mographiques (du type Ăąge, sexe, langue, gĂ©ographie
 qui sont en grande partie dĂ©duits des comportements).

      Ensuite, il y a un calcul sur la similaritĂ© des messages qui repose principalement sur leur sujet et qui repose sur des algorithmes d’extraction des caractĂ©ristiques (comme la langue) intĂ©grant des Ă©valuations normatives, comme la caractĂ©risation de discours haineux. L’autre signal de similaritĂ© des messages tient, lĂ  encore, au comportement : « deux messages sont similaires si un ensemble similaire d’utilisateurs s’est engagĂ© avec eux Â». Le plus important Ă  retenir, insiste Narayan, c’est que « l’enregistrement comportemental est le carburant du moteur de recommandation  Â». La grande difficultĂ©, dans ces apprĂ©ciations algorithmiques, consiste Ă  faire que le calcul reste traitable, face Ă  des volumes d’enregistrements d’informations colossaux.

      Une histoire des Ă©volutions des algorithmes de recommandation

      « La premiĂšre gĂ©nĂ©ration d’algorithmes de recommandation Ă  grande Ă©chelle, comme ceux d’Amazon et de Netflix au dĂ©but des annĂ©es 2000, utilisait une technique simple appelĂ©e filtrage collaboratif : les clients qui ont achetĂ© ceci ont Ă©galement achetĂ© cela Â». Le principe Ă©tait de recommander des articles consultĂ©s ou achetĂ©s d’une maniĂšre rudimentaire, mais qui s’est rĂ©vĂ©lĂ© puissant dans le domaine du commerce Ă©lectronique. En 2006, Netflix a organisĂ© un concours en partageant les Ă©valuations qu’il disposait sur les films pour amĂ©liorer son systĂšme de recommandation. Ce concours a donnĂ© naissance Ă  la « factorisation matricielle Â», une forme de deuxiĂšme gĂ©nĂ©ration d’algorithmes de recommandation, c’est-Ă -dire capables d’identifier des combinaisons d’attributs et de prĂ©fĂ©rences croisĂ©es. Le systĂšme n’étiquette pas les films avec des termes interprĂ©tables facilement (comme “drĂŽle” ou “thriller” ou “informatif”
), mais avec un vaste ensemble d’étiquettes (de micro-genres obscurs comme « documentaires Ă©mouvants qui combattent le systĂšme Â») qu’il associe aux prĂ©fĂ©rences des utilisateurs. Le problĂšme, c’est que cette factorisation matricielle n’est pas trĂšs lisible pour l’utilisateur et se voir dire qu’on va aimer tel film sans savoir pourquoi n’est pas trĂšs satisfaisant. Enfin, ce qui marche pour un catalogue de film limitĂ© n’est pas adaptĂ© aux mĂ©dias sociaux oĂč les messages sont infinis. La prĂ©dominance de la factorisation matricielle explique pourquoi les rĂ©seaux sociaux ont tardĂ© Ă  se lancer dans la recommandation, qui est longtemps restĂ©e inadaptĂ©e Ă  leurs besoins.

      Pourtant, les rĂ©seaux sociaux se sont tous convertis Ă  l’optimisation basĂ©e sur l’apprentissage automatique. En 2010, Facebook utilisait un algorithme appelĂ© EdgeRank pour construire le fil d’actualitĂ© des utilisateurs qui consistait Ă  afficher les Ă©lĂ©ments par ordre de prioritĂ© dĂ©croissant selon un score d’affinitĂ© qui reprĂ©sente la prĂ©diction de Facebook quant au degrĂ© d’intĂ©rĂȘt de l’utilisateur pour les contenus affichĂ©s, valorisant les photos plus que le texte par exemple. À l’époque, ces pondĂ©rations Ă©taient dĂ©finies manuellement plutĂŽt qu’apprises. En 2018, Facebook est passĂ© Ă  l’apprentissage automatique. La firme a introduit une mĂ©trique appelĂ©e « interactions sociales significatives  Â» (MSI pour meaningful social interactions) dans le systĂšme d’apprentissage automatique. L’objectif affichĂ© Ă©tait de diminuer la prĂ©sence des mĂ©dias et des contenus de marque au profit des contenus d’amis et de famille. « La formule calcule un score d’interaction sociale pour chaque Ă©lĂ©ment susceptible d’ĂȘtre montrĂ© Ă  un utilisateur donné  Â». Le flux est gĂ©nĂ©rĂ© en classant les messages disponibles selon leur score MSI dĂ©croissant, avec quelques ajustements, comme d’introduire de la diversitĂ© (avec peu d’indications sur la façon dont est calculĂ©e et ajoutĂ©e cette diversitĂ©). Le score MSI prĂ©dit la probabilitĂ© que l’utilisateur ait un type d’interaction spĂ©cifique (comme liker ou commenter) avec le contenu et affine le rĂ©sultat en fonction de l’affinitĂ© de l’utilisateur avec ce qui lui est proposĂ©. Il n’y a plus de pondĂ©ration dĂ©diĂ©e pour certains types de contenus, comme les photos ou les vidĂ©os. Si elles subsistent, c’est uniquement parce que le systĂšme l’aura appris Ă  partir des donnĂ©es de chaque utilisateur, et continuera Ă  vous proposer des photos si vous les apprĂ©ciez.

      « Si l’on pousse cette logique jusqu’à sa conclusion naturelle, il ne devrait pas ĂȘtre nĂ©cessaire d’ajuster manuellement la formule en fonction des affinitĂ©s. Si les utilisateurs prĂ©fĂšrent voir le contenu de leurs amis plutĂŽt que celui des marques, l’algorithme devrait ĂȘtre en mesure de l’apprendre Â». Ce n’est pourtant pas ce qu’il se passe. Certainement pour lutter contre la logique de l’optimisation de l’engagement, estime Narayan, dans le but d’augmenter la satisfaction Ă  long terme, que l’algorithme ne peut pas mesurer, mais lĂ  encore sans que les modalitĂ©s de ces ajustements ne soient clairement documentĂ©s.

      Est-ce que tout cela est efficace ?

      Reste Ă  savoir si ces algorithmes sont efficaces ! « Il peut sembler Ă©vident qu’ils doivent bien fonctionner, Ă©tant donnĂ© qu’ils alimentent des plateformes technologiques qui valent des dizaines ou des centaines de milliards de dollars. Mais les chiffres racontent une autre histoire. Le taux d’engagement est une façon de quantifier le problĂšme : il s’agit de la probabilitĂ© qu’un utilisateur s’intĂ©resse Ă  un message qui lui a Ă©tĂ© recommandĂ©. Sur la plupart des plateformes, ce taux est infĂ©rieur Ă  1 %. TikTok est une exception, mais mĂȘme lĂ , ce taux dĂ©passe Ă  peine les 5 %. Â»

      Le problĂšme n’est pas que les algorithmes soient mauvais, mais surtout que les gens ne sont pas si prĂ©visibles. Et qu’au final, les utilisateurs ne se soucient pas tant du manque de prĂ©cision de la recommandation. « MĂȘme s’ils sont imprĂ©cis au niveau individuel, ils sont prĂ©cis dans l’ensemble. Par rapport aux plateformes basĂ©es sur les rĂ©seaux, les plateformes algorithmiques semblent ĂȘtre plus efficaces pour identifier les contenus viraux (qui trouveront un Ă©cho auprĂšs d’un grand nombre de personnes). Elles sont Ă©galement capables d’identifier des contenus de niche et de les faire correspondre au sous-ensemble d’utilisateurs susceptibles d’y ĂȘtre rĂ©ceptifs. Â» Si les algorithmes sont largement limitĂ©s Ă  la recherche de modĂšles dans les donnĂ©es comportementales, ils n’ont aucun sens commun. Quant au taux de clic publicitaire, il reste encore plus infinitĂ©simal – mĂȘme s’il est toujours considĂ©rĂ© comme un succĂšs !

      Les ingĂ©nieurs contrĂŽlent-ils encore les algorithmes ?

      Les ingĂ©nieurs ont trĂšs peu d’espace pour contrĂŽler les effets des algorithmes de recommandation, estime Narayan, en prenant un exemple. En 2019, Facebook s’est rendu compte que les publications virales Ă©taient beaucoup plus susceptibles de contenir des informations erronĂ©es ou d’autres types de contenus prĂ©judiciables. En d’autres termes, ils se sont rendu compte que le passage Ă  des interactions sociales significatives (MSI) a eu des effets de bords : les contenus qui suscitaient l’indignation et alimentaient les divisions gagnaient en portĂ©e, comme l’a expliquĂ© l’ingĂ©nieure et lanceuse d’alerte Frances Haugen Ă  l’origine des Facebook Files, dans ses tĂ©moignages. C’est ce que synthĂ©tise le tableau de pondĂ©ration de la formule MSI publiĂ© par le Wall Street Journal, qui montrent que certains Ă©lĂ©ments ont des poids plus forts que d’autres : un commentaire vaut 15 fois plus qu’un like, mais un commentaire signifiant ou un repartage 30 fois plus, chez Facebook. Une pondĂ©ration aussi Ă©levĂ©e permet d’identifier les messages au potentiel viral et de les stimuler davantage. En 2020, Facebook a ramenĂ© la pondĂ©ration des partages Ă  1,5, mais la pondĂ©ration des commentaires est restĂ©e trĂšs Ă©levĂ©e (15 Ă  20 fois plus qu’un like). Alors que les partages et les commentaires Ă©taient regroupĂ©s dans une seule catĂ©gorie de pondĂ©ration en 2018, ils ne le sont plus. Cette prime au commentaire demeure une prime aux contenus polĂ©miques. Reste, on le comprend, que le jeu qui reste aux ingĂ©nieurs de Facebook consiste Ă  ajuster le poids des paramĂštres. Pour Narayan : piloter un systĂšme d’une telle complexitĂ© en utilisant si peu de boutons ne peut qu’ĂȘtre difficile.

      Le chercheur rappelle que le systĂšme est censĂ© ĂȘtre neutre Ă  l’égard de tous les contenus, Ă  l’exception de certains qui enfreignent les rĂšgles de la plateforme. Utilisateurs et messages sont alors rĂ©trogradĂ©s de maniĂšre algorithmique suite Ă  signalement automatique ou non. Mais cette neutralitĂ© est en fait trĂšs difficile Ă  atteindre. Les rĂ©seaux sociaux favorisent ceux qui ont dĂ©jĂ  une grande portĂ©e, qu’elle soit mĂ©ritĂ©e ou non, et sont rĂ©compensĂ©s par une plus grande portĂ©e encore. Par exemple, les 1 % d’auteurs les plus importants sur Twitter reçoivent 80 % des vues des tweets. Au final, cette conception de la neutralitĂ© finit par rĂ©compenser ceux qui sont capables de pirater l’engagement ou de tirer profit des biais sociaux.

      Outre cette neutralitĂ©, un deuxiĂšme grand principe directeur est que « l’algorithme sait mieux que quiconque Â». « Ce principe et celui de la neutralitĂ© se renforcent mutuellement. Le fait de confier la politique (concernant le contenu Ă  amplifier) aux donnĂ©es signifie que les ingĂ©nieurs n’ont pas besoin d’avoir un point de vue Ă  ce sujet. Et cette neutralitĂ© fournit Ă  l’algorithme des donnĂ©es plus propres Ă  partir desquelles il peut apprendre. Â»
      Le principe de l’algorithme qui sait le mieux signifie que la mĂȘme optimisation est appliquĂ©e Ă  tous les types de discours : divertissement, informations Ă©ducatives, informations sur la santĂ©, actualitĂ©s, discours politique, discours commercial, etc. En 2021, FB a fait une tentative de rĂ©trograder tout le contenu politique, ce qui a eu pour effet de supprimer plus de sources d’information de haute qualitĂ© que de faible qualitĂ©, augmentant la dĂ©sinformation. Cette neutralitĂ© affichĂ©e permet Ă©galement une forme de dĂ©sengagement des ingĂ©nieurs.

      En 2021, encore, FB a entraĂźnĂ© des modĂšles d’apprentissage automatique pour classer les messages en deux catĂ©gories : bons ou mauvais pour le monde, en interrogeant les utilisateurs pour qu’ils apprĂ©cient des contenus qui leurs Ă©taient proposĂ©s pour former les donnĂ©es. FB a constatĂ© que les messages ayant une plus grande portĂ©e Ă©taient considĂ©rĂ©s comme Ă©tant mauvais pour le monde. FB a donc rĂ©trogradĂ© ces contenus
 mais en trouvant moins de contenus polĂ©mique, cette modification a entraĂźnĂ© une diminution de l’ouverture de l’application par les utilisateurs. L’entreprise a donc redĂ©ployĂ© ce modĂšle en lui donnant bien moins de poids. Les corrections viennent directement en conflit avec le modĂšle d’affaires.

      Illustration par Jason Alderman « Those Algorithms That Govern Our Lives – Kevin Slavin« . (CC BY 2.0)

      Pourquoi l’optimisation de l’engagement nous nuit-elle ?

      « Un grand nombre des pathologies familiĂšres des mĂ©dias sociaux sont, Ă  mon avis, des consĂ©quences relativement directes de l’optimisation de l’engagement Â», suggĂšre encore le chercheur. Cela explique pourquoi les rĂ©formes sont difficiles et pourquoi l’amĂ©lioration de la transparence des algorithmes, de la modĂ©ration, voire un meilleur contrĂŽle par l’utilisateur de ce qu’il voit (comme le proposait Gobo mis en place par Ethan Zuckerman), ne sont pas des solutions magiques (mĂȘme si elles sont nĂ©cessaires).

      Les donnĂ©es comportementales, celles relatives Ă  l’engagement passĂ©, sont la matiĂšre premiĂšre essentielle des moteurs de recommandations. Les systĂšmes privilĂ©gient la rĂ©troaction implicite sur l’explicite, Ă  la maniĂšre de YouTube qui a privilĂ©giĂ© le temps passĂ© sur les rĂ©troactions explicites (les likes). Sur TikTok, il n’y a mĂȘme plus de sĂ©lection, il suffit de swipper.

      Le problĂšme du feedback implicite est qu’il repose sur nos rĂ©actions inconscientes, automatiques et Ă©motionnelles, sur nos pulsions, qui vont avoir tendance Ă  privilĂ©gier une vidĂ©o dĂ©bile sur un contenu expert.

      Pour les crĂ©ateurs de contenu, cette optimisation par l’engagement favorise la variance et l’imprĂ©visibilitĂ©, ce qui a pour consĂ©quence d’alimenter une surproduction pour compenser cette variabilitĂ©. La production d’un grand volume de contenu, mĂȘme s’il est de moindre qualitĂ©, peut augmenter les chances qu’au moins quelques-uns deviennent viraux chaque mois afin de lisser le flux de revenus. Le fait de rĂ©compenser les contenus viraux se fait au dĂ©triment de tous les autres types de contenus (d’oĂč certainement le regain d’attraits pour des plateformes non algorithmiques, comme Substack voire dans une autre mesure, Mastodon).

      Au niveau de la sociĂ©tĂ©, toutes les institutions sont impactĂ©es par les plateformes algorithmiques, du tourisme Ă  la science, du journalisme Ă  la santĂ© publique. Or, chaque institution Ă  des valeurs, comme l’équitĂ© dans le journalisme, la prĂ©cision en science, la qualitĂ© dans nombre de domaines. Les algorithmes des mĂ©dias sociaux, eux, ne tiennent pas compte de ces valeurs et de ces signaux de qualitĂ©. « Ils rĂ©compensent des facteurs sans rapport, sur la base d’une logique qui a du sens pour le divertissement, mais pas pour d’autres domaines Â». Pour Narayan, les plateformes de mĂ©dias sociaux « affaiblissent les institutions en sapant leurs normes de qualitĂ© et en les rendant moins dignes de confiance Â». C’est particuliĂšrement actif dans le domaine de l’information, mais cela va bien au-delĂ , mĂȘme si ce n’est pas au mĂȘme degrĂ©. TikTok peut sembler ne pas reprĂ©senter une menace pour la science, mais nous savons que les plateformes commencent par ĂȘtre un divertissement avant de s’étendre Ă  d’autres sphĂšres du discours, Ă  l’image d’Instagram devenant un outil de communication politique ou de Twitter, oĂč un tiers des tweets sont politiques.

      La science des données en ses limites

      Les plateformes sont bien conscientes de leurs limites, pourtant, elles n’ont pas fait beaucoup d’efforts pour rĂ©soudre les problĂšmes. Ces efforts restent occasionnels et rudimentaires, Ă  l’image de la tentative de Facebook de comprendre la valeur des messages diffusĂ©s. La raison est bien sĂ»r que ces amĂ©nagements nuisent aux rĂ©sultats financiers de l’entreprise. « Le recours Ă  la prise de dĂ©cision subconsciente et automatique est tout Ă  fait intentionnelle ; c’est ce qu’on appelle la « conception sans friction Â». Le fait que les utilisateurs puissent parfois faire preuve de discernement et rĂ©sister Ă  leurs impulsions est vu comme un problĂšme Ă  rĂ©soudre. Â»

      Pourtant, ces derniĂšres annĂ©es, la rĂ©putation des plateformes n’est plus au beau fixe. Narayan estime qu’il y a une autre limite. « La plupart des inconvĂ©nients de l’optimisation de l’engagement ne sont pas visibles dans le cadre dominant de la conception des plateformes, qui accorde une importance considĂ©rable Ă  la recherche d’une relation quantitative et causale entre les changements apportĂ©s Ă  l’algorithme et leurs effets. Â»
      Si on observe les raisons qui poussent l’utilisateur Ă  quitter une plateforme, la principale est qu’il ne parvient pas Ă  obtenir des recommandations suffisamment intĂ©ressantes. Or, c’est exactement ce que l’optimisation par l’engagement est censĂ©e Ă©viter. Les entreprises parviennent trĂšs bien Ă  optimiser des recommandations qui plaisent Ă  l’utilisateur sur l’instant, mais pas celles qui lui font dire, une fois qu’il a fermĂ© l’application, que ce qu’il y a trouvĂ© l’a enrichi. Elles n’arrivent pas Ă  calculer et Ă  intĂ©grer le bĂ©nĂ©fice Ă  long terme, mĂȘme si elles restent trĂšs attentives aux taux de rĂ©tention ou aux taux de dĂ©sabonnement. Pour y parvenir, il faudrait faire de l’A/B testing au long cours. Les plateformes savent le faire. Facebook a constatĂ© que le fait d’afficher plus de notifications augmentait l’engagement Ă  court terme mais avait un effet inverse sur un an. Reste que ce regard sur leurs effets Ă  longs termes ne semble pas ĂȘtre une prioritĂ© par rapport Ă  leurs effets de plus courts termes.

      Une autre limite repose sur l’individualisme des plateformes. Si les applications sociales sont, globalement, assez satisfaisantes pour chacun, ni les utilisateurs ni les plateformes n’intĂ©riorisent leurs prĂ©judices collectifs. Ces systĂšmes reposent sur l’hypothĂšse que le comportement de chaque utilisateur est indĂ©pendant et que l’effet sur la sociĂ©tĂ© (l’atteinte Ă  la dĂ©mocratie par exemple
) est trĂšs difficile Ă  Ă©valuer. Narayan le rĂ©sume dans un tableau parlant, oĂč la valeur sur la sociĂ©tĂ© n’a pas de mĂ©trique associĂ©e.

      Graphique montrant les 4 niveaux sur lesquels les algorithmes des plateformes peuvent avoir des effets. CTR : Click Through Rate (taux de clic). MSI : Meaningful Social Interactions, interactions sociales significatives, la métrique d'engagement de Facebook. DAU : Daily active users, utilisateurs actifs quotidiens.

      Tableau montrant les 4 niveaux sur lesquels les algorithmes des plateformes peuvent avoir des effets. CTR : Click Through Rate (taux de clic). MSI : Meaningful Social Interactions, interactions sociales significatives, la mĂ©trique d’engagement de Facebook. DAU : Daily active users, utilisateurs actifs quotidiens.

      Les algorithmes ne sont pas l’ennemi (enfin si, quand mĂȘme un peu)

      Pour rĂ©pondre Ă  ces problĂšmes, beaucoup suggĂšrent de revenir Ă  des flux plus chronologiques ou a des suivis plus stricts des personnes auxquelles nous sommes abonnĂ©s. Pas sĂ»r que cela soit une solution trĂšs efficace pour gĂ©rer les volumes de flux, estime le chercheur. Les algorithmes de recommandation ont Ă©tĂ© la rĂ©ponse Ă  la surcharge d’information, rappelle-t-il : « Il y a beaucoup plus d’informations en ligne en rapport avec les intĂ©rĂȘts d’une personne qu’elle n’en a de temps disponible. Â» Les algorithmes de classement sont devenus une nĂ©cessitĂ© pratique. MĂȘme dans le cas d’un rĂ©seau longtemps basĂ© sur l’abonnement, comme Instagram : en 2016, la sociĂ©tĂ© indiquait que les utilisateurs manquaient 70 % des publications auxquelles ils Ă©taient abonnĂ©s. Aujourd’hui, Instagram compte 5 fois plus d’utilisateurs. En fait, les plateformes subissent d’énormes pressions pour que les algorithmes soient encore plus au cƓur de leur fonctionnement que le contraire. Et les systĂšmes de recommandation font leur entrĂ©e dans d’autres domaines, comme l’éducation (avec Coursera) ou la finance (avec Robinhood).

      Pour Narayan, l’enjeu reste de mieux comprendre ce qu’ils font. Pour cela, nous devons continuer d’exiger d’eux bien plus de transparence qu’ils n’en livrent. Pas plus que dans le monde des moteurs de recherche nous ne reviendrons aux annuaires, nous ne reviendrons pas aux flux chronologiques dans les moteurs de recommandation. Nous avons encore des efforts Ă  faire pour contrecarrer activement les modĂšles les plus nuisibles des recommandations. L’enjeu, conclut-il, est peut-ĂȘtre d’esquisser plus d’alternatives que nous n’en disposons, comme par exemple, d’imaginer des algorithmes de recommandations qui n’optimisent pas l’engagement, ou pas seulement. Cela nĂ©cessite certainement aussi d’imaginer des rĂ©seaux sociaux avec des modĂšles Ă©conomiques diffĂ©rents. Un autre internet. Les algorithmes ne sont peut-ĂȘtre pas l’ennemi comme il le dit, mais ceux qui ne sont ni transparents, ni loyaux, et qui optimisent leurs effets en dehors de toute autre considĂ©ration, ne sont pas nos amis non plus !

      Ouvrir le code des algorithmes ? — Oui, mais
 (1/2)

      Voici le premier des deux articles qu’Hubert Guillaud nous fait le plaisir de partager. Sans s’arrĂȘter Ă  la surface de l’actualitĂ©, il aborde la transparence du code des algorithmes, qui entraĂźne un grand nombre de questions Ă©pineuses sur lesquelles il s’est documentĂ© pour nous faire part de ses rĂ©flexions.


      Dans le code source de l’amplification algorithmique : publier le code ne suffit pas !

      par Hubert GUILLAUD

      Le 31 mars, Twitter a publiĂ© une partie du code source qui alimente son fil d’actualitĂ©, comme l’a expliquĂ© l’équipe elle-mĂȘme dans un billet. Ces dizaines de milliers de lignes de code contiennent pourtant peu d’informations nouvelles. Depuis le rachat de l’oiseau bleu par Musk, Twitter a beaucoup changĂ© et ne cesse de se modifier sous les yeux des utilisateurs. La publication du code source d’un systĂšme, mĂȘme partiel, qui a longtemps Ă©tĂ© l’un des grands enjeux de la transparence, montre ses limites.

      un jeune homme montre une ligne d'une explication de l'encodage des algorithmes au rétroprojecteur

      « LZW encoding and decoding algorithms overlapped Â» par nayukim, licence CC BY 2.0.

      Publier le code ne suffit pas

      Dans un excellent billet de blog, le chercheur Arvind Narayan (sa newsletter mĂ©rite Ă©galement de s’y abonner) explique ce qu’il faut en retenir. Comme ailleurs, les rĂšgles ne sont pas claires. Les algorithmes de recommandation utilisent l’apprentissage automatique ce qui fait que la maniĂšre de classer les tweets n’est pas directement spĂ©cifiĂ©e dans le code, mais apprise par des modĂšles Ă  partir de donnĂ©es de Twitter sur la maniĂšre dont les utilisateurs ont rĂ©agi aux tweets dans le passĂ©. Twitter ne divulgue ni ces modĂšles ni les donnĂ©es d’apprentissages, ce qui signifie qu’il n’est pas possible d’exĂ©cuter ces modĂšles. Le code ne permet pas de comprendre pourquoi un tweet est ou n’est pas recommandĂ© Ă  un utilisateur, ni pourquoi certains contenus sont amplifiĂ©s ou invisibilisĂ©s. C’est toute la limite de la transparence. Ce que rĂ©sume trĂšs bien le journaliste Nicolas Kayser-Bril pour AlgorithmWatch (pertinemment traduit par le framablog) : « Vous ne pouvez pas auditer un code seulement en le lisant. Il faut l’exĂ©cuter sur un ordinateur. Â»

      « Ce que Twitter a publiĂ©, c’est le code utilisĂ© pour entraĂźner les modĂšles, Ă  partir de donnĂ©es appropriĂ©es Â», explique Narayan, ce qui ne permet pas de comprendre les propagations, notamment du fait de l’absence des donnĂ©es. De plus, les modĂšles pour dĂ©tecter les tweets qui violent les politiques de Twitter et qui leur donnent des notes de confiance en fonction de ces politiques sont Ă©galement absentes (afin que les usagers ne puissent pas dĂ©jouer le systĂšme, comme nous le rĂ©pĂštent trop de systĂšmes rĂ©tifs Ă  l’ouverture). Or, ces classements ont des effets de rĂ©trogradation trĂšs importants sur la visibilitĂ© de ces tweets, sans qu’on puisse savoir quels tweets sont ainsi classĂ©s, selon quelles mĂ©thodes et surtout avec quelles limites.

      La chose la plus importante que Twitter a rĂ©vĂ©lĂ©e en publiant son code, c’est la formule qui spĂ©cifie comment les diffĂ©rents types d’engagement (likes, retweets, rĂ©ponses, etc.) sont pondĂ©rĂ©s les uns par rapport aux autres
 Mais cette formule n’est pas vraiment dans le code. Elle est publiĂ©e sĂ©parĂ©ment, notamment parce qu’elle n’est pas statique, mais qu’elle doit ĂȘtre modifiĂ©e frĂ©quemment.

      Sans surprise, le code rĂ©vĂšle ainsi que les abonnĂ©s Ă  Twitter Blue, ceux qui payent leur abonnement, bĂ©nĂ©ficient d’une augmentation de leur portĂ©e (ce qui n’est pas sans poser un problĂšme de fond, comme le remarque pertinemment sur Twitter, Guillaume Champeau, car cette prĂ©fĂ©rence pourrait mettre ces utilisateurs dans la position d’ĂȘtre annonceurs, puisqu’ils payent pour ĂȘtre mis en avant, sans que l’interface ne le signale clairement, autrement que par la pastille bleue). Reste que le code n’est pas clair sur l’ampleur de cette accĂ©lĂ©ration. Les notes attribuĂ©es aux tweets des abonnĂ©s Blue sont multipliĂ©es par 2 ou 4, mais cela ne signifie pas que leur portĂ©e est pareillement multipliĂ©e. « Une fois encore, le code ne nous dit pas le genre de choses que nous voudrions savoir Â», explique Narayan.

      Reste que la publication de la formule d’engagement est un Ă©vĂ©nement majeur. Elle permet de saisir le poids des rĂ©actions sur un tweet. On constate que la rĂ©ponse Ă  tweet est bien plus forte que le like ou que le RT. Et la re-rĂ©ponse de l’utilisateur originel est prĂ©dominante, puisque c’est le signe d’une conversation forte. À l’inverse, le fait qu’un lecteur bloque, mute ou se dĂ©sabonne d’un utilisateur suite Ă  un tweet est un facteur extrĂȘmement pĂ©nalisant pour la propagation du tweet.

      Tableau du poids attribuĂ© en fonction des types d’engagement possibles sur Twitter.

      Ces quelques indications permettent nĂ©anmoins d’apprendre certaines choses. Par exemple que Twitter ne semble pas utiliser de prĂ©dictions d’actions implicites (comme lorsqu’on s’arrĂȘte de faire dĂ©filer son fil), ce qui permet d’éviter l’amplification du contenu trash que les gens ne peuvent s’empĂȘcher de regarder, mĂȘme s’ils ne s’y engagent pas. La formule nous apprend que les retours nĂ©gatifs ont un poids trĂšs Ă©levĂ©, ce qui permet d’amĂ©liorer son flux en montrant Ă  l’algorithme ce dont vous ne voulez pas – mĂȘme si les plateformes devraient permettre des contrĂŽles plus explicites pour les utilisateurs. Enfin, ces poids ont des valeurs souvent prĂ©cises, ce qui signifie que ce tableau n’est valable qu’à l’instant de la publication et qu’il ne sera utile que si Twitter le met Ă  jour.

      Les algorithmes de recommandation qui optimisent l’engagement suivent des modĂšles assez proches. La publication du code n’est donc pas trĂšs rĂ©vĂ©latrice. Trois Ă©lĂ©ments sont surtout importants, insiste le chercheur :

      « Le premier est la maniĂšre dont les algorithmes sont configurĂ©s : les signaux utilisĂ©s comme entrĂ©e, la maniĂšre dont l’engagement est dĂ©fini, etc. Ces informations doivent ĂȘtre considĂ©rĂ©es comme un Ă©lĂ©ment essentiel de la transparence et peuvent ĂȘtre publiĂ©es indĂ©pendamment du code. La seconde concerne les modĂšles d’apprentissage automatique qui, malheureusement, ne peuvent gĂ©nĂ©ralement pas ĂȘtre divulguĂ©s pour des raisons de protection de la vie privĂ©e. Le troisiĂšme est la boucle de rĂ©troaction entre les utilisateurs et l’algorithme Â».

      Autant d’élĂ©ments qui demandent des recherches, des expĂ©riences et du temps pour en comprendre les limites.

      Si la transparence n’est pas une fin en soi, elle reste un moyen de construire un meilleur internet en amĂ©liorant la responsabilitĂ© envers les utilisateurs, rappelle l’ingĂ©nieur Gabriel Nicholas pour le Center for Democracy & Technology. Il souligne nĂ©anmoins que la publication d’une partie du code source de Twitter ne contrebalance pas la fermeture du Consortium de recherche sur la modĂ©ration, ni celle des rapports de transparence relatives aux demandes de retraits des autoritĂ©s ni celle de l’accĂšs Ă  son API pour chercheurs, devenue extrĂȘmement coĂ»teuse.

      « Twitter n’a pas exactement ’ouvert son algorithme’ comme certains l’ont dit. Le code est lourdement expurgĂ© et il manque plusieurs fichiers de configuration, ce qui signifie qu’il est pratiquement impossible pour un chercheur indĂ©pendant d’exĂ©cuter l’algorithme sur des Ă©chantillons ou de le tester d’une autre maniĂšre. Le code publiĂ© n’est en outre qu’un instantanĂ© du systĂšme de recommandation de Twitter et n’est pas rĂ©ellement connectĂ© au code en cours d’exĂ©cution sur ses serveurs. Cela signifie que Twitter peut apporter des modifications Ă  son code de production et ne pas l’inclure dans son rĂ©fĂ©rentiel public, ou apporter des modifications au rĂ©fĂ©rentiel public qui ne sont pas reflĂ©tĂ©es dans son code de production. Â»

      L’algorithme publiĂ© par Twitter est principalement son systĂšme de recommandation. Il se dĂ©compose en 3 parties, explique encore Nicholas :

      • Un systĂšme de gĂ©nĂ©ration de contenus candidats. Ici, Twitter sĂ©lectionne 1500 tweets susceptibles d’intĂ©resser un utilisateur en prĂ©disant la probabilitĂ© que l’utilisateur s’engage dans certaines actions pour chaque tweet (c’est-Ă -dire qu’il RT ou like par exemple).
      • Un systĂšme de classement. Une fois que les 1 500 tweets susceptibles d’ĂȘtre servis sont sĂ©lectionnĂ©s, ils sont notĂ©s en fonction de la probabilitĂ© des actions d’engagement, certaines actions Ă©tant pondĂ©rĂ©es plus fortement que d’autres. Les tweets les mieux notĂ©s apparaĂźtront gĂ©nĂ©ralement plus haut dans le fil d’actualitĂ© de l’utilisateur.
      • Un systĂšme de filtrage. Les tweets ne sont pas classĂ©s strictement en fonction de leur score. Des heuristiques et des filtres sont appliquĂ©s pour, par exemple, Ă©viter d’afficher plusieurs tweets du mĂȘme auteur ou pour dĂ©classer les tweets d’auteurs que l’utilisateur a dĂ©jĂ  signalĂ©s pour violation de la politique du site.

      Le score final est calculĂ© en additionnant la probabilitĂ© de chaque action multipliĂ©e par son poids (en prenant certainement en compte la raretĂ© ou la frĂ©quence d’action, le fait de rĂ©pondre Ă  un tweet Ă©tant moins frĂ©quent que de lui attribuer un like). Mais Twitter n’a pas publiĂ© la probabilitĂ© de base de chacune de ces actions ce qui rend impossible de dĂ©terminer l’importance de chacune d’elles dans les recommandations qui lui sont servies.

      Twitter a Ă©galement rĂ©vĂ©lĂ© quelques informations sur les autres facteurs qu’il prend en compte en plus du classement total d’un tweet. Par exemple, en Ă©quilibrant les recommandations des personnes que vous suivez avec celles que vous ne suivez pas, en Ă©vitant de recommander les tweets d’un mĂȘme auteur ou en donnant une forte prime aux utilisateurs payants de Twitter Blue.

      Il y a aussi beaucoup de code que Twitter n’a pas partagĂ©. Il n’a pas divulguĂ© beaucoup d’informations sur l’algorithme de gĂ©nĂ©ration des tweets candidats au classement ni sur ses paramĂštres et ses donnĂ©es d’entraĂźnement. Twitter n’a pas non plus explicitement partagĂ© ses algorithmes de confiance et de sĂ©curitĂ© pour dĂ©tecter des Ă©lĂ©ments tels que les abus, la toxicitĂ© ou les contenus pour adultes, afin d’empĂȘcher les gens de trouver des solutions de contournement, bien qu’il ait publiĂ© certaines des catĂ©gories de contenu qu’il signale.

       

      graphe des relations entre comptes twitter, tr-s nombreux traits bleus entre minuscules avatars de comptes, le tout donne une impression d'inextricable comlexité

      « 20120212-NodeXL-Twitter-socbiz network graph Â» par Marc_Smith ; licence CC BY 2.0.

       

      Pour Gabriel Nicholas, la transparence de Twitter serait plus utile si Twitter avait maintenu ouverts ses outils aux chercheurs. Ce n’est pas le cas.

      Il y a plein d’autres points que l’ouverture de l’algorithme de Twitter a documentĂ©s. Par exemple, l’existence d’un Tweepcred, un score qui classe les utilisateurs et qui permet de voir ses publications boostĂ©es si votre score est bon, comme l’expliquait Numerama. Ou encore le fait que chaque compte est clustĂ©risĂ© dans un groupe aux profils similaires dans lequel les tweets sont d’abord diffusĂ©s avant d’ĂȘtre envoyĂ©s plus largement s’ils rencontrent un premier succĂšs
 De mĂȘme, il semblerait qu’il y ait certaines catĂ©gories d’utilisateurs spĂ©ciaux (dont une catĂ©gorie relative Ă  Elon Musk) mais qui servent peut-ĂȘtre plus certaines statistiques qu’à doper la portĂ©e de certains comptes comme on l’a entendu (mĂȘme s’il semble bien y avoir une catĂ©gorie VIP sur Twitter â€“ comme il y a sur Facebook un statut d’exception Ă  la modĂ©ration)


      Ouvrir, mais ouvrir quoi ?

      En conclusion de son article, Narayan pointe vers un trĂšs intĂ©ressant article qui dresse une liste d’options de transparence pour ceux qui produisent des systĂšmes de recommandation, publiĂ©e par les chercheurs Priyanjana Bengani, Jonathan Stray et Luke Thorburn. Ils rappellent que les plateformes ont mis en place des mesures de transparence, allant de publications statistiques Ă  des interfaces de programmation, en passant par des outils et des ensembles de donnĂ©es protĂ©gĂ©s. Mais ces mesures, trĂšs techniques, restent insuffisantes pour comprendre les algorithmes de recommandation et leur influence sur la sociĂ©tĂ©. Une grande partie de cette rĂ©sistance Ă  la transparence ne tient pas tant aux risques commerciaux qui pourraient ĂȘtre rĂ©vĂ©lĂ©s qu’à Ă©viter l’embarras d’avoir Ă  se justifier de choix qui ne le sont pas toujours. D’une maniĂšre trĂšs pragmatique, les trois chercheurs proposent un menu d’actions pour amĂ©liorer la transparence et l’explicabilitĂ© des systĂšmes.

      Documenter
      L’un des premiers outils, et le plus simple, reste la documentation qui consiste Ă  expliquer en termes clairs – selon diffĂ©rentes Ă©chelles et niveaux, me semble-t-il â€“ ce qui est activĂ© par une fonction. Pour les utilisateurs, c’est le cas du bouton « Pourquoi je vois ce message Â» de Facebook ou du panneau « FrĂ©quemment achetĂ©s ensemble Â» d’Amazon. L’idĂ©e ici est de fourbir un « compte rendu honnĂȘte Â». Pour les plus Ă©voluĂ©es de ces interfaces, elles devraient permettre non seulement d’informer et d’expliquer pourquoi on nous recommande ce contenu, mais Ă©galement, permettre de rectifier et mieux contrĂŽler son expĂ©rience en ligne, c’est-Ă -dire d’avoir des leviers d’actions sur la recommandation.

      Une autre forme de documentation est celle sur le fonctionnement gĂ©nĂ©ral du systĂšme et ses dĂ©cisions de classement, Ă  l’image des rapports de transparence sur les questions de sĂ©curitĂ© et d’intĂ©gritĂ© que doivent produire la plupart des plateformes (voir celui de Google, par exemple). Cette documentation devrait intĂ©grer des informations sur la conception des algorithmes, ce que les plateformes priorisent, minimisent et retirent, si elles donnent des prioritĂ©s et Ă  qui, tenir le journal des modifications, des nouvelles fonctionnalitĂ©s, des changements de politiques. La documentation doit apporter une information solide et loyale, mais elle reste souvent insuffisante.

      Les données
      Pour comprendre ce qu’il se passe sur une plateforme, il est nĂ©cessaire d’obtenir des donnĂ©es. Twitter ou Facebook en ont publiĂ© (accessibles sous condition de recherche, ici pour Twitter, lĂ  pour Facebook). Une autre approche consiste Ă  ouvrir des interfaces de programmation, Ă  l’image de CrowdTangle de Facebook ou de l’API de Twitter. Depuis le scandale Cambridge Analytica, l’accĂšs aux donnĂ©es est souvent devenu plus difficile, la protection de la vie privĂ©e servant parfois d’excuse aux plateformes pour Ă©viter d’avoir Ă  divulguer leurs pratiques. L’accĂšs aux donnĂ©es, mĂȘme pour la recherche, s’est beaucoup refermĂ© ces derniĂšres annĂ©es. Les plateformes publient moins de donnĂ©es et CrowdTangle propose des accĂšs toujours plus sĂ©lectifs. Chercheurs et journalistes ont Ă©tĂ© contraints de dĂ©velopper leurs propres outils, comme des extensions de navigateurs permettant aux utilisateurs de faire don de leurs donnĂ©es (Ă  l’image du Citizen Browser de The Markup) ou des simulations automatisĂ©es (Ă  l’image de l’analyse robotique de TikTok produite par le Wall Street Journal), que les plateformes ont plutĂŽt eu tendance Ă  bloquer en dĂ©niant les rĂ©sultats obtenus sous prĂ©texte d’incomplĂ©tude – ce qui est justement le problĂšme que l’ouverture de donnĂ©es cherche Ă  adresser.

      Le code
      L’ouverture du code des systĂšmes de recommandation pourrait ĂȘtre utile, mais elle ne suffit pas, d’abord parce que dans les systĂšmes de recommandation, il n’y a pas un algorithme unique. Nous sommes face Ă  des ensembles complexes et enchevĂȘtrĂ©s oĂč « diffĂ©rents modĂšles d’apprentissage automatique formĂ©s sur diffĂ©rents ensembles de donnĂ©es remplissent diverses fonctions Â». MĂȘme le classement ou le modĂšle de valeur pour dĂ©terminer le score n’explique pas tout. Ainsi, « le poids Ă©levĂ© sur un contenu d’un type particulier ne signifie pas nĂ©cessairement qu’un utilisateur le verra beaucoup, car l’exposition dĂ©pend de nombreux autres facteurs, notamment la quantitĂ© de ce type de contenu produite par d’autres utilisateurs. Â»

      Peu de plateformes offrent une grande transparence au niveau du code source. Reddit a publiĂ© en 2008 son code source, mais a cessĂ© de le mettre Ă  jour. En l’absence de mesures de transparence, comprendre les systĂšmes nĂ©cessite d’écluser le travail des journalistes, des militants et des chercheurs pour tenter d’en obtenir un aperçu toujours incomplet.

      La recherche
      Les plateformes mĂšnent en permanence une multitude de projets de recherche internes voire externes et testent diffĂ©rentes approches pour leurs systĂšmes de recommandation. Certains des rĂ©sultats finissent par ĂȘtre accessibles dans des revues ou des articles soumis Ă  des confĂ©rences ou via des fuites d’informations. Quelques efforts de partenariats entre la recherche et les plateformes ont Ă©tĂ© faits, qui restent embryonnaires et ne visent pas la transparence, mais qui offrent la possibilitĂ© Ă  des chercheurs de mener des expĂ©riences et donc permettent de rĂ©pondre Ă  des questions de nature causale, qui ne peuvent pas ĂȘtre rĂ©solues uniquement par l’accĂšs aux donnĂ©es.

      Enfin, les audits peuvent ĂȘtre considĂ©rĂ©s comme un type particulier de recherche. À l’heure actuelle, il n’existe pas de bons exemples d’audits de systĂšmes de recommandation menĂ©s Ă  bien. Reste que le Digital Service Act (DSA) europĂ©en autorise les audits externes, qu’ils soient lancĂ©s par l’entreprise ou dans le cadre d’une surveillance rĂ©glementaire, avec des accĂšs Ă©largis par rapport Ă  ceux autorisĂ©s pour l’instant. Le DSA exige des Ă©valuations sur le public mineur, sur la sĂ©curitĂ©, la santĂ©, les processus Ă©lectoraux
 mais ne prĂ©cise ni comment ces audits doivent ĂȘtre rĂ©alisĂ©s ni selon quelles normes. Des mĂ©thodes spĂ©cifiques ont Ă©tĂ© avancĂ©es pour contrĂŽler la discrimination, la polarisation et l’amplification dans les systĂšmes de recommandation.

      En principe, on pourrait Ă©valuer n’importe quel prĂ©judice par des audits. Ceux-ci visent Ă  vĂ©rifier si « la conception et le fonctionnement d’un systĂšme de recommandation respectent les meilleures pratiques et si l’entreprise fait ce qu’elle dit qu’elle fait. S’ils sont bien rĂ©alisĂ©s, les audits pourraient offrir la plupart des avantages d’un code source ouvert et d’un accĂšs aux donnĂ©es des utilisateurs, sans qu’il soit nĂ©cessaire de les rendre publics. Â» Reste qu’il est peu probable que les audits imposĂ©s par la surveillance rĂ©glementaire couvrent tous les domaines qui prĂ©occupent ceux qui sont confrontĂ©s aux effets des outils de recommandations.

      Autres moteurs de transparence : la gouvernance et les calculs

      Les chercheurs concluent en soulignant qu’il existe donc une gamme d’outils Ă  disposition, mais qu’elle manque de rĂšgles et de bonnes pratiques partagĂ©es. Face aux obligations de transparence et de contrĂŽles qui arrivent (pour les plus gros acteurs d’abord, mais parions que demain, elles concerneront bien d’autres acteurs), les entreprises peinent Ă  se mettre en ordre de marche pour proposer des outillages et des productions dans ces diffĂ©rents secteurs qui leur permettent Ă  la fois de se mettre en conformitĂ© et de faire progresser leurs outils. Ainsi, par exemple, dans le domaine des donnĂ©es, documenter les jeux et les champs de donnĂ©es, Ă  dĂ©faut de publier les jeux de donnĂ©es, pourrait dĂ©jĂ  permettre un net progrĂšs. Dans le domaine de la documentation, les cartes et les registres permettent Ă©galement d’expliquer ce que les calculs opĂšrent (en documentant par exemple leurs marges d’erreurs).

      Reste que l’approche trĂšs technique que mobilisent les chercheurs oublie quelques leviers supplĂ©mentaires. Je pense notamment aux conseils de surveillance, aux conseils Ă©thiques, aux conseils scientifiques, en passant par les organismes de contrĂŽle indĂ©pendants, aux comitĂ©s participatifs ou consultatifs d’utilisateurs
 Ă  tous les outils institutionnels, participatifs ou militants qui permettent de remettre les parties prenantes dans le contrĂŽle des dĂ©cisions que les systĂšmes prennent. Dans la lutte contre l’opacitĂ© des dĂ©cisions, tous les leviers de gouvernance sont bons Ă  prendre. Et ceux-ci sont de trĂšs bons moyens pour faire pression sur la transparence, comme l’expliquait trĂšs pertinemment David Robinson dans son livre Voices in the Code.

      Un autre levier me semble absent de nombre de propositions
 Alors qu’on ne parle que de rendre les calculs transparents, ceux-ci sont toujours absents des discussions. Or, les rĂšgles de traitements sont souvent particuliĂšrement efficaces pour amĂ©liorer les choses. Il me semble qu’on peut esquisser au moins deux moyens pour rendre les calculs plus transparents et responsables : la minimisation et les interdictions.

      La minimisation vise Ă  rappeler qu’un bon calcul ne dĂ©multiplie pas nĂ©cessairement les critĂšres pris en compte. Quand on regarde les calculs, bien souvent, on est stupĂ©fait d’y trouver des critĂšres qui ne devraient pas ĂȘtre pris en compte, qui n’ont pas de fondements autres que d’ĂȘtre rendus possibles par le calcul. Du risque de rĂ©cidive au score de risque de fraude Ă  la CAF, en passant par l’attribution de greffes ou aux systĂšmes de calculs des droits sociaux, on trouve toujours des Ă©lĂ©ments qui apprĂ©cient le calcul alors qu’ils n’ont aucune justification ou pertinence autres que d’ĂȘtre rendu possibles par le calcul ou les donnĂ©es. C’est le cas par exemple du questionnaire qui alimente le calcul de risque de rĂ©cidive aux Etats-Unis, qui repose sur beaucoup de questions problĂ©matiques. Ou de celui du risque de fraude Ă  la CAF, dont les anciennes versions au moins (on ne sait pas pour la plus rĂ©cente) prenaient en compte par exemple le nombre de fois oĂč les bĂ©nĂ©ficiaires se connectaient Ă  leur espace en ligne (sur cette question, suivez les travaux de la Quadrature et de Changer de Cap). La minimisation, c’est aussi, comme l’explique l’ex-chercheur de chez Google, El Mahdi El Mhamdi, dans une excellente interview, limiter le nombre de paramĂštres pris en compte par les calculs et limiter l’hĂ©tĂ©rogĂ©nĂ©itĂ© des donnĂ©es.

      L’interdiction, elle, vise Ă  dĂ©terminer que certains croisements ne devraient pas ĂȘtre autorisĂ©s, par exemple, la prise en compte des primes dans les logiciels qui calculent les donnĂ©es d’agenda du personnel, comme semble le faire le logiciel Orion mis en place par la Sncf, ou Isabel, le logiciel RH que Bol.com utilise pour gĂ©rer la main-d’Ɠuvre Ă©trangĂšre dans ses entrepĂŽts de logistique nĂ©erlandais. Ou encore, comme le soulignait Narayan, le temps passĂ© sur les contenus sur un rĂ©seau social par exemple, ou l’analyse de l’émotion dans les systĂšmes de recrutement (et ailleurs, tant cette technologie pose problĂšme). A l’heure oĂč tous les calculs sont possibles, il va ĂȘtre pertinent de rappeler que selon les secteurs, certains croisements doivent rester interdits parce qu’ils sont trop Ă  risque pour ĂȘtre mobilisĂ©s dans le calcul ou que certains calculs ne peuvent ĂȘtre autorisĂ©s.

      Priyanjana Bengani, Jonathan Stray et Luke Thorburn, pour en revenir Ă  eux, notent enfin que l’exigence de transparence reste formulĂ©e en termes trĂšs gĂ©nĂ©raux par les autoritĂ©s rĂ©glementaires. Dans des systĂšmes vastes et complexes, il est difficile de savoir ce que doit signifier rĂ©ellement la transparence. Pour ma part, je milite pour une transparence “projective”, active, qui permette de se projeter dans les explications, c’est-Ă -dire de saisir ses effets et dĂ©passer le simple caractĂšre narratif d’une explication loyale, mais bien de pouvoir agir et reprendre la main sur les calculs.

      CoincĂ©s dans les boucles de l’amplification

      Plus rĂ©cemment, les trois mĂȘmes chercheurs, passĂ© leur article sĂ©minal, ont continuĂ© Ă  documenter leur rĂ©flexion. Ainsi, dans « Rendre l’amplification mesurable Â», ils expliquent que l’amplification est souvent bien mal dĂ©finie (notamment juridiquement, ils ont consacrĂ© un article entier Ă  la question)
 mais proposent d’amĂ©liorer les propriĂ©tĂ©s permettant de la dĂ©finir. Ils rappellent d’abord que l’amplification est relative, elle consiste Ă  introduire un changement par rapport Ă  un calcul alternatif ou prĂ©cĂ©dent qui va avoir un effet sans que le comportement de l’utilisateur n’ait Ă©tĂ©, lui, modifiĂ©.

      L’amplification agit d’abord sur un contenu et nĂ©cessite de rĂ©pondre Ă  la question de savoir ce qui a Ă©tĂ© amplifiĂ©. Mais mĂȘme dire que les fake news sont amplifiĂ©es n’est pas si simple, Ă  dĂ©faut d’avoir une dĂ©finition prĂ©cise et commune des fake news qui nĂ©cessite de comprendre les classifications opĂ©rĂ©es. Ensuite, l’amplification se mesure par rapport Ă  un point de rĂ©fĂ©rence prĂ©cĂ©dent qui est rarement prĂ©cisĂ©. Enfin, quand l’amplification atteint son but, elle produit un rĂ©sultat qui se voit dans les rĂ©sultats liĂ©s Ă  l’engagement (le nombre de fois oĂč le contenu a Ă©tĂ© apprĂ©ciĂ© ou partagĂ©) mais surtout ceux liĂ©s aux impressions (le nombre de fois oĂč le contenu a Ă©tĂ© vu). Enfin, il faut saisir ce qui relĂšve de l’algorithme et du comportement de l’utilisateur. Si les messages d’un parti politique reçoivent un nombre relativement important d’impressions, est-ce parce que l’algorithme est biaisĂ© en faveur du parti politique en question ou parce que les gens ont tendance Ă  s’engager davantage avec le contenu de ce parti ? Le problĂšme, bien sĂ»r, est de distinguer l’un de l’autre d’une maniĂšre claire, alors qu’une modification de l’algorithme entraĂźne Ă©galement une modification du comportement de l’utilisateur. En fait, cela ne signifie pas que c’est impossible, mais que c’est difficile, expliquent les chercheurs. Cela nĂ©cessite un systĂšme d’évaluation de l’efficacitĂ© de l’algorithme et beaucoup de tests A/B pour comparer les effets des Ă©volutions du calcul. Enfin, estiment-ils, il faut regarder les effets Ă  long terme, car les changements dans le calcul prennent du temps Ă  se diffuser et impliquent en retour des rĂ©actions des utilisateurs Ă  ces changements, qui s’adaptent et rĂ©agissent aux transformations.

      Dans un autre article, ils reviennent sur la difficultĂ© Ă  caractĂ©riser l’effet bulle de filtre des mĂ©dias sociaux, notamment du fait de conceptions Ă©lastiques du phĂ©nomĂšne. S’il y a bien des boucles de rĂ©troaction, leur ampleur est trĂšs discutĂ©e et dĂ©pend beaucoup du contexte. Ils en appellent lĂ  encore Ă  des mesures plus prĂ©cises des phĂ©nomĂšnes. Certes, ce que l’on fait sur les rĂ©seaux sociaux influe sur ce qui est montrĂ©, mais il est plus difficile de dĂ©montrer que ce qui est montrĂ© affecte ce que l’on pense. Il est probable que les effets mĂ©diatiques des recommandations soient faibles pour la plupart des gens et la plupart du temps, mais beaucoup plus importants pour quelques individus ou sous-groupes relativement Ă  certaines questions ou enjeux. De plus, il est probable que changer nos façons de penser ne rĂ©sulte pas d’une exposition ponctuelle, mais d’une exposition Ă  des rĂ©cits et des thĂšmes rĂ©currents, cumulatifs et Ă  long terme. Enfin, si les gens ont tendance Ă  s’intĂ©resser davantage Ă  l’information si elle est cohĂ©rente avec leur pensĂ©e existante, il reste Ă  savoir si ce que l’on pense affecte ce Ă  quoi l’on s’engage. Mais cela est plus difficile Ă  mesurer car cela suppose de savoir ce que les gens pensent et pas seulement constater leurs comportements en ligne. En gĂ©nĂ©ral, les Ă©tudes montrent plutĂŽt que l’exposition sĂ©lective a peu d’effets. Il est probable cependant que lĂ  encore, l’exposition sĂ©lective soit faible en moyenne, mais plus forte pour certains sous-groupes de personnes en fonction des contextes, des types d’informations.

      Bref, là encore, les effets des réseaux sociaux sont difficiles à percer.

      Pour comprendre les effets de l’amplification algorithmique, peut-ĂȘtre faut-il aller plus avant dans la comprĂ©hension que nous avons des Ă©volutions de celle-ci, afin de mieux saisir ce que nous voulons vraiment savoir. C’est ce que nous tenterons de faire dans la suite de cet article


      ❌