Pour 1.5 milliards de plus…

En ces temps de plans de redressements exprimés en billons, un milliard et demi peut passer pour une peccadille. Cela reste un sérieux budget pour un canton Suisse, et d’autant plus pour un chantier qui n’a toujours pas été commencé. Le conseil des États de Genève a annoncé que le budget du CEVA allait être dépassé de 50%. Pour une voie longue de 16 kilomètre, cela fait presque 100 millions le kilomètre. Les deux principales causes du surcoût sont le renchérissement et les améliorations pour les riverains. À présent on peut attendre le referendum…

Salle principale de la Horde

La Horde 2009

Salle principale de la Horde

Hors donc, j’ai été à la convention de la Horde, au Grand-Lancy, près de Genève. La Horde est une convention à laquelle je vais depuis plusieurs années. Ce n’est pas une grande convention, comme Orc-Idée, mais l’ambiance et l’équipe sont très sympathiques.

J’ai fait jouer mon scénario Rêve de Dragon Les Ruines d’Hubris, mais j’ai eu la surprise de n’avoir que deux joueurs présents sur quatre. Les organisations avaient mis en place un système d’inscription sur le web, et je connaissais donc quelques jours avant le nom et l’adresse e-mail de mes joueurs (modulo l’encodage des accents, mais c’est un détail), donc j’avais tout prévu pour quatre joueurs. En fin de compte, on a joué à trois, ce qui a mieux fonctionné que ce à quoi je m’attendais. Il va falloir que je complète le scénario pour refléter certaines des choses qui sont ressorties durant la partie. Dans tous les cas ça aura été l’occasion de revoir les amis sur Genève. Merci à tous.

Röyksopp – Melody AM

Röyksopp – Melody AM - Cover

I already mentioned Röyksopp in the comments of my post on Trentemøller, so as I have just bought Melody AM, I though I would talk a little bit about this Norwegian band. I discovered Röyksopp with the single What Else Is There? which can be streamed from their web site, and bough the second album The Understanding. Röyksopp’s music could be described as electronic trip-hop, the music is very smooth. Compared to Trentemøller the style is certainly lighter. The music is very easy listening, some would say poppy, many tracks were used for advertisement.
Melody AM was the first studio album and is less refined, but contains very interesting tracks: Eple could be officially declared the clubbing start hymn, my favorite is probably A higher place. I would recommend both this album and the The Understanding to any person who likes trip-hop electronica.

Recursive problems

Recursivity is a nice way of expressing complex code. Consider the problem of displaying collections of collections of collections in HTML. For each depth level, we want to start a new sub-list. The following code does this in Python in a very compact and expressive way:

def ToHTMLList(thing):
  try:
    lines = itertools.imap(ToHTMLList, thing)
    return '<ul><li>%s</li></ul>' % '</li><li>'.join(lines)
  except TypeError:
    return str(thing)

Except there is a fatal bug in this code, can you find it?

The code works fine with a list of number [1,3,4,6] or recursive collections [[1,2,3][4,5,]] of any type of object that defines a proper __str__() method. On the other hand, the code crashes if given a string, or lists of strings. The code goes into an infinite recursivity loop. This is due to a strange design artefact of python: strings are infinitely recursive structures: If s is a non empty string, then s[0] == s[0][0] == s[0][0][0] == s[0][0][0][0] etc.

The fact that a string is considered as a collection of characters makes sense if they are separate entities. If single characters are also strings, this decision seems very arbitrary, a string might as well be a sequence of words or a sequence of lines. The later is actually the choice for files, even though both files and strings are basically sequences of bytes. The fact that the latter has an associated position pointer does not seem a good reason for considering them different collections. Things get even more confused if you consider unicode strings. A unicode character is a very fuzzy entity, and accessing a single character makes as little sense as accessing the four middle bits in a floating point number.

Attente au Guichet Virtuel

Bureau Virtuel de la Poste - Écran d'entrée

Peu à peu les diverses administrations et compagnies offrent une interface à leur services via le ouèbe. Certaines y arrivent plutôt bien, le site des CFF est plutôt bien fait et utilisable. Le site des postes suisses n’a jamais été très cohérent, pour trouver l’information la plus simple (l’affranchissement d’une lettre) il a toujours fallu naviguer à travers une hiérarchie de pages et de menus plutôt baroque. Visiblement quelqu’un a réalisé que le site n’était pas très facile à utiliser et une nouvelle version du site a été mise en ligne.

Plutôt que de réfléchir, étudier comment les utilisateurs pensent, une solution simple a été trouvée : simplement émuler ce que les utilisateurs connaissent – le bureau de poste. Mesdames et monsieurs, je vous présente le guichet virtuel de la poste. Une abomination en flash qui requiert une surface de 940×508 pixels pour présenter 10 options, soit 47’752 pixels par option. Pour comparer, mon iPhone a un écran de 320×240 pixels, soit 76’800 pixels, la plupart des téléphones ont plutôt des écrans avec 40’000 pixels, donc même s’ils pouvaient exécuter du flash, il ne pourraient afficher qu’un seul bouton à la fois. Incompatibilité et gaspillage de resources, on reconnaît là la base d’un bon design…

Le défaut principal de cette approche n’est néanmoins pas là. Le bureau de poste est une métaphore complètement idiote pour la navigation. Quiconque a déjà été dans un bureau de poste sait que pour savoir vers quel guichet se diriger, il y a deux solutions: soit c’est une petite poste, et on va vers l’unique guichet (pas de choix), soit il y a plusieurs guichets, et le choix se fait en demandant un ticket pour la catégorie qui nous intéresse, et d’attendre que notre numéro s’affiche avec la lettre du guichet. Donc le guichet virtuel émule un système qui n’existe pas dans la réalité – une métaphore dénuée de sens. On aurait tout aussi bien pu mettre la liste de choix qu’il y a dans les distributeurs de ticket dans les bureau de poste, mais je suppose qu’utiliser comme métaphore un appareil qui symbolise l’attente n’est pas très accrocheur. De toute manière l’interface a du être enrichie d’icônes symbolisant les actions. Je ne sais pas si ce sont les mêmes que dans les vrais bureaux de poste. Dans les bonnes nouvelles, ont a droit à un film de publicité dans l’écran virtuel dans le bureau de poste virtuel.

Bon, ce n’est que l’interface d’entrée. Je voulais savoir le tarif pour des lettres, donc j’ai cliqué sur l’icône de lettre. J’ai donc eu droit à une translation dans l’espace avec un effet sonore (génial pour le boulot) et un menu avec les options habituelles. Je choisis l’option pour calculer le prix d’un envoi et je me retrouve devant une balance virtuelle en flash (à gauche) et une série de contrôles pour spécifier mon envoi. La métaphore de la balance est malheureuse, vu que c’est la chose que mon ordinateur ne me permet pas de faire. Attention à ne pas se tromper, comme tout est implémenté en flash, le bouton back ne fonctionne pas. Dans ce genre d’applications, détruire les habitudes de navigation de l’utilisateur est capital.

guichet_virtuel

L’interface est à nouveau absurde: on peut choisir le format de l’envoi, et ajuster les variables à l’aide de tirettes. Il n’y a aucune option pour taper le poids au moyen d’un clavier, donc l’utilisateur est condamné à essayer de spécifier le poids avec une tirette qui suit une échelle linéaire (alors que le tarif ne l’est pas). Je défie quiconque d’arriver à spécifier un poids de 250g du premier coup. Le poids est naturellement donné en kilos, écrire du code qui choisit l’unité en fonction du poids est clairement hors de la portée de la personne qui a créé cette abomination. En fonction des réglages à droite, un paquet ou une lettre virtuelle apparaît au dessus de la balance. Vu que la balance est vue de devant, une lettre posée dessus ne serait pas très visible, donc elle est tournée de 90°, c’est à dire qu’une lettre est posée flottant dans la position qu’elle ne peut pas physiquement occuper (posée sur la tranche). En plus, quel fond a choisi le graphiste pour mettre derrière une envelope blanche ou un paquet jaune ? Un fond jaune-blanc, naturellement.

La seule bonne nouvelle c’est qu’il y a sur le web un formulaire de contact (partiellement traduit) pour pouvoir communiquer des réactions. Il me semble clair que c’est un project conceptuel fait par des personnes qui n’ont pas réellement une idée claire de ce qui rend une interface utilisable, et ont plutôt fait quelque chose qui peut impressionner les petits chefs. Autant pour moi, le formulaire de contact ne fonctionne pas.

L’effet du second système.

Une des malédiction du monde de l’informatique est le «second-system syndrome». Ce terme désigne le fait que le système conçu pour remplacer un premier système informatique est souvent un système énorme qui ne voit jamais le jour. La raison pour cela est que les concepteurs du système de seconde génération cherchent à corriger tous les problèmes du précédent, et ce faisant entreprennent quelque chose de trop ambitieux qui très souvent échoue. En parallèle, l’ancien système est négligé, n’est pas maintenu et se dépérit.

Un domaine informatique ou ce phénomène est très visible est celui des systèmes d’exploitation. La plupart des entreprise de logiciel comme IBM, Apple ou Microsoft on eu à affronter le syndrome de seconde generation. Le résultat est qu’encore aujourd’hui les systèmes d’exploitation des ordinateurs personnels sont fondamentalement ceux conçus dans les années 70. Tout les systèmes modernes qui auraient du les supplanter étaient d’une telle complexité qu’ils ne sont jamais devenus utilisables.

Le syndrome du second système n’est cependant pas l’apanage du domaine informatique. On le retrouve un peu partout, y compris dans les systèmes politiques et sociaux. Nous vivons avec des systèmes légaux dont la base a 2000 ans et des systèmes politiques qui sont des variations des concepts révolutionnaires de la fin du ⅩⅧᵉ siècle. Cela ne veut pas dire qu’il n’y a pas eu de progrès depuis, simplement qu’il y a eu évolution. Force est constater que les révolutions qui ont cherché à aller plus loin n’ont pas été des succès très clairs.

Un des problèmes sous jacent le syndrome de la seconde génération est celui de compatibilité: le système que l’on aimerait changer n’existe pas dans le vide, il interagit avec d’autres entités qui forment un écosystème qui s’est adapté aux idiosyncrasies du système. Pour le système d’exploitation il y a des programmes qui ont été codés pour une certaine interface. Pour un système politique, ce sont les institutions et surtout les personnes.

Un système d’exploitation sans applications a autant de sens qu’un gouvernement sans population. Ce qui explique pourquoi il est si difficile de faire tabula rasa et se débarrasser de l’ancien modèle : cela revient à déprécier les programmes devenus incompatibles. En politique, la dépréciation des gens est souvent plus sanglante. Dans tous les cas, pour qu’une transition soit possible, il faut une idée claire de la position où l’on se trouve, et de celle qu’on désire atteindre, une volonté claire et la capacité de maintenir le cap durant la transition. Autant de choses rares et précieuses.

Alors on se retrouve a bricoler avec des systèmes anciens et conçus pour des modèles obsolètes en espérant que les sommités variées qui planchent sur le «next big thing» parviendront à l’implémenter, sans réellement y croire, l’époque ou les monorails magnétiques devait supplanter les rails datant de l’époque victorienne est révolue : les trains à grande vitesse roulent sur des voies à écartement standard de 4 pieds et 8 pouces…

Trentemøller – The Last Resort

Cover – The Last Resort – Trentemøller

You should not buy an album because of the beauty of its cover, in particular if you are using an online store and will never own a box with the pretty picture. Still I find the cover of “The Last Resort” of Trentemøller beautifully reflects the music in contains. While some of the tracks of the album are to abstract and conceptual for me, others are simply beautiful. I really liked “Moan” featuring Ane Trolle and “Always Something Better”. The version of Moan on this album is softer and has less beat that the version you can find on you tube. I prefer the softer version (the video-clip on Youtube is great). In conclusion, a very soft electronic music album that I really like.

Trentemøller – The Last Resort, October 2006 – Poker Flat Recordings

Erdős Number

While I’m not strictly speaking a mathematician, I always wondered what my Erdős Number would be. The Erdős number of an author is calculated the following way: Paul Erdős has number 0, people who have coauthored a paper with him have a number 1, people who co-wrote papers with people with a number of 1 have a number of 2, etc.
So I took advantage of this snowy Sunday to search for a path between Paul Erdős and myself. If you have published mathematical papers, you just need to search for yourself on the collaboration distance tool. But as I have not published any mathematical paper, I had to try out the various people I wrote papers with, and see what would come out. I then had to look for the people they wrote with to find a better path. I found the following four step path:

  1. Paul Erdős → Stanley M. Selkow: Random graph isomorphism.
  2. Stanley M. Selkow → Giovanni Coray: Order independence in local clustering algorithms.
  3. Giovanni Coray → André Schiper: Une structure de contrôle à deux niveaux pour la programmation heuristique parallèle.
  4. André Schiper → Matthias Wiesmann: Beyond 1-safety and 2-safety for replicated databases: Group-safety

The first five step path I had found was the following:

  1. Paul Erdős → Shmuel Zaks: Minimum-diameter cyclic arrangements in mapping data-flow graphs onto VLSI arrays
  2. Shmuel Zaks → Gerard Tel: Optimal synchronization of ABD networks
  3. Gerard Tel → Bernadette Charron-Bost: Synchronous, asynchronous, and causally ordered communication
  4. Bernadette Charron-Bost → André Schiper: Uniform consensus is harder than consensus
  5. André Schiper → Matthias Wiesmann: Beyond 1-safety and 2-safety for replicated databases: Group-safety

But there is at least another 5 step possibility:

  1. Paul Erdős → Ronald L. Graham: On sums of Fibonnaci numbers.
  2. Ronald L. Graham → John L. Bruno: Computer and job-shop scheduling theory.
  3. John L. Bruno → Divyakant Agrawal: Relative serializability: an approach for relaxing the atomicity of transactions.
  4. Divyakant Agrawal → Gustavo Alonso: Advanced Transaction Models in Workflow Contexts.
  5. Gustavo Alonso → Matthias Wiesmann: Understanding replication in databases and distributed systems.

I also found two different path of length 6:

  1. Paul Erdős → Fan Chung: On the product of the point and line covering numbers of a graph
  2. Fan Chung → Patrick Solé: Patrick Multidiameters and multiplicities
  3. Patrick Solé → Peter J. Olver: Generalized transvectants and Siegel modular forms
  4. Peter J. Olver → Metin Arık: Multi-Hamiltonian structure of the Born-Infeld equation
  5. Metin Arık → Gökhan Ünel: q-oscillators, the q-epsilon tensor and quantum groups
  6. Gökhan Ünel → Matthias Wiesmann: Deployment and use of the ATLAS DAQ in the combined test beam
  1. Paul Erdős → Alexander Rosa: Decompositions of complete graphs into factors with diameter two.
  2. Alexander Rosa → Jean-Claude Bermond: Decomposition of complete graphs into isomorphic subgraphs with five vertices.
  3. Jean-Claude Bermond → Michel Raynal: General and efficient decentralized consensus protocols.
  4. Michel Raynal → Maria Gradinariu: Stabilizing mobile philosophers.
  5. Maria Gradinariu → Xavier Défago: Fault-tolerant and self-stabilizing mobile robots gathering – feasibility study.
  6. Xavier Défago → Matthias Wiesmann: Anonymous stabilizing leader election using a network sequencer.

Edit:

I found three new paths giving me a level four:

  1. Paul Erdős → Shlomo Moran Extremal problems on permutations under cyclic equivalence
  2. Shlomo Moran → Hagit Attiya Computing in totally anonymous asynchronous shared memory system
  3. Hagit Attiya → André Schiper Structured derivation of semi-synchronous algorithms.
  4. André Schiper → Matthias Wiesmann Understanding replication in databases and distributed systems
  1. Paul Erdős → Pavol Hell Graph theory in memory of G. A. Dirac
  2. Pavol Hell → Masafumi Yamashita Graph endpoint coloring and distributed processing
  3. Masafumi Yamashita → Xavier Défago The gathering problem for two oblivious robots with unreliable compasses.
  4. Xavier Défago → Matthias Wiesmann: Anonymous stabilizing leader election using a network sequencer.
  1. Paul Erdős → Pavel Valtr Pavel Ramsey-remainder
  2. Pavel Valtr → Ivan Stojmenović Whitesides, Sue The largest k-ball in a d-dimensional box.
  3. Ivan Stojmenović → Julien Iguchi-Cartigny Localized minimum-energy broadcasting for wireless multihop networks with directional antennas
  4. Julien Iguchi-Cartigny → Matthias Wiesmann: Collision Prevention Platform for a Dynamic Group of Asynchronous Cooperative Mobile Robots.

Edit:
Microsoft now has a tool to visualise such paths, which gives me four other paths of length four. Here is the embedded visualisation (requires Silverlight).

Écriture Cursive

Nos vies se définissent non seulement par ce que nous gagnons, mais aussi ce que nous perdons.

Nos vies se définissent non seulement par ce que nous gagnons, mais aussi ce que nous perdons. Une chose que j’ai perdu c’est la capacité à écrire en caractères cursifs, mon écriture n’est plus liée depuis plus de dix ans. Un collègue avait partagé un article sur le fait que je ne suis pas seul, nombre de gens perdent la capacité de lire l’écriture cursive. Je suppose qu’il serait de bon ton de se lamenter, et de demander, comme le fait l’article.

Et que dire dans ce cas du simple fait d’écrire correctement avec un stylo ?

Mes objections sont les suivantes. D’abord on n’écrit pas correctement avec un stylo on écrit correctement avec une plume. Ensuite, l’écriture liée ne sert qu’à deux choses : écrire rapidement et avoir des ordonnances de médecin illisibles. Le problème, si on y réfléchit, c’est qu’il n’y a qu’un cas où il est utile d’écrire vite, c’est pour copier, que la source de cette copie soit orale ou écrite. Il y a certainement des gens capables de réfléchir si vite qu’une écriture manuscrite non-cursive ne serait pas assez rapide, mais il y a fort à parier qu’ils utiliseront un clavier. C’est la même raison pour laquelle les programmeurs n’ont pas besoin de savoir taper à dix doigts (personnellement je n’y arrive pas), le problème n’est pas de taper le code, mais de le concevoir (et le debugger, mais c’est une autre histoire). Il reste donc les ordonnances, qui entrent définitivement dans les traditions idiotes qui auraient du disparaître avec le ⅩⅩᵉ siècle : qui pense sincèrement qu’avoir une écriture illisible pour transmettre des informations sur des substances qui peuvent affecter la vie d’un humain est une bonne idée ?

Le fait est que le but premier de l’écriture reste la lecture, et donc une écriture lisible me semble plus important qu’une tradition qui n’a plus beaucoup de sens. Cela ne veut pas dire que je pense que la calligraphie doivent disparaître, mais si elle doit subsister, c’est en tant que forme artistique. C’est, je suppose l’avantage de la calligraphie asiatique comme elle se rapproche du dessin, elle signifie, comme le proclame Misenplis, le scribe de Numerobis que : si vous savez dessiner, vous savez écrire !.
Time a un article qui semble confirmer ce que je dis.