Ne rien modifier en cas de DUPLICATE KEY

Dans certains cas de figure on peut souhaiter d’insérer un record et n’effectuer aucun changement si les informations sont déjà présentes.

Un exemple concret est l’entretien d’une table d’adresses email erronnées qui peut être utile lorsqu’un hébergeur a pour politique de bloquer les envois pour éviter le spam.

Lire la suite

Faire co-habiter jQuery et Mootools

Je me suis de nouveau ré-intéressé aux mécanismes qu’offre Ajax et cela m’a mené à tester quelques scripts utilisant des bibliothèques Javascript tel que jQuery et Mootools. Pour un projet j’ai récupéré deux scripts et c’est alors que je me suis rendu compte de la possibilité de conflit. On peut trouver quelques informations sur Google à ce propos.

Lire la suite

L’affichage en UTF8

Ceux qui ont été confrontés aux problèmes d’encodage de caractères peuvent confirmer que cela peut présenter un véritable casse-tête.

Ce fut le cas hier lorsque j’ai découvert qu’une nouvelle version d’un script imposait l’utilisation de l’utf8. Le résultat c’est que le symbole de l’euro s’affichait sous forme d’un diamant noir et les caractères accentués étaient également transposés sous forme d’autres caractères. Il fallait donc trouver une solution.

Lire la suite

Transformer un ResultSet en ArrayList

La possibilité de transformer un ResultSet en ArrayList est particulièrement intéressante, surtout dans le contexte d’un DAO (Data Access Object) lorsqu’on souhaite récupérer une liste d’objets. Voici un exemple code source qui permet d’effectuer cette transformation.

Lire la suite

Assainir une source HTML avec HTMLPurifier

Pour valider du texte riche (balises html) on m’a recommandé la bibliothèque HTMLPurifier. Première visite sur le site officiel et les promesses semblaient au rendez-vous. La nécessité d’avoir PHP5 n’était pas un souci car facilement changeable auprès de l’hébergeur via un .htaccess.

Ce fut alors que j’ai découvert qu’il y a très peu d’exemples pour s’inspirer et la documentation est assez lourde. J’ai donc passé une journée à essayer de comprendre comment cela fonctionnait avant d’aboutir au code suivant:

Lire la suite

Aller des solutions simples vers les solutions complexes

On m’a demandé récemment d’ajouter un système de commentaires sur un site. Je pensais utiliser de l’ajax, voire employer jQuery, mais j’ai vite accumulé un retard en raison d’un conflit avec d’autres scripts. Il était difficile de justifier cela auprès du demandeur qui voyait peu de différences avec d’autres commentaires utilisant un simple POST.

Par ailleurs, j’ai également pris un retard pour la démo d’une application Swing en voulant appliquer des bonnes pratiques en matière de threads et data binding. Au final, de simples appels vers des classes services et des remises à zéro de TableModel auraient suffit pour montrer l’avancement.

En conclusion, je dirais qu’il est préférable de viser une solution simple au début d’un projet pour rapidement produire une application qui corresponde aux spécifications données. D’une part, cela permet de rassurer la personne à qui est destinée le travail. Car elle n’a pas nécessairement l’inclinaison, les connaissances et le temps pour se pencher sur les détails. D’autre part, cette approche fournit une base de départ que l’on peut améliorer par la suite.

– James Poulson.