De Brest à Dresde, en passant par Rennes

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 17 avril 2014

Une attaque d'extrème droite tous les deux jours à l'Est

Les nouveaux Länders, ou la partie de l'Allemagne qui était anciennement l'Allemagne de l'Est, comptent beaucoup d'extrémistes politiques. Cela se ressent à travers les résultats électoraux, notamment du NPD, un parti ouvertement néo-nazis. En 2013, ils atteignaient ainsi lors des élections fédérales plus de 10% dans une circonscription de Berlin, et plus de 5% dans la (magnifique mais parfois mal fréquentée) suisse saxonne, à côté de Dresde. Ils sont également dans deux parlements régionaux de l'Est, en Saxe et en Mecklembourg-Poméranie-Occidentale.

Ces résultats électoraux sont très fortement corrélés aux agressions d'extrême droite, que la police allemande regroupe tous les ans et dont ils publient les résultats. En 2013, 65% de ces agressions sont des blessures, ou des blessures graves, ou des tentatives de meurtres. La moitié sont des actes racistes, un bon tiers des agressions contre des adversaires politiques (pas forcément actifs politiquement, il suffit de ne pas être d'extrême droite pour être concerné), et le "reste" concerne des attaques homophobes, antisémites, contre les handicapés, et même les attaques motivées par le "darwinisme social".

Ces extrêmes sont particulièrement actifs en Saxe, et 2013 est une année noire avec une augmentation de 20% des cas recensés par la police. Dans le reste de l'Allemagne de l'Est, ça augmente partout sauf en Thuringe et en Brandenbourg. Berlin, c'est un peu comme la Saxe, et se distingue également négativement, avec 185 agressions en 2013.

L'Allemagne est donc très loin d'être épargnée par les extrêmes, avec des conséquences dramatiques. C'est en moyenne une agression tous les deux jours à l'Est. Il est à mon avis toujours bon de le rappeler, surtout quand on nous vend l'Allemagne comme un pays idéal avec une économie florissante, en oubliant un peu le reste. Plus d'informations sont disponibles pour les germanophones.

mardi 25 mars 2014

Un nouveau navigateur dans Weboob

Le navigateur (ou Browser) est dans Weboob une classe pour faciliter l'écriture de modules. Comme son nom l'indique, il est là pour contenir les fonctions habituelles d'un navigateur Web, évitant au module de devoir gérer les requêtes de bas niveau.

Browser1 est le navigateur historique, basé sur mechanize, et ajoutant des fonctionnalités propres à Weboob. Malheureusement, il est apparu au cours du temps que mechanize avait de nombreuses limitations, et que son architecture rendait certaines choses (comme la gestion des formulaires) très laborieuses.

Browser2 est le nom de code pour le remplacement de ce navigateur. C'est un projet qui dure depuis quelques versions de Weboob, mais est arrivé cette fois dans la branche de développement. Il est cette fois basé sur requests. Cette bibliothèque est plus bas niveau que mechanize, et de nombreuses fonctions sont donc cette fois directement intégrées dans Weboob. Et ça permet de simplifier beaucoup de choses.

Romain a déjà beaucoup écrit sur Browser2, mais je complète par mon opinion. J'ai récrit quelques modules avec, et on peut dire que c'est vraiment de grand changements. En effet, non seulement Browser2 est plus simple, mais l'ajout de fonctions pour simplifier l'extraction de données dans les pages est un vrai plaisir. Cela aurait certes pu être découplé de Browser2, mais le changement de navigateur était une bonne occasion pour remettre les choses à plat et profiter de l'expérience accumulée en écriture de modules.

J'aime donc beaucoup les filtres, un ensemble d'outils pour extraire les données d'une page Web. Ils sont construits d'une manière qui me rappelle un peu la programmation fonctionnelle, on applique des compositions de fonctions pour arriver au résultat désiré. Prenons l'exemple du module pour Poivy. Le code ressemble maintenant à ça :


class HistoryPage(LoggedPage, HTMLPage):
    @method
    class get_calls(ListElement):
        item_xpath = '//table/tbody/tr'
        class item(ItemElement):
            klass = Detail
            obj_datetime = Date(CleanText('td[1] | td[2]'))
            obj_price = CleanDecimal('td[7]', replace_dots=False, default=0)
            obj_currency = u'EUR'
            obj_label = Format(u"%s from %s to %s - %s",
                               CleanText('td[3]'), CleanText('td[4]'),
                               CleanText('td[5]'), CleanText('td[6]'))

Avec ce code, on itère automagiquement sur toutes les lignes de l'historique de la page. On signale par l'héritage de LoggedPage que l'on est certain que le login a réussi si on atteint cette page. Il est inutile de créer et de renvoyer l'objet Detail à chaque itération, la ligne klass suffit Et on parse vraiment très facilement les éléments. On transforme ainsi la septième colonne des lignes du tableau en décimal, c'est le prix de la ligne. On spécifie de ne pas remplacer les points (souvent utilisés comme séparateur pour les milliers en France), et le default=0 est une option magique pour dire que si ce n'est pas un décimal, c'est gratuit (cas des appels inclus dans le forfait). Il fallait autrement vérifier à la main le contenu et gérer si nécessaire les exceptions.

Les fonctions DateTime, Time et Date sont également assez magiques, transformant du texte pas toujours bien ordonné en un objet correspondant python. Par rapport au code précédent, c'est une division par deux du nombre de lignes. Et par beaucoup plus de la lisibilité. Les filtres définis sont très nombreux, permettant l'utilisation d'expression rationnelle, de formater des chaînes, de récupérer très facilement les attributs d'une balise html, etc. Comme ils se combinent, on applique ce dont on a besoin en une seule fois.
Il y a beaucoup d'autres fonctionnalités magie dans Browser2, dont notamment la pagination. Je n'avais jamais ajouté la pagination de l'historique au module poivy, car la pagination n'était pas toujours très pratique sur l'ancien navigateur. À présent, c'est fait en quelques lignes. En ajoutant à la classe get_calls ces quelques lignes :


    next_page = Link("//div[@class='date-navigator center']/span/a[contains(text(), 'Previous')]",
                     default=None)

On va donc chercher le lien vers la page suivante, et on rend un objet Link s'il faut itérer, None si on ne trouve rien. Le navigateur se charge ensuite d'aller sur les pages au fur et à mesure si c'est nécessaire.

En bilan chiffré, la partie navigateur et extraction des données du module Poivy est passé de 125 à 85 lignes (sans copyright, commentaires et lignes vides). En gagnant au passage à la fois en fonctionnalité et en lisibilité du code. Browser2 est vraiment une étape importante pour la simplicité des modules Weboob.

mercredi 26 février 2014

Un député européen avec moins d'un pourcent des voix

Si l'Europe fixe quelques règles pour les élections européennes, les détails sont gérés par les états. Ces détails changent totalement la nature du scrutin entre les pays, et le pourcentage de voix réellement nécessaire pour obtenir des députés. En France, le découpage « grandes régions » et les règles d'arrondis avantages très fortement les gros partis, et la limite des 5% n'est qu'une illusion. L'UMP avait ainsi obtenu 40% des sièges en 2009 avec seulement 28% des voix. Et Libertas avait gagné un siège, alors qu'ils obtenaient au niveau national moins de voix que le NPA qui repartait bredouille.

En Allemagne, la règle pour les européennes c'est la circonscription unique, et un arrondi plutôt en faveur des petits partis, à condition qu'ils dépassent les 5%. Cette limite des 5% est habituelle en Allemagne, et correspond à la même limite que pour les élections fédérales.

C'est cette limite que la cour constitutionelle vient de faire sauter pour les européennes. L'argument est le suivant : au parlement européen, il y a des dizaines de partis, provenant de tous les pays, et pourtant ça semble fonctionner correctement. La limite des 5% ne doit être présente que pour les scrutins dont la présence des petits partis pourrait empêcher d'obtenir une majorité stable au parlement. Dans les autres cas, la règle est que chaque voix doit avoir la même influence. Cette limite de 5% ne respecte donc pas la constitution allemande, rendant de fait caduque le vote de nombreux allemands.

Historiquement, la cour a déjà fait sauter une fois cette limite en 2011. Le Bundestag (dont seuls les partis dépassant les 5% sont membres...) avait donc réintroduit une limite, cette fois à 3%. Cette limite n'était toujours pas acceptable pour les petits partis, qui ont lancé un recours. Et ils ont gagnés. La cour a aujourd'hui de nouveau fait sauter cette limite de 3%, supprimant de fait toute limite pour obtenir un élu.

À noter que la cour était très loin d'être unanime, c'est avec la plus courte majorité de cinq juges contre trois que cette décision est passée.

Concrètement, cela risque d'augmenter fortement la diversité des élus européens allemands. L'Allemagne dispose de 99 députés européens, ce qui rabaisse la limite effective pour obtenir un élu à environ 1% des voix. Un calcul sur les résultats de 2009 rajouterait sept partis obtenant au moins un mandat, dont le parti de protection des animaux, le parti des retraités, les pirates, mais aussi les néo-nazis du NPD. On ne peut cependant évidemment pas prédire l'évolution du comportement des électeurs, qui savent désormais qu'ils peuvent voter pour un petit parti sans que leur vote ne soit "perdu".

jeudi 20 février 2014

Rapports de bugs tout simplement avec Weboob

Un des paradoxe du projet Weboob, c'est la création de ticket qui passe surtout par l'interface Web du gestionnaire de tickets Redmine. Bien entendu, il existe un module Redmine, bien pratique pour les développeurs. Mais pour les utilisateurs, configurer le module juste pour ouvrir un rapport de bug était un peu compliqué, alors que cela devrait être une action simple.
Cependant, tout était déjà presque là pour faire un système agréable. Nous avons le module capable de créer des tickets, et une application pour utiliser le module. Afin de pouvoir facilement importer/exporter des bugs, cette application a été améliorée dans la branche de développement pour être capable de lire un ticket à partir d'un pipe reçu. Concrètement, un simple cat ticket.txt | boobtracker post weboob suffit à envoyer un ticket. De la même façon, un bug peut-être transformé en format texte.
Améliorons encore l'idée. On veut fournir un service simple pour les utilisateurs afin d'ouvrir un bug. Un moyen standard de transférer du texte, c'est l'email. On peut donc un peu modifier la configuration de postfix pour y ajouter un truc comme ça dans le fichier master.cf
weboobreport     unix -        n       n       -       -       
pipeflags=FR user=toto
argv=/usr/local/bin/boobtracker post weboob

Et hop, à la réception d'un mail, on envoie un ticket sur le gestionnaire de tickets. C'est ainsi que les utilisateurs de Weboob peuvent désormais ouvrir des bugs très simplement en envoyant un mail à nomdumodule@issues.weboob.org. Cela évite également de publier les adresses mails des mainteneurs des paquets lors d'un crash, et évitera de perdre des rapports de bugs envoyés directement aux mainteneurs (qui peuvent avoir délaissés le projet depuis). Cette fonctionnalité sera mise en avant dans la prochaine version publiée.

mardi 15 octobre 2013

SSD m4 de Crucial : le bug de l'obsolescence programmée

J'ai la chance d'avoir un SSD dans mon ordinateur de travail, ce qui permet de gagner énormément de temps par rapport à un disque dur. Ça c'est pour la théorie, car j'ai perdu des heures la semaine dernière sur un bug assez curieux. Les symptômes étaient assez simples : le système perdait le contact avec le disque, rendant l'ordinateur totalement inutilisable et forçant un redémarrage électrique.

J'ai d'abord cru à un problème matériel, la connexion entre le disque et la carte mère n'étant pas très solide sur mon ordinateur portable. Un faux contact est vite arrivé (et s'était déjà produit), et j'ai ouvert et nettoyé tout ça. Sans changement. J'étais d'autant plus circonspect qu'un démarrage se déroulait toujours parfaitement bien, alors qu'un faux contact devrait se manifester dans toutes les situations.

J'ai donc ensuite songé à un problème logiciel, en constatant au passage que mon ordinateur plantait après 3600 secondes d'utilisation environ, soit une heure. Mais revenir sur un ancien noyau ne changeait rien, hormis que le système plantait encore plus violemment. Rien du côté de l'historique SMART, rien de clair dans les logs systèmes, aucun programme qui se lance une heure après le démarrage. J'ai testé beaucoup de choses.

Cette piste logicielle était pourtant la bonne, mais à un niveau en-dessous. Les SSD de Crucial sont en effet victimes d'un bug des 5184 heures. Il n'est pas précisé pourquoi 5184 heures (c'est 3 au cube multiplié par 2 puissance 6). Il est bien entendu impossible de savoir s'il s'agit de réelle incompétence, ou d'une volonté d'obsolescence programmée. Après tout, qui parmi le grand public va penser à aller chercher sur le site du constructeur les correctifs ? D'autant plus qu'aucun historique des versions n'est disponible, et que le site actuel du fabricant ne mentionne absolument pas ce bug ? Il faut fouiller les forums obscurs pour reconstruire l'historique des versions, et trouver l'annonce de la mise à jour 0309 (version qui suit la 0009, et précède la version 000F, histoire vraie...). Après avoir trouvé ça, il faut suivre la procédure de mise à jour qui est bien entendu surtout prévue pour un système WIndows. Quelle est donc la proportion de mise à jour par rapport au nombre de SSD vendus ?

C'est typique pour moi du risque de l'ajout d'intelligence dans les composants matériels. On se met à la merci du constructeur, qui fait ce qu'il veut dans son coin, avec du code complètement obscur. En allant chercher les annonces de chaque nouvelle version, c'est édifiant de voir des améliorations de performances et des corrections de bugs, pour un matériel qui lui ne change évidemment pas. Le genre de lignes d'historique que j'aimerai voir dans une nouvelle version du noyau Linux, pas sur le forum d'un fabricant de matériel. Jugez-vous même :

0309

  • Correct a condition where an incorrect response to a SMART counter will cause the m4 drive to become unresponsive after 5184 hours of Power-on time. The drive will recover after a power cycle, however, this failure will repeat once per hour after reaching this point. The condition will allow the end user to successfully update firmware, and poses no risk to user or system data stored on the drive.

000F

  • Improved compatibility with certain SAS expanders and peripheral RAID cards.
  • Improved throughput stability under extremely heavy workloads.
  • Improved data protection in the event of unexpected, asynchronous power loss.

010G

  • Improved Trim response time
  • Improved power-on-to-ready time (known as POR, or TTR for Time-to-ready)
  • Improved resume-time from low power modes, and improved reliability of warm reboot
  • Improved power consumption by disabling HIPM (Host Initiated Power Management)

040H

  • Improved robustness in the event of an unexpected power loss. Significantly reduces the incidence of long reboot times after an unexpected power loss.
  • Corrected minor status reporting error during SMART Drive Self Test execution (does not affect SMART attribute data).
  • Streamlined firmware update command for smoother operation in Windows 8.
  • Improved wear leveling algorithms to improve data throughput when foreground wear leveling is required.

070H

  • Resolved a power-up timing issue that could result in a drive hang, resulting in an inability to communicate with the host computer. The hang condition would typically occur during power-up or resume from Sleep or Hibernate. Most often, a new power cycle will clear the condition and allow normal operations to continue. The failure mode has only been observed in factory test. The failure mode is believed to have been contained to the factory. This fix is being implemented for all new builds, for all form factors, as a precautionary measure. The fix may be implemented in the field, as desired, to prevent occurrence of this boot-time failure. To date, no known field returns have been shown to be related to this issue. A failure of this type would typically be recoverable by a system reset.

jeudi 3 octobre 2013

Virtualbox, pas que des Virtualbugs

Virtualbox, c'est super. Une interface sympa pour créer plein de machines virtuelles, rapide pour créer un petit réseau de test.

Mais parfois, on tombe sur des trucs comme ça. Et on perd une demi-journée à se demander pourquoi TCP marchote, mais n'arrête pas d'envoyer des retransmissions. Pourquoi ça ne le fait que sur certains ordinateurs. Pourquoi ça ne le fait pas quand on a son propre module noyau qui tourne pour modifier les paquets. Ensuite par hasard on se rend compte que quand ça ne marche pas, les paquets subissent une modification de checksum sur un routeur virtualbox (mais, mais, pourquoi ?). Et ceci uniquement sur des paquets TCP en IPv6 transmettant des données (le SYN/ACK marce, UDP marche, IPv4 marche, etc).

Ensuite on se rend compte que l'autre routeur Virtualbox (celui qui marche et ne fait pas ça), il est en version 4.2. Celui qui ne marche pas utilise la version Debian 4.0.

Et après, on met à jour, et on lit le Changelog. Et on comprend tout à la ligne « Virtio-net: properly announce that the guest has to handle partial TCP checksums ». Enfin, presque.

Ce qui permet de rappeler qu'aujourd'hui, c'est le jour de l'Unité Allemande. La fête nationale, un jour férié.

lundi 23 septembre 2013

Élection en Hesse

Hier, il n'y avait pas que les élections fédérales. En Hesse, on est moins fier que la Bavière, et on autorise donc les élections conjointes pour éviter d'emmerder l'électeur à se déplacer deux fois. L'inconvénient, c'est qu'on entend bien entendu moins parler de vous.

Dans ce land de taille moyenne (6 millions d'habitants), la coalition sortante était à l'image du gouvernement fédéral : noire-jaune, c'est à dire une coalition de conservateurs et de libéraux. La Hesse est traditionnellement une terre libérale, ils ont toujours été élus où presque au parlement régional (une fois absents pour un an). Je ne peux guère vous parler des enjeux politiques locaux : je n'en sais rien. D'autant plus que la campagne était relativement inaudible sous la politique nationale.

Les objectifs étaient cependant pour les Verts et le SPD de former une coalition, et pour les libéraux et conservateurs de reconduire le gouvernement. La soirée électorale a été très confuse pour eux, les résultats finaux n'arrivant que très tard, et les sondages sortis des urnes se trompant. On a pu envisager que seuls trois partis seraient représentés, ils seront finalement cinq.

Commençons par la CDU. Ils ne profitent pas de l'effet Merkel, ou presque. Ils stagnent à 38,3% (+1,1), ce qui est certes déjà pas mal, mais loin d'être extraordinaire vu la soirée. De l'autre côté, le SPD fait par contre un carton. Ils partaient certes de très loin, mais ils remontent à 30,7% (+7). Encore un signe que le SPD, au moins dans les länders, va mieux. Ce sera cependant insuffisant pour les deux pour gouverner avec leurs alliés traditionnels. Les Verts font un petit 11,1% (-2,6), ce qui sera insuffisant pour prétendre à une majorité avec le SPD. Les libéraux eux étaient donnés sortant toute la soirée, jusqu'à 2h du matin en réalité. Ils accrochent un 5,03% des voix, ce qui a peut-être sauvé la nuit de quelques personnes. Pas terrible pour une terre libérale, mais ils restent.

Et Die Linke, avec ses 5,2%, empêche une nouvelle fois les coalitions "classiques" de se mettre en place. Il reste donc soit l'alliance de toutes les gauches, la grande coalition, ou la coalition entre conservateurs et verts. Il serait logique qu'ils suivent le modèle fédéral, mais c'est loin d'être garanti.

En tout cas, si le FDP sauve sa peau, il perd un nouveau gouvernement régional. Après la Bavière, et bien d'autres, il ne reste au pouvoir que dans un seul land : la Saxe. Les élections, c'est l'an prochain... Et autre chose, cela permet de rappeler que quoi qu'il arrive, Merkel est de fait déjà sous une forme de cohabitation. Le Bundesrat est de toute façon plutôt à gauche, et une majorité passe au minimum par le SPD, et plus probablement également par les verts.

Merkel, le rouleau compresseur

Le résultat des élections d'hier est sans appel : Merkel est la grande gagnante arithmétique du scrutin. La CDU/CSU obtient un score de 41,5% des voix, et regagne 6 millions de voix par rapport à 2009 (pour un nombre de votants équivalent, la participation n'a finalement presque pas bougé). L'effet « chancelière » est incontestable, les conservateurs regagnent des voix en Bavière par rapport à la semaine dernière, et même en Hesse ou le scrutin était simultané la CDU fait mieux au niveau fédéral qu'au niveau régional. Imaginez un peu, un chef de gouvernement de droite depuis huit ans, et dont pourtant plus de 50% des électeurs de Die Linke (l'équivalent du front de gauche) sont satisfaits de son travail...

À un moment de la soirée, les sondeurs ont même vu une possibilité de majorité absolue pour Merkel, une situation qui aurait été une première depuis 50 ans. Cette idée n'a peut-être vécue qu'une demi-heure, mais l'impact psychologique est probablement très important. La CDU aurait pu gagner seule. Les électeurs de la CDU ayant tentés de sauver les libéraux doivent s'en mordre les doigts jusqu'au sang : le vote stratégique a été un désastre pour la droite.

En effet, derrière Merkel, les libéraux s'effondrent. Moins certes que les télévisions l'annonçaient en début de soirée, ils arrivent à 4,8% au niveau fédéral et dépassent tout juste les 5% en Hesse (jusqu'à 2h du matin, ils étaient donnés en dessous des 5% en Hesse). C'est un désastre pour eux, ils étaient à 15% en 2009. Ils perdent 100 députés et les moyens qui vont avec, et se retrouvent sans visibilité médiatique. Par exemple, ils n'étaient pas invités sur les plateaux de télévisions hier, car seuls les « partis parlementaires » sont invités... Humiliation à mon sens inutile pour un parti qui a encore des ministres pour quelques semaines. Et humiliation encore plus ridicule en fin de soirée, où les présentateurs avaient perdus un peu de leur assurance sur la disparition du FDP. Ils auraient eu l'air fin s'ils avaient dépassés de justesse les 5%.

Sans les libéraux, Merkel n'a donc pas de majorité naturelle, ce qui va peut-être la contrarier. La gauche est même majoritaire au parlement, avec Die Linke, Die Grünen, et le SPD. Ils ne formeront pas de coalition entre eux, mais c'est tout de même à noter. Je me demande qui des Verts ou du SPD va tenter une coalition avec Merkel. Cela fait deux fois que gouverner avec Merkel est l'équivalent d'un baiser de la mort (le SPD ne s'en est pas encore remis, le FDP est en état de mort cérébrale), il faudra être courageux pour tenter un troisième essai.

Pour les résultats en détails, le SPD remonte un peu à 25,7% (+2,7). C'est un semi-échec, l'objectif avoué était d'arriver à 30. En comparaison des autres partis, c'est cependant un excellent résultat.

Pour les Verts, c'était une mauvaise soirée. Ils descendent à 8,4% (-2,3). Pour un parti ayant fleurté avec les 25% après Fukushima, et se trouvant encore à 15% en début de campagne, c'est la douche froide. La fin de campagne était catastrophique, et cela se ressent d'ailleurs dans les votes par correspondance à Dresde, bien meilleurs pour eux que les votes à l'urne (on peut voter plusieurs semaines en avance par courrier en Allemagne). Je ne sais pas si les résultats dresdois sont comparables au reste du pays pour cette différence urne/courrier, mais si c'est le cas, ils auront de quoi avoir des regrets.

Die Linke était au contraire à la fête, malgré son net recul. Avec 8,6% des voix (-3,3), ils deviennent la troisième force politique du pays, joli pied de nez aux verts. Les pirates par contre ne bougent pas beaucoup, à 2,2% des voix. Très loin de ce qu'ils pouvaient espérer...

Pour terminer, l'autre grand gagnant de la soirée est le parti anti-euro fondé il y a six mois, l'AfD. Avec 4,7% des voix, ils frôlent l'entrée au parlement. Dans l'Est, ils dépassent les libéraux presque partout, et sont au-dessus des 5% dans toutes les régions. C'est un signe à un an des élections régionales dans les länders de l'Est, ils pourraient rentrer en force dans les parlements régionaux en remplacement des libéraux. Par contre, ils ont clairement mordus sur les voix de l'extrême droite, pas seulement sur les partis contestataires anti-Europe. Leur score en Saxe n'est pas forcément une surprise, surtout là ou les néo-nazis font traditionnellement des bons scores. À voir ce qu'ils vont devenir, il ne sera pas facile de garder un discours « propre » en façade et des soutiens plus extrêmes. Ça pourrait paradoxalement être une chance pour les libéraux, si cela permettait de se débarrasser de leurs membres les plus à droite et retrouver un positionnement centriste qui a fait leur succès dans l'histoire.

En conclusion, la droite était clairement majoritaire en voix hier. Mais du point de vue de la dispersion, ils ne pouvaient pas faire pire. Le FDP et l'AfD frôlent les 5%, mais ces voix sont perdues. Avec 0,3% des voix en plus ou en moins pour le FDP, Merkel aurait eu la majorité (seule ou avec les libéraux). Un simple problème de répartition... Cela donne une majorité des voix à la gauche en parlement, mais sans le soutien politique suffisant pour que le SDP et les Verts prennent le risque de s'allier avec Die Linke.

dimanche 22 septembre 2013

Du système de vote allemand

Les allemands votent aujourd'hui. Et il est amusant de voir des journalistes tenter d'expliquer le système de vote. La palme de l'incompétence revient cette année à Libération, avec cet article surréaliste. L'animation du Figaro n'est pas trop mal, mais souffre du même tort que celui du Monde, on sent bien qu'ils ont pris l'article vieux de quatre ans et ont tenté de rajouter un truc à la fin sur le nouveau mode de scrutin.

Reprenons donc. Depuis la réforme du scrutin, seule la seconde voix (la proportionnelle) fera le rapport de force au parlement. S'il y avait que trois partis, ayant chacun 33% des secondes voix, ils auraient chacun 33% des sièges, même si un des partis remportait 100% des premières voix. Et ainsi de suite dans des systèmes plus complexes : x% des secondes voix des partis ayant dépassé les 5% implique x% des sièges.

Alors, à quoi sert encore cette première voix ? Pas à grand chose. À choisir les députés qui seront élus parmi les grands partis (un élu directement fera un élu de moins élu sur la liste), et à garantir la présence d'un élu dans chacune des 299 circonscriptions. Point. Ce que vous pouvez lire dans l'article du Monde sur les stratégies de voix différentes pour obtenir plus de sièges sur une coalition était vrai avant, mais plus maintenant.

Pour aller dans le détail, le système de calcul de ces sièges est cependant très vraiment très complexe, et relativement amusant. Mais n'intéresse pas grand monde hormis les candidats. Comme les élus directs sont toujours élus, il y a un mécanisme de compensation du nombre de sièges pour les autres partis si un parti obtient trop de mandats. Il est donc impossible de savoir le nombre de députés qui sortira des élections allemandes. Un minimum de 598 est certain, mais ensuite certains calculs laissent penser qu'ils pourraient être jusqu'à 800 (il faudrait alors pousser les murs, ils étaient 621 aux dernières élections). Si vous êtes en fin de liste d'un parti, vous aurez probablement envie que ce soit plus proche de 800 que de 621...

Autre effet amusant, si un parti gagne des mandats directs, il peut du coup perdre des sièges (ainsi que tout les autres partis certes, comme déjà dit le rapport de force ne change pas). Voici par exemple une simulation sur les élections de 2009 :

(source : spektrum.de))

À gauche, le nombre de sièges qu'aurait obtenu le SPD au total avec le nouveau mode de scrutin. En bas, le nombre de mandats directs obtenus en plus ou en moins par rapport aux résultats réels. En perdant 7 circonscriptions, ils auraient eu 170 sièges. En gagnant 9 circonscriptions supplémentaires, 157 sièges. Ça laisse imaginer les variations que cela peut donner au nombre total des députés, car les autres partis gagnent/perdent aussi des sièges dans le même mouvement. Donc, si vous êtes allemands, que vous voulez diminuer le nombre de députés : votez SPD en première voix... Au contraire, un bon moyen de faire exploser le nombre de députés est de voter CSU en Bavière en première voix et pas en seconde.

mercredi 18 septembre 2013

La bavière a voté

C'est avec un peu de latence qu'arrive cet article. La Bavière votait donc dimanche dernier, et à une semaine des élections fédérales, on peut parler d'un match nul en terme d'impact.

Comme prévu, la CSU fait un score énorme et obtient 47,7% des voix. Celui lui assure la majorité absolue, qu'elle a normalement presque toujours (la législature précédente était un séisme vu qu'ils ne l'avaient pas...). C'est une semi-bonne nouvelle pour Merkel. Son allié est en excellente forme, et les électeurs conservateurs semblent capables de se mobiliser. Malheureusement, ça risque de rendre la CSU encore plus remuante au niveau fédéral. Et si Merkel a recentré la CDU (parti qu'elle a également mis complètement au pas), il en est pas de même de la CSU qui n'a de compte à rendre qu'aux électeurs de Bavière, et peut donc être très énervant pour un gouvernement d'Allemagne. Certains journaux parlent « d'opposition à l'intérieur du gouvernement » pour la CSU.

Le second « vainqueur » du scrutin est le SPD. Avec un gain de 2 point de pourcentage des voix, ils peuvent être heureux, malgré un score pas flamboyant de 20,6%. C'est la première fois depuis très longtemps que le SPD ne perd pas des voix en Bavière, et ils ont fait mieux que les sondages prédisaient. Bref, ils sont presque heureux. Surtout en comparaison des autres partis.

En effet, derrière, c'est l'hécatombe. Les libéraux du FDP font un score misérable de 3% (contre 8% en 2008). Ils sortent du parlement régional, et ont maintenant très peur de sortir également du parlement fédéral. Mauvaise journée, ils passent du coup en mode « tous les coups sont permis », j'y reviendrai.

Pour les Verts, ils chutent de 9,4 à 8,6% des voix. C'est la confirmation que les Verts n'arrivent pas à convaincre dans cette campagne. Ils étaient auparavant bien positionnés, mais ils ne font que chuter depuis le mois d'août. Je ne sais pas d'où ça vient exactement, mais ils sont en tout cas le parti qui a le plus fluctué.

Pour les « électeurs libres », un parti populiste régional de droite anti-euro, c'est pas la joie non plus (je dis régional car ils n'ont jamais percés ailleurs, mais ils tentent de s'implanter partout en théorie). Ils passent de plus de 10% à 9%.

Enfin, dans l'opposition non parlementaire, Die Linke passe de 4,3% à 2,1%. Les Pirates obtiennent 2%. Et plein d'autres petits partis accumulent tout de même beaucoup de voix. En prenant tous les partis non représentés au parlement, on obtient tout de même 14% des voix. C'est beaucoup pour l'Allemagne, je pense que ça ressemble à un record pour la Bavière. J'y vois un signe d'insatisfaction envers les « gros » partis.

Donc au global, Merkel est semi-heureuse de la victoire de la CSU. La défaite des libéraux semble diminuer les chances de reconduire une coalition avec eux au niveau fédéral. Pour le SPD, la mauvaise santé des Verts efface doucement leurs derniers espoirs de construire un gouvernement avec eux. Je crois que pas grand monde au niveau fédéral ne peut se satisfaire de ce résultat bavarois.

Après, les conséquences. Le FDP a confirmation qu'ils luttent pour leur survie politique. Et pour ses dirigeants, ils luttent pour leurs sièges de députés, même s'ils sont têtes de listes. Ils sont donc prêts à tout, et arrivent au niveau zéro de la campagne électorale. On voit ainsi des affiches « évitez une coalition rouge-rouge-verte », dont tout le monde sait bien qu'elle est totalement improbable. C'est déjà prendre ses électeurs pour des cons. Cependant, le pompon arrive sur la même affiche en rajoutant « la seconde voix pour le FDP ». En effet, les allemands ont deux voix, une pour le candidat élu directement dans la circonscription et une pour la part proportionnelle. Le message implicite est donc de voter CDU avec la première, et FDP avec la seconde, pour optimiser l'utilisation des voix. Ça marchait un peu avant. Le code électoral a cependant été douloureusement réformé, et seule la seconde voix est désormais utile pour le rapport de force entre les partis. La première ne sert qu'à choisir qui sera élu dans les grands partis. Une voix de la CDU pour le FDP ne fait dont qu'affaiblir la CDU, mais n'augmentera pas les chances de former une coalition avec le FDP, ne changeant pas le rapport de force global droite/gauche. C'est donc prendre des gens pour des abrutis, en espérant que la réforme du code électoral ne connaisse pas une trop grande publicité (et ça peut marcher, beaucoup d'allemands ne comprennent pas du tout comment ça marche...).

Cette stratégie énerve profondément la CDU, qui n'a pas envie de perdre des voix (étonnamment). S'il n'y a qu'un transfert de voix de la CDU vers le FDP, ça ne suffira pas pour obtenir une majorité, il faut que le FDP arrive à convaincre son électorat habituel. On verra cependant dimanche si la stratégie du FDP était bonne, au moins pour sauver leurs fesses...

mercredi 4 septembre 2013

Ça bougerait presque

J'ai suivi le débat entre Merkel et Steinbrück dimanche dernier, entouré d'un petit groupe d'amis allemands. On était très loin de la foire d'empoigne que j'ai pu voir sur des débats en France. En effet, les candidats ne sont pas censés se parler directement... Leurs seuls interlocuteurs sont les journalistes, même s'ils font parfois des exceptions à la règle pour se répondre directement. Les interactions restent cependant très limitées.

Le défaut de la méthode, c'est que les candidats ont parfois très envie de répondre à côté de la question. Mais c'est aux journalistes de recadrer en théorie si ça va trop loin. Ils ont beaucoup parlé de la Grèce, ainsi que de l'introduction de l'équivalent d'un SMIC en Allemagne, et de la surveillance généralisée par la NSA. Rien de neuf pour quelqu'un s'informant un peu sur la vie politique, mais les 90 minutes étaient probablement un bon résumé de la campagne.

En bref, le sentiment général à la fin était que Steinbrück était bien meilleur que prévu. Même si les attentes étaient loin d'être folles, il a fait jeu égal avec Merkel (c'est à la fois l'opinion « en direct » de mon groupe absolument pas représentatif et des sondages). Mieux, d'après les sondages, il aurait réussi une performance auprès du groupe des votants qui n'ont pas encore pris de décision. Ceux qui sont finalement a priori les plus importants, le débat n'est pas là pour retourner quelqu'un de déterminer.

Tout ça permet de relancer un peu la campagne. On s'ennuie moins. Le SPD fait semblant d'y croire, et il semblerait que les militants soient remotivés. De l'autre côté, Merkel a ressorti l'épouvantail Die Linke. L'idée est de mobiliser l'électorat de droite, en faisant croire qu'une coalition entre l'extrême gauche, le SPD et les Verts est possible. Elle avait déjà tentée ce refrain en 2008, ce qui Steinbrück lui a d'ailleurs fait remarquer en 2008. Cette coalition est pour moi (et pas que moi), complètement improbable. En voici les raisons :

  • Le SPD est contre. Si à l'Est il est possible de faire des coalitions avec Die Linke (uniquement si le SPD est le premier parti, il est hors de question de faire élire un ministre-président Die Linke), les factions du SPD en ex-allemagne de l'ouest ne veulent pas en entendre parler. Steinbrück a très bien expliqué lors du débat pourquoi il y était opposé.
  • Die Linke est contre. Coopérer avec le SPD, ce serait probablement se saborder. Leurs demandes sont trop éloignées du programme du SPD pour espérer arriver à un compromis.
  • Si par miracle ces deux premiers partis s'entendaient, les Grünen ne veulent pas entendre parler de faire partie d'une telle coalition. Les Grünen, c'est aussi « Bündnis 90 », des opposants au régime communiste en ex-allemagne de l'Est. Personne ne peut imaginer sérieusement que ces gens là puissent travailler avec Die Linke, qui est (hélas encore) rempli de nostalgiques de la période.

Pourtant, ça doit probablement marcher, si Merkel et les libéraux tentent d'en faire un thème de campagne... C'est un peu triste cependant d'en être réduit à ça pour mobiliser son électorat (dont beaucoup se satisferaient d'une grande coalition, comme je l'ai déjà dit).

Ce soir, c'était le débat pour les élections régionales en Bavière du 15 septembre. Je suis curieux de voir l'influence de ces élections sur les élections fédérales.

mardi 3 septembre 2013

Weboob dans Linux Pratique

Weboob fait la une du magazine Linux Pratique (même si ce n'est pas précisé, c'est bien de ça dont parle l'encart Web). À l'intérieur, 6 pages parlant du logiciel, ainsi qu'une mention dans l'édito.

Hormis une étape bizarre dans la description de l'installation, le contenu est bon. On regrettera cependant que l'auteur n'ait pas pris contact avec les développeurs, on aurait peut-être pu aider (ou au moins ne pas le découvrir par hasard).

samedi 31 août 2013

La non-campagne allemande

Alors que certains journaux européens attendent parfois beaucoup des élections allemandes, on ne peut pas dire que la campagne mobilise les foules dans le pays en question. L'été a ainsi été très calme, avec seulement de temps en temps quelques réactions au scandale PRISM et de l'intense coopération des services secrets allemands avec la NSA. Scandale qui semble n'avoir favorisé personne, les deux grands partis étant mouillés jusqu'au cou dans ce problème.

Ensuite, de toute façon, Merkel ne veut pas faire campagne. Sa popularité est tellement élevée que la CDU ne fait campagne que sur son nom. C'est d'autant plus simple que le candidat SPD est très impopulaire. En cas de vote direct à la chancellerie, il serait écrasé encore plus qu'il ne risque de l'être le 22 septembre. Donc, on se fait chier... Pas de débat sur les programmes, parfois quelques attaques sur l'Europe qui réveillent un peu. Mais de même que pour PRISM, ce débat est loin d'être assez clivant pour réveiller la population (Merkel cache le coût réel du sauvetage à la Grèce, mais a beau jeu de répondre que l'entrée de la Grèce dans l'euro était une erreur et de la responsabilité du SPD, ça vole très haut). On peut espérer que le débat télévisé de ce week-end changera quelque chose, mais je n'y crois pas trop.

En attendant, un rapide état des lieux des différents partis présents.

Les deux grosses écuries

Les chanceliers allemands ne proviennent depuis 1949 que de deux partis, la CDU et le SPD. Ce sont les deux « Volkspartei », avec environ 500 000 adhérents chacun. Ils amasseront encore à eux deux une grande majorité des votes des allemands, et ceci même si le SPD a perdu de sa superbe depuis 2009 (et n'a pas l'air d'être en état de complètement se relever).

La différence de programme entre les deux partis n'est pas énorme. Merkel a largement recentrée la CDU, qui a tendance à récupérer les idées populaires du SPD. Ainsi, on a même vu la CDU dire être capable d'accepter un salaire minimum en Allemagne. C'est complètement nouveau, et signe des temps. Il y a globalement deux partis sociaux-démocrates en Allemagne, qui n'excluent d'ailleurs pas de gouverner ensemble si nécessaire. Du côté des sondages, la CDU tourne actuellement autour de 39 à 41% (pour 33,8% en 2009), pendant que le SPD plafonne entre 22 et 26% (23% en 2009, mais un score « normal » devrait être au minimum de 35%). La CDU ne dort cependant pas totalement tranquille, car les sondages ont tendance à être au dessus de ses résultats réels.

Ceux qui seront au Bundestag

Pour entrer au Bundestag, il faut dépasser la barrière des 5%. Deux autres partis sont certains de dépasser cette limite : Die Grünen (verts), et Die Linke (parti de gauche et ex-communiste). Les verts flottent actuellement entre 10 et 15%, ce qui est déjà un très bon résultat pour eux (10,7% en 2009). Ils sont cependant très loin des vagues vertes de 2011 à la suite de la catastrophe de Fukushima, qui les avaient notamment propulsés à la tête d'un Land. Si le programme reste bien évidemment écologiste, il est également très social et « de gauche », avec des augmentations d'impôts pour financer de nouvelles prestations sociales. S'il était à un moment envisagé que la CDU s'allie aux verts à partir de 2013, leur programme et les déclarations des dirigeants sont relativement claires : ce sera non. Ils devraient être pour la première fois la troisième force politique du pays, contre cinquième en 2009.

Pour Die Linke, on peut s'attendre à une légère chute après le record de 2009 ou ils frôlaient les 12%. Oskar Lafontaine n'est plus là pour mobiliser les foules, et les critiques sur la finance portent peut-être moins maintenant. Ils seront cependant sans soucis qualifiés avec pour le moment entre 7 et 9% d'intention de vote. Leur fond de commerce reste à l'Est, ou ils peuvent dépasser 30% des voix. J'ai d'ailleurs parfois été un peu surpris par certaines affiches de campagne, ou ils jouent clairement sur la notion d'Allemagne de l'Est.

L'énigme du scrutin

Les libéraux sont pour le moment la vraie question du scrutin. S'ils dépassent les 5%, Merkel devrait pouvoir reconduire la coalition avec eux. Dans le cas contraire, une grande coalition avec le SPD est le plus probable. Si les allemands devaient voter pour une coalition, une majorité souhaite une grande coalition (ce qui est assez nouveau comme idée). Les libéraux sont très très impopulaires, même parmi les partisans de Merkel. Ils étaient tout proche des 15% en 2009, et se battent désormais pour la survie au dessus des 5%. Les derniers sondages sont un peu plus encourageants car ils dépassent à chaque fois les 5%, après avoir été très longtemps en dessous.

Je ne sais pas trop ce que Merkel attend vraiment d'eux. Reconduire une coalition avec un partenaire dont le nombre de voix a été divisé par trois ne sera pas simple politiquement, même s'ils restent au parlement. Surtout qu'il se dégage une légère odeur nauséabonde de leur campagne, j'ai entendu des allemands être choqués de la proximité de leur campagne avec celle des néo-nazis.

Les petits

Il y a beaucoup de petits partis, on totalise plus de 30 partis dans la course (les plus petits n'étant pas candidats partout). Deux sont probablement notables : Alternative für Deutschland, et les Pirates. Pour le premier, ce sont des déçus des conservateurs et des libéraux, qui veulent sortir de l'Euro. Un parti plus à droite que la CDU, mais qui se veut respectable. Je n'aime pas leurs idées, mais je suis content qu'ils existent pour le débat public. La droite de la CDU vaut mieux que les néo-nazis, surtout avec le recentrage opéré par Merkel. Ils plafonnent pour le moment à 3%, il faut voir s'ils arriveront à convaincre suffisamment de libéraux qu'il est temps de retourner sa veste.

Pour les pirates, ont très loin de l'enthousiasme des dernières années. Après beaucoup de querelles internes, leur image est dramatique dans l'opinion. Curieusement, ils ont été incapables de profiter du scandale PRISM. Le problème de la surveillance et de la protection des citoyens face à l'état est pourtant leur cœur politique. Ils sont actuellement entre 2 et 3%, voir même ils ne sont plus sondés (ils n'apparaissent plus dans les résultats des deux derniers sondages). Il va être difficile pour eux de remonter la pente en moins d'un mois.

La blague bavaroise

La Bavière devait renouveler son parlement régional à l'automne 2013. Ils auraient pu organiser le vote le même jour que les élections fédérales, mais ça aurait été se priver d'une exposition médiatique très importante. Ils ont donc choisi la semaine précédente, les électeurs devront se déplacer deux fois.

On est très loin d'un « premier tour » des élections, car la Bavière est très à droite et il n'y a pas de surprises à attendre de ce côté là. Le résultat sera catastrophique pour le SPD, excellent pour la CSU (la branche conservatrice bavaroise). Ils resteront cependant très intéressants pour caler les sondages sur des résultats réels. Les résultats des verts/libéraux/pirates sera donc instructif, et modifiera peut-être le résultat final. Du fait de la barrière des 5%, un parti qui arrive à prouver qu'il peut le faire peut avoir un appel d'air de voix (les allemands n'aiment pas voter dans le vent). Au contraire, ne pas dépasser les 5% sera une très mauvaise nouvelle pour les libéraux et les pirates.

vendredi 19 juillet 2013

J'ai découvert git-annex

C'est en lisant d'un œil discret le Planet Debian que j'ai entendu parler du logiciel git-annex. En version courte, l'idée de ce logiciel est de pouvoir synchroniser/partager/déplacer géographiquement/sauvegarder des fichiers, en utilisant git en arrière plan pour stocker l'état et la localisation des différents fichiers (d'où le nom, c'est vu comme un plugin de git). Les fichiers en eux-mêmes, potentiellement très lourds, sont stockés à l'extérieur du dépôt git.

Quand on le dit comme ça, c'est clairement pas gagné pour le commun des utilisateurs. De base, git-annex est fait pour être utilisé massivement avec de la ligne de commande. C'est déjà pas mal du tout, j'ai synchronisé ainsi quelques dossiers sur différents PC, et j'en suis très satisfait (c'est bien mieux qu'Unison pour mon usage). Dans ce que j'aime beaucoup, il y a la possibilité de voir ou est stocké un fichier et de demander qu'il existe au moins X copies. On peut également définir des niveaux de confiance pour les copies, et bien entendu automatiser le tout. Et il gère très bien les dépôts déconnectés/indisponibles. Pas forcément simple à comprendre au premier coup d'œil, mais très puissant et bien pensé.

Cependant, le meilleur reste à venir. Le développeur du logiciel a obtenu l'an dernier suffisamment d'argent pour travailler à temps plein sur le projet, à travers un projet kickstarter. Cela lui a permis de développer un « assistant » graphique qui s'occupe de toutes les tâches de synchronisation en arrière plan. Pour l'utilisateur, il suffit d'une étape de configuration pour que tout le reste soit complètement transparent (on met les fichiers dans un dossier, on supprime, on vit sa vie en gros, et ça se réplique partout). On a déjà quelque chose pour synchroniser avec un disque de sauvegarde, ou bien entre deux ordinateurs sur le réseau local, ainsi qu'entre plusieurs serveurs pouvant parler en SSH.

Ensuite, on a en bonus la synchronisation par « le nuage », qui permet de synchroniser des dossiers entre des équipements distants et de partager des fichiers avec des amis. J'ai été bluffé par la simplicité. Le système de synchronisation utilise le protocole XMPP. Il suffit de configurer son identifiant XMPP et son mot de passe (en bonus : il insiste bien sur le fait que cela marche aussi avec un compte GMail...), et c'est presque parti. Il faut un serveur « tampon » dans les nuages, pour sauvegarder ce qui doit être synchronisé entre les ordinateurs. Ça tombe bien, git-annex permet d'utiliser un nombre relativement important de plugin (Amazon, rsync.net, un serveur perso avec un SSH, etc). Ce serveur tampon n'a pas forcément besoin d'être énorme, puisque seuls les fichiers à synchroniser sont par défauts stockés (une fois que tout les ordinateurs sont synchronisés, le tampon du serveur est effacé). En bonus, tout est bien évidemment chiffré le temps de passer sur le serveur « dans le nuage ».

On peut aussi utiliser le serveur « tampon » comme un serveur de sauvegarde ou d'archivage. L'interface graphique propose de base de nombreux profils selon ce qu'on veut faire. On peut aussi passer en mode manuel pour ne télécharger que les fichiers que l'on souhaite (très pratique par exemple sur un équipement avec peu de disque. On peut demander les fichiers nécessaires à la demande). L'auteur a d'ailleurs publié plusieurs vidéos de démonstrations, par exemple sur la première approche de l'assistant.

Pour partager avec des amis, c'est peu envahissant. L'assistant détecte la présence de git-annex automatiquement dans la liste des contacts jabber. Cela oblige cependant d'avoir une ressource XMPP connectée, heureusement configurée en indisponible et avec une priorité négative (les messages normaux ne lui seront donc pas adressés). Aucun message n'est d'ailleurs envoyé par git-annex, tout passe par l'assistant. Cette ressource connectée mais indisponible ne me semble pas très gênante à l'usage.

Pour le serveur tampon, je me suis laissé avoir par les arguments marketings. Je pensais au départ utiliser mon serveur habituel, mais il manque parfois d'espace disque. C'est là que j'ai vu que rsync.net proposait une offre pour les utilisateurs de git-annex, en proposant 50Go d'espace disque pour 60$ l'année. C'est trois fois moins cher que leurs tarifs habituels. Leur argument est que les utilisateurs de git-annex demandent beaucoup moins de service de support technique que les autres, ils peuvent donc faire un prix. On verra l'an prochain si c'était vraiment utile. Comme les fichiers synchronisés sont chiffrés, j'ai pas de remords à les laisser là-bas. Et vu la simplicité de git-annex, migrer vers un autre serveur tampon sera trivial si c'est pertinent.

Pour ma part, je pense m'en servir pour :

  • Synchroniser certains fichiers entre le travail et la maison ;
  • Partager des documents avec ma famille plus facilement qu'auparavant (et potentiellement avec des amis) ;
  • Gérer la réplication des sauvegardes. Grâce à l'affichage de la localisation des fichiers, c'est vraiment très pratique.

J'ai été suffisamment convaincu pour faire un modeste don au développeur, qui souhaite travailler un an supplémentaire sur le projet. À noter qu'il ne demande que 1000$ par mois de travail, ce qui est ridiculement bas pour quelqu'un avec ses compétences. Après un fignolage de l'application Android, il prévoit de développer le logiciel pour Windows. Ce serait une bonne nouvelle pour le côté « partage avec les amis ».

P.S. : attention par contre à prendre la toute dernière version. L'assistant a connu de très nombreuses corrections de bugs, qui sinon peuvent être très déconcertants.

jeudi 18 avril 2013

Résoudre les problèmes de mémoire sur les cartes mv643xx_eth

Les cartes réseaux mv643xx_eth c'est ce qui équipe des équipements comme les GuruPlug, les DreamPlugs, probablement les SheevaPlugs et d'autres équipements du même genre.

Malheureusement, ces cartes ont un problème de pilote dans le noyau Debian Wheezy. Le problème se déclare lors d'utilisation de paquets encapsulés (IPSec, GRE, 6to4, et plein d'autres trucs) avec un peu de charge réseau (1,5Mb/s suffit chez moi à poser des soucis). On obtient dans ce cas là une belle trace kernel commençant environ par :

swapper: page allocation failure: order:8, mode:0x20

Hormis ça, le reste semble marcher. On a de la perte de paquets (logique, celui qui déclenche la trace est détruit). Une analyse plus fine montre quand même que le Kernel prend une mémoire folle (plus de 80Mo de RAM pour un simple flux IPSec), et que le débit n'est idéal alors que la bande passante n'est pas saturé et le processeur loin surchargé... J'avais déjà enquêté sur le problème en août, mais je n'avais pas trouvé de solution. Le Kernel semblait allouer des pages contiguës énormes pour un simple paquet (on peut monter jusqu'à un order:10 si on défragmente la mémoire avant), sans aucun lien avec les ressources normalement nécessaires. J'avais tout de même réussi à isoler ce commit, mais par manque de temps et de piste j'avais abandonné (et j'avais configuré mon tunnel IPSec pour utiliser un autre serveur). Les joies d'utiliser du matériel un peu exotique, pour des utilisations très exotiques.

J'ai trouvé aujourd'hui un peu par hasard la solution, ici. Et il y a même le patch qui va bien. J'ai testé ce patch en l'appliquant sur mv643xx_eth.c uniquement, dans l'objectif de recompiler que le module. Et ça a marché :) Plus d'erreurs mémoire, un débit logique, plus d'utilisation incompréhensible de la RAM, tout va pour le mieux.

Et grand merci à Cyril pour son soutien pendant mes recherches en août. Et pour avoir résolu un autre problème très emmerdant sur un autre ordinateur.

lundi 4 mars 2013

Mais il est ou le soleil ?

J'ai été en février 5 jours à Dresde, et les deux fois où j'ai pu voir le soleil c'était dans l'avion à l'aller et au retour, on était suffisamment haut pour sortir des couches nuageuses (oui, il y avait deux couches).

Ça n'aurait servi à rien de rester plus longtemps. Il n'y a eu que 21 heures de soleil pendant tout le mois de février là-bas, dont 8 pour la seule journée du 6 février. Entre le 12 février, le soleil n'a pointé son nez que quinze minutes le 22 février.

Des fois je me dis qu'il est bon d'être ailleurs en hiver. Et pourtant, ça avait un avantage non négligeable : il n'a pas fait très froid, les nuages ça maintient au chaud.

Note : faut pas croire que c'est tout le temps comme ça, c'est le record du mois de février le plus pourri au niveau ensoleillement depuis au moins 1945 (environ 4 fois moins que la moyenne).

mardi 22 janvier 2013

De la petite majorité, des mandats complémentaires, du système de vote...

Je vous ai parlé de la très courte majorité en Basse-Saxe du SPD et des verts. Et bien des gens que j'aime bien, qui s'amusent toujours à décortiquer les règles de scrutins et les sondages, ont calculé comment l'élection aurait pu basculer.

C'est encore le coup des mandats supplémentaires qui est en cause, avec une légère variante car le droit de Basse-Saxe introduit la notion de mandats de compensation (comme la plupart des régions, le niveau fédéral ne le fait pas). En théorie donc, pour chaque mandat supplémentaire obtenu, un mandat est redistribué aux autres partis. Avec les règles d'arrondis, ça peut faire des choses "amusantes". Par exemple, si la CDU avait gagné un siège direct de plus, c'est le FDP qui aurait remporté le mandat complémentaire, et hop majorité pour la droite. Encore un autre de plus, et la droite/gauche arrive exactement à l'équilibre. Sachant que deux circonscriptions se sont jouées respectivement à 336 et 406 voix, ça laisse rêveur.

Autre calcul, les voix "d'emprunt". C'est ce dont je parlais dans le précédent billet, des conservateurs qui votent libéral pour obtenir une coalition de droite. Le calcul confirme ce qu'on savait déjà : c'est une bonne idée de le faire. Avec 2000 voix d'emprunt supplémentaire entre les conservateurs et les libéraux, la droite aurait la majorité (car ça augmente de fait les mandats complémentaires. Sauf que les libéraux obtiennent une partie de ces mandats, renforçant la différence droite/gauche).

Les conservateurs avaient pas mal fait campagne sur ce mécanisme. Il paraît que c'est promis, ils ne recommenceront pas, et aux élections fédérales ce sera du chacun pour soit. Je me permet d'en douter. Ce serait en tout cas très bête pour des électeurs souhaitant une coalition rouge/verte ou jaune/noir de ne pas profiter des failles du scrutin. En votant différemment entre la première et la seconde voix, on augmente l'impact de son vote, surtout pour les scrutins serrés. Le site en question promet de publier les meilleures stratégies de vote selon les circonscriptions et ce que l'on souhaite provoquer pour les élections fédérales, je suis curieux de voir ça.

lundi 21 janvier 2013

Basse-Saxe, mauvaise nouvelle pour Merkel

Cette année, c'est les élections fédérales en Allemagne, et Angela Merkel remettra en jeu son poste de chancelier à la fin de l'année. Les éventuelles élections intermédiaires sont donc scrutées de près, mais il y en a peu. En gros, sauf chute de coalition (qui peut toujours se produire), il y a cette année la Basse-Saxe et la Bavière, et peut-être la Hesse. Pour la Bavière, ce sera probablement juste avant les élections fédérales (car « la région de Bavière est trop importante pour organiser le vote la même journée que le fédéral », en gros). Pour la Hesse, ce sera après.

On a donc notre scrutin de Basse-Saxe qui sert de test à six mois des élections fédérales, avant un gros vide. Et c'est pas un petit morceau, avec 8 millions d'habitants c'est le quatrième état le plus peuplé. En plus, il a le bon goût de récemment toujours voter comme l'Allemagne le fait au niveau fédéral.

En coalition sortante, on avait une classique alliance Noire-Jaune, à savoir les libéraux et les conservateurs d'Angela Merkel. Je vous ai déjà écrit plusieurs fois ici dans quel état pouvaient être les libéraux, et leur nouveau chef jouait sa tête sur le scrutin. S'ils ne dépassaient pas les 5% (comme l'annonçait tous les sondages ou presque), on pouvait s'attendre à une nouvelle crise (le président actuel du FDP venant de Basse-Saxe).

Et bien entendu, les traditionnelles voix du Bundesrat étaient en jeu. Merkel a déjà perdu depuis longtemps la majorité dans la chambre haute, mais ce n'était pour autant pas encore une situation de majorité pour les verts et le SPD (on peut être "neutre" quand les coalitions régionales ne sont pas d'accord sur un texte de loi). Avec 6 voix de plus, l'opposition sera en situation de majorité constructive.

Et pour les résultats, ça donne :

  • CDU :36,0% (-6,5%), 54 sièges
  • SPD : 32,6% (+2,3%), 49 sièges
  • Verts : 13,7% (+5,7%), 20 sièges
  • FDP : 9,9% (+1,7%), 14 sièges
  • Die Linke : 3,1% (-4,0%)
  • Pirates : 2,1%

Le SPD et les Verts arrachent donc d'une voix la majorité. La gauche de la gauche sort du parlement, ils n'auront pas réussi à y rester plus d'un mandat. Les pirates ne parviennent pas à transformer non plus la vague qui les portait depuis quelques élections, ce qui profite très certainement aux verts.

Dans le détail de la droite, on pourrait se dire « tout est de la faute de la CDU », avec des libéraux qui parviennent à un score historique de presque 10%. Mais tous les journaux semblent dire l'inverse. Ce qui s'est probablement passé en réalité, c'est qu'une partie de la droite a eu peur que le FDP disparaisse de nouveau d'un parlement régional, empêchant toute chance de coalition. Les électeurs de la CDU se sont donc portés massivement sur le FDP pour qu'ils dépassent les 5%, avec un effet assez impressionnant. D'ailleurs en première voix, pour l'élection directe des candidats, ils dépassent à peine les 3%. On est probablement beaucoup plus dans le coup de bol et l'effet sondage qu'une véritable adhésion.

Pour Merkel, c'est donc une mauvaise nouvelle. Elle perd encore un parlement régional. Elle va avoir un Bundesrat encore plus emmerdant qu'avant. Elle ne peut pas compter sur les libéraux, qui ne s'en sortent qu'en prenant des voix temporairement à la CDU. Le SPD s'en sort requinqué, après quelques semaines difficiles de critiques de leur candidat à la chancellerie. La CDU reste encore et toujours le premier parti, mais le manque d'espoir de former une coalition risque de peser le 22 septembre.

mardi 15 janvier 2013

Munin, retour à la normale

J'avais critiqué la nouvelle version de Munin car elle supprimait la possibilité de générer des graphiques par cron. Je n'étais probablement pas le seul à considérer que c'était une régression, car :

  • Il est maintenant de nouveau possible de générer les graphiques par cron
  • C'est redevenu le mode par défaut du paquet Debian, avec la justification : « switching back to cron graphing (as it better for small setups) ».

Je ne peux qu'applaudir des deux mains. J'ai de nouveau mes graphiques en direct quand je vais les voir, je ne suis plus obligé d'attendre un temps assez important qu'ils se génèrent (sur une machine avec un petit processeur, ça se sent vraiment). Et la configuration est bien plus simple en cron qu'en CGI, notamment car ça fonctionne très facilement avec n'importe quel serveur Web.

Edit : c'était évidemment trop beau pour être vrai. On commence par rire devant ce bug, qui provoque l'écriture de milliers de lignes toutes les 5 minutes pour ne rien dire. On continue avec celui-là. Essayer d'écrire à la racine du système de fichier, c'est tout de même peu courant.

lundi 7 janvier 2013

Nouvel an

Pour la première fois, j'étais en Allemagne pour le changement d'année. Le moins qu'on puisse dire, c'est que c'était très impressionnant. Nos voisins du Rhin ont une tradition : tirer des fusées d'artifices, en grand nombre. Nul besoin pour les autorités d'en organiser un, l'ensemble de la ville devient un immense champ de tir.

J'ai pu en profiter depuis un toit permettant d'avoir une vue à 360 degrés sur la ville. Et nul besoin de réfléchir à la direction du regard, les explosions provenaient de partout. Ça commence avant minuit, et se poursuit pendant une bonne heure en ralentissant très doucement. Je n'avais vraiment rien vu de ce genre dans ma vie, avec un nuage se générant petit à petit au fil des explosions. En redescendant dans la rue, ça sentait la poudre.

L'inconvénient, c'est que le cliché de l'allemand respectueux de son environnement en prend un coup. Les cartons des fusées, des pétards, et tous les emballages qui vont avec, sont tout simplement laissés sur place. Les rues ressemblent à une énorme poubelle, et rien n'est épargné. Les bords de l'Elbe comportaient encore de nombreux déchets quelques jours plus tard. Autre inconvénient, j'ai pu lire dans les journées que les pompiers passent vraiment une mauvaise nuit.

En tout cas, je recommande de le faire au moins une fois dans sa vie, ça en met vraiment plein la vue.

- page 1 de 8