La botte de foin

Les développeurs de scripts et d'extensions pour InDesign sont confrontés à d'innombrables variétés de bugs. Il y a bien sûr les pures erreurs d'implémentation, mais aussi les problèmes de compatibilité, les contextes d'utilisation inattendus ou franchement machiavéliques, les erreurs « en cascade » découlant des bugs d'InDesign lui-même, les effets directs ou indirects de l'instabilité système, etc. De surcroît, l'événement malencontreux peut se manifester à tel ou tel niveau : dans ExtendScript, dans la couche de l'interface utilisateur, dans le « scripting DOM », dans l'espace d'exécution d'InDesign ou dans une bibliothèque rattachée, à l'étage des entrées/sorties, au niveau du système d'exploitation, de la mémoire vive, et ainsi de suite. On comprend qu'au sein d'un projet d'envergure, la chasse et la résolution des bugs devient parfois une expédition picaresque.

Mais le pire cas de figure est toujours celui que l'on ne peut pas reproduire chez soi, car il échappe alors à toute expérimentation directe. Les utilisateurs malheureux vous rendent compte d'un message d'erreur qui semble provenir de l'au-delà :

Le bug fatidique de la table de montage, tel que rapporté par un utilisateur francophone.

Tu m'en diras tant !

L'aiguille

Naturellement, le premier réflexe est de suspecter avant tout une erreur de calcul enfouie dans notre code. L'hypothèse est inconfortable — car aucun des nombreux tests effectués durant le développement n'a révélé pareille bévue — mais on devrait finir par localiser ce petit grain de sable dans l'engrenage. Attendu que Wordalizer s'adapte à beaucoup de variantes d'InDesign (CS4, CS5, CS5.5, CS6, CC 9 et CC 10), on conçoit aisément qu'un réglage spécifique, côté utilisateur, puisse interférer avec notre script dans des circonstances que nous n'avions pas anticipées.

Seulement voilà ! Jour après jour, nuit après nuit, malgré tous les contre-tests effectués, le mystère ne fait qu'épaissir, entraînant avec lui un flot de questions inédites qu'on ne se serait jamais posées en temps normal. Même en considérant les contextes d'utilisation les plus retors, il n'y a décidément aucune raison valable, au vu du code source, pour qu'un objet soit déporté « en dehors de la table de montage ».

Le Bon Samaritain

C'est là que Pedro entre en scène. À cinq heures de décalage horaire de Paris, cet innocent utilisateur de la version d'essai de Wordalizer tombe à son tour sur le bug fatidique. Il me décrit avec force détails tous les symptômes observables. « N'hésitez pas à me solliciter pour des tests plus approfondis », ajoute-t-il. Eh bien, deux semaines plus tard, je me dois de rendre hommage à son extrême endurance !

En examinant sous toutes ses coutures le document défectueux produit par InDesign, nous avons fini par découvrir le pot aux roses : sous réserve que certains paramètres se combinent assez sournoisement, InDesign 9.0 (et peut-être seulement cette version-là) ne parvient plus à gérer l'espace géométrique des pages conformément aux spécifications habituelles. Par une série d'essais et d'erreurs, Pedro et moi venions de circonscrire les conditions d'apparition du bug.

Note. — Je ne me lance pas ici dans des explications techniques. Il ne fait aucun doute à mes yeux que nous avons affaire à un bug interne d'InDesign. Mes confrères pourront trouver quelques indices utiles dans cette discussion bien que le puzzle soit plus compliqué encore.

La planche de salut

C'est ainsi qu'un correctif a pu être graduellement élaboré et testé. Il s'appuie sur une stratégie « à deux lames ». D'abord, on tente purement et simplement de contourner l'obstacle en neutralisant les paramètres toxiques. Au vu des résultats obtenus, cette stratégie m'inspire la plus grande confiance. Cependant, n'étant jamais sûr de rien quand un bug émerge des profondeurs d'InDesign, une routine complémentaire effectue un test d'appoint. De telle sorte que si les voyants ont viré au rouge malgré nos précautions, Wordalizer se lancera une bouée de sauvetage et remettra les éléments en place.

Désormais, notre générateur de nuages de mots devrait donc fonctionner normalement même dans les configurations où InDesign souffre d'un léger astigmatisme. À vous de le confirmer en testant la version TRY !

Un immense merci à Pedro Eisner.

Téléchargez le manuel de Wordalizer 1.5 (PDF)

Licence Wordalizer Pro