16 novembre 2024, une question de code
Extrait de la base de données, montrant que le texte n’est pas directement lisible. BLOB = Binary Large OBject
Petit à petit, j’avance dans le déchiffrage, défrichage, du code de Poésies Choisies. Le site devient visible, peu à peu. Un des gros soucis de PHP et MySQL en 2003, était l’encodage UTF-8 [1]. De fait, la base de données que je trouve est encodée depuis plus de vingt ans de la manière qui a provoqué des affichages illisibles sur Remue.net (même âge de base) cette année, au moment de la bascule automatique de l’hébergeur de MySQL 5.6 à MySQL 8.
Comme je disais, le site n’aurait pas pu être hébergé tel quel en 2024. Ceci pourrait ne pas être tout à fait bloquant ou irrémédiable pour les titres, mais pour les champs longs : texte, commentaire, biographie... Il est tout à fait particulier de voir que le texte, en base, contenu dans un objet binaire de type BLOB, est illisible humainement.
Capture d’une nouvelle version du site, avec les anciennes données
De mon côté, j’avance avec ChatGPT. Je profite de cette opportunité pour vraiment l’utiliser, en marge de la préparation de ma conférence sur le fonctionnement et la philosophie des IA. Je l’utilise un peu à regret, mais je vieillis et veux aller vite. Je me ralentis parfois en utilisant Google pour faire des recherches et les trier, ce que ChatGPT assimile plus vite que moi, utilisant pour cela plus d’électricité [2], sur certaines questions. Sur d’autres, après cinq saisies, l’IA ne comprend rien à rien et embrouille tout le code, je peux aussi perdre du temps et de la qualité de cette façon. L’architecture du programme PHP qui soutient le site est à revoir, et aucun automatisme ne me fera traduire ces concepts. Je ressors donc mon vieux livre broché, de Martin Fowler, publié chez Addison Wesley en 2007, Patterns of Enterprise Application Architecture, que j’ai acquis en 2008 quand je travaillais en start-up pour vendre en ligne des parapluies aux baleines de vison, mais c’est une autre histoire [3].
Grâce aux motifs de Martin Fowler, je crée des objets PHP qui vont communiquer avec la base de données et afficher son contenu. J’essaye de retrouver dans les anciennes pages de code des logiques internes de fonctionnement. J’utilise ChatGpt pour m’expliquer les endroits les plus obscurs. Je transforme le principe d’association de mots-clés aux poèmes pour le rendre plus solide.
Importante, une particularité du site est de permettre de cliquer sur virtuellement chaque mot signifiant d’un poème pour emmener vers un autre poème.
Quand [4] vous passez le curseur au-dessus du texte du poème, certains mots se soulignent, ils deviennent actifs ; ainsi, dans la première page de ce poème, « peur », « nuits » ou « eau ». On suppose qu’on continue la lecture jusqu’à la fin, sur la deuxième page, « eau » à nouveau et « ivresse » sont les mots actifs sur cette page. Ce sont des liens hypertextes, mais Nicolas Lichtenstein a trouvé une solution nettement plus discrète que le surlignement permanent habituel.
Cette opération se fait à l’affichage du poème, permet au programme de prendre en compte des poèmes récents. Mais à l’insertion du poème en base, je vois une opération pour solidifier un peu le tout et faciliter, peut-être de futures évolutions. Et puis comme il faut ressaisir chaque texte pour obtenir accents, cédilles, apostrophes typographiques... Cela correspond aussi à l’un des buts du site...
L’un des buts de Poésies Choisies est de donner à lire des poèmes et des poètes qui ont marqué mon propre itinéraire d’écriture.
...or, en vingt ans, je me dis que Laurent n’est plus au même endroit de son itinéraire, il va pouvoir reprendre, abandonner, et ajouter.
La page des Data Mapper, par Martin Fowler
JS
[1] L’encodage, la façon d’écrire en binaire pour représenter chaque caractère d’un jeu de caractères, est tel que, étant passé à une version supérieure de base, j’ai découvert les données définitivement abîmées, en particulier dans les textes qui n’étaient pas encodés sous forme de texte mais sous forme binaire, pour une raison que je ne m’explique pas, d’optimisation, sans doute, à l’époque.
[2] Une recherche Google consomme l’équivalent d’une seconde pendant laquelle je passerais l’aspirateur. Mais pour travailler sur un sujet, il faut faire plusieurs requête, passer du temps sur les sites, comparer et analyser les résultats. Disons 10 secondes d’aspirateur. ChatGPT serait plutôt de l’ordre de 20 à 40 secondes d’aspirateur pour une requête, à la différence que celle-ci est déjà traitée, présentée, analysée.
[3] L’équivalent-aspirateur de ce livre, venu par bateau ou avion jusqu’en France, est de 5h33, mais il dure inchangé depuis 16 ans...
[4] Les citations sont de Laurent Grisel, extrait de Horizontal, profond : lire de la poésie sur écran, Colloque de Cerisy-la-Salle, 2005.