L'appartement

Aller au contenu | Aller au menu | Aller à la recherche

mardi, novembre 3 2009

Génération de graphiques de bilan énergétique avec Imagemagick

Dans le cadre de la réalisation du site d'une agence immobilière, J'ai codé une petite classe en PHP qui permet de générer les graphiques des bilans de performance énergétique.

Il s'agit simplement de placer correctement l'indicateur de valeur au bon endroit sur le graphique. Via l'excellent programme ImageMagick, j'effectue donc le "montage" entre l'image source et l'indicateur. La subtilité réside dans le calcul permettant le placement correct sur la bonne "lettre" (A,B,C,D,E,F). L'échelle de valeur n'est en effet pas progressive.

Bilan Energetique Montage

Vous pouvez télécharger cette classe ou générer vos graphiques sur la page dédiée.

J'en ai profité pour me lancer dans l'apprentissage de git en lieu et place de subversion et je ne suis pas déçu ! J'ai du même coup commencé à héberger certains projets sur github.

mardi, octobre 13 2009

Une nouvelle version du script de mailing avec gestion des bounces

Disclaimer : Ce programme reste en version beta. Je l'utilise en production mais pas la peine de m'insulter si vous ne parvenez pas à l'utiliser !

Je suis heureux de proposer enfin une nouvelle version de mon script de mass mailing et d'analyse des bounces en PHP (CLI). Il y a pas mal d'améliorations et de corrections par rapport à la version précédente.

On peux déjà noter que pour plus de lisibilité, j'ai développé un mini-site avec pas mal d'informations utiles sur la chose.

Une des autres principales nouveautés réside dans l'analyse des mails invalides, via les « bounces ».

Rien n'est plus problématique qu'une liste d'abonnés à moitié fausse ! Il est de plus en plus fréquent que les fournisseurs blacklistent des adresses IP qui tentent d'expédier beaucoup trop de messages à destination d'adresses inexistantes.

Pour cette fonctionnalité, j'ai choisi d'analyser la boite qui reçoit les erreurs (celle précisée par l'entête return-path du mail).

Tant que tous les serveurs de mail ne se donneront pas la main pour chanter en cœur ne respecteront pas les RFCs à ce sujet, je ne pense pas qu'il y aura d'autre solution efficace !

Je me suis basé sur une classe trouvée sur Sourceforge [1] et mon collègue Zas a pas mal bricolé sur cette partie (corrections de bugs et optimisations) en plus des corrections sur le reste de sendNews ;)

Cette version de sendNews est depuis quelques temps en production et je suis assez satisfait du résultat. Il manque un certain nombre de règles d'analyse des bounces pour être réellement exhaustif. Quoiqu'il en soit, mes listes de diffusion ne contiennent pas un nombre beaucoup trop important d'adresses non valide.

Tous les feedbacks sur ce script sont les bienvenus !

Le site mini-site sendNews

Précédemment sur le même sujet

Notes

[1] Le développement de cette classe (bmh) a repris sous la houlette des créateurs de PHPMailer, je n'ai pas encore eu le temps d'apprécier le refactoring qui a été réalisé

lundi, septembre 28 2009

Documentation de certaines variables d'Amavisd-new

Une des particularités intéressantes d'Amavisd-new est de permettre le stockage des règles de filtrage dans une base de données (*SQL, LDAP... Mysql dans mon cas). Ceci est particulièrement pratique lorsqu'on souhaite appliquer une configuration différente par utilisateur et/ou par domaine concernant l'analyse antispam/antivirus.

Il existe plusieurs interfaces web pour la gestion de ces réglages. Cependant, souhaitant intégrer cette fonctionnalité à un panel déjà existant, j'ai développé la mienne (script non distribuable en l'état)

Pour cette réalisation, il était nécessaire de récapituler, en français, le rôle des différentes variables disponible. Voici le résultat. La version sous forme de tableau associatif PHP est à peine différente dans les formulations. Peut-être utile pour une personne souhaitant développer une interface de ce type.

Lire la suite...

jeudi, mars 5 2009

Script pratique : rechercher/remplacer/patcher comme vous voulez

Dans votre vie quotidienne de développeur et/ou d'administrateur système vous êtes sans doute confronté à la nécessité de rechercher et remplacer des motifs par lots.

L'utilisation conjointe d'une multitude d'outils le permettent efficacement sous GNU/Linux : find, grep, sed, awk, perl, diff, patch... Votre éditeur préféré possède sans doute également ce type de fonctionnalité.

Le remplacement doit parfois être assorti d'une vérification visuelle et d'une validation manuelle des différentes occurrences. Si vous changez l'intégralité de vos serveurs de nom dans les fichiers de zone de BIND, vous ne souhaitez sans doute pas qu'un de vos sites à la configuration tordue ne fonctionne plus ?

Partant de ce constat, mon collègue Zas[1] a sympathiquement concocté un script en pure bash habilement nommé search_replace ! C'est un savant mélange de find, sed, awk, diff(color) et patch qui a l'avantage de la simplicité (3 ko tout mouillé).

Comment ça marche ?!

  • On recherche un pattern donné sur un répertoire (exemple, la chaine « ma chaine » sur les fichiers .php du répertoire /var/www)
  • Pour chaque occurrence, un diff - en couleur, si vous avez installé colordiff - et dans le contexte vous permet de visualiser les changements qui seront appliqués
  • A chaque étape, vous choisissez :
    • d'accepter ou pas cette modification et de passer à l'occurrence suivante
    • de modifier manuellement via votre éditeur préféré VIM
    • d'annuler les actions en cours
  • Vous pouvez bien sur choisir de remplacer le tout sans confirmation ni vérification
  • Au final, vous choisissez d'appliquer les modifications ou de garder le patch pour plus tard.
  • Cerise sur le pompon, l'utilisation du patch vous permet de revenir sur les modifications si vous avez tout cassé !

Télécharger search_replace (tar.gz / 3ko)

Notes

[1] Je vous invite à essayer geeqie, co-développé par Zas