Spam des commentaires

Pour lutter contre le spam dans les commentaires du blog, j’ai opté pour la simplicité dès le début parce que l’audience est restreinte, que je ne veux pas compliquer la vie des lecteurs avec des systèmes de captchas (de plus en plus illisibles d’ailleurs) et que je veux préserver l’accès au blog sans JavaScript pour les durs, les vrais, les tatoués ;-) Ma naïve défense est basée sur un pot de miel : un champ caché dans le formulaire de saisie de commentaire, invisible pour l’humain normalement constitué, qui ne peut donc être rempli que par un bot qui analyse les pages HTML.

Un blog plus respectueux

Je suis allé plus loin dans le respect de la vie privée sur le blog. Quand on laisse un commentaire, l’adresse e-mail a toujours été optionnelle. Elle sert à retrouver un avatar sur Gravatar et à informer les abonnés de la parution d’un nouveau commentaire pour un article. J’ai ajouté à mon gestionnaire de commentaires un mode privé qui désactive la fonction d’abonnement et se passe de l’e-mail. En fait, l’e-mail est résolu en avatar dans le navigateur avec quelques lignes de JavaScript et il n’est pas pas envoyé au serveur, donc jamais stocké.

Un blog plus statique

Un échange avec Bruno Adelé, qui fut l’initiateur du projet CaCause à une époque (déjà 5 ans) où les blogs statiques n’avaient pas d’autre alternative que Disqus, a titillé mon intellect. Bruno envisage de migrer son blog vers Hugo et d’utiliser le gestionnaire de commentaires staticman dont la particularité est de soumettre les commentaires par des pull-request GIT. Cela m’a rappelé le projet Pecosys qui avait une approche similaire : les commentaires étaient partie intégrante du blog, publiés dans GIT sous forme de fichiers au format Markdown et convertis en HTML par le moteur de blog Pelican.

Performances, Golang à la rescousse

Dans l’article précédent j’ai optimisé le système de gestion des commentaires Stacosys en : remplaçant le serveur HTTP de Flask par Sanic, un serveur HTTP Python tirant parti des capacités asynchrones de Python 3.5 et multi-processus (plusieurs workers) ajoutant un cache mémoire à la partie de l’API de Stacosys qui récupère le compteur de commentaires d’un article J’ai terminé sur une performance bien améliorée : plus de 11000 requêtes traitées en 1 minute un temps de requête moyen de 1,3 seconde une répartition du temps de traitement entre 81 ms et 18 secondes (assez élevé) 171 des requêtes (soit 1,5 %) avec un temps de traitement supérieur à 10 secondes L’architecture avec Sanic ressemble à ceci :

Flux RSS et esprit libre

J’ai réalisé que mon flux RSS est tronqué depuis ma migration sous Hugo et je viens de corriger le tir. Loin de moi l’idée de forcer les gens à venir sur le blog pour lire l’article en entier et ainsi gonfler mes statistiques (ridiculement basses) ou flatter mon égo. Mea culpa auprès du Planet Libre aussi d’avoir fourni un article tronqué. En cherchant des informations pour définir mon flux RSS correctement je suis tombé sur le blog d’un anglophone, appelons le Jim, qui dénonce le choix du développeur de Hugo d’avoir insidieusement glissé le passage d’un flux complet à un flux partiel au détour d’une version, sous le fallacieux argument que c’est ce que veulent la plupart des utilisateurs.

Performance Python Web

J’ai terminé l’article précédent en évoquant le système de gestion des commentaires Stacosys et sa mise en place sur le blog propulsé par Hugo. Il est installé sur le même serveur que le blog mais il pourrait tout à fait être déporté car le blog statique interagit avec lui par du code JavaScript qui envoit des requêtes RESTful afin de : récupérer le nombre de commentaires d’un article récupérer les commentaires d’un article soumettre un nouveau commentaire Avant de migrer vers Hugo, les commentaires étaient visibles seulement à l’intérieur des articles.

Migration du blog sous Hugo

J’ai remplacé le le moteur de blog statique Pélican par Hugo et à vrai dire, ce n’était pas prévu. Un peu cloué par le rhume pour le week-end, j’ai suivi la recommandation du médecin de rester tranquille. La cervelle fonctionnant encore un peu, j’ai consulté ma liste de projets pour l’année, vous savez cette liste mi-voeux / mi-résolutions qu’on établit en début d’année. En bonne place, j’avais noté “apprentissage ou perfectionnement dans un langage informatique”.

Du nouveau sur Pecosys

Pecosys est le gestionnaire de commentaires pour les blog statiques créés avec Pelican présenté dans ce billet en août dernier. Pour rappel, il s’agit de proposer une alternative aux systèmes décentralisés sur des sites tiers comme Disqus et de conserver ces données qui font partie de l’Histoire d’un blog dans les sources du blog. La présentation du projet a eu un petit succès d’estime. Je suis conscient que le public ciblé est réduit : du barbu (ou pas) qui écrit ses articles en Markdown, le construit en HTML statique gràce à Pelican et versionne les sources dans GIT.