Le dernier billet de l’année

Comme vos agrégateurs s’en sont certainement rendu compte, il ne se passe pas grand chose par ici ces derniers temps, et pour cause, je m’abandonne totalement à la douce nonchalance du vacancier.

Je profite d’un sursaut d’énergie suffisant pour me permettre d’écrire quelques lignes pour souhaiter à tous ceux qui tomberont sur cette page d’excellentes fêtes de fin d’année.

Petit clin d’oeil au passage, après une naissance discrète en intranet, Planet Sitadelle vient de voir le jour sur Internet et c’est tant mieux. Vous y trouverez une synthèse des blogs de quelques geeks qui travaillent chez le FAI qu’on choisit après avoir bien réfléchit… hmm…

Avant de finir ce billet, je ne peux m’empêcher de faire un petit lien anodin vers une page bien plus utile que l’ensemble de ma pollution webique, si le coeur vous en dit (et que votre portefeuille est d’accord) faîtes preuve de générosité.

Le jeu tecnoballz disponible pour sparc et i386

Le jeu tecnoballz, est désormais disponible pour les plateformes sparc et i386 sur mon dépôt.

Ceux qui ont la chance d’avoir un sparc à la maison sont très encouragés à tester la chose, en effet sur ma plateforme le jeu tourne convenablement mais nous ne sommes pas à l’abri d’un SIGBUS que je n’aurai pas vu. Tous les rapports de bugs sont donc les bienvenus ;)

Comme d’hab, pour vos sources.list, c’est là que ça se passe :

Pour i386:

deb http://www.sukria.net/debian ./i386/

Pour sparc:

deb http://www.sukria.net/debian ./sparc/

Bannissement de vieilles adresses

Cela fait maintenant un certain temps que j’ai annoncé à mes contacts d’oublier mon ancienne adresse mail alexis@sukria.net. Entre temps, j’ai découvert et utilisé le merveilleux filtre anti spam spamprobe et me suis donc servi de cette adresse pour éduquer le filtre.

Maintenant que le filtre est suffisamment éduqué pour filtrer convenablement les spams qui finissent chez moi, je vais purement et simplement rediriger cette adresse vers le point de non retour, j’ai nommé, le terrifiant /dev/null, et pour preuve :

Dec 16 08:28:39 chronos postfix/local[8204]: D0832279: to=<alexis@sukria.net>, relay=local, delay=9,
status=sent (delivered to file: /dev/null)

De même, j’ai découvert que les spammeurs, dans leur grande bêtise, me spamment sur une adresse qui n’a jamais existée : xis@sukria.net. Je suppose qu’un mauvais aspirateur aura mal parsé une page web et omis de remonter les trois première lettres de mon prénom… Bref, tout ça pour dire qu’elle aussi va direct chez mon pote /dev/null.

Cela économisera des precieuses secondes et contribura à réduire la charge globale de chronos ce qui n’est pas du luxe…

17/12/2004, 8:38
En continuant mes investigations postfixiennes contre le spams, je viens de trouver quelque chose de magique, c’est le mot :

Quelque part dans /etc/postfix/main.cf :

smtpd_recipient_restrictions = permit_mynetworks,
    reject_unauth_destination,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client sbl.spamhaus.org,
    reject_rbl_client list.dsbl.org,
    reject_rbl_client dnsbl.njabl.org,
    reject_rbl_client relays.ordb.org,
    reject_rbl_client opm.blitzed.org,
    reject_rbl_client dnsbl.sorbs.net,
    permit

Ces quelques restrictions demandent à postfix de vérifier l’adresse IP émétteur du mail dans les bases de données des sites listés (spamcop.net, spamhaus.org, …) et si l’ip est référencée comme utilisée par les spammeurs, postfix refuse le mail :

Dec 17 08:28:15 chronos postfix/smtpd[17041]: connect from unknown[218.17.119.20]
Dec 17 08:28:23 chronos postfix/smtpd[17041]: NOQUEUE: reject: RCPT from unknown[218.17.119.20]:
554 Service unavailable; Client host [218.17.119.20] blocked using dnsbl.sorbs.net; Dynamic IP Address See:
http://www.dnsbl.sorbs.net/lookup.shtml?218.17.119.20; from=<eoghan@porscheemail.com> to=<xis@sukria.net>
proto=SMTP helo=<porscheemail.com>

Cela réduit considérablement le nombre de mails qui vont entrer dans mon filtre et donc, évite à mon spamprobe de travailler pour des mails nécessairement connus comme spams.

Je commence à comprendre pourquoi tom ne jure que par postfix !

Du SPARC au boulot

Eh bien ça y est, la vieille station Sun Ultra 5 qui trainait dans la salle machine a fini sur mon bureau, une occasion à ne pas manquer pour tester la dernière version de l’installateur Sarge pour sparc.

Bilan de l’installation : un régal, à part les petits détails propres aux machines Sun tel que [Stop A] boot cdrom que l’on m’a soufflé à l’oreille, tout s’est déroulé sans acro.

Une petit clin d’oeil à Bruno avant de terminer ce billet : je vais maintenant pourvoir compiler tecnoballz pour sparc ;)

Comment déboguer du Perl selon Brian D. Foy

Un petit article précis et concis sur l’art et la manière de bien étudier un code Perl qui ne marche pas. On y trouvera une liste d’étapes à observer avant d’aller embêter son chef ;)

L’article, bien que court, ne manque pas d’humour : une des dernières étapes de la correction du code consite à « parler à l’ours en peluche »…

Un des principaux conseils de cette documentation, très pertient, invite le programmeur à constamment se remettre en cause : Cela n’est pas personnel, n’essayez pas d’adapter Perl à vos habitudes, mais adaptez-vous à Perl..

De plus, l’article a été publié en français dans la revue “Linux Dossiers” 2, avril/mai/juin 2004.

Bienvenue à Melkor !

C’est avec plaisir que je vais rajouter de ce pas un nouveau lien dans ma boîte-à-blogues-de-potes : celui qui vous emmenera direct chez Melkor.

Je partage avec Melkor, notamment un openspace chez Cegetel, mais surtout une passion pour la musique (j’insiste, je parle bien de musique) et plus particulièrement pour le Métal.

Vous trouverez donc chez ce mossieur quelques news concernant le monde – parfois tragique – du métal.

Keep on rocking !

DBI, je t’ai dit de la fermer, nan mais !

Programmer un script Perl qui se connecte à une base de données est très simple en Perl avec l’interface DBI. Mais lorsque vous voulez contrôler intégralement les sorties écran que va produire votre script, les choses deviennent vite complexes.

En effet, DBI va sans hésiter polluer vos descripteurs de sortie STDOUT et STDERR dès qu’un problème surviendra (problème de connexion, requête échouée, …).

Cela est peut-être pratique pour un script maison, mais pour quelque chose de propre, qui pourra se targuer d’être agréable à l’utilisation, c’est très gênant. Que pensez vous de la réaction d’un utilisateur lorsque celui-ci se trouve confronté à un message du type :

DBD::mysql::db do failed: Access denied for user: 'user@localhost' to database 'mydb' at script.pl line 1,  line 9.

Cela n’est guerre accueillant comme message d’erreur, et dans le genre j’explique clairement à l’utilisateur ce qui se passe, on a vu mieux.

Voici une solution qui permet d’utiliser DBI et de controler totalement les sorties d’erreurs, libre à vous ensuite d’afficher un message pertinent dans le contexte du programme que vous évrivez.

handler DBI

Nous voulons garder pour nous STDOUT et STDERR, nous allons donc désactiver les deux type d’erreurs de DBI. Cependant, il nous faut être informé qu’une erreur a eu lieu, et si besoin pouvoir donner le message d’erreur de DBI.
Pour cela, nous demandons à DBI de mourrir dès qu’un problème survient mais de ne jamais écrire quoi que se soit par lui même :

DBI->connect($dsn, $name, $password, {PrintWarn => 0, PrintError => 0, RaiseError => 1});

Attraper les die()

Il ne nous reste plus qu’à attraper les die() au moyen d’un eval et de tester la variable $@ qui vaudra le message d’erreur fourni à die() :

eval '$dbh->do($sql)';
if ($@) {
    # erreur lors de la requête
}
# succès

Par commodité, on pourra écrire un wrapper vers $dbh->do() de la forme suivante :

sub dbi_do
{
        eval '$dbh->do(@_);';
        return 0 if $@;
        return 1;
}

backup-manager 0.5.5 est sorti

Toujours pareil, ce blog va finir par devenir le blog de backup-manager !

Encore une release donc, qui se consacre à améliorer l’interaction avec l’utilisateur, notamment et surtout : l’utilisation de gettext pour pouvoir supporter plusieurs langues dans les messages de sorties.

Pas mal de petits bugfixes, quelques options en plus et un nouveau système de nettoyage beaucoup plus performant qu’avant puisque récursif ;)

Bien évidemment, les nouvelles options sont configurable dans debconf, via un discret dpkg-reconfigure.

Je vous conseille de vous référer à la page du projet pour de plus amples détails.

backup-manager 0.5.4 est sorti.

Eh oui, encore une release de backup-manager !

Au progamme : une meilleure façon de graver les CD : on utilise un pipe pour graver directement l’image plutôt que de la stocker en transition sur le disque.

Désormais chaque archive générée a un MD5 checksum associé ce qui permet une vérification de chaque fichier gravé et assurer si oui ou non les archives gravées sont fiables.

Et puis du nettoyage dans le code :)

Pour ceux qui veulent plus détails, je vous invite à lire la note de sortie sur la version anglaise de ce site.

La publication Freshmeat est en attente de validation à l’heure où j’écris ces ligne.

On trouvera également une discussion intéressante (en français) sur les dernières nouveautés de backup-manager sur mon journal linuxfr.

Debian en vrac

Pour bien commencer la journée (et le mois), et comme il y a deux trois choses intéressantes à dire, voici un petit amas de nouvelles Debian désordonnées :

Feed RSS Debian
Il est possible de suivre les Debian Weekly News via un feed RSS grâce au site GMANE (qui propose d’ailleurs beaucoup d’autres feed RSS de mailing lists).

Bug Squashing Parties
Pour accélérer la finalisation de sarge, une BSP été organisée ce weekend afin de corriger le maximum de bugs “Release Critical” (ces fameux bug qui bloquent des paquet pour une release). Nombre de ces bugs furent corrigé ce weekend. Des photos ont été prises lors de la BSP de nos amis allemands.

GNOME 2.8 et KDE 3.2 dans Debian
Andreas Barth annonce que GNOME 2.8 a été accepté dans sid grâce à la très bonne réactivité de ses mainteneurs, l’arrivée dans sarge pourra donc se faire selon les mécanismes habituels.

De plus, KDE 3.3 ne remplacera pas KDE 3.2 dans sarge car la version 3.3 possède quelques bugs “Release Critical” (bloquant pour la sortie de sarge donc) et les mainteneurs n’ont pas proposé de solution pour les fermer. La version 3.2 sera donc celle de sarge afin de ne pas retarder inutilement la sortie.

OpenOffice 1.9
Chris Halls a annoncé la sortie de paquets expérimentaux d’OpenOffice.org 1.9.62 comme preview de la version 2.0.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes