Cette péripétie du lundi est une péripétie bien tardive.
Laissez-moi donc vous parler de madame Jambon. Voyez-vous, cette dame était ma nourrice à l’époque d’un quelconque âge ingrat ; et, non, je n’invente pas son nom. J’ai bel et bien eu une nourrice ayant eu Jambon pour patronyme.
Pour être honnête je ne garde pratiquement aucun souvenir de cette dame à quelques détails près. L’un de ces détails étant qu’elle possédait le plus fabuleux jouet du monde : un parcours à bille. Vous devez voir de quoi je parle : il s’agit d’un ensemble de tubes et de gouttières en plastique coloré qui s’assemblent entre eux pour faire un parcours dans lequel cheminera, gravité aidant, une agate ou, mieux, l’une de ces magnifiques billes transparentes bleues constellées de points blancs (qui valaient au moins 2 ou 3 billes standard au taux de change de la court de récré).
Eh bien, sachez-le, faire un site web c’est exactement comme monter un parcours à bille. On a nos éléments colorés syntaxiquement et on s’efforce de les arranger, de la façon la plus élégante possible, afin que les les petites données aillent là où on le souhaite. Avec l’expérience, on finit par connaître les coins et recoins de nos petit tubes et on sait rapidement lequel utiliser où…
Ceci dit, vu le nombre de pièces, il arrive toujours un moment où on se fait avoir : les données restent coincées, ou alors se retrouve éjectées du parcours bien avant le moment prévu. Alors on démonte, on observe, on croit comprendre on remonte. A ce moment là, bien souvent -obsédé que l’on est par ce petit coude traître qui vient de tout nous foutre en l’air- on en néglige un autre bout crucial où les données se coinceront à nouveau. Alors on respire un coup et vérifie que le parcours ne comporte pas d’erreur.
L’autre jour, alors que je travaillais d’arrache-pied à ce que les petits morceaux de musique glissent élégamment dans le lecteur;, je me suis retrouvé avec ce genre de problème qui différencie l’informatique du monde des petites sphères en verre. Lorsqu’un morceau entrait et glissait jusqu’à sa destination… voilà que deux en ressortaient ! L’un parfait tandis que l’autre n’était qu’un tas de de chiffre qui n’avait pas le moindre sens ! Par quelle diablerie était-ce possible ?
Lorsque c’est comme ça, on cherche à isoler le problème. Petit bout par petit bout, j’ai démonté les éléments et je les ai testé méthodiquement pour isoler le problème. D’abord large, puis de plus en plus petit. On lâche juste les données au milieu, et on place des mouchards pour voir ce qu’elles font aux passages critiques. La plupart du temps ça se règle vite, mais là… rien. Pour tout dire, je trouvais le résultat aussi cohérent qu’une bille allant de bas en haut dans un parcours en plastique… Je ne pigeais pas.
Si ça ressemblait à de la sorcellerie, ça voulait dire qu’il me manquait des connaissances. Du coup, je suis allé voir des gens qui ont plus d’expérience que moi dans les parcours à données et on a testé ensemble. Ce coup-ci on a testé les éléments qui pouvait être fautifs hors contexte, en laboratoire pour être certain de leur innocence. C’était instructif mais ça ne collait pas avec les observations de terrain. Le problème était ailleurs. Je devais aller plus profond.
J’ai démonté d’avantage, y compris ces éléments fait par d’autres. Ces tuyaux élémentaires nous évitant de devoir réinventer la ligne droite ; qu’on pose et qu’on oublie (ils sont fait pour !). Et là, soudain, j’ai trouvé ! L’un de mes mouchards m’a mis la puce à l’oreille : l’un de mes tuyaux était utilisé deux fois et ça n’était pas normal. A partir de là j’ai fait le chemin inverse. Je suis remonté, espion après espion, jusqu’à la source du problème.
En programmation, les tuyaux sont fait de mots, et il se trouve que j’avais utilisé un mot qui faisait doublon avec l’un de ces tuyaux élémentaires. Une pure coïncidence. Mais une coïncidence qui m’aura forcé à défaire et à refaire tout les boulons de la machine…
Et oui, c’est ça aussi la programmation. Un mauvais tuyau, un embranchement légèrement bancal… une petite erreur peut vite dégénérer et nos billes ne jamais arriver. Heureusement qu’il y a de nombreux outils pour nous aider. Surtout, heureusement qu’on est pas seul sur le net et que de nombreuses personnes sont là pour nous donner des pistes !
Lorsque l’on prend du retard avec ce genre de soucis, il y a quelque chose de très frustrant à ne pas pouvoir expliquer simplement pourquoi… je tomberais inévitablement dans du jargonnage incompréhensible et vous ressentiriez, au pire, de l’indifférence, au mieux, une solide impression que je me paie votre tête. Du coup je me suis creusé la tête pour retranscrire au mieux ce bug qui m’aura fait perdre, au bas mot, deux jours.
Les objectifs de la semaine n’auront donc, malheureusement pas trop changé, mais rassurez-vous en vous disant que le player est commun sur les deux sites. En le corrigeant sur l’archive, je le corrige aussi sur la V3 ! Bien entendu, nos valeureux yeux de lynx (et sacrés poissards) du chat concentrent à eux trois une bonne poignée de nouveaux bugs que je n’avais pas en local et que je vais devoir corriger !
Le fameux article promis pour la semaine dernière est pratiquement terminé. C’est une synthèse qui traite d’un sujet assez vaste qui mérite encore quelque relecture pour trouver le bon équilibre entre le trop et le pas assez d’explication.
Et puis, j’ai dû apprendre à faire un bateau en papier pour illustrer l’article (non je ne savais pas faire) et ça m’a pris du temps (je blague, mais vous comprendrez de quoi je parle lors de la publication) ! En parlant d’illustrations, les photos qui illustrent l’article sont des petits bouts de mon espace de travail, sous les combles de mon appart’. Pour infos, je me sers des papiers collants (pas de marque) pour garder la trace de ce qu’il faut faire et de ce qui à déjà été fait !
ah bah oui, c’est clair là….
Bon, si je peux faire qqch pour aider, n’hésite pas…
(au fait ça merde un peu pour laisser des commentaires, 9 fois sur 10 il veut qu’on soit connecté alors qu’on l’est déjà… mais bon plutôt débugger le futur site Dogma que ce blog… hein ?)
Pour aider au site, c’est facile vu que tout est public :
https://github.com/MusiqueLibre/DogmaGoblin/issues
https://github.com/MusiqueLibre/mlo-sites/issues
J’ai pris du temps de classer les bugs par types pour que chacun repère facilement ce qu’il est capable de faire.
Ensuite, pour les familier de git, vous pouvez faire des pull requests, sinon utilisez le formulaire de contact pour vous signaler !
Merci de proposer dans tout les cas, c’est chic !
Bah moi, je comprends pas grand chose aux tuyaux doublés, mais je suis de tout coeur avec toi….
La dernière fois que j’ai touché à de la programmation c’était sur ATARI ST et y avait un basic compilé redoutable qui s’appelait le GFA basic. Avec ça j’ai même fait un soft commercialisé, c’est dire…
Franchement j’aimerais bien aider pour Dogma, mais à part faire des musiques, je crois pas être capable de grand chose.
Ha ! Ha ! Elle est pas claire ma métaphore du parcours à bille 😉 ?
En vrai, c’est juste que j’avais une fonction « init() » qui me permet de gérer les diverses actions avec l’AJAX, notamment les playlist.
Or il se trouve qu’il y a aussi un init() dans la bibliothèque jQuery.
Du coup l’action lors d’un click de morceau se produisait deux fois.
Je ne savais même pas que c’était possible d’assigner plusieurs « click() » identiques à un même élément. Ca semble logique, mais ça ne m’étais jamais arrivé en 6ans de jquery !