Cette semaine je devais travailler sur la définition de la supervision d'un client. Dans ce cas là, j'ai l'habitude de remplir une feuille de données Calc d'OpenOffice.org. Typiquement, cette feuille contient le nom de tous les serveurs et équipements à superviser, leur adresse IP, les services à superviser sur ces équipements, ... Pour une meilleure efficacité, le document est rempli avec les équipes techniques du client en étant projeté sur un écran grâce à un rétroprojecteur. Ce qui signifie que le client voit le fichier se mettre à jour, il corrige en même temps les erreurs potentielles. Jusqu'à ce qu'OpenOffice se bloque....

Après un malheureux Copier/coller d'une cellule d'un onglet vers un autre, la fenêtre d'OpenOffice se bloque, mon ordinateur semble au ralentit. Bon... Des gouttes de sueur perlent sur mon front... On va essayer d'arrêter puis re-démarrer OpenOffice! OpenOffice me demande si je souhaite enregistrer mon fichier avant de le fermer. La réponse est bien évidemment oui: faire le recensement du SI n'est pas quelque chose de fondamentalement amusant car il faut identifier tous les processus (certains comme "vsftpd", "xregd", "srvd", "ndsd", "slpd", ...). Il faut donc faire très attention à ne pas oublier une lettre ni en inverser deux. Maintenir l'attention pendant 2 heures, pas de problème. Mais pendant 2 jours, c'est plus compliqué et vite épuisant. Au milieu du 2e jour (donc quasiment à la fin du recensement), OpenOffice "plante". Bon, ce n'est pas grave, c'est un outil de qualité: au prochain redémarrage, il va me demander de restaurer le fichier et je n'aurais rien perdu. Ce qu'il n'a pas eu besoin de faire vu que... j'avais sauvegardé avant de fermer. Donc OpenOffice se lance et la fenêtre apparaît quasiment de suite et ... se fige. Tiens! Bizarre: même comportement qu'avant? Comment se fait-ce? Bon je ferme encore. Et là je kille tous les processus "soffice.bin". "Aucun processus killé": tiens, ça veut dire qu'il a bien réussi à se fermer. Donc je relance! Même problème. OK, je viens de comprendre: OpenOffice a tout simplement corrompu le fichier. Le copier/coller a dû coller un objet (oui mais lequel?) mal interprété par OpenOffice... et la sauvegarde l'a sauvegardé... et donc il a corrompu mon joli fichier. Les gouttes de sueur s'amoncellent sur mon front! Oui oui, je ne rêve pas: mon fichier est corrompu et le client voit tout ce que je fais à l'écran! Que faire?

Heureusement j'ai eu la chance de travailler à côté de Sophie Gautier. Je me souviens m'être arrêté un jour, d'avoir levé la tête et d'avoir vu Sophie travailler sur un document XML. Je lui ai demandé ce qu'elle faisait. Elle me répondit:

  • bah... j'ai reçu un fichier corrompu qu'on me demande de réparer!
  • ???
  • bah c'est facile! Tu dé-zip le fichier OpenOffice avec unzip. Là tu as plusieurs fichiers. Et tu modifies le fichier XML.
  • ???
  • Sissi c'est facile! Tu l'ouvres et tu le modifies. C'est juste un fichier XML.
  • heu... oui mais ... heu... ça doit être du XML compliqué non?
  • ... ch'ai pas. attends. OK.. c'est bon: j'ai trouvé. Je vérifie... oui ça marche! je vais pouvoir lui renvoyer! cool.
  • !!!

C'est ça qui est incroyable avec elle: ça semble toujours facile.

Du coup, j'ai essayé. Que pouvais je faire? Il fallait bien tenter quelque chose. Je n'avais que deux possibilités: réparer le fichier ou tout recommencer! Donc j'ai fait comme Sophie m'a dit:

  1. un coup d'unzip
  2. ouverture du fichier XML (d'ailleurs si vous connaissez un éditeur XML qui permet de lire sans trop de ralentissement un fichier XML très lourd et qui ne soit pas emacs, ni vim, ni kate, ni kedit qui rament beaucoup trop, eux, je suis preneur!!!)
  3. identification de l'erreur (là, typiquement, il faut se poser une question "qu'ai je fait qui aurait pu causer un bug?" puis chercher dans le fichier quelque chose se rapprochant)
  4. modification du fichier
  5. re-zip de l'archive
  6. vérification avec OpenOffice

Bon je vous avoue, les étapes de 3 à 6 sont sûrement à faire plusieurs fois. L'étape la plus compliquée étant l'étape 3... Avec un peu de réflexion et beaucoup de chance, on réussi. Sissi: je l'ai même fait!

Un grand merci à Sophie Gautier de m'avoir, il est vrai sans le vouloir, aider à me sortir de ce mauvais pas! Merci au client d'avoir patienter une heure. Merci aux formats ouverts d'être ... ouverts et donc modifiables par d'autres outils. Une seule question: qu'aurais je fait avec Microsoft Office?