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. »

L’Orange lui va si bien

Dans le cadre professionnel, je gère un abonnement internet pour le logement du gardien de mon entreprise. Il s’agit d’une offre classique Orange pour particulier. Le quartier où je travaille devenant (enfin) une zone éligible à la fibre optique pour les particuliers, je demande l’évolution de l’abonnement Orange vers son homologue survitaminé, toujours chez le même fournisseur d’accès.

Attention, à ce stade du récit, il faut comprendre que sous la présidence de Nicolas Sarkozy, certaines des entreprises « majeures » du marché de l’accès internet se sont partagées le gâteau déploiement de la fibre jusqu’à l’habitant (FTTH). Les découpages géographiques ont fait que je suis en zone « SFR », ce qui signifie que c’est la Société Française du Radiotéléphone (SFR donc) qui investit dans des kilomètres de fibres optiques autour de mon lieu de travail. Et sur mon lieu de travail vit un gardien (dans un logement de fonction), dont je m’occupe de l’accès à internet (suivez un peu ;-).

En cliquant dans l’interface web du site Orange pour confirmer ma demande de passage à « la fibre », je ne me doutais pas de l’enchaînement qui allait suivre…

Pour faire court et ne pas vous noyer dans une masse de détails ubuesques, j’ai successivement reçu des emails d’Orange, des SMS de prises de rendez-vous avec des techniciens sous-traitants de SFR, des coups de téléphone me confirmant les SMS et l’imprécision des horaires de rendez-vous, des emails de confirmation des coups de téléphone, et des emails d’enquêtes de satisfaction client (parce que c’est important pour nos relations) alors que rien n’avançait…

Les techniciens sont pourtant venus trois fois.

A chaque fois, il s’agissait d’une équipe différente et d’une entreprise différente.

A chaque fois, ils n’avaient aucune information, ni sur le dossier, ni sur les suites de la venue de l’équipe précédente…

Le problème est pourtant simple : vu la hauteur des couloirs et la situation des chemins de câbles dans mon entreprise, il faut une NACELLE pour tirer la fibre optique jusqu’au logement du gardien.

Toutes les équipes sont venues avec des échelles, des tabourets, des outils, des tire-câbles, etc., mais pas l’équipement approprié pour travailler en hauteur. L’installation n’a donc pas eu lieu.

Les mois passent, je relance de temps en temps mon dossier par un email aux services commerciaux qui me disent qu’ils vont prendre les choses en main (mais qui ne me disent jamais où ils en sont).

Jusqu’à ce que je reçoive cette lettre d’Orange :

« Suite à la résiliation de votre offre ou option, ou à votre déménagement, […] et conformément à vos conditions contractuelles, nous vous remercions de bien vouloir restituer les équipements mis à votre disposition par Orange […].

A défaut, les frais suivants vous seront facturés : Livebox 100 euros.« 

La résiliation ? Mais quelle résiliation ?

Je transmets le courrier à ma commerciale Orange préférée (commerciale pro) qui me dit qu’elle va s’occuper du dossier…

15 jours après, je reçois un courrier de relance intitulé « Rappel : restitution des équipements mis à votre disposition par Orange« , contenant à peu près les même information, avec du gras sur la date limite de retour du matériel (quand j’écris « avec du gras », je fais allusion évidemment à la graisse en typographie).

Je commence à me demander si je ne vais pas goûter aux joies de la vie communautaire décrite par Piper Chapman

J’appelle le 3900 où je passe successivement avec succès les différentes étapes me permettant d’accéder au graal suprême : l’accès à un être humain. Un être humain du service technique. Pourquoi du service technique, je ne sais pas. J’ai juste dit « internet » à un automate qui me demandait de résumer en une phrase mon problème.

L’être humain me dit qu’il s’agit d’un problème qui ne peut être traité qu’au niveau commercial, et me passe un autre être humain du service commercial. Ils sont donc au moins deux derrière le 3900 de chez Orange, derniers humains non encore automatisés.

Je suis extrêmement poli, calme, à l’écoute et bienveillant, comme je l’apprends en formation au management chez Germe. Et il en fallait de la bienveillance pour écouter ce compagnon en humanité m’expliquer :

« Mais monsieur, c’est tout à fait normal : vous avez reçu un courrier type puisque votre dossier m’indique que SFR refusant l’installation de la fibre, dans votre cas, l’évolution vers l’offre fibre Orange ne peut se faire« .

« Mais vous allez couper l’accès internet ? »

« Non, non, votre abonnement est remis à son offre antérieur. Vous n’avez rien à faire« .

Donc, pour résumer, quelqu’un, dans l’entreprise Orange, planqué bien loin du terrain, s’est dit « c’est compliqué d’ajouter un courrier type couvrant le cas d’une annulation de demande d’évolution d’offre. On va plutôt envoyer le courrier type de retour du matériel avec menace de faire payer 100 euros, c’est pareil »…

Sachant que l’être humain que j’avais au bout du fil, bien qu’arrogant dans ses certitudes (« vous savez monsieur, c’est compliqué la fibre avec toutes les contraintes imposées par la réglementation« ), ne pouvait pas faire grand chose à part me confirmer que je n’avais rien à faire et que mon abonnement antérieur était bien maintenu malgré les deux courriers de demande de restitution du matériel (« mais non, monsieur, je ne peux pas vous le mettre par écrit, mais vous savez c’est bien consigné dans le dossier que j’ai sous les yeux« ).

Je m’attends au pire dans les jours qui viennent, concernant l’abonnement internet de mon gardien. Évidemment, si jamais Orange coupe la ligne, je lui garantis un maintien de l’accès internet via notre liaison pro.

Le plus drôle dans cette histoire, c’est que je sais qu’il y a dans mon entreprise une fibre Orange, éteinte depuis 10 ans (issue d’un marché gagné par Orange pour la région afin de relier notre école d’ingénieurs à internet). Cette fibre est toujours là. Je connais son cheminement jusqu’à la rue. Elle pourrait être utilisée pour nous relier de nouveau à internet, du moins pour relier le logement du gardien. J’ai montré cette fibre à tous les techniciens qui sont venus sur place, et j’en ai parlé à tous mes interlocuteurs de chez Orange (je n’ai jamais eu à faire à quelqu’un de chez SFR). Personne ne veut l’utiliser. Nous sommes en zone SFR, ce n’est pas le même service, nous ne sommes pas habilités à brancher cette fibre, le diamètre du câble est trop gros pour notre boîtier…)

Et pourtant l’Orange lui allait si bien.

Analyse inforensique simple avec des outils gratuits

Lors d’une discussion avec un Officier de Police Judiciaire, celui-ci me demandait comment faire une analyse de disque dur sans budget logiciel, tout en garantissant un bon niveau d’investigation.

Après avoir pris les précautions d’usage consistant à dire qu’on ne peut pas mener à bien des investigations techniques sans comprendre ce que l’on fait, je me suis dit que je pouvais faire sur ce blog une proposition (SGDZ), même si celle-ci peut éventuellement faire hurler les techniciens les plus pointus sur ces sujets (je trolle un peu aussi à ma manière).

Mon hypothèse de travail va consister à prendre le cas le plus répandu : un ordinateur sous Windows, non chiffré, avec un usage bureautique basique. L’objectif est de trouver un fichier présent sur le disque, éventuellement effacé.

1) Préserver les éléments de preuve au maximum.

Le disque de stockage de l’ordinateur ne doit pas être modifié. Or, un démarrage du système d’exploitation modifie plusieurs informations du disque, modifie des caches, procède éventuellement à des mises à jour, des connexions internet, etc. Il faut donc travailler sur une copie du disque d’origine.

2) Copier les données.

Parmi toutes les manières de procéder à la copie des données du disque de stockage, je vais présenter celle qui me semble la plus simple, même si elle n’est pas sans risque.

Les données sont aujourd’hui de plus en plus stockées sur un disque SSD, ou sur des mémoires flash plus ou moins propriétaires. Il n’est pas toujours facile de démonter le disque de stockage pour le placer sur une plate-forme adaptée, avec bloqueur d’écriture et connecteurs ad hoc.

Il est possible de démarrer l’ordinateur sur une clef USB appropriée, à condition de connaître parfaitement la procédure de démarrage sur clef USB spécifique de l’ordinateur.

Il faut donc se documenter le plus possible (sur internet) sur le modèle d’ordinateur, et sa procédure d’accès au choix du périphérique de démarrage (touche Echap, ou F1, ou F2, ou F11, ou F256, ou Suppr…).

Ma recommandation est de retirer si possible le disque de l’ordinateur et de faire des essais « à vide » pour être sur de démarrer correctement sur la clef USB.

J’utilise une clef USB de démarrage DEFT qui fonctionne pour tous les ordinateurs que j’ai rencontrés pour l’instant. Cette clef a la particularité de protéger tous les disques contre l’écriture (de manière logicielle), en plus de disposer de nombreux outils d’investigation qu’il serait trop long de présenter ici (mais qui sont très intéressant).

Une fois le démarrage sur clef USB DEFT effectué, il ne reste plus qu’à brancher un disque externe de capacité suffisante sur l’ordinateur et d’utiliser la commande dd, ou dd_rescue, ou ddrescue pour effectuer une image bit à bit du disque de stockage. Attention de bien vérifier les noms logiques des devices : il est préférable de savoir bien différencier le disque cible du disque source, surtout qu’il faudra bien passer le disque destiné à contenir l’image en lecture/écriture. Il faut comprendre ce que l’on fait.

Une fois la copie terminée, éteindre l’ordinateur et souffler un peu car le contenu du scellé est préservé (si l’ordinateur n’est pas tombé en panne JUSTE pendant ce moment là, auquel cas, il faudra faire jouer son assurance en responsabilité civile NECESSAIREMENT prise pour ce type d’activité).

3) Analyse des données de la copie.

Chacun est libre du choix de ses outils préférés (GNU/Linux, Windows, FreeBSD, etc.), mais comme la plupart des enquêteurs sont sous Windows, je recommande l’outil gratuit OSFMount qui permet de monter en lecture seule une image dd sous Windows (qui sera attribuée à un lecteur disponible, G: par exemple).

Cela permet de se promener sur le contenu (de l’image) du disque, sans modifier son contenu. Cela permet d’utiliser tous les outils de récupération de données,  tels que Recuva ou PhotoRec, ainsi que la version Windows de The Sleuth Kit (TSK).

Vous pouvez également utiliser tous les outils de la LiberKey, en particulier SearchMyFiles ou Everything.

Conclusion :

Il est possible d’utiliser des outils gratuits pour faire une analyse des données d’un support de stockage. MAIS cela ne dispense pas de SAVOIR ce que l’on fait et oblige à COMPRENDRE les concepts en jeu.

On ne s’improvise donc pas expert informatique.

Par contre, ces outils étant gratuits, ils sont faciles d’accès et permettent à une personne curieuse de s’entraîner, par exemple sur un vieux disque, et parfois de sauver une situation où la sauvegarde est un peu ancienne…

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à 😉

La parole aux femmes

How it Works

xkcd.com/385

J’ai trouvé l’idée de Kozlika très intéressante : profiter de ce 8 mars pour relayer ici des articles de blogs écrits par des femmes.

Du coup, j’ai fait le tour de mes sites favoris, et quelques recherches sur internet, sous l’angle « est-ce écrit par une femme ? ».

Il y a dans ma blogroll beaucoup de sites tenus par des femmes (vous trouverez sur le côté droit du blog, version web, tous les sites de ma blogroll). Je voudrais mettre en avant mes préférés :

De bric et de blog tenu par Veuve Tarquine

Judge Marie, tenu par… Judge Marie, juge des enfants et présidente d’audience correctionnelle

Kozeries en dilettante, par Kozlika

Oh Joy Sex Toy (NSFW), tenu par un couple, mais surtout par Erika Moen, qui m’a appris beaucoup de choses, vraiment beaucoup, sur les femmes

Et comme ce 8 mars est l’occasion d’ouvrir mon horizon, j’ai cherché et trouvé les sites suivants, que j’ai ajoutés à mon lecteur de flux RSS :

Le blog de Fatiha, « fan de Linux, open source et développement personnel » que je vous laisse découvrir.

Romy.tetue.net, « conceptrice web UX, parisienne et têtue ».

Comme une Geek, de Julie, « femme qui aime l’informatique, le hacking, les jeux vidéos, les séries TV, le high tech et l’humour ».

– Le blog de Valérie Aurora (en anglais)

Je n’ai pas trouvé de site tenu par une femme dans le domaine de la sécurité informatique, ni dans celui de l’expertise judiciaire informatique 🙁 mais j’ai certainement raté pleins de sites intéressants, donc si vous avez des sites tenus par des femmes à recommander (qui ne sont pas dans ma blogroll), n’hésitez pas à les indiquer en commentaires.

[Edit 08/03/17 10h48]

blog.linuxgrrl.com de Mairin Duffy (via @Jehane_fr)

decentsecurity.com de @SwiftOnSecurity (via @Kozlika)

Et pourtant la journée avait bien commencé

Extrait de https://salemoment.tumblr.com/
avec l’aimable autorisation de l’auteur

Je suis installé devant mon ordinateur et je commence à faire défiler les images.

Ce dimanche matin, je suis tout content de voir que la copie numérique du disque dur, commencée la veille, s’est bien déroulée. Le disque dur original est remis dans le scellé, après avoir pris les photos d’usage du numéro de série, du modèle et de la marque d’icelui.

J’ai sur mon bureau mon cahier papier sur lequel je prends toutes sortes de notes : l’heure où le gendarme m’a amené le scellé, l’heure où j’ai brisé le sceau du scellé, les diverses descriptions physiques que j’en ai fait, les photos que j’ai prises avant et après l’ouverture de l’unité centrale, l’état général de l’intérieur, l’ordre des connecteurs de branchement du disque dur, etc.

Les dernières lignes inscrites sur mon cahier concernent la fin de la prise d’image bit à bit du disque dur d’origine, l’extraction des fichiers encore présents même sous forme de traces, et l’heure de début de mes investigations sur ces fichiers.

J’ai en tête la mission que le magistrat m’a confiée : je dois lui dire si le disque dur contient des images et/ou des films de nature pédopornographique. Je dois également, à titre subsidiaire, signaler tout élément qui pourrait l’intéresser. Non seulement mes compétences techniques l’intéressent, mais aussi mes capacités divinatoires…

Je suis installé devant mon ordinateur et je commence à faire défiler les images. J’ai une sexualité « normale », j’allais dire « banale », une vie tranquille bourgeoise centrée sur l’informatique, les jeux vidéo et la science-fiction. Je mène une existence protégée des atrocités « lointaines », des meurtres, des guerres. Je travaille dans une école d’ingénieurs généralistes comme directeur informatique et technique. J’aime transmettre mes connaissances et ma passion pour l’informatique. Le pire stress que je subis est la pression que je m’inflige pour que les utilisateurs bénéficient du meilleur service possible.

Les images que je regarde sont atroces. Rien ne prépare à ce type de spectacle. Je ferme la porte de mon bureau et demande à mes enfants de ne pas me déranger. Toutes les atrocités humaines défilent sur mon écran : viol d’enfants de moins de 10 ans, actes de tortures filmés pendant les guerres de Yougoslavie, êtres humains enflammés au lance-flamme…

Je trie ces images et ces films en différentes catégories. Mon cerveau se sature de ces scènes tout en « évaluant » le degré d’atrocité. Au bout de trois heures, quelques larmes coulent sur mon visage. Je viens de penser à mes enfants.

Je note l’heure sur mon cahier avec la mention « pause ».

Je prends un temps pour moi.

Il y a des gens qui font des métiers très durs : pompiers, policiers, médecins, etc. Je lis ici ou là qu’ils s’endurcissent avec l’habitude, par force. Ils exercent leurs métiers avec passion et efficacité, malgré les drames qu’ils côtoient.

Je me rends compte que je n’arrive pas à m’endurcir. Que ma sensibilité gène mon activité d’expert judiciaire, du moins sur ce type de mission. Rien ne m’a préparé à cela, et je n’ai pas demandé à l’être. Je sais que bon nombre de confrères qui me lisent sont beaucoup plus forts que moi et arrivent à aller au delà de l’horreur pour se concentrer sur la mission.

Il y a les héros du quotidien, anonymes, qui surmontent leurs angoisses et leurs dégoûts pour le bien de la communauté. Et il y a les autres, dont je fais partie, ceux qui n’arrivent pas à s’habituer.

Je reprends l’analyse des images. L’utilisateur de l’ordinateur collectionne des images qui me terrifient. Je passe d’un cadavre décapité à une enfant au regard triste face à un sexe trop grand pour elle. Je la reconnais et j’en ai déjà parlé ici, il s’agit d’une petite fille qui revient souvent dans les collections pédopornographiques. Je l’ai surnommée Yéléna et elle hante souvent ma mémoire, parfois à des moments les plus saugrenus.

La matinée passe lentement. Je fais une pause repas avec les enfants et mon épouse. J’arrive à faire bonne figure, mais tout le monde sent que je suis un peu « en panne ». J’explique que je suis fatigué et l’excuse passe comme une lettre à la poste. Je n’ose pas parler à mon épouse de ce que je vois. Je reste vague. Elle connaît la mission sur laquelle je travaille et n’insiste pas.

Je me ré-installe devant mon ordinateur et je continue à faire défiler les images. « Décidément, je le concevais, je m’étais embarqué dans une croisade apocalyptique. On est puceau de l’Horreur comme on l’est de la volupté. » Écrivait Louis-Ferdinand Céline à propos de la guerre dans « Voyage au bout de la nuit ». Comment aurais-je pu me douter de cette horreur en devenant expert judiciaire ?

Et pourtant la journée avait bien commencé avec le succès de la copie numérique du disque dur du scellé. Elle se terminera tard dans la nuit avec le transfert sur DVD des images et des films trouvés, et l’impression de quelques « morceaux choisis » qui feront le cauchemars de la greffière, du juge d’instruction et des avocats qui auront mon rapport entre les mains.

Partager ses cauchemars n’adoucit en rien son propre fardeau.

Mi-temps

Ce billet est publié dans la catégorie « privée » et n’a aucun intérêt autre que pour mes proches (et encore ;-). Vraiment aucun intérêt, vous êtes prévenus.

Quand j’avais 7 ans, j’avais un petit rituel quotidien dont j’étais persuadé que si je le réussissais, j’allais vivre encore 100 ans : quand j’urinais, je faisais le tour de l’eau du fond de la cuvette sans toucher le bord extérieur, ni l’eau du fond, le tout sans éclabousser. Mesdames, vous avez là l’un des secrets qui peut occuper la vie des petits garçons…

Pendant toute l’année de mes 7 ans, j’ai réussi cet exploit sans faillir, à la grande joie de ma mère qui a certainement pensé que j’étais particulièrement propre, ou adroit (ou que j’urinais assis…).

Pendant toute l’année de mes 7 ans, j’ai réussi cette épreuve difficile, ce qui m’a permis de savoir, tout jeune, que j’allais vivre jusqu’à 107 ans !

Pourquoi en parler maintenant ? Et bien, pile aujourd’hui, j’ai 53,5 ans, et donc encore 53,5 années à vivre.

Je suis à la mi-temps de ma vie, avec encore plein de choses à faire 🙂

Si la tête et le corps tiennent…

Twitter en images

Pour ce billet du vendredi, je voulais faire un bilan, en images, sur les années que j’ai pu passer sur ce formidable réseau social qu’est Twitter :

Quand j’explique Twitter à mon épouse
Quand j’explique Twitter à mes parents
Quand je lis les CGU de Twitter
Quand tu essayes de twitter discrètement
Pour certains, Twitter est un village
Pour certains, Twitter est un village (bis)
Certains Twittos cherchent à rester à la pointe
Quand tu demandes de l’aide sur un sujet sensible
Quand tu veux jouer dans la cour des grands
Quand un Twittos emm… tout le monde
Quand tu commences à twitter avec ton compte tout neuf
Quand tu comprends que la vie sera dure sur Twitter
Quand tu demandes à tes étudiants d’explorer Twitter
… en toute sécurité
Quand tu veux attirer l’attention de @Maitre_Eolas
… ou celle de @MaitreMo
Quand tu résistes aux pressions
Quand ton bon goût n’est pas reconnu
Twitter permet de rencontrer des gens différents 1/2
… vraiment différents 2/2
… vraiment vraiment différents 3/2
Twitter nous donne une vision originale du monde
… même si c’est souvent un peu ça…
Quand un twittos ou une twittas drague discrètement sur Twitter
Quand un mec vaguement connu arrive dans ta TL…
… et que tu te rends compte qu’il te follow
Quand tu en fais des caisses pour attirer l’attention
Twitter est une source d’informations fiable
Au moins autant que la PQR
Sur Twitter, on discute de choses sérieuses…
… mais toujours avec une pointe de dérision
… et un peu d’humour
… même si certains sont très « premier degré »
Sur Twitter, attention à l’orthographe !
… même si certaines fautes peuvent être intentionnelles
… l’essentiel étant toujours d’être compris
… mais bon, les fautes c’est quand même pénible
Twitter peut être sexiste…
… ou pas
Bien sûr, il y a toujours des connards XXL
… des inconscients
… et des mythos
… beaucoup de mythos
… mais on y trouve aussi de belles chaînes de solidarité
Quand tu nettoies un peu ta TL
Quand tu es un peu trop prêt d’un tweetclash
Quand tu fais un DM fail sur Twitter
… et que tu t’en rends compte
Quand tu demandes si GNU/Linux a des outils de sauvegarde aussi simples que Apple
Quand tu choisis le camp des rouges…
… ou celui des bleus
Finalement, Twitter, c’est un peu ça…

Artisanat de l’expertise

Paul Vidonne, Directeur du LERTI, a diffusé dans le petit milieu de l’expertise judiciaire informatique un pavé dans la mare document qu’il m’a gentiment autorisé à publier ici (document pdf à télécharger ici).

Extrait :

Le petit monde de l’informatique légale est en ébullition à la suite de la décision du service des achats de la Direction des services judiciaires de la Chancellerie de mettre en œuvre le Rapport sur les frais de justice d’avril 2015 élaboré sous l’égide du Contrôle Général Économique et Financier (Ministère des Finances) et de l’Inspection Générale des Services Judiciaires (Ministère de la Justice).

Conçu dans l’optique de réduire les frais de Justice, ce rapport examine les secteurs des expertises informatiques, toxicologiques, de la traduction et de l’interprétariat dans le domaine pénal. La dépense représentée par cet ensemble est chiffrée à 95 millions d’euros, dont 5 tout au plus pour l’informatique.

L’informatique légale est traitée pages 15 et 16. L’objectif annoncé est celui de la mise en place de marchés publics, mais la réalisation de cet objectif se heurte immédiatement à des réserves qui tiennent à la méconnaissance de ce secteur d’activité, à l’atomisation de l’offre et à l’incertitude des gains à attendre. Dès lors, la recommandation pour ce domaine d’activité (n°4, page 16) est celle d’étudier la mise en place d’un tarif qui serait intégré au Code de procédure pénale.

Cette recommandation, qui apparaît comme une solution de repli, semble aujourd’hui abandonnée par la Direction des services judiciaires au profit du retour à l’objectif initial de la mise en place de marchés publics.

On ne peut que souscrire à cet abandon : le tarif réglementé est la pire des solutions dans ce domaine d’expertises complexes, où aucun profil-type d’expertise ne peut être réellement défini. Le tarif réglementé n’offre aucune garantie de qualité pour un prix administré donné et constitue dès lors un effet d’aubaine pour certains tandis qu’il pénalise lourdement ceux qui s’attachent à rendre des rapports de qualité ou qui sont confrontés à des expertises difficiles. Le tarif prend ainsi le risque de faire disparaître les pôles d’excellence.

Il faut donc comparer les deux seules solutions qui subsistent : celle du maintien de la situation actuelle, – éventuellement améliorée – et celle des marchés publics.

Cette analyse sera conduite à l’aide des concepts que nous offre la science économique : la situation actuelle se caractérise comme un marché de concurrence imparfaite tandis que la solution des marchés publics apparaît comme un monopsone étatique conduisant à une offre exsangue.

La suite est à lire dans le document que je vous recommande (rappel : téléchargeable ici).

Déclaration de partialité :

Paul Vidonne est professeur à l’Université Pierre Mendès France de Grenoble, où il a été nommé il y a plus de 30 ans. Parallèlement à son activité à l’université, il ouvre un cabinet d’expert en informatique. Il travaillera longtemps pour les milieux juridiques et judiciaires, et en particulier les barreaux d’avocats dont il a été le consultant de vingt-et-un d’entre eux, avant de diversifier son activité auprès des entreprises. Son cabinet se consacre à l’expertise informatique et l’établissement de la preuve informatique. Dans la ligné d’un Edmond Locard, il crée en 2004 le LERTI avec quatre autres experts judiciaires en informatique et un ancien gendarme de l’IRCGN (INL), tous convaincus que l’investigation informatique légale ou privée demandait aujourd’hui des moyens que seuls de véritables laboratoires pouvaient réunir.

Je n’ai aucun lien de travail avec Paul Vidonne, ni avec le LERTI, à part le fait que j’ai beaucoup d’admiration pour leurs compétences et leurs travaux. Cela influence nécessairement la suite de ce billet 😉

Paul Vidonne, dans son article, brosse un tableau que je trouve particulièrement juste de la situation de l’expertise judiciaire informatique française.

Extrait :

L’offre d’expertises judiciaires en informatique légale repose sur cinq ou six laboratoires, – dont trois publics – auxquels s’ajoutent quatre ou cinq dizaines d’experts privés inscrits sur les listes des cours d’appel. C’est peu et beaucoup à la fois.

Cette offre est totalement hétérogène.

Les laboratoires publics de la Gendarmerie et de la Police disposent d’équipements du plus haut niveau international, d’ingénieurs de grande compétence, de crédits relativement abondants et sont astreints à des missions de formation et de recherche qui ne leur laissent qu’un temps mesuré pour les expertises pénales. À eux tous, ils n’emploient que quelques dizaines de personnes seulement.

Les laboratoires privés sont des sociétés de type commercial qui emploient chacune moins d’une dizaine d’ingénieurs salariés ou d’experts sous contrat, disposent d’un équipement inférieur à celui des laboratoires publics – et, au demeurant, assez inégal entre eux – se consacrent en partie seulement ou en grande partie à l’expertise pénale. Ils travaillent pour des juridictions réparties dans tout l’espace national, y compris l’outre-mer. Le nombre d’expertise effectuée n’est pas rendu public, mais on peut l’estimer autour d’un ordre de grandeur d’une à deux centaines par année.

Les experts privés individuels sont dans des situations extrêmement variables, avec comme caractéristique commune d’effectuer leurs expertises en supplément d’une autre activité, comme le leur impose la loi : ils sont salariés ou cadres d’entreprises, fonctionnaires de l’enseignement ou de la recherche, retraités de la police de la gendarmerie ou de l’armée, professions libérales, auto entrepreneurs… Leur niveau de formation est très variable, leurs équipements modestes, voire quasi inexistants, leurs licences, peu nombreuses, ne sont pas toujours mises à jour, compte tenu de leur coût élevé rapporté au faible nombre d’expertises qu’ils réalisent. Pour la plupart, ils n’ont pas passé les qualifications attachées à ces licences. Certains travaillent dans les locaux ou avec les matériels de leurs employeurs. Tous n’adhèrent pas à une compagnie d’experts et certains ne sont pas assurés. Ce sont les experts dits « locaux » ou « de proximité » qui ne travaillent guère que pour leur cour d’appel. Sauf de rares exceptions, ils n’effectuent que quelques expertises par année, et, pour beaucoup, une ou deux seulement. Ceci n’empêche pas certains d’entre eux de réaliser des travaux de grande qualité.

Les prix pratiqués reflètent cette hétérogénéité. Les laboratoires publics ne sont évidemment pas gratuits. Nous ne savons pas s’il existe une comptabilité analytique qui permettrait de connaître le coût de leurs travaux, mais nous pouvons aisément conjecturer que ces prix sont largement plus élevés que ceux des laboratoires privés. L’illusion de gratuité n’affecte en effet que ceux qui méconnaissent l’existence de refacturations interministérielles ou l’existence d’un budget global de la Nation.

Les prix des laboratoires privés sont relativement homogènes et pour cause : salaires et charges sociales sont les mêmes pour toutes les entreprises.

Les prix pratiqués par des experts privés individuels sont à l’image de leur diversité, allant du simple au triple. Ils sont en général inférieurs à ceux des laboratoires privés. Un expert s’est même rendu célèbre en 2016 en annonçant qu’il effectuerait désormais ses expertises gratuitement. Effectivement, sa situation particulière le lui permet.

Vous l’aurez compris, je pense être cet expert dont parle Paul Vidonne en fin d’extrait, car il semble faire référence à ce billet où j’annonçais la gratuité de mes interventions au titre des demandes pénales (0 demande à aujourd’hui ;-).

Le découpage est très clair, et je me retrouve très bien dans la catégorie « expert local », sous catégorie « cadre d’entreprise », équipement modeste, licences opensources, travaillant chez moi, non inscrit à une compagnie d’experts de justice, assuré (très cher) à titre individuel sous le statut auto entrepreneur.

Je suis donc un artisan de l’expertise judiciaire informatique.

Et comme tous les artisans, il me faut rester lucide sur mes capacités. Je ne peux pas rivaliser avec les moyens techniques des grosses structures (étatiques ou privées). J’ai souvent parlé sur ce blog d’anecdotes d’expertise où je privilégie un élément technique particulier, alors que la majorité des expertises que je mène relève plus d’un avis sur l’état de l’art dans tel ou tel sous domaine de l’informatique. Je l’ai souvent répété, je ne suis pas un spécialiste (ni en sécurité informatique, ni en développement web, ni en programmation) mais un généraliste de l’informatique. Pour autant, à chaque mission, on me demande mon avis sur un point très précis, qui peut relever de n’importe quel sous domaine de l’informatique. Suis-je légitime pour donner cet avis ? Franchement, je pense que oui, dès lors que je travaille suffisamment la question avec les spécialistes.

Mais l’artisanat est en voie de disparition : trop cher, trop fragile, trop lent, trop petit. Ainsi va notre monde, où je suis le premier à préférer faire mes courses sur internet.

C’est en faisant ce constat, que j’ai refusé toutes les missions qui m’étaient proposées sur la téléphonie mobile, qui demande des compétences et des moyens logiciels et matériels dont je ne dispose pas et qui ne me sont pas demandés par mon employeur. Je reste donc sur le créneau informatique, informatique qui s’est répandue dans toutes les couches de la société, mais où des structures d’informatique légale plus grosses se sont implantées, et où les OPJ et les huissiers se sont formés.

Mes compétences techniques sont de moins en moins demandées.

Je vais constater (avec sérénité) la disparition de l’expertise technique locale artisanale et évoluer vers une expertise ressemblant plus à du conseil critique auprès des avocats et des magistrats. C’est un choix que j’ai fait il y a quelques années.

L’article de Paul Vidonne me montre que cette évolution est inéluctable et qu’il va falloir que je me remette encore plus en cause. N’est-ce pas le cas pour tout le monde ?

Et un jour je jetterai l’éponge.