Pour ceux qui ne savent pas de quoi je parle, j'ai un projet de lifestream sur lequel je travaille depuis des années (les archives du tag remontent à 2010 au moins). ce projet a connu plusieurs incarnations. La dernière était un ensemble de plugins maven générant des fichiers Asciidoc que je passais ensuite dans un plugin JBake pour générer un site statique. Sur le papier, l'idée était chouette.

Mais le vrai problème d'un projet de développeur, c'est de le faire survivre à la prod. Mon choix pour la prod était de tout faire tourner sur mon Raspberry, parce qu'il tourne, et que je m'attache de plus en plus à limiter mon empreinte carbone numérique. Sauf que le Raspberry 3 a une mémoire limitée, et que mon lifestream comprend quelques fichiers :

  • 2200 fichiers générés depuis Goodreads
  • 8400 fichiers générés depuis Shaarli
  • 1300 fichiers depuis Wordpress

Ca fait un bon paquet, et même en essayant d'optimiser les choses, je n'arrive pas à générer un site viable. Qu'est-ce que je peux faire maintenant ?

  • La solution la plus simple serait de changer de machine de génération : faire ça depuis un vrai ordinateur (comme par exemple celui depuis lequel j'écris cet article) avec une belle quantité de RAM me sortirait cette épine du pied
  • Une autre solution serait d'abandonner le site statique pour passer à un site dynamique ... mais ça m'embête beaucoup

Parce que l'un des prérequis de ce lifestream est d'être hébergé dans les pages perso de free.fr. Pourquoi ? Parce que c'est une solution performante :

C:\Users\nicolas-delsaux>hey http://nicolas.delsaux.free.fr/lifestream/

Summary:
  Total:        6.2935 secs
  Slowest:      4.1379 secs
  Fastest:      0.3488 secs
  Average:      1.0254 secs
  Requests/sec: 31.7790

  Total data:   6755645 bytes
  Size/request: 33778 bytes

Response time histogram:
  0.349 [1]     |
  0.728 [104]   |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  1.107 [38]    |■■■■■■■■■■■■■■■
  1.486 [22]    |■■■■■■■■
  1.864 [13]    |■■■■■
  2.243 [6]     |■■
  2.622 [6]     |■■
  3.001 [1]     |
  3.380 [2]     |■
  3.759 [4]     |■■
  4.138 [3]     |■

Vous pouvez faire le test de chez vous, vous aurez normalement d'assez bonnes performances. Malgré la lenteur des machines de free.fr. Et ça, c'est un des plus importants objectifs de ce projet.

Du coup, je pense que la prochaine étape devrait tout simplement être de déplacer la génération vers mon ordinateur de bureau, avec une quelconque solution de tâche planifiée pour Windows ... Je vais néanmoins ajouter l'écriture des fichiers dans un repository GitHub, pour faciliter la réutilisation, et travailler sur l'écriture dans un outil comme AsciiBlog. Ou alors tenter de générer le site dans GitHub Pages, ce qui pourrait aussi être chouette (même si ma 1/2 heure de génération JBake ne risque pas d'être compatible avec GitHub Actions). Bref, j'ai encore des idées...