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…

Flattr this!

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.

Flattr this!

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.

Flattr this!

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

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.

Flattr this!

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…

Flattr this!

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

Flattr this!

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 paths 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).

Flattr this!

É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.

Flattr this!