Archive for February, 2006

Recherches case insensitive avec Xapian

Tuesday, February 14th, 2006

Une réponse technique bien interessante sur la question par Olly : http://article.gmane.org/gmane.comp.search.xapian.devel/594

Passer le contenu d’un fichier en minuscule

Monday, February 13th, 2006

En deux coups de cuillère à pot :

cat artist.txt| tr 'A-Z' 'a-z' > artistlc.txt

(Merci Johan et Sam ;-))

Do you Splunk ?

Friday, February 10th, 2006

Découvert via une bannière sur sourceforge.net, Splunk me parait être une innovation vraiment formidable :

Splunk is the new way to see inside the data center. It’s search software that indexes all your fast moving IT data as it happens. From one place, make sense of logs, configuration files, message queues, JMX, SNMP and database transactions from any system, application or device.

Quelle perte de temps et d’efficacité effectivement de devoir gérer ses logs via des consoles totalement inadaptées à ce type de besoin.
Bien sur il existe des logiciels d’alerte type Tivoli d’IBM, mais à quel prix !!
Splunk me parait tout à fait adapté aux besoins des projets open source de taille moyenne. J’espère le tester dans les prochains jours et donner un avis plus complet sur ce produit.
Bonne nouvelle, il y aurait meme une version free ;) : “Splunk Server is the free edition of Splunk, which allows for indexing up to 500 MB per day.

Pagination générique en PHP

Friday, February 10th, 2006

Si il y a bien quelque chose dont j’ai horreur, c’est de devoir réinventer la roue !
J’avais besoin d’un petit composant de gestion de pagination en PHP pour paginer les résultats d’un moteur de recherche. Après quelques recherches Google, j’ai trouvé PaginateIt qui me convient parfaitement.

Cette petite librairie fournit une classe bien documentée permettant de faire tout ce qui est nécessaire dans ce domaine. C’est pratique et ca fait ce qu’on lui demande, donc c’est adopté !!

Exemple d’utilisation :

$PaginateIt = new PaginateIt();
$PaginateIt->SetItemCount($xml['Matches']);
$PaginateIt->SetItemsPerPage($HITSPERPAGE);
$PaginateIt->SetLinksFormat( ‘< < Précédente', ' • ', 'Suivante >>’ );
$pagination = $PaginateIt->GetPageLinks();

Il reste ensuite à insérer le code HTML “$pagination” à l’endroit voulu, à gérer la variable “$page” passée en URL pour naviguer au sein de son recordset de données et le tour est joué !

Moteurs de templates PHP

Wednesday, February 8th, 2006

Les moteurs de templates PHP ne manquent pas, mais chacun n’offre pas le même service !!!
J’ai lu que Flickr.com utiliserait Smarty, est ce le meilleur choix ?

Pour ma part, j’avais deja choisi Flexy pour la génération de mails (texte + html). Flexy offre de très bonnes performances et un langage de templating très simple.

Norbert fait remarquer que Flexy ne supporte pas la lecture de valeurs dans des tableaux associatifs. C’est un mal, je lui accorde, cependant il est très simple de contourner ce problème. Ce n’est pas très joli, mais en utilisant une user defined function au sein du template, on y arrive !!
Exemple :

Dans le controller PHP :

class TemplateValues {
function getValue($arr, $key) {
return $arr[$key];
}
}

Et dans le template HTML :

{getValue(record,#name#)}

Donc pour le moment, c’est Flexy pour moi !!