Patrice Ferlet
Patrice Ferlet
Créateur de ce blog.
Publié le avr. 21, 2013 Temps de lecture: 3 min

Me suivre sur Mastodon

Reprise du blog avec NodeJS

Vous avez remarqué ? nouveau blog, nouveau design, et surtout nouveau langage: NodeJS (javascript) avec une base mongo. Le tout avec mon middleware nommé Knotter. Je me permet donc de vous présenter le renouveau et certainement un peu plus de contenu puisque de désormais je pense qu’il va bien mieux marcher. Laissez moi vous expliquer…

Cela faisait des mois, que je ne touchais plus mon blog. Il faut dire que j’ai pas eut le temps, d’une part, mais aussi que ce vieux coucou tourne depuis presque 6 ans sur un Copix 3 (vous vous souvenez ?) en PHP. J’avais beau avoir fait le maximum à l’époque, les méchants spammeurs ont pris le dessus et m’ont pollué mon site de commentaires bien dégueulasses… En plus de ça, le conteneur qui était là pour tenir le site en éveil s’en prend plein la poire (d’ailleurs ça j’ai pas encore tout réglé). Mais depuis quelques jours, je me suis relancé sur le projet. D’abord parce que je développe depuis quelques temps un middleware (un genre de microframework) nommé Knotter

. But de la manœuvre: avoir un truc qui fasse un peu comme le WSGI via Python, mais en Javascript.

Le projet lancé, je me suis attelé à reprendre mon blog… pas mal d’étapes ont dut être effectuées pour remettre au propre le site.

En premier lieu, virer le spam ! Tenez vous bien: 97% des commentaires sur le site était du spam. Dingue non ? Alors j’ai commencé par:

  • passer un export de la base MySQL dans MongoDB (avec un script python qui sérialisait mes tickets + commentaires en un document JSON)
  • faire un module de calcul “Bayesien”, un coup d’apprentissage et il a pas mal classé le bordel
  • nettoyer un peu mes billets qui étaient écrit en “wiki” => or voilà, node n’a rien pour ça, je me suis donc tapé un module à la main qui fait tout ça

Ensuite, j’ai recherché les modules qui pouvaient me rendre service:

  • “feed” pour créer un fil RSS propre
  • “swig” pour le moteur de template (vraiment génial, proche de Twig pour PHP ou Jinja2 pour Python)
  • “emailjs” pour ajouter (enfin !) un système de notification email en cas de réponse à un commentaire
  • “sitemap” pour créer un bon sitemap rapidement

et j’en passe…

Je me suis dit aussi: “rendons le site responsive”, et j’ai beau aimer le bon vieux Twitter Bootstrap, j’ai préféré épurer mon travail en utilisant “Skeleton”, un outil généralissime qui est “style agnostique”, ce qui veut dire qu’il ne me donne que la partie intéressante: les layouts.

J’ai calculé, pour créer le site, à savoir:

  • 3h pour les modules (ticket, page statique, rss, sitemap, connexion à la base mongo…)
  • 1h pour le montage HTML et styles (oui je sais ça se voit…)
  • 2h pour le classement des spams

Reste que je vois encore des spammeurs me faire chier… je vais vérifier si mon filtre auto fonctionne. Et au fur et à mesure je vais améliorer tout ça. J’espère que cette fois-ci le site arrêtera de se planter misérablement tous les jours (parfois pendant plusieurs heures) et que je pourrais vous délivrer rapidement tous mes modules.

A savoir que désormais, le site tourne entièrement en Javascript (ou simili):

  • nodejs coté serveur
  • mongodb pour les datas
  • un peu de js brut pour le site

Du coup, un seul langage pour un site, je vous assure que ça le fait. Niveau perf je suis pas mal non plus… Voilà pour l’info.

comments powered by Disqus