David Madore's WebLog: Des changements techniques sur ce blog

Index of all entries / Index de toutes les entréesXML (RSS 1.0) • Recent comments / Commentaires récents

Entry #2233 [older|newer] / Entrée #2233 [précédente|suivante]:

(samedi)

Des changements techniques sur ce blog

Si vous arrivez à lire cette entrée, c'est que je n'ai pas totalement tout cassé. ☺

Après avoir longtemps tergiversé (j'en parlais déjà il y a trois ans), j'ai enfin décidé de faire faire un petit pas au système technique d'hébergement de ce blog.

Jusqu'à présent, les entrées de ce blog étaient présentées sous essentiellement trois formes : une page principale avec les 20 entrées les plus récentes, une page par mois pour les archives, et aussi une page par catégorie pour les entrées que j'ai tagguées ; seules certaines entrées particulièrement longues (comme celle-ci) avaient droit à une page individuelle. De façon liée à ce choix, toutes les pages du blog lui-même (i.e., à l'exception du système de commentaires, qui est géré par un petit script CGI assez trivial écrit en Perl) étaient purement statiques, c'est-à-dire, générées à l'avance et servies comme de bêtes fichiers ; je regénère ces fichiers quand j'écris une nouvelle entrée ou quand j'en modifie une (le moteur lui-même qui parse le sur-ensemble de HTML dans lequel je tape et qui produit les différentes pages HTML, est écrit en Java ; là-dessus, j'ai un petit script Perl qui essaie de détecter les pages qui sont vraiment modifiées pour ne regénérer que celles-là).

Cet agencement était logique quand j'ai commencé ce blog, avec un moteur trivial (j'ai longtemps simplement tout tapé dans un unique gros fichier de toutes les entrées, qui était traité par une feuille de style XSLT simpliste), puis un à peine moins trivial (écrit en C). Par ailleurs, il convenait assez bien aux entrées plutôt courtes que j'écrivais il y a une dizaine d'années (l'entrée moyenne sur les années 2004 à 2006 fait moins de 3000 caractères de long, celle de 2011 à 2013 en fait plus de 9000 !) : séparer un blog aux entrées très courtes en pages individuelles n'a pas beaucoup de sens, cela en a beaucoup plus quand il s'agit de textes assez longs expliquant, par exemple, un concept mathématique.

Il y avait plusieurs inconvénients qui me préoccupaient. Notamment, si je donnais un lien vers une de mes entrées à quelqu'un qui n'a pas l'habitude de mon blog, le lien risquait d'être au milieu de la page et il risquait de voir se charger toute une page sans rapport avec le sujet avant que le navigateur le positionne sur l'entrée voulue : pas forcément attrayant. Mais par ailleurs, les moteurs de recherche, manifestement, ne savent décidément pas indexer séparément les différents éléments à l'intérieur d'une page Web, même quand on leur donne toutes les indications sémantiques (de la balise <code> au microformat hAtom) pour leur mâcher le travail.

Quoi qu'il en soit, j'ai fini par donner à chaque entrée sa propre page (accessible notamment depuis la page d'index de toutes les entrées ou via le permalien qui est caché sous la date dans le coin en haut à gauche de l'entrée). Comme je ne voulais pas générer statiquement deux mille fichiers HTML (pas vraiment que ça pose un problème aux ordinateurs modernes, mais cela choquait un peu mon sens de l'esthétique et de l'organisation), et comme cette génération est de toute façon très efficace, ces pages seront produites dynamiquement à la demande : j'utilise pour ça un serveur Tomcat (qui parle à mon serveur Apache), ce qui est logique vu que mon moteur de blog est déjà écrit en Java. (Il faudra que je raconte un jour ce que je pense de Java.)

Ce qui ne veut pas dire que ç'ait été complètement évident non plus. Mon code n'était pas prévu pour tourner de façon parallèle (je faisais usage de quelques variables globales, i.e., de champs statiques de classes Java), ni pour persister : j'ai donc dû revoir un certain nombre de choses. Si tout casse, au moins, les pages statiques devraient rester lisibles (la page principale avec les entrées récentes, et aussi la page de toutes les entrées d'un mois, maintenant accessible en passant par l'index de toutes les entrées). J'ai aussi fait un effort considérable pour ne casser aucun lien, mais il est toujours possible que j'aie échoué en cela. Je dois dire, aussi, qu'il était assez fastidieux de m'arranger pour que PostgreSQL, Tomcat et Apache parlent correctement les uns aux autres (le nombre de fichiers de configuration à régler est franchement assez pénible). Mais bon, c'est fait.

On verra d'ici un jour ou deux si les recherches Google renvoient désormais des pages des entrées individuelles de ce blog. (J'ai en tout cas été impressionné par la vitesse à laquelle le Googlebot a repéré le changement et tout téléchargé : il n'a pas dû s'écouler deux heures que c'était fait.)

Par ailleurs, je n'ai toujours pas eu le courage de m'attaquer à la refonte du système de commentaires (rien n'a changé à son sujet, et je sais qu'il est nul : pas la peine de me le rappeler, donc !), dont la modification d'aujourd'hui devrait cependant être la prémisse.

↑Entry #2233 [older|newer] / ↑Entrée #2233 [précédente|suivante]

Recent entries / Entrées récentesIndex of all entries / Index de toutes les entrées