David Madore's WebLog: 2012-01

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 January 2012 / Entrées publiées en janvier 2012:

(mardi)

De la légalité de fabriquer des « vrais faux »

Une question de droit théorique qui n'est peut-être pas si théorique que ça : est-il légal de fabriquer des faux documents si tout le contenu de ces documents est vrai ?

Cette question se décline en quantité de variantes. Une variante pour laquelle la réponse est très certainement non (i.e., ce n'est pas légal) consisterait à fabriquer une pièce d'identité contrefaite, par exemple, mais à laquelle le porteur aurait droit et sur laquelle tous les renseignements soient rigoureusement exacts : quelqu'un qui est Français se fait faire une fausse carte d'identité française où rien n'est mensonger. C'est très certainement illégal, mais ce serait intéressant de savoir comment la justice prendrait la chose, et ça pourrait être une forme de protestation civique intéressante dans une situation de blocage juridique (par exemple si quelqu'un a effectivement la nationalité française mais l'Administration refuse de la lui reconnaître et la Justice traîne). En revanche, une variante qui est légale, au moins dans certaines juridictions (je soupçonne que la France n'en fait pas partie) consiste à fabriquer des documents d'identité ostensiblement au nom d'un pays qui n'existe pas, genre les British West Indies (qui existent comme terme géographique mais pas comme État) : on parle de camouflage passport en anglais, et l'utilité de ces choses peut être, par exemple, de fournir un truc à quelqu'un qui vous demande une pièce d'identité sans aucune raison valable. Évidemment, la frontière entre faire un document complètement fantaisie (la chaîne de supermarchés Foobarmarchés peut très bien proposer une carte de fidélité avec la photo du client et l'appeler passeport, je doute que ce soit illégal) et un document qui fait tout pour ressembler à un « vrai » passeport risque d'être ténue, de même d'ailleurs qu'il est sans doute légal d'imprimer des billets en zorkmids avec une photo de Belwit the Flat, mais c'est sans doute moins clair si les billets ont l'air trop vrais.

Mais à part les papiers d'identité, un autre cas que je me pose est celui des justificatifs de domicile, ces papiers à la con dont les administrations françaises (et même certains services privés) raffolent et dont la seule fonction semble être d'emmerder leurs administrés (parce que, vraiment, à part l'inscription sur les listes électorales, je ne vois guère d'usage légitime de ces merdes). Si je peux me pointer avec comme justificatif de domicile un relevé de mon fournisseur d'accès Internet dont personne n'a jamais entendu parler, ou un relevé de charges de mon immeuble établi par un syndic bénévole, ces documents n'ayant de toute façon rien de vérifiable, est-ce que je ne peux pas imprimer moi-même une facture de la part de Foobar Télécom adressée à ma vraie adresse ?

(mardi)

Les sciences réflexives

Petite réflexion idiote du jour :

Il existe certaines sciences (au sens large de disciplines académiques, i.e., sciences humaines incluses) qui peuvent s'étudier elles-mêmes. La plus évidente est l'histoire[#] : il existe une histoire de l'histoire, c'est plus ou moins ce qu'on appelle l'historiographie. On peut aussi imaginer faire des sciences sociales des sciences sociales (je crois que c'est assez courant), de la géographie de la géographie (étudier comment sont réparties les facultés de géographie, qui fait de la géographie dans quels pays, etc.), de l'économie de l'économie (étudier comment sont payés les économistes et les études économiques et si ils et elles sont efficaces).

Certaines branches de la logique (la théorie de la démonstration, où les démonstrations deviennent des objets d'études mathématiques) méritent de s'appeler mathématiques des mathématiques. On peut aussi facilement faire de la médecine de la médecine, ou en tout cas de la médecine-du-travail de la médecine-du-travail (les médecins du travail souffrent-ils de maux particuliers ?). Ou bien des statistiques sur les statistiques. Éventuellement le droit du droit peut se concevoir, encore qu'on ne sait pas trop s'il s'agira du droit de la profession d'avocat ou des études de droit ou quoi exactement (les gens rigoureux protesteront que, de toute façon, dans tous mes exemples, le mot de est pris dans des sens subtilement différents).

Mais j'ai beaucoup plus de mal à imaginer ce que seraient la physique de la physique ou la biologie de la biologie. (À la limite, la physique de la physique pourrait être l'étude de la façon dont on fait des expériences ou mesures physiques, quels principes physiques sont utilisés, mais c'est un peu tordu ; et la biologie de la biologie je ne vois vraiment pas.) Je ne vois pas non plus ce que serait la linguistique de la linguistique (à part l'étymologie du mot étymologie). Ni même l'informatique de l'informatique (là c'est différent, ça a l'air d'être une simple évidence, ce qui est bizarre parce qu'il n'y a pas plus de raison à ça que pour une autre science[#2]).

Voilà qui est étrange : certaines sciences sont un objet d'étude possible pour elles-mêmes et d'autres ne le sont pas. Ces dernières méritent sans doute qu'on s'attarde sur la raison pour laquelle elles ne sont pas, ainsi, réflexives.

Je propose donc de lancer une nouvelle science : l'étude des sciences qui ne s'admettent pas elles-mêmes comme objet d'étude.

[#] Par cohérence avec les autres disciplines scientifiques que je vais citer, je ne mets pas de majuscule à histoire ici (je ne sais pas d'où vient, d'ailleurs, cette idée à la con que histoire devrait s'écrire avec une majuscule quand il s'agit de la discipline alors que je ne pense pas qu'on insiste pour écrire physique, biologie, informatique, etc., avec des majuscules).

[#2] Sans doute y a-t-il un rapport avec ce fameux aphorisme de Dijkstra : Computer science is no more about computers than astronomy is about telescopes.

(dimanche)

et maintenant sans WebGL

Dans l'entrée précédente je me plaignais que les navigateurs Web n'étaient pas capables d'afficher, dans canvas sur une machine moderne, 6720 lignes en 40ms. En fait, c'est Plus Compliqué Que Ça® : Firefox est très lent, mais Chrome s'en sort parfaitement (et Opera, l'autre navigateur que je suis susceptible de tester, tombe quelque part entre les deux).

Vous pouvez essayer sur cette page (également temporaire), qui est, en gros, la version sans WebGL de la même chose qu'hier : c'est beaucoup plus beau parce cette fois je peux tracer des lignes de 0.25 pixels de large (et tracer les points, aussi), mais sous Firefox, au moins dans certaines combinaisons version/OS, c'est abominablement lent. Sous Chrome (là aussi, au moins dans certaines combinaisons version/OS) c'est exactement ce que je veux obtenir, une animation fluide et élégante.

La raison de cette différence de vitesse (d'un facteur au moins 20 !) me semble assez obscure. Ma première explication était que Chrome utilise la bibliothèque graphique Skia (écrite par Google) alors que Firefox utilise Cairo, et sous Linux cette dernière bibliothèque utilise l'extension XRender du serveur X, qui est apparemment lente[#] en la matière. Ça explique pourquoi, sous Linux, le processus qui prend beaucoup de CPU quand on affiche la page en question, c'est Xorg et pas Firefox. Mais en fait, je ne sais pas si cette explication est la bonne : parce qu'on me souffle que Firefox est tout aussi lent sur cette page sous Windows que sous Linux (alors que sous Windows je crois qu'il utilise la même bibliothèque graphique, Skia, que Chrome, et de toute façon il n'y a pas de XRender pour expliquer la lenteur), et d'ailleurs IE9 est également bien lent. A contrario, Firefox 12 (celui qui est actuellement en nightly) a créé un nouveau mécanisme de rendu graphique appelé Azure, et qui est censé depuis avant-hier utiliser la fameuse bibliothèque Skia même sous Linux : j'espérais donc qu'en utilisant un Firefox 12 tout frais compilé des sources d'aujourd'hui obtenir une performance comparable à celle de Chrome : déception, il se comporte exactement comme mon Firefox 10 (c'est-à-dire autour de 2 images par seconde au lieu des 25 recherchées). Mon about:support sous ce Firefox 12 prétend bien utiliser Skia, mais X continue à prendre tout le CPU, donc je soupçonne qu'il passe quand même par XRender… je suis perplexe.

Ajout () : Merci à Benoît Jacob pour ses explications (cf. les commentaires). Le truc est donc bien que Firefox passe par Cairo qui passe par XRender qui est lent, alors que Chrome passe par Skia qui est beaucoup plus rapide. Skia est utilisé par Firefox pour Mac OS, et devrait aussi être utilisé sous Linux (dans le cadre de la couche Azure) à partir de Firefox 12 ou 13 (note : la version qui sort demain est la 10), mais pour l'instant ce n'est pas le cas même dans les nightlies. Rendez-vous dans six mois, donc.

Ça devient de plus en plus impossible de savoir quels chemins logiciels emprunte un appel à une fonction graphique : il y a tellement de couches superposées qu'on n'y comprend vraiment plus rien. Surtout que ces couches peuvent s'empiler de toutes sortes de manières : Cairo a ou va avoir un backend Skia, XRender a ou va avoir une implémentation OpenGL, voire plusieurs différentes, sans compter que Cairo pourrait lui aussi avoir un backend OpenGL, etc.

Et je m'énerve aussi du bordel des navigateurs à l'heure actuelle : à chaque fois que je veux utiliser une feature garantie par les standard du Web (enfin, « standards », ce qui en tient lieu), et je n'ai pas l'impression d'aller chercher des choses incroyablement tordues, j'ai à peu près une chance sur deux que ça marche sur Firefox, une chance sur trois que ça marche sur Chrome, une chance sur quatre que ça marche sur Opera, et ça fait dans les une chance sur vingt-quatre que ça marche sur les navigateurs que je suis susceptible de tester (les autres, vu qu'ils ne s'intéressent pas à mon OS, je ne m'intéresse pas trop à eux en retour…). Chrome a tendance à être plus rapide (l'exemple dont je parle ici est quand même un cas tellement extrême qu'on peut vraiment appeler ça un bug de Firefox), mais en contrepartie, il gère le SVG comme un pied (dès qu'on veut faire du clipping ou du masking, il n'y a plus personne), il n'a toujours pas de support MathML, bref, il sert plus de terrain de jeu à Google (parce qu'à côté de ça on a du SPDY, du nativeclient ou du Dart, les trucs qui ne servent vraiment à rien) mais pour implémenter complètement le HTML5 on repassera. Et comme Firefox est une usine à gaz, je ne sais pas ce qui vaut mieux[#2].

[#] Enfin, en disant ça je n'explique rien : il n'y a pas de raison évidente pour laquelle XRender serait plus lente que Skia pour tracer des lignes antialiasées (l'idée d'avoir une extension dédiée dans le serveur X est, je suppose, au cas où il y aurait du matériel graphique qui accélère les opérations en question — je n'ai aucune idée de s'il y en a — mais ça n'explique pas pourquoi quand il n'y a pas de telle accélération ce ne serait pas tout aussi rapide que de tout faire dans la bibliothèque). Pour perdre un facteur 20, il faut quand même une vraie raison !

[#2] Du moins, comme développeur Web je ne sais pas ce qui vaut mieux. Comme utilisateur, je préfère clairement Firefox, pour la raison qu'il m'offre plein d'options de configuration alors que Chrome décide systématiquement qu'il sait mieux que moi ce qui est bon pour moi. Par exemple, Firefox et Chrome ont tous les deux choisi de ne plus afficher le http:// en tête des URL qui commencent ainsi ; mais Firefox a une variable de configuration, browser.urlbar.trimURLs (que je me suis empressé de désactiver) qui contrôle ce comportement, alors que dans Chrome ils ont décidé que c'était comme ça et si on n'est pas content c'est le même prix.

(samedi)

Tentative pitoyable pour faire du WebGL

Comme je me plaignais avant-hier que les navigateurs Web n'étaient pas capables d'afficher, dans canvas sur une machine moderne, 6720 lignes en 40ms (expérimentalement, mon Firefox met plutôt 500ms pour les tracer), quelqu'un m'a suggéré : tu devrais essayer de faire du WebGL (l'interface JavaScript d'OpenGL). Après tout, c'est une idée raisonnable, pour tirer parti des monstres que tous les ordinateurs modernes incluent en matière de carte graphique, et qui s'ils arrivent à afficher les images de Call of The Warrior's Duty Warfare Badass VII The Return Unleashed avec un zillion de polygones plus textures, devraient ne faire qu'une bouchée de mes 240 points fussent-ils en 8 dimensions. Enfin, ça c'est la théorie.

D'abord, WebGL c'est une horreur pour ce qui est des incantations propitiatoires qu'il faut prononcer avant de pouvoir tracer la moindre ligne : une première incantation récupérer l'élément canvas, une deuxième incantation pour obtenir le contexte WebGL, une troisième pour créer un shader de vertex, une quatrième pour le compiler, une cinquième pour créer un shader de fragment, une sixième pour le compiler, une septière pour créer un programme, une huitième pour attacher le shader de vertex qu'on vient de compiler au programme, une neuvième pour faire pareil pour le shader de fragment, une dixième pour linker le programme, une onzième pour demander à l'utiliser, une douzième pour obtenir l'adresse de telle variable qu'on a utilisée dans le shader afin de pouvoir y binder des données… et je n'en suis qu'au tout début, on dirait que ça a été créé par quelqu'un qui était payé à la ligne de code que les gens écriraient sans son système. Heureusement, j'ai trouvé un tutorial pas trop mauvais et un programme d'exemple d'où partir.

Une bonne nouvelle, en revanche, c'est que quelque chose est prévu pour faire justement ce que je veux, à savoir préciser les coordonnées d'un certain nombre de points (au hasard, 240) et les réutiliser dans un grand nombre de lignes (au hasard 6720). Ça au moins c'est bien.

Mais alors l'autre truc avec WebGL, c'est qu'il est impossible de savoir exactement où on en est : chaque navigateur a son implémentation qui change tout le temps, mais ça dépend aussi du système d'exploitation sous-jacent, de l'environnement graphique, du pilote de la carte graphique, de la carte graphique elle-même, et d'un trillion de variables de configuration de chacune de ces choses dont on ne sait jamais au juste ce qu'elles font. Et toutes les explications en ligne sont à prendre avec des pincettes parce que justement les navigateurs changent tout le temps (par exemple, il y a un certain temps, si je voulais utiliser WebGL, je devais utiliser la variable d'environnement MOZ_GLX_IGNORE_BLACKLIST pour demander à Firefox de s'il te plaît, ignore le fait que ma carte graphique a des pilotes un peu pourris, et essaie quand même ; maintenant il paraît que ce n'est plus nécessaire). Et impossible de savoir si ça marche vraiment : parce que si tel ou tel truc n'est pas supporté, on pourrait très bien retombé sur une implémentation en logiciel, qui fait qu'on ne sait pas très bien ce qu'on teste. On peut vaguement se dire que si ça va très lentement on est tombé dans l'implémentation logicielle et que si ça plante la machine on est tombé dans l'implémentation matérielle qui ne marche pas, mais ces deux critères sont incertains et de toute façon ce qu'on veut c'est que ça marche.

Pour arranger le tout, la spécification WebGL est inexistante puisqu'elle se base sur la spécification OpenGL ES 2.0, qui doit elle-même se baser sur la sécification OpenGL 2.0, qui à son tour s'appuie sur OpenGL 1.0, ou quelque chose comme ça, je n'y comprends pas grand-chose, et je n'ai pas vraiment envie de lire 5000 pages de doc pour savoir quoi faire (surtout si chaque niveau se définit par une pile de différences et de références par rapport au niveau précédent). Et je ne comprends pas vraiment la manière dont s'agencent les petits bouts, OpenGL, OpenGL ES, GLX, EGL, WGL, etc.

Bref, j'ai quand même pondu une page : elle est ici (comme l'adresse en .tmp le signale, cette page est susceptible de disparaître sans préavis : si elle vous plaît, faites-en une copie, si vous arrivez trop tard, consultez archive.org). Ça fait quelque chose (si ça plante votre navigateur, d'ailleurs, ne venez pas vous plaindre, c'est le principal effet répertorié de WebGL), mais ça ne fait pas ce que je veux.

Enfin, chez moi, ça ne marche pas sous Chrome (je ne sais pas pourquoi : j'ai eu beau essayer avec --enable-webgl --ignore-gpu-blacklist il me dit bien qu'il trouve une accélération 3D mais il refuse de créer un contexte WebGL), et sous Firefox ça affiche un gros blob noir dont on devine une vague ressemblance avec ce que je veux, mais d'abord je n'ai pas réussi (et même pas vraiment essayé) de tracer les points, juste les lignes, et de toute façon le problème le plus sérieux est qu'il n'y a pas d'antialiasing, donc on n'y voit rien du tout parce que les lignes sont trop épaisses.

Pourtant, je crois bien avoir explicitement demandé à WebGL de faire de l'antialiasing et de tracer des droites d'une épaisseur de 0.25 pixels — si quelqu'un connaît WebGL et peut lire mon code, je serai ravi d'avoir confirmation — et normalement si j'en crois ce bug (et le fait qu'il soit marqué comme fixed pour Firefox 10, qui est bien ce que j'ai) ainsi que cette page, l'antialiasing dans WebGL devrait marcher sous mon Firefox 10, y compris sous Linux, mais visiblement ce n'est pas le cas. Je réesserai sur une machine utilisant une carte graphique différente (nVidia), mais je suis sceptique.

(Peut-être que je suis censé faire plus pour demander des lignes antialiasées que gl.lineWidth(0.25) et gl.enable(gl.SAMPLE_COVERAGE), mais comme je ne comprends pas vraiment ce que ces choses font, je suis perplexe. Par exemple, cette page suggère que peut-être je devrais essayer gl.enable(gl.LINE_SMOOTH) mais je suis tout embrouillé — je crois vaguement comprendre qu'il y a deux implémentations totalement indépendantes de l'antialiasing sous OpenGL, le multisampling et LINE_SMOOTH, mais je ne suis pas sûr.)

Enfin, si certains de mes lecteurs voient quelque chose de joli, c'est-à-dire avec des droites très fines comparables au dessin de l'entrée précédente, et pas un gros pâté noir, je veux bien savoir ce qu'ils ont comme configuration logicielle et matérielle.

(jeudi)

La beauté du système de racines E8

[Une projection de E8]Parmi les objets mathématiques qui me fascinent complètement, un des plus beaux et des plus remarquables est certainement le système de racines de E8 (ou du moins tout le cortège d'objets mathématiques plus ou moins liés à E8 : le système de racines, les polytopes associés et leur groupe de Weyl, le réseau des poids, les groupes de Lie ou de Chevalley associés, les immeubles de Tits qui en découlent et les variétés de drapeaux en question, etc. : il y a plein de choses auxquelles on pense quand on dit E8). Sans rentrer dans les détails mathématiques, disons qu'il s'agit ici d'un solide semi-régulier en dimension 8 (pas exactement régulier — il n'y a que trois solides réguliers à partir de la dimension 5 et ils ne sont pas très amusants — mais uniforme), le plus grand et le plus remarquable d'une famille de cinq objets exceptionnels ; il s'agit aussi des points les plus proches de l'origine dans un certain réseau cristallographique aux propriétés mirobolantes[#].

J'avais déjà fait une page interactive à son sujet (que je devrais d'ailleurs retravailler un peu), mais je reste sur ma faim : cette page ne laisse pas vraiment voir la beauté de l'objet, parce qu'on ne le voit pas bouger.

Bref, je voulais me faire une image du système de racines de E8 en train de tourner et d'exhiber quelques unes de ses impressionnantes symétries.

Le problème est que le polytope dont je parle a 240 sommets et 6720 arêtes[#2], et que tracer 6720 arêtes 25 fois par seconde ça a l'air un chouïa trop rapide pour une bête application en JavaScript sur Canvas (enfin, si quelqu'un trouve moyen d'optimiser ça et peut m'expliquer comment faire, je suis preneur ; le calcul des projections de 240 points, lui, devrait être très rapide). [Mise à jour : voir néanmoins cette page.] À défaut, je me suis fait une vidéo, que j'ai entre autres mise sur YouTube ; bon, l'ennui, c'est que la compression drastique que YouTube fait subir à ses vidéos fait que c'est en fait épouvantablement moche (surtout dans la deuxième partie de la vidéo, celle où ça tourne très vite), ce qui est dommage pour quelque chose censé être d'une beauté ineffable : j'en ai donc aussi fait une version en plus haute qualité à télécharger (170Mo ; le lien qui précède pointe sur un fichier BitTorrent[#3], si ça ne marche pas, vous pouvez réessayer sans l'extension .torrent pour télécharger directement le fichier WebM), ce n'est toujours pas très satisfaisant, il y a encore des artefacts de compression et aussi des artefacts d'aliasing dans le tracé, mais bon, c'est quand même joli à regarder (et certainement mieux que l'horreur qui a atterri sur YouTube).

Les premières 1′30″ montrent différentes petites rotations du polytope pour illustrer certains de ses plans de projection à haute symétrie (à 10″ on voit une symétrie d'ordre 30 appelée figure de Petrie, à 20″ une symétrie d'ordre 20, à 30″ une symétrie d'ordre 24, à 50″ une symétrie d'ordre 18, à 1′10″ une symétrie d'ordre 14). Les 2′30″ restantes sont différentes : cette fois, on revient toutes les 10″ à une projection équivalente, après avoir fait une rotation qui laisse le polytope symétrique (ça tourne donc beaucoup plus vite, et c'est cette partie-là qui a été le plus complètement massacrée par la compression vidéo sur YouTube).

Bizarrement, le plus difficile dans l'histoire a surtout été d'écrire le code qui interpole une rotation discrète en un mouvement continu (ou, de façon mathématiquement plus précise, qui inscrit une transformation orthogonale directe au bout d'un groupe à un paramètre de telles transformations[#4]).

[#] Par exemple, concernant le problème de savoir combien de sphères identiques on peut placer en contact avec une sphère donnée (sans qu'elles se chevauchent, bien sûr), la réponse est connue en toute petite dimension (≤4), en dimension 8 grâce à E8, en dimension 24 grâce au réseau de Leech (un autre réseau aux propriétés mirifiques), et c'est tout. Donc en fait je pourrais définir mon polyèdre E8 de la façon suivante : placez 240 sphères toutes identique autour d'une autre (également identique) en dimension 8, il n'y a essentiellement qu'une seule façon de faire ça, et les centres des 240 sphères forment le polyèdre dont je parle. Mais bon, il est plus simple de dire constructivement que mes 240 points sont ceux qui ont les coordonnées (±1,±1,0,0,0,0,0,0) (pour un choix quelconque de deux coordonnées non nulles et deux signes indépendants, ce qui fait 112 points) ou bien (±½,±½,±½,±½,±½,±½,±½,±½) (pour un nombre pair de signes moins, ce qui fait 128 points).

[#2] Il a aussi 60480 faces, qui sont des triangles équilatéraux, 241920 trois-cellules (c'est-à-dire les faces de dimension 3), qui sont des tétraèdres réguliers, 483840 quatre-cellules, qui sont des 4-simplexes réguliers, 483840 cinq-cellules, qui sont des 5-simplexes réguliers, 207360 six-cellules (dont 138240 relient une facette 7-simplexe à une facette 7-croix et 69120 relient deux 7-croix), et enfin 19440 facettes (=sept-cellules), 17280 étant des 7-simplexes réguliers et 2160 étant des octaèdres généralisés (des 7-croix). Enfin, son groupe de symétries (le groupe de Weyl de E8) est d'ordre 696729600 (et il est isomorphe, à un facteur 2 près, au groupe des transformations préservant une forme quadratique déployée de rang 8 sur 𝔽8).

[#3] Mon organisation BitTorrent, basée sur XBT est d'ailleurs épouvantablement bordélique, mal foutue, et probablement bourrée de trous de sécurité inquiétants. Mais je n'ai jamais réussi à trouver un tracker et client BitTorrent qui me satisfassent (notamment, sans PHP), à utiliser en ligne de commande (sur des machines qui sont essentiellement des serveurs) ; si quelqu'un a des suggestions, je suis preneur. Je devrais peut-être essayer la combinaison opentracker et rTorrent, ce sera peut-être plus agréable que l'horreur que j'ai actuellement.

[#4] En principe c'est très facile : on veut calculer Mt, pour M une transformation orthogonale directe, avec t variant de 0 à 1 : on calcule une matrice P de vecteurs-propres de sorte que D:=P·M·P−1 soit diagonale, et on calcule P−1·Dt·P pour différentes valeurs de t. Le problème est que M peut avoir la valeur-propre −1, auquel cas (−1)t a un problème de détermination (si on ne fait pas attention, on va se retrouver avec une matrice complexe et pas une matrice orthogonale réelle comme on le veut) : il faut donc trouver une base orthogonale de l'espace propre de −1 (et commencer par en trouver une base réelle, parce que les approximations numériques peuvent faire que le calcul initial donne des résultats complexes), puis fabriquer une matrice diagonale par blocs 2×2 de rotation d'angle 2π·t, bref, c'est lourdingue d'avoir quelque chose d'un peu robuste numériquement.

(lundi)

Debian wheezy, gcc-4.3 et autres petites merdes

Acteur numéro 1 du drame : la distribution GNU/Linux Debian, qui sort une nouvelle version toutes les années bissextiles multiples de 27. Acteur numéro 2 : le compilateur gcc, qui sort des nouvelles versions assez souvent (enfin, quand on compare à Debian), et qui prend un plaisir malin à casser la compatibilité ascendante dès qu'ils le font. Résultat de l'interaction : chaque version de Debian inclut une demi-douzaine de versions de gcc. Comme leur main d'œuvre est limitée, leur support ne s'étend pas jusqu'aux versions de gcc du siècle précédent, i.e., de la version précédente de leur distribution.

En l'occurrence, la version de Debian en cours de préparation, wheezy (celle qui sortira en 2075 si on a de la chance), comprend les versions 4.4, 4.5 et 4.6 de gcc. La précédente, squeeze (celle qui est sortie autour de 1967), comprend les versions 4.1, 4.3 et 4.4 (je ne sais pas pourquoi la 4.2 n'a pas eu cet honneur, et je ne veux pas trop le savoir). Remarquez qu'on a de la chance : il y a une intersection non nulle (pas sûr que ça dure).

Maintenant, les choses se compliquent : quand on compile un noyau Linux, on doit tout compiler (tout, c'est-à-dire modules et noyau proprement dit) avec la même version de gcc (comme je disais, ils aiment bien casser la compatibilité ascendante, ce ne serait pas drôle de définir une fois pour toutes une ABI). Comme on se méfie de ce qui est à la pointe du progrès, les développeurs Debian ont décidé que pour le noyau qu'ils fournissent avec la distribution squeeze, ce serait le 4.3.

Le lecteur attentif aura remarqué que 4.3 n'apparaît pas dans la liste des gcc fournis par wheezy. Fournir le compilateur utilisé pour le noyau par la précédente version de notre distribution ? Vous n'y pensez pas, ma brave dame.

Normalement, on devrait pouvoir s'en sortir quand même : le système de packages est le même, après tout, et installer un package d'une version de la distribution sur la version immédiatement après ne devrait pas être rigoureusement impossible. Parfois ça marche, en effet. Mais là, manifestement, ce n'est pas possible (il y a vraisemblablement eu une incompatibilité dans une bibliothèque qui n'a pas été signalée par un changement de numéro de version, ce qui rend l'installation simultanée des versions 4.3.5 et 4.4.x de gcc impossible) ; problème qui devrait être résolu avec la version 4.3.6 de gcc, mais quelqu'un chez Debian a décidé que ça ne valait pas la peine de faire l'effort de packager ça (remarquez le tag wontfix dont la traduction en langage plus fleuri est : allez vous faire enculer à sec avec du gravier). Je viens de passer des heures — qui auraient aimé être employées à des activités plus utiles — à essayer de construire moi-même un package Debian pour gcc 4.3.6 sur Debian wheezy (à partir du package de gcc 4.3.5), sans succès, la montagne des patchs appliqués est beaucoup trop énorme pour qu'on puisse juste changer la version comme ça, et même si je fais toutes sortes d'horreurs pour la traverser quand même je tombe sur ce problème insoluble.

Bref, la seule façon de compiler des modules noyau pour une machine sous Debian squeeze, c'est d'avoir une autre machine sous Debian squeeze sous la main pour faire la compilation. Moi qui ai l'habitude d'installer la Debian stable (donc squeeze en ce moment, justement) précisément sur mes machines qui ne sont pas assez puissantes pour faire des compilations (parce que ce sont aussi celles sur lesquelles je n'ai pas envie de mettre à jour des packages tout le temps), me voilà bien puni d'avoir choisi cette distribution. Seule solution que je voie : tout réinstaller à zéro (par exemple dans une machine virtuelle).

(samedi)

Lois mémorielles, responsabilité collective, et autres âneries

En essayant d'aller au séminaire Bourbaki cet après-midi, je suis tombé sur une (assez importante) manifestation de gens qui portaient le drapeau turc — j'imagine donc qu'ils protestaient contre une proposition de loi fort stupide tendant à réprimer la négation du génocide arménien, et dont la presse à beaucoup parlé suite aux couacs diplomatiques qu'elle a provoqué avec la Turquie.

(Il est difficile de trouver exactement de quel texte il s'agit tant la catégorisation des textes en travaux sur les sites Web des deux assemblées est épouvantablement mal faite. Je pense qu'il s'agit de cette proposition-ci, qui doit être examiné par le Sénat d'ici quelques jours, la commission des lois proposant l'irrecevabilité. Remarquons au passage que par rapport à la proposition initiale, le texte finalement voté par l'Assemblée a de toute façon perdu toute référence spécifique à l'Arménie. D'un autre côté, il existe au moins une proposition extrêmement proche venant du Sénat, à peu près au même moment, et qui n'a jamais été inscrit à l'ordre du jour, et encore une, plus ancienne, qui a déjà été rejetée par le Sénat : ce serait sympa si les webmasters mettaient des petits liens comme ne pas confondre avec pour aider à s'y retrouver entre des textes au Contexte très semblable.)

Les raisons pour lesquelles je qualifie cette proposition de loi de fort stupide — et je le pense aussi dans une large mesure de l'article 9 de la loi « Gayssot » — sont exprimées de façon bien plus éloquente que je ne saurais le faire par Robert Badinter à propos d'un texte très proche. Et de toute façon j'ai ranté sur des sujets proches lors des nombreuses fois où je me suis lamenté du mal qu'ont les gens à comprendre la différence entre les modalités je suis contre <truc> et je suis favorable à l'interdiction de <truc> (voyez notamment ici, et ). Donc je n'insiste pas.

Mais les ennemis de mes ennemis ne sont pas forcément mes amis, et on peut protester contre une loi stupide pour des raisons également stupides (c'est le genre de choses qui me cause des douleurs intenses au cerveau comme à cette occasion — par coïncidence également à propos de la Turquie). Et je crois comprendre que l'argument des manifestants n'est pas tant cette loi fait un obstacle injustifié à la liberté d'expression (pour arborer le drapeau d'un pays ayant des lois indescriptiblement stupides qui condamnent non seulement les attaques à la nation turque mais même la mémoire de son fondateur, ce serait un chouïa ironqiue), mais plutôt un mélange entre ce génocide n'a pas eu lieu ou n'est pas un génocide (ce qui est assurément faux, même si je pense qu'on devrait avoir le droit de l'affirmer sans risque de prison) et aussi cette loi vise directement à nous insulter ou à insulter la Turquie (ce qui fait pas mal bugguer mon cerveau).

En fait, je ne comprends décidément pas bien pourquoi les habitants des pays dont les habitants ou dirigeants passés ont pu commettre des crimes sont tellement réticents à reconnaître ces crimes, ou pourquoi ils y voient une insulte. (Enfin, pas tous les pays : l'Allemagne en a fait un paquet pour ce qui est du mea culpa.) Pour ma part, je ne crois absolument pas — j'en déteste profondément l'idée — à la responsabilité collective ou à la transmission d'une faute des parents sur leurs enfants[#]. Aucun des participants du génocide arménien n'est actuellement vivant, et ceux qui pensent que les crimes qu'ils ont pu commettre rejaillissent sur les gens qui de nos jours ont le hasard d'être nés le même pays (si tant est d'ailleurs que la Turquie moderne soit effectivement le même pays que l'empire ottoman…) ont un problème. Que ce soient ceux qui croient attaquer ou ceux qui se croient attaqués. Et pour ma part, si les autorités, les citoyens ou l'armée d'un des pays dont j'ai la nationalité (ce n'est pas comme si je l'avais choisie) ont commis des crimes, entre 1940 et 1944 ou entre 1954 et 1962, ou je ne sais quand, je m'en sens responsable à exactement 0%. Aussi, quand le premier ministre turc a suggéré que la France devrait reconnaître ses propres crimes vis-à-vis de l'Algérie, j'ai espéré que parmi ces parlementaires qui croient apparemment utile de légiférer sur ce que l'État reconnaît ou pas, et au-delà de ça sur ce que ses citoyens peuvent dire à ce sujet, il y en aurait pour avoir le culot de dire, d'accord, ajoutons ça aussi à la loi : et j'aurais été très curieux de savoir comment M. Erdoğan aurait réagi à ça. Malheureusement, les députés en question ne semblent pas joueurs, ou pas très honnêtes avec eux-mêmes.

J'aimerais aussi savoir comment les gens réagiraient si on parlait de reconnaître officiellement les crimes de la république romaine qui a fait raser Carthage, vendre ses habitants comme esclaves et verser du sel sur la terre pour que rien n'y repousse.

[#] Et bien sûr, je ne crois pas plus à la transmission hériditaire du statut de victime (suivez mon regard) que pour celui de criminel. On a tendance à l'oublier, mais c'est écrit dans le terme même de crimes contre l'humanité : vouloir marquer une nation comme criminelle et une autre comme victime, c'est nier la dimension universelle de ces crimes, et c'est oublier que s'ils ressurgissent ce sera sous un déguisement différent, que le criminel et la victime ne seront pas les mêmes. Seuls ceux qui ont participé à des crimes doivent se sentir coupables, mais tous les hommes doivent se sentir avertis de ce que notre espèce est capable de faire, pas plus un pays qu'un autre.

(jeudi)

Les secondes intercalaires sont (temporairement) sauvées

Un vote qui proposait d'abolir les secondes intercalaires (et transformer le temps universel coordonné en un simple décalage constant du temps atomique international) a été repoussée jusqu'à 2015.

Personnellement, mon avis sur la question est très tranché, je pense qu'on devrait conserver ces secondes intercalaires, et apprendre à les gérer correctement (parce que pour l'instant ce n'est franchement pas le cas) : peut-être qu'après que tous les systèmes informatiques géreront parfaitement à la fois TAI et UTC on pourra décider de baser le temps civil sur l'un plutôt que l'autre, mais pour l'instant c'est capituler devant une difficulté qu'on a tous les moyens de résoudre parfaitement ; et en tout cas garder le nom de temps universel coordonné pour autre chose qu'un temps universel, c'est vraiment inacceptable. Et les secondes intercalaires sont une occasion de faire la fête. Si on n'est pas content du mécanisme il faut s'en prendre à Newcomb, qui est mort depuis un siècle alors il s'en fout.

Mais mon avis est surtout apparemment assez largement partagé par la communauté scientifique utilisatrice d'échelles de temps précises (pour ceux qui ont la flemme de lire, ce petit sondage informel — dont on peut évidemment critiquer la méthodologie mais qui a quand même été fait sur 438 personnes, ce qui n'est pas mal sur un sujet aussi ultra-spécialisé — donne 75% de réponses favorables au statu quo).

Ce qui m'inquiète un peu, dans l'histoire, c'est qui décide. Il me semble que cette question devrait être dans les mains de la CGPM et pas de l'ITU. Mais surtout, concrètement, qui nomme les délégués nationaux qui prendront au final cette décision, et sont-ils bien représentatifs ? Parce que l'article de la BBC lié ci-dessus signale que la France a voté en faveur de l'abolition des secondes intercalaires, alors j'aimerais bien savoir qui au juste a pris cette décision pour la France[#], au nom de quelle autorité, et comment elle a été faite : et s'il est vrai que la communauté scientifique est favorable à 75% au maintien des secondes intercalaires, elle est fondée, je pense, à demander des comptes à des délégués qui ont voté dans une direction sérieusement différente. Les mécanismes de lobbying, sur un domaine aussi pointu doivent être sacrément difficiles à démêler : je suppose que tout revient à un type au ministère de l'industrie de chaque pays, qui vote avec son pipotron ou ses connivences, et ce type doit être à peu près impossible à trouver pour l'engueuler.

Ajout () : On me fait la remarque suivante, qui me semble assez sensée : il y a sans doute un certain nombre de pays dont l'heure civile est légalement définie à partir d'une expression vague telle que temps universel ou même heure solaire moyenne à Greenwich, expression qu'il est raisonnable d'interpréter comme désignant UTC dans son fonctionnement actuel (c'est-à-dire avec des secondes intercalaires, et restant à ±1s de UT1). En revanche, si les secondes intercalaires sont supprimées, cette interprétation ne sera plus raisonnable, et ces pays devront soit modifier leur législation, soit adopter UT1 (ou encore une autre variante) comme base pour le temps légal, soit maintenir leur propre système de secondes intercalaires, soit risquer de se retrouver avec des contestations juridiques. Donc supprimer les secondes intercalaires n'est pas forcément innocent, et il ne suffit pas que l'ITU déclare qu'on n'en fera plus pour que ça se passe sans problème. Ou pour dire les choses autrement : comprendre le temps universel comme UTC (secondes intercalaires) peut se contenter d'un simple accord informel entre scientifiques (encore qu'il paraît que le Danemark n'est pas d'accord déjà avec cette interprétation), mais ça ne marche plus si on supprime les secondes intercalaires. Bref, il se pourrait qu'il fallût un traité en bonne et due forme, voire que le temps universel soit aussi impossible à réformer que le calendrier grégorien.

[#] Décision assez paradoxale, en somme, de la part de la France, parce que le service de rotation de la Terre, qui décide les dates des secondes intercalaires, est essentiellement français dans les faits. (J'imagine bien que ces gens ne se retrouveraient pas au chômage si l'ITU change les règles, mais c'est quand même un peu paradoxal.)

(lundi)

Un joli livre de géométrie

Je mentionnais récemment que je n'écrivais pas beaucoup sur ce blog de critiques de livres. Il est encore plus vrai que je n'écris pas beaucoup de critiques de livres de maths : ce n'est pas que je n'aie pas de livres de maths préférés, bien au contraire, mais la difficulté extrême que je trouve à critiquer un tel livre est que je ne parviens généralement pas à séparer mon appréciation du sujet de celle de la forme (au moins dans le cas où les deux me plaisent). Par exemple, un de mes livres de maths préférés est Algorithms in Invariant Theory de Bernd Sturmfels, dont j'ai déjà parlé, mais en vérité il est difficile de savoir si je l'aime parce que la présentation est excellente ou simplement parce que les théorèmes sont très beaux (auquel cas l'auteur n'y est pas pour grand-chose : c'est juste que je trouve que la théorie des invariants est un petit bijou de mathématiques). Il y a bien sûr des cas où on sait distinguer : par exemple, pour tout livre écrit par Conway, on sait que le sujet va être magnifique mais que l'exposition va être insupportable parce qu'il s'adresse à des génies comme lui et pas à des êtres humains comme vous et moi, et qu'en plus il fait des espèces de jeux de mots insupportables dans sa façon de nommer tous les objets.

Bref, je ne parle normalement pas trop de livres de maths, mais je vais faire une exception pour signaler un livre récent de Jürgen Richter-Gebert, Perspectives on Projective Geometry (A guided tour through real and complex geometry) (Springer 2011, ISBN 978-3-642-17285-4), sur lequel je suis tombé un peu par hasard il y a quelques jours dans la librairie Eyrolles. D'abord parce qu'il ne s'agit pas d'un livre de recherche : il s'agit d'un livre pédagogique qui peut s'adresser à un lectorat extrêmement varié, et même si le mathématicien professionnel n'y apprendra probablement pas grand-chose (en tout cas celui qui se spécialise en géométrie), je pense que beaucoup de gens peuvent l'apprécier, entre un bon lycéen passionné de géométrie et un agrégatif de maths à la recherche de développements originaux.

Pour être clair, et pour m'adresser à mes lecteurs non mathémeticiens qui ont peut-être l'idée que quand je dis géométrie je parle de quelque chose de complètement abscons (du style donnée une variété algébrique projective de dimension n et une section hyperplane dont le complémentaire est lisse, le morphisme de restriction de l'une à l'autre, sur la cohomologie à coefficients entiers, est un isomorphisme jusqu'en dimension n−2 et injectif en dimension n−1), là il s'agit vraiment de géométrie au sens où les gens normaux l'entendent, avec des points, des droites et des triangles. Ceci étant, il s'agit quand même d'un point de vue projectif, algébrique et très élégant : donc de la géométrie plutôt façon Poncelet et Klein que façon Euclide et Apollonios[#]. Donc on a à la fois des choses vraiment élémentaires sur des angles et des distances, et des outils plus sophistiqués venus justement de la théorie des invariants (bracket algebras — comment dit-on ça en français ?).

En vérité, et c'est surtout la raison pour laquelle je le mentionne, il s'agit d'un livre que j'aurais voulu écrire, et qui présente exactement la manière dont je pense la géométrie élémentaire. En tout cas, c'est certainement selon ces lignes que j'aurais fait ma présentation de la géométrie sur ce blog si j'avais eu le courage de la mener à terme. Ce qu'on m'a plusieurs fois reproché de ne pas faire, donc, ceux qui m'ont dit ça, lisez le livre de Richter-Gebert !

Qui plus est, c'est un très joli livre, avec des illustrations bien faites (ce qui n'est jamais mal pour un livre de géométrie, même si le proverbe dit qu'il s'agit de l'art de raisonner juste sur une figure fausse), et imprimé en couleur. Donc même si vous en trouverez certainement un exemplaire électronique diffusé par rayons cosmiques, je conseille vivement d'en prendre une version bouts d'arbres morts, qui n'est pas très chère et qui fera belle figure sur la table basse du salon.

⁂ Un autre livre, sur un sujet vaguement apparenté, que j'ai aussi acquis récemment, et que je ne recommande pas, en revanche, c'est d'Ernest E. Shult, Points and Lines (Characterizing the classical geometries), qui porte sur la géométrie d'incidence. J'espérais y lire des choses qui m'éclairent un peu sur les immeubles et les quotients paraboliques des groupes algébriques réductifs vus comme des géométries, et le genre d'idées sur lesquelles je ne connais que le trop pléthorique et assez indigeste livre de Boris Rosenfeld, Geometry of Lie Groups. L'intention pédagogique de Shult est excellente en ce qu'il a fait un livre self-contained, mais le résultat est malheureusement un fouillis abscons de termes ultra-techniques qui me laisse exactement aussi peu Éclairé qu'au début et beaucoup plus embrouillé, et où il ne parle même pas de groupes de Lie ; et indépendamment du fond, beaucoup de termes sont utilisés avant d'être définis et ne figurent pas dans l'index, ce qui est à peu près rédhibitoire : par exemple, il dit tout un tas de choses sur les espaces métasymplectiques et leur caractérisation, et je n'ai pas réussi à trouver où il en a caché la définition ! C'est d'autant plus dommage que je pense qu'il y aurait eu le moyen de faire quelque chose d'excellent.

[#] Anecdote gratuite : j'ai un ami qui a fait un développement d'agreg sur les coniques sans jamais parler d'ellipse, parabole ou hyperbole. Rached Mneimné, qui était dans son jury, le lui reprochant, lui a dit : Je pense que votre leçon n'aurait pas plu à Archimède. Et il aurait répondu : Mais peut-être qu'elle aurait plu à Poncelet ? (enfin, non, en vérité, malheureusement, il n'a pas eu le culot de dire ça — mais il aurait voulu et eu raison de le faire, et du coup je raconte sans vergogne l'anecdote ainsi arrangée en espérant qu'elle devienne une jolie légende urbaine).

❄ Tiens, et pour ceux qui aiment la géométrie projective, voici une question à 0.02 zorkmids à laquelle je cherche toujours une solution simple et élégante : soient C et D deux coniques planes en position assez générale, p1,p2,p3,p4 leurs quatre points d'intersection, et 1,2,3,4 leurs quatre tangentes communes (c'est-à-dire les intersections des coniques duales C* et D*). Montrer que, quitte à réordonner les points, le birapport de p1,p2,p3,p4 sur C est égal au birapport de 1,2,3,4 sur D*. (Ce dernier étant le birapport sur D des quatre points de tangence de 1,2,3,4. On peut aussi éventuellement remarquer que le premier est aussi le birapport, dans le pinceau linéaire L de coniques engendré par C et D, de C,X,Y,ZX, Y et Z désignent les trois coniques dégénérées passant par p1,p2,p3,p4 ; et de même, le second birapport est aussi celui, dans le pinceau M de coniques simultanément tangentes à 1,2,3,4 de D,U,V,WU, V et W désignent les duales dégénérées qu'on devine. Mais peut-être que cette observation ne fait qu'embrouiller les choses.)

[Ajout () par rapport à la question précédente : cela revient plus ou moins à montrer qu'il existe une conique Γ telle que C et D soient polaires l'une de l'autre par rapport à Γ (car alors la polarité par Γ transforme p1,p2,p3,p4 en 1,2,3,4 à l'ordre près, ce qui implique ce qu'on veut sur le birapport) ; la conique Γ doit nécessairement admettre le triangle autopolaire commun à C et D comme on s'en persuade assez facilement ; on peut montrer son existence en considérant des coordonnés (x:y:z) pour lesquelles ce triangle autopolaire est donné par (1:0:0), (0:1:0) et (0:1:0), ce qui revient à diagonaliser simultanément les formes quadratiques définissant C et D : leurs équations deviennent, disons, cx·x² + cy·y² + cz·z² = 0 et dx·x² + dy·y² + dz·z² = 0, et Γ peut être définie par γx·x² + γy·y² + γz·z² = 0 où chaque γi vaut ±√(ci·di). Mais je voudrais quelque chose de purement géométrique.]

(vendredi)

Fragment littéraire gratuit #140 (à l'heure des choix)

Un vendeur de fleurs est entré dans le restaurant au moment où nous nous sommes assises. Opale a pris deux roses, une blanche et une rouge et me les a tendues, une dans chaque main, en me disant :

— Alors, qu'est-ce que ce sera, York ou Lancastre ?

— C'est un test ? ai-je demandé. Je suis obligée de choisir mon camp ?

— Bien sûr que c'est un test, a répondu Opale en riant. Rien de plus important que de décider de quel côté on veut être. Athènes ou Sparte ? Hannibal ou Scipion ? Marc-Antoine ou Octave ? Attila ou Aetius ? Grégoire VII ou Henri IV ? Saladin ou Lusignan ?…

— Et il faut forcément opter pour le vainqueur ? ai-je interrompu.

— C'est précisément la question. Victrix causa diis placuit, sed victa Catoni : la cause victorieuse a plu aux dieux, mais la vaincue à Caton.

Opale est restée un moment pensive, puis a ajouté :

— Cela me rappelle aussi une histoire à propos de Talleyrand. (Anecdote d'authenticité douteuse, et que ma mémoire déforme sans doute, mais peu importe.) Ça se passe l'après-midi du 28 juillet 1830, le vieil homme écoute de chez lui le brouhaha de la révolution, et voilà qu'une sonnerie se fait entendre. “Ah,” dit Talleyrand, “on bat le tocsin. C'est que nous triomphons.” Un ami lui demande : “Nous triomphons ? Mais qui est au juste ce ‘nous’ ?” “Ça,” répond Talleyrand, “nous le saurons demain.”

J'ai pris les deux fleurs à la fois, et je les ai rassemblées.

— Alors je choisis la rose Tudor, la rose de l'union.

— Bravo, m'a répondu Opale en souriant, je pense que tu as passé le test.

Puis elle est redevenue plus sérieuse :

— Trêve de préliminaires. La proposition que je veux te faire va te sembler étrange, et sans doute inquiétante, une fois que tu auras été convaincue qu'elle est vraie. Il s'agit de rejoindre une société secrète dont je ne peux te révéler que très peu sur sa nature à moins que tu acceptes, justement, d'en faire partie. Je l'appellerai simplement le “Conseil”. Il ne s'agit ni d'un culte ni d'une organisation politique. On pourrait dire qu'il s'agit d'un complot, même si c'est bien plus que cela, et toutes les théories dans ce sens se méprennent à la fois sur notre puissance et sur nos intentions : mais je ne peux pas en expliquer plus pour le moment. Je peux seulement t'assurer que nous nous cachons derrière les plus graves catastrophes de l'histoire de l'humanité : ce sont en effet les signes de chacun de nos échecs.

— Je suis censée te croire ? Ou je dois attendre la chute de la blague ?

Opale rit de nouveau.

— Peut-être que c'est un nouveau test…

[Ajout () : les trois derniers paragraphes.]

(jeudi)

Le Manuscrit trouvé à Saragosse

Je commence par une digression : j'ai peu tendance à parler sur ce blog de mes lectures et je n'ai même pas créé de catégorie pour les ranger, alors que je critique volontiers (quoique irrégulièrement) les films que je vois. Il y a sans doute quantité de raisons à ça : comme le fait qu'un livre se lise plus lentement qu'un film ne se voit (et du coup, quand j'arrive au bout, je n'ai plus vraiment envie de replonger dedans pour en parler). Ou comme le fait que les livres que je lis ne sont quasiment jamais des sorties récentes, du coup ce n'est pas de l'« actualité », ce n'est pas quelque chose que tout le monde peut découvrir à peu près en même temps, et bien sûr il y a cette règle tacite entre gens un peu snobs qu'un classique est quelque chose que tout le monde est présumé avoir lu, donc on ne va pas en parler, et de toute façon il est défendu d'en dire du mal. (Dans le même ordre d'idées, quand paraissent des critiques de CD de musique classique, la seule chose qu'on critique ou qu'on commente, c'est évidemment l'interprétation : c'est impensable de dire que cette sonate de Brahms est jolie.) Bref, je vais déroger à tout ce fatras.

J'ai fini (récemment, c'est-à-dire il y a une ou deux semaines) de lire le Manuscrit trouvé à Saragosse de Potocki. C'est un livre assez particulier puisqu'il est composé de beaucoup d'histoires qui se croisent et s'entrecroisent, ou parfois s'imbriquent à la manière des Mille et une nuits (c'est-à-dire qu'un personnage commence à raconter son histoire, dans laquelle un autre personnage commence, etc.) ; si les Mille et une nuits sont divisées (apparemment de façon un peu apocryphe) en nuits, le Manuscrit est formé de soixante-et-une journées (de la vie d'Alphonse van Worden). On pourrait presque parler de recueil de nouvelles, mais il y a tout de même une unité d'ensemble, des personnages qui traversent plusieurs histoires, et une conclusion finale. J'aime généralement beaucoup ce genre de livres protéiformes, et par exemple La Vie, Mode d'emploi ou Si par une nuit d'hiver un voyageur comptent parmi mes romans préférés : je pense que le Manuscrit trouvé à Saragosse en est un précurseur. Sur le fond, il s'agit d'histoires (pour la plupart situées en Espagne) tout à fait distrayantes et picaresques : il y est question de magie, de cabalistes, de revenants, de bandits, d'espions et de voleurs, mais aussi de femmes et de maris trompés, de déguisements et de quiproquos, de fouineurs invétérés, et de quelques savants dans le style encyclopédistes ; tout cela est agrémenté de nombreux coups de théâtre ; le ton varie entre le sérieux et le burlesque ; on se perd un peu entre les très nombreux personnages (j'ai regretté que mon édition ne prenne pas le soin de proposer un index), mais ce n'est pas bien grave pour apprécier. Il y a aussi quelques thèmes qui évoquent vaguement ceux de la pièce Nathan le sage (de G. E. Lessing), que j'aime aussi beaucoup, et que je recommande au passage.

Le livre lui-même du Manuscrit a une histoire assez mouvementée, puisque son auteur s'est suicidé avant de l'avoir publié et que ses manuscrits ont été longtemps perdus. Pendant longtemps, on n'a eu en français (la langue d'origine) qu'un fragment composé des dix premières journées et de la quatorzième, et quelques bouts épars ; le reste ne survivait que dans une rétrotraduction depuis le polonais (c'est-à-dire depuis une traduction polonaise de l'original français qu'on a cru perdu), et, qui plus est, dans un mélange de plusieurs versions. Car Potocki avait écrit deux versions du Manuscrit, l'une en 1804, foisonnante et inachevée, et reprenant ensuite son travail pour produire une deuxième version, en 1810, assez différente, beaucoup plus organisée et encyclopédique, avec une vraie conclusion (c'est celle-là que j'ai lue) ; et ces deux versions s'étaient mélangées dans ce qui avait été traduit en polonais puis retraduit en français (et qui comportait alors soixante-six journées). Ce n'est qu'en 2002 qu'on a retrouvé quasi intégralement ces deux versions.

J'avais déjà lu le début, mais c'était dans une édition qui ne publiait que la partie connue en français avant 2002, et donc cela se terminait en queue de poisson sans que je susse ce qui arrivait au héros. Ce n'est que plus tard que j'ai appris qu'on pouvait trouver une suite sans passer par le polonais. Les deux éditions (celle de 1804 et celle de 1810) sont publiées séparément par GF.

Pour la petite anecdote, je lisais ce livre dans le RER quand la personne assise en face de moi a vu le titre et m'a dit il est extraordinaire, ce livre, n'est-ce pas !. J'ai confirmé que c'était aussi mon avis, et je lui ai demandé s'il connaissait la péripétie (que je viens de raconter) autour de la publication : en fait, il n'avait lu — il y a longtemps — que la version chimérique retraduite du polonais, et je lui ai donc suggéré de tout reprendre.

Sinon, on m'a conseillé le Cabbaliste de Prague de Marek Halter (le rapport, c'est que la cabbale joue un rôle important dans le Manuscrit trouvé à Saragosse — ainsi que le Juif errant dans la version de 1804), en me disant que quelqu'un qui a aimé le livre de Potocki et qui aime beaucoup Eco devrait apprécier ce livre-là. Je l'ai acheté et je le mets assez haut dans ma liste de lecture.

(mercredi)

Comment désigner les jours prochains

Pour éviter le malentendu que mon poussinet a eu avec sa cousine, celle-ci ayant fait référence, dans un SMS envoyé avant-hier (=lundi 9), à mercredi 18 sous le nom de mercredi prochain et ayant répété hier à mercredi, voici la bonne façon de désigner les jours J+1 à J+11 pour éviter l'ambiguïté (en supposer qu'on soit un lundi, sinon transposer de façon évidente) :

Moralité, il ne faut pas dire <tel jour> prochain sauf si le jour est dans exactement sept jours : si c'est moins, préférer qui vient, si c'est plus, préférer en huit, qui lèvent l'ambiguïté. Il est souvent utile de rappeler le tantième entre parenthèses même si c'est redondant (la redondance a toujours du bon), et, si on dit demain ou après-demain, de le jour de la semaine entre parenthèses (utile pour les mails envoyés à un horaire proche de minuit, suivez mon regard).

(Et oui, c'est bizarre de dire en huit pour J+9, mais ça me semble quand même assez courant.)

(mercredi)

Les conneries publiées par Rue89 sur l'homophobie à l'ENS

On me pousse à réagir au sujet de cet article publié par le webjournal Rue89 et intitulé : Sexisme, homophobie, racisme… ou paillardise à Normale Sup ? Et, ayant passé environ onze ans dans cet établissement (quatre comme élève, quatre comme squatteur occasionnel et trois comme enseignant), et étant resté encore assez proche d'un certain nombre de gens qui le fréquentent, je me sens assez fondé à réagir ; surtout, ayant passé une bonne année à m'y afficher régulièrement, et pas du tout discrètement, avec mon poussinet (à nous faire des câlins quand nous ne nous roulions pas des pelles) et sans avoir jamais reçu, ni de la part des élèves ni de la part du personnel technique ou enseignant, la moindre remarque déplacée ni même un regard de travers, je crois que je suis en position de parler de l'homophobie, ou en l'occurrence de l'absence d'homophobie, à l'ENS. Et même sans être directement concerné je pense pouvoir dire un mot du sexisme, ou de nouveau de l'absence de sexisme.

En fait, c'est simple : tout, dans cet article, est faux, au mieux une déformation grotesque de la réalité, au pire une affabulation totale. Pour prendre un exemple parmi d'autres, l'affirmation l'un des DJ est un homophobe notoire, qui avait déjà agressé plusieurs personnes en raison de leur genre ou de leur orientation sexuelle signifie, en fait, qu'il y a eu une ou deux disputes entre ce DJ et des personnes pénibles et ivres (enfin, probablement les deux étaient ivres) parce que ces dernières voulaient décider la musique lors d'une soirée et que l'autre ne voulait pas, que la dispute s'est un peu échauffée, et que quelqu'un a conclu que parce qu'il/elle était trans, ou homo, c'était forcément le motif de la dispute.

Mais au-delà des faits inventés, c'est surtout l'ambiance rapportée qui est complètement fausse. Là aussi, comme je ne bois pas d'alcool et que je suis le premier à m'agacer de la manière dont la société fait passer la biture comme une composante obligatoire de toute soirée amusante, je m'estime assez bien placé pour dire que, justement, à l'ENS cette tendance n'est ni trop marquée ni trop envahissante. Oui, peut-être qu'une fois un type bourré a pissé dans une imprimante (et pas déféqué) : le fait est justement que ce genre de comportement anecdotique est totalement unique et représentatif de rien du tout. (Les imprimantes à l'ENS souffraient beaucoup plus des gens qui ne savaient pas lire les étiquettes et qui mettaient dedans des transparents pas faits pour lasers !)

Et je rajoute que je suis choqué qu'on banalise un terme comme le mot viol. Non, quand une personne légèrement éméchée accepte de coucher avec une autre et se rend compte le matin qu'elle a fait l'amour avec un(e) moche, ce n'est pas un viol. Utiliser ce terme de façon aussi triviale est une insulte pour toutes les personnes qui se sont vraiment fait violer.

Bon, ce n'est pas très important qu'un étudiant journaliste de 23 ans puisse rapporter des conneries sans prendre la peine de les vérifier (oh, certes, formellement il ne prend pas position, mais il donne quand même voix à des affirmations fantaisistes). Ce qui est plus inquiétant c'est, justement, qu'un site qui se prétend sérieux laisse n'importe qui publier n'importe quoi dessus. Je retiens pour savoir à l'avenir quoi penser de Rue89 en particulier, et dans une certaine mesure des journalistes français en général. Et je salue au passage mon ami David Monniaux, qui dénonce régulièrement sur son blog les erreurs ou inventions totales des journalistes, et dont ici une photo a été reprise pour illustrer l'article : ça doit lui faire bien plaisir.

(mercredi)

Bonne année, tout ça tout ça

Oui, ça fait assez longtemps que je n'ai rien posté. Il y a plusieurs raisons à ça. L'une d'elles est que comme mon poussinet a rendu son appartement à Bordeaux (pour en économiser le loyer), bien qu'il continue à y faire une thèse ce qui nécessite donc de nombreux allers-retours de sa part, nos horaires de vie ont été un peu changés, et je me retrouve indirectement avec moins de temps pour bloguer. On m'a souvent dit qu'un des commandements cardinaux du blogueur était : ne pas écrire pour dire qu'on n'écrit pas (les gens sont assez grands pour s'en rendre compte, ils n'ont probablement pas besoin qu'on pollue leurs flux RSS avec une entrée qui sert à dire je ne dis rien, et je le dis). Donc, pour ceux qui se seraient inquiétés, rassurez-vous, il m'est arrivé de laisser passer 36 jours entre cette entrée et celle-ci, et plus récemment 19 entre cette entrée et celle-ci (ce qui est bien avec les bases de données relationnelles c'est que ça permet de répondre à plein de questions stupides du genre quel est l'intervalle maximal entre deux entrées de mon blog ?) ; là je n'en suis qu'à 12, vraiment pas de quoi s'étonner.

Bref, bonne année 2012 à tous. Je ne sais pas trop quoi faire comme vœux que je n'aie déjà fait de nombreuses fois : à chaque fois que je crois dire quelque chose de malin sur un sujet périodique comme ça, je me rends compte que je radote terriblement (et ça s'applique probablement à cette réflexion-ciah ben oui voilà).

Que peut-on me souhaiter ? More of the same, tout simplement. Sans aller jusqu'à prétendre que j'ai une chance inouïe, je m'efforce de me rendre compte à quel point le râleur que je suis a pourtant une vie remarquablement heureuse et douillette, entre un copain que j'aime très tendrement, des amis nombreux et sincères, une famille présente à mes côtés, une santé dont mon hypocondrie n'arrive pas à nier qu'elle est excellente, un boulot sympathique, un logement où je me sens bien, plus d'argent que je n'en ai besoin, et pas trop de soucis dans une période de crise. Je ne sais pas quelle proportion des Français, ou des humains sur Terre, souscrirait à une telle description de leur situation, mais même parmi mes proches certains sont loin d'avoir autant de chance, alors c'est vers eux que mes pensées se tournent, et pour ma part j'espère que ça dure (tout en tâchant de me rappeler à quel point le bonheur est fragile et combien il faut tâcher d'en profiter).

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 Oct 2017 Nov 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