Du nécessaire débat sur la réduction du labeur humain

Sentiment étrange que de voir une corrélation entre le prolongement de l’état d’urgence en France, et la présentation d’un avant-projet de loi de réforme du code du travail quelques jours plus tard. Entre d’un côté l’interdiction possible de manifestations publiques même pacifiques, et de l’autre un texte au contenu proprement hallucinant, porté par une ministre déjà écornée dans « l’opinion publique » par sa méconnaissance du nombre de renouvellements possibles d’un contrat à durée déterminée.

Mais passons. Je laisse à mes confrères et consœurs blogeurses le soin d’entrer dans les détails de cet avant-projet de loi travail, expliquant en quoi il s’agit d’un recul des droits sociaux, un renforcement de la précarité des classes pauvres et moyennes, un suicidaire message politique, et surtout un non-sens économique même dans les modèles du XXe siècle. Et ce d’autant plus que je n’aurais pas à en subir les conséquences directes, mes dépendances financières étant peu rattachées à la santé commerciale et industrielle du pays. Je tenais à prendre de la hauteur, avoir une vue d’ensemble du présent, et pouvoir regarder vers les futurs possibles.

L’évolution technologique peut être motivée par deux grands objectifs, à des proportions variables: l’intérêt économique, et l’intérêt humain. Le capitalisme est souvent associé exclusivement (à tord) au progrès technologique, plaçant l’intérêt humain comme étant la conséquence de l’intérêt économique. On peut parfois voir de manière très explicite cette conception des choses, par exemple lorsqu’un producteur de disques affirme que sans vente de musique, les artistes ne pourraient pas en vivre et donc qu’il n’y aurait pas d’artistes. Mais c’est souvent ce producteur de disque là qui refuserait fermement les concepts comme les licences Creative Commons, alors que celles-ci renforcent les pouvoirs des artistes tout en donnant des libertés et droits au public.

Nous vivons une époque formidable. Car à défaut d’être joyeuse, elle nous amène à penser, à réfléchir, à remettre en question, à réinventer. Sous l’impulsion d’entreprises privées souvent, mais pas que. Régulièrement, je vois apparaitre ici une étude sur la proportion d’emplois qui seraient assurés par des robots, là une actualité sur les progrès réalisés par les concepteurs de voitures sans chauffeurs ou de drones de livraison. Le progrès technologique est exponentiel, au-delà d’une courbe suivant la loi de Moore, posant des défis bien plus difficiles et complexes qu’une simple mission habitée sur la planète Mars. Car c’est de modèles économiques et sociaux qu’il s’agit, touchant 8 milliards de créatures individuellement avides.

Je souriais récemment encore du conflit opposant l’entreprise Uber et ses chauffeurs VTC à l’entreprise G7 et ses taxis parisiens. L’entreprise Uber ne se développe pas bien du tout au Japon, vous savez pourquoi ? Parce que la clientèle est satisfaite du service des taxis pré-existant. Il n’y a donc pas de « rupture », pas de progrès sensible possible dans l’immédiat. Tandis qu’à Paris… je pourrais consacrer un article entier sur le nombre et la variété des critiques communément adressées aux taxis. Mais il ne faut surtout pas perdre de vue qu’Uber gère ses finances exactement comme Google, Amazon, etc: dégager une rentabilité maximale au plus vite, et réinvestir un maximum des bénéfices. Ainsi, l’entreprise paye peu d’impôts et peut développer de nouveaux produits. Un concept économique qui semble mieux marcher que le « modèle français » où pour développer un produit précis, une entreprise est choisie et touche des financements publics. Oui je pense à toi, feu « Cloud Souverain ». Toujours est-il qu’Uber investit tout ce qu’il peut dans la conception de voitures sans chauffeur, et bien qu’ils communiquent peu dessus (contrairement à Google), je pense vraiment qu’ils peuvent réussir à mettre au point un produit très fonctionnel et appuyer la modification de la législation pour permettre son usage, mieux que ce que pourrait faire Google ou Tesla ou Toyota. Ou plutôt: les uns la conception de la voiture, les autre la conception du logiciel. IBM et Microsoft. Une recette qui a déjà marché par le passé, pour un produit que le grand public attend impatiemment.

Ce matin, j’ai eu droit à une énième déception causée par La Poste. Et vous n’êtes épargnés de lire de lourdes injures publiques envers cette société que parce qu’ils effectuent, à l’heure actuelle, des essais de livraison par drone. Alors je voyais plus tôt ce jeune galérant sur son vélo jaune chargé de sacoches pleines de courriers non électroniques tandis qu’il montait une côte, et je me suis dit: « encore un petit boulot bientôt remplacé par des drones, capables de vous livrer courriers et colis à toute heure, directement chez vous, en moins de 10 minutes, à la demande de l’utilisateur ». Et puis Amazon qui conçoit aussi des drones et s’intéresse à tout ce qui est alimentaire, je me dis que livreur de pizzas est aussi un petit boulot appelé à disparaitre. Peut-être même que des géants tels McDonalds se retrouveraient avec des pieds d’argile…

Je regarde autour de moi, et je peine à trouver des boulots qui ne pourraient pas être assurés aussi bien voire mieux par des robots et l’IA. Même ce qui est artistique. Même ce qui est médical. Même ce qui est sexuel. Même ce qui est politique. Même ce qui est juridique. Même le présent blog pourrait être rédigé par une IA, reposant sur un réseau neuronal ayant analysé mes opinions passées voire la structure-même de mon cerveau afin d’en imiter et surpasser ma pensée. Tournis.

La logique du capitalisme repose sur la réduction des coûts. Les entreprises peuvent remplacer les employés humains par des employés d’IA, et elles vont le faire, massivement, très bientôt. À court terme, voici l’équation envisageable:

  1. le produit est crée, avec des coûts minimisés grâce à la robotique
  2. le produit est vendu très peu cher au grand public
  3. le grand public dépend financièrement d’un revenu universel réparti équitablement
  4. le revenu universel est alimenté par une taxe
  5. la taxe s’applique sur les revenus (et non les bénéfices) générés par l’entreprise faisant travailler des robots

Voici les éléments qui vont forcer l’application de ce genre de modèle:

  • la monnaie d’Etat est inflationnaire
  • par déliquescence de l’ancien modèle économique, le grand public s’appauvrit
  • pour répondre à cet appauvrissement et pour éviter émeutes et insurrections, les prix sont baissés
  • le creusement des inégalités va forcer à l’instauration d’un revenu universel afin de maintenir la paix sociale
  • les entreprises s’équipent de robots
  • les entreprises délaissent les emplois à durée indéterminée, exigeant même des candidats qu’ils « se vendent » exactement comme un commercial présenterait son produit

L’inconnue là dedans, c’est la réaction de la population. En effet, « papy boom » oblige, de nombreuses personnes vont atteindre bientôt l’âge de la retraite. Or, il y aura (et il y a déjà) bien trop peu d’employés (et donc de cotisants) pour maintenir les caisses d’assurance retraite, et le renflouement par un Etat déjà déstabilisé par la baisse des impôts (notamment sur le revenu, décroissant) et des taxes (notamment la TVA, alors que les prix baissent). Pire: l’espérance de vie étant croissante et progrès médical aidant (cellules souches, tout ça), un papy-boomer peut raisonnablement s’attendre à passer la moitié de sa vie à la retraite. Le modèle actuel est catastrophique. Or, et c’est là que ça va faire mal:

  • comment imposer un revenu de base universel alors que les papy-boomers, majoritaires dans la population, ont dû en chier durant 40 ans pour toucher une somme inférieure en pension retraite ?!

Oui, la transition sera ressentie comme étant injuste envers eux. Malheureusement je ne vois pas beaucoup d’autres alternatives plus acceptables. Je vous laisse imaginer la conséquence d’une saisie arbitraire de tous les livrets d’épargne, par exemple, alors que les papy-boomers sont « assis dessus » en vue d’en faire un héritage pour leurs descendants, alors que l’héritage est un patrimoine très inéquitable. Or celles et ceux qui ont les livrets les mieux garnis sont aussi ceux qui touchent le plus de pension retraite, donc c’est peut-être par cette piste-là que le revenu universel de base serait accepté.

Quid du labeur humain donc, remplacé avantageusement par des robots ? Risque t-on de se retrouver dans une société fainéante et incompétente, dépendante des robots, gouvernée par les robots ? Question complexe.

Que les humains vont soudainement ne plus rien faire après que les robots soient capables de s’auto-améliorer, j’y crois pas un seul instant: les humains ne supportent pas l’ennui. À divers degrés, les humains ressentent le besoin d’apprendre, de découvrir, de créer notamment de l’art. N’étant plus enchainés au besoin économique, je prophétise que les humains auront le temps et l’envie d’apprendre, toujours davantage, et la robotique sera là pour développer toujours de nouvelles technologies qu’on pourra admirer et apprendre au quotidien. Ce qu’on y perdrait ? Disparition des prix Nobel, car plus d’humains à récompenser. À moins que le prix Nobel pourra récompenser des algorithmes, féliciter des robots. La profusion de connaissances et technologies sera telle que les humains vont se spécialiser d’eux-même par préférence personnelle, et donc l’humanité sera plus compétente que jamais, capable de restaurer toute son infrastructure en très peu de temps suite à un vent solaire ayant fait griller tous les robots par exemple, exactement comme une fourmilière qui répare les dégâts avec une efficacité déconcertante quand un enfant humain donne un coup de pied dedans.

Les humains, gouvernés par des robots ? Ne rigolez pas, on en a eu très récemment un prémisse en la personne de Jean-Luc Mélenchon, utilisateur et promoteur de NationBuilder. Si NationBuilder est à peine une IA d’assistance aux politiciens en campagne, l’idée d’un gouvernement entièrement IA est plausible… voire souhaitable. J’en ferais presque un slogan: imperium ex silicium.

Est-ce que notre génération saura relever ce défi ? Humains, surprenez-moi !

Sauvegardes incrémentielles avec Attic Deduplicating Archiver

Attic est un programme Python développé par Jonas Borgström. Il permet de réaliser des sauvegardes incrémentielles, compressées, chiffrées et morcelées. Concrètement ça se passe ainsi:

  1. une première sauvegarde complète
  2. la seconde sauvegarde ne contient que les fichiers changés depuis la sauvegarde complète
  3. la troisième sauvegarde ne contient que les fichiers changés depuis la seconde
  4. la sauvegarde N ne contient que les fichiers changés depuis la sauvegarde N-1

Lors du processus de restauration, on peut choisir quelle sauvegarde restaurer. Un fichier a été effacé par erreur jeudi, la sauvegarde a lieu tous les vendredis, et on est samedi ? Pas de souci: on peut récupérer le fichier depuis la sauvegarde du vendredi de la semaine précédente.

Une sauvegarde, on en a quasiment jamais besoin. Mais c’est quand on en a besoin qu’on enrage de ne pas avoir fait de sauvegarde. Heureusement pour moi j’utilise différentes méthodes de sauvegarde afin de me donner une redondance double, je n’ai eu à faire appel à Attic qu’une seule fois, précisément pour une question de fichier effacé 3 semaines avant (sachant que mes sauvegardes locales sont des anti-hardware-crash hebdomadaires).

Mon cas

Dans ma stratégie actuelle, Attic a le rôle suivant:

/home → Attic → disque dur secondaire → Attic → DD sauvegarde 1 → DD sauvegarde 2
···································  → hubiC
···································· → Mega

Les dossiers utilisateur me sont en effet absolument précieux, il me les faut donc décompressés sur mes 2 disques durs externes de sauvegarde locale et chiffrés sur le DD secondaire et 2 services de stockage en cloud différents (pour pallier au risque d’arrêt du cloud).

Le détail sur les sauvegardes

Attic traite les données et les stocke dans un dépôt (repository). Ça peut être un dossier local, ou distant (avec sshfs, ou de Attic à Attic via ssh). Attic y stocke 3 fichiers importants:

  • config (qui contient les paramètres du dépôt)
  • hints.X
  • index.X
  • (et un README, osef)

X étant un chiffre que je devine être le nombre de morceaux traités. hints et index sont des blobs binaires sans doute chiffrés. Il s’agit ici des fichiers d’indexation des sauvegardes, Attic les inclut dans le dépôt ce qui est un bon procédé (contrairement à Duplicity qui les stockait dans .cache, ce qui provoque beaucoup de drames car sans ces index les sauvegardes sont difficilement exploitables)

Et puis il y a un dossier data, un/des sous-dossiers, et là dedans les morceaux des sauvegardes, avec comme nom des chiffres. Blobs binaires, de 5 Mo par défaut.

Usage de base

La documentation de Attic est très complète, sauf que.. en anglais seulement. Concrètement les commandes:

  • init: une seule fois, pour initialiser la config du dépôt (le paramètre –encryption permet de choisir le chiffrement: « none » pour aucun, « passphrase » pour une phrase de passe, « keyfile » pour un fichier-clé)
  • create: à chaque sauvegarde
  • extract: en cas de restauration
  • check: de temps en temps (l’argument –repair permet de corriger de petits soucis, voir après)
  • delete: occasionnellement, pour supprimer un point de sauvegarde (je déconseille)
  • list: si besoin, permet de lister les points de sauvegarde dispo, et leur contenu
  • prune: régulièrement, supprime les points de sauvegarde anciens
  • info: si besoin, affiche quelques stats sur le dépôt
  • mount: en cas de restauration, permet de monter un point de sauvegarde et ainsi naviguer dans l’arborescence des dossiers pour trouver des fichiers précis
  • change-passphrase: occasionnellement, si vous êtes parano

Quelques recommandations et incidents

Si vous envoyez vos sauvegardes sur un/des services externes, il est indispensable de les chiffrer. Pensez-y avant car cela est défini à l’étape d’initialisation du dépôt. Attic chiffre en AES-256 donc si vous avez une phrase de passe solide (20 caractères ou plus) ou un fichier-clé qui ne risque pas la corruption, vous êtes tranquille.

Les noms des points de sauvegarde: je vous recommande fortement d’indiquer la date.

Le dossier « data » et son contenu ne doivent pas être modifiés par d’autres programmes que Attic. Exemple: j’ai mentionné précédemment que j’utilise Mega, via le logiciel MegaSync (qui fait une synchro à double sens). Et bien puisque Attic prune (supprime) les points de sauvegarde anciens alors que MegaSync n’est pas lancé, ce dernier va au lancement suivant retélécharger les fichiers des points de sauvegardes supprimés ! Attic vous signalera une corruption du dépôt. Heureusement c’est facilement corrigé avec check –repair, Attic supprime les fichiers en trop et nettoie. Par rapport à ça, j’ai inclus dans mon script de sauvegarde un contrôle bloquant: tant que MegaSync n’est pas lancé et prêt à synchroniser les modifications qui seront apportées par Attic, Attic n’est pas exécuté.

Le chiffrement: l’utilisation d’un fichier-clé peut être dangereuse, car ce fichier doit impérativement ne jamais être altéré du moindre bit.. et si ce fichier est nommé « chiffrement-attic » ou autre truc explicite, n’importe qui ayant accès au PC devinera à quoi il sert et pourra accéder aux sauvegardes. C’est pourquoi je préfère les phrases de passe. Cependant j’automatise cela au sein du script avec la commande export ATTIC_PASSPHRASE, donc le script lui-même devient le point faible.

Mon exemple de script de sauvegarde

Il est exécuté par un script-maitre appelé par crontab, et procède tous les 6 jours.

#!/bin/bash
# restore: attic extract $REPOSITORY::(date)
# list: attic list $REPOSITORY(::date)
locker='~/Bureau/attic_cron.lock'
locker1='~/Bureau/please_start_megasync.lock'
locker2='~/Bureau/attic_working.lock'
timermaxage="518400"
sourcefolder='~/'
ATTIC_PASSPHRASE="Entrer ici une phrase de passe solide"
export ATTIC_PASSPHRASE
REPOSITORY='/tmp/home.attic'
timer="$REPOSITORY/timer"
curdate=$(date +%s)
if [ -f $timer ]; then
lastexec=$(stat -c %Y $timer)
echo "timer trouvé, lastexec: $lastexec"
else
lastexec="0"
echo "timer non trouvé"
fi
calcdiff=$(($curdate-$lastexec))
if [ -f $locker ]
then exit
else
touch "$locker"
if [ $calcdiff -gt $timermaxage ]; then
touch "$locker1"
ps ax | grep -v grep | grep megasync > /dev/null
while [ $? != 0 ]; do
sleep 1
ps ax | grep -v grep | grep megasync > /dev/null
done
rm "$locker1"
sleep 13 # on laisse un peu de temps pour connexion MegaSync
touch "$locker2"
attic create --stats $REPOSITORY::`date +%Y%m%d` $sourcefolder
attic prune -v $REPOSITORY --keep-daily=4
rm "$locker2"
touch "$timer"
fi
rm "$locker"
fi

Si vous n’utilisez pas MegaSync, vous pouvez zapper tout ce qui le concerne. Le timer et les verrous (locks) aussi si vous exécutez le script manuellement. Le timer de 518400 secondes ça correspond à 6 jours (le délai entre 2 points de sauvegarde).

Pour ce qui est d’Attic, il crée des points de sauvegarde nommés par exemple « 20150809 ». Avec la commande « attic list » il affiche pour chaque point de sauvegarde la date et l’heure précise, mais bon. Si les noms sont cohérents et prévisibles, faire des trucs comme l’extraction automatisée ça devient plus facile (ce qui se passe chez moi, la sauvegarde la plus récente (attic list $REPOSITORY | tail -n1 | head -c8) étant extraite vers mes disques durs externes  -au passage ça teste donc l’intégrité de la sauvegarde)

« attic prune » avec comme paramètre –keep-daily=4. J’ai besoin d’expliquer ? Cette commande supprime tous les points de sauvegarde précédents SAUF les 4 plus récents. Ce qui dans mon cas me donne une marge jusqu’à 4*6 = 24 jours d’historique, ça me convient.

Adaptez à votre sauce !