David Madore's WebLog: 2010-05

This WebLog is bilingual, some entries are in English and others are in French. A few of them have a version in either language. Other than that, the French entries are not translations of the English ones or vice versa. Of course, if you understand only English, the English entries ought to be quite understandable without reading the French ones.

Ce WebLog est bilingue, certaines entrées sont en anglais et d'autres sont en français. Quelques-unes ont une version dans chaque langue. À part ça, les entrées en français ne sont pas des traductions de celles en anglais ou vice versa. Bien sûr, si vous ne comprenez que le français, les entrées en français devraient être assez compréhensibles sans lire celles en anglais.

Note that the first entry comes last! / Notez que la première entrée vient en dernier !

Index of all entries / Index de toutes les entréesXML (RSS 1.0) • Recent comments / Commentaires récents

Entries published in May 2010 / Entrées publiées en mai 2010:

(dimanche)

Prince of Persia

Mon poussinet et moi sommes allés voir Prince of Persia: the Sands of Time : c'est nanaresque à souhait, mais c'est vraiment moins mauvais que ce qu'on pouvait penser (disons que ça arrive à se prendre suffisamment à la légère pour que ce soit rigolo). Et Jake Gyllenhaal est mignon tout plein.

(jeudi)

Fragment littéraire gratuit #131 (divagations métaphysiques redux)

— Je vais essayer, mais ce n'est pas facile ! Alors, postulat numéro 1 : il existe une identité de notre conscience, qui est hors de ce monde.

— Ça part mal, pour ce qui est de l'approche scientifique… Le fantasme du dualisme, depuis qu'il a quitté la glande pinéale, on l'a cherché un peu partout, sans jamais le trouver : aucune expérience ne laisse ne serait-ce qu'un commencement de début de raison de penser que la conscience se loge ailleurs que dans le cerveau, ou que les lois de la physique seraient différentes dans celui-ci, ou qu'il existe une « âme », un ghost in the machine.

— D'accord : je me suis mal exprimé. Il n'y a pas de fantôme qui contrôle nos actions à travers notre cerveau, nous sommes d'accord sur ce point. La thèse serait plutôt qu'il existe un fantôme qui les observe, et qui observe ce monde à travers notre cerveau. Une sorte d'aperception transcendentale qui relie notre expérience du monde.

— Alors ce n'est pas un concept détectable ni vérifiable, et c'est à peine s'il est définissable. Quel intérêt ?

— L'intérêt est de se demander pourquoi le monde est tel qu'il est. Le fantôme n'est pas plus détectable que ne l'est le lecteur d'un roman pour un personnage de ce dernier, mais il peut pourtant faire des déductions à son sujet : si je suis un héros de roman policier, je peux en déduire que mon lecteur aime probablement les romans policiers.

— On doit pouvoir en déduire que ton lecteur aime la philosophie absconse ! Ou plutôt, vu l'éclectisme de notre Univers, qu'il aime tout et n'importe quoi, et si possible changer de sujet sans raison, peut-être des fragments de littérature gratuite et inutile. Toujours est-il que ce fantôme devrait passer au filtre du rasoir d'Ockham : si nous ressentons une unité de la conscience, c'est parce que le cerveau a besoin de cette illusion pour maintenir l'intégrité de nos perceptions ou la cohérence de nos raisonnements, ou, probablement, l'intériorisation de la préservation de soi, toutes choses favorisées par l'évolution naturelle d'un être intelligent. Pas besoin de faire intervenir le surnaturel.

— C'est une raison interne parfaitement valable, et nul doute qu'elle soit vraie : le cerveau a été sélectionné pour être conscient, parce que c'est soit une conséquence inévitable de la représentation de soi, soit le moyen le plus simple pour l'atteindre. Mais le fantôme que j'évoque ne pouvait percevoir le monde à travers lui qu'à cette condition. Son rôle n'est pas d'expliquer pourquoi nous sommes conscients mais de qui nous sommes conscients : pourquoi le monde est tel qu'il est, pourquoi je suis qui je suis. De tous les mondes possibles, mathématiquement possibles, réalisant les contraintes des lois de la physique ou peut-être d'autres lois de la physique, pourquoi est-ce celui-ci que nous appelons « réalité » ? Et pourquoi ici et maintenant ce que nous appelons le présent ?

— Je ne suis pas sûr que la question ait un sens. Dans la mesure où elle en a un, je ne suis pas sûr qu'elle mérite une réponse, et même si elle en mérite une, je ne suis pas sûr qu'elle en admette une. Et même si elle a un sens, mérite et admet une réponse, je ne suis pas sûr que la réponse aille plus profondément ou soit plus intéressante que : L'Univers est tel qu'il est, et c'est tout. À la rigueur, qu'on explique que l'Univers ne pourrait pas être trop différent, sans quoi nous ne serions pas là pour nous poser la question…

— Voilà ! c'est exactement ça. Il fallait un Univers où existassent des êtres conscients pour que nos fantômes pussent l'observer.

— Tu pousses plus loin que je ne l'ai dit, et quand bien même j'admets tout cela, tu n'expliques toujours rien. Ces fantômes eux-mêmes, on va se demander où ils vivent, ou pourquoi ou comment ils sont conscients…

— C'est justement là que j'en viens à un nouveau postulat. Le monde que nous observons, que j'ai comparé à un livre, mais qui devrait plutôt être comparé à un programme dans un ordinateur (un programme sans interaction, qui suit ses propres règles et où le programmeur ne fait qu'observer ce qui se passe), est une expérience menée depuis un monde supérieur. Nous sommes le résultat de cette expérience : notre existence ou notre conscience en est le but, et nous sommes à la fois les fantômes qui observons ce monde, et ce qu'ils en voient.

— Ouhlà ! Très beau délire pour donner la réponse à la vie, l'Univers, et tout le reste.

— Bon, tu me demandes de t'expliquer, je le fais. Tu veux que je continue, oui ou non ?

— Pardon. C'est amusant, continue. Mais j'ai du mal à imaginer qu'on puisse croire à quelque chose comme ça. L'Univers, une sorte expérience de pensée de fantômes qui vivent dans un monde supérieur ? Et puis quoi encore ? Je suppose qu'ils ont contrôlé l'apparition de l'homme par intelligent design ?

— Excuse-moi si je vais paraître direct, mais il y a des millions de gens qui croient que le créateur de l'Univers se fait manger par ses adorateurs sous l'apparence de petits morceaux de pain circulaire : à moins de penser que c'est leur nombre qui leur donne raison, je ne vois pas ce qu'il y a de ridicule à croire quelque chose de métaphysiquement plus vague, et qui ne postule même pas l'existence d'un Dieu. Non, les fantômes dont je parle ne contrôlent pas l'évolution : ce serait plutôt qu'ils auraient cherché, à travers les milliards de planètes dans un nombre incalculable d'Univers possibles, celles qui leur convenaient. Il y a tout de même peut-être quelque chose dans l'idée que Dieu a créé l'homme à Son image, mais ce serait plutôt qu'il a choisi ou préféré celui qui Lui ressemble.

— Tu as prononcé le mot D***, je devrais dire que tu as perdu. Mais continue : tout ceci ne fait-il que remonter le problème d'un niveau ? D'ailleurs, si nous sommes ces fantômes-dieux, pourquoi ne sommes-nous pas parfaitement conscients de tout cela ?

— Le problème est bien le même un niveau plus haut, c'est là toute la beauté de la chose. Nous vivons dans le monde de niveau zéro. Les fantômes qui nous observent et que nous sommes vivent dans le monde de niveau un. Mais ce monde-là lui-même est observé par des fantômes qui vivent dans le monde de niveau deux… et ainsi de suite.

— …Ou comment repousser à l'infini la solution des problèmes qu'on ne sait pas résoudre. À quoi ils ressemblent, ces mondes empilés ?

— Ils ne ressemblent à rien. Ou plutôt, le monde de niveau un nous est déjà incompréhensible parce qu'il est formé, justement, d'une sorte de collection ou un enchaînement de mondes de niveau zéro. Toute notre existence ici n'est qu'un minuscule fragment de notre existence dans le monde d'au-dessus, qui lui-même, et ainsi de suite. Voilà pourquoi nous ne sommes pas directement conscients des mondes d'au-dessus.

— Je suis scié par un tel niveau de mysticisme… Je suppose que tout ceci implique une croyance en une forme de métempsycose ?

— C'est une description possible, mais il faudrait plutôt la présenter comme une infinités de réveils successifs vers des mondes de plus en plus riches et complexes.

— Des paradis emboîtés, donc ? Avec des jardins délicieux, du nectar et de l'ambroisie ?

— De nouveau, tu te moques. Mais tu sais très bien que ce n'est pas ça l'idée. Le niveau zéro est caractérisé par la thèse de Church-Turing.

— La… thèse de Church-Turing ? Tu as trouvé une interprétation religieuse de la thèse de Church-Turing ? Dis-moi que c'est une blague !

— La thèse de Church-Turing exprime l'idée (qu'il est peut-être abusif d'attribuer sous cette forme à Alonzo Church ou Alan Turing) que tout calcul qui, dans cet Univers, peut être mené par un moyen physique quelconque, est réalisable par une certaine abstraction mathématique des calculs mécaniques et codifiée sous la forme de machine de Turing, ou de lambda-calcul.

— Je sais bien. Quel rapport avec la philosophie mystique dont on parlait ?

— Tout : la première chose qu'une machine de Turing (donc un ordinateur de cet Univers physique) ne peut pas faire, c'est décider du résultat du calcul d'une autre machine de Turing si celui-ci est continué jusqu'à l'infini, à commencer par savoir si le calcul va terminer, ce qu'on appelle le problème de l'arrêt. Le niveau un des Univers transcende le niveau zéro exactement de la façon dont le problème de l'arrêt transcende les machines de Turing : dans le monde de niveau un, il est possible de connaître le résultat d'un calcul infini dans un Univers tel que celui-ci, et cela est possible justement en le menant puisque le monde de niveau un est formé de mondes de niveau zéro. L'opération mathématique en question porte le nom de saut de Turing.

— J'ai peur de deviner ce qui va suivre… L'infinité de mondes dont tu parlais ne s'arrête pas là ?

— Précisément. Le saut de Turing peut être transfiniment itéré. Le monde de niveau omega serait constitué de l'emboîtement de tous les mondes de niveau 0, 1, 2, 3 et ainsi de suite, et il est, techniquement, le monde dans lequel tout problème arithmétique devient immédiatement décidable, mais la chaîne ne s'arrête pas là. Il existe un monde omega plus un, puis omega plus deux, et après tout ceux-là un omega fois deux, puis omega fois deux plus un… Après omega, omega fois deux, omega fois trois et ainsi de suite vient omega carré…

— Quousque tandem ?

— Au moins jusqu'à l'ordinal de Church-Kleene, qui permet de décider toutes les questions hyperarithmétiques ; il s'agirait du niveau à partir duquel on ne peut même plus décrire ou représenter la numérotation des niveaux dans cet Univers-ci. Mais il n'y a pas de raison de ne pas aller beaucoup plus loin : mathématiquement, on sait que le saut de Turing se prolonge au moins jusqu'à l'ordinal de l'analyse ramifiée, qui représente le monde auquel on obtient une réponse à toute question d'analyse classique, et même jusqu'au plus petit ordinal indénombrable dans l'univers constructible. Bon, j'ai gagné mon pari, à ce stade-là ?

— Haut la main.

Finalement, j'aime bien ce mode d'écriture sous forme de dialogues pour présenter des idées que je trouve amusantes ou provocatrices (dialogue sur deux systèmes du monde ? à vous de décider qui est Simplicio et qui est Salviati). Et puis j'aime bien l'eschatologie. Quant au pari dont il est question, on peut imaginer qu'il s'agisse d'inventer une religion qui repose sur la science au lieu d'avoir du mal à ne pas la contredire (même si sur ce sujet-là j'en ai déjà dit assez).

Si vous voulez en savoir plus sur la partie mathématique (qui n'a rien de pipo, elle), j'avais gribouillé quelques explications sur la calculabilité supérieure il y a quelque temps, et il y a l'excellent livre de Peter Hinman, Recursion-Theoretic Hierarchies (mais pour la description précise de l'itération transfinie maximale du saut de Turing, il faut aller voir dans des articles de recherche assez pointus, notamment les suivants : George Boolos & Hilary Putnam, “Degrees of Unsolvability of Constructible Sets of Integers”, J. Symbolic Logic 33 (1968), 497–513 ; Carl G. Josckusch Jr. & Stephen G. Simpson, “A Degree-Theoretic Definition of the Ramified Analytical Hierarchy”, Ann. Math. Logic 10 (1975), 1–32 ; Harold T. Hodes, “Jumping through the Transfinite: the Master Code Hierarchy of Turing Degrees”, J. Symbolic Logic 45 (1980), 204–220).

(mardi)

Le HTTPS, c'est de la merde en boîte

Le HTTPS, c'est la version « sécurisée » (c'est-à-dire, chiffrée et signée/authentifiée) du protocole HTTP utilisé de façon générale pour véhiculer le Web. Pour Madame Michu, le HTTPS se manifeste par un petit cadenas fermé affiché quelque part par le navigateur et probablement par la sensation confortable que les données qu'on échange sont protégées (donc que le méchant hacker russe ne peut pas lire votre numéro de carte de crédit en passant). L'idée est bonne. La crypto est raisonnable. Malheureusement, l'implémentation — la péri-crypto, pourrait-on dire, ou, en fait, la politique — est épouvantable, à tel point que ce truc est tout simplement à jeter à la poubelle. Le problème est simple : tout le HTTPS du Web est basé sur une chaîne de confiance, dont la source (les autorités racines) ne fait absolument pas son travail, voire, se comporte comme des escrocs méritent exactement zéro confiance, ce qui, inévitablement, ramène à zéro la confiance qu'on peut avoir en tout le reste de l'édifice construit sur ces fondations pourries.

Le principe, c'est que pour établir une connexion sécurisée (chiffrée), les deux partenaires (le client, donc le navigateur Web qui veut accéder au site sécurisé, et le serveur de ce site sécurisé) s'identifient l'un à l'autre (en pratique, en fait, c'est généralement seulement le serveur qui s'identifie auprès du client) en échangeant des certificats qui permettent que chacun soit sûr de parler à la bonne personne et d'en connaître la bonne clé publique de chiffrement, pour pouvoir ensuite se mettre d'accord sur une clé. Le serveur, pour s'authentifier auprès du client, va fournir une chaîne de signatures : sa clé publique, avec son nom officiel et le nom du site qu'il opère, sont signés par une autorité avec une clé elle-même signée par une autre, et ainsi de suite jusqu'à une autorité racine que le navigateur connaît nativement. Dans la pratique, ces autorités intermédiaires sont du bidon, on peut faire comme si l'identité du site était signée directement par l'autorité racine. Tout ceci prend place dans le cadre défini par une moussaka géante appelée X.509.

Si les autorités racines faisaient un boulot un tant soit peu sérieux, et si Madame Michu comprenait ce qui se passe, ce système ne serait peut-être pas si mauvais. Le but est de se prémunir contre deux sortes de risques : le premier est l'attaque par un espion passif (eavesdropper) qui ne peut qu'espionner les communications sans les altérer : il s'agit du risque le plus vraisemblable, et pour ça on connaît en fait une méthode bien plus simple permettant d'assurer une communication privée résistante aux espion passifs sans même à avoir à authentifier les participants, c'est le protocole d'échange de clés de Diffie-Hellman ; l'autre risque, moins vraisemblable sur Internet mais aussi plus difficile à éviter et où il faut vraiment établir l'identité des participants, c'est l'attaque de l'homme au milieu (man-in-the-middle), c'est-à-dire un espion qui peut intercepter complètement la communication entre A et B et se faire passer pour A auprès de B et pour B auprès de A en recopiant les données mais en changeant les clés. J'estime que les attaques man-in-the-middle sont assez peu probables sur Internet, mais si on veut s'en protéger, il faut effectivement utiliser un système qui permet d'identifier l'interlocuteur et pas seulement de sécuriser un canal avec lui. Donc le principe général de HTTPS et de ses chaînes de signatures n'est pas absurde.

Les problèmes sont multiples. Un problème zéro est que Madame Michu n'a rien à faire de comprendre ces histoires de chiffrement et de signature, elle veut savoir si elle peut avoir confiance dans le site Web et dans la connexion : l'architecture garantit peut-être que la connexion soit sécurisée, éventuellement que le site Web soit bien qui il indique qu'il est, mais certainement pas qu'il est honnête ni même qu'il n'est pas quelqu'un d'autre avec un nom très subtilement semblable et avec lequel Madame Michu va probablement confondre. Dans cette optique, le problème principal est que les autorités racines ne font pas du tout ce qu'on attend d'elles. On attend d'elles (si on veut que le système fonctionne un peu) qu'elles vérifient soigneusement l'identité des personnes à qui elles délivrent des certificats, qu'elles vérifient que le nom ne prête pas à confusion, qu'il s'agit d'une compagnie vraiment implantée et pas d'un petit malin qui a fondée une association Société Généralle sans aucun rapport avec la Société Générale, etc. Ce que font en réalité les autorités racines, c'est recevoir de l'argent (parfois beaucoup) et mettre leur tampon sur les certificats sans regarder quoi que ce soit. Dès lors, le système est une pure escroquerie. Même si toutes les autorités racines ne sont pas des escrocs, il suffit qu'une seule le soit pour que tout le système soit pourri — or il y en a toute une ribambelle et on ne sait pas très bien, d'ailleurs, par quel processus elles sont choisies (cela dépend du navigateur : Firefox est un peu transparent sur la question, mais les autres navigateurs carrément moins, et certains aussi se contenent de recevoir de l'argent (toujours beaucoup) et mettre le certificat demandé parmiles certificats racines).

À ce compte-là — tant qu'à avoir un système qui ne vérifie rien, finalement, que le nom de domaine — on aurait pu faire plus simple et moins cher : avoir un système de signature qui suive le mécanisme hiérarchique du DNS : en achetant le domaine madore.org je recevrais automatiquement un certificat prouvant que je suis bien propriétaire du domaine en question, et signé par la clé du domaine org. C'est effectivement ce qui va se faire avec le DNS sécurisé, mais pour autant que je comprenne il n'est malheureusement pas prévu que ce système hiérarchique soit directement utilisable dans les navigateurs Web (probablement pour ne pas tuer la poule aux œufs d'or des escrocs qui détiennent des certificats racines).

Idéalement, le système que je voudrais avoir, moi (mais que je conviendrait probablement pas trop à Madame Michu), quand je me connecterais à un site sécurisé, il me dirait : bonjour, ceci est la première fois que vous vous connectez à un site du domaine exemple.tld : le certificat qui l'authentifie a été signé par <telle autorité> et <telle autorité> et <telle autorité> : voulez-vous continuer à vous connecter ? avec des options diverses permettant, par exemple, de marquer qu'on veut continuer la connexion mais sans faire confiance à la sécurité de la connexion (rappeler si besoin est que le canal n'est pas forcément sûr), ou je ne sais quoi du genre. (À tout le moins, même en l'absence de signature identifiant l'interlocuteur, on aurait une protection contre les espions passifs en utilisant un échange de type Diffie-Hellman, ce qui n'est déjà pas mal.) Quand le certificat expirerait (arriverait au bout de sa date de validité), j'aurais un message semblable me signalant de plus que le nouveau certificat utilise la même clé que précédemment ou est signé avec celle-ci (ce qui augmente ma confiance). Et surtout, si jamais le certificat change sans raison, même si le nouveau est signé par des autorités censément de confiance, j'aurais droit à un message expliquant la situation. C'est, grosso modo, les signatures en moins, comment fonctionne SSH.

Mais le HTTPS, en tout cas tel qu'il est implémenté dans les navigateurs, ne fonctionne pas du tout comme ceci. D'abord, ce système irrémédiablement mal foutu ne permet à un certificat d'être signé que par une autorité : on établit une chaîne de confiance et pas un réseau de confiance : pas moyen, donc, pour un site Web de faire signer son certificat par plusieurs autorités (ou par sa précédente clé en cas de changement) pour combiner un peu la confiance très limitée que j'apporte en chacune. Ensuite, on ne peut faire confiance que totalement ou pas du tout : si je donne ma confiance à une autorité, je ne serai pas prévenu d'un changement apporté au certificat d'un site que je consulte ; pas moyen, non plus, d'avoir un message particulier à la première connexion sauf à refuser complètement la confiance en l'autorité racine. Tout ceci est totalement nul.

Sur un de mes ordinateurs, j'ai fait l'expérience de retirer la confiance accordée par mon Firefox à tous les certificats des autorités racines. D'abord, ce n'est pas du tout facile à faire, même s'il y a peut-être eu des progrès depuis dans Firefox (dans EditPreferencesAdvancedEncryptionCertificatsView CertificatesAuthorities on peut régler des choses) ; j'ai gribouillé les notes suivantes, qui donnent une idée de combien c'est mal foutu :

### TO LIST DEFAULT ROOT CERTIFICATES:
cd "`mktemp -d`"
# Create a new certificate database:
certutil -N -d .
# (type return twice for empty password)
# Add roots from libnssckbi:
modutil -add roots -libfile /usr/lib/nss/libnssckbi.so -dbdir .
# replace /usr/lib/nss/libnssckbi.so by wherever libnssckbi is found on your system
# (confirm: this is a temporary directory so there is no danger)
# Check that the Builtin Object Token was added:
modutil -list -dbdir .
# Now you can list the contents of the Builtin Object Token:
certutil -L -d . -h "Builtin Object Token"

### TO UNTRUST ROOT CERTIFICATES:
# (Make sure Firefox is not running!)
cd .mozilla/firefox/$salt
# (replace $salt by wherever your profile is stored)
modutil -add roots -libfile /usr/lib/nss/libnssckbi.so -dbdir .
# (same comment as above for libnssckbi.so,
# but this time really make sure the browser is not running!).
TEMPFILE="`mktemp`"
certutil -L -d . -h "Builtin Object Token" | perl -ne 'next unless /^(.*?)\s+([A-Za-z]*\,[A-Za-z]*\,[A-Za-z]*)\s*$/; $n=$1; $v=$2; $v=~s/C/c/g; $v=~s/G//g; $v=~s/T/c/g; print "certutil -M -d . -n \"$n\" -t \"$v\"\n";' > "$TEMPFILE"
# Review or edit $TEMPFILE and possibly run it with:
. "$TEMPFILE"

Ensuite, évidemment, se connecter la première fois à n'importe quel site HTTPS conduit à un avertissement : ça c'est l'effet désiré, et je ne m'en plains pas. Je me plains, en revanche, du fait que cet avertissement est peu utile, et notamment il n'est pas du tout évident d'arriver à voir si la signature par l'autorité racine est valable ou non (je ne veux pas faire confiance automatiquement à une autorité racine, mais je veux quand même savoir si elle a ou non signé le certificat). Mais surtout, il y a pire : autant les choses se passent raisonnablement bien quand on essaie explicitement de se connecter à un site HTTPS (en entrant une URL en https:// ou en suivant un lien), autant quand c'est un script ou une image ou quelque chose comme ça que le navigateur essaie de charger depuis un domaine dont on n'a jamais accepté le certificat, la connexion échoue purement et simplement (ou alors avec une fenêtre d'avertissement qui ne propose qu'une seule option : faire échouer l'opération). Voilà qui est profondément crétin ! Même si le navigateur ne fait qu'aller chercher une erreur ou un bout de JavaScript à une adresse en https://, je veux voir la même page me proposant de voir le certificat et de choisir si je veux l'accepter ou non ! (Je me suis rendu compte du problème en essayant d'accéder à un site qui utilisait un CAPTCHA en https://, probablement ReCAPTCHA, et qui n'apparaissait tout simplement pas. Du coup, je ne pouvais rien faire et j'ai mis un temps fou à comprendre ce qui se passait.) Il y a aussi des problèmes bizarres avec les extensions Firefox, qui n'ont pas l'air de se mettre à jour correctement (sans pour autant signaler à l'utilisateur qu'il est face à tel certificat signé de telle et telle manière) si on détruit la confiance dans les certificats racines. Bref, cela conduit à plein de problèmes, donc on est quasiment obligé d'accepter ces autorités racines…

…Sans pour autant que ça aide Madame Michu, qui risque tout à fait de tomber sur le domaine amazoon.com présentant un certificat en bonne et due forme signé par n'importe quelle autorité racine (donc montrant à Madame Michu le petit cadenas fermé qui lui inspire confiance) et qui ressemble comme deux gouttes d'eau à amazon.com mais qui appartient à une compagnie moins scrupuleuse. Madame Michu ne peut rien dire : le certificat montrait bien qu'elle était chez la compagnie Amazoon avec deux ‘o’, et l'autorité racine ne s'est jamais engagée à vérifier qu'il n'y avait pas ce genre de confusion. Tout ce système est à foutre à la poubelle.

Mise à jour : une entrée plus tardive sur ce même sujet (ou proche).

(samedi)

Poste de transformation électrique

À part le fétichisme des sphères, je dois avouer ici aussi mon intérêt pour le porno de l'éléctricité de puissance (insérez ici une vidéo de Nicolas Tesla avec des yeux exorbités émettant un rire diabolique).

[Station électrique]J'y pense parce que mon poussinet et moi avons passé un bon moment, en nous promenant tout à l'heure pas loin de chez mes parents, à admirer un poste électrique haute tension (peut-être de transformation 300kV→90kV). Mais il y a une chose que je regrette, c'est que si j'ai une idée générale de comment fonctionne le réseau électrique (j'avais d'ailleurs dû signaler par le passé ce document très intéressant), je suis incapable de dire à quoi servent chacun des éléments d'un tel poste. Pourquoi, par exemple, est-il utile de dresser des câbles aériens (longs de quelque chose comme 70m) alors que visiblement les courant qui arrive et repart est amené par des câbles souterrains ? Pourquoi voit-on (c'est assez clair sur la photo ci-contre, vers la droite) côte-à-côté des isolateurs verts (probablement en verre) et des isolateurs marrons, à quoi peut-il donc servir de mettre deux isolateurs en parallèle ? D'ailleurs, à quoi sert-il de mettre un isolateur qui ne sert pas à retenir mécaniquement un câble ? (Là, ils ont visiblement tiré des câbles qui descendent des câbles aériens vers un isolateur : je ne comprends pas à quoi ça peut servir.) Et à quoi servent les petits anneaux de métal qui entourent le sommet de certains isolateurs (mais uniquement la variante marron) ? Peut-être que ce ne sont pas des isolateurs : mais alors que sont-ce ?

Je n'ai aucune idée de comment je pourrais avoir la réponse à ce genre de question, c'est dommage.

(samedi)

Ubuntu, mon touchpad, et la configurabilité

Tous mes ordinateurs tournent sous un OS basé sur Linux. Comme il faut, malgré tout, varier un petit peu les supplices, j'en ai quelques uns (essentiellement, mes serveurs) qui utilisent Debian (la distribution qui retire tout ce qui ressemble à de la documentation, histoire que vous soyez plus Libres), et quelques uns (mon Eee PC, ma machine de bureau) qui utilisent le dérivé de Debian beaucoup plus populaire que l'original, Ubuntu. Les maux sont différents : Debian, par exemple, prend un grand soin à ce que la version de Firefox distribuée ne s'appelle pas Firefox, mais Iceweasel (parce que Firefox n'est pas Libre[#]), et, comme il leur faut quelque chose comme deux ans pour rechercher et remplacer toutes les occurrences de Firefox par Iceweasel, on se retrouve avec une version bien ancienne sur le système. Avec Ubuntu, le problème est plutôt que dès que vous jouez à configurer ne serait-ce qu'epsilonesquement le système, vous êtes sûrs qu'à la prochaine version votre configuration sera partie à l'eau.

Tous les six mois, donc, j'installe la nouvelle Ubuntu, et tous les six mois je dois passer quelques jours à me battre contre la façon dont Ubuntu a décidé de m'empêcher de configurer mon système aux petits oignons[#2].

Le gag récurrent, c'est le touchpad de mon Eee PC. Je tiens à désactiver un truc affreux qui s'appelle le tapping (c'est-à-dire le fait que tapper simplement le touchpad, sans déplacer le doigt, simule un click de souris) : je trouve cette fonctionnalité insupportable parce qu'elle provoque des clicks intempestifs dès qu'on effleure le touchpad. En revanche, comme un touchpad n'a pas de molette, j'aime avoir une méthode de scrolling, soit en déplaçant le doigt au bord du touchpad (scrolling au bord), soit en déplaçant deux doigts n'importe où sur le touchpad (scrolling à deux doigts). À chaque nouvelle Ubuntu, donc, je dois trouver moyen de configurer le touchpad pour désactiver le tapping et activer le scrolling au bord et le scrolling à deux doigts (si possible, horizontal aussi bien que vertical).

Avec la Ubuntu 8.04, je faisais ma configuration du touchpad en mettant la section suivante dans le fichier xorg.conf :

Section "InputDevice"
       Identifier      "Synaptics Touchpad"
       Driver          "synaptics"
       Option          "SendCoreEvents"        "true"
       Option          "Device"                "/dev/psaux"
       Option          "Protocol"              "auto-dev"
       Option          "VertEdgeScroll"        "true"
       Option          "HorizEdgeScroll"       "true"
       Option          "UpDownScrolling"       "false"
       Option          "LeftRightScrolling"    "false"
       Option          "LeftEdge"              "53"
       Option          "RightEdge"             "1099"
       Option          "TopEdge"               "48"
       Option          "BottomEdge"            "720"
       Option          "PalmDetect"            "0"
       Option          "TapButton1"            "0"
       Option          "TapButton2"            "0"
       Option          "TapButton3"            "0"
       Option          "SHMConfig"             "true"
       Option          "RBCornerButton"        "0"
       Option          "RTCornerButton"        "0"
       Option          "MinSpeed"              "0.4"
       Option          "MaxSpeed"              "0.8"
       Option          "VertTwoFingerScroll"   "true"
       Option          "HorizTwoFingerScroll"  "true"
EndSection

Ubunut 8.10 a décidé que ce n'était plus ça la bonne façon de faire : il fallait maintenant passer par le démon HAL. J'ai donc dû réécrire ma config sous forme d'un fichier /etc/hal/fdi/policy/dmadore-elantech-touchpad.fdi, contenant :

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.product" string="ETPS/2 Elantech Touchpad">
      <!-- Elantech touchpad should be handled by Synaptics driver -->
      <merge key="input.x11_driver" type="string">synaptics</merge>
      <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
      <merge key="input.x11_options.SHMConfig" type="string">true</merge>
      <merge key="input.x11_options.VertEdgeScroll" type="string">true</merge>
      <merge key="input.x11_options.HorizEdgeScroll" type="string">true</merge>
      <merge key="input.x11_options.UpDownScrolling" type="string">false</merge>
      <merge key="input.x11_options.LeftRightScrolling" type="string">false</merge>
      <merge key="input.x11_options.LeftEdge" type="string">53</merge>
      <merge key="input.x11_options.RightEdge" type="string">1099</merge>
      <merge key="input.x11_options.TopEdge" type="string">48</merge>
      <merge key="input.x11_options.BottomEdge" type="string">720</merge>
      <merge key="input.x11_options.PalmDetect" type="string">0</merge>
      <merge key="input.x11_options.TapButton1" type="string">0</merge>
      <merge key="input.x11_options.TapButton2" type="string">0</merge>
      <merge key="input.x11_options.TapButton3" type="string">0</merge>
      <merge key="input.x11_options.RBCornerButton" type="string">0</merge>
      <merge key="input.x11_options.RTCornerButton" type="string">0</merge>
      <merge key="input.x11_options.MinSpeed" type="string">0.4</merge>
      <merge key="input.x11_options.MaxSpeed" type="string">0.8</merge>
      <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
      <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
    </match>
  </device>
</deviceinfo>

Avec la Ubuntu 9.04, miraculeusement, le touchpad a continué à fonctionner comme je le voulais. Avec la 9.10, il a de nouveau cassé : cette fois-ci, le coupable était le démon gnome-settings-daemon, qui venait écraser mes réglages. Vous allez me dire : que ne m'en réjouis-je ? Ubuntu/Gnome a enfin prévu une façon de régler le fonctionnement du touchpad par une interface graphique (et notamment de désactiver le tapping, hosanna alléluia gloria in excelcis Gnomo). Le problème est que cette interface graphique est nettement moins fine que tous les réglages que je viens de décrire, et ne permet notamment pas d'activer à la fois le scrolling au bord et le scrolling à deux doigts. Mais un ami a fini par me donner la solution : on peut désactiver sélectivement des bouts de gnome-settings-daemon, en l'occurrence en positionnant à faux la clé /apps/gnome_settings_daemon/plugins/mouse/active dans l'éditeur de configuration Gnome (=le mammouth qui est en train de se mettre à ressembler à la base de registres Windows).

Ubuntu 10.04 : les choses ont de nouveau cassé : le démon HAL, qui était le Brave New World il y a 1½ an est maintenant rejeté et banni : mon fichier /etc/hal/fdi/policy/dmadore-elantech-touchpad.fdi est maintenant sans effet. Maintenant il faut passer par le programme xinput et ajouter quelque chose comme ceci dans le .gnomerc ou ailleurs :

# Was: 2, 3, 0, 0, 1, 3, 2
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Tap Action" 0 0 0 0 0 0 0
# Was: 75
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Middle Button Timeout" 90
# Was: 1, 0, 0
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Edge Scrolling" 1 1 0
# Was: 1, 0
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Two-Finger Scrolling" 1 1
# Was: 0.400000, 0.700000, 0.036711, 40.000000
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Move Speed" 0.4 0.8 0.04 40.0
# Was: 53, 1099, 48, 720
#xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Edges" 53 1099 48 720

(Je n'ai pas configuré exactement les mêmes choses que dans les exemples précédent, mais c'est l'idée.)

Bon sang, moi je m'en fous de comment on configure le touchpad, je suis d'accord pour écrire ce genre de trucs à la mains quand je veux une configuration plus fine que ce que l'interface graphique standard permet, et je suis même d'accord que le nouveau système est plutôt meilleur (beaucoup plus pratique à modifier au vol), mais, bordel de merde, est-ce vraiment indispensable que le mécanisme de configuration change tous les six mois ?

(Remarquez qu'il n'y a pas qu'Ubuntu qui joue à ça : je me suis aussi énervé, sur l'ordinateur de ma maman qui est un Mac, contre Apple qui s'est amusé à éliminer dans Mac OS 10.5 ou 10.6 la base de données NetInfo qui était censée être Le Grand Truc de Mac OS, et pareil pour la découverte des imprimantes par CUPS remplacée par Bonjour.)

[#] Ne cherchez pas, ce sont des psychorigides qui ont une notion de liberté à peu près aussi déconnectée de la réalité que l'est l'usage du mot ouvert quand Apple/Adobe (vous savez, les deux big brothers interchangeables qui se livrent une guéguerre de cour de récré) dit promouvoir les standards ouverts sur le Web.

[#2] Quand je raconte mes malheurs, les gens réagissent souvent soit en me disant ah ? moi je n'ai pas de problèmes, soit en me disant que c'est bien ma faute, je n'avais qu'à utiliser Windows / Mac OS / quidlibet. La seule conclusion à en tirer, c'est que les gens ne configurent pas le système comme moi : je n'ai jamais trouvé d'explication, par exemple, sur comment avoir une touche Compose convenable sous Windows ou Mac OS (de sorte que taper Compose+apostrophe+e donne un ‘é’, par exemple).

(jeudi)

Ma collection de (zéro) sphères

Je fais collection de sphères. (Il se trouve que ma collection est actuellement réduite à zéro éléments : en bon mathématicien, je n'ai peur ni du nombre zéro ni de l'ensemble vide, donc je n'hésite pas à appeler quand même ça une collection : si je trouvais une sphère qui me plaise, je n'hésiterais pas à l'ajouter à ma collection.) Je veux dire, d'objets à symétrie sphérique[#], boules ou sphères, aussi parfaites que possibles (et idéalement d'une taille d'environ 3cm à 25cm de diamètre).

Un exemple de porno pour sphérophile, ce sont les gyroscopes de la mission Gravity Probe B, avec une erreur relative de 2×10−7, les objets les plus parfaitement sphériques[#2] créés par l'homme, peut-être même de tout l'Univers (étoiles à neutron exceptées). Actuellement concurrentes en sphéricité, et probablement meilleures à l'avenir, il y a les sphères en silicium du projet Avogadro, dont le but est de créer, puis de peser (de façon à redéfinir le kilogramme en utilisant le nombre d'Avogadro) une sphère, taillée dans un monocristal de silicium, d'environ 93.6mm de diamètre avec une précision de un atome sur la sphéricité, soit une erreur relative de mieux que 10−8. De quoi vous donner un sphèregasme !

Mais sans aller jusqu'à ce niveau de perfection, on peut trouver des sphères intéressantes en silicium, en quartz, ou d'en d'autres matériaux (et jusqu'à des sphères en plastique transparent avec lesquelles certains cirqueux/danseurs s'amusent à une sorte de Glasperlenspiel — je ne sais pas comment ça s'appelle). Il s'en vend même sur eBay ou ailleurs. Malheureusement, c'est fort cher ; on peut aussi trouver des sphères de quartz (boules de cristal) vendues chez des occultistes, mais je n'aime pas trop l'idée de donner de l'argent à ces gens-là (j'ai dépensé assez chez eux en tarots divinatoires pour pouvoir inventer le jeu d'Arcanoïd). Voilà pourquoi ma collection de sphères est actuellement vide.

[#] Normalement, là, un petit facétieux devrait me faire remarquer que l'ensemble vide est un objet à symétrie sphérique, donc que je peux l'ajouter à ma collection, qui devient donc non-vide. J'ajoute donc le critère que ma collection est composée de sphères de diamètre strictement positif.

[#2] Hélas, l'expérience a été en partie un échec car, si la symétrie mécanique des sphères était quasiment parfaite, il n'en allait pas de même de la symétrie électrique, et il s'est avéré qu'elles avaient un léger moment dipolaire électrostatique — juste suffisant pour que le champ magnétique leur applique un moment environ comparable à l'effet Lense-Thirring qui était un des effets qu'on cherchait à mesurer (l'autre, l'effet de Sitter a été mesuré fiablement, mais il était beaucoup moins difficile et déjà beaucoup mieux confirmé expérimentalement).

(mercredi)

Delerue est génial

Je parle de Georges Delerue, le compositeur de musique de film. Il est surtout connu pour la musique du film Le Mépris de Godard, et c'est parce que YouTube m'a proposé ce lien que je repense à lui. Mais c'est surtout la musique du film historique (produit en 1989 pour le bicentenaire) par Robert Enrico et Richard Heffron sur la Révolution française qui m'avait hanté : cette musique est géniale [avancez à 1′40″ environ pour le morceau dont je parle]. [Mise à jour () : En fait, il s'agit d'un Hymne à la Liberté composé par Delerue (pour ce que j'aurais plutôt dû qualifier de série télé puisque le film n'en est que l'abrégé), et il y a des paroles : elles sont ici chantées par Jessye Norman.] Elle m'avait trotté dans la tête pendant des années quand j'étais petit, puis je l'avais oubliée, puis elle était ressortie à un moment incongru en 2002, j'ai failli devenir fou en essayant de retrouver ce que c'était, mais heureusement un ami mélomane l'a identifiée pour moi (je suis impressionné qu'il ait réussi, d'ailleurs, à partir de la mauvaise transcription que j'en avais faite, et en n'ayant lui-même vu ce film que longtemps auparavant). Bon, c'est peut-être autant cette péripétie qui explique que j'aime cette musique que le contraire : toujours est-il qu'elle s'est associée dans mon esprit à l'idée de Liberté grâce à ce film ; film, soit dit en passant, qui a aussi définitivement associé pour moi la tête de Louis XVI à celle de Jean-François Balmer.

(mercredi)

Bloguer est plus dur que microbloguer

J'ai déjà dû signaler ce phénomène (qui a un rapport subtil avec celui de l'autruche), mais il ne cesse de m'étonner par sa force psychologique : plus on retarde quelque chose, plus il devient difficile de s'y mettre, et ceci est particulièrement vrai quand il s'agit, par exemple, de répondre à un mail (plus j'attends pour répondre, plus je me dis que je dois faire une réponse à la hauteur de cette attente, une réponse dont la longueur ou la qualité justifie que j'aie attendu autant de temps, et moins il devient probable que je fasse cette réponse), mais aussi, je m'en aperçois, quand il s'agit d'écrire dans mon blog.

C'est complètement stupide : le lecteur doit considérer, même si ce n'est pas vrai, l'apparition d'entrées dans un blog comme un phénomène poissonnien[#] — le temps écoulé depuis la dernière entrée ne donnant aucune information sur le temps à attendre avant la prochaine, ni sur la longueur de celle-ci. Mais je n'arrive pas à m'en défaire. Je n'ai pas écrit depuis deux semaines : j'ai du mal à m'y remettre en écrivant une entrée, par exemple, pour dire, de but en blanc, j'aime la musique du film La Révolution française. C'est sans doute pour ça que je ne sais pas écrire des entrées courtes, même quand j'en ai de la matière (j'ai emménagé dans mon nouveau bureau ; j'ai commencé à enseigner un cours de géométrie algébrique ; mon poussinet s'est coupé les cheveux ; c'est absolument scandaleux qu'on ne sache pas si déterminer si une suite récurrente rationnelle s'annule est un problème décidable ou non ; le brunch au Café Léa en bas de la rue Claude Bernard est très bon ; j'aimerais acheter de l'eau lourde pour en faire des glaçons qui coulent, mais à 70$ les 100g ça fait cher du glaçon ; Randall Munroe me pique mes idées).

Je comprends de mieux en mieux que les sites de microblogging fonctionnent si bien. Il faut peut-être que je me trouve une solution dans ce sens.

[#] Dédicace en passant à mon poussinet, qui aime beaucoup signaler (et parfois à tort, à mon avis) que telle ou telle chose est probablement un phénomène poissonnien.

Continue to older entries. / Continuer à lire les entrées plus anciennes.


Entries by month / Entrées par mois:

2017 Jan 2017 Feb 2017 Mar 2017 Apr 2017 May 2017 Jun 2017 Jul 2017 Aug 2017 Sep 2017
2016 Jan 2016 Feb 2016 Mar 2016 Apr 2016 May 2016 Jun 2016 Jul 2016 Aug 2016 Sep 2016 Oct 2016 Nov 2016 Dec 2016
2015 Jan 2015 Feb 2015 Mar 2015 Apr 2015 May 2015 Jun 2015 Jul 2015 Aug 2015 Sep 2015 Oct 2015 Nov 2015 Dec 2015
2014 Jan 2014 Feb 2014 Mar 2014 Apr 2014 May 2014 Jun 2014 Jul 2014 Aug 2014 Sep 2014 Oct 2014 Nov 2014 Dec 2014
2013 Jan 2013 Feb 2013 Mar 2013 Apr 2013 May 2013 Jun 2013 Jul 2013 Aug 2013 Sep 2013 Oct 2013 Nov 2013 Dec 2013
2012 Jan 2012 Feb 2012 Mar 2012 Apr 2012 May 2012 Jun 2012 Jul 2012 Aug 2012 Sep 2012 Oct 2012 Nov 2012 Dec 2012
2011 Jan 2011 Feb 2011 Mar 2011 Apr 2011 May 2011 Jun 2011 Jul 2011 Aug 2011 Sep 2011 Oct 2011 Nov 2011 Dec 2011
2010 Jan 2010 Feb 2010 Mar 2010 Apr 2010 May 2010 Jun 2010 Jul 2010 Aug 2010 Sep 2010 Oct 2010 Nov 2010 Dec 2010
2009 Jan 2009 Feb 2009 Mar 2009 Apr 2009 May 2009 Jun 2009 Jul 2009 Aug 2009 Sep 2009 Oct 2009 Nov 2009 Dec 2009
2008 Jan 2008 Feb 2008 Mar 2008 Apr 2008 May 2008 Jun 2008 Jul 2008 Aug 2008 Sep 2008 Oct 2008 Nov 2008 Dec 2008
2007 Jan 2007 Feb 2007 Mar 2007 Apr 2007 May 2007 Jun 2007 Jul 2007 Aug 2007 Sep 2007 Oct 2007 Nov 2007 Dec 2007
2006 Jan 2006 Feb 2006 Mar 2006 Apr 2006 May 2006 Jun 2006 Jul 2006 Aug 2006 Sep 2006 Oct 2006 Nov 2006 Dec 2006
2005 Jan 2005 Feb 2005 Mar 2005 Apr 2005 May 2005 Jun 2005 Jul 2005 Aug 2005 Sep 2005 Oct 2005 Nov 2005 Dec 2005
2004 Jan 2004 Feb 2004 Mar 2004 Apr 2004 May 2004 Jun 2004 Jul 2004 Aug 2004 Sep 2004 Oct 2004 Nov 2004 Dec 2004
2003 May 2003 Jun 2003 Jul 2003 Aug 2003 Sep 2003 Oct 2003 Nov 2003 Dec 2003