Fantomas’side

Weblog open-source

Archives pour le tag : blog

Flux RSS de blog

Migration des blogs de Libération.fr sur Zinnia

Depuis maintenant 1 an et demi, en tant que développeur, je travaille pour le site internet Libération.fr, du journal du même nom.

Les problématiques sont variées et l'exigence technique au rendez-vous. Grâce à une équipe sympathique et compétente, on a le temps et les moyens de faire de la qualité dans notre travail, le tout dans un environnement particulier, celui d'un quotidien national.

Il y a quelques semaines, suite à de nombreux échanges et écueils techniques, nous avons décidé de migrer les quelques 350 blogs de Libération hébergés chez Typepad, vers une nouvelle plate-forme qui devra être plus adaptée à nos besoins.

Étant spécialistes Django nous avons donc décidé d'utiliser Zinnia, la solution de blogs développée par mes soins, afin de bénéficier ainsi de mon expertise dans le domaine et du retour d'expérience des centaines de blogs déjà déployés sur cette solution.

Une des exigences technique, fut de n'avoir qu'une seule instance Django pour faire tourner toutes les instances de blogs. Car il est inenvisageable pour des raisons de maintenance et de ressources, de devoir installer une nouvelle instance Django à chaque ouverture de blog.

Zinnia étant modulaire et extensible, l'application a donc servi de socle au projet, puis fût paramétrée et enrichie afin de satisfaire aux besoins d'une plate-forme multi-blogs.

Donc autour de Zinnia, j'ai développé plusieurs applications aux fonctionnalités spécifiques, dont on peut citer :

  • le mécanisme pour rendre Zinnia multi-blogs.
  • l'éditeur de contenu, basé sur redactor.  ...

Continuer la lecture

Le temps des releases : django-blog-zinnia

Incroyable, après presque 2 ans d'attente, Zinnia l'application Django propulsant ce blog est enfin publiée sur un dépôt public. 

Le premier article faisant référence à Zinnia date en effet du 16 Novembre 2008.

Beaucoup d'évolutions ont été apportées entre cette première version réalisée à titre personnel et celle qui gère le site actuellement. Ceci explique en partie mon manque d'activité sur le site.

Au final, j'en ai profité pour mettre à jour le code du site en utilisant la version de développement et refondre le skin du site, un peu trop sombre et vieillissant à mon goût.

Maintenant, concentrons nous sur notre sujet. Tout d'abord le code source de Zinnia est disponible sur GitHub, ce qui facilite le travail communautaire, donc si vous voulez participer, forker ou télécharger, aucun problème, vous y êtes même encouragé.

Lors de la publication du code source, je me suis efforcé de documenter un maximum les fonctionnalités ainsi que l'installation, donc pour présenter le projet je vais me baser sur ces documents.

Tout d'abord, qu'est-ce-que Zinnia ou django-blog-zinnia exactement ?

Zinnia est une application générique pour gérer un blog à travers un site en Django. Elle a été conçue pour publier des articles et le faire efficacement ! De manière générale toutes les fonctionnalités qui peuvent être fournies par une autre application réutilisable écrite en Django ont été mises de coté. Pourquoi réécrire ce qui a déjà été testé et approuvé par les autres ?

Mais plutôt qu ...

Continuer la lecture

Stop aux spams sur django.contrib.comments

Depuis quelques jours, les formulaires de commentaires fournis par l'application django.contrib.comments dans la distribution de Django, sont devenus vulnérables aux spams.

L'application comments contient par défauts plusieurs sécurités pour éviter le spamming, comme un honeypot et la vérification du temps de saisie du commentaires.

Malgré cela les équipes de spammer sont très réactives, et coder un bot spécifique pour les sites django utilisant ce système de commentaires, rend tous ces sites vulnérables.

En parallèle de cela, dans la version 1.1b de Django, l'application comments acquiert une nouvelle fonctionnalité, qu'est la modération automatique. L'envois de mails en cas de commentaires, et aussi prise en charge.

J'en ai donc profité pour développer une protection contre le spam plus efficace basée sur Akismet à partir de cette nouvelle fonctionnalité.

"""Moderator of Entry comments
   Based on Akismet for checking spams
   Need to override the default Moderator,
   for getting request in parameters."""
from django.conf import settings
from django.utils.encoding import smart_str
from django.contrib.sites.models import Site
from django.db.models import signals
from django.contrib import comments
from django.contrib.comments.signals import comment_will_be_posted
from django.contrib.comments.moderation import Moderator
from django.contrib.comments.moderation import CommentModerator

from django.conf.settings import MAIL_COMMENT
from django.conf.settings import AKISMET_COMMENT

AKISMET_API_KEY = getattr(settings, 'AKISMET_API_KEY', '')

class EntryCommentModerator(CommentModerator):
    """Moderate the comment of Entry"""
    email_notification = MAIL_COMMENT
    enable_field = 'comment_enabled'

    def email(self, comment, content_object):
        if comment.is_public ...

Continuer la lecture

Changement d'adresse et migration sur Django

Cela va faire 3 ans que j'ai souscrit à mon hébergement gratuit chez 1and1, 3 ans de bons et loyaux services, mais cette période est terminée.... C'est aussi pour cela que j'ai perdu mon nom de domaine en .info.... 

Donc le site change d'adresse, et deviens http://fantomas.willbreak.it, mettez à jours vos bookmarks :)

Je décide donc de migrer chez un autre hébergeur, celui même qui me permet d'héberger mes projets en Python, Upasika et je me dis que dans la foulée pourquoi ne pas changer de solution de blogging, étant donné que Wordpress demande pas mal d'entretiens, de customisation, et deviens peu à peu une machine à gaz, alors que j'utilise que certaines fonctionnalités la majorité du temps....

J'ai donc décidé de changer le design en passant et d'utiliser mon moteur de publication appelé Zinnia pour assurer la transition.

Pour conservé les anciennes données, j'ai écrit une moulinette Django me servant à migrer de Wordpress vers Zinnia, et écrit en parallèle un tutorial (qu'il me reste à publier) expliquant la manipulation.

En espérant que cela vous plaira !