Monthly Archives: mai 2012

Monthly Archives: mai 2012

Supprimer les accents d’une phrase avec Java6

Supprimer les accents d’une phrase avec Java6

Au cours d’un développement, il arrive qu’il soit nécessaire de supprimer les accents d’une chaine de caractère. S’il faut développer soit-même la solution autant dire que la tâche peut se révéler complexe si on souhaite faire les choses bien.

Heureusement Java propose une solution élégante directement disponible dans le JDK depuis la version 6. Il s’agit de la classe java.text.Normalizer.

La classe Normalizer permet de décomposer les caractères composites en caractères unicode. En clair, cela signifie qu’un caractère accentué est divisé en 2 caractères: le 1er non accentué, puis un second correspondant à l’accent. Le caractère: ‘ê’ sera ainsi décomposé comme suit: ‘e’, ‘^’.

Le premier exemple ci-dessous permet de normaliser une chaîne de caractère selon la norme définie à l’adresse suivante: http://www.unicode.org/reports/tr15/tr15-23.html#Decomposition

public static String normalize(String input) {
  return Normalizer.normalize(input, Normalizer.Form.NFD);
}

Le deuxième exemple, ci-dessous, permet de normaliser la chaîne de caractères, puis de supprimer l’ensemble des caractères représentant les accents des caractères décomposés:

public static String stripAccents(String input) {
  return Normalizer.normalize(input, Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}

Comment souventen Java, mieux vaut ne pas essayer de refaire la roue, le JDK offre souvent une solution efficace, et de nombreuses librairies permettent souvent de répondre à vos besoins permettant ainsi de se concentrer un peu plus sur l’objectif de votre développement et d’éviter de perdre du temps sur des détails techniques.

Ajoutez vos flux Twitter et Delicious sans plugin dans WordPress

Ajoutez vos flux Twitter et Delicious sans plugin dans WordPress

J’ai toujours trouvé laborieux la recherche de plugins pour WordPress. On ne sait pas ce qu’on installe et le résultat est souvent loin de ce qu’on attend. Autant dire qu’il est parfois plus efficace de faire le job soi-même. Le résultat obtenu est parfois meilleurs et ce en peu de temps.

En cherchant un plugin pour afficher dans la sidebar du blog la user timeline de mes tweets ou bien mon feed Delicious, j’ai souvent eu de mauvaises surprises liées au performances: Page qui bloque au chargement plus ou moins longtemps dans le meilleurs des cas, voir page qui plante lorsque le chargement côté serveur n’aboutit pas ou bien lorsque le javascript est mal codé.

1. Intégrer un widget Twitter

Pour cela rien de plus simple, il suffit d’ajouter un widget de type texte et d’y coller le contenu suivant:

<div id="twitter_div">
  <ul id="twitter_update_list"></ul>
  <a href="http://twitter.com/alexiskinsella" id="twitter-link" style="display:block;text-align:right;">follow me on Twitter</a>
  <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
  <script type="text/javascript" src="https://twitter.com/statuses/user_timeline/alexiskinsella.json?callback=twitterCallback2&include_rts=1&include_entities=0&contributor_details=0&exclude_replies=1&trim_user=1&count=8">
  </script>
</div>

N’oubliez pas de personnaliser au mieux les options afin d’éviter de récupérer du contenu qui ne sera de toute façon pas affiché!

2. Intégrer un widget Delicious

<script type="text/javascript" src="http://feeds.delicious.com/v2/js/akinsella?title=&count=12&sort=date&name&showadd"></script>

Cerise sur le gâteau, l’intégration des 2 scripts précédents n’ajoute aucun style au HTML généré, et si votre thème est correctement développé, le résultat sera naturellement intégré avec celui-ci.

Ces deux scripts sont plutôt performants et votre blog ne souffrira que peu de leur ajout dans le rendu de votre page. Delicious a souffert pendant longtemps de problème de performances, ceci semble ne plus être le cas, et le script se comporte très bien. Cependant à toutes fins utiles, placez plutôt ces scripts dans la sidebar de droite, afin de privilégier l’affichage du contenu de votre billet avant tout.

Fork du plugin WordPress WP-JSON-API disponible sur GitHub

Fork du plugin WordPress WP-JSON-API disponible sur GitHub

Le plugin WP-JSON-API fournit une API REST permettant d’exposer les données d’un blog WordPress (Tags, Categories, Auteurs, Posts, …). Ce plugin est plutôt assez complet et vraiment utile. Malheureusement, le plugin ne semble pas vraiment maintenu et souffre de quelques lacunes (Plantages, manque d’options de filtrage, …).

Ayant utilisé ce plugin à divers occasions, j’en ai profité pour corriger quelques défauts, et j’en ai profité pour forker le repo GitHub original pour mettre à disposition les modifications effectuées.

Vous pouvez retrouver ce fork sur mon compte GitHub à l’adresse suivante: https://github.com/akinsella/wp-json-api.

N’hésitez pas à faire vivre ce plugin WordPress en le forkant ou bien même en y contribuant du code!

Installer les outils dos2unix, mac2unix et compagnie sur un Mac

Installer les outils dos2unix, mac2unix et compagnie sur un Mac

L’outil dos2unix n’est pas disponible par défaut sous Mac. Il existe bien entendu des alternatives, notamment avec l’outil ‘tr’, mais il est agréable également d’avoir à disposition dans sa boîte à outils ce petit utilitaire.

Pour l’installer, créez un script « makeDos2Unix.sh » et copiez-y le code ci-dessous. Une fois le fichier créé, il faut chmoder le fichier avec la commande suivante:

chmod 755 makeDos2Unix.sh

et lancez le script en tapant:

./makeDos2Unix.sh

Lors de son exécution, le script va ouvrir la page web de l’outil, puis installer les différentes commandes sur votre Mac.

#!/bin/bash
open -a Safari http://slagheap.net/darwin/

curl -L -O http://slagheap.net/darwin/dos2unix-051230.tar.gz

tar -xzf dos2unix-051230.tar.gz

cd dos2unix

export MAKEOBJDIR=.

sed -i "" -e 's/NOMANCOMPRESS/NO_MANCOMPRESS/' -e 's|/man/man|/share/man/man|' Makefile

bsdmake all

# perform a dry run to show install locations
# take the output of bsdmake's dry run, insert some newline characters and "echo" commands, then run it

bsdmake -n install |
sed \
-e 's/\([^;]\);\([^;]\)/\1'$'\\\n''\2/g' \
-e $'s/;;/&amp;\\\n/g' \
-e $'s/do *case *\\$# *in/&amp;\\\n/g' |
sed \
-e 's/^\( *install -.*\)/echo \1/' \
-e 's/^\( *\)\(rm \)/\1echo \2/' \
-e 's/^\( *\)\(ln \)/\1echo \2/' |
bash -s | uniq | grep -E '^(install|/)'

sudo bsdmake install

man dos2unix

La commande suivante, ci-dessous, permet d’arriver au même résultat sans avoir à installer l’exécutable dos2unix:

tr '\r' '\n' < input.txt > output.txt

Source originale du script: http://codesnippets.joyent.com/posts/show/10939