La magie du perl ?

Pour mon employeur actuel, je suis amené à écrire pas mal de code en Perl. C'est un langage je j'apprécie moyennement, notamment pour la raison suivante.

Il y a quelques jours, j'ai cherché comment stocker une référence sur une méthode de classe. Technique relativement commune, j'ai d'abord écrit quelque chose dans ce goût là:

#!/usr/bin/perl -w

package test;

sub new { return bless {}; }

sub hello {
  my $self = shift;

  print "Hello $self\n";
}

package main;

$t = test->new();
$ref = \$t->hello;

$ref->();

Dans le cadre d'une méthode, ce code est incorrect. Au lieu de ...

Avec de la couleur tout va mieux

Peut-être l'avez vous déjà remarqué mais les extraits de code présentés sur ce blog sont en couleur. La coloration syntaxique est, de mon point de vue, un élément indispensable pour faciliter la lecture du code source.

Cette coloration est gentiment fournie par Pygments et son utilisation dans zinnia en mode restructuredtext se fait de la manière suivante :

  • Récupérer le fichier contenant l'instruction sourcecode fournie avec pygments,
  • Le copier quelque part au sein des sources de votre blog,
  • Importer le contenu de ce module dans le fichier __init__.py situé à la racine :
from rst_directive import *
  • Extraire l'un ...

Rédiger ses billets avec classe

Zinnia offre la possibilité d'écrire des billets avec autre chose que de l'HTML. Il supporte plusieurs languages (parce que Django le vaut bien) comme, par exemple, le ReStructuredText.

Certains se demanderont peut-être quel est l'intérêt d'utiliser une syntaxe aussi archaique. D'un point de vue tout à fait personnel, j'en vois plusieurs :

  • Comme tout bon pythonista qui se respecte, j'écris de la documentation en utilisant cette syntaxe. Ce qui est cool en faisant cela, c'est que je peux par la suite utiliser Sphinx pour générer de la belle documentation,
  • C'est lisible, le ...

Indiquer à amavisd ce qu'il doit filtrer

Pour les besoins de ma boite actuelle, j'ai mis un peu de temps (trop à mon goût) à retrouver la manière d'indiquer à Amavisd de ne pas filtrer les emails sortant.

Outre le fait de désactiver tout filtrage pour la policy bank MYNETS:

$policy_bank{'MYNETS'} = {
    # Trucs avant...
    bypass_spam_checks_maps   => [1],
    bypass_banned_checks_maps => [1],
    bypass_header_checks_maps => [1],
};

il faut aussi indiquer à Postfix d'utiliser l'extension XFORWARD lorsqu'il cause avec amavisd. Extrait de mon fichier master.cf:

smtp-amavis unix        -       -       n       -       2       smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes

On redémarre les services et le tour est joué!

Ménage d'automne

Ménage d'automne

Je l'avoue, j'ai quelque peu laissé tomber mon blog ces derniers temps. Manque de temps, de motivation et je ne sais quoi encore mais tout ça c'est terminé!

Pris par une soudaine envie de partager mes connaissances (un peu comme l'autre envie bien connue...), j'en ai profité pour dépoussiérer mon blog :

  • Passage de Wordpress à une solution qui me ressemble plus : Django CMS + Zinnia,
  • Changement du thème graphique pour quelque chose de plus sobre,
  • Nettoyage des billets inutiles (oui, il m'arrive d'en faire),
  • Déplacement des billets concernant Modoboa au sein du site de ...
Page 1 sur 3 1 2 3 »