1
0
Fork 0
contenu/blog/2024/03/15/nouvelle-version-du-blog/index.md

8.9 KiB
Raw Blame History

From scratch

Je suis parti dune feuille blanche. Avec la version précédente, jai imité — essayé de transposer — le fonctionnement du générateur de site statique Hugo. Je ne me suis pas forcé à écrire quelque chose de distribuable : le but était justement de faire quelque chose de très personnel (et cest toujours le cas). Mais même sans cette contraire, le fonctionnement spécifique de ce genre dapplications ne me convient pas.

Je suis un développeur web, et imiter Hugo ne faisait que tendre vers une tentative dapplication Frankenstein, à moitié pour la console et à moitié pour le web. Je me rends compte maintenant à quel point cest lourd et pénible, alors que, grosso-modo, on prend du Markdown en entrée et du HTML en sortie, et je nai même pas besoin de faire la conversion à la main…

Donc, je repars de rien, et jaboutis à peu près à six fichiers dans lesquels se trouve lessentiel de mon code. Jai dû réduire dau moins 75% ma base de code, tout en la rendant plus conforme à ce que jai lhabitude de développer avec Laravel.

Avec de laide

Vous nêtes pas sans savoir quen ce moment, jexplore lIntelligence Artificielle Générative, et quen plus, jai pris un abonnement payant à ChatGPT. Loccasion de créer un GPT personnalisé, dédié à mon blog. Jy ai trouvé exactement ce dont javais besoin : linspiration. Mieux : ça ma rassuré sur certains points que je détaillerai plus loin.

Pour lesthétique

Comprenez bien que je ne prétends pas avoir réalisé un beau site, par contre, il me correspond encore un peu plus que le précédent. Et cest en grande partie à DALL·E que je le dois.

Je disais dans mes réflexions sur Leonardo.ai que lIA pouvait être considérée comme un pont entre les arts, et avec de la patience et une meilleure compréhension de la façon dont tout ça fonctionne, à force dessais et derreurs, jai fini par obtenir de DALL·E un logo qui me convient à la perfection. Cependant, je ne dois pas créditer que DALL·E pour ce logo, mais aussi mon épouse : cest elle qui a eu lidée dun prompt pour obtenir ce résultat (même si jai fait quelques ajustements par la suite).

En tant que logo rond, je vais pouvoir men servir comme avatar, et il ne dénote pas trop une fois réduit en favicon. De plus, ça ma permis dessayer une disposition que je navais encore jamais tentée, avec les liens autour du logo, et je suis très satisfait du résultat.

En outre :

  • On devrait rapidement voir la référence à Jurassic Park sans pour autant avoir copié honteusement le logo dorigine
  • Le T. rex est “réaliste”, cest-à-dire quil a le bon nombre de pattes et de doigts…
  • Il a exactement lattitude que je voulais retranscrire : sérieux, concentré, mais jovial malgré tout
  • Les couleurs sont exactement celles que je cherchais
  • Mes initiales apparaissent correctement ; cest peut-être contre-intuitif, mais tout ce qui est textuel semble assez délicat à produire dans une image

ChatGPT ma aussi aidé pour la sélection de couleurs de lensemble du site, et quelques règles CSS qui sortent un peu de mon champ de compétence. Je le répète assez souvent : je nai aucun talent pour tout ce qui est graphisme et design, et ChatGPT a été très créatif à ma place. Là aussi, je suis très satisfait du résultat, même sil y aura probablement des retouches à faire ici ou là et ultérieurement.

Enfin, jai décidé que tous mes articles auront leur propre image den-tête. Loccasion pour moi dentraîner mon ChatGPT personnalisé, et de mentraîner moi à communiquer avec lui.

Pour le code

Je suis assez bluffé par les compétences de ChatGPT en ce qui concerne la production de code. Moyennant quelques informations basiques (”je développe avec Laravel”, ce genre de choses), il me produit du code totalement approprié, habituellement juste, bien structuré, documenté (mais il faut le lui préciser) et lisible. Cétait assez rare que jai besoin de repasser derrière un copier-coller de ce quil produisait.

Je lui ai surtout demandé son avis pour des choses un peu complexes, ou pour lesquelles je me doutais quil existait une façon de faire sans pour autant parvenir à mettre le doigt dessus. En détaillant suffisamment mes questions, ses solutions savèrent doublement satisfaisantes :

  1. elles sont justes
  2. elles sont originales

Grâce à ses réponses, jai appris, par exemple que je pouvais travailler assez facilement avec des colonnes qui stockent des données en JSON dans une base PostgreSQL. Je savais que je pouvais faire des trucs sympas, mais jignorais que javais cette puissance directement à portée de main avec Eloquent

Pour tout dire, je pensais que ChatGPT allait me proposer des solutions basiques, du genre récupérer toutes les pages et tester le JSON pour faire ce dont jai besoin en pur PHP, ce qui est très loin dêtre optimal. Mais, finalement, la qualité du code proposé est dun niveau bien supérieur à ce que je craignais, et cest tant mieux.

Il y a toutefois quelques grandes limitations qui, pour lheure, me rassurent quelque peu sur le métier de développeur.

Principalement, il nest pas vraiment envisageable de faire les choses en grand. Redoutable pour refactorer quelques méthodes, voire une classe complète, ChatGPT semble un peu plus dans lembarras quand jessaye de lui demander de refactorer plusieurs classes en même temps, avec lobjectif de limiter les répétitions de code. Là, il avoue lui-même que cest une opération trop complexe pour lui (alors que mes classes sont tout à fait modestes).

Il lui manque une capacité à avoir une vue densemble. Ça, pour le moment, cela reste lapanage du développeur. Ouf.

Je note aussi quil ne gère pas bien les négations (”je ne veux pas de texte dans limage” va immanquablement produire une image avec du texte…). Au contraire de Leonardo.ai qui a bien prévu le coup avec ses prompts négatifs, ce qui confirme lintérêt dutiliser plusieurs outils de ce type afin daccomplir des tâches spécifiques.

Pour la rédaction

Dans le but de faire des liens entre des films et des séries, je rajoute dans le Front Matter de mes articles les listes dacteurs et de personnages (mais aussi des dinosaures, quand applicable…). Cest incroyablement rébarbatif, parce que ça consiste à faire des copier-coller de la Wikipédia, dabord pour les acteurs, ensuite pour les personnages, etc.

Je pourrais utiliser lAPI de Wikidata et faire un truc à moitié dégueulasse, mais je peux aussi demander à ChatGPT de me lister les acteurs du film (ou les voix du jeu vidéo, ou les rédacteurs dun livre), avec leur personnage, ainsi que les contributeurs tels que les scénaristes, metteurs en scène, etc. le tout formaté en YAML, et il le fait parfaitement bien.

Je ne lai pas encore mis en pratique pour différentes raisons. En revanche, je dispose maintenant de linfrastructure de code et esthétique pour le faire, ça fait donc partie de ma feuille de route.

Quelques détails

Je ne vais pas tout décrire de la nouvelle version du site. Sachez simplement que :

  • Il ny a toujours pas la moindre ligne de javascript
  • Il ny a toujours pas besoin du moindre cookie
  • Je ne génère pas la moindre statistique : je ne sais pas combien vous êtes à me lire, ni le temps que vous restez sur le site, ni aucune autre métrique que ce soit
  • Je suis toujours aussi respectueux de mes visiteurs quavant : je nai pas vendu mon âme au diable en voulant monétiser ou en intégrant de lIA
  • Je reste lauteur de mes articles, ChatGPT ne me vient en aide que pour des détails, comme la liste des acteurs dun film, ou pour vous faire part danecdotes, ou pour générer des images den-tête
  • Mon blog ne va pas devenir un ramassis de pubs ou de contenu auto-généré, et ce nest pas seulement pour vous, mais aussi pour ma réputation

Feuille de route

  • Améliorer laffichage des collections en permettant de choisir successivement une marque puis une gamme, et en affichant les identifiants des objets collectionnés
  • Ajouter des wishlists aux collections, afin didentifier rapidement ce qui me manque
  • Diverses améliorations esthétiques que je juge mineures et qui seront faites au fil de leau

Conclusion

Comme dhabitude : peinture fraîche. Nhésitez pas à me faire part de vos commentaires !