Ou comment j'ai découvert que je n'aime pas la bureautique, même lorsqu'elle met en jeu des outils libres. La première étape, c'est la lutte acharnée pour savoir qui de OpenOffice.org, gnumeric, koffice ou encore abiword saura me lire un foutu document au format OpenDocument. La réponse, aussi loin que debian testing soit concerné, est "aucun". Non vraiment, pas la peine d'insister. Vu que le format de document en question est un agglomérat de fichiers plain text et xml zippés dans une archive — pourquoi pas gzip? pourquoi pas bzip2? — on a le choix entre lire le binaire dans le texte (bravo abiword), ou alors sortir la bite et le couteau, pardon, unzip et $EDITOR pour les courageux qui interprètent la DTD à la volée rien qu'en lisant le xml.

Si on néglige le fait que les dernières versions de ces applications sont, pour une raison ou une autre, par exemple qu'elles sont buggées jusqu'à la moëlle, ou pénalisées par une transition ou que-sais-je-encore, retenues de debian testing; et que rempli d'espoir on installe à tâton les nouvelles versions de l'une, de l'autres, ou de toutes, on finira par lire la chose avec abiword. Les autres aussi peut-être. Pour OpenOffice.org version "2" je ne peux pas dire, la sagesse des développeurs a voulu qu'il faille maintenant une JVM (acronyme signifiant "moulin à merde java") pour lancer le bouzin, et une JVM libre qui marche, ben ça coure pas les rues.

Je vous ai dit que l'ancienne version de koffice part en boucle sur l'ouverture du fichier en question? Que la nouvelle version de abiword part en sucette au retour de l'écran de veille?

Mais assez tapé sur les traitements de texte (car il s'agissait d'un simple document texte que je voulais lire), regardons du côté tableur. En l'occurrence, gnumeric. Perso, j'aime bien le format csv. Une entrée par ligne, un champ séparé de ses copains par une virgule, et vas-y qu'on escape à la barbare quand un champ contient un séparateur (vu le nombre de dialectes csv qui survivent dans la nature, c'est plus "roulette russe" que "à la barbare" d'ailleurs). Et ben gnumeric, le format csv, lui, il aime pas. Y'a qu'à regarder #333366: prenez donc ce beau xml qui vous tend les bras, si si, j'insiste. Ou encore #333369: c'est sauvé? Ah bon, j'ai rien vu.

Au final, mes prochaines éditions de données csv, ça se fera à coup de :

import csv

reader = csv.reader(file("/tmp/foo"))
...

En conclusion, un grand bravo aux développeurs de foo-office et de bar-word, et une mention spéciale à tous ceux qui touchent des gnomeries : à force de copier l'interface utilisateur des outils de merde mais conviviaux, vous avez réussi à faire ce que vous vouliez. De la merde.