Bonne année !

Et oui, on est début Janvier, alors c’est le moment du message annuel.

Que dire de 2024 ?

J’ai reçu une carte de voeux professionnelle qui soulignait ma résilience. La résilience, c’est le nom qu’on donne à ces moments difficiles dont on arrive à se sortir et à tirer des apprentissages. Et, sans vouloir détailler, des moments difficiles, j’en ai vécu quelques-uns, notamment en début d’année où j’ai dû prendre quelques décisions déchirantes. Franchement, je suis arrivé au mois de mai dans un état moral assez mauvais. Heureusement, Devoxx m’a rendu le moral (mes vacances à Malte également), et j’ai commencé à reprendre du poil de la bête. Néanmoins, l’automne a été encore plus difficile que le printemps. Et ne soyez pas surpris si l’année 2025 se révèle être une année de crise.

Cela dit, j’ai eu quelques idées intéressantes, en particulier au sujet de l’étude de la popularité des technologies, un sujet qui va à mon avis m’accompagner pendant encore quelques années.

A côté de ça, j’ai comme toujours quelques choses à faire

  • Remettre en marche mon backup du NAS sur mon boîtier USB à la cave avec DietPi (c’est en cours, et ça n’est en fait qu’une question de temps)
  • Reprendre de zéro ce chantier de sortie de WordPress et d’aggrégation de mes contenus. Ca fait des années que ça traîne, mais je pense qu’en ayant une approche un peu propre, je pourrai arriver à un résultat intéressant
  • Regarder aadarchi en face, et voir si il ne faut pas déclarer ce projet comme terminé.
  • Me syndiquer (parce que le monde est politique, et qu’il est temps que je le comprenne)

Et enfin, commencer à réfléchir à ce que serait pour moi un futur désirable.

Legal JVM dopes for your app

Exceptionnellement, une session en anglais au chtijug ce soir.

Alors je ne sais pas si je vais noter en français ou en anglais, on verra…​

Supposons qu’on organise les jeux olympiques sans interdire le dopage. On verrait des choses incroyables, non ?

C’est impossible dans le sport, mais c’est possible pour notre code, et c’est ce que va nous monter Dmitry ce soir.

La plupart du temps, on fait du DevOps, et tout le monde est content : le développeur travaille efficacement, l’application est bien conteneurisée et elle se déploie bien dans le cloud. En fait, tout le monde est content, sauf l’équipe finops, parce que les coûts explosent. Pour contrôler ça, il faut de bons SLA/SLO pour contrôler ces coûts. Les problèmes classiques sont

la sous-utilisation des pods

L’incapacité à scaler correctement le nombre de pods

Tout ça, c’est du scaling horizontal, ça marche à peu près.
Mais on peut aussi faire du scaling vertical.


La pensée classique, c’est d’optimiser l’application pour les
conteneurs. Mais en fait, c’est plus simple d’optimiser le conteneur. Seulement, ça dépend des conditions : si on déploie une application Java dans des conteneurs trop « petits » (en particulier en termes d’espace mémoire), les applications n’arriveront pas à démarrer et le service ne
sera pas rendu.Et ce sont générallement les équipes ops qui essayent de diminuer la mémoire des applications.

Alors optimisons ça!

Optimisons les conteneurs

Conteneur basique

Les développeurs Java ont tendance à faire un FROM openjdk:latest. Mais OpenJDK est déprécié depuis un moment ! Et ça nous génère une image de 513 Mo.

Conteneur avancé

Avec liberica (la distribution JDK de la boîte de Dmitry), on peut optimiser les layers Docker de notre image pour ne transmettre que le code métier. En bonus, pensez à ajouter -XX:MaxRAMPercentage=80. Parce que par défaut, le JRE limite la mémoire utilisable à 25% !

Un peu d’étude de charge


En regardant PetClinic avec WRK2 et HdrHistogram,
on observe un certain niveau de charge. Ce niveau de charge constant nous incite à penser que passer à une
exécution native (GraalVM) serait une bonne idée. Mais en fait, simplement en utilisant la Client VM, on démarre plus vite et on a une image plus compacte. On peut bien sûr faire du GraalVM, ça démarre plus vite, mais la performance de pic sera inférieure à celle de Client VM (à cause de l’absence de JIT).


Quelques outils bas niveaux

Il reste (sauf dans le cas de GraalVM) un chargement de classe. Avec CDS ou CRaC, on peut démarrer l’application Java, attendre que les classes soient chargées, faire un snapshot de la mémoire et envoyer cette machine
virtuelle avec les classes déja chargées dans la registry Docker.
CDS est la norme Java, applicable uniquement avec le JDK.
CRaC semble nécessiter la collaboration du noyau Linux (et de Docker, puisqu’il faut donner au conteneur la capacité CHECKPOINT_RESTORE). C’est bien plus simple à utiliser en créant deux images : une qui crée le checkpoint (et le commite dans une autre image Docker), et une qui utilise ce checkpoint. Et Spring-boot fournit une option de démarrage pour créer un seul checkpoint : quand les classes sont chargées. Parce que la suite de l’exécution sera dépendante de la nature de l’application.

Optimisation du garbage collector

Si on parle de l’optimisation des performances, on passe naturellement par la case GC. Chaque version de Java (ou à peu près) amène son JDK. La plupart d’entre eux sont générationnels. Et ils visent tous les pauses courtes. Si vous avez des applications critiques, ParallelGC est toujours le plus performant.

Prérequis physiques

Pour trouver les bons paramètres, n’hésitez pas à expérimenter, parce que les paramètres dont on parle ici sont hautement contextuels. Et comme ces paramètres sont hautement contextuels, Bellsoft fournit un build pack Spring boot, qui va automatiser la plupart des choses.

Autres optimisations

Project Leyden


Le projet Leyden semble forunir un ensemble de fonctionnalités de cache de classes.
OpenJ9 fournit déja ce cache de classes.

Project Liliput

Le projet Liliput vise à réduire la taille des entêtes des objets Java (pour passer de 128 bits à 64 bites).
En passant la ligne de commande associée, on gagne entre 10% et 20% de mémoire.
Et Liliput sera bientôt utilisable en standard.

Threads virtuels

Les threads virtuels sont maintenant supportés dans Spring, Tomcat, Jetty, donc à peu près partout. Ca peut apporter des comportements bizarres (parce que le vieux code n’a pas été prévu pour ça). Mais ça détache les threads Java de ceux de la machine physique.

Fused JDK

Bellsoft réimplémente certains vieux JDK sur une nouvelle JVM, pour apporter toutes ces améliorations aux applications déja en production (ils réimplémentent ainsi le JDK 8).

L’animal et l’être humain

Chaque année, mes vacances sont l’occasion de réflexions parfois surprenantes (voir par exemple Est-ce que l’être humain est l’espèce dominante ? ou De quel droit ?). Cette année, ces réflexions ont pris une autre direction.

L’année dernière, j’avais réussi à convaincre ma femme de l’intérêt des podcasts (essentiellement grâce à La Science CQFD). Et cette année, ça n’est pas moi qui faisait la playlist. J’ai donc entendu beaucoup des dialogues de Fabrice Midal, et d’autres podcasts qui m’ont moins marqué. Et certains d’entre eux ont résonné étonnament avec … Dune, et en particulier le Gom Jabbar.

C’est le gom jabbar qui sépare l’humain de l’animal

Laissez-moi vous expliquer le raisonnement …

Ce test que subit le jeune Paul Atréides vise à séparer l’être humain de l’animal. Parce que l’animal, face à la douleur immédiate, va chercher à foir. L’être humain, lui, est capable d’affronter cette douleur pour survivre.

Ca, c’est le modèle de conscience de Frank Herbert, datant au moins des années 1950.

Aujourd’hui, on sait que les choses ne sont pas aussi simples.

Fabrice Midal lui, prétend parler d’autre chose : la capacité d’accepter les émotions et de les vivre pleinement pour éviter qu’elles ne fassent souffrir les gens. A titre personnel, je suis hyposensible et très analytique, donc ces émotions ne sont pas un problème pour moi. En écoutant ces podcasts, j’ai compris que ces émotions ne sont pas faciles à vivre, parce que les gens ne sont pas capables de les vivre pleinement. Pourquoi ?

C’est là qu’est le lien.

Lorsque l’enfant grandit, est-il bon ou mauvais ? Ca a longtemps été un débat, que je ne chercherai pas à solder. En revanche, ce qui est sûr, c’est que l’enfant n’est pas un être humain, mais un animal. En effet, comme un animal, il vit selon ses pulsions, sans vouloir anticiper, sans chercher la rationalité. Et l’enfant est par nature un animal social qui vit dans un groupe.

Et ce qu’on observe dans les groupes d’enfant, c’est le comportement typique d’un groupe animal face à un individu faible : la mise à l’écart. Parce que l’enfant sujet à une émotion l’exprime. Et en l’exprimant, il devient une cible privilégiée : il est plus bruyant, moins attentif à un environnement hostile. Alors le groupe fait ce que font tous les groupes animaux face à un individu dangereux : il le met à l’écart. Comme l’enfant est malgré tout doué de capacités de réflexion, il comprend rapidement que l’expression de son émotion le met en danger. Et cet apprentissage du contrôle des émotions se fait très tôt.

Autrement dit, lorsque les invités de Fabrice Midal parlent de libérer l’expression des émotions, ce qu’ils disent en fait, c’est qu’en tant qu’être humain, les émotions ne sont pas un danger existentiel, mais un moyen pour le corps de manifester un ressenti. C’est par exemple très bien documenté dans le livre Emotions, quand c’est plus fort que toi.

Et en ce sens, il faut essayer d’être humain : accepter ses émotions, comprendre que le corps et l’esprit ne sont pas des éléments séparés, mais un tout intégré d’innombrables façons, et que certaines de ces façons sortent du cadre bien propre des cinq sens.

Installer pom-cli

Si comme moi vous utilisez depuis longtemps maven, vous savez qu’il est parfois fastidieux d’éditer votre pom, surtout quand vous voulez changer une propriété simple.

Heureusement, il existe un outil assez pratique pour éditer en ligne de commande le pom (donc sans passer par un éditeur) qui s’appelle … pom-cli.

Malheureusement, pom-cli n’est pour l’instant pas disponible dans les releases github (quand j’aurais du temps – typiquement pendant , je créerai la github action qui va bien).

En attendant, pour l’installer, il vous faut

  • Java 21 en version GraalVM
  • Maven
  • Configurer votre JAVA_HOME pour qu’il pointe justement sur ce JDK GraalVM (maintenant que je suis sous Linux, c’est assez facile)

Une fois que c’est fait, un « simple » mvn -Pnative vous génère l’exécutable natif. Et en l’ajoutant à votre PATH, vous avez un outil pratique pour modifier vos POMs.

Linuxerie version 2

Histoire de se changer les idées en cette soirée électorale qui risque d’être navrante, je vais vous parler de ma re-conversion à Linux.

J’ai donc rapidement testé Zorin OS, qui supportait assez mal mon Lenovo 7650 beaucoup trop récent (je n’avais jamais entendu parler de l’architecture Intel Arc). Après quelques jours de test, et l’initialisation d’un repository GitHub d’installation via Ansible, j’ai donc basculé vers Ubuntu 24. Et ça va beaucoup mieux pour le support du matériel (excepté la webcam pour laquelle un bug est connu).

L’ergonomie de base d’Ubuntu me satisfaisant peu, j’ai donc pris la direction que prennent tous les linuxiens : Gnome Extensions, qui m’a permis de retrouver une expérience plus proche de Windows (qui a malgré tout quelques bons côtés). Pour ça, c’est simple : Arc Menu (qui donne un menu très appréciable, et dont je découvre à l’instant qu’il n’est plus maintenu), Dash to Dock (parce que l’assemblage du dock et de la barre de titre me paraît être essentiellement une perte de place), auquel j’ai rajouté un paquet d’inutilités rigolotes. Dans l’ensemble, et de façon surprenante, l’expérience est assez satisfaisante.

Mais en fait, ce qui est surtout satisfaisant, c’est la capacité de configurer la machine depuis ANsible. Ca, c’est en fait vraiment la fête, parce que ça me permet d’avoir une machine gérée par du code. Il n’y a qu’un défaut (qu’il me semble que même Nix ne résolve pas).

Installer des applications, c’est facile.

Configurer des applications, c’est juste impossible : chaque application utilise un mode de configuration différent, avec des fichiers dans un format spécifique, et parfois complètement opaque. Résultat, le système est facilement installé, mais rien n’est correctement configuré. Cela dit, je suis – pour l’instant – assez content. On en reparle dans quelques semaines …

Tremplin Cloud Nord 2024

Le tremplin permet à des professionnels de l’informatique qui n’ont jamais donné de conférence de se lancer auprès d’un public bienveillant. Cloud Nord l’organise cette année avec le support de Julien Topçu

Devenez développeur senior en seulement 20 minutes

Claude, avec lequel j’ai partagé un open-space il y a quelques années, est tech-lead depuis 6 ans pour Equité. En général, il faut une dizaine d’année pour développer une seniorité dans le code.

Claude va nous parler de passion, et de partage.

La passion

Avec la passion viennent deux choses qui vont être utiles : le fun, et l’envie d’investir du temps. Par exemple, Claude a commencé par le DOS, le Pascal, le DOS, il a aussi fait du Scala, du Python, de la 3D. Ca lui a apporté la compréhension de la diversité des langages et des contextes. C’est extrêmement utile.

Evidement, comme tout le monde, Claude fait du Java en entreprise. Mais en-dehors, il fait autre chose. Claude a par exemple essayé d’écrire son propre éditeur (ça n’a pas vraiment marché), mais il a aussi essayé des tonnes d’outils divers et variés. Il a aussi essayé de faire son propre système d’authentification …​ troué en 5 minutes. Donc autant ne pas réinventer la roue.

Et par ailleurs, n’oubliez pas les bons principes : YAGNI (you ain’t gonna need it), KISS (Keep It Simple, Stupid!), DRY (don’t repeat yourself).

Le partage

Partager permet d’apprendre beaucoup. Vous pouvez par exemple créer des projets avec d’autres personnes. Ca vous oblige à produire un code lisible, compréhensible et maintenable. Ca vous oblige aussi à lire du code.

N’hésitez pas non plus à partager aux code reviews, ca vous aidera à voir d’autres façons faire.

Dans le même ordre d’idées, faites du TDD, et pensez aux tests croisés (tester le code écrit par quelqu’un d’autre).

Le partage, c’est aussi participer aux communautés locales, comme les conférences et les meetups. Si vous préférez coder participez aux coding dojos.

Conclusion

En fait, tout ça se retrouve dans le software craftmanship.

Jib – Osez le dockerless pour vos projets Java

Ludovic aime Docker, mais pas le Dockerfile. Parce que c’est inefficace, et que le Dockerfile introduit plein de failles. En plus, si on prend le même code source et qu’on lance deux fois la construction de l’image, on a deux signatures différentes.

Donc Ludovic va nous montrer pourquoi Jib est bien. Jib permet de construire des images Docker optimisées pour les projets Java avec trois objectifs

  • Simplicité (ça s’intègre bien dans l’écosystème)
  • Rapidité (l’application est séparée en couches optimisées)
  • Reproductibilité (le même code source génère la même image avec des layers strictement identiques).

Gestion des layers

Classiquement, dans une image Docker, on builde un fat jar, et quand on change une ligne de code, ce fat jar est reconstruit. Dans Jib, il y a un layer pour les dépendances, un layer pour les ressources, et enfin un layer pour les classes de notre application. Il est bien plus léger, et change bien moins souvent.

Démo !

Ludovic compile l’image dans son build maven : mvn clean compile jib:build. Ca va vite (8 secondes pour son image élémentaire). Et en plus, il n’a pas besoin de Docker sur sa machine !

Docker sans Docker

En fait, Jib construit de lui-même une image OCI et l’envoie dans la registry. OCI ? C’est le standard des images Docker, qui est en fait une archive contenant la structure de notre image Docker.

Comment ça marche ?

Le plugin Jib contient en fait toute la configuration de création de l’image. Il permet même de construire l’image avec le démon Docker. Attention, petite astuce : pour s’assurer que le même code source crée la même image, Jib met toujours comme date de modification des fichiers le 1er janvier 1970, ça permet la stabilité dans l’id des images Docker.

Retour d’expérience

Jib est utilisé dans le domaine de Leroy-Merlin où travaille Ludovic, et il n’a pas rencontré de problèmes particuliers.

Limites de Jib

  • C’est moins flexible que Docker (on ne peut pas faire de RUN)
  • C’est uniquement disponible pour du Java
  • Certaines opérations comme le renommage de fichier sont difficiles
  • On ne peut pas faire de rebase d’image

Sécuriser les applications Kubernetes avec Vault

Khaled et Mohamad vont nous parler de la sécurisation des secrets (clés d’API, mots de passe) dans Kubernetes (K8s) avec Vault.

Commençons tout de suite avec une démo …​ Il y a donc un cluster K8s avec un frontend, un backend, une base de données Postgres. Khaled a changé le mot de passe de la base de données du cluster sans prévenir Mohamad. Et leur démo échoue (mais ça fait partie du spectacle).

Le secret manager set à partager ces secrets en toute sécurité.K8s fournit un secret manager qui permt de stocker des valeurs chiffrées en Base64. Bon, ce secret manager n’est pas terrible.

SOPS fournit un secret manager un peu meilleur, mais qui n’évite pas certains problèmes.

Vault a lancé en juin 2023 un opérateur K8s apportant à K8s les capacités de Vault (qui sont déja particulièrement avancées).

Vault s’intègre dans K8s de plusieurs manières.Soit avec le Vault Injector (qui envoie les données dans le pod de l’application à son démarrage). Soit avec le vault Operator qui mappe les secrets Vault sur les secrets K8s. Celui-ci fonctionne avec une CRD (custom resource definition) qui permet de définir comment les secrets sont liés.Ces deux solutions fonctionnent avec l’ensemble des fournisseurs de secrets de Vault (KVv1, KVv2, database secret engine, …​)

Démo

La démo nous montre de façon claire que Vault permet de stocker le mot de passe de façon efficace et sécurisée.

Vers un monde numérique sobre et éco-responsable

Pourquoi

Le secteur du numérique produit déja plus de pollution que l’aviation, et pourrait rattraper prochainement la mode. Cet impact est en grande partie dû au matériel : en 2010, il y avait 1 milliard d’appareils connectés (montres, objets connectés). En 2025, on pourrait passer à 48 milliards d’appareils.Il serait donc bien de conserver les appareils le plus longtemps possible, pour limiter l’impact de ce coût de fabrication. Pour ça, il faut produire du logiciel efficace.

Les principes du green coding

D’abord, il faut penser à l’efficience du code ou de l’algorithme. Ca se fait bien avec de bons algorithmes, avec des structures de données adaptées.Thiermo donne l’exemple du calcul de factoriel où le code récursif prend plus de mémoire que le code itératif. Pour Thiermo, le bon sens et l’agilité doivent nous aider à développer des solutions efficientes en évitant de repartir de zéro à chaque fois.

Dans les principes de green coding, on optimise aussi l’utilisation des ressources en mémoire (on garde les choses en mémoire juste le temps nécessaire), la communication réseau, l’accès aux ressources.

A ce propos, il faut aussi réfléchir à la egstion durable des données. Thiermo donne deux exemples significatifs :

  • la déduplication réduit souvent fortement les besoins en capacité de stockage
  • La mise en cache optimise la vitesse de lecture des données

Enfin, et surtout, la gestion de l’énergie est un aspect important. Réduire l’activité réseau est un premier pas utile. On peut aussi penser à réfléchir à l’usage des modes d’économie d’énergie.

Plan d’attaque

Des outils comme ecocode (intégrable dans Sonar) LightHouse (fournit des mesures de qualité des sites web), EcoIndex (fournit le même type de mesure que LightHouse), vous permettent de produire des mesures utiles. On peut aussi voir du côté d’Impact Framework ou de Kepler (K8s Efficiency Power Level Exporter – qui permet de voir comment un datacenter utilise l’énergie).

A la découverte de dependency-track

Souvenez-vous de log4shell : juste avant Noël, il a fallu faire le tour de toutes les applications Java pour trouver celles qui étaient atteintes. Sans SCA, c’est pas gagné …​ Chez Worldline, à l’époque, ils utilisaient dependency-track (open-source) qui les a bien aidé.

Celui-ci fournit pour chaque application la liste des dépendances et de leurs CVE. On peut chercher par application, mais aussi par vulnérabilité. Et dependency-track fournit par ailleurs des mécanismes de notification pour envoyer des webhooks ou créer des tickets JIRA lorsqu’une vulnérabilité apparaît.

On peut également mettre un status pour chaque CVE afin de voir comment elle est traitée dans chaque application (ça ressemble à un bug tracker intégré).

C’est heureusement assez simple à mettre en place : pour peu que l’application fournisse un BOM (notament grâce à Cyclone DX – disponible dans un plugin maven), dependency-track saura la scanner.

Sciences et informatique – ensemble, brisons les barrières

Pour Samira et Hayet (dont j’ai animé une partie de la reconversion), les sciences comme les maths et la physique sont souvent vues de loin par les informaticiens. C’est dommage, parce qu’il y a en fait beaucoup de liens entre ces différents domaines.

Quand elles sont arrivées dans l’informatique, elles ont découvert un certain nombre d’idées reçues.

L’informatique ne serait pas vraiment une science

Les sciences dures n’auraient pas de rapport avec l’informatique

L’informatique ne serait qu’un outil pour les scientifiques

Tout cela est évidement faux et démontré par des chiffres.

Si on remonte dans l’histoire, on peut commencer par parler d’Ada Lovelace, pionnière des algorithmes (calcul des nombres de Bernoulli, définition des boucles). On peut aussi parler de Chien-Shiung Wu qui a travaillé sur l’interaction faible, et a permis pas mal d’innovations dans le domaine des ordinateurs quantiques.Par ailleurs, les éléments de recherche en physique et mathématique peuvent créer de sacrées innovations (comme les ordinateurs quantiques, les réseaux de neurones ou les systèmes de modèles météo).

Jusqu’à dimanche, tout ira bien …

La réalité a parfois ce potentiel stupéfiant.

Et depuis la dissolution commise par l’actuel président de la république, je ressens ce sentiment de stupéfaction. Comment un homme peut-il offrir son pays à l’extrême-droite … autrement qu’en en faisant partie. Comment un ensemble de journalistes intelligents peuvent tomber dans une dialectique mettant sur le même niveau l’extrême-droite et l’ensemble de la gauche républicaine … autrement qu’en étant des soutiens au moins passifs de cette extrême droite.

Et surtout, comment peut-on continuer à croire que le problème de la France soit la couleur de la peau de 15% de nos concitoyens ? Comment peut-on croire qu’il faut continuer à vivre selon les principes de l’abondance à l’heure du changement climatique ? Et enfin, comment peut-on confier l’avenir de notre pays à un parti dirigé actuellement par ce qu’on ne peut nommer qu’un castor ? Arrivé plus par sa queue que par ses qualités personnelles (ça n’est pas vraiment une invention de ma part, jetez donc un oeil à la page wikipedia de Jordan Bardella).

Alors je crois que je ne vais pas vous surprendre en vous indiquant que je voterai dimanche pour le nouveau front populaire.

Par contre, je vous surprendrai peut-être en vous encourageant, en vous suppliant, en vous ordonnant de voter pour ce nouveau front populaire.

Aujourd’hui, la révolte n’est pas dans le vote pour un parti populiste, démagogue, conservateur et favorisant avant tout les intérêts des plus riches.

Aujourd’hui, la révolte, c’est choisir face aux évolutions d’un monde qui va changer d’aider vos voisins, vos amis, votre famille, surtout s’ils ont été défavorisés par l’actuelle ploutocratie.

Autrement dit, dimanche, votez Nouveau Front Populaire.

Linuxeries en approche

J’avais essayé, l’année dernière, de passer sous Linux. J’avais été retenu par ma méconnaissance de l’écosystème et par certaines limitations matérielles (typiquement, une sombre histoire de clé USB servant de câble vidéo sans fil). Donc, j’étais repassé sous Windows.

L’enfer du déploiement des générateurs stochastiques étant passé par là (et mon entreprise me renouvelant mon ordinateur), je préfère m’en aller vers des outils plus conformes à mes principes. Attendez-vous donc prochainement à des messages grognons sur des distributions Linux forcément peu connues (on ne se refait pas). Au menu ?

  • Solus Budgie
  • UbuntuDDE
  • Linux Mint Debian Edition
  • Pop OS!
  • Zorin OS

Je vais essayer de les tester méthodiquement dans les prochaines semaines, de la seule façon qui compte : en en faisant mon OS principal. Notez que je ne suis pas fou, elles sont toutes basées sur Debian, donc je dois pouvoir me faire un script d’installation pour installer/configurer ces différentes distributions avec les secrets correctement stockés dans Keepass(XC) …

Installer mihon sur Android

Je ne sais pas si je vous ai parlé de la formidable application Android qui s’appelle Tachiyomi. Celle-ci m’a permis de lire gratuitement un certain nombre de mangas et de comics, que j’ai éventuellement acheté par la suite.

Il y a quelques temps, Tachiyomi a arrêté d’être mise à jour pour une sombre histoire de menaces. Heureusement, Mihon remplace Tachiyomi. Sauf que Mihon passe un peu sous les radars : vous ne trouverez l’application ni sur Google Play Store, ni même sur F-Droid. Alors, comment l’installer.

Il faut d’abord installer Obtainium, disponible dans F-Droid. Si elle n’est pas disponible pour votre appareil dans F-Droid, vous pouvez aussi télécharger l’APK directement depuis leur repository GitHub … ou plutôt ajouter le repository d’IzzyOnDroid à F-Droid.

Une fois Obtainium installé, vous ajoutez le repository GitHub de Mihon à Obtainium, puis vous installez Mihon grâce à Obtainium (de cette manière, vous aurez toujours la dernière version de Mihon, puisque l’objectif d’Obtainium est de gérer les mises jour directement depuis les repositories GitHub/GitLab/…).

Vous avez maintenant installé Mihon ! Il ne reste plus qu’à installer le repository de sources de mangas/comics, ce qui se fait grâce au repository de Keiyoushi (à ouvrir dans Firefox sur votre smartphone). Et là, ça marchera enfin !

Capitalisme – phase terminale

Le titre est peut-être un peu excessif, mais je n’en suis pas sûr.

A cause des générateurs stochastiques, les GAFAM (qui font partie des entreprises les plus riches du monde) se sont lancées dans une course à l’échalotte qui serait cocasse si elle n’était pas terrifiante. Microsoft, Google, Facebook se sont lancés dans une implémentation forcenée de ces fameux générateurs stochastiques dans tous leurs produits, pour tous les usages. Et ceci alors même que le domaine d’utilisation de ces outils est bien plus restreint que ce que nous vendent les flamboyantes démonstrations (traduction, résumé de texte, voilà les usages de ces outils, le reste tient plus de la prestidigitation que d’autre chose).

Certains critiques expliquent d’ailleurs clairement (voir Any Technology Indistinguishable From Magic is Hiding Something) que l’objectif des GAFAM dans l’implémentation de ces outils est avant tout de vous pousser vers leurs data centers (c’est l’une des raisons pour lesquelles les générateurs stochastiques tournent mal sur vos ordinateurs) et vers le renouvellement d’un matériel déja surpuissant. Et le dernier mouvement de Microsoft dans cette direction est authentiquement terrifiant. Microsoft a en effet annoncé récemment Microsoft Recall, qui va faire une capture de votre écran toutes les 5 secondes, puis en extraire le texte pour alimenter un générateur stochastique afin de mieux vous aider. Alors je vois bien dans l’article des numériques les précautions habituelles

Recall ne réalise en outre pas de snapshots de certains contenus, comme les sessions de navigation privée sur Microsoft Edge, ou ceux dotés de DRM. Les éléments sensibles affichés en clair comme les mots de passe ou les numéros de compte bancaire ne seront en revanche pas masqués dans les snapshots.

Mais si la navigation privée d’Edge est protégée, est-ce le cas de celle de Chrome ou de Firefox ? Et imaginez voir défiler toute votre utilisation de votre ordinateur depuis … toujours. N’y a-t-il rien qui vous gênera là-dedans ? Je peux vous dire de façon certaine qu’un tel historique me gênera pour tout un tas de raisons (ayant principalement au fait qu’en tant qu’adulte, je me sens capable d’aller sur des sites interdits aux mineurs).

Et c’est pour moi ce mouvement vers toujours moins d’intimité, vers toujours plus de partage de mes informations, qui marque cette phase terminale. Cet historique, réputé rester sur ma machine, sera forcément exfiltré à un moment donné (sans parler d’un usage directement sur la machine par des acteurs malveillants) et sera utilisé pour me profiler, ou pour me nuire.

Et si le capitalisme de la donnée personnelle allait dans le bon sens, ça se verrait : on me proposerait de meilleurs divertissements, de meilleurs produits. Au lieu de ça, les algorithmes de recommandation me proposent soit des éléments que j’ai déjà acheté (typiquement Amazon), soit des éléments appelant mes plus bas instincts (typiquement Youtube). Et franchement, on parle d’entreprises qui ont largement le moyen de faire les choses bien, mais qui vont choisir sciement la merdification du monde au nom de profits toujours plus grands. Comme le disait quelqu’un sur Mastodon, le schéma de croissance infini dans un monde fini, c’est celui de la cellule cancéreuse.

Que faire pour éviter ça ?

Evidement, il faudrait que le pouvoir politique s’empare de ce sujet. Et ça pourrait arriver, au rythme politique (donc moins long que le rythme des entreprises). En attendant, il est temps de faire évoluer certains de mes principes d’usage et de passer à Linux. J’avais déja fait une expérience en ce sens, mais ça avait capoté (essentiellement à cause de périphériques uniquement compatible avec Windows ou MacOS). En y réfléchissant bien, je pense qu’en me débrouillant bien avec une machine virtuelle, je pourrais éviter d’être surveillé, sauf lorsque je choisis de l’être.

Toutefois, je pense qu’il faut cette fois-ci aller plus loin et ne plus être le cas exotique qui utilise Linux dans un environnement Windows, mais être plus évangéliste en poussant ma famille dans cette direction.

Et puis, sur le sujet plus général des générateurs stochastiques, je pense qu’il est temps d’agir de façon mature et de reconnaître la pollution et le gâchis pour ce qu’ils sont, et d’expliquer aux gens qui utilisent ces générateurs stochastiques qu’ils se font l’égal des pires usagers de jet privés, et augmentent considérablement leur empreinte carbone pour raconter des bêtises.

Concevoir un site comme celui-ci avec WordPress.com
Commencer