S’amuser avec une machine virtuelle dans le cloud

Crédit image Sam Johnston (1)

Je suis un gros consommateur des outils Google : le moteur de
recherche, la messagerie, le drive, le calendrier, etc. C’est donc assez
naturellement que je me suis retrouvé à une présentation des services
proposés par la plateforme Google Cloud : cloud.google.com

Je précise que ce billet n’est malheureusement pas sponsorisé.

J’ai
découvert que l’on pouvait faire fonctionner gratuitement une (petite) machine
virtuelle dans le cloud Google. Ce billet s’adresse donc
aux personnes souhaitant découvrir le monde des machines virtuelles
hébergées sur un datacenter situé quelque part dans le monde.

Avertissements
: Philosophiquement, j’aime tout le monde : j’utilise Windows
quotidiennement, ainsi que plusieurs distributions GNU/Linux Mint, j’ai
un
compte Facebook personnel, j’aime l’association Framasoft (y compris son initiative de dégooglisation d’internet), j’utilise Twitter, j’aime Mastodon,
j’essaye de sensibiliser mon entourage et mes lecteurs à la protection
de leur vie privée, tout en mettant mes connaissances au service de la
justice et des enquêteurs, je mange de la viande et je roule en vélo
pour mon bien être et celui de la planète. Vous l’avez compris, je suis
plein de contradictions, que j’assume plus ou moins. J’évolue lentement
mais sûrement. Je reste ouvert à toutes les discussions, je teste tous
les environnements, les hébergeurs, les différentes solutions et outils.
Et je garde ce que je trouve pratique par rapport à mes usages. Je ne suis pas sponsorisé par Google, je ne travaille pas pour Google
(Larry, if you’re reading me…), je ne suis pas responsable des
manipulations que vous allez faire chez Google, ni du coût que cela
pourrait entraîner pour votre carte bancaire. Si vous ne comprenez pas
ce que je présente comme concepts ou comme commandes, il vaut mieux
rester spectateur et ne toucher à rien.

Prérequis : Vous devez disposer d’un compte Google, et accepter de
confier le numéro de votre carte bancaire à Google, qui s’engage à ne
pas la débiter si vous restez dans les limites indiquées lors de l’essai gratuit (bien lire les conditions, pas le droit de miner des cryptomonnaies…).

Démarrage :

– Connectez-vous à votre compte Google.

– Rendez vous sur https://cloud.google.com et cliquez sur « essai gratuit ».

– Remplissez les informations demandées, en lisant attentivement les conditions.

Je vous propose de suivre le didacticiel « Essayer Compute Engine », en créant une instance ayant les caractéristiques suivantes :

– Zone aux États-Unis (datacenter us-east* par exemple)

– Type de machine : micro (1 vCPU partagé) avec 0.6 Go de mémoire

– Disque de démarrage : Debian GNU/Linux 9 à 30 Go (cliquez sur Modifier pour augmenter la taille du disque).

Ces caractéristiques correspondent, au moment où j’écris ce billet, aux conditions d’une machine gratuite (cf https://cloud.google.com/free/ section Google Compute Engine) :

– 1 instance f1-micro par mois (aux États-Unis uniquement, excepté en Virginie du Nord)

– 30 Go de stockage HDD par mois, 5 Go de stockage d’instantanés par mois

– 1 Go de sorties réseau par mois, de l’Amérique du Nord vers toutes les autres régions (sauf l’Australie et la Chine)

Attention de bien rester dans ces conditions (ou de vérifier qu’elles sont toujours valables), sinon Google facturera des frais.

Le menu principal de Google Cloud Platform est situé en haut à gauche (icone avec 3 barres horizontales).

Dans le sous menu « Réseau VPC / Règles de pare-feu », vérifiez et adaptez vos règles d’accès en fonction de vos besoins.

Votre machine est accessible dans le sous menu « Compute Engine / Instances de VM ». Vous pouvez ouvrir un terminal par l’onglet SSH de votre instance (par exemple « Ouvrir dans la fenêtre du navigateur »). Vous êtes alors connectés avec votre login Google à une machine virtuelle fonctionnant sous Debian. Votre compte peut utiliser la commande sudo.

Du fait des limitations mémoires de cette configuration gratuite, je vous recommande de commencer par créer un fichier de swap (surtout si vous installez ensuite un environnement graphique) :

$ free -m

$ sudo fallocate -l 4096m /file.swap

$ sudo chmod 600 /file.swap

$ sudo mkswap /file.swap

$ sudo swapon /file.swap

$ free -m

Si la dernière commande montre que le fichier swap est bien pris en compte, ajoutez la ligne suivante à la fin de votre fichier /etc/fstab :

/file.swap none swap sw 0 0

et redémarrez l’instance.

Une mise à jour des paquets Debian me semble ensuite être un bon début :

$ sudo apt-get update

$ sudo apt-get upgrade

Personnellement, j’ai choisi d’installer l’environnement graphique LXDE :

$ sudo apt-get install task-lxde-desktop

Rem : Curieusement, pour moi ça plante à chaque fois à « Setting up dbus… », ce qui m’oblige à redémarrer l’instance, m’y reconnecter en ssh, puis à lancer la commande :

$ sudo dpkg –configure -a

Puis l’accès distant xrdp :

$ sudo apt-get install xrdp

$ sudo apt-get install tigervnc-standalone-server

$ sudo adduser zythom

Ce qui permet de se connecter à distance depuis un poste Windows avec le compte « zythom » sur l’adresse IP que vous trouverez affichée dans votre interface Google Cloud Platform près de votre instance. Dans la mire xrdp, sélectionnez le choix de session Xvnc.

Gardez un œil sur la facturation, et amusez-vous bien !

Pour ma part, je vais aller regarder un peu le sous menu TPU Cloud et faire du Machine Learning avec TensorFlow… La carte bancaire va chauffer 😉

—————————————-

(1) Crédit image : Sam Johnston — modification of the Wikipedia file, Cloud
computing.svg, created by Sam Johnston using OmniGroup’s OmniGraffle and
Inkscape (includes Computer.svg by Sasa Stefanovic), CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=21576051

Wishlist 2018

Vous le savez, mon père ne va pas bien (lire « le miracle du cerveau« ) et je suis auprès de lui le plus souvent possible. Il a une maladie neurodégénérative qui le fait décliner par à-coup, et c’est très dur, surtout pour ma mère qui est auprès de lui tous les jours, mais aussi pour ma sœur et moi. Nous découvrons la misère des EHPAD, nous subissons les incohérences des décisions des soignants, nous nageons dans les méandres administratives d’un univers étranger.

Côté boulot, la numérisation de toutes les activités de l’entreprise m’amène à basculer d’un mode « best effort » à un mode « obligation de résultats », mais sans que les moyens humains ne suivent en conséquence. Cela rend la pression très difficile à supporter, avec en plus le sentiment que tout le monde tire sur l’ambulancier. Je lance et je m’implique à fond dans beaucoup de projets informatiques importants, mais la situation est telle que je cherche également un autre poste. Si vous entendez parler d’un besoin de DSI dans une PME qui cherche un homme à tout faire, n’hésitez pas à m’en parler via ma page contact. Je suis mobile sur toute la France, y compris Paris. Je suis un service informatique et un service technique à moi tout seul…

Concernant les expertises, c’est de plus en plus difficile. Techniquement les défis sont de plus en plus ardus, et l’institution de plus en plus exigeante. Je pense qu’il va bientôt être temps de rendre le tablier. Surtout que je ne souhaite pas devenir un expert « carte de visite », comme j’en rencontre tant.

La vie municipale se déroule plutôt bien, les différents projets numériques ayant été menés en début de mandat. Je m’en sors avec les honneurs, surtout depuis que j’ai annoncé que je ne pouvais plus m’investir autant qu’auparavant. J’arrive encore à dire ce que je peux faire et à faire ce que je dis, ce qui est pour moi l’essentiel.

Quelle est donc ma wishlist 2018 dans ces conditions ?

1) Que mon père ait une fin de vie paisible

2) Que ma mère puisse l’accompagner sereinement tout au long de cette épreuve

3) Que les points 1 et 2 se réalisent, cela suffira à mon bonheur

4) Professionnellement, je souhaite retrouver l’implication de mes 20 ans et voir briller les yeux de mes collègues. Peut-être dans une nouvelle entreprise, avec un nouveau projet.

5) Publier le tome 7 des billets du blog

6) Publier à nouveau des bêtises sur ce blog

7) Renouer avec le bonheur

Chère lectrice et cher lecteur, je vous souhaite le meilleur pour 2018.

Merci également à tous ceux qui m’envoient des petits mots d’encouragements, que 1000 pétales de roses soient déposés autour de vos claviers.

2018 sera meilleure que 2017 et moins bonne que 2019.

Plus qu’hier et moins que demain.

💖

Johnny Rockfort – Zythom (NA 2018)

Sans fil et sans filet

TL;DR : Si j’ai un conseil à donner aux professions libérales et aux indépendants, c’est de couper le réseau wifi de leur cabinet professionnel rapidement.

C’est toujours un peu casse-gueule pour moi de faire un billet sur la sécurité informatique. Alors je vais commencer par une citation :

« La sécurité est un échec car personne, quel que soit son niveau de
compétences et l’énergie investie dans l’administration de ses systèmes,
ne peut prétendre être invulnérable.
 »

Newsoft La preuve que la sécurité est un échec

Même les meilleurs se font pirater. Croire être en sécurité derrière ses barrières informatiques est une illusion.

Une fois qu’on a bien compris cela, il faut minimiser l’impact d’un piratage (qui aura lieu un jour) : faire des sauvegardes, réfléchir aux conséquences d’un piratage, faire de la veille, définir un niveau de sécurité et investir suffisamment, etc. Il faut limiter autant que faire se peut l’impact d’un piratage et la surface d’attaque.

La sécurité informatique est une discipline complexe de l’informatique, car elle nécessite de connaître et comprendre un très grand nombre de mécanismes dans la plupart des branches de l’informatique. En tant qu’informaticien « généraliste », je suis toujours stupéfait par le niveau des conférences sur la sécurité auxquelles j’assiste (c’est une manière détournée de dire que je suis nul).

Alors, quand j’ai appris que les réseaux wifi sécurisés en WPA2 (meilleure sécurisation disponible au moment de l’écriture de ce billet) étaient compromis par la technique de « Key reinstallation attacks » (KRACK), j’ai tout de suite éteint toutes les bornes wifi de la maison, par précaution.

Et bien sur, je n’ai eu de cesse depuis de chercher à les rallumer. Parce que le sans fil, c’est quand même pratique…

J’ai fait un petit audit interne du réseau familial : l’étage des enfants est uniquement en wifi (pas de prises RJ45), tous nos téléphones sont souvent connectés au wifi (mauvaise couverture 3G/4G, sauf au grenier) et nos vieilles tablettes ne fonctionnent qu’en wifi. Tous les ordinateurs fixes sur rez-de-chaussée sont en filaire (bureau pro de mon épouse, mon bureau d’expertise, NAS, serveur de sauvegarde, PS4, Xbox, Zotac, Raspbery Pi, etc.)

Tout ce petit monde formait jusqu’à présent un seul réseau (wifi et filaire). Je sais, c’était une erreur. Une erreur que j’ai essayé de réparer.

Une fois le wifi éteint, j’ai tiré des câbles dans les cloisons de l’étage pour que chaque pièce puisse disposer d’un câble RJ45 haut débit. Un petit switch dans le plafond, relié à l’ancien branchement RJ45 de la borne wifi de l’étage, et hop tout le monde était de nouveau branché (travail en cours, POC en place).

Le réseau familial et le réseau professionnel de la maison sont maintenant séparés par un routeur (par le premier routeur que j’avais sous la main : j’ai utilisé les ports WAN/LAN d’une ancienne borne wifi dont le wifi est désactivé). La logique d’accès est la suivante : réseau pro -> réseau familial -> accès internet. Les NAS, imprimantes et autres ressources communes sont sur le réseau familial pour être accessibles à tous.

Comme j’ai la chance d’avoir un abonnement téléphonique professionnel qui inclut une carte SIM supplémentaire avec DATA, j’avais prévu de m’en servir d’accès de secours à internet, « au cas où ». J’ai plutôt fait l’achat d’un routeur wifi 4G, et allumé un réseau wifi indépendant de la box du FAI de mon réseau filaire.

J’ai donc maintenant les deux réseaux filaires sur mon FAI principal, et un réseau wifi (indépendant des réseaux filaires) sur mon FAI de secours.

J’ai demandé aux enfants un usage « raisonnable » du wifi pour éviter d’atteindre le niveau de consommation à partir duquel le débit est bridé sur ma carte SIM de secours (donc si possible, pas de streaming vidéo sur le wifi).

Pour résumé, si vous avez une activité professionnelle « sensible » et que vous voulez quand même du wifi, je vous conseille d’investir dans un deuxième abonnement internet, pour créer un réseau séparé, dédié au wifi. Si le prix vous fait grincer des dents, dites vous que ça vous sauvera la vie quand votre FAI principal vous laissera en panne pendant un mois…

Sinon, sans fil = sans filet. Surtout si vous acceptez d’y connecter des appareils android anciens.

Enfin, c’est vous qui voyez…

PS: Ceux qui cachent leur SSID en pensant être protégés, je vous laisse regarder du côté d’airodump et scapy…

Un peu de moi

Comme beaucoup d’entre vous, je traverse en ce moment des épreuves douloureuses dans ma vie professionnelle, comme dans ma vie personnelle. Des ascenseurs émotionnels importants…

Cela m’amène à regarder derrière moi, à faire le point sur le chemin parcouru. et je déteste ça ! J’ai une phobie un peu particulière : je n’aime pas regarder les albums photos. L’idée de me souvenir d’une période passée, même heureuse, surtout heureuse, partie à jamais, me déprime. Je suis résolument tourné vers le futur. J’aime imaginer les progrès de l’avenir, les nouveautés, les inventions, relever les défis, les problèmes à venir…

Mais parfois, il faut bien regarder en arrière.

Je m’entête à tenir ce blog, qui m’a apporté beaucoup d’ennuis et d’inimitiés, mais aussi quelques belles rencontres, et quelques fiertés. Lorsque j’ai ouvert ce blog, l’univers des blogs était déjà bien installé, mais encore plein de fougue. Depuis, beaucoup de blogs que je connaissais ont fermé, ou ont évolué vers des modèles différents. Je dois aussi reconnaître que beaucoup de blogs ont ouvert et que jamais autant de monde n’a publié, lu ou échangé grâce à internet que depuis ces dernières années.

Alors pourquoi suis-je toujours là, à bloguer sur moi-même ?

J’écris sur ma vie personnelle. Ce blog est un peu un journal intime en ligne (un journal « extime »). Ma vie personnelle, en paraphrasant un peu Desproges, est intéressante, enfin surtout pour ma famille et mes amis. Surtout pour moi. Quand je vis une situation émotionnellement forte, j’ai besoin de mettre des mots dessus pour canaliser mes émotions. Mais pour éviter de submerger mes proches (qui ont déjà bien du mérite à me supporter), j’ai choisi de mettre ces mots par écrit. Et la plupart du temps, ces mots finissent par être publiés dans un billet, pour qui voudra bien les lire.

Je n’écris pas pour convaincre. J’ai d’ailleurs peu donné mon avis ici pendant les dernières élections, alors que les sujets sociétaux abordés (ou pas) me passionnent. Bien malin celui ou celle qui sait pour qui j’ai voté. Beaucoup seraient surpris, certains déçus, d’aucuns s’en foutent…

J’écris le soir, quand les enfants (ou plutôt celui qui est encore entre nos murs 😉 sont couchés et font semblant de dormir. J’écris des « rapports d’étonnement » sur des histoires que j’aimerais que mes petits enfants lisent en se disant « woua, pépère Zythom a vécu des drôles de trucs ! »… (quand j’ai dit à ma femme que ça me ferait bien rire si mes futurs petits enfants m’appelaient pépère, j’ai du la mettre en PLS…)

Quand je regarde les dernières années écoulées, voire les derniers mois, je vois un grand adolescent de 54 ans qui peine à devenir adulte. J’ai toujours les yeux qui brillent quand je commande un nouvel écran et une alim (de gamer) pour mon fils. J’aime préparer mes cours et faire le show en amphi devant les étudiants. J’ai le cœur qui s’emballe quand je reçois un scellé ou un dossier judiciaire à étudier.

Mais j’ai la nostalgie du « tout est possible » de ma jeunesse.

Quand je regarde derrière moi, je ne vois pas l’homme de 53 ans, ni celui de 52 ans ou de 51 ans. Non, je vois l’homme de 30 ans qui démarrait une nouvelle vie dans une nouvelle ville, au bras d’une jeune épousée. TOUT était possible.

Alors maintenant que j’ai bien avancé sur le chemin-dont-on-connait-la-fin, plutôt que de regarder les possibles qui ne se sont pas (encore) réalisés, ou le manque d’énergie qui m’anime pour ranger mon bureau, je préfère continuer à regarder l’avenir et imaginer des lendemains qui chantent :

– Le wifi est mort ? Vive le wifi ! Je suis en train de repenser complètement mon défunt réseau Wifi domestique (billet à venir).

– J’ai des défis professionnels à relever : faire beaucoup plus avec plus (je recrute !)

– Le deep learning revient en force ! Pourquoi ne pas essayer de comprendre et se lancer à mon niveau dans un petit coin du sujet ?

– Ce blog tourne en rond, rendons le carré ! Et si je sortais le tome 7 ?

Je m’encrasse.

J’ai besoin de faire les poussières.

De me sortir les mains des poches.

De prendre des risques.

TOUT est encore possible..

Pourvu que ça dure 😉

Bon, je vous laisse, j’ai un bureau à ranger.

Terminologie

J’ai été élevé dans l’amour de la langue française, et dans sa théurgie opératoire qu’est la dictée. Les années ont passé, et avec elles, ma maîtrise de l’orthographe et de la grammaire.

C’est pourquoi, lorsque j’ai publié ce blog sous forme de livres gratuits (sans DRM), j’ai demandé de l’aide auprès de ma mère institutrice.

Un jour, en installant un dictionnaire sous LibreOffice, j’ai vu apparaître une version « réforme de 1990 ». Je me suis renseigné (essentiellement sur cette page), et depuis le tome 2 (paru en 2012), j’essaye de tenir compte de l’évolution de la langue française.

Mais les pièges sont nombreux et il m’est souvent difficile d’éviter une cacographie, surtout en travaillant dans le domaine de l’informatique : doit-on dire « la wifi » ou « le wifi », faut-il reprendre quelqu’un qui parle de « cryptage » quand il ne parle pas de mise en crypte

Je vais prendre l’exemple qui me parle le plus : l’utilisation du mot « digital ». Dans mon souvenir, la première fois où j’ai vu ce mot mal utilisé, c’était sur une affiche publicitaire « Orange – La Révolution Digitale ». J’étais stupéfait de voir une énormité pareille s’étaler en 4×3.

J’écris ceci pour ma mémoire et celle de mes (petits)enfants. J’ai connu une époque où le mot « digital » était simplement un adjectif associé au substantif doigt (exemple : empreinte digitale). C’est également un mot anglais qui signifie : « Digital usually refers to something using digits, particularly binary digits. »

Et comme tout le monde le sait, « digits » ce sont les chiffres. Ça vient d’ailleurs du latin « digitus« , qui veut dire « doigt ».

Mais alors, « révolution digitale », ça veut dire « révolution des doigts » ?

Oui.

Mais on compte bien sur les doigts ?

Oui.

D’ailleurs les anglais utilisent le même mot « digit » pour doigt et chiffre.

Oui.

Finalement, « révolution digitale », c’est la révolution des chiffres ?

Moui.

Et aujourd’hui, les chiffres, on les manipule surtout avec des ordinateurs ?

Mmmmoui

Alors, « révolution digitale » et « révolution numérique », c’est pareil, non ?

Rrrrrhaaaaaaaa

Et donc l’univers marketing s’est emparé de l’univers numérique pour en faire un univers digital, parce que, Coco, l’angliche, ça sonne mieux. Au début, ça fait un peu mal, mais après ça glisse (tiiiitre!).

Les années ont passé, et maintenant, c’est moi qui passe pour un vieux con au boulot parce que j’ai osé faire une remarque sur le sujet à quelqu’un. Ça m’a quand même fait réfléchir : est-ce un combat qui vaille la peine d’être mené ?

J’ai pesé le pour et le contre. J’ai eu un flash sur les grammar nazis, ceux qui interviennent dans une conversation pour corriger une typo… Je me suis vu en train de rager à chaque fois que quelqu’un utilise le mot digital en lieu et place de numérique. Je me suis dit que c’était de l’énervement mal placé, qu’il fallait que je sois au dessus de ça pour me concentrer sur le contenu, plus que sur la forme.

Donc, je suis en train d’apprendre à accepter l’utilisation du mot « digital » imposée par le marketing. Il me reste à accepter « au jour d’aujourd’hui », « cryptage », « darkweb », « malgré que », « autant pour moi » et tant d’autres. Il en va de ma plasticité synaptique autant que de ma tranquillité d’esprit.

Vous pouvez réviser votre goétie et me faire part de votre désapprobation en commentaire 😉

Tu ne seras pas un hacker mon fils !

Je suis l’heureux papa de trois enfants, qui sont maintenant grands. Il est loin le temps où j’écrivais ce billet sur l’ouverture du Skyblog de ma fille

L’aînée est maintenant en cinquième année de médecine, la puînée en deuxième année d’école de commerce. Et le troisième entre cette année au lycée. J’ai donc encore un ado à la maison 🙂

J’ai essayé d’élever mes enfants de mon mieux. Je les ai accompagné à l’école, d’abord jusque devant la grille, puis lâchés une centaine de mètres avant. Je les ai encouragé lors de leurs activités sportives et culturelles. J’ai essayé de leur transmettre des valeurs.

Enfin, pour dire la vérité, j’ai surtout été l’assistant de mon épouse qui a encaissé l’essentiel de la charge mentale de l’organisation familiale… Mais bon, au moins j’ai été présent. Je le suis toujours.

Mon rôle principal est d’être le « scientifique » de la cellule familiale, en charge plus particulièrement des outils numériques : ordinateurs, sauvegardes, réseau, accès internet, messageries, imprimante partagée, scanner, stockage partagé, protection de la vie privée, sécurité, dépannage, récupération de données, wifi, DHCP, DNS non menteurs, consoles de jeux, etc.

Concernant le suivi des leçons, je suis le mauvais flic du couple (au sens de la stratégie bon/mauvais flic), celui dont on craint le levé de sourcil en cas de mauvaise note. Curieusement, aucun de mes enfants n’aime me demander de l’aide pour expliquer un point obscur du cours de maths, ou de physique, ou d’anglais, ou de science de la vie : « En fait, tu expliques trop longtemps. Nous, on veut juste la réponse au problème, toi tu nous expliques toute la théorie en vérifiant qu’on a tout compris… C’est lourd. »

Être passionné n’a pas que des avantages 😉

C’est pourquoi je me suis fait une raison depuis longtemps sur le fait qu’aucun de mes enfants ne sera passionné par ce que j’aime : l’informatique.

Pourtant, hier soir, mon fils m’a dit à table la chose suivante :

« Papa, tu peux m’expliquer la carte mère ? »

Moi: « … »

Lui: « Parce que mon copain, il m’a dit que pour être encore meilleur en jeux vidéo, il faudrait que je passe sur ordinateur plutôt que sur console, et que je démonte mon ordinateur pour le bidouiller. Tu es d’accord pour m’aider ? »

Dans ma tête, il s’est passé une sorte d’explosion nucléaire. Mon cœur s’est arrêté de battre, puis s’est emballé à 200 bpm. Mes mains sont devenues moites. J’ai vu un de mes enfants accéder au Graal, devenir le maître du monde, et régner sur les sans-dent-bleue. Enfin, la chair de ma chair allait aider HAL et le Maître Contrôle Principal à surmonter leur inhumanité pour rejoindre Andrew, l’homme de 200 ans.

J’ai croisé le regard de mon épouse qui rayonnait de bonheur pour moi.

C’est pourquoi ma réponse a jeté un froid glacial : « Non ».

Mon visage est resté fermé. Avais-je entrevu l’immensité de la tâche qui reste à accomplir pour accéder au sommet de ma discipline ? Ou le visage écrasant de l’informatique omniprésente dans nos vies plus-vraiment-privées ? Allais-je laisser mon innocent de fils participer aux débauches numériques qui s’annoncent dans tous les objets qui vont nous encercler ?

NON.

J’ai laissé quelques secondes s’écouler. Mon épouse m’a regardé avec un regard navré. Mon fils était en plein désarroi.

Je venais de réussir ma plus belle « blague de père » de la semaine.

En effet, dans ma famille, les pères ont un humour extraordinaire, mais qui ne fait rire qu’eux-même. Le coup de klaxon dévastateur devant la grille du collège. Le jeu de mots subtil devant les ami(e)s des enfants. Bref, ce qu’on appelle dans notre petit cercle, une « blague de père ».

KrkrkrkrkrKRKRKRKR

hahahahaHAHAHAHA (risus sardonicus)

ÉVIDEMMENT, c’est avec une immense fierté que je vais apprendre à mon fils à démonter son ordinateur, à l’améliorer, à le bidouiller, à le hacker.

Tu seras un hacker, mon fils !

Allez, à tantôt !

Les temps sont durs pour moi, avec comme conséquence un silence en ces lieux. L’avantage de cette situation est qu’elle m’incite à écrire beaucoup de billets, puisque c’est ma manière d’évacuer mon mal être. Je ne peux pas encore publier ces billets, tant que les cendres sont encore chaudes, mais j’espère que dans quelques mois, je sourirai de nouveau.

En attendant, je m’accroche au sourire de mon épouse, et à ceux de mes enfants. Le bonheur tient à la capacité que l’on a de savourer ces choses là.

Ma tribu et moi, nous partons trois semaines faire des randonnées autour du Saint Laurent au Canada, pour se vider la tête et s’enrichir des aventures que l’on va vivre ensemble. Je vais en profiter pour renouveler ma collection de casquettes, et essayer de retrouver ma confiance en moi.

Ce sera silence radio sur ce blog pendant tout ce temps.

Ensuite, je viendrai de nouveau raconter mes histoires.

Allô ça va bien ? Allez, à tantôt 😉

TeamVieux

Je me rends souvent compte sur les réseaux sociaux que je suis un peu à part (mais pas tout seul 😉 quand on considère le critère de l’âge. Beaucoup des personnes que je suis, sont plus jeunes que moi, et par ailleurs, beaucoup de mes amis IRL qui sont du même âge que moi ne sont pas sur les réseaux sociaux…

Je suis né en 1963.

Je fais parti de la #TeamVieux… voire #TeamTresTresVieux

Comme je n’y peux pas grand chose, je m’interroge sur ma résilience face au choc de la vieillesse sagesse. Et le constat n’est pas fameux.

J’ai beaucoup perdu en plasticité synaptique. J’ai du mal à retenir tous les éléments nouveaux lorsque j’assiste à une formation. Je suis pétri d’habitudes et de réflexes, même si je lutte contre ces ornières (voir ce billet de 2007).

La pratique de mon métier s’éloigne inexorablement de la technique (que j’aime) pour devenir plutôt un gestionnaire de ressources : la part de management augmente avec l’effectif que j’encadre, je mets en place des indicateurs qualités pour maîtriser les budgets et la croissance de l’entreprise, la part juridique de mon activité de responsable informatique augmente…

J’ai été marqué par la lecture de ce billet qui m’a fait comprendre le phénomène de perte progressive de nos capacités cognitives décrit sous le terme savant « d’agnosie de l’empan cognitif« … Et bien entendu, je me suis reconnu.

J’ai subi une petite dépression (voir le billet intitulé « la honte ») cette année et un burn-out qui m’a laissé sur les rotules, avant de réaliser qu’il fallait que je me fasse aider (d’où les indicateurs qualité pour justifier d’une embauche).

Sur Mastodon, j’ai écris « Tu sais que tu commences à être vieux quand tu n’as plus le temps de
saisir les 6 chiffres du jeton d’authentification avant qu’ils ne soient
remplacés par 6 autres… », ce qui montre à quel point je suis atteint par la décrépitude 😉

Concernant les expertises judiciaires, j’atteins presque l’âge que je critiquais quand j’ai prêté serment, à l’âge de 35 ans, il y a plus de 18 ans… J’étais jeune et plein d’entrain, je voulais proposer mes compétences à la justice, et j’étais consterné de constater que l’expert judiciaire juste au dessus de moi en âge dans mon ressort avait 30 ans de plus que moi (il a exercé jusqu’à 75 ans !). Je considérais qu’il était difficile pour une personne de 65 ans d’être encore dans le coup au niveau technique. Sans en être encore là, j’ai bien conscience du côté artisanal de mes compétences, et leurs limites (lire le billet « Artisanat de l’expertise »). J’envisage maintenant sérieusement de demander mon retrait de la liste des experts judiciaires. 18 ans, c’est déjà beaucoup.

A titre d’amusement, j’ai repris mes travaux de recherche, à peu près là où je les avais laissés en 1994 quand j’ai quitté mon poste de Maître de conférences pour me consacrer pleinement à l’enseignement, puis à la fonction support. Cela fait beaucoup de choses à rattraper, et cela occupe mes soirées à l’infini, quand je n’ai pas de réunions municipales, ni d’expertises judiciaires à faire. C’est effrayant tout ce que l’on peut oublier, en particulier dans le domaine des mathématiques…

Ce que je regrette le plus, ce n’est pas la perte de mes tablettes abdominales, ni de ma souplesse, ni de mon énergie, non. Ce que je regrette, c’est la perte de mon employabilité. J’ai une expérience, un savoir-faire, une envie d’apprendre, une envie de découvrir de nouveaux domaines, mais personne ne souhaite embaucher une personne qui a passé 50 ans. Même si j’accepte de redémarrer à zéro dans un domaine connexe (comme dans la sécurité informatique par exemple, voir ce billet sur l’ANSSI).

Pourtant, malgré la rouille de mes méninges, de mes articulations et de mes connaissances techniques, je me sens capable de mettre en place tous les aspects de l’informatique d’une start-up, d’une TPE ou d’une PME ! A moi tout seul, je peux concevoir une infrastructure correctement dimensionnée, gérer le projet de mise en place (du budget à la réception), assurer l’exploitation et le suivi, mettre en place une sécurité « raisonnable ». Idem pour les serveurs, les outils logiciels métiers, les accès à internet, la téléphonie…

Mais simplement en regardant l’âge inscrit sur mon CV ou mon profil LinkedIn, je sens que je suis écarté. C’est ce qui me blesse le plus.

Vieillir, c’est se souvenir d’une époque où l’on pouvait faire des choix. C’est se retrouver coincé sur une route sans carrefour, dont on sait que c’est une impasse et dont on connaît déjà la fin.

Parfois c’est dur…

Omnes vulnerant, ultima necat 
« Toutes blessent, la dernière tue. » Formule affichée sur les
cadrans d’horloge et les cadrans solaires en référence aux heures qui
passent.
Omnia dicta fortiora si dicta Latina 
« Un propos prend plus de force lorsqu’il est dit en latin. »

La carte graphique, CUDA et l’expert

Je me suis lancé passionnément dans le calcul parallèle (cf billet précédent). Pour cela, je me suis offert une carte graphique à un prix abordable et que je destine au calcul intensif.

Imaginez mon impatience en attendant la livraison… Le jour J arrive et me voilà en train de démonter ma machine pour y ajouter ce magnifique objet technologique.

A ce stade du récit, il me faut faire un petit rappel : je suis adepte de GNU/Linux depuis de nombreuses années. J’aime tester de nouvelles distributions, j’aime l’univers GNU/Linux, ou FreeBSD. J’ai fait ma thèse sous Domain/OS et HP-UX. J’ai bien connu la distribution Yggdrasil qui était la première sur cédérom, c’est dire si je suis vieux. A titre professionnel, j’ai d’abord choisi Yggdrasil, puis Slackware, puis Red Hat, et enfin depuis de nombreuses années, Debian. A titre privé, j’ai beaucoup aimé Gentoo, puis Ubuntu, pour maintenant utiliser Mint.

La plupart des analyses techniques que je réalise pour mes expertises judiciaires sont faites sous GNU/Linux en utilisant des logiciels en ligne de commande.

Pour autant, j’apprécie la facilité d’installation des distributions GNU/Linux actuelles : il suffit de graver un DVD ou d’utiliser une clef USB et hop, les différents éléments de votre machine sont fonctionnels (en général ;-).

J’aime beaucoup la facilité…

Les plus barbu(e)s d’entre vous se souviennent des heures passées à configurer leur serveur X pour arriver à brancher deux malheureux écrans sur la même carte graphique. C’est un peu là où je vais en (re)venir.

La semaine dernière, lorsque j’ai reçu ma nouvelle carte graphique, j’étais tout excité à l’idée de transformer mon bête ordinateur en bête de calculs parallèles. Après m’être assuré (quand même) que toutes mes données étaient correctement sauvegardées, j’ai démonté ma tour pour y insérer cette nouvelle carte graphique surpuissante.

Premier constat : la carte graphique nécessite une alimentation dédiée, avec un connecteur 8 broches… Affolé, je regarde l’intérieur de ma machine éventrée, et je constate avec joie qu’un connecteur sort de mon boitier d’alimentation avec 6 broches d’un côté et deux de l’autre qui ressemblent fort au truc nécessaire pour faire fonctionner ma carte graphique. Je branche, rien ne fume o/.

Deuxième constat : je dispose de deux emplacements PCI Express me permettant de conserver mon ancienne carte graphique utilisée par mes deux écrans.

Je branche tout ce petit monde et redémarre mon ordinateur. Magie (et travail) de la communauté open source, tout est reconnu par le système d’exploitation, les pilotes par défaut chargés et tout fonctionne parfaitement. Sauf que…

Je ne perds pas de vue mon objectif : faire massivement des calculs. J’ai donc ma carte graphique d’origine sur laquelle sont branchés mes deux écrans, et ma nouvelle carte graphique sur laquelle rien n’est branché et qui va me servir de calculateur GPU. Sauf que…

J’ai soigneusement choisi mon modèle de carte graphique pour qu’elle intègre un GPU Nvidia qui, au moment où j’écris ce billet, est admirablement programmable avec un environnement qui s’appelle CUDA. Avant de casser ma tirelire, j’avais fait quelques essais avec le vieux portable de ma fille (seul appareil de la maison muni d’une carte Nvidia). Sous GNU/Linux Mint, l’installation de l’environnement de développement CUDA se fait très simplement avec la commande « sudo apt-get install cuda ». Après quelques réglages post-installation, me voici donc en train de jouer avec les 1920 cœurs des 15 processeurs graphiques. Je suis aux anges 🙂 Sauf que…

Sous Windows, quand vous installez un nouveau composant ou un nouveau programme, il faut la plupart du temps redémarrer l’ordinateur. Ce n’est pas vrai sous GNU/Linux. J’ai donc pu m’amuser immédiatement pendant plusieurs heures avec mon nouveau jouet avant d’éteindre mon ordinateur.

Mais le lendemain, catastrophe. En démarrant ma machine, plus rien ne fonctionnait. Enfin, « plus rien » non : je n’avais plus d’interface graphique fonctionnelle. Me voici parti pour plusieurs jours de galères « à l’ancienne » pour essayer d’abord de réparer ma configuration graphique, puis pour essayer de comprendre. Comme avant, j’ai écumé les forums, j’ai cherché les tutos, les howto, les manuels correspondant à mon problème…

Pour faire court : je n’ai pas réussi à trouver d’aide.

Oui, je sais. Je suis EXPERT. Je suis EXPERIMENTE (= vieux). Mais non. Je n’ai pas réussi à faire fonctionner deux cartes graphiques (une vieille Radeon et une jeune Nvidia) dont une devait être consacrée à la gestion de mes deux écrans et l’autre à mes calculs massivement parallèles… Le serveur X Windows et les deux pilotes graphiques associés (libres ou propriétaires) ne semblent pas vouloir fonctionner ensembles après redémarrage. Pourtant j’arrive à faire fonctionner l’ensemble AVANT redémarrage…

Je me suis tapé la configuration d’un xorg.conf (fichier qui est sensé avoir disparu).

J’ai abandonné Mint pour installer Ubuntu (comme conseillé par la doc CUDA).

J’ai réussi la configuration avec une seule carte RADEON.

J’ai réussi la configuration avec la seule carte Nvidia.

MAIS je n’ai pas réussi à créer la configuration avec les deux cartes.

Après plusieurs jours de transpiration, j’en suis arrivé à la conclusion suivante : je suis NUL en configuration graphique GNU/Linux.

J’ai donc ravalé ma fierté, retiré ma nouvelle carte graphique, remis ma configuration d’origine GNU/Mint, et j’ai sorti un vieux PC de son placard. J’y ai installé un Ubuntu server tout frais. J’y ai placé ma carte graphique surpuissante. J’ai constaté l’absence d’alimentation dédiée… J’ai acheté cet adaptateur d’alimentation SATA vers carte vidéo PCI Express 8 broches. J’ai attendu trois jours pour la livraison.

Et j’ai maintenant un calculateur dédié aux calculs parallèles.

Je m’y connecte à distance en ssh. Je lui ai consacré un processus de sauvegarde dédié. Il a une place particulière dans mon bureau et dans mon cœur.

Il faut savoir reculer pour mieux avancer.

Avant je programmais un réseau de neurones qui travaillait sur 60 000 exemples d’apprentissage sur plusieurs semaines. Maintenant j’ai 60 000 réseaux de neurones identiques qui travaillent chacun en parallèle sur leur exemple d’apprentissage, en une nuit à une vitesse de folie sur 8 Go de mémoire graphique ultra rapide.

Le rêve d’un vieux chercheur 🙂

Mais cela, c’est une autre histoire.

Deep learning, BFGS, GSL, OpenMP et CUDA

Il m’arrive par moment de renouer avec les travaux de recherche de ma jeunesse : les réseaux de neurones. J’ai d’ailleurs écrit ici même quelques billets sur le sujet, dans une série non terminée.

Je tombe régulièrement sur des articles consacrés au deep learning, nouvelle terminologie à la mode remettant en scène les outils de ma jeunesse. Alors je creuse un peu plus, rebondis de publication en publication, jusqu’à retrousser les manches et ressortir mes vieux rêves.

Bien sur, le temps est passé, et de nombreuses avancées ont eu lieu. Mais si j’ai appris une chose de mes années de jeune chercheur, c’est que tout est possible pour qui s’en donne la peine. Je n’ai donc aucune honte à remettre mes habits d’étudiant et à lire toute une bibliographie sur ces sujets.

J’ai recommencé il y a quelques semaines. Une heure par ci, deux heures par là, prises sur mes soirées et mes week-ends, entre deux occupations plus sérieuses. J’ai commencé à apprendre le langage Python, surtout pour sa simplicité. Je suis loin d’en avoir fait le tour et nous nous apprivoisons doucement.

Il faut dire que j’ai enseigné pendant dix ans le langage C… Et que j’aime beaucoup son côté « proche de la machine ». Je passe donc souvent de Python au langage C, et depuis quinze jours, j’écris et je réécris un ensemble de programmes de simulation de réseaux de neurones et d’optimisation.

Il est vrai que j’ai découvert sur internet beaucoup d’outils extraordinaires, comme par exemple la bibliothèque mathématique GSL avec laquelle je joue beaucoup, en particulier avec la fonction d’optimisation multidimensionnelle gsl_multimin_fdfminimizer_vector_bfgs2 qui implémente l’un des algorithmes d’optimisation avec lequel j’ai le plus travaillé dans ma jeunesse : BFGS.

Mais rien ne vaut l’écriture soi-même d’un tel algorithme d’optimisation. Cela permet d’en comprendre les subtilités, surtout que sa mathématique reste encore à ma portée, et de l’adapter à son problème précis, le tout piloté par une classique recherche linéaire basée sur les conditions de Wolfe et Powell (attention allergiques aux maths s’abstenir ;-). Comme je n’ai pas de problème précis à régler, je joue avec un problème classique de classification de chiffres manuscrits issus de la base de donnée MNIST.

Je suis encore très loin des performances des meilleurs algorithmes, mais au moins, cela me permet de tester quelques idées.

J’ai donc délaissé provisoirement le langage Python pour écrire un programme en langage C et m’amuser avec des tableaux de pointeurs, des allocations de mémoire et du calcul de matrices de grandes tailles.

En effet, l’apprentissage supervisé d’un réseau de neurones consiste à trouver le meilleur jeu de coefficients permettant de minimiser une fonction d’erreurs. Dans le problème qui m’occupe (la reconnaissance de caractères manuscrits), les entrées sont des images 28×28 en 255 niveaux de gris. Cela fait quand même 784 entrées, plus l’entrée constante qui permet de passer d’un espace vectoriel à un espace affine, soit 785 neurones d’entrée.

Ces 785 entrée injectent les pixels dans un réseau de neurones complètement connectés (je n’aime pas les réseaux à couche cachés, j’ai toujours préféré sa généralisation complètement connectée). Le réseau possède une sortie unique, si l’on code la réponse de 0 à 9, ou dix sorties si l’on préfère un codage hypercube (par exemple chaque chiffre sera codé par 9 zéros et un 1 sur sa sortie correspondante : 7=0000000100) qui semble être la représentation privilégiée.

Un réseau typique dans mon cas sera constitué de 785 entrées, N neurones cachés et 10 neurones de sortie. Si N vaut par exemple 25, cela donne 28 025 coefficients à calculer… C’est-à-dire un vecteur gradient à 28 025 composantes et une matrice « approximation de l’inverse du Hessien » de 28 025 x 28 025 termes, soit plus de 785 millions de nombres réels double précision… Il s’agit de ne pas se tromper dans les « malloc » pour éviter les « segmentation faults » !

Je suis en train de tester une version modifiée par mes soins de l’algorithme BFGS où cette grande matrice est remplacée par N matrices plus petites.

Mes programmes sont désespéramment longs dans leurs calculs sur mon pauvre PC perso, un « vieux » i7 à 8 cœurs. Constatant qu’un seul cœur était mis à contribution, je me suis tourné avec un peu d’appréhension vers le calcul parallèle. Et j’ai découvert (ne riez pas) l’interface de programmation OpenMP : quelques lignes de directives bien placées, et hop, le programme utilise les 8 cœurs de ma machine. C’est magique !

Je commence enfin à avoir des résultats corrects avec l’apprentissage de mon réseau de 25 neurones sur ce fichu problème de reconnaissance de chiffres manuscrits.

Les semaines passent, le temps me glisse entre les doigts. J’aimerais bosser un peu la question de l’utilisation de mon GPU à travers la bibliothèque CUDA, surtout que je peux accéder au boulot à une carte NVidia Tesla (pendant quelques minutes, histoire de voir si j’arrive à programmer une multiplication matricielle). Si j’arrive à maîtriser CUDA, alors il me faudra négocier avec Mme Zythom l’achat d’une carte NVidia supportant cette technologie et accessible financièrement (parce que la NVidia Tesla K80 à 7000 euros, ça va pas être possible…)

Encore de longues soirées en perspective, à regarder évoluer les coefficients de mes petits réseaux de neurones…

Ensuite, dès que j’en aurai le courage, je réattaque TensorFlow que j’ai lâchement abandonné en attendant des tutos plus détaillés.

Si mes neurones réels ne flanchent pas d’ici là 😉