Que retenir de "Bourne Into Oblivion" ?

#rm -rf /On m’a fait lire hier un article, « Bourne Into Oblivion« , dans lequel l’auteur explique comment ce qu’il nomme une bombe à retardement a eu des conséquences gravissimes pour le système informatique d’une société. En résumé, un script d’administration faisait le ménage après avoir terminé sa tâche grâce à un rm -rf $var1/$var2. Mais ce script s’est vu exécuté avec $var1 et $var2 non définis, et s’est donc terminé avec un rm -rf /, en root, sur un NFS (pour les non unixiens, cela signifie effacer l’intégralité des systèmes de fichiers du réseau, avec le droit de le faire). Autant dire que c’est une catastrophe sans nom pour la société, surtout lorsque l’on ajoute que c’est à ce moment que les backups se révèlent être inutilisables.

Cette histoire qui ferait froid dans le dos à tout administrateur système m’a plongé dans une réflexion, que voici, sur la liste finalement assez importante d’erreurs ayant conduit à cet accident. Le but n’est pas de critiquer, mais de voir ce qu’il est possible d’apprendre de tout cela.

Tout d’abord, il est clair que ce script était exécuté avec des privilèges bien trop importants. Il n’y a que peu de choses qui puissent justifier qu’un script doive être lancé en tant que root. Il aurait dû être lancé en tant que simple utilisateur sans privilège, éventuellement avec un compte créé spécialement dans ce but. Les opérations nécessitant réellement des droits de super utilisateur auraient dû être isolées et appelées avec un sudo ou encore disposer d’un bit suid. Pour le reste, et notamment tout ce qui s’apparente à de la lecture, des droits correctement affectés avec des groupes auraient dû suffire. D’une façon générale lancer un script en root n’est absolument pas anodin, et au delà du problème rencontré ici, se pose celui de la possibilité d’une faille de sécurité.

L’article mentionne de plus le fait d’avoir lancé un script pour le week-end, autrement dit pour une durée d’exécution a priori relativement longue. Si le fait de laisser une tâche d’administration sans surveillance est courant, le fait que ce soit en tant que root change la donne et vient aggraver, s’il était besoin, le point précédent.

La justification de l’exécution en tant que super utilisateur mise de côté, ce bout de script n’était manifestement pas assez défensif étant donné ce contexte particulièrement dangereux. Son auteur n’aurait jamais dû laisser un tel appel se faire sans un test des deux variables. Cela dit le script n’était peut-être pas prévu à l’origine pour être lancé en tant que root, ce qui amène donc à considérer comme règle qu’un code faisant ce type de manipulation doit être défensif quoi qu’il arrive, dans la mesure où l’on ne sait pas dans quelles conditions il peut-être amené à être utilisé par la suite.

On peut de plus remarquer que le fait d’utiliser un répertoire à la racine est déjà discutable. Si cette remarque peut sembler être un pinaillage purement cosmétique, on s’aperçoit que si en pratique les répertoires utilisés avaient été /tmp/$var1/$var2 ou encore /usr/src/$var1/$var2 par exemple, un tel drame ne serait pas survenu.

Pour finir sur l’aspect purement administration, ce script aurait dû être documenté. D’après l’article, l’absence de définition des variables est la conséquence du fait que l’opérateur ne savait pas qu’il y avait des opérations à effectuer au préalable. Ce point aurait donc dû être documenté. Cependant l’expérience montre que documenter n’évite pas les accident, et reste donc insuffisant (d’ailleurs le script était peut-être même déjà documenté) : j’ai l’exemple d’un script qui servait à envoyer un mail informatif à une base d’utilisateurs, et qui portait le nom pour le moins clair de spam.sh. Il avait pourtant fallu commenter la commande essentielle du script depuis que quelqu’un l’avait lancé par erreur, n’ayant apparemment pas considéré son nom comme un avertissement suffisamment clair sur l’effet du script. Un autre exemple amusant est le message d’avertissement du système Debian en cas de apt-get jugé un peu trop violent : il demande alors de taper en toutes lettres « Oui, faites ce que je vous dis ! ». Quoi qu’il en soit, il faut d’une façon ou d’une autre, mais par un moyen technique, mettre une commande dangereuse hors de portée de toute personne qui n’est pas parfaitement renseignée.

Accessoirement, Joel Spolsky explique au deuxième point de son célèbre article, « The Joel Test« , que d’après lui l’opération de compilation et livraison d’un projet doit pouvoir être faite en une seule action, car toute étape supplémentaire entraîne la possibilité d’une erreur. L’erreur dont il est question ici et les conséquences qu’elle a eu montrent que finalement, la règle peut être étendue à toute opération d’administration.

D’autres erreurs, de nature plus humaine, sont également à l’origine de cet accident. Comme le souligne l’auteur de l’article, le passage de compétences ne s’est pas fait correctement par exemple, et la gravité de la tâche d’administration a été négligée en étant affectée à un novice. Je ne m’étendrai pas plus sur ce sujet, qui n’est plus celui de ma réflexion.

Aussi pour conclure, on se rend compte que cet incident, qui est extrêmement grave pour une société puisqu’il peut lui être fatal si les données ne sont pas récupérées, aurait pu être évité par de simples précautions. Pour la plupart d’entre elles, une seule de ces précautions aurait suffit à éviter cela. Mais peut-être que parce que ces précautions semblent dérisoires, elles sont négligées. Paradoxalement elles semblent tellement évidentes que les rappeler peut également paraître dérisoire.

Voilà en substance la réflexion que m’inspire cette histoire. N’ayant pas la prétention d’avoir plus de quelques notions d’administration système, je suis peut-être passé à côté de points importants. Si vous en voyez, n’hésitez pas à en faire part en commentaires.

Pourquoi je n'ai jamais passé le TOEIC

Par choix, je n’ai jamais passé le TOEIC (comprendre par là : s’inscrire à l’épreuve), ni le TOEFL d’ailleurs, alors même que je suis convaincu que je ferais un score très correct. Je n’irai pas jusqu’à déconseiller de le passer, car ce serait prendre le risque de mal guider quelqu’un sur la valeur d’un diplôme, mais j’assume en tout cas mon choix et je suis jusqu’ici persuadé que c’était le bon.

Il y a plusieurs raisons à cette décision. Tout d’abord s’inscrire à cette épreuve est payant, et lorsque l’on est étudiant, on réfléchit à deux fois avant de débourser plus de 70€ pour un examen. Aussi cette raison suffit à se poser la question en premier lieu. Certaines formations l’imposent (ce qui est à mon avis une erreur, ou en tout cas une solution de facilité, mais ce n’est pas l’objet de ce billet), d’autres non. Et pour ces dernières, chacun a donc le choix de passer ou de ne pas passer cette épreuve.

TOEIC - Certificate of Achievement
Ce test a pour objet de valider un certain niveau de connaissances en anglais, en vue d’une certification de celui-ci à l’attention du monde professionnel. Autrement dit, le but est de pouvoir l’exhiber fièrement sur un CV (à condition de ne pas préciser le score lorsqu’il est médiocre ; c’est du vécu). Le TOEIC n’est donc qu’une case cochée en face de « niveau en anglais », à l’image des cases que l’on coche durant l’épreuve, mais cochée de façon certifiée (tandis que le reste peut bien entendu rester un tissu de mensonges ou une évaluation fantaisiste de son propre niveau). Cependant le CV n’est pas sensé être un détail exhaustif de tout ce que l’on sait faire, mais plutôt une présentation d’un ensemble de compétences que l’on souhaite montrer pour accéder à un certain poste ou type de poste. Mentionner pompeusement un résultat d’examen à une telle épreuve suppose donc que l’on compte bien utiliser cette compétence, que ce soit en travaillant à l’étranger, ou en contact avec des personnes avec qui l’anglais sera la langue par défaut. S’il s’agit simplement de faire savoir que l’on sait parler anglais, le mentionner suffit largement et il n’est nul besoin de tamponner d’un sceau.

Et c’est à partir d’ici que le bât blesse. Je pense avoir déjà éliminé une part importante des personnes passant malgré tout le TOEIC avec la seule question : « comptez-vous vraiment accéder à un poste où l’anglais est décisif ? » Mais même pour la part restante, deux faits très simples en balaient encore la majorité à mon avis. Tout d’abord le CV lui-même : si vous postulez pour une société anglophone, ou pour une société étrangère dans laquelle vous aurez à communiquer essentiellement en anglais, vous devrez naturellement fournir un résumé (pour reprendre le terme) en anglais. Et autant dire qu’un CV rédigé en anglais est autrement plus instructif qu’un score au TOEIC. Car ce dernier ne laisse certainement pas voir des détails aussi subtils que le style, le choix des mots, et la culture d’un candidat en matière de milieu professionnel. Un CV au contraire en donne un bon aperçu malgré sa nature : un natif verra en un coup d’œil s’il a affaire à quelqu’un qui maîtrise mal la langue, la maîtrise basiquement, ou la manie avec aisance ; et sa construction est révélatrice de la connaissance des règles dans la langue ou le pays. La lettre de motivation est encore plus discriminante, puisqu’il s’agit d’un exercice de rédaction, et de relativement haut niveau qui plus est (à ce sujet je vous recommande un article pertinent sur le blog 37 Signals).

Ayant lu ce paragraphe, vous pensez naturellement : « Oui, mais un CV et une lettre, on peut les faire rédiger, ou au moins relire. » C’est vrai (la relecture par un tiers est même indispensable), mais je pense néanmoins que la maîtrise de la langue va transparaître dans la majorité des cas. Cependant j’ai parlé de deux faits, et le deuxième est l’entretien, en personne ou par téléphone. Et là c’est sans appel : en une ou deux phrases tout au plus, un natif aura déjà une très bonne idée de votre niveau, et au bout d’un quart d’heure, sachant qu’un entretien dure raisonnablement une heure, il en aura une idée incomparablement plus précise que ce que pourra indiquer n’importe quel test à base de questions à choix multiple.

Voilà pourquoi je n’ai jamais passé le TOEIC : je suis convaincu qu’il ne me servira absolument à rien. Je ne serais peut-être pas aussi catégorique pour ce qui est des postes de traducteur, encore que lorsque l’on vise un poste dont la compétence essentielle est la langue, on justifie a priori un diplôme correspondant, et l’on est donc déjà crédible sans avoir besoin de passer un tel test. Maintenant, aux étudiants qui liront ceci, c’est à vous de faire votre choix : il ne s’agit ici que de mon avis.

Quel futur en imagerie numérique – Un spectre affichable plus large

Depuis l’apparition des premiers affichages couleurs et jusqu’à aujourd’hui, les écrans reposent sur la nature de l’œil humain, et représentent les couleurs dans l’espace RVB (rouge, vert, bleu). L’objet de ce billet est de s’interroger sur la validité de ce choix, et de manifester une certaine impatience envers une nouvelle technologie en la matière.

Sans aller plus loin que quelques considérations superficielles, rappelons que la rétine, le capteur au fond de l’œil, est composée de bâtonnets, qui sont sensibles à la luminosité, et de trois types de cônes, respectivement sensibles à trois plages de fréquences grossièrement centrées sur le rouge, le vert et le bleu. C’est la raison pour laquelle les affichages utilisent les couleurs rouge, vert et bleu : c’est la synthèse additive.

Planche n°19 du test du Docteur Shinobu Ishihara
Pourtant tout le monde n’est pas nécessairement sensible à ces trois couleurs. L’exemple le plus commun est le daltonisme : certaines personnes n’ont que deux, voire un seul type de cône, ce qui explique le fait qu’elles sont incapables de distinguer certaines couleurs. La forme la plus commune de daltonisme (la deutéranopie : l’absence de cône sensible au vert) est ainsi de percevoir indistinctement le rouge et le vert.

Mais alors, inversement, les personnes non daltoniennes ne sont-elles pas finalement daltoniennes dans une certaines mesures elles aussi ? N’y a-t-il pas des couleurs que mêmes les gens avec une vision considérée comme normale ne peuvent distinguer ? Je n’entends pas par là notre capacité à ne percevoir que le spectre dit visible, où à nécessiter un minimum d’écart entre deux teintes pour pouvoir les différencier. Mais par exemple, lorsqu’un écran affiche du vert et du rouge simultanément, on perçoit du jaune. Mais est-ce du jaune pour autant ? Non. Pour s’en convaincre, testons : observons son spectre lumineux. Pour cela, voici donc l’image présentée dans le précédent billet, représentant différentes franges de couleurs.

Franges de couleur

Le but est donc de constater la contribution de chaque frange dans les différentes fréquences du spectre visible, qui rappelons-le ressemble à ceci.

Spectre de la lumière visible

Notez comme toutes les couleurs des franges sont présentes dans ce spectre. Idéalement, une frange devrait donc avoir une forte intensité à la fréquence correspondant à sa couleur, indépendamment d’une éventuelle intensité sur d’autres fréquences.

Avec l’aide d’un CD, ou de tout autre objet capable de diffracter la lumière, observons donc le spectre des différentes raies. Les photos qui suivent présentent plusieurs problèmes, qu’il convient de prendre en compte. L’écran de test tout d’abord est un cathodique (je referai peut-être un test avec un LCD si l’occasion se présente), dont le calibrage est probablement discutable. La balance des blancs de la prise de vue n’est quant à elle pas terrible, d’où un jaune qui semble tirer sur le vert. Enfin il faut remarquer que les franges ont une certaine largeur (il fallait pouvoir les photographier), ce qui entraîne un spectre moins précis (les décompositions sur la largeur d’une frange se chevauchent un peu). Ces remarques préalables étant faites, voici le résultat.

Frange blanche

Frange rouge

Frange jaune

Frange verte

Frange cyan

Frange bleue

Frange magenta

Prenons le cas de la frange jaune : l’écran est sensé afficher une raie de jaune. Pourtant sur le spectre on observe du vert et du rouge, et un peu de bleu (dû à la luminosité de l’écran, qui a tendance à blanchir les couleurs), mais en tout cas pas de jaune. Ce n’est pas du jaune. c’est seulement une couleur que l’on perçoit comme jaune. Enfonçons bien le clou : un écran ne peut pas afficher de jaune, pas plus qu’il ne peut afficher du cyan, du magenta, ou du blanc (le spectre devrait alors ressembler à celui indiqué plus haut). Cependant si l’on mettait du véritable jaune à côté on ne verrait pas la différence, car faute d’être sensible à cette couleur nos yeux réagissent de la même façon à ces deux couleurs.

Du moins, la majorité des gens ne verraient pas la différence. Car il existe également le contraire du daltonisme : des personnes ne possédant pas trois, mais quatre types de cônes différents (des quadrichromates ; il existerait mêmes des pentachromates), le quatrième étant sensible au jaune justement. Les personnes dans ce cas doivent donc percevoir la différence entre du jaune et un mélange de vert et de rouge aussi nettement que je perçois la différence entre du vert et du rouge. N’en connaissant pas personnellement (et je serais très intéressé par le témoignage de quelqu’un ayant cette expérience), je n’ai pas de témoignage le confirmant, mais j’ai la conviction que pour elles les écrans doivent sembler bien peu fidèles…

Notez d’ailleurs que même pour les personnes ayant une vue classique à trois types de cônes, la synthèse additive ne constitue pas une approximation suffisante. En effet, il existe des couleurs que la plupart des gens savent distinguer et que les écrans sont parfaitement incapables d’afficher. Vous n’êtes pas convaincu ? Vous voulez un exemple ? Essayez d’afficher du orange fluo pour voir.

Alors ma question est : quand aura-t-on des affichages qui ne soient plus basés sur cette astuce médiocre de la synthèse additive, mais qui soient véritablement capables d’émettre n’importe quelles fréquences (notez le pluriel) du spectre visible ? Dans un premier temps, l’amélioration peut passer par l’utilisation d’un plus grand nombre de couleurs primaires (voir ma note ci-après). Mais au delà, on peut imaginer la mise au point d’un matériau dont les caractéristiques chromatiques pourraient être contrôlées par excitation par un courant. On pourrait alors envoyer des signaux correspondant au spectre souhaité et obtenir la couleur correspondante, de la même façon qu’en envoyant à un haut-parleur un signal, on obtient un son ayant pour spectre le spectre de ce signal (avec plus ou moins de fidélité bien sûr).

La publication de ce billet a été pas mal retardée par la démonstration du spectre de l’écran, que je n’avais ni le temps ni l’occasion de réaliser (d’ailleurs un grand merci Boris pour le coup de main lors de la séance photo). Or entre temps j’apprenais par le site Akihabara News que Sharp travaille sur la construction d’un écran LCD avec cinq couleurs primaires. Cela me conforte donc dans la conviction que l’amélioration radicale du spectre des écrans est l’une des évolutions proches de l’imagerie numérique.

Beam

Article « Rouge vert bleu » sur Wikipédia

Cours « La vision des couleurs »

Article « Daltonisme » sur Wikipédia

Un dispositif de test simple pour observer le spectre d'un écran

Cette image qui pique les yeux est l’un des éléments d’une petite expérience liée à un prochain article. Elle va me servir à observer le spectre de la lumière émise par un écran selon la couleur affichée.

Bien que cela ne transparaisse pas tellement dans ce blog, un de mes sujets d’intérêts majeurs est la 3D, et plus généralement l’imagerie numérique. Si je n’ai ni la connaissance ni l’expérience suffisantes pour traiter avec régularité et aplomb du sujet, j’ai néanmoins quelques idées sur son devenir. Aussi je vais tâcher de publier quelques articles sur le thème : « Quel futur en imagerie numérique ». Plusieurs sont déjà en cours, dont certains pratiquement terminés.

L’un d’entre eux, qui devrait être le premier à être publié, concerne le spectre des écrans actuels et leurs lacunes. Afin de soutenir mon propos, j’ai besoin d’un dispositif simple permettant de mettre en évidence le spectre d’un écran. N’étant pas dans un laboratoire d’optique, je ne dispose bien évidemment pas d’un appareil permettant une quelconque mesure. De plus, je préfère une méthode simple, éventuellement grossière mais néanmoins rigoureuse, que n’importe quel lecteur peut reproduire.

Observer le spectre d’une source de lumière ? Un prisme bien sûr, répond-t-on automatiquement. Mais qui possède un prisme ? En avez-vous ne serait-ce que déjà eu un entre les mains ? Moi non, ou peut-être une fois, dans un lointain cours de physique au lycée. Il va donc falloir trouver autre chose de plus commun. Alors que je faisais le tour de ce qui pouvait faire l’affaire, mon attention s’est arrêtée sur… un CD traînant sur mon bureau (sourire bête et bienheureux de celui qui vient de trouver une solution simple et inattendue à son problème). Tout le monde possède au moins un CD. :-) Un rapide test réalisé immédiatement après s’est avéré concluant.

Ça fait un peu solution bricolage, mais après tout les expériences d’Augustin Fresnel (dont j’ai déjà parlé) étaient autrement plus rudimentaires, et lui ont pourtant permis d’obtenir des résultats qui feront trembler la communauté scientifique. Et par « rudiementaires », il faut comprendre qu’il faisait des mesures sur des rayons de lumière éclairant des fils de fer en traversant des gouttes de miel, faute de lentille !

À venir donc, une petite réflexion sur la technologie actuellement utilisée pour les affichages, dès que j’aurai pu tester et photographier le bricolage expérimental dont il est question.

Dans la peau d'un blogueur influent

Ce week-end j’ai participé à l’organisation de la convention Epitanime 2009, un évènement autour du manga, de l’animation japonaise et de certains aspects de la culture japonaise. Parmi les nombreuses anecdotes qui arrivent nécessairement dans ces cas là (c’est un forfait indivisible :-) ), je me propose de vous raconter celle où j’ai testé pour vous et malgré moi : être dans la peau d’un blogueur influent.

Je ne m’intéresse aucunement aux mangas, mais plus à la culture japonaise en général, ce qui n’est pas vraiment l’objet de cette manifestation. Aussi ce n’est nullement ce qui me pousse à y prendre part. La raison essentielle est simplement que participer à l’organisation d’évènements de cette taille est à la fois très enrichissant et vraiment amusant, bien qu’épuisant. De plus, la motivation et le travail de cette association suffisent à justifier de leur prêter main forte. Voir des gens se bouger pour faire des choses est trop rare pour ne pas être encouragé.

Les moments de calme sont idéaux pour saluer les personnes que l’on n’a pas vu depuis longtemps, ainsi que toute autre forme d’activité sociale. Organisateurs, spectateurs, presse… Amis ou simples visages connus, d’année en année on retrouve des habitués, des vieux même dit-on entre nous, et c’est parfois la seule occasion de l’année de les voir, notamment lorsqu’ils viennent de loin.

Samedi matin, alors que l’activité était encore calme dans la section dont je m’occupais, nous discutions donc avec légèreté (mais par moments aussi, lourdeur :-) ) de choses et d’autres… Tandis que le petit groupe que nous étions débattions de sujets aussi importants que comment chacun allait, le problème de la contrefaçon, ou encore la longueur des jupes, mon interlocuteur me passait sa peluche (ou alors c’est moi qui la lui ai prise, à vrai dire je ne me souviens plus), et je commençais à jouer avec, pour finalement la poser sur mon épaule et continuer à discuter en l’oubliant presque. Un mignon, quoi que poussiéreux, petit raton-laveur, avec comme chaque année ses quatre bracelets d’entrée (deux jours et deux nuits) attachés autour de la queue.

Habillé en Raton
(Merci Noryu pour la photo !)

C’est alors que rentrent deux visiteurs qui s’arrêtent stupéfaits en nous voyant, et s’exclament : « C’est la peluche du raton ? » Et moi de leur répondre « Oui, bien sûr », avec le ton de l’évidence de la personne pour qui cette peluche n’est que celle d’un personnage habituel et même obligatoire de la convention (qui a dit folklore ?). Les deux s’agenouillent alors immédiatement devant moi dans un simulacre d’idolâtrie : « On est… pas dignes ». Moi, avec un ton blasé, pointant le propriétaire de la peluche du doigt : « Raton, c’est lui… ».

Je me demande juste ce qu’a ressenti Raton en se voyant couvrir de fleurs à la troisième personne. :-) En tout cas il avait l’air touché par le discours de ses deux fans, une fois sa personne correctement identifiée. ;-)