David Madore's WebLog

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

(jeudi)

Le Club contexte et le Gouvernement

Mon influence auprès des grands de ce monde est telle que j'ai réussi à ne pas être nommé Premier ministre ni à un poste quelconque au gouvernement (ni en France ni, d'ailleurs, en Grèce, ce qui aurait été encore bien plus catastrophique). Puisque je suis, donc, totalement rassuré sur mon sort, je reste à mes fonctions de directeur exécutif ex officio, secrétaire général pro tempore, administrateur ad hoc et semper fidelis du Club contexte qui noyaute la République de l'intérieur, et je vais vous parler des étiquettes gouvernementales.

Le fait que la Constitution de la Ve République française a été écrite sous l'influence du Club contexte se voit assez nettement quand on compare l'article 15 (Le Président de la République est le chef des armées), l'article 21 (Le Premier ministre […] est responsable de la défense nationale) et l'article 20 (Le Gouvernement […] dispose […] de la force armée) : quelqu'un de très fort a réussi à trouver des termes dont on ne peut pas dire qu'ils sont explicitement contradictoires, mais dont il soit néanmoins impossible de savoir exactement comment ça se fait qu'ils ne se marchent pas sur les pieds. Ce quelqu'un a dû prendre des cours dans ces administrations ou organisations qui sont capables d'avoir simultanément un président, un directeur exécutif, un secrétaire général, un administrateur en chef et pourquoi pas un grand mamamouchi sans qu'on sache comment ces fonctions interagissent.

Mais les choses avaient déjà bien commencé auparavant. La IIIe République avait donné (le 31 août 1871, par la loi Rivet) à Thiers le titre de président de la République parce qu'il était mécontent de celui de chef du pouvoir exécutif (concéder ce titre n'a pas empêché l'Assemblée, à majorité monarchiste, d'encadrer strictement la manière dont le président pouvait s'adresser à elle, dans ce que Thiers a qualifié de cérémonial chinois et dont l'absurdité subsite jusqu'à maintenant). Mais qui est, au juste, le chef du Gouvernement ? Il était prévu que ce fût le président de la République ; il devait avoir un adjoint : un décret du 2 septembre 1871 prescrit : Le Président de la République, en cas d'absence ou d'empêchement, délègue à l'un des ministres le droit de convoquer le conseil et de le présider. Le ministre délégué portera le titre de Vice-président du Conseil des ministres. Et de fait, jusqu'en mars 1876, sous les présidences de Thiers et MacMahon, c'est ce titre de vice-président du Conseil des ministres (le seul mentionné par les lois constitutionnelles de 1875) qui a été porté par Dufaure, de Broglie, de Cissey et Buffet ; puis, le 9 mars 1876, suite aux élections législatives ayant donné une majorité à la gauche républicaine, Dufaure revient avec cette fois le titre de président du Conseil (qui avait existé sous la Restauration et la Monarchie de Juillet, et disparu en 1849), et qui sera utilisé jusqu'à la fin de la IIIe et sous la IVe Républiques. Thiers avait démissionné en 1873 n'ayant pas pu s'entendre avec une Chambre royaliste, MacMahon démissionne en 1879 faute de pouvoir soumettre une Chambre républicaine : désormais, ce sera le président du Conseil le véritable chef du Gouvernement… même si c'est le président de la République qui formellement préside le Conseil [des ministres]. Le Club contexte salue toutes ces péripéties, donc.

Comme il n'était au départ qu'un ministre parmi d'autres (délégué, si on en croit le décret de 1871 cité ci-dessus, à remplacer le président de la République en cas d'absence ou d'empêchement), le président du Conseil avait, sous la IIIe République presque toujours et sous la IVe parfois, un portefeuille ministériel : généralement les Affaires étrangères (fréquent en 1879–1893 puis à partir de 1913 pour des raisons évidentes, voire la Guerre) ou l'Intérieur, parfois un autre (Finances, Justice, et pour Jules Ferry on sait que ça a été l'Instruction publique). Le premier président du Conseil sans portefeuille, fut Poincaré en 1928, et c'est devenu commun avec le Front populaire (Blum en 1936 était président du Conseil sans portefeuille) : à ce moment-là, on se remit à avoir aussi un vice-président du Conseil, avec un portefeuille (commençant en 1936 avec Daladier, à la Défense nationale et à la Guerre). Sous les gouvernements pléthoriques de la IVe République, il pouvait y avoir un président du Conseil sans portefeuille, plusieurs vice-présidents du Conseil eux aussi sans portefeuille, voire aussi plusieurs ministres d'État sans portefeuille (destinés à faire entrer au gouvernement toute la coalition au pouvoir), mais il arrivait quand même que le président du Conseil garde un portefeuille (comme Mendès-France, les affaires étrangères en 1954) : ce n'était plus la norme, mais ce n'était pas rare. Avec la Ve République, cette pratique est devenue l'exception (il n'y a eu que Barre, et encore, seulement jusqu'en 1978), je suppose qu'on peut dire qu'elle a complètement disparu sauf peut-être pour assurer un intérim (Bérégovoy a été brièvement ministre de la Ville en 1992 pour remplacer Tapie).

Il est par ailleurs intéressant de s'attarder sur le titre de président du Conseil et ses différents équivalents. L'Italie a aussi un presidente del Consiglio [dei ministri], tandis que l'Espagne a un président du gouvernement : presidente del Gobierno. L'Allemagne a, comme on le sait bien, un Chancelier [fédéral] ([Bundes]kanzler) — enfin, en ce moment, une Chancelière (Kanzlerin : je note d'ailleurs qu'ils ont pris le domaine bundeskanzlerin.de, ce qui est un peu idiot parce qu'on se demande ce qu'il va se passer le jour où ce sera de nouveau un homme ; ils auraient pu utiliser simplement le nom de Chancellerie fédérale, Bundeskanzleramt) : je ne vais pas rappeler le contexte des différents régimes qu'a connus l'Allemagne, c'est un peu compliqué, mais sous le Saint-Empire, le Chancelier de l'Empire, ou Archichancelier (parce que l'Empereur ne saurait avoir en ses princes électeurs que des archiserviteurs, par exemple un Archiéchanson — en la personne du roi de Bohême — pour lui servir le l'archi-vin, ou un Archimaréchal — en la personne du duc de Saxe — pour conduire ses archi-armées) était un titre partagé entre les archevêques de Mayence et de Cologne, respectivement sur les territoires d'Allemagne et d'Italie ; on va dire que c'est une sorte d'archinotaire (s'occupait-il des archi-ves de l'Empire ?). L'Autriche aussi a un Chancelier à la tête de son gouvernement (et la Suisse a aussi un Chancelier fédérale, qui d'ailleurs est aussi une Chancelière, mais il ne fait pas partie du Gouvernement, en l'espèce le Conseil fédéral, ou du moins, n'y a pas le droit de vote). Mais les Länder allemands — à l'exception de Berlin, Hambourg et Brême — ont à leur tête un poste dont le nom est semblable à celui de président du Conseil : Ministerpräsident (comprendre : ministre-président, au sens de président du Conseil des ministres du Land) ; c'est aussi le titre des chefs de l'exécutif des régions et communautés de Belgique, et aussi du royaume des Pays-Bas (mais pas des Länder autrichiens).

Mais ce sont nos amis les Anglais qui sont incontestablement les maîtres du Club contexte, avec leur constitution non écrite qui accumule les organes vestigiaux tels que le cœlacanthe passerait pour un symbole de modernité. Le Royaume-Uni, donc, a à la fois un président du Conseil (le Lord President of the [Privy] Council) et non pas un mais deux chanceliers (le Lord [High] Chancellor, et le chancelier de l'Échiquier ou Chancellor of the Exchequer), et aucun des trois n'est le chef du Gouvernement. La raison est que le Royaume-Uni tend à fabriquer des postes constitutionnels nouveaux à partir de ceux qui existent déjà, et ne supprime jamais vraiment des postes : comme le Saint-Empire avec ses archiserviteurs, le Royaume-Uni a un certain nombre de grands officiers, c'est-à-dire des fonctions officielles de l'État, dont certaines sont tombées en désuétude (il n'y a plus de Lord Grand Intendant du Royaume-Uni), d'autres ont été scindées (il n'y a plus un Lord Grand Trésorier, mais deux Lords du Trésor, le premier étant le Premier ministre et le second étant le chancelier de l'Échiquier), et encore d'autres sont devenues des titres plus ou moins automatiquement liés à certaines fonctions ministérielles (de même qu'en France le ministre de la Justice est également Garde des sceaux et garde effectivement le Grand Sceau de France). De même, l'ensemble du Gouvernement de Sa Majesté a une existence en tant que Cabinet, c'est-à-dire un des comités constituant le Conseil privé (Privy Council) du souverain ; c'est de ce Conseil privé qu'est formellement président le Lord Président du Conseil, mais de nos jours ce titre semble ne plus avoir une autre fonction qu'honorifique pour accompagner un ministère important (le titulaire est le vice-premier ministre Nick Clegg). Le Lord Chancelier et gardien du Grand Sceau du Royaume-Uni est ministre de la Justice, et, jusqu'à ce que des réformes récentes (effectuées notamment sous la pression de la Cour européenne des droits de l'Homme qui n'appréciait pas trop que la Chambre des Lords mélange des fonctions de pouvoir législatif, exécutif et judiciaire[#]), il cumulait aussi des fonctions à la chambre des Lords et des fonctions judiciaires.

Mais le chef du Gouvernement de Sa Majesté n'est ni le Lord Chancelier ni le Lord Président du Conseil, c'est le Premier ministre (Prime Minister) : un titre qui pendant longtemps n'a même pas existé officiellement, le titre vraiment officiel étant alors, comme je l'ai dit, celui de premier Lord du Trésor (First Lord of the Treasury), et c'est d'ailleurs sous cette fonction-là que le chef du Gouvernement occupe actuellement la résidence du 10 Downing Street à Londres. Il y a pu avoir jusqu'au 19e siècle quelque flottement sur l'équation entre Premier ministre et premier Lord du Trésor, mais elle est maintenant bien établie (ainsi que celle entre second Lord du Trésor et chancelier de l'Échiquier).

Le français ne permet pas la distinction entre Prime Minister et First Minister, mais les deux existent, et les Premiers ministres d'Écosse, du pays de Galles, et d'Irlande du Nord s'appellent First Minister. Pour donner encore plus de contexte, les chefs du gouvernement des différentes provinces canadiennes s'appellent Premier en anglais, ce qui est toujours Premier ministre en français, mais le terme anglais diffère donc de celui (Prime Minister) utilisé pour le Premier ministre de l'État fédéral du Canada.

Voilà pour le chef du Gouvernement. Ne croyez pas que l'œuvre du Club contexte s'arrête là.

Prenons les rangs ministériels : en France, l'ordre protocolaire suit l'ordre du décret de nomination du gouvernement, et on trouve essentiellement les rangs suivants : ministre d'État, ministre, ministre délégué, secrétaire d'État, sous-secrétaire d'État. Cette liste est un peu artificielle : il semble que les ministres délégués soient apparus après que les sous-secrétaires d'État avaient complètement disparu. Et rien n'oblige un gouvernement à faire usage de ces rangs : le gouvernement nommé hier ne compte pas de ministre d'État (uniquement des ministres et des ministres délégués), et je crois comprendre que l'intention est de ne pas nommer de secrétaires d'État non plus ; on peut aussi innover, par exemple Martin Hirsch avait été nommé Haut-commissaire dans le gouvernement de François Fillon, j'imagine qu'un président et un Premier ministre facétieux pourraient ajouter des titres comme Grand Argentier de France pour le ministre des finances et Chancelier de France pour le ministre de l'Économie, ce n'est pas plus ridicule que Garde des sceaux… Ou encore créer des délégué extraordinaire, chargé de mission spécial, vizir, etc. : ça ne prêterait pas plus à rire qu'un ministère du redressement productif (exemple choisi complètement au hasard). La différence entre ministre d'État et ministre semble être uniquement honorifique ; celle entre ministre et ministre délégué vient de ce que le ministre délégué ne dispose pas d'un véritable portefeuille ministériel (avec des départements) mais seulement d'une autorité subordonnée à celle d'un ministre de plein exercice (qui peut être le Premier ministre). Enfin, les secrétaires d'État n'assistent pas, en principe, au Conseil des ministres, mais j'imagine que celui-ci est convoqué spécialement à chaque fois donc qu'il n'y a aucune règle absolue. De toute façon, tout dans la composition du Gouvernement dépend de calculs politiques, de sensibilités à flatter et de messages à envoyer : je disais plus haut que sous la IVe République on a vu des ministres d'État sans portefeuille (sans portefeuille étant ici au sens fort, c'est-à-dire non seulement sans départements ministériels affectés mais même sans intitulé précis), dont le seul rôle semblait être d'assurer que la coalition parlementaire soutenant le Gouvernement fût reflétée dans celui-ci. Ça devait être assez reposant, d'être ministre d'État sans portefeuille : pour le coup, je pense que je ne refuserais pas.

Si en France les ministres (et a fortiori les ministres d'État) sont au-dessus des secrétaires d'État, c'est le contraire au Royaume-Uni : un Minister of State est en-dessous d'un Secretary of State, ce dernier étant le titre usuel d'un ministre du gouvernement du Royaume-Uni qui n'a pas un titre spécial, ou en plus d'un titre spécial. Soit dit en passant, il y a actuellement au Royaume-Uni une ministre d'État sans portefeuille (la baronne Sayeeda Warsi). Les sous-secrétaires d'État parlementaires sont encore en-dessous (et ne font pas partie du Cabinet).

Dans le genre, ce que je trouve le plus rigolo au Royaume-Uni, et qui bat largement le coup du ministre d'État sans portefeuille, ce sont les postes de Steward of the Chiltern Hundreds et Steward of the Manor of Northstead : en effet, on n'a pas le droit de démissionner de la Chambre des Communes, alors on a trouvé un artifice juridique pour le faire quand même, c'est de nommer ceux qui veulent démissionner à un poste complètement pipo (quoique réel), ou en fait deux en alternance, qui ont pour vertu d'être incompatibles avec le mandat de membre des Communes.

Aux États-Unis (où le président est également chef du Gouvernement, et où les ministères ne peuvent être modifiés que par une loi), une seule personne porte le titre de secrétaire d'État (Secretary of State), c'est le ministre chargé des affaires étrangères (actuellement Hillary Clinton), les autres ministres ayant le titre de secrétaire (Secretary), à l'exception du ministre de la Justice qui est appelé Attorney General (Procureur général ?) ; il y a cependant des gens qui ne font pas partie du Cabinet et n'ont pas le titre de Secretary mais qui ont en pratique un rang semblable à celui de ministre (et ne dépendent que du président), par exemple Administrator of the Small Business Administration.

Si on veut trouver des titres amusants aux États-Unis, on peut chercher à l'intérieur des administrations : par exemple, dans le ministère de la Justice, au-dessous du Attorney General, il y a un Deputy Attorney General, un Associate Attorney General, plusieurs Assistant Attorney General, plusieurs Deputy Assistant Attorney General parmi lesquels un Principal Deputy Assistant Attorney General, et il y a aussi parfois un Principal Deputy Associate Attorney General (mais pas en ce moment), et n'oublions pas le Solicitor General et toutes sortes d'autres jeux combinatoires sur le même thème.

Revenons de nouveau en France. Un autre domaine où le Club contexte peut exercer son pouvoir, c'est les étiquettes données aux actes juridiques. Il y a moins de fantaisie dans le domaine que dans les étiquettes des personnes que j'ai citées ci-dessus, et surtout que par le passé : on ne fait plus de nos jours d'édits, de sénatus-consulte, de rescrits ou de ces autres noms pittoresques qui eurent servi par le passé, plus guère de décrets-lois, et pas tellement d'ordonnances ; le Conseil constitutionnel rend des décisions, les tribunaux qui portent le nom de cour (plus la section du contentieux du Conseil d'État, et le Tribunal des Conflits) rendent des arrêts, et les autres tribunaux des jugements, et il doit y avoir aussi un certain nombre d'institutions qui émettent des avis, délibérations ; en droit européen, il existe des directives et des règlements communautaires ; le parlement vote des lois (organiques ou simples) et ratifie les traités internationaux préalablement signés, et le pouvoir exécutif prend des décrets, arrêtés, circulaires, instructions, notes de service. Je crois avoir à peu près tout listé. Les circulaires, instructions et notes de service (la distinction de nom semble assez arbitraire) servent uniquement à informer les services de l'Administration sans pouvoir créer de droit (autre qu'interne). La distinction entre décret et arrêté, en revanche, est plus intéressante, d'autant que les livres de droit que j'ai trouvés sont assez obscurs sur cette question.

Les décrets eux-mêmes sont subdivisés en décrets en Conseil d'État (ce qui signifie en fait, pris après avis du Conseil d'État), décrets en Conseil des ministres (signés du président de la République mais soumis à contreseing ministériel), et décrets simples, les arrêtés étant hiérarchiquement inférieurs à tous ceux-ci. On explique généralement que le président de la République et le Premier ministre prennent des décrets alors que les autres ministres (ainsi que les préfets, maires, etc.) prennent des arrêtés. C'est sans doute globalement vrai, mais c'est simplifié. Par exemple, le JO d'aujourd'hui (17 mai 2012) liste, pour le règlement pris par le Premier ministre, à la fois un décret et deux arrêtés, tous deux portant délégation de signature : le décret donne délégation à M. Serge Lasvignes, secrétaire général du Gouvernement, à l'effet de signer, au nom du Premier ministre, tous actes, arrêtés, circulaires et décisions, à l'exclusion des décrets (et idem pour ses adjoints) ; les arrêtés (1 et 2) donnent délégation à M. Christophe Chantepy, directeur du cabinet du Premier ministre pour l'un et à M. Jean-Pierre Guérin, chef de cabinet du Premier ministre (le Club contexte tient à saluer bien bas la distinction entre un directeur de cabinet et un chef de cabinet) pour en gros la même chose. Donc apparemment non seulement le Premier ministre prend bien parfois des arrêtés, mais en plus il délègue à d'autres gens le pouvoir de les signer, et d'ailleurs dans certains cas il le délègue par décret et dans d'autres cas, justement, par arrêté (alors que ça a l'air d'être exactement le même genre de choses). Est-ce juste une façon de dire que le secrétaire général du Gouvernement est quelqu'un de plus important qu'un directeur/chef de cabinet du Premier ministre ? A contrario, les ministres autres que le Premier ministre prennent normalement des arrêtés, et je crois comprendre que parfois ils prennent des décrets dans des cas explicitement prévus par la loi ou par d'autres décrets (cas trouvé par hasard dans Google, le décret nº63-1104 du 30 octobre 1963 relatif au régime d'allocations viagères des gérants de débits de tabac, précise que le taux de cotisation des gérants peut être modifié par décret du ministre chargé du budget, alors que d'autres choses sont fixées par arrêté : la valeur d'achat du point et la valeur de service du point sont fixées chaque année par arrêté du ministre chargé du budget). La logique est sans doute simplement que si un texte juridique supérieur (la Constitution, une loi, un décret) prévoit un certain type de règlement, c'est ce qui sera pris, et si le règlement est autonome ce sera normalement un décret s'il est pris par le Premier ministre ou un arrêté s'il est pris par un autre ministre (le président ne peut, si je comprends bien, prendre des décrets que dans un petit nombre de cas prévus par la Constitution) ; quant à la logique qui préside au fait que la norme supérieure prévoie un décret en Conseil d'État, un décret en Conseil des ministres, un décret simple, ou un arrêté, c'est sans doute lié à l'importance de la mesure envisagée et au degré de réflexion juridique qu'on veut lui imposer (un décret en Conseil d'État ne risquera pas d'être annulé par le Conseil d'État ; un décret ne peut pas être pris par délégation de signature).

[#] Je tire cette information d'un article de Lord Mance (membre de la nouvelle Cour suprême du Royaume-Uni) sur la constitution non écrite du Royaume-Uni, et qui décrit ainsi la réforme de section d'appel judiciaire la chambre des Lords (je recopie tout le passage parce que le lien est cassé au moment où j'écris) : The Lord Chancellor had for centuries occupied a central, although anomalous, position at the cusp of the three arms of state. He was a member of the Cabinet, Speaker of the legislative House of Lords, and Head of the English and Welsh Judiciary able to sit in and entitled to chair the Appellate Committee of that House. In Gilbert and Sullivan's Iolanthe, the Lord Chancellor enters, singing The Law is the true embodiment of everything that's excellent. It has no kind of fault or flaw. And I my Lords embody the Law. He was largely responsible for judicial appointments, though acting on advice and in accordance with increasingly formalised procedures. He was responsible for judicial conduct and discipline, although increasingly in conjunction with the day-to-day chief justices of the three United Kingdom jurisdictions, England, Scotland and Wales. The Strasbourg authorities were starting to focus on the anomalies of his position. Influential voices had also suggested that the Law Lords, although consisting of experienced judges and operating entirely non-politically, might be better understood if constituted into a separate Supreme Court.

(mardi)

Android, Wifi, certificats et autres âneries

Je continue mes râleries sur Android 4, parce que râler est la chose que je sais le mieux faire au monde : je ne veux cependant pas donner l'impression que tout est mauvais — il y a du bon et du mauvais, c'est juste que c'est plus satisfaisant pour les nerfs de se plaindre ce qui ne marche pas que de constater ce qui marche. Et en l'occurrence je parle de quelque chose qui ne marchait pas du tout sous Android 2 et qui maintenant marchouille mal.

Je commence par énoncer deux faits :

Fait nº1 : Je n'ai pas envie de verrouiller mon téléphone, que ce soit par un code PIN, par un dessin de déverrouillage, par un mot de passe, ou quoi que ce soit. Ceci tient à deux raisons : d'une part j'ai un compte mobile prépayé, donc si mon téléphone se fait voler, tout mon crédit m'est de toute façon perdu (certes je peux vouloir emmerder le voleur, mais pour ça j'essaierais plutôt de trouver un moyen de désactiver ou retrouver mon téléphone à distance) ; d'autre part, s'il m'arrive un accident, je trouve utile que quelqu'un de bien intentionné puisse récupérer mon téléphone et s'en servir pour appeler mes proches pour les prévenir, et pour ça il faut qu'il n'y ait aucun code de verrouillage. (Ce serait encore mieux, bien sûr, s'il y avait une configuration ou une application pour permettre d'appeler simplement certains numéros prédéfinis, mais faute de ça…)

Fait nº2 : À l'ENST Télécom ParisTech nous avons un Wifi interne qui est sécurisé par 802.1x, c'est-à-dire une usine à gaz qui fait qu'au lieu d'avoir simplement un mot de passe (ou une phrase de passe…) partagé spécifique au Wifi, c'est le mot de passe de nos comptes informatiques qui sert à s'authentifier. Ceci soulève immédiatement le problème suivant : mais du coup, comment évite-t-on que n'importe qui puisse extraire de mon téléphone le mot de passe en question, en créant simplement un Wifi (« troyen ») ayant le même nom public celui de l'ENST, auquel mon téléphone chercherait à se connecter, et auquel il révélerait donc mon mot de passe ? (Et de fait, je pense qu'on doit pouvoir extraire pas mal d'informations croustillantes en recréant des réseaux Wifi bien connus et en récupérant les tentatives de connexion vers eux. Je blâme déjà Android sur un point : il n'y a pas moyen d'enregistrer un réseau Wifi dans le téléphone en lui demandant de ne pas s'y connecter automatiquement dès qu'il le rencontre.)

Un élément de réponse est qu'on peut utiliser un mécanisme d'authentification où le client n'envoie pas simplement le mot de passe au serveur mais répond à un défi de celui-ci : ceci évite au moins qu'un faux serveur puisse récupérer directement le mot de passe — il ne pourra que faire une attaque « man-in-the-middle » en direct. Mais bon, ça ne change pas grand-chose au problème. La vraie réponse, c'est que le serveur (point d'accès Wifi) est censé fournir un certificat X.509 au client pour montrer qu'il est bien qui il prétend être et qu'il est raisonnable de lui confier le mot de passe (ou même la réponse à un défi sur ce mot de passe) : du coup, pas de problème, mais uniquement à condition que le client vérifie bien ce certificat et sache qu'il doit l'accepter.

D'où la nécessité de faire accepter à Android le certificat du Wifi de Télécom si je veux m'y connecter. Noter bien que ce certificat n'a rien de secret : c'est une clé publique, et d'ailleurs le certificat en question est publiquement accessible ici.

Bon, je passe sur la première crotte de ragondin qui est qu'il y a je ne sais combien de formats de certificats et que chaque format a lui-même je ne sais combien d'extensions possibles juste pour rendre les choses plus confuses. En l'occurrence, il semble qu'Android voulait un certificat au format DER avec l'extension .crt, et qu'on convertit un .pem en ça en faisant openssl x509 -outform DER -in wifi_certs.pem -out wifi_certs.crt (ce qui n'a pas été facile à trouver). Heureusement que je suis cryptographe, parce que je me demande comment le profane est censé comprendre tout ça. Mais j'en viens au point central de ma râlerie.

Android 4 a rajouté la possibilité d'ajouter un certificat externe (depuis la carte SD du téléphone), qui n'existait pas du tout sous la version 2. Très bien. J'applaudis.

Mais Android 4 a décidé qu'à partir du moment où on ajoute un certificat cryptographique, c'est une donnée hautement confidentielle, et que vous devez la stocker sous forme chiffrée (dans ce qu'il appelle le credential storage). Et pour ça, vous devez configurer un mot de passe (ou équivalent) qui servira à chiffrer ce stockage : et ce mot de passe sera nécessaire pour déverrouiller votre téléphone. C'est complètement crétin, parce que le certificat en question, il est complètement public comme je l'ai souligné ; et c'est d'autant plus crétin que le truc vraiment secret, mon mot de passe, lui, il est stocké en clair par Android (dans le fichier /data/misc/wifi/wpa_supplicant.conf) : bref, Android veut m'obliger à chiffrer quelque chose qui n'a rien de secret et ne me propose pas de chiffrer quelque chose qui l'est.

Et concrètement, il semble que les deux exigences soient incompatibles : ne pas verrouiller le téléphone, et pouvoir accéder au Wifi de Télécom sans que mon téléphone communique gentiment mon mot de passe à n'importe quel Wifi qui aurait le hasard ou la malice de s'appeler comme celui de mon bureau. Visagepaume !

Pour ne pas qu'on m'accuse de râler dans mon blog sans faire remonter les problèmes au bon endroit, mon bug-report est ici.

(lundi)

Comment remonter la piste des crottes de ragondin

Comme expliqué à l'épisode précédent, je goûte au sandwich glacé, i.e., Android 4. Voilà que je trouve une petite crotte de ragondin dans mon dessert : pas quelque chose de grave, mais qui m'agace un peu : quelqu'un a décidé que pour les connexions IPv6, le sandwich glacé en question utiliserait une adresse aléatoire fréquemment renouvelée, plutôt que l'adresse standard dérivée de l'adresse MAC de l'interface Wifi — voilà qui est bon pour les gens qui portent un chapeau en papier d'alu sur la tête et qui ne veulent pas qu'on identifie leur adresse, mais moi qui ne porte pas de tel chapeau je préfère que mon téléphone utilise des adresses stables, bref, je veux désactiver ces privacy extensions. Sous Linux, je sais comment faire : il faut mettre la clé sysctl net.ipv6.conf.wlan0.use_tempaddr à 0. Mais là on est sous Android : comment faire ? Ma première tentative a été d'écrire un script qui lance sysctl -w net.ipv6.conf.wlan0.use_tempaddr=0 dans les répertoires de démarrage (/data/local/userinit.d) : ça ne marche pas, il faut croire que quelqu'un change la clé ultérieurement.

C'est donc le point de départ d'un jeu de piste où on essaie de trouver quel chemin a suivi le ragondin pour arriver jusque là. Une petite recherche exhaustive de la chaîne dans tous les fichiers m'apprend que ce réglage use_tempaddr est probablement positionné par un processus démon appelé netd. De fait, je constate ici (vers les lignes 366–386) que quand ce démon reçoit une commande interface ipv6privacyextensions $iface enable (après, je ne sais pas par quel canal il reçoit des commandes, ni comment on lui en passe), il va écrire 2 dans /proc/sys/net/ipv6/conf/$iface/use_tempaddr. Une solution simple mais ignoble serait simplement de modifier le binaire de ce démon et de changer la chaîne en question pour mettre autre chose à la place, comme ça le démon échouera et ne fera rien. Mais comme je suis naïf, je voudrais faire propre. Remontons donc d'un cran. Qui passe cette commande au démon netd et comment ? Encore un petit peu de Google et je découvre que la classe com.android.server.NetworkManagementService (vers les lignes 451–462) a une méthode setInterfaceIpv6PrivacyExtensions qui envoie la commande en question au démon netd. Très bien, mais je ne sais pas ce que c'est que cette classe, ni comment on appelle cette méthode. Encore un coup de Google, et j'apprends que c'est la classe android.net.wifi.WifiStateMachine (vers la ligne 1983) qui décide d'appeler la méthode en question. Et là, le true est hardcodé : il y a un connard quelque part (celui qui a committé le code est un certain Irfan Sheriff, mais ce n'est pas forcément lui l'auteur ou le décideur) qui a décidé que je devais utiliser des adresses aléatoires. On retrouve l'attitude que je déteste chez Google, de décider les choses pour l'utilisateur au lieu de lui offrir une préférence (fût-elle un peu cachée) à choisir.

Bon, alors maintenant comment je me sors de ce merdier ? Le problème est qu'avoir accès au source est de peu de réconfort, parce que pour pouvoir changer quoi que ce soit, il faudrait recompiler, soit le fichier unique considéré (mais alors trouver comment faire pour recompiler un unique fichier dans les sources des frameworks Android, et ensuite, une fois ce fichier recompilé, comment le mettre en place dans le téléphone, ça risque de prendre un temps vraiment infini), soit tout Android, ce qui suppose de trouver les sources exactes de la version que j'ai utilisée, et la façon de recompiler, ce qui risque de ne pas être moins difficile (sans parler des dizaines de gigas d'espace disque et des dizaines d'heures que consommerait la compilation). Peut-être que je peux écrire une application Android qui demande les permissions pour parler soit à l'objet com.android.server.NetworkManagementService soit au démon netd pour leur ordonner de défaire ce qu'aura fait android.net.wifi.WifiStateMachine, mais rien n'est moins sûr (j'ai l'impression que les classes en com.android, contrairement à celles en android, sont des classes internes qui ne sont pas exportées vers les applications).

Finalement, je vais peut-être opter pour le patch binaire de ce démon netd (en espérant que le binaire n'est pas signé ou quoi que ce soit !). C'est quand même assez énervant que le ragondin ait réussi à dresser un mur aussi difficile à franchir, comme ça.

Ajout : De fait, remplacer /proc/sys/net/ipv6/conf/%s/use_tempaddr\000 par /dev/null\000 dans le binaire netd fait ce que je veux. Je vais me contenter de cette méthode crade.

Pour ne pas qu'on m'accuse de râler dans mon blog sans faire remonter les problèmes au bon endroit, mon bug-report est ici.

Troll : j'imagine que sur un iPhone, il y a une jolie petite case à cocher pour choisir si on veut les privacy extensions sous IPv6.

(lundi)

L'angoisse de Matignon

Demain (si j'ai bien suivi), on devrait connaître le nom du prochain malheureux, ou de la prochaine malheureuse, qui devra se farcir toutes les emmerdes de la France pour une durée indéterminée[#]. S'il y a un dessinateur dans l'assistance, je veux bien un dessin représentant Chirac, Mauroy, Fabius, Rocard, Cresson, Balladur, Juppé, Jospin, Raffarin, de Villepin et Fillon, tous terrassés de fatigue (et enjambant le cadavre d'un Bérégovoy), posant ensemble le poids de la France sur le dos d'une figure encore voilée et qui l'accepte comme un Atlas résigné. Toujours si j'ai bien suivi, le président entrant a déjà choisi son collaborateur binôme (?) mais ne l'a encore annoncé à personne, pas même à l'intéressé(e) : je ne sais pas si la scène de cette annonce sera aussi cocasse que ce que Rocard raconte de 1988, mais j'espère que la victime a le cœur bien accroché ; en attendant, on imagine tous les potentiels premierministrables sortir des prétextes pour se défiler : ouhlà, je ne peux pas entrer au Gouvernement, le mercredi j'ai piscine ou ressortir une vieille condamnation de derrière les fagots (la belle excuse). Devenir président ça a un côté chic-paillettes-grand-collier-de-la-légion-d'honneur, ça fait toujours bien dans un dîner de dire qu'on est ou a été président de la République ; mais devenir Premier ministre, quelle horreur, on a aussi les codes de l'arme nucléaire[#2] mais tout le monde l'oublie, et ça ne fait pas du tout classe.

Bref, je ne serai complètement tranquille que quand j'aurai entendu que ce n'est pas moi qui suis nommé à Matignon.

[#] Ça pourrait être jusqu'à la mi-juin comme ça pourrait être jusqu'à 2017.

[#2] Je me suis toujours demandé quelle forme ils pouvaient bien prendre, ces fameux codes, parce que je vois mal M. Balladur retenir un truc comme HNo!Wk$I ; bon, peut-être qu'ils prennent une forme plus raisonnable (le code est Guy Mollet a reçu des tomates sur la tête, je répète, Guy Mollet a reçu des tomates sur la tête), la suggestion la plus raisonnable que j'aie entendu étant qu'il s'agit d'une carte sur laquelle se trouvent un certain nombre de codes dont un seul est correct, et c'est ça que le dépositaire doit mémoriser. M'enfin, je me demande aussi sous quelle forme ils seraient utilisés, les codes en question, et comment ils sont vérifiés à l'autre bout de la commande.

(dimanche)

J'essaie le sandwich glacé

Mon poussinet (qui avait gardé pendant longtemps mon premier téléphone Android que je lui avais donné quand je me suis acheté mon actuel HTC Desire Z) s'est acheté un HTC One X[#] sous Android 4 Ice Cream Sandwich. Son premier soin a été de remplacer cette version d'Android telle que proposée par HTC par une version beaucoup plus standard, en l'occurrence un CyanogenMod 9. Enfin, une version dérivée d'un CyanogenMod 9, parce que ce dernier en est encore à ses balbutiements, et n'est pas disponible pour ce téléphone : c'est un peu déplaisant, il faut chercher les images sur un forum, on ne sait pas très bien à partir de quelles sources elles sont compilées, etc., mais enfin, c'est toujours mieux que ce que propose HTC.

Du coup, j'ai voulu tester moi aussi le sandwich glacé : j'ai moi aussi récupéré un CyanogenMod 9 non officiel pour mon téléphone sur un thread obscur d'un forum. Il y a quelques bugs par-ci par-là, mais globalement ça marche (du moins, ce que j'ai testé marche).

M'enfin, je ne suis pas vraiment emballé. J'ai certes vu quelques améliorations : la police du système a beaucoup plus de caractères, le changement d'une application à une autre est plus commode, le copier-coller est beaucoup plus agréable, on peut savoir combien de données sont échangées sur le réseau mobile et mettre des limites dessus, l'application galerie permet maintenant de trier les photos par emplacement géographique, bref, il y a des choses positives, mais rien de vraiment transcendant. Par contre, je ne suis pas, mais alors pas du tout, emballé par les nouveautés dans les contacts : l'application de gestion des contacts a été complètement séparée de l'application de téléphonie, on doit éditer les contacts dans la première alors que dans la seconde la liste de ceux-ci ne permet que de passer un appel (en un seul clic, et il ne semble pas y avoir moyen de configurer pour qu'il demande confirmation) ; et surtout, il n'y a plus aucun moyen de créer un contact qui ne soit pas associé à un compte (la version précédente permettait de créer des contacts locaux au téléphone et non synchronisés). D'autre part, l'application de démarrage (home screen et démarrage d'applications) de CyanogenMod 9, appelée Trebuchet, a l'air assez incomplète, donc je suis revenu à celle qui servait dans la version précédente (heureusement il suffit d'aller la récupérer sur le marché), mais bon, son interaction avec le reste du système, du coup, laisse un peu à désirer.

Bref, je ne suis pas sûr que ça méritait le temps passé à noter toutes mes préférences et l'emplacement de mes applications, et à réconstituer ça après l'installation.

Je vais aussi en profiter pour essayer d'utiliser Firefox (mobile, i.e., Fennec) comme mon navigateur principal sur le téléphone. On va voir ce qu'il vaut à l'usage.

[#] Choisi pour son excellente sensibilité GSM et 3G, mais qui est aussi assez monstrueux, parce que c'est un quad-core. Si quelqu'un peut m'expliquer pour quel genre d'usages il peut s'avérer utile d'avoir quatre cœurs dans un téléphone mobile (qui, outre qu'il passe essentiellement tout son temps en veille, fait très rarement tourner plus d'une application même quand il ne l'est pas), je suis curieux.

(dimanche)

Matrice de report des voix : mes résultats

Je conclus (enfin, j'espère !, parce que je commence à en avoir un peu marre) la série des trois derniers posts (1, 2 et 3) avec les résultats promis.

D'abord, en petits caractères, voici de façon très détaillée la méthodologie que j'ai suivie.

Premièrement, le jeu de données. S'agissant de 2012, elles sont ici pour le 1er tour et pour le 2d ; s'agissant de 2007, elles sont ici pour le 1er tour et pour le 2d. Pour bien s'entendre, il y a 36791 lignes de données pour 2012, et 36698 pour 2007.

J'ai d'abord retiré tous les départements et autres collectivités d'outre-mer (mais gardé la Corse), au motif que les reports s'y effectuent sans doute de façon différente de la métropole, et aussi parce que certaines ne sont pas détaillées dans le fichier pour 2007. Ensuite, comme je voulais un fichier unifié entre 2007 et 2012, j'ai fusionné toutes les données selon les codes de département et de commune, en ne gardant que les clés qui étaient présentes à la fois en 2007 et 2012 : ceci implique que pour les communes qui ont fusionné entre les deux (par exemple 21084 Blessey et 21551 Saint-Germain-Source-Seine ont fusionné pour former 21084 Source-Seine), je n'ai gardé que la commune ayant le numéro donné à la commune fusionnée, et inversement en cas de scission (par exemple, je supprime des données de 2012 la commune de 52033 Avrecourt qui faisait en 2007 partie de 52332 Val-de-Meuse). Je supprime encore les 15 communes (05014 Barret-sur-Méouge, 05181 Villar-d'Arêne, 10298 Pont-sur-Seine, 14726 Vassy, 31019 Artigue, 31081 Bourg-d'Oueil, 39364 Montrond, 43122 Lissac, 50049 Besneville, 50105 Catteville, 50614 Le Valdécie, 63181 Joserand, 79076 La Chapelle-Saint-Laurent, 80197 Cizancourt et 86241 Saint-Rémy-sur-Creuse) dont la totalité des votes a été annulée par le Conseil constitutionnel sur l'un des quatre tours d'élection considérés. Au final, il reste 36538 lignes de données.

S'agissant des colonnes de données, je conserve, pour chaque élection : le nombre d'abstentions, le nombre de blancs+nuls, et le nombre de votes pour chaque candidat, le total étant toujours égal au nombre d'inscrits. Qui peut, en revanche, changer, même entre les deux tours d'une même élection, oui : mon fichier totalise 42057423 inscrits (sur 44472834 en vérité, c'est-à-dire surtout avec l'outre-mer) au premier tour en 2007, 42057755 au second tour (sur 44472733), et en 2012 : 43250761 inscrits (sur 46028542) au premier tour et 43253197 (sur 46066307) au second.

J'attribue à chaque commune et indépendamment pour chacune des deux élections, une répartition gauche-droite grossière, sur la base des suffrages exprimés au 1er tour, en sommant les voix des candidats que j'ai classés, de façon ad hoc, comme étant « de gauche » d'un côté, « de droite » de l'autre, les centristes comptant pour moitié de chaque côté. J'ai classé de cette manière : en 2007, Besancenot, Buffet, Schivardi, Bové, Voynet, Royal et Laguiller à gauche, Bayrou et Nihous au centre, de Villiers, Le Pen et Sarkozy à droite ; en 2012, Joly, Mélenchon, Poutou, Arthaud et Hollande à gauche, Cheminade et Bayrou au centre, Le Pen, Sarkozy et Dupont-Aignan à droite. Par exemple, ce score répartit Paris en 2007 à 48.8% à gauche (et donc 51.2% à droite) et en 2012 à 55.8% à gauche (et donc 44.2% à droite). Ce score ne sera pas utilisé directement mais simplement pour analyser plus finement les populations d'abstentionnistes et d'électeurs de Le Pen (l'idée étant que les électeurs de Le Pen ne sont pas vraiment les mêmes à Calais et à Cannes et n'ont pas le même comportement au second tour).

Je divise fictivement les populations d'abstentionnistes et de votants pour Le Pen au premier tour en deux dans les proportions données par la répartition gauche-droite grossière évoquée ci-dessus (par exemple, comme j'ai dit qu'à Paris en 2012 la répartition est de 55.8% à gauche et 44.2% à droite, je ferai deux sous-populations des abstentionnistes du premier tour avec 55.8% d'un côté et 44.2% de l'autre, et pareil pour les électeurs de Le Pen du premier tour). J'appellerai ces sous-populations des abstentionnistes de gauche et abstentionnistes de droite et de même électeurs de Le Pen gauche et électeurs de Le Pen droite, ce qui ne signifie pas que je préjuge des choses à leur sujet, encore moins leur vote, il s'agit juste de refléter l'environnement général où ils se trouvent pour modéliser la façon dont ils se comporteront au second tour.

J'ai donc divisé les électeurs du premier tour en N populations : il y a 16 populations en 2007 (une pour chacun des 12 candidats, sauf Le Pen qui en a récupéré deux, plus encore deux pour les abstentionnistes et une pour les blancs-ou-nuls), et 14 populations en 2012. Pour le second tour, je n'ai que 4 populations : les abstentionnistes, les votes blancs-ou-nuls, et les deux candidats. Pour éviter de s'ennuyer avec la variation du nombre d'inscrits, je multiplie les populations du second tour par le rapport d'inscrits pour faire comme si le nombre d'inscrits du second tour était égal à celui du premier tour : ce sera ça ma cible. (On aurait aussi pu imaginer créer une nouvelle population, les absents-au-premier-tour, mais je ne pense pas qu'ils soient suffisamment nombreux ou homogènes pour être modélisables de façon sensée.)

Maintenant, je vais chercher à trouver la matrice de report entre les N populations du premier tour et les 4 populations du second tour (ramenées proportionnellement au nombre d'inscrits du premier tour). Je cherche donc une matrice 4×N de nombres réels entre 0 et 1 (les N colonnes représentant la répartition des votes au second tour, en proportion, de chacune des populations du premier tour). Les contraintes exigées de cette matrice sont :

  • toutes les entrées sont comprises entre 0 et 1,
  • la somme de chaque colonne vaut 1 (i.e., la matrice est stochastique à gauche),
  • la matrice appliquée au vecteur total de chacune des N populations de premier tour pour toute la France doit donner le vecteur total des 4 populations de second tour (par exemple, pour 2012, la matrice appliquée au vecteur [abstention-gauche:3930068 abstention-droite:4126717 blancs-ou-nuls:648166 Joly:786363 Le-Pen-gauche:2923896 Le-Pen-droite:3397710 Sarkozy:9340798 Mélenchon:3899288 Poutou:399753 Arthaud:194859 Cheminade:84939 Bayrou:3173183 Dupont-Aignan:627892 Hollande:9717129] doit donner [abstention:7804808 blancs-ou-nuls:2076910 Hollande:17125029 Sarkozy:16244014]), ces deux vecteurs étant évidemment de même total à savoir le nombre d'inscrits du premier tour.

Les deux derniers points déterminent N+3 conditions linéaires indépendantes (une pour chaque colonne et une pour chaque ligne, sachant qu'une quelconque de ces conditions peut être éliminée comme découlant de toutes les autres).

Je cherche maintenant la matrice, vérifiant ces contraintes, qui parmi les matrices vérifiant ces contraintes réalise la plus petite somme des erreurs quadratiques sur toutes les communes (enfin, parmi les 36538 communes de mon tableau) : les erreurs étant la différence, en nombre total de voix, entre l'application de la matrice au vecteur donnant les populations de premier tour, et le vecteur de second tour (ramené au nombre d'inscrits du premier tour) — on somme donc les carrés des erreurs sur chacune des quatre composantes du vecteur et sur chacune des 36538 communes. Ce calcul est un problème de programmation quadratique en 4N variables, que j'ai résolu avec la fonction qp de GNU Octave.

On peut éventuellement ajouter une contrainte demandant que le report d'un candidat du premier tour qui est admis au second tour soit parfait sur ce candidat lui-même : je n'ai pas eu à ajouter cette contrainte pour 2012 (la solution trouvée vérifiait déjà cette contrainte) ; pour 2007, la solution vérifiait cette contrainte sur Nicolas Sarkozy, et seulement approximativement sur Ségolène Royal (la matrice trouvée reportait 3% des voix de Ségolène Royal du premier tour sur l'abstention au second tour, et seulement à 97% sur elle-même) : ajouter de force la contrainte ne changeait que de quelques pour cent les reports sur les autres candidats, une précision à laquelle je ne prétends de toute façon pas, donc je l'ai introduite pour plus de propreté.

Évidemment, pour indiquer les résultats finaux, il faut réagréger les populations qui ont été artificiellement séparées, c'est-à-dire les « abstentionnistes-de-gauche » et les « abstentionnistes-de-droite », et de même « Le Pen-gauche » et « Le Pen-droite ».

Par contre, je n'ai finalement pas agrégé ensemble dans les calculs les candidats trop semblables (Arthaud et Poutou, ou bien Cheminade avec les blancs-et-nuls), au motif que de toute façon les résultats calculés pour eux sont probablement dénués de sens de toute façon mais que les garder séparés dans les calculs permet peut-être d'obtenir de meilleurs résultats sur les autres candidats (après tout, tout prédicteur en entrée est bon à prendre, je suppose). J'agrège ces résultats uniquement dans le résultat que j'indique :

Pour 2012 :

1er tour→
↓2d tour
Abstentions Blancs+nuls + Cheminade Joly Le Pen Sarkozy Mélenchon Poutou + Arthaud Bayrou Dupont-Aignan Hollande
Abstentions 79% 0% 0% 23% 0% 0% 0% 0% 0% 0%
Blancs+nuls 0% 46% 0% 15% 0% 0% 40% 9% 44% 0%
Hollande 6% 43% 74% 6% 0% 98% 60% 42% 25% 100%
Sarkozy 15% 10% 26% 56% 100% 2% 0% 49% 31% 0%

Pour 2007 :

1er tour→
↓2d tour
Abstentions Blancs+nuls Besancenot + Schivardi + Laguiller Buffet Bayrou Bové + Voynet De Villiers Royal Nihous Le Pen Sarkozy
Abstentions 82% 0% 0% 0% 17% 0% 0% 0% 0% 0% 0%
Blancs+nuls 0% 75% 1% 0% 11% 1% 0% 0% 14% 9% 0%
Sarkozy 13% 0% 5% 0% 31% 0% 100% 0% 86% 85% 100%
Royal 5% 25% 94% 100% 41% 99% 0% 100% 0% 6% 0%

Évidemment, ces tableaux sont à prendre avec énormément de pincettes ! Pour avoir une idée de l'imprécision, on peut comparer le tableau pour 2007 ci-dessus avec celui donné dans une entrée précédente (où les principales différences étaient que (a) je n'avais pas scindé les abstentions et Le Pen, (b) je n'avais pas imposé les contraintes linéaires sur les lignes de la matrice, et (c) je n'avais pas exclu l'outre-mer) : je pense que mon nouveau tableau est un poil meilleur, mais il ne l'est sans doute pas énormément, donc il faut prendre l'énorme différence dans les scores de reports de Frédéric Nihous comme signifiant simplement on n'en sait rien (même si le nouveau tableau suggère quand même plutôt que son électorat était de droite). Évidemment il est invraisemblable que l'électorat de Bové et Voynet se soit reporté à 99% sur Ségolène Royal en 2007, ou celui de Mélenchon à 98% sur Hollande en 2012, ou autres colonnes de ce genre, donc ces reports doivent simplement être considérés comme signifiant que l'algorithme a correctement classifié ces candidats comme étant de gauche, ou a contrario De Villiers comme étant de droite (on pourra m'objecter que ma méthodologie supposait de toute façon de classifier a priori les candidats grossièrement à gauche ou à droite, mais en fait les scores dont je parle sont relativement robustes à cette classification).

(mercredi)

Encore des considérations sur les statistiques électorales

Pour ceux qui auraient la flemme de lire les deux entrées précédentes (ici et ), la question qui m'intéresse est la suivante : peut-on, à partir des données électorales détaillées des deux tours d'une élection présidentielle, estimer statistiquement la matrice de report des voix d'un tour sur l'autre, c'est-à-dire, la proportion de chacun des types d'électeurs du premier tour (électeurs de chacun des candidats + nuls + abstentionnistes) qui a eu tel ou tel vote au second tour (l'un des deux candidats, ou le nul, ou l'abstention) ? Je voudrais faire cette analyse pour les élections présidentielle de 2007 et de 2012[#].

Des commentaires éclairants sur les deux dernières entrées font que j'y vois plus clair : d'abord concernant la terminologie, on parle d'inférence écologique parce qu'il s'agit de reconstituer des comportements individuels à partir d'agrégats (on sait simplement le nombre total de votes de chaque type au premier et au second tour dans chacune des ∼37000 communes de France). Ce type d'inférence est hasardeux en général, et l'idée naïve d'appliquer une simple régression linéaire peut donner des résultats aberrants ou faux quoique apparemment plausibles. Un exemple célèbre du paradoxe écologique est celui souligné en 1950 par W. Robinson, qui observe qu'en faisant une régression entre (état par état) le nombre de personnes nées à l'étranger et le nombre de personnes sachant lire et écrire sur les données du recensement de 1930 aux États-Unis, il observe une corrélation positive, i.e., plus un état compte de personnes nées à l'étranger, plus il compte de personnes sachant lire et écrire : peut-on en conclure que les personnes nées à l'étranger savent plus lire et écrire (dans la population des États-Unis de 1930) ? non, l'explication est simplement que les personnes nées à l'étranger et ayant immigré aux États-Unis ont eu tendance à s'installer dans des états où la population (native) savait plus lire et écrire, par exemple parce que ces états étaient plus riches. Ce texte résume un peu le problème ainsi que différents éléments de réponse.

Les deux problèmes que je répertoriais dans l'entrée précédente sont : primo, que le nombre de coefficients que je cherche à estimer est important et que les données ne sont pas assez nombreuses, ou surtout pas assez dispersées pour permettre une estimation raisonnable (un commentateur me signale que la taille de l'échantillon pour avoir des coefficients peu bruités croît exponentiellement avec le nombre de coefficients à déterminer) ; secundo, qu'on a des effets que j'appelle non-linéaires et qui sont en vérité la même chose que le paradoxe écologique décrit ci-dessus : les abstentionnistes du premier tour, pour ceux qui se mobilisent au second tour, par exemple, n'ont pas le même profil dans les communes qui votent globalement à gauche que dans celles qui votent globalement à droite (si on y réfléchit, il s'agit du même phénomène que dans l'exemple de Robinson mentionné ci-dessus : une hétérogénéité des populations concernées).

Différentes méthodes ont été proposées pour essayer de faire quand même cette fameuse inférence écologique. La méthode consistant à faire une simple régression linéaire a été analysée par L. Goodman dans les années '50, qui montre (si je comprends bien, parce que je n'ai pas pu avoir accès aux articles) qu'elle fonctionne bien sous des hypothèses qui, dans mon cas, doivent dire grosso modo que la répartition des reports de chaque type d'électeurs du premier tour n'est pas corrélé à la configuration des votes dans la commune (comme je le signale ci-dessus, c'est sans doute assez faux, par exemple dans le cas de l'abstention ou dans une moindre mesure du vote pour Le Pen ; ça me semble plus plausible pour le vote Bayrou). Divers statisticiens ont eu, comme moi, l'idée de borner les coefficients et de faire une régression linéaire contrainte (je n'ai regardé que très sommairement, mais ce papier et celui-là ont l'air de faire des choses de ce genre : le second, d'ailleurs, semble extrêmement proche de ce que j'ai fait).

Des méthodes plus sophistiquées existent : on me signale que Gary King en a écrit tout un livre, où il propose une « solution » au problème ; comme je n'ai pas accès à ce livre, je dois me contenter d'en lire des recensions et commentaires, et des résumés de la méthode de King, et je note que cette dernière ne fait pas l'unanimité. Voir par exemple ce texte, écrit par un critique. Le principal problème que j'ai, moi, est d'ordre pratique : l'implémentation de la méthode pour [le programme de statistiques] R, écrite par King lui-même, est limitée à des matrices 2×2 (or celle qui m'intéresse est 4×14 pour 2007 et 4×12 pour 2012) ; de même, ce package, qui implémente une autre méthode « sophistiquée » d'inférence écologique, est limité de la même façon ; et toutes ces méthodes sont algorithmiquement bien trop pénibles pour être implémentées de novo en un temps raisonnable. Donc il faut bien que je me contente de quelque chose de plus simple.

D'un autre côté, je pense qu'il est raisonnable, pour le problème considéré, de se contenter de quelque chose de plus simple : notamment parce que les populations des différents votes au premier tour sont relativement homogènes quand il s'agit de prévoir le vote au second tour (contrairement aux exemples classiques de « paradoxe écologique » où on relie des variables très différentes et mal corrélées). Un exemple extrême est évidemment la population d'électeurs au premier tour d'un des candidats qui passent au second tour : il est évident qu'une énorme majorité d'entre eux votent encore pour le même candidat au second tour — ici, la prédiction est presque parfaite.

Je défends donc finalement mon idée de rester sur une régression linéaire, avec trois principales idées que j'ai déjà exposées pour améliorer la qualité des chiffres :

  1. Contraindre les coefficients de la régression à être entre 0 et 1 et de somme 1 pour chaque colonne. (Comme je l'ai signalé, je ne suis pas le premier à faire ça.) Autrement dit, j'effectue une régression linéaire contrainte (je minimiser la somme des erreurs quadratiques parmi les matrices vérifiant les contraintes ci-dessus). L'idée sous-jacente est que certains coefficients sont connus trop grossièrement, leur valeur calculée naïvement peut être délirante, cette contrainte assure qu'ils seront tronqués à quelque chose de raisonnable (ce qui, du coup, assure de répercuter une erreur déraisonnable sur d'autres coefficients).
  2. Regrouper les candidats du premier tour trop petits et ayant un profil sociologique proche (ça ne sert à rien d'essayer de déterminer séparément les reports du vote pour Poutou et du vote pour Arthaud, ou du vote pour Cheminade et du vote blanc/nul).
  3. À l'inverse, scinder les populations du premier tour qui risquent d'être sociologiquement trop inhomogènes (abstentionnistes et vote Le Pen) en sous-populations artificielles dans les mêmes proportions qu'une proportion gauche-droite approximative sur la commune. Ceci permet (au prix de nouveaux coefficients à déterminer !) d'introduire un effet non-linéaire relativement raisonnable et donc de diminuer l'effet d'inhomogénéité de ces populations (et le « paradoxe écologique » qui va avec).

Je donnerai les chiffres que j'obtiens dans la prochaine entrée (qui sera, j'espère, la dernière sur ce sujet !), parce que je suis fatigué d'avoir écrit tout ça. Mais disons qu'ils sont assez plausibles (évidemment, il faut imaginer qu'ils ne sont que des ordres de grandeur !) et qu'ils prédisent, par exemple, que les électeurs de François Bayrou du premier tour se sont plus reportés sur Sarkozy que sur Hollande en 2012, alors qu'en 2007 ils s'étaient plus reportés sur Royal que sur Sarkozy — or ceci est conforme aux sondages directs sur la question ainsi qu'aux analyses des politologues.

[#] J'ai fini par obtenir les données du second tour de 2012, qui étaient effectivement sur RegardsCitoyens.org comme on me l'avait soufflé, mais bien cachées et pas à l'endroit où on les attendait. Elles sont par ailleurs un peu incomplètes puisqu'il y manque la Corse, mais peu importe.

(mardi)

Différentes hypothèses relatives à l'entrée précédente

Je posais hier le mystère suivant : comment expliquer qu'une régression linéaire entre les nombres de voix (commune par commune) aux deux tours de l'élection présidentielle de 2007 ne donne pas, comme on pourrait naïvement s'y attendre, une matrice de report des voix raisonnable ?

Différentes explications m'ont été proposées (soit dans les commentaires de l'entrée précédente, soit par d'autres canaux), et je voudrais y apporter quelques commentaires.

Voici une première hypothèse : mes calculs sont tout simplement dénués de sens, on ne peut pas espérer bêtement qu'une simple formule linéaire donne des résultats raisonnables, du coup les coefficients de la formule linéaire (fût-elle la meilleure possible) n'ont aucune espèce de signification. C'était aussi ma première idée. Mais elle ne tient pas pour la raison suivante, c'est que la formule linéaire en question est en fait étonnamment précise. Voici quelques données pour illustrer ce fait : si je prévois les résultats du second tour de 2007 à partir de ceux du premier avec la formule linéaire dont les coefficients sont donnés par le premier tableau de l'entrée précédente, j'obtiens une erreur médiane de 7 voix sur la prévision du nombre de voix de Nicolas Sarkozy au second tour (les erreurs sur les autres valeurs sont plus faibles), une erreur moyenne de 15 voix sur toutes les communes de France, une erreur moyenne sur la proportion de 1.3 points (en pondérant évidemment cette dernière moyenne par le nombre d'inscrits de la commune ; pour référence, le nombre moyen d'inscrits est de 1180), et les erreurs moyennes quadratiques sont également assez basses : 40 voix ou 2 points. Bref, l'idée que la formule est aberrante ne tient pas. Remarquer que la formule linéaire donnée par mon second tableau est à peine moins bonne (et même meilleure sur certaines métriques), ce qui donne l'idée que si la formule linéaire est bonne, tous ses coefficients ne sont pas pour autant bien déterminés (cf. ci-dessous).

Variante de la même hypothèse : mes données seraient trop bruitées, par exemple à cause des petites communes. J'ai essayé de refaire les calculs en me limitant aux communes ayant au moins 500 inscrits, cela ne change essentiellement rien (ce qui est normal, parce que je travaille sur des nombres de voix, ce qui fait intrinsèquement que les toutes petites communes ont peu de poids).

Autre idée proposée : la matrice des reports serait très inégale à travers le territoire. Cela dépend de ce qu'on entend par à travers le territoire, mais j'ai fait un test en me limitant aux communes d'Île-de-France : la matrice de corrélation n'est pas exactement la même, mais elle n'est pas fondamentalement différente, et en tout cas les coefficients négatifs ou supérieurs à 1 persistent (ce sont essentiellement les mêmes).

Maintenant, à la réflexion, voici les deux principaux effets que je crois être responsables de l'effet que je signalais :

Premièrement, les coefficients sont diversement bruités. L'idée est qu'un coefficient est d'autant plus facile à mesurer, dans une régression linéaire, qu'on a des variables ayant des valeurs très différentes sur sa valeur d'entrée. Mesurer les reports de voix, par exemple, des électeurs de Laguiller au premier tour, ne peut se faire fiablement qu'en comparant des endroits où elle fait un score relativement élevé et d'autres où elles fait un score particulièrement mauvais : l'ennui, c'est que quand elle fait un score élevé, d'autres candidats (de gauche) font également un score élevé, et noient le signal ; autrement dit, les variables d'entrées ne sont pas du tout décorrélées, et du coup il est très difficile de mesurer fiablement les coefficients depuis chacune d'entre elles. Pour pallier ce problème-là, on pourrait éventuellement réunir des candidats sociologiquement trop proches (par exemple, pour l'analyse des résultats 2012, il sera sans doute pertinent d'agréger les votes pour Poutou et Arthaud ensemble, voire aussi à ceux pour Mélenchon, car il est essentiellement impossible de trouver des endroits où le rapport entre ces scores s'écarte énormément de la moyenne nationale ; de même, le score de Cheminade étant essentiellement une variable aléatoire toute petite, on ne peut rien en dire d'utile, autant l'agréger aux votes nuls).

Deuxièmement, il y a des effets non-linéaires qui ont une trace linéaire non nulle. J'insiste sur le qualificatif : le fait qu'il y ait des effets non-linéaires est évident, mais on peut être tenté de dire ils ne doivent pas être bien importants puisque l'approximation linéaire donne de bons résultats (cf. ci-dessus). Seulement ce n'est pas une analyse complète. Je donne un exemple :

Prenons l'abstention. Elle a été sensiblement au même niveau entre les deux tours en 2007, mais on peut penser qu'elle ne concerne pas les mêmes personnes : beaucoup de gens s'abstiennent au second tour parce que leur candidat de prédilection a disparu du premier, et a contrario, beaucoup de gens s'abstiennent au premier tour parce que leur candidat de prédilection leur semble assuré d'accéder au second tour. Considérons ces derniers : ils ne forment pas une population homogène — certains sont de gauche et voteront plutôt pour la candidate de gauche au second tour, et certains sont de droite et voteront plutôt pour le candidat de droite ; le rapport entre ces deux populations doit être grossièrement de l'ordre du rapport entre électeurs de gauche et de droite au premier tour. On a donc affaire à un effet non-linéaire : il y a apport vers les deux candidats du second tour d'une partie des abstentionnistes dans des proportions déterminées pour parti par le rapport gauche/droite au premier tour. Ça c'est assez évident. Maintenant, comment cet effet non-linéaire se fait-il approximer par une régression linéaire ? Il y a évidemment un effet qui se manifeste dans la colonne des reports de l'abstention, vers les deux principaux candidats, mais il y a aussi une partie qui se manifeste dans la colonne des reports de chacun de ces candidats, car leurs électeurs semblent se multiplier au second tour (si l'abstention varie peu d'une commune à l'autre, c'est surtout cet effet-là qu'on va voir) : on va donc voir apparaître une proportion de report supérieure à 1 entre un candidat et lui-même, et c'est exactement ce qui se manifeste sur mon tableau. (Et comme la somme des coefficients par colonne vaut 1, s'il y a une entrée supérieure à 1, il y en a une qui est négative, ce qui correspond au fait que la présence d'électeurs de gauche au premier tour se manifeste par un défaut de report d'abstention vers le candidat de droite du second tour puisque ces électeurs indiquent qu'on est dans une région de gauche.)

Comment modéliser cet effet non-linéaire ? Je peux imaginer faire la chose suivante : déterminer pour chaque commune une mesure approximative entre 0 et 1 de « proportion de votes à gauche » (parmi les suffrages exprimés), et complémentairement une proportion de droite. Cela peut se faire en classant a priori les candidats comme à gauche ou à droite, ou en utilisant la première régression linéaire pour le faire automatiquement : peu importe, c'est un indice grossier. On divise ensuite artificiellement la population d'abstentionnistes du premier tour entre abstentionnistes « de gauche » et « de droite » suivant cette proportion. Le nombre d'abstentionnistes de chaque catégorie est donc une fonction non-linéaire (quadratique, précisément), et c'est ces deux fonctions (dont la somme est le vrai nombre d'abstentionnistes) qu'on utilise dans une régression linéaire, ou une régression linéaire contrainte. On peut faire la même chose pour les votes pour Le Pen au premier tour, qui représentent un vote protestataire pas forcément de droite : les séparer artificiellement en deux populations dans les mêmes proportions que la séparation gauche/droite sur l'ensemble des exprimés, et utiliser ces deux populations séparément dans la régression. (Ensuite, bien sûr, si on veut calculer une matrice de report des voix, on réunira ces deux populations qui ont été séparées fictivement pour introduire un effet non-linéaire.)

Toute cette procédure est un petit peu ad hoc, mais ça me semble néanmoins assez raisonnable. Sur les données de 2007, introduire de cette manière une division gauche/droite dans les populations d'abstentionnistes et d'électeurs de Le Pen au premier tour me permet d'améliorer d'environ 15% la précision sur les scores de Sarkozy et Royal au second tour. Et en réagrégeant les populations, j'obtiens un vecteur de reports des voix des électeurs de Le Pen un peu plus crédible que du tout-Sarkozy : 87% de report vers Sarkozy, 1% vers Royal, 7% vers l'abstention et 5% vers le nul (je n'y crois toujours pas, mais c'est quand même moins délirant).

Je tenterai d'appliquer ces différentes idées sur les chiffres de 2012 quand je les aurai. En attendant, pour m'amuser, j'ai fait une régression linéaire avec contrainte entre les chiffres du premier tour de 2012 et ceux du premier tour de 2007, pour tenter de répondre à la question les électeurs de tel candidat de 2012, pour qui avaient-ils voté en 2007 ? (en faisant comme si la population était constante, ce qui n'est pas le cas). Ces chiffres ne sont pas sérieux du tout, donc, mais ils sont amusants (je les donne en proportion du score de 2012, i.e., la proportion pour chacun des candidats de 2012 de la fraction de leur électorat qui viendrait de chaque candidat en 2007) :

Je répète que ce n'est pas à prendre trop au sérieux, mais il est amusant de voir que ce n'est pas totalement délirant non plus (pour commencer, on peut dire que le calcul a identifié le fait que Bayrou ou Sarkozy étaient bien les mêmes candidats en 2007 et 2012).

(lundi)

De la difficulté de faire une régression linéaire contrainte en politique

Dans l'entrée précédente, j'ai suggéré l'idée de faire une régression linéaire multivariée entre les deux tours des résultats de l'élection présidentielle, c'est-à-dire, essayer de calculer quelle combinaison linéaire des résultats du premier tour de la présidentielle (considérés comme un vecteur de N+2 nombres, à savoir le nombre de voix pour chacun des N candidats + bulletins blancs/nuls + abstentions) approche le mieux, sur l'ensemble des communes de France, les résultats du second tour (considérés comme un vecteur de 4 nombres, pour 2 candidats + blancs/nuls + abstentions). J'espérais[#] — un peu naïvement comme on va le voir — que ce calcul permettrait de connaître la matrice de reports des voix, c'est-à-dire, la proportion, dans chacun des N+2 votes possibles au premier tour, des 4 votes possibles au second tour : par exemple savoir que les électeurs de François Bayrou au premier tour se seraient reportés à 30% sur l'abstention, à 5% sur le vote blanc, à 35% sur Nicolas Sarkozy et à 30% sur François Hollande (chiffres imaginaires mais pas aberrants).

Les résultats du second tour n'étant pas encore disponibles sur www.data.gouv.fr au moment où j'écris, je me suis dit que j'allais m'exercer sur les résultats de 2007 (pour calculer les reports entre les deux tours de celle-ci soit, de façon plus osée, entre 2007 et 2012). Je passe sur les différentes petites crottes de ragondin rencontrées en chemin pour préformater les données sous une forme sympathique (par exemple les communes qui ont eu la fort sotte idée de fusionner ou de se séparer ; je passe aussi sur le fait qu'il n'y a pas de version détaillée des résultats de Paris, parce que Paris a le malheur d'être une unique commune). Disons que j'ai un gros tableau de données raisonnables, d'où j'ai retiré tout ce qui me chagrine.

Il n'est alors pas difficile de faire les régressions linéaires, avec un programme comme R[#2]. C'est-à-dire trouver les (2+2)×(12+2)=56 coefficients tels que, pour chaque vote possible au second tour, le nombre de ces votes soit au mieux prédit par la combinaison, affectée par les coefficients correspondants, des 14 votes possibles au premier tour (il y avait 12 candidats en 2007, ce qui fait 14 avec blancs et abstention). Il est assez facile de se convaincre, dans la mesure où le nombre d'inscrits ne change pas entre les deux tours (ce qui est quasiment vrai — pas rigoureusement, et ça fait partie des petites crottes de ragondin — mais suffisamment pour qu'on puisse faire comme si), que la somme des coefficients sur une colonne de cette matrice (c'est-à-dire pour chaque vote possible de premier tour) vaut 1. Maintenant, j'espérais que quelque chose ferait que ces coefficients seraient aussi tous positifs, et auraient l'interprétation naïve que j'ai décrite ci-dessus comme matrice de transfert des voix. Or ce n'est pas le cas, et voici la matrice des coefficients :

1er tour→
↓2d tour
Abstentions Blancs/nuls Besancenot Buffet Schivardi Bayrou Bové Voynet De Villiers Royal Nihous Le Pen Laguiller Sarkozy
Abstentions 0.8519 −0.4145 0.1060 0.0578 −0.2845 0.1705 0.5994 −0.5476 0.0281 0.0002 −0.5410 −0.0405 0.3789 0.0047
Blancs/nuls 0.0035 0.4859 0.1085 0.0113 0.5714 0.0867 −0.1229 0.0775 0.0596 −0.0019 0.2442 0.0119 0.2184 0.0153
Sarkozy 0.0910 0.5596 −0.0944 −0.0309 0.8717 0.3499 0.0586 0.9280 0.9056 −0.1129 0.7721 0.9979 −1.2629 1.0427
Royal 0.0532 0.3785 0.8656 0.9573 −0.1743 0.3938 0.5116 0.5719 0.0021 1.1131 0.5122 0.0283 1.6956 −0.0627

Le fit linéaire est excellent : même si je ne sais pas lire exactement les données de marges d'erreur que R me sort, je sais lire qu'elles sont très faibles (par exemple s'il me dit que 99.99% de la variance est expliquée par ce modèle linéaire, ou que dans 50% des communes l'écart est inférieur à 6 voix) ; bref, ces coefficients ont un sens. Mais pas exactement celui que je veux !

Il est relativement concevable que 85% des abstentionnistes du premier tour en 2007 l'aient encore été au second, tandis que 9% seraient allés voter Sarkozy et 5% Royal ; ou que les électeurs de Bayrou se soient reportés à 17% sur l'abstention, à 9% sur le vote blanc, à 35% sur Sarkozy et à 39% sur Royal : j'y crois assez ; ou encore que, comme le tableau le suggère, ceux de Villiers aient voté à 91% pour Sarkozy au second tour tandis que 3% se seraient abstenus et 6% auraient voté blanc. Mais il est impossible que 93% des électeurs de Voynet aient voté Sarkozy au second tour, 57% pour Royal, et un pourcentage négatif, −55%, se soient abstenus.

C'est assez perturbant : ce tableau montre des chiffres relativement sensés, dans un monde où un vote négatif serait possible. :-)

Bon, ben si les chiffres ne veulent pas d'eux-mêmes être raisonnables, il n'y a qu'à les forcer à l'être : je peux demander à chercher, après tout, quelle est la matrice à coefficients positifs, où chaque colonne a pour somme 1, et qui réalise la meilleure approximation linéaire parmi celles vérifiant ces contraintes : on parle de régression linéaire avec contraintes. Il s'agit là d'un problème d'optimisation quadratique (avec contraintes linéaires, et terme quadratique positif défini) : quelque chose qu'on sait très bien faire. En principe, R a ce qu'il faut pour y arriver : mais nouvelle petite crotte de ragondin, ce package ne marche pas chez moi, il prétend que mes contraintes (=la positivité des variables) sont impossibles à satisfaire, je ne sais pas ce qu'il a fumé. À la place, j'ai dû passer par Octave, qui est encore plus pénible à manipuler et que je connais encore moins, mais enfin qui sait faire le boulot (quand on réussit à exporter les matrices du problème de R vers Octave, ce qui n'est pas la chose la plus agréable qui soit).

Voilà ce que ça donne :

1er tour→
↓2d tour
Abstentions Blancs/nuls Besancenot Buffet Schivardi Bayrou Bové Voynet De Villiers Royal Nihous Le Pen Laguiller Sarkozy
Abstentions 0.8424 0.0000 0.0000 0.0000 0.0000 0.1679 0.0275 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Blancs/nuls 0.0424 0.2600 0.0000 0.0000 1.0000 0.1093 0.0000 0.0000 0.0026 0.0000 0.5503 0.0004 0.0000 0.0000
Sarkozy 0.0495 0.0900 0.0000 0.0000 0.0000 0.3283 0.0000 0.0000 0.9974 0.0000 0.1999 0.9996 0.0000 1.0000
Royal 0.0657 0.6500 1.0000 1.0000 0.0000 0.3945 0.9725 1.0000 0.0000 1.0000 0.2498 0.0000 1.0000 0.0000

De nouveau, il est relativement raisonnable de penser que les électeurs de François Bayrou au premier tour en 2007 se seraient divisés au second tour entre l'abstention à 17%, le vote blanc à 11%, Sarkozy à 33% et Royal à 39% (les chiffres diffèrent très peu du tableau précédent, et sont toujours crédibles). À la limite, il n'est pas totalement délirant d'imaginer que, avec la précision des mesures, près de 100% des électeurs de Marie-George Buffet, ou même d'Olivier Besancenot, se soient reportés sur Ségolène Royal au second tour, comme d'ailleurs les électeurs du premier tour de Ségolène Royal elle-même. Mais alors croire que les électeurs de Gérard Schivardi au premier tour auraient tous voté blanc au second (sans s'abstenir, mais vraiment voté blanc), ou croire que ceux qui ont voté blanc au premier tour auraient été 65% à voter pour Royal au second, ce n'est, comme qui dirait, pas très crédible. Je suis aussi amusé du 99.96% de report calculé de Le Pen sur Sarkozy (les 0.04% restants ayant censément voté blanc, c'est très précis) !

Voici donc la question à 100¤ : ces chiffres ont-ils une quelconque signification en rapport avec la réalité, ou un quelconque intérêt pour l'analyse politique ? À défaut, y a-t-il un autre traitement statistique que je puisse mener pour en obtenir de meilleurs ? Et en tout état de cause, quand (et si) le ministère de l'intérieur se sortira les doigts du c** pour fournir les chiffres complets du second tour de 2012 en Open Data, sera-t-il intéressant de mener la même analyse ou doit-on considérer que c'est du temps perdu ?

[#] Pourquoi espérer ça ? Parce que si les reports de voix du premier vers le second tour se font à peu près de la même façon partout, et notamment, indépendamment de ce pour quoi votent les autres électeurs de la commune, ce qui a priori ne semblait pas une hypothèse délirante, alors on devrait bien retomber dessus en faisant une régression linéaire.

[#2] Programme au nom incroyablement stupide quand on pense à la difficulté que cela cause de chercher dans Google des informations sur un truc à une lettre.

(dimanche)

Résultats d'élections : à la Bastille

[Rassemblement place de la Bastille]Je ne suis pas trop le genre à me livrer à des manifestations de liesse politique (ou à participer à des manifestations tout court, d'ailleurs, ne serait-ce que parce que je suis plutôt agoraphobe) : et pourtant, je me suis rendu — certes brièvement — ce soir à la Bastille[#], où se fêtait, sans doute, plus le soulagement provoqué par la défaite du président sortant que la joie de la victoire de l'impétrant.

En ce qui me concerne, du moins, j'attends assez peu de celui qui sera le prochain président de la République ; j'en attends même le moins possible parce qu'en parlementariste convaincu je considère que l'action de l'exécutif doit être menée par le gouvernement et dirigée par le Premier ministre, dont la légitimité découle de l'Assemblée nationale, laquelle reste à élire (et c'est là l'élection réellement importante, chose que certains journalistes et hommes politiques semblaient découvrir ce soir avec un étonnement ravissant). À défaut d'inexister complètement (dans le fond je ne vois pas pourquoi on aurait besoin d'un chef de l'État[#2]), avoir un rôle modeste et laisser le gouvernement gouverner sera le mieux que pourra faire, à mes yeux le président de la République : la promesse de François Hollande de ne pas être le président de tout était peut-être bien pour moi la plus importante[#3], et contraste avec l'attitude de son prédécesseur.

C'est avec une clameur assez émouvante, donc, que la foule réunie place de la Bastille a accueilli la nouvelle[#4], diffusée sur écran géant, de la victoire de son favori, ou, plutôt, du départ de l'objet de son ressentiment. Émouvante, comme est communicatif l'exultation du bonheur[#5] de la multitude : ou peut-être juste que je suis bon récepteur, en tout cas j'en ai eu les larmes aux yeux. Et je me suis rendu compte que j'attendais ce moment depuis cinq ans[#6] et que j'aurais été absolument effondré de devoir attendre cinq ans de plus[#7]. Je me suis étonné à prendre les choses aussi à cœur (et de prendre à cœur aussi, a contrario, que le score annoncé soit aussi serré).

Ce n'est pas juste que je me définis comme de gauche : je n'aurais pas éprouvé la même chose, je pense, si le président sortant battu avait été[#8] un Jacques Chirac, François Fillon, Dominique de Villepin ou un Alain Juppé[#9].

Pour autant, j'ai un peu tendance à trouver que certains reproches que l'on fait à Nicolas Sarkozy, et qui fondent le rejet de celui-ci, sont un chouïa injustes. Je ne veux pas simplement dire qu'il est un peu idiot de mélanger le grave et l'anecdotique et de lui opposer, par exemple, d'avoir dîné dans le restaurant d'un certain grand hôtel parisien le soir de son élection (oui, c'était une faute de goût, mais de là à en parler encore cinq ans plus tard…). Je trouve que mes concitoyens ont un peu tendance à oublier que ce sont eux qui l'ont élu[#10] : or il me semble que le style et l'action qui ont été les siens tout au long de son quinquennat étaient aisément prévisibles à partir de ce qu'on savait de lui il y a cinq ans. Certes pas le détail des scandales qu'on a associés à son nom (et dont je ne suis pas sûr, malheureusement, qu'ils forment le plus grave reproche qu'on lui adresse), mais sans doute leur teneur générale. Il ne faut pas non plus reprocher de démanteler les services publics à celui qui l'avait explicitement promis dans le programme qu'il a été élu pour réaliser : il faut le reprocher aux électeurs qui l'ont élu. Quant à l'influence du sulfureux M. Buisson, la xénophobie ou au moins la captation tentée des voix du FN, elle était loin d'être indétectable en 2007.

Bref, ce n'est pas que je cherche à défendre le bonhomme, mais j'ai une certaine incompréhension du changement d'attitude des Français à son égard (changement évident quand on regarde les courbes de popularité), alors que lui-même m'a semblé assez constant et assez prévisible pendant toute la période, et je ne le déteste ni plus ni moins maintenant qu'autrefois (disons même, depuis 1995, où j'ai commencé à le remarquer). Mais peut-être que je me fais des illusions.

Toujours est-il que les peuples sont des amants cruels, et vite déçus demain par ce qu'ils réclamaient hier. Comme je suis pessimiste, je pense qu'un tel désamour frappera aussi rapidement le candidat aujourd'hui élu, et je le regrette d'avance. Je suis tenté de faire la prévision opposée à celle à laquelle je fais référence dans la note #6.

Pour parler d'autre chose : dès que le ministère de l'Intérieur aura publié les fichiers Open Data avec les résultats complets du 2e tour, je vais m'amuser à faire une régression linéaire multivariée (sur l'ensemble des communes) entre les résultats des 1er et 2d tours : ceci devrait permettre de connaître, avec une grande fiabilité, la matrice de report des voix entre eux, donc savoir dans quelles proportions les électeurs de chacun des candidats du 1er tour ont voté pour les candidats du 2d (ou se sont abstenus). Cette matrice de reports a été l'élément clé de sondages de second tour, et continue d'être mesurée en même temps que le résultat final, mais je n'ai pas souvenir d'avoir vu, dans les élections précédentes, une telle matrice calculée à partir des résultats définitifs.

Bon, les résultats des législatives grecques sont certainement plus intéressants de tout point de vue, mais je n'ai pas les compétences pour les lire.

[#] Une première idée nous avait amenés, mon poussinet et moi, vers 19h, rue de Solférino : mais remplie de monde de façon compacte sur trois intersections, elle était moins appropriée que la Bastille à ce genre de célébration.

[#2] Normalement, on définit un chef d'État comme la personne qui émet et reçoit les lettres de créances des ambassadeurs, et au nom de qui les traités sont signés. Mais s'agissant, par exemple, de la Suède, les traités qu'elle signe le sont — j'avais remarqué ça en lisant le Traité constitutionnel européen — au nom du Gouvernement du Royaume de Suède (alors que le Royaume-Uni les signe au nom de Sa Majesté la reine du Royaume-Uni de Grande-Bretagne et d'Irlande du Nord : il y a une véritable différence en ce que la reine du Royaume-Uni a théoriquement des pouvoirs de réserve que n'a pas, même en théorie, le roi de Suède) : je ne sais pas s'il en va de même des lettres de créance, mais il n'y a pas de raison que ce ne soit pas le cas, et du coup, on peut se passer complètement du poste cérémonial de chef d'État, ou plutôt considérer que le chef d'État est la personne collective du gouvernement de la République (et il n'y a pas spécialement besoin de faire une présidence tournante comme en Suisse).

[#3] Ce qui ne veut pas dire que je n'approuve pas de grandes parties de son programme par ailleurs, mais c'est au Parlement de faire la loi.

[#4] Nouvelle avec beaucoup de guillemets autour, parce que la nouvelle circulait depuis au moins 18h15 (que ce soit à coup de messages subtilement codés ou simplement en consultant les sites Web des journaux étrangers). Et à 19h55 il est assez peu probable que tout le monde sur la place ne fût pas déjà au courant (ils passaient par la Bastille par hasard, peut-être ? et la RATP avait fermé la station par hasard aussi ?).

[#5] Comme un petit air de printemps, disait-on. Et c'est assez frappant de se dire : si c'est déjà ça le bonheur que provoque le fait de se débarrasser d'un président qui, quoi qu'on en dise, a été élu démocratiquement, n'a tué personne, et ne sera resté que cinq ans, le bonheur qu'éprouvent les peuples qui, eux, se débarrassent d'un dictateur qui a commis des crimes impunément pendant des dizaines d'années, ça doit être vraiment incroyablement fort.

[#6] Aussi pour pouvoir dire amicalement[#6b] pouêt à tous ceux — certes moins nombreux sur la fin — qui nous prévoyaient sa réélection. Je pense notamment à un post du blog de Vicnent (mais je ne le retrouve pas, suis-je encore passé dans un monde parallèle ?) où il prévoyait et pariait que malgré l'impopularité dans laquelle le président s'était enfoncé, il serait forcément réélu en 2012, parce qu'il aurait fondamentalement bien compris les Français.

[#6b] Et je récuse l'accusation de Schadenfreude. (Sérieusement.)

[#7] Pas que je l'ai véritablement craint, mais le resserrement des intentions de vote au cours des derniers jours me stressait un peu. Soulagement, donc.

[#8] Pour prendre des exemples de gens vaguement crédibles. J'ai encore plus de respect, par exemple, pour Chantal Jouanno, mais on ne l'imagine pas trop en présidente.

[#9] Disons pudiquement que M. Sarkozy aura accompli l'exploit de faire passer à mes yeux M. Juppé pour une référence d'homme intègre.

[#10] Évidemment, ceux qui font la fête ce soir à la Bastille ne doivent pas énormément intersecté ceux qui ont élu M. Sarkozy en 2007, mais il y a forcément certains de ses électeurs d'alors qui ont changé d'avis (au moins vers l'abstention).

(vendredi)

Le jugement de paris : comment établir une cote ?

Une obscure province des États-Unis d'Europe va bientôt tenir l'élection de son gouverneur. Les deux candidats encore en course s'appellent M. Sarlande et M. Holkozy. Toutes sortes d'instruments sont utilisés pour mesurer l'état de l'opinion de l'électorat avant cette échéance (sondages, pronostics de politologues et autres boules de cristal), mais au final on aimerait avoir des résultats lisibles sous la forme M. Sarlande a x% de chances d'être élu gouverneur, M. Holkozy a (100−x)% de chances. Déjà, il est un peu difficile de donner un sens à une telle affirmation : si je prétends que M. Sarlande a 85% de chances et M. Holkozy en a 15%, que l'un ou l'autre soit élu, on ne pourra pas me dire que j'avais tort (après tout, les deux nombres étaient strictement positifs) ; or l'expérience (=l'élection) n'a lieu qu'une fois, on ne va pas la répéter d'une manière qui permette de donner un sens statistique aux probabilités.

On pourrait cependant faire des statistiques pour savoir si je suis un fin analyste politique. Si, par exemple, à chaque fois qu'il y a une élection je fais un pronostic du style le candidat 1 a une probabilité q1 d'être élu, le candidat 2 en a q2, le candidat 3 en a q3, etc. (la somme ∑i(qi) des probas annoncées valant 1), si c'est le candidat numéro i qui est effectivement élu on m'attribue un score de fiabilité de valeur log(n)+log(qi) où n est le nombre total de candidats. (Pourquoi log(qi) ? Parce qu'il est facile de se convaincre que la stratégie optimale pour maximiser son succès dans ce contexte, si on connaît les « vraies » probabilités pi, consiste à annoncer effectivement qi=pi, auquel cas on a une espérance de gain de l'opposé de l'entropie de Shannon de la distribution, plus le terme ajouté log(n) (=l'entropie d'une distribution uniforme sur les candidats) qui est là pour assurer qu'on ne gagne ni ne perd rien en faisant la prévision triviale de donner la même proba qi=1/n à chaque candidat.) Par exemple, quand je prédis 85% de chances à M. Sarlande et 15% à M. Holkozy, il convient d'ajouter 0.77 logons à mon score de fiabilité si c'est le premier qui est élu et d'y retranche 1.74 logons si c'est le second qui est élu. Et si mes chiffres sont corrects, mon espérance de score est de 0.39 logons. (Le mot logon indiquant que j'ai pris des logs base 2.) Si on somme ce score fiabilité sur un grand nombre de prévisions, on peut comparer mes capacités d'analyse à celles d'autres analystes. Je me dis souvent qu'on devrait faire des concours de prévisions de ce genre entre analystes politiques.

Bon, maintenant, comme les gens aiment bien jouer aux jeux de hasard, inévitablement, on va vouloir transformer cette question d'évaluer les chances en un pari. La conversion est la suivante : dire que je considère que M. Sarlande a x% de chances d'être élu et que M. Holkozy en a (100−x)%, ça signifie que je suis prêt à accepter de payer x¤ pour un contrat qui me promet 100¤ si c'est M. Sarlande qui gagne, et dualement (100−x)¤ pour un contrat qui me promet 100¤ si c'est M. Holkozy qui l'emporte. Il y a donc moyen de mettre en place un marché de tels contrats, laisser faire l'axiome libéral de l'efficience des marchés, et voir ce qu'il en résulte. C'est ce que fait le site intrade.com (dont le fonctionnement est résumé ici), et sur lequel on peut notamment voir le cours de MM. Sarlande et Holkozy ici et (à moins que ce soit le contraire). Ces cours (le prix auquel s'échange un contrat je paie 10$ en cas d'élection de Untel) se lisent assez directement comme des probabilités, c'est assez agréable. Il serait intéressant de les évaluer sur un grand nombre d'élections selon le score de fiabilité que je propose plus haut. À vrai dire, je ne suis pas trop convaincu par l'efficience de ces marchés, qui ont des volumes assez petits dont les acteurs sont largement des Américains pas forcément bons analystes de la situation politique française (même si ceux qui parient, évidemment, doivent se renseigner). La logique voudrait que j'intervinsse moi-même dans le marché si je m'estime meilleur analyste (ou simplement pour acheter une assurance contre l'élection d'un candidat qui me déplairait), mais j'ai assez peu de confiance dans ce genre de site et dans mes chances de récupérer effectivement une grosse somme d'argent si je parie comme je le pense.

Un système apparenté mais différent est utilisé par les bookmakers anglais : il s'agit cette fois de cotations (on n'échange pas des contrats mais on place des paris à une certaine cote), et on peut voir ici une synthèse des cotes qu'ils attribuent (c'est un peu pénible à lire : le système traditionnel d'affichage de la cotation indique la fraction de la mise qu'on récupère en plus de celle-ci si on a raison sur la prévision — sachant que si on a tort on perd tout ; alors que le système décimal indique combien on récupère au total, mise comprise, si on a raison, comme un nombre décimal).

J'en viens à la question qui m'a pas mal tracassé : comment fait-on, au juste, pour établir une cote de paris ? (Autrement dit, je veux imaginer un système où chacun peut décider de placer un pari sur un des candidats, à une cote instantanée déterminée automatiquement en fonction des paris précédents, pari qui sera payé par une autorité centrale organisatrice, et pas un système de marché comme sur intrade.com ; notamment, une personne doit pouvoir parier même si elle est seule à le faire.)

Une première idée naïve pour un système de paris pourrait être ceci : tous ceux qui le veulent placent un pari de la somme qu'ils veulent sur un des deux candidats, toutes ces sommes sont mises en commun (mettons que u zorkmids aient été pariés sur Sarlande et v sur Holkozy), et lorsque le gagnant est connu, la somme totale u+v est redistribuée à ceux qui ont parié sur ce gagnant, proportionnellement à leur mise (donc par exemple si c'est Sarlande qui gagne, la mise de ceux qui ont parié sur lui est multipliée par (u+v)/u, autrement dit ils emportent v/u fois leur mise en plus de celle-ci). Ce système est extrêmement simple, mais souffre de défauts rédhibitoires : essentiellement, la cote est la même pour tous et n'est connue qu'à la clôture des paris et ne dépend pas du moment où on a parié — ce qui va conduire à des paris de dernière minute alors que le résultat de l'élection se précise, et pénaliser les parieurs de la première heure qui auraient une vision claire bien en avance. On peut imaginer un tel système où les paris seraient clos à une date butoir, ou renouvelés dans le temps, ou ce genre de choses, mais on ne résout pas vraiment le problème.

Ensuite, je me suis imaginé la chose suivante : lorsqu'on parie une somme sur l'un des deux candidats, la cote instantanée utilisée est donnée simplement par le rapport entre la somme totale qui a été pariée sur l'un et celle qui a été pariée sur l'autre. Plus exactement, le système serait le suivant : initialement, l'autorité centrale place 100¤ (disons) comme somme fictive pariée sur Sarlande et autant sur Holkozy ; puis, si à un instant donné u zorkmids ont été pariés sur le premier et v sur le second, et si je veux miser δ (une somme infinitésimale) sur Sarlande, je récupérerai δ·(u+v)/u (c'est-à-dire ma mise δ plus encore δ·v/u de bonus) si j'ai eu raison et 0 (=ma mise est perdue) si j'ai eu tort. On convient que les cotations sont modifiées instantanément : pour parier une somme non infinitésimale, il faut diviser celle-ci en mises infinitésimales et faire l'intégrale qui convient — je n'insiste pas là-dessus. L'ennui c'est qu'avec ce système, les pertes de l'autorité centrale ne sont pas bornées : si après la mise fictive initiale de 100¤ de chaque côté je suis seul à parier et que je mise A sur Sarlande, et si j'ai gagné, je récupère ma mise A plus un gain de 100¤·log(1+(A/100¤)) payé par la banque (comme on le vérifie en calculant l'intégrale 100¤ (A+100¤) ( u+100¤ u ) du — ici écrite en MathML — qui vaut A + 100¤ · log ( 1 + A100¤ ) ). La divergence est certes logarithmique, mais elle est là (sans regarder le détail de l'intégrale, on voit bien que la divergence doit être logarithmique parce que le gain varie comme l'inverse de u).

Voici comment on peut y remédier. Disons que la banque (=l'autorité qui mène les paris) veut limiter ses pertes à 100¤ dans le pire cas. Elle met donc initialement 100¤ dans deux comptes, le compte u somme pariée sur Sarlande et restant à distribuer et le compte v somme pariée sur Holkozy et restant à distribuer. Si je veux miser δ (une somme infinitésimale) sur Sarlande, ce δ est ajouté à u comme précédemment, et placé à la même cote que précédemment (je récupérerai δ·(u+v)/u en cas de victoire de Sarlande, c'est-à-dire ma mise plus δ·v/u), mais cette fois je déduis la somme δ·v/u du compte v, puisque c'est à partir de là que je paie les gains. Il est facile de se convaincre que dans ce système, le produit u·v (ou, si on veut, la moyenne géométrique entre les deux) reste constant ; la banque réalise un bénéfice net de v−100¤ si c'est Sarlande qui gagne, et u−100¤ si c'est Holkozy, ses pertes sont donc minorées dans le pire cas (le reste des gains éventuels venant des mises des autres joueurs). Cette fois, si après la mise fictive initiale de 100¤ de chaque côté je suis seul à parier et que je parie A sur Sarlande, et si j'ai gagné, je récupère ma mise A plus un gain de 100¤·(A/(100¤+A)) payé par la banque, puisque u vaut 100¤+A après mes mises et v vaut 10000¤²/(100¤+A). Cette fois il n'y a pas de divergence puisqu'on intègre quelque chose en v/u, c'est-à-dire en fait en 1/u² (précisément, l'intégrale est 100¤ (A+100¤) ( u + ( 100¤/u ) u ) du ce qui vaut A + 100¤ · ( A 100¤ + A ) ).

Ce système semble mathématiquement assez naturel (et se généralise assez bien à plus de 2 candidats), et il me rappelle l'apparition de la moyenne géométrique que j'avais vue dans la réalisation des paniers de monnaies. Mais je ne sais pas si elle porte un nom standard, ni si c'est ce qu'utilisent les bookmakers anglais (modulo leurs marges, et modulo le fait qu'ils ne remettent évidemment pas à jour leur cotation instantanément).

(mercredi)

Douanes : commentaire d'une photo

Dans le charmant et ô combien humaniste clip de campagne de notre président pour le second tour, on voit l'image suivante (c'est autour de 1′19″ dans la vidéo sur DailyMotion, mais je ne sais pas faire un lien vers un instant précis d'une vidéo sur ce site) :

[Panneau douanes]

Comme j'ai pris le parti de parler fort peu de politique sur ce blog[#], je n'en dirai pas plus sur ce que m'inspire ce clip, ou l'apparition de ce panneau censé représenter les frontières de l'Europe. Par contre, comme je suis geek et ça je ne le cache pas, je me suis posé des questions sur ce panneau.

En arabe, il est écrit : الجمارك (ʾal-ǧamārik) — ce qui est le pluriel de الجمرك (ʾal-ǧumruk), la douane. Là j'ai le plaisir de pouvoir dire que M. Sarkozy m'a enseigné un mot d'arabe. Wiktionary m'apprend de plus que ce mot vient du turc gümrük, qui semble être le mot turc standard pour désigner les douanes (il n'a lui-même pas d'entrée dans Wiktionary, mais il en a une dans Wikipédia en turc qui parle bien des douanes). Je suppose que l'emprunt s'est fait sous l'Empire ottoman (qui parlait, si j'ai bien suivi, un turc largement mêlé de persan-lui-même-mêlé-d'arabe).

Il y a une autre chose que je remarque dans ce mot arabe, c'est la façon dont est écrite la dernière lettre, U+0643 ARABIC LETTER KAF (celle de gauche, pour ceux qui auraient oublié que l'arabe s'écrit de droite à gauche…) : si on compare les deux formes suivantes de la même lettre :

Celle de gauche est la forme « isolée »[#2] de la lettre kāf, qu'il aurait, me semble-t-il, été plus standard de trouver ici (et que votre navigateur devrait vous montrer dans le الجمارك que j'ai cité ci-dessus) ; remarquons d'ailleurs qu'elle est graphiquement identique à un lam surmonté de l'autre variante de cette lettre. La variante de droite est celle qu'on trouve sur le panneau en question, et c'est celle qui sert normalement plutôt pour la forme connectée à gauche (i.e., initiale ou médiale) de cette lettre. Je ne sais pas pourquoi c'est celle qu'on trouve ici : est-ce une bizarrerie de cette police de caractères servant pour les panneaux routiers ? Est-elle là pour plus de lisibilité ? Est-ce que la variation n'a simplement aucune importance ? C'est probablement un peu comme l'alphabet grec, où on enseigne souvent qu'il faut utiliser telle variante du bêta en début de mot et telle variante en milieu de mot, ou telle variante du sigma en milieu de mot et telle variante en fin de mot, mais en fait ces règles sont sans doute un peu arbitraires[#2b].

Ajout : J'aurais peut-être dû rendre plus clair le fait qu'il ne s'agit en aucun cas d'une bizarrerie d'orthographe (la dernière lettre du mot est indiscutablement un kāf) mais de typographie/écriture (que ce soit pour plus de clarté ou de simplicité ou je ne sais quoi, la forme isolée du kāf, dans cette police, ressemble à ce qu'on voit). En fait, cette page explique assez clairement que le fait de ne pas prendre une forme spéciale pour le kāf isolé/final est typique du persan, et que pour ça Unicode a inventé le U+06A9 ARABIC LETTER KEHEH (le nom keheh n'est pas utilisé en persan, qui appelle kāf la lettre en question, mais en sindhī, qui utilise à la fois un kāf arabe et un kāf persan appelé alors keheh). On pourrait donc transcrire le mot tel qu'il figure sur le panneau en الجمارک, ce qui donne la bonne apparence, mais ce serait un peu un non-sens (le mot n'est pas persan, la lettre est un kāf arabe, quelque inattendue que puisse être son écriture).

Revenons à la linguistique.

Le mot français douane, qui figure en-dessous, vient lui-même, apparemment via l'arabe, du mot persan دیوان (dīvān), lui aussi répandu par l'empire ottoman, où il désignait le divan du sultan, c'est-à-dire une sorte de conseil d'État (dont la porte emblématique, celle du sérail Topkapı à İstanbul, est la fameuse sublime porte qui par métonymie désignalit l'administration de l'Empire ottoman). Le mot a aussi donné en français, tout simplement, divan[#3], dont il est amusant de constater qu'il est apparenté à douane. À l'origine, un dīvān, comme peut-être l'arménien դիւան (maintenant écrit դիվան), semble désigner un recueil de textes, voire une collection de poèmes.

Bon, maintenant la question à 100 zorkmids : où cette photo a-t-elle été prise ? Et pour commencer, quelle est la troisième langue en-dessous de l'arabe et du français ? Le mot duana signifie douane en catalan, par exemple, mais je vois mal où on aurait du catalan dans ce contexte. Peut-être est-il plus plausible de penser que c'est le mot castillan aduana dont la première lettre serait tombée ou effacée ? Le centrage du mot (un peu décalé vers la droite) ne rend pas la chose invraisemblable ; et cela semble plausible si le panneau est situé à la frontière entre le Maroc (où l'on parle une forme d'arabe et, de façon officieuse mais néanmoins assez répandue, le français) et l'une des exclaves espagnoles de Ceuta ou Melilla (où l'on parle espagnol). Ceci dit, c'est un peu étrange d'avoir photographié un panneau dont une lettre serait tombée. Et à part ça, la frontière entre le Maroc et l'Espagne à un de ces endroits, d'après Google Images, elle a l'air un peu plus militarisée que ça, façon mur de Berlin dans les années '60, pas vraiment comme ce petit panneau qui pourrait être au milieu de nulle part.

Ajout : Plusieur personnes me signalent que la source est ici sur fotolia et que je ne sais pas me servir de la recherche par images dans Google Images (le truc est que j'ai bêtement cliqué sur visually similar images au lieu de descendre à pages that include matching images). Bon, ça confirme que c'est bien au Maroc, mais on ne sait pas pour autant si c'est aux frontières espagnoles ou, sinon, pourquoi l'inscription (a)duana.

Pas beaucoup de rapport, mais puisque je parlais de l'empire ottoman, je devrais mentionner que j'ai fini de lire le petit roman Parle-leur de batailles, de rois et d'éléphants[#4] de Mathias Énard (édité par Actes Sud). C'est l'histoire d'une visite (imaginaire !) que Michel-Ange — exaspéré que le pape Jules II se montrât si mauvais payeur — aurait fait à Constantinople en 1506, sur l'invitation du sultan Bāyezīd II pour concevoir un pont sur la Corne d'Or (dans la réalité, il semble que Michel-Ange ait bien été approché par le sultan, après Léonard de Vinci, mais qu'il ait refusé la proposition) ; et de sa réaction face à la découverte de cette ville et de ses habitants. C'est à la fois bien écrit et (pour autant que je puisse en juger) bien documenté, et ça se lit agréablement.

[#] Parce que — quelle que soit la position qu'on prenne — ça attire en général des commentaires fort stupides, alors que quand on parle, par exemple, du problème de Hadwiger-Nelson, ils sont beaucoup plus intelligents. Mais surtout parce que je n'ai pas l'impression que mes propres opinions politiques soient particulièrement originales ou intéressantes à raconter. Je ferai peut-être une exception le 6 mai, nous verrons.

[#2] Forme isolée et non finale, parce que la lettre précédente (rāʾ) ne lie jamais sur la gauche. Mais à la limite, peu importe, une forme finale serait semblable pour ce que je veux souligner.

[#2b] J'en profite en revanche pour me plaindre d'une photo telle que ci-contre[Josh Henderson en tenue de soldat devant une inscription en pseudo-arabe] qui est une photo de la série télé Over There (au moins une photo promotionnelle (film still), je ne sais pas si elle apparaît vraiment à l'écran), sur laquelle j'étais tombé en cherchant des photos du beau Josh Henderson complètement par hasard. Est-on vraiment censé croire que ce qui est écrit sur le mur derrière le soldat serait de l'arabe ? Parce qu'il faut être assez profondément nul et ignorant pour penser que ça puisse en être : ça ne ressemble même pas à de l'arabe, ce sont des lettres arabes sous forme isolée disposées un peu au hasard sur le mur. Or même si on ne connaît rien de l'alphabet arabe, on doit quand même avoir remarqué que les lettres sont reliées les unes aux autres !

[#3] Faut-il considérer qu'il est équivalent à l'anglais ottoman ? Google Images semble penser que non : apparemment les Français ont l'idée que les divans ottomans avaient un dossier et les Anglais qu'ils n'en avaient pas — mais sur quoi s'asseyait donc le sultan ?

[#4] Le titre est tiré d'une phrase de Kipling (dans Life's Handicap) : Tell them of what thou alone hast seen, then what thou hast heard, and since they be children tell them of battles and kings, horses, devils, elephants, and angels, but omit not to tell them of love and suchlike.

(mardi)

Neuvième blogoversaire

Contrairement à mon grand blogofrère de quelques jours Matoo, qui se plaint d'oublier son blogoversaire, j'ai eu la prévoyance de choisir de commencer le mien (de blog) à une date vaguement symbolique (la fête du vrai travail des vrais blogueurs à la sueur de leur front) et facilement mémorisable. Vous pouvez donc me féliciter pour ces neuf années passées à râler, à raconter des bêtises sur tout ce qui me passe par la tête, à râler, à mal vulgariser les maths, à râler, à pondre des entrées trop longues, à râler, à ne pas faire ce que je promets ni finir ce que je commence, et surtout, à râler.

Je regrette une chose, c'est que l'écriture de ce blog ne m'ait pas donné beaucoup d'occasions de rencontrer mes lecteurs. J'en ai eu quelques occasions, certes : par exemple de rencontrer lors de mon dernier passage à Lyon[#] un certain oncologue (heureusement pas rencontré dans un contexte professionnel) que vous avez pu remarquer dans les colonnes de mes commentaires, ou plus récemment un futur thésard en crypto que le poussinet et moi avons hébergé pour la nuit à son retour d'Eurocrypt. Mais trop peu : parfois je croise des gens qui me disent sur le ton de la confidence qu'ils suivent mon blog, mais je peux regretter de ne pas l'avoir su plus tôt ou de ne pas avoir plus de temps pour discuter[#2]. Et par extrapolation, je me dis qu'il doit y avoir beaucoup d'autres gens intéressant qui lisent mon blog et dont je ne sais absolument rien. Bref, n'hésitez pas à mon contacter, moi j'aime bien faire la connaissance de nouvelles personnes.

[#] Le week-end de Pâques. Mon poussinet et moi y sommes allés pour rendre visite à la famille de mon petit frère adoptif et pour nous ravitailler en chocolats de l'extraordinaire M. Bernachon[Vitrine du chocolatier Bernachon] (dont je recommande particulièrement les tablettes de chocolat à la vanille).

[#2] Comme cet autre jeune cryptographe croisé lors du pot de thèse d'un ami et (maintenant ex-)thésard en crypto, et dont je n'ai pas eu la présence d'esprit de demander l'adresse, c'est dommage (et par ailleurs, ceci est un hint ;-)).

(samedi)

Le piège de Hadwiger-Nelson

Un collègue m'a poussé à réfléchir à des questions tournant autour du problème de Hadwiger-Nelson (ou problème du coloriage du plan, ou problème du nombre chromatique des unit distance graphs). Fatale erreur ! Ma maman m'avait pourtant toujours dit quand j'étais petit : Ne réfléchis jamais au problème de Hadwiger-Nelson. Ce problème est comme le Zahir de Borges : on commence à y penser, on se laisse tenter par son apparence si facile et si séduisante, sa faculté à relier des domaines mathématiques aussi divers que la théorie des graphes, la géométrie algébrique et la logique, et bientôt on ne peut plus songer qu'à lui, on le voit dans des rêves et on dessine partout des petits graphes avec des points à distance 1 les uns des autres.

Le problème de Hadwiger-Nelson (que j'avais d'ailleurs déjà évoqué, mais je n'en connaissais pas le nom à l'époque) est sans doute le problème mathématique ouvert le plus incroyablement simple à formuler (même si cette simplicité est peut-être un peu trompeuse). Et qui insulte l'honneur de l'esprit humain de ne pas être capable de répondre à une question aussi bête :

(On fixe une fois pour toutes une unité de distance.) Quel est le nombre minimal χ de couleurs qu'il faut pour colorier le plan de manière que deux points distants d'une unité ne soient jamais de la même couleur ?

Tout ce qu'on sait montrer est que 4≤χ≤7. Et c'est d'autant plus frustrant que la démonstration de ces deux faits est à la portée d'un collégien, et que toutes les maths sophistiquées qu'on a pu essayer de balancer contre ce problème n'ont pas amélioré d'un chouïa l'encadrement en question. La minoration par 4 est démontrée par exemple par la figure suivante, appelée Moser's spindle (le fuseau de Moser ?) :

Chaque arête a distance 1 dans le plan, ce qui détermine rigidement la figure. Il est facile de se convaincre qu'il n'est pas possible de colorier les sommets de ce graphe avec seulement 3 couleurs de manière que deux sommets reliés par une arête ne soient pas de la même couleur (en effet, si on n'a que trois couleurs, quelle que soit la couleur c du sommet en bas à gauche, les deux autres sommets de chacun des triangles équilatéraux dont il est un sommet doivent avoir les deux autres couleurs, du coup le sommet tout en haut et celui tout à droite ont la même couleur c, or ils sont reliés par une arête, une contradiction). La majoration par 7 est démontrée par la figure suivante :

L'unité de longueur (figurée par le trait noir en haut à gauche, et qui est à la même échelle que sur la figure précédente) est juste un tout petit peu trop courte pour relier les sommets les plus proches de deux hexagones de la même couleur, mais juste un tout petit peu trop longue pour tenir à l'intérieur d'un même hexagone : donc quelle que soit la manière dont on place cette règle sur le plan, les deux extrémités auront une couleur différente.

On ne sait rien dire de mieux, donc. Oh, on sait dire des choses sur des problèmes adjacents : par exemple, sur le nombre chromatique fractionnaire du plan pour la relation être-distant-d'une-unité (on sait qu'il est compris entre 3.55 et 4.36), ou sur les coloriages dans lesquels on impose de plus aux parties coloriées d'être mesurables (on sait qu'il faut alors au moins 5 couleurs), ou sur le coloriage des points à coordonnées rationnelles (seulement 2 couleurs suffisent alors) ; en fait, on sait dire assez de choses pour qu'Alexandr Soifer écrive un livre de 600 pages consacré à peu près entièrement à ce problème. Mais l'inégalité 4≤χ≤7 continue de nous narguer et de rappeler les mathématiciens à l'humilité. Personnellement je trouve ça beaucoup plus rageant que le problème de Collatz/Syracuse/3n+1 ou que le théorème de Fermat n'a jamais pu l'être.

Et ce que ce problème a de rageant, aussi, c'est qu'on ne sait pas trop quoi conjecturer. Un théorème d'Erdős et de Bruijn (qui est une conséquence immédiate du théorème de compacité du calcul propositionnel, ou — un petit peu moins immédiate — de la compacité des produits de compacts) assure que pour minorer le nombre de couleurs χ nécessaire pour colorier le plan, il « suffit » [OK, en fait ça veut dire « il faut », comme on me le signale en commentaire] d'exhiber un graphe fini réalisable avec distance 1 et qui n'est coloriable qu'avec ce nombre de couleurs. On pourrait donc se dire que puisque ces « unit distance graphs » ont été tant étudiés, s'il y en avait un qui ait nombre chromatique 5 ou plus, ça aurait fini par se voir : mais il est aussi parfaitement plausible qu'il ait un nombre de sommets faramineux, alors que la borne supérieure de 7 par le pavage hexagonal, elle, a l'air tellement naturelle, tellement appropriée a la situation, qu'on a envie de croire qu'elle est optimale. De fait, jusqu'à récemment, j'étais convaincu en mon for intérieur que la bonne valeur de χ est 7. Mais il est parfaitement possible que ce ne soit la bonne valeur que pour des parties coloriées possédant des propriétés de régularité sympathique (ceci dit, même avec l'hypothèse de mesurabilité on ne sait pas fermer le gap), et qu'un coloriage avec 4 couleurs existe mais nécessite l'axiome du choix (qui est caché derrière le théorème d'Erdős-de-Bruijn). Croire que χ=4 se défend aussi : elle consiste à croire que les configurations de points à distance 1 dans le plan ne peuvent pas trop nous jouer de tour ou de coïncidences inattendues, qu'ils ne sont pas trop éloignés des graphes de Laman (lesquels sont toujours 4-coloriables pour des raisons idiotes de degré). Entre les deux, il est aussi permis de croire que la bonne valeur est 5 ou 6, même si ça semble moins plausible qu'aucun des deux arguments élégants pour 4 ou 7 ne donne la bonne valeur, mais bon, c'est comme en politique, il faut bien qu'il y ait aussi des centristes qui croient qu'in medio stat virtus.

Bon, à part ça, je continue à vouloir écrire un textes sur les octonions pour mettre dans ce blog, mais je retarde ça tant que je n'ai pas trouvé le temps de lire l'article attentivement fondamental Lie Groups in the Foundations of Geometry de Hans Freudenthal (qui expose généralement la raison pour laquelle les octonions sont naturels). Comme cet article est dense, ça risque de prendre du temps.

Et je maintiens aussi sur le feu mes éphérémides astronomiques (dans lesquels je mets des quaternions, comme beaucoup de gens l'ont deviné, mais pas d'octonions), mais comme dès que je m'y mets pour trop longtemps je m'énerve contre l'astronomie, il ne faut pas non plus y compter pour sitôt.

(jeudi)

Cartographie électorale

En bon lecteur régulier du blog Strange Maps, j'aime bien ces petites cartes synthétiques sur le résultat du 1er tour de la présidentielle française. À part qu'elles sont trop petites et que je ne trouve pas la version d'origine. Mais plutôt que réaliser un nombre important de petites cartes de ce genre, je pense que ce serait plus sympa de faire une carte interactive qui permet d'obtenir n'importe quoi. Voici donc une requête :

Je voudrais une page (écrite en JavaScript+Canvas) dans laquelle on peut entrer une fonction JavaScript (ou en choisir une parmi tout un tas prédéfinies) qui prend en paramètre les résultats électoraux d'un canton, voire d'une commune, en 2012 (et éventuellement, pour comparaison, en 2007, et éventuellement des données de base en plus comme la population, la surface, le PIB s'il est connu avec une telle résolution) et lui associe une couleur, et qui trace la carte de France correspondante. Comme ça, si je veux tracer une carte du taux d'abstention, de tel ou tel candidat, ou de choses plus funky comme la valeur (Hollande−Sarkozy)/Bayrou, ou de n'importe quoi d'autre qui me passera par la tête, je pourrais le faire sans attendre que quelqu'un le fasse pour moi.

Voilà qui serait l'occasion de montrer ce qu'on peut faire avec de l'Open Data : il faut au moins (0) les données géographiques des limites des communes ou cantons, et (1) les résultats électoraux commune par commune téléchargeables en bloc. Concernant (0), les données semblent disponibles sur www.data.gouv.fr sous forme d'un fichier SHP (pas super agréable comme format, mais je ne vois pas ce que je pourrais souhaiter de mieux). Concernant (1), elles sont ici.

Quelqu'un se sent motiver pour coder ça ? Ou est-ce que c'est encore bibi qui va devoir faire le travail ? (Il faut se dépêcher, dans dix jours le premier tour n'intéressera plus personne.)

(jeudi)

Les astronomes font chier avec leurs unités

Parmi les unités utilisées en astronomie, on trouve, pour les angles : le radian, le tour (2π radians), le degré (1/360 tours), la minute d'arc (1/60 degré), la seconde d'arc (1/3600 degré), et même la milliseconde ou la microseconde d'arc ; en ascension droite, on trouve aussi l'heure (15 degrés = 1/24 tours), la minute (15 minutes d'arc, merci au Club contexte) et la seconde (15 secondes d'arc). Pour les temps : la seconde SI, la minute (60 secondes), l'heure (60 minutes), le jour SI (24 heures), le siècle julien (36525 jours) et même le millénaire julien (365250 jours) ; mais il y a aussi des choses comme l'année besselienne de 365.242198781 jours, le jour sidéral de 1/1.00273781191135448 jours SI ; et comme une grandeur comme, justement, le temps sidéral, peut être vu comme un angle ou comme un temps (sachant que si c'est un temps, un jour (sidéral) représente 360° d'angle, et peut se diviser en heures et minutes), disons qu'il est facile de se tromper.

(Et je ne parle pas du facteur 1 + 1.55051979176×10−8 entre la seconde TDB et la seconde SI, ou entre les mètres idem. Par exemple, la valeur donnée usuellement pour l'unité astronomique, 149597870700m, doit plutôt être considérée comme donnée en unités TDB qu'en unités SI.)

À part ça, il semble vraiment que personne ne sache prévoir, même grossièrement (i.e. mieux que compter environ 86400.002s par jour) le temps universel. Voir cette page pour des explications très intéressantes sur ce qu'on sait dire à ce sujet.

(mardi)

Suspend, ventilateurs, et petites crottes de ragondin

Un des buts de toutes mes mésaventures (finalement heureusement résolues) avec mon DreamPlug (entrées précédentes ici, , et ) était de pouvoir éteindre mon PC la nuit ou, plus exactement, le mettre en hibernation, pour qu'il ne fasse plus de bruit.

Hibernation, ce qui peut désigner deux choses, le suspend-to-RAM où la machine n'est pas vraiment éteinte mais seulement arrêtée et maintient sa mémoire vivante, ou le suspend-to-disk où la machine est techniquement éteinte et a recopié sa mémoire sur disque de manière à pouvoir redémarrer dans le même état. Ces deux modes d'hibernation sont censés être supportés par Linux mais, comme d'habitude, le support peut être aléatoire selon le type de matériel, d'autant plus qu'on parle ici d'un PC fixe et que l'hibernation est surtout testée sur des portables. Mon poussinet, par exemple, n'arrive pas à faire marcher le suspend-to-RAM sur sa machine, probablement à cause d'un problème dans la gestion de la carte graphique (le suspend-to-disk, en revanche, marche bien).

Initialement, j'ai trouvé que j'avais de la chance : le suspend-to-RAM semblait marcher parfaitement (le plus gros problème observé étant que l'horloge système se décale d'environ une seconde lors de l'opération, ce qui fait négligé mais est facile à corriger en reprenant l'heure correcte sur le réseau) ; le suspend-to-disk, lui, perd le contrôle du disque externe, ce qui est pénible mais pas catastrophique (il suffit de couper ce disque avant hibernation et le remettre après : comme ce disque ne me sert qu'à stocker des choses comme des musiques ou des films, pas à faire tourner des programmes, ce n'est pas trop gravement gênant), et il y a aussi un petit couac mineur avec le clavier (il faut refaire le mapping, c'est un bug bizarre, mais ça ne fait qu'une commande à taper).

Indépendamment de ça, je trouvais que le ventilateur de mon PC était devenu plus bruyant que d'habitude au redémarrage de l'hibernation : soit que ce soit le contraste avec le silence précédent qui cause cette illusion, soit que le ventilateur vieillisse et que le fait de l'allumer et de l'éteindre le rende plus bruyant. C'est là que j'ai commencé à regarder de plus près les réglages du BIOS parce que, après tout, mon ventilateur est censé être un modèle super silencieux et on ne pouvait pas dire qu'il le fût. Or il existe, dans ces réglages, deux modes de contrôle des ventilateurs : un mode PWM, c'est-à-dire Pulse Width Modulation, où le ventilateur est contrôlé par un signal spécial, et un mode DC où le ventilateur est bêtement contrôlé par la tension appliquée ; apparemment mon ventilateur ne supporte pas le contrôle PWM, et changer vers le mode DC a eu un effet énorme : au lieu de tourner constamment à 2400tr/min, il s'est mis à descendre à 1800tr/min lorsque la machine ne fait rien, ce qui peut ne pas sembler une différence énorme, mais ce qui représente pourtant une diminution considérable du bruit. Presque au point que l'hibernation n'ait plus d'intérêt.

Presque. Mais c'est là que le bât blesse : lorsque je configure les ventilateurs en mode silencieux (et avec le bon type de contrôle), c'est effectivement très confortable pour les oreilles, mais si jamais je mets l'ordinateur en suspend-to-RAM, au redémarrage, les ventilateurs reprennent leur profil de base (bruyant). Autrement dit, je ne peux pas avoir à la fois le réglage relativement silencieux des ventilateurs et le silence total du suspend-to-RAM de temps en temps. Bon, je peux encore faire un suspend-to-disk si je veux le silence complet sans perdre le silence relatif au réveil, mais outre les problèmes mineurs avec le disque externe et avec le clavier que j'ai signalés ci-dessus, le suspend-to-disk est lent (parce que j'ai 8Go de RAM) : quand je fais de l'insomnie et que je veux regarder un truc ou deux sur Internet avant de me recoucher, je n'ai pas envie d'attendre plusieurs minutes que la machine daigne se réveiller.

Je ne sais même pas si je dois attribuer ça à un bug (de l'ACPI) de ma carte mère (une Asus P5W64 WS Pro) ou de Linux. La carte mère et le BIOS doivent bien avoir des bugs puisqu'un suspend-to-RAM non seulement met les ventilateurs en mode bruyant, mais meme ce mode persiste après un reboot, il faut une extinction complète pour revenir en mode silencieux. Sinon, ce qui est sûr, c'est que Linux devrait être capable de régler lui-même la vitesse des ventilos, mais qu'il n'y arrive pas : il devrait même y avoir deux approches possibles, l'une passant par l'ACPI (module noyau asus-atk0110) et l'autre en parlant directement au matériel (module noyau w83627ehf), et qu'aucune des deux ne marche, dans les deux cas c'est apparemment la faute d'Asus : d'un côté je crois comprendre qu'il manque des interfaces dans l'ACPI, de l'autre je crois comprendre qu'ils n'ont pas publié les specs d'une puce utilisée sur cette carte mère. (J'avoue que l'idée de garder secrètes les spécifications détaillées de quelque chose d'aussi high-tech qu'une puce qui contrôle des putains de ventilos, ça m'échappe un peu : pensez à me rappeler de ranter contre les compagnies qui ont la culture du secret, comme ça, pour des trucs totalement débiles. Mais peut-être que j'ai mal compris.) Ou peut-être que Linux ne sait gérer que les ventilateurs utilisant le contrôle PWM, mais je ne vois pas pourquoi le BIOS arriverait à faire mieux, alors.

On est censé pouvoir désassembler le code de l'ACPI avec des outils comme acpidump, acpixtract et iasl, mais c'est assez chinois et je ne sais pas si je veux passer des heures à essayer d'y comprendre quelque chose, d'autant plus que le problème n'est peut-être même pas là.

J'ai parfois un peu tendance à penser que c'est encore plus frustrant quand l'informatique marche à 99% que quand elle marche à 0%, parce qu'à 99% on a l'impression qu'on pourrait y être, on a la vision du monde parfait qui nous nargue et qui reste cependant inaccessible, alors qu'à 0% au moins les choses sont claires. Le chemin de l'enfer est pavé de petites crottes de ragondin.

(dimanche)

J'essaie de comprendre comment la Terre tourne

Je me suis laissé convaincre par un ami d'écrire une application pour Android d'éphémérides astronomiques (il en existe certainement déjà plein, mais guère qui soient libres / open source) : c'est-à-dire un truc qui calcule au moins des choses comme la position et les heures de lever et coucher du Soleil, de la Lune et des planètes, les dates et heures des saisons et des phases de la Lune, et sans doute d'autres choses du même acabit. Normalement, ça ne devrait pas être difficile, il y a plein de code pour ça, presque déjà écrit, en fait, qu'il suffit de convertir en Java.

Mais le truc, c'est que je suis un chouïa maniaque (←ceci est un euphémisme) sur certaines choses, et j'ai une idée assez arrêtée sur la façon dont les choses devraient être faites. Notamment, un calcul astronomique ne se mène pas vraiment de la même façon si on vise une précision d'une fraction de minute d'arc ou de quelques microsecondes d'arc. Et je n'ai pas envie de faire silencieusement des approximations qui empêcheraient de passer à une précision nettement plus grande : i.e., je ne tiens pas spécialement à ce que mon application permette une précision énorme, mais je tiens à ce que le cadre logiciel le permette. Ça devient un peu un défi (stupide) en soi.

Or il se trouve que réaliser des calculs astronomiques permettant, même en principe, une très haute précision, c'est compliqué. (Ne serait-ce que parce qu'on ne va plus pouvoir négliger les effets relativistes, et qu'on commence à avoir mal à la tête juste pour définir ce que c'est que le temps.) J'ai une assez bonne vision des phénomènes les plus simples, mais si je m'impose le carcan de bien prendre conscience de toutes les approximations, je m'y perds assez.

Prenons l'exemple de la rotation de la Terre.

La zéroïème approximation, celle qu'on apprend à l'école primaire, c'est que la Terre tourne autour du Soleil, effectuant une révolution en une année dans un plan appelé écliptique, et qu'elle tourne aussi autour d'elle-même selon un axe de direction fixe appelé l'axe des pôles et dont le plan perpendiculaire s'appelle le plan équatorial ; l'angle entre les plans écliptique et équatorial, ou bien entre l'axe des pôles et l'axe perpendiculaire au plan écliptique, s'appelle l'obliquité ou inclinaison de l'axe terrestre, notée ε, et vaut 23°26′15.66″. L'angle entre l'axe de rotation et la droite Terre-Soleil est responsable des saisons, lesquelles sont limitées par les deux équinoxes lorsque l'axe est en quadrature avec cette droite, ou, si on préfère, que le Soleil se trouve dans le plan équatorial de la Terre, et par deux solstices lorsque le Soleil atteint ses latitudes minimale et maximale par rapport au plan équatorial terrestre, qu'on appelle tropiques du Capricorne (→été austral) et du Cancer (→été boréal). Ça c'est ce que tout le monde devrait savoir, sauf à être un sombre inculte.

Même en zéroïème approximation, il y a moyen de faire une erreur classique[#] : c'est de penser que la période de la rotation de la Terre est égale à un jour solaire (24h), alors qu'en fait 24h est la période moyenne de la rotation par rapport à la direction du Soleil ; or, comme la Terre tourne en même temps (et dans le même sens) autour du Soleil, la période de rotation par rapport aux étoiles fixes — ou jour sidéral — est plus courte, de sorte qu'il y a tout juste un jour sidéral de plus dans une année qu'il n'y a de jours solaires, c'est-à-dire environ 366.2564 jours sidéraux contre 365.2564 jours solaires, la différence étant justement la révolution qu'on a faite autour du Soleil pendant ce temps ; ce qui donne 23h56min04.1s pour le jour sidéral. Ou pour dire les choses autrement : au bout de 23h56min et un chouïa, les étoiles vues depuis la Terre ont fait un tour complet de la voûte céleste, mais comme le Soleil parcourt l'écliptique d'ouest en est en une année, au bout d'un jour il s'est déplacé de l'ordre de 1° vers l'est (par rapport aux étoiles), et il faut attendre en moyenne à peu près 4min de plus pour qu'il revienne à la même longitude dans le ciel, soit 24h, et c'est la différence entre le jour sidéral et le jour solaire.

Soulignons par ailleurs que ceci n'est dit qu'en moyenne : si le jour sidéral est assez constant, le jour solaire (également appelé synodique) n'est égal à 24h qu'en moyenne. Il y a deux raisons à ça, c'est-à-dire deux raisons au fait que la longitude du Soleil par rapport aux étoiles fixes ne progresse pas à un rythme constant. La première est le fait que la Terre ne tourne pas à vitesse constante autour du Soleil : à cause de la loi des aires, elle tourne un peu plus vite vers janvier (quand elle est plus près du Soleil) qu'en juillet (quand elle est plus loin) ; ce phénomène introduit un terme périodique de période 1 an dans le décalage entre heure solaire vraie et heure solaire moyenne. Le second phénomène est le fait que le Soleil vu depuis la Terre parcourt la voûte céleste non selon l'équateur mais selon l'écliptique, qui est penché de ε par rapport à lui : donc même si le Soleil tournait à vitesse constante sur l'écliptique de la voûte céleste, sa projection sur l'équateur, elle, avancerait un peu plus vite au moment des solstices et un peu plus lentement au moment des équinoxes ; ce deuxième phénomène introduit un terme périodique de période 6 mois dans le décalage entre heures solaires vraie et moyenne. La somme de ces deux phénomèmes (et, si on en considère d'autre, tout ce qui peut faire que l'heure solaire vraie n'est pas égale à l'heure solaire moyenne) s'appelle l'équation du temps — je renvoie à cet article, qui est très bien écrit, pour une discussion détaillée.

Pour passer à l'approximation suivante, il y a un nouveau phénomène à prendre en compte, c'est le fait que l'axe des pôles de la Terre ne reste pas de direction constante : cette direction tourne elle-même autour d'un axe perpendiculaire au plan écliptique, dans un phénomène qui s'appelle la précession des équinoxes, dont la période est de 25770 ans. Ceci peut se voir de différentes façons : au bout d'une année qu'on peut qualifier de sidérale, le Soleil est revenu à sa place sur l'écliptique par rapport aux étoiles fixes, mais l'équateur, lui, s'est un peu décalé dans le sens contraire par rapport à l'écliptique, et donc l'intersection des deux, qu'on appelle l'équinoxe (de printemps, disons), et il faut environ 20 minutes de moins pour que le Soleil revienne à sa même position par rapport à l'équinoxe. Donc de même que la révolution de la Terre autour du Soleil (ou, vue depuis la Terre, le parcours de l'écliptique par le Soleil) introduit une différence entre jour sidéral et jour solaire, la précession des équinoxes introduit une différence entre année sidérale (mesurée par rapport aux étoiles fixes) et année tropique (mesurée par rapport aux équinoxes, i.e., par rapport aux saisons) : la période de la précession des équinoxes est de 25770[#2] années sidérales, mais 25771 années tropiques. Du coup, on peut aussi définir trois jours différents, selon qu'on considère la période de rotation par rapport au Soleil (24h), par rapport aux étoiles fixes (23h56min04.10s) ou par rapport aux équinoxes (23h56min04.09s), mais les deux derniers diffèrent évidemment très peu.

La précession des équinoxes est un phénomène connu depuis fort longtemps, et qui fait que parfois les gens se moquent des astrologues (ce qui est en soi une activité louable, certes, mais encore faut-il le faire pour les bonnes raisons) parce que ceux-ci appellent bélier, taureau, gémeaux, etc., un douzième de l'écliptique chacun et définis par rapport aux équinoxes tandis que les constellations astronomiques de ce nom sont (d'une part au nombre de treize et inégalement espacées) assurées par des étoiles fixes : c'est une mauvaise critique et j'ai déjà défendu le fait que les douze saisons « astrologiques » sont une division parfaitement sensées des quatre saisons qu'on définit usuellement, et d'ailleurs je les fais figurer sur les calendriers que je me fabrique chaque année. La cause principale de la précession est l'action des forces de marées causées par la Lune et le Soleil sur le bourrelet équatorial de la Terre (i.e., comme cette dernière n'est pas sphérique, l'action de la Lune et du Soleil qui attirent de façon plus importante la partie qui en est la plus proche, n'équivaut pas à une action ponctuelle) : il y a donc un couple de force qui cause une précession gyroscopique ; on parle pour cet effet de précession luni-solaire (il existe aussi une précession planétaire, due à l'effet des autres planètes du système solaire, c'est-à-dire surtout Jupiter, mais elle est plus faible).

En plus de la rotation de la Terre et de la précession des équinoxes, il y a un phénomène appelé la nutation : alors que la précession des équinoxes est un mouvement très lent mais très important de l'axe des pôles, la nutation est un mouvement de bien plus faible amplitude (de l'ordre de la quinzaine ou vingtaine de secondes d'arc) et beaucoup plus rapide (le terme le plus important a une période de 18.6 années qui est la période de la régression des nœuds lunaires, c'est-à-dire la droite d'intersection du plan d'orbite de la Lune avec l'écliptique). En gros, la nutation correspond à de petites oscillations de l'axe des pôles autour de sa position moyenne. Il faut noter que cette nutation se produit à la fois dans le sens de la précession (l'axe avance et recule un peu par rapport à son mouvement de précession) et dans le sens orthogonal (l'axe s'incline plus ou moins que l'obliquité moyenne) : on parle respectivement de nutation en longitude et de nutation en obliquité.

Ensuite, les choses se compliquent® : l'écliptique lui-même n'est pas fixe (il varie lentement sous l'effet de l'attraction des autres planètes du système solaire), l'inclinaison de la Terre n'est pas non plus constante même à long terme (c'est-à-dire même une fois moyennée la nutation en obliquité — même si en fait l'essentiel de cet effet est alors dû, justement, au mouvement de l'écliptique), la rotation de la Terre n'est pas uniforme (elle comporte à la fois des variations périodiques pas toujours bien connues, et un ralentissement séculaire qui est estimé — de façon un peu conventionnelle — à 1.64 milliseconde par jour et par siècle, d'ailleurs pour des raisons que j'ai déjà expliquées, la durée du jour est entre 1ms et 2ms plus longue que 24h), et d'ailleurs l'axe des pôles varie non seulement dans l'espace mais aussi à la surface de la Terre (on parle de polhodie ou oscillation de Chandler) avec une période de l'ordre de 430 jours et une amplitude de l'ordre de 10m (et ça n'arrange rien qu'il soit difficile de définir ce qu'on appelle, au juste, le pôle[#3]).

Normalement, à ce point-là, le mathématicien explose et s'exclame : Mais aussi compliqués que soient les phénomènes physiques sous-jacents (qu'il ne s'agit pas ici de modéliser mais simplement de décrire), l'orientation d'un objet rigide dans l'espace peut se décrire par exactement trois angles (angles d'Euler, qui s'appellent justement, et pas par hasard : la précession, la nutation et la rotation propre — terminologie néanmoins un peu confusante puisque par exemple la nutation astronomique en longitude est, du point de vue des angles d'Euler, une précession). Donc, pour tout décrire, il suffit de donner un développement temporel de ces trois angles d'Euler (qui caractérisent la transformation entre le système de coordonnées terrestre[#4] de l'IERS[#5] et leur système de coordonnées céleste[#6]).

Il y a différentes raisons pour lesquelles ce n'est pas ce qui se fait, et pour lesquelles on (=l'IERS) décrit l'orientation de la Terre non comme une seule rotation mais comme une composition de plusieurs rotations (une pour la précession générale, une pour la nutation, une pour la rotation proprement dite, et une pour la polhodie). Une raison est qu'il est utile de décrire non seulement l'orientation stricto sensu de la croûte terrestre mais aussi différents repères ou objets géométriques intermédiaires (l'écliptique, l'équateur moyen, l'équateur instantané, le pôle à la surface de la Terre…). La séparation des mouvements entre précession et nutation, par exemple, est un peu arbitraire (grosso modo, on met dans la précession ce qu'on appelle les termes séculaires et dans la nutation les termes périodiques, mais tout dépend en fait de l'échelle de temps considéré), cependant il est utile d'avoir fixé une convention à ce sujet, pour pouvoir parler d'équateur moyen (celui qui est sujet à la précession mais pas à la nutation) et d'équateur instantané (celui qui est sujet aux deux), et s'en servir dans d'autres définitions, par exemple pour le point vernal — ou équinoxe de printemps — qui est l'intersection (ascendante) d'un de ces équateurs avec l'écliptique[#7], et qui définit le début du printemps. Une autre raison (ou une autre facette de la même) est de séparer autant qu'on peut les phénomènes qu'on sait prévoir et ceux qu'on ne peut qu'observer.

Spécifiquement, un phénomène qu'on ne sait qu'assez mal prévoir (même si j'ai du mal à savoir la meilleure précision qu'on sache atteindre pour une prévision à 10 ans, 100 ans, 1000 ans) est celui de la rotation propre de la Terre ou ce qu'on appelle en astronomie le temps universel. Le temps universel (UT1) est défini par le fait que la Terre effectue une rotation par rapport au Soleil en 24h de temps universel, ou, en fait, une rotation sidérale en 23h56min04.0989036903511s. Mais cette définition cache de nombreuses subtilités (pour commencer, qu'est-ce que c'est exactement, effectuer une rotation ?). Par exemple, la très lente rotation constituant la précession des équinoxes constitue, après tout, une forme de rotation de la Terre, et si on écrit la matrice de transformation donnant l'orientation finale de la Terre comme composée d'une matrice de précession, d'une matrice de nutation et d'une matrice de rotation propre dépendant du temps universel, cette dernière doit décompter la partie de rotation qui a déjà été incluse dans la précession et la nutation. Ceci conduit à différentes façons, toutes désagréables, de traiter cette séparation, soit en calculant une équation des équinoxes qui correspond à évaluer la rotation cachée dans la précession et la rotation, soit en utilisant un point intermédiaire appelé point de référence céleste intermédiaire (et qui est défini comme le point toujours situé sur l'équateur de la voûte des étoiles fixes et dont le mouvement est non tournant en ce qu'il est toujours perpendiculaire à l'équateur lorsque l'équateur effectue des petits déplacements sous l'effet de la précession ou de la nutation) ; de même, sur terre, les effets du mouvement du pôle qui contaminent la rotation de la Terre conduisent à introduire un point de référence terrestre intermédiaire. Tout ceci est assez fastidieux à comprendre. Heureusement, il existe des documents pas trop mal écrits qui expliquent tout ce qu'il y a à savoir : soit les arides Conventions 2010 de l'IERS soit une circulaire un peu plus pédagogique écrite par l'observatoire de l'US Navy.

Après, même si on a compris comment les choses fonctionnent (ce dont, dans mon cas, je ne suis que partiellement convaincu), il faut encore trouver les données. La précession est décrite par trois angles dont la signification est un peu pénible à voir quand on est comme moi handicapé des trois dimensions, mais qui sont au moins décrits par des simples polynômes du temps et dont l'utilisation est clairement indiquée dans les documents que je viens de citer. La nutation est décrite par des séries de Poisson (une pour la nutation en longitude et une pour la nutation en obliquité) ; les astronomes aiment bien ça pour les développements numériques, les séries de Poisson : ce sont des sortes de séries de Fourier (finies, bien sûr), mais comportant aussi des puissances du temps, et dont les périodes sont généralement exprimées comme des combinaisons entières de périodes perturbatrices fondamentales (typiquement les longitudes moyennes des planètes ainsi, pour tout ce qui a trait au système Terre-Lune, que les arguments de Delaunay c'est-à-dire les anomalies moyennes du Soleil et de la Lune, l'argument moyen de la Lune mesurée depuis le nœud, la longitude moyenne du nœud, et l'élongation moyenne entre le Soleil et la Lune ; les arguments de Delaunay sont donnés comme des polynômes du temps, donc stricto sensu on n'a plus affaire à une série trigonométrique). La désagréable équation des équinoxes (qui sert à neutraliser la partie de rotation de la Terre introduite dans la précession et la nutation) est également exprimée comme polynôme plus série de Poisson (et en principe calculable à partir de la précession et de la nutation). Tout ça est un peu pénible à évaluer, d'autant qu'il faut commencer par trouver où sont cachées les données et les convertir depuis divers formats texte assez pourris prévus pour être évalués par des procédures en *shudder* Fortran. Pour la rotation de la Terre, ainsi que la position du pôle, on peut soit utiliser différents modèles approximatifs soit prendre des données d'observation publiées par l'IERS : je suis loin d'avoir les idées aussi claires que je voudrais sur le rapport entre ces différents ensembles de données (par exemple sur la question de savoir comment mélanger des théories plus ou moins anciennes et qui n'utilisent pas forcément exactement les mêmes conventions).

[Bon, encore une entrée qui s'est retrouvée à devenir beaucoup plus longue que je l'imaginais, dont j'ai maintenant franchement marre puisque ça fait quelque chose comme dix jours que je l'écris, et du coup j'ai la flemme de relire, bref, qui doit être bourrée de fautes en tous genres. De toute façon, les gens vont râler que gnagnagna je n'écris pas ce que j'ai promis sur les octonions gnagnagna.]

[#] Subtilité qui n'est pas relevée à l'école primaire. Quand j'étais en CM2, dans le cadre d'une introduction à l'astronomie, notre institutrice nous a demandé de définir un jour, j'ai essayé d'expliquer la différence entre jour solaire et jour sidéral, je me suis mal exprimé, et c'est moi qui suis passé pour un sombre inculte qui croit que le Soleil tourne autour de la Terre. :-)

[#2] En réalité, les niveaux d'approximation suivants font que cette période n'a pas beaucoup de sens en tant que période : ce que je donne là est la vitesse actuelle de précession des équinoxes, mais comme cette vitesse varie elle-même, ce n'est pas dans 25770 ou 25771 ans que les équinoxes auront accompli « un tour complet » de l'écliptique (notion qui n'est d'ailleurs pas évidente à définir vu que l'écliptique n'est pas non plus fixe…).

[#3] Cela peut faire référence à l'axe de rotation instantané, à l'axe de moment cinétique, ou à l'axe principal d'inertie. Il semble que les deux premiers diffèrent de quelques centimètres alors que le second diffère d'eux de quelques dizaines de centimètres. En fait, le bon pôle n'est rien de tout ça, mais une construction un peu compliquée appelée les axes de Tisserand, qui coïnciderait avec l'axe principal d'inertie si la Terre était rigide, mais tient plus intelligemment compte de l'élasticité du manteau, et cette construction elle-même suppose une distinction un peu arbitraire dans les périodes des perturbations (celles qui sont plus longues que deux jours sont placées dans la nutation, celles qui sont plus courtes sont placées dans la rotation propre et la polhodie) : on parle de pôle intermédiaire céleste pour l'objet ainsi construit.

[#4] J'aimerais dire qu'il s'agit de la latitude, de la longitude mesurée par rapport au méridien de Greenwich, et de l'altitude mesurée par rapport à l'ellipsoïde WGS84, mais en fait la définition du système de référence terrestre de l'IERS est un chouïa plus compliquée (à ce niveau de précision, on ne peut pas ignorer le fait que la croute terrestre n'est pas rigide et que les plaques tectoniques se déplacent les unes par rapport aux autres et sont sujettes à des marées). Suite à toutes sortes de définitions historiques se précisant les unes les autres, le méridien international, celui de l'IERS et qui est utilisé par les GPS, est situé 5.31″ à l'est du méridien historique. C'est ce que constatent, déçus, les geeks qui se rendent à l'observatoire royal de Greenwich avec un GPS ou qui simplement regardent sur Google Maps.

[#5] Le Service International de la Rotation de la Terre, qui a pour but de décrire et modéliser aussi précisément que possible l'orientation de la Terre dans l'espace (et de décider quand on introduit les secondes intercalaires). Même si on a tendance à s'imaginer en entendant le nom que ce sont eux qui la font tourner : j'avoue que ça a une classe infinie, quand on vous demande et vous, vous faites quoi, dans la vie ? de pouvoir répondre oh, je travaille au service de rotation de la Terre.

[#6] Système de coordonnées qui est à peine moins difficile à définir en théorie, est certainement beaucoup plus en pratique : on utilise de l'interférométrie à très longue base pour définir un repère cinétiquement sans rotation par rapport à des objets très lointains (des quasars).

[#7] L'écliptique lui-même pose des problèmes de définition, et doit être considéré comme largement conventionnel. Vu que l'orbite du barycentre Terre-Lune, qui est censée définir ce plan, comporte différentes perturbations périodique, on veut prendre une moyenne dans le temps. Traditionnellement, on utilisait le plan (écliptique moyen rotationnel) tel que la position du barycentre Terre-Lune, débarrassée de ses perturbations périodiques, se fasse toujours dans le plan en question. Maintenant, on considère plutôt le plan (écliptique moyen inertiel) orthogonal au moment cinétique moyen du mouvement orbital du barycentre Terre-Lune calculé dans un référentiel sans rotation par rapport aux étoiles lointaines. La différence entre ces deux concepts réside dans le fait que l'écliptique inertiel tient compte de la composante de moment cinétique qui provient de la variation (séculaire) du plan écliptique lui-même, tandis que l'écliptique rotationnel l'ignore (ce qui constitue une définition vaguement circulaire, mais néanmoins utilisable) : voyez cet article pour les détails.

(lundi)

Quelques réflexions sur l'inertie

Quand j'écris inertie dans le titre de cette entrée, je ne parle pas du phénomène psychologique mais scientifique : scientifique, c'est-à-dire notamment physique mais pas seulement. Dans ce sens, l'inertie, de façon volontairement très vague, c'est le mécanisme qui fait qu'un phénomène qui se produit a tendance à continuer à se produire (plutôt que, par exemple, cesser immédiatement que sa cause cesse).

En physique, il s'agit de la loi d'inertie, ou première loi de Newton, selon laquelle en l'absence de forces extérieures un objet continue à se déplacer en ligne droite et à vitesse constante : ce n'est pas une évidence, et historiquement il semble qu'on ait pu croire — dans la mesure où la physique aristotélicienne énonçait ces choses clairement, ce dont je ne suis pas sûr du tout — qu'une force était toujours nécessaire pour mouvoir un objet, i.e., le que fait qu'un objet en mouvement finisse par s'arrêter dans les situations concrètes n'était pas l'action des forces de frottement mais le phénomène normal, et que du coup l'inertie était ce qu'il fallait expliquer, ce qu'on a pu faire, semble-t-il, par des mécanismes du genre la poussée de l'air exercée par l'endroit que l'objet venait de quitter (je ne suis pas compétent en histoire des sciences, donc j'affabule peut-être en disant ça, ce sont des souvenirs de manuels de physique lus il y a longtemps, mais Wikipédia suggère des choses compatibles). Le principe général d'inertie, ce que j'ai appelé première loi de Newton, a été formulé clairement par Galilée, même s'il est sans doute exagéré de dire que c'est lui qui l'a dégagé.

Toujours est-il qu'on aurait tort de prendre ça pour une évidence. Il y a une célèbre anecdote racontée par Richard Feynman (qui vaut la peine d'être écoutée rien que pour son délicieux accent new-yorkais) sur la manière dont son père (Melville Feynman) lui a expliqué ce qu'est l'inertie : personne ne sait à quoi c'est dû. Un mathématicien va voir l'inertie comme le fait que la physique est décrite par des équations différentielles du second ordre (la force contrôle non pas la vitesse mais l'accélération, c'est-à-dire la variation de la vitesse), mais ce n'est que reformuler le problème ; ou encore, que si on ramène ces équations au premier ordre, cela se fait en introduisant de nouvelles variables en plus de la position, à savoir la quantité de mouvement des objets : l'état d'un système mécanique classique se traduit par la donnée non seulement des positions des objets mais aussi de leurs quantités de mouvement (ou de façon plus approximative, vitesses[#]). On peut reformuler ces choses de façon plus ou moins sophistiquée, parler d'espace des phases, de principes variationnels, de formulations lagrangienne ou hamiltonienne de la mécanique, on peut généraliser à la mécanique quantique ou à la relativité générale, mais il reste toujours ce même mystère qu'on pousse ou cache sous ces diverses formulations[#2].

Mais il y a d'autres domaines où la notion d'inertie peut être considérée, et c'est alors d'autant plus frappant qu'il ne faut pas la prendre pour une évidence.

Prenons l'économie. Voici une question qui me semble assez profonde : si vous avez une grandeur économique ou financière, peut-être le cours d'une action ou d'une monnaie, dont vous ne savez rien sauf sa valeur à l'instant présent, manifestement la meilleure chose que vous puissiez faire pour prévoir sa valeur demain, c'est de prévoir la même valeur (ce n'est évidemment pas une bonne prévision, mais si vous ne savez rigoureusement rien de plus, c'est certainement le mieux qu'on puisse faire) ; maintenant, je vous donne la valeur d'aujourd'hui et aussi la valeur d'hier : est-ce que la connaissance de cette valeur d'hier peut aider à faire une prévision meilleure ? Si on croit à une forme d'inertie en économie, on va se dire que si la grandeur a augmenté entre hier et aujourd'hui, elle risque d'augmenter de nouveau entre aujourd'hui et demain, et peut-être dans les mêmes proportions, donc on va peut-être prévoir pour demain la valeur symétrique de celle d'hier par rapport à celle d'aujourd'hui (de fait, en physique, si vous voulez prévoir le mouvement d'un objet, c'est exactement ça que vous prévoit la loi d'inertie en l'absence de forces, et donc ce sera une approximation sensée si vous ne savez rien du tout). Mais en fait, s'agissant du cours d'une action, cette idée n'est pas du tout bonne : au contraire, on a tendance à modéliser ces choses-là — en toute première approximation — par des objets mathématiques appelés des martingales, ce qui signifie essentiellement que connaître des choses sur le passé ne vous avancera absolument pas à prévoir l'avenir (par rapport à juste connaître le présent) ; ou, de façon plus concise mais moins précise, il n'y a aucune sorte d'inertie. C'est raisonnable si on pense au cours d'une action comme déterminé par des agents rationnels : ils ont connaissance du passé et ils en tiennent compte, donc si une prévision simpliste basée dessus peut donner une meilleure approximation pour l'avenir qu'une prévision simpliste seulement basée sur le présent, ils en tiendront compte déjà au présent, donc anticipent sur cette prévision !, qui du coup devrait être réalisée déjà maintenant et pas dans l'avenir.

Mais l'absence totale d'inertie signifie que l'idée que le cours d'une action est en train de monter est dénué de sens, ou, en tout cas, de sens prédictif : le fait que ce cours ait augmenté ces N derniers jours ne donnerait aucune information sur le fait qu'il risque d'augmenter encore demain, pas plus que le fait de savoir qu'une pièce non truquée est tombée 20 fois sur pile ne vous donne d'information sur le fait qu'elle tombera sur pile la fois suivante. Or on a quand même tendance à s'imaginer qu'il y a de l'inertie : c'est contraire à cette idée que les marchés anticipent sur toute prévision qu'ils peuvent faire quant à l'avenir. Même si le cours d'une action dépend de phénomènes (physiques, par exemple) qui, eux, peuvent avoir de l'inertie, si ces phénomènes sont connus, ils devraient être anticipés. Je ne sais pas si on peut exhiber des cas où il y a quand même incontestablement une forme inertie dans des cours économiques, mais j'ai toujours été perturbé par cette dissonance entre le fait qu'on soit censé croire à l'absence d'inertie si les agents sont rationnels et le fait qu'on dise, par exemple, que le cours du pétrole va certainement continuer à monter au cours des prochaines années (si cette prévision est si évidente, tout le monde va vouloir prendre des options dessus, ce qui va faire augmenter le cours du pétrole maintenant).

Mais ce qui a motivé cette réflexion à ¤0.02 sur l'inertie, c'est encore un autre domaine, celui de la sociologie : j'entends les commentateurs politiques (dont je ne pense pas forcément grand bien) expliquer que la progression ou régression de tel ou tel homme politique dans les sondages électoraux constitue une dynamique. Le fait de parler de dynamique suppose qu'il y a inertie. Mais est-ce le cas ? Je n'ai cette fois pas d'argument comme pour l'économie qui expliquerait qu'il ne dût pas y en avoir, mais je n'ai pas non plus d'explication vraiment convaincante au fait qu'il y en ait (à part que les électeurs seraient naturellement portés à apprécier en soi les hommes politiques qui enregistrent déjà une progression dans les sondages récents, ce qui est possible mais pas évident). En tout état de cause, je trouve qu'on ne devrait prendre ni l'existence de l'inertie, ni son absence, pour une évidence : c'est une question essentielle qu'on doit se poser sur tout phénomène auquel on est confronté.

[#] Quand on parle d'un seul objet sans interaction extérieure, la masse n'intervient pas du tout, et l'inertie au sens physique peut porter aussi bien sur la vitesse (c'est la manière dont Newton la formule) que sur la quantité de mouvement. Quand il y a plusieurs objets qui interagissent, la masse (inertielle) d'un objet devient, très grossièrement, la proportion avec laquelle l'inertie de cet objet est importante relativement à celle des autres, donc la difficulté des forces à agir sur cet objet.

[#2] La relativité générale est peut-être ce qui arrive le plus proche d'une réponse au mystère, aux yeux du matheux que je suis, parce que l'équation des géodésiques et les équations d'Einstein sont des équations du second ordre mathématiquement très naturelles alors qu'il n'y a rien de la sorte au premier ordre ; mais on peut difficilement prétendre avoir tout résolu en disant ça.

(lundi)

Séances de hacking réseau

Il ne faut jamais désespérer : malgré les différentes difficultés que j'ai eues avec mon DreamPlug (entrées précédentes ici, et ), qui se sont toutes plus ou moins résolues, j'ai maintenant réussi à en faire quelque chose d'utile, c'est-à-dire un routeur en amont du PC qui est chez moi (entre ce dernier et mon modem ADSL) avec point d'accès Wifi. Je n'ai pas encore pris toutes les dispositions pour pouvoir éteindre mon PC la nuit, mais au moins, s'il y a de nouvelles difficultés qui surviennent sur ce front-là, elles ne seront plus la faute du DreamPlug.

J'ai donc passé, essentiellement ce week-end, de longues séances de hacking réseau pour reconfigurer tout ce fatras, ostensiblement pout traquer les hypothèses que j'avais pu faire (que mon PC est aussi routeur) et qui seraient devenues erronées, et en réalité pour m'amuser à peaufiner les détails et à faire joujou avec la couche réseau de Linux, qui, il faut bien le dire, est assez ludique.

J'ai fait quelque chose d'un peu inhabituel (s'agissant de la configuration IPv4 ; la configuration IPv6 ne posait aucune difficulté particulière vu que les adresses sont en nombre essentiellement illimité), que je peux peut-être expliquer, histoire de signaler que c'est parfaitement possible et que ça ne pose pas de problème (vu que beaucoup de gens à qui j'ai posé la question en amont se sont montrés sceptiques), c'est de donner à mon PC, et pas au DreamPlug routeur que j'ai intercalé en amont, l'adresse IP publiquement visible de la connexion ADSL.

Je détaille. Il est bien connu que les adresses IPv4, contrairement aux v6, sont en nombre sévèrement limité. Un fournisseur d'accès Internet par ADSL vous donne une adresse IP(v4) publique, si tant est qu'il vous en donne une fixe (il y a quelques gros nuls qui n'ont même pas cette option), quel que soit le nombre de PC que vous mettiez derrière. Si on a plus qu'un PC sur la connexion, donc, ces PC (tous sauf au plus un) utiliseront des adresses « privées », c'est-à-dire qu'elles ne doivent pas circuler en-dehors du réseau local : typiquement ce sont des adresses en 192.168.y.z ou 10.x.y.z (je ne sais pas comment ces nombres ont été choisis historiquement, d'ailleurs, et je ne sais pas pourquoi les 192.168.y.z sont plus populaires alors qu'elles sont plus chiantes à taper). Lorsqu'un PC utilisant une de ces adresses privées envoie un paquet IP vers le monde extérieur, un routeur quelque part, typiquement le dernier routeur avant le modem ADSL (ces deux équipements étant réunis en un seul sous la forme des « *box » que la plupart des usagers possèdent, et qui sont en fait presque toujours des systèmes Linux), doit transformer l'adresse IP privée de l'émetteur en l'unique adresse IP publique de la connexion, qui seule peut circuler sur le réseau, et ce routeur doit également retenir cette opération (on parle de connection tracking) de façon à pouvoir convertir en sens inverse le paquet de retour, i.e., savoir à quelle IP privée il est destiné alors que formellement il est adressé à l'unique IP publique de la connexion. Ce mécanisme s'appelle le masquerading IP, ou plus formellement NAT (pour Network Address Translation) ; dans le monde Windows/Mac non technique, on parle de partage de connexion (ce qui décrit bien le but de l'opération, mais pas le mécanisme). Il s'accompagne de toutes sortes de problèmes, mais on n'a pas d'autre choix tant qu'on continue à utiliser IPv4.

Sous Linux, on met en place ce mécanisme au moyen d'iptables, en envoyant les paquets vers la cible SNAT (ou MASQUERADE ou éventuellement SAME, la différence étant assez peu importante) dans la chaîne POSTROUTING de la table nat. On peut aussi faire du NAT entrant, c'est-à-dire indiquer que certains types de paquets entrants sur l'adresse publique doivent être réécrits (typiquement en fonction de leur numéro de port de destination) pour aller vers telle ou telle IP privée interne : dans ce cas la cible est DNAT.

Comme je l'ai écrit, tous les PC derrière la connexion sauf au plus un doivent utiliser des IP privées. Il se peut que tous utilisent des IP privées, mais on peut donner à une machine l'IP publique de la connexion. Tous les guides de configuration vous préconiseront la même chose : que ce soit le routeur-masqueradeur (celui qui réécrit les adresses des paquets, donc) qui reçoive l'IP publique, et tous ceux qui sont derrière, des IP privées. En vérité, ce n'est absolument pas une obligation : le routeur peut très bien avoir une IP privée et faire de l'auto-masquerading, c'est-à-dire réécrire les paquets qu'il émet lui-même, alors qu'un autre PC aurait l'IP publique. La configuration est tout à fait la même, et cela ne pose pas de difficulté particulière[#] et n'introduit pas spécialement de complication (sauf peut-être dans la tête de celui qui essaie de comprendre ce qui se passe et qui est habitué au schéma le plus usuel). A priori, le PC ayant l'IP publique va recevoir tous les paquets entrants qui ne font pas partie d'une connexion déjà établie (certains outils de configuration appellent ça — à mon avis à tort — la machine DMZ) ; mais on peut évidemment choisir de les répartir différemment (avec la cible DNAT sous Linux).

Quel est l'intérêt ? Tout simplement de changer les choses le moins possible : jusqu'à présent, c'était mon PC qui avait l'adresse publique de ma connexion ADSL, 213.41.184.174, enregistrée dans le DNS sous le nom de vega.gro-tsen.net, je voulais toujours pouvoir utiliser ce nom-là, à la fois depuis l'intérieur et depuis l'extérieur de mon réseau local, pour accéder à ce PC, et si possible ne pas avoir à changer de configuration sur ce PC où j'aurais pu supposer implicitement que son IP était 213.41.184.174. La solution traditionnelle pour ça consiste à rediriger les paquets voulus sur cette machine, et à faire du DNS différencié (split-horizon), où les machines extérieures voient l'adresse 213.41.184.174 associée au nom DNS vega.gro-tsen.net, tandis que les machines intérieures voient l'IP privée qui lui aurait été affectée : je trouve ça beaucoup plus alambiqué que ce que j'ai choisi, qui est de tout simplement garder l'IP que j'avais avant, et de donner une IP privée au routeur.

(Soit dit en passant, comme je n'ai jamais vraiment eu l'occasion de regarder des *box commerciales, je ne sais pas bien ce qu'elles font dans ce domaine, et notamment ce qu'elles proposent pour l'attribution des IP du réseau interne.)

Mais bon, tout ça ça a pris très peu de temps à mettre en place. Le reste du temps a été occupé à lire les manuels et à m'émerveiller (oooooh, je peux faire ça avec les paquets ? mais c'est rigolo, il faut absolument que je trouve un prétexte pour m'en servir). Je vais sans doute faire encore un peu joujou avec le Wifi, d'ailleurs.

Quand les choses seront bien rôdées, j'installerai sans doute une configuration du même style chez mes parents (où, actuellement, c'est un vieux PC de récup[#2] qui sert de routeur : je pense que ce sera plus pratique — et plus efficace énergétiquement — de mettre un GuruPlug ou DreamPlug à la place).

[#] Bon, j'exagère, il y a une chose qui pose une petite difficulté : c'est que le démon pppd, qui gère la connexion ADSL, n'a pas d'option prévue pour lui dire lors de la négociation de la connexion, il faut que tu fasses semblant d'accepter l'adresse IP que t'attribuera le pair, mais en fait tu en prendras une autre (puisque le pair nous attribuera l'IP publique mais qu'en fait on veut en prendre une privée). Pour ma part, j'ai fait ça en ajoutant un petit script que j'ai appelé /etc/ppp/ip-up.d/0fixpppaddr et dont le contenu est essentiellement ceci :

#! /bin/sh
# Change the local endpoint address on the ppp link to 192.168.0.1
# despite what ppp itself negociated.
/bin/ip addr del "$4" peer "$5" dev "$1"
/bin/ip addr add "192.168.0.1" peer "$5" dev "$1"
# Reinstate default route which was deleted in the process:
/bin/ip route add default dev "$1"

[#2] Un bi-Pentium II 450. Et quand je dis bi, il a vraiment deux processeurs physiquement distincts. Ça c'est quelque chose qui ne se trouve plus trop, de nos jours, sauf à aller taper dans du matos vraiment cher. Du coup j'ai une certaine réticence à jeter cette machine, quand même.

Only the 20 most recent entries were included above. Continue to older entries.

Seules les 20 plus récentes entrées ont été incluses ici. Continuer à lire les entrées plus anciennes.