15 mai 2008

Effectuer une requete sql de recherche sans accents avec Oracle

Voici la requête magique :

SELECT street FROM streets WHERE TRANSLATE(street, 'éèàâêîôûäëïöü', 'eeaaeiouaeiou') LIKE TRANSLATE(?, 'éèàâêîôûäëïöü', 'eeaaeiouaeiou')
Cette requête remplace tout les caractéres accentué des valeurs de la base de donnée et de la chaîne passée en paramètre.


Et voici une version qui compare sans tenir compte des majuscules :
SELECT street FROM streets WHERE UPPER(TRANSLATE(street, 'éèàâêîôûäëïöü', 'eeaaeiouaeiou')) LIKE UPPER(TRANSLATE(?, 'éèàâêîôûäëïöü', 'eeaaeiouaeiou'))

JSUnit, des tests unitaires en JavaScript

J'ai découvert il y a peu JSUnit, un framework de tests unitaires Javascript, c’est un portage de JUnit en JavaScript.

Le site web JSUnit

Des examples d'utilisation assez simple sont présenté sur le site http://www.jsunit.net/examples/index.html

Détecter des bugs dans des classe Java

FindBugs est un outil opensource puissant, il traque des centaines d’erreurs potentielles dans du code java. Une fois traqué, le bug potentiel est décortiqué et longuement expliqué: chaque type de bug est accompagné d’une longue fiche explicative.

FindBugs analyse le code de manière statique, c'est a dire qu'il n'a pas besoin d'executer le code pour détecter des bugs potenteils. En réalité, il ne travaille pas avec le code source, mais avec le Java Byte Code.

FindBugs est un excellent outil qui peut permettre d'éliminer des bugs qui aurait fait perdre beaucoup de temps. Il existe un plugin qui s'installe directement dans l'environnement Eclipse.

Le site officiel
La longue liste des patterns de bugs détectable
Le plugin eclipse
Le blog se FindBugs

24 décembre 2007

Pour 'échaper' les caracteres html et xml d'une string en java

Voici les parties de code nécessaire :

import org.apache.commons.lang.StringEscapeUtils;

StringEscapeUtils.escapeHtml("string");
StringEscapeUtils.escapeXml("string");

Vérifier la validé d'une adresse email en java

Voici une fonction toute faite pour vérifier la validité d'une adresse email :

public boolean checkMailAddress(String mail){
pattern = Pattern.compile("^([\\w\\d\\-\\.]+)@{1}
(([\\w\\d\\-]{1,67})|([\\w\\d\\-]+\\.[\\w\\d\\-]{1,67}))\\.
(([a-zA-Z\\d]{2,4})(\\.[a-zA-Z\\d]{2}) )___FCKpd___0quot;);
matcher = pattern.matcher(mail);
return matcher.find();
}

source : http://www.labo-sun.com/resource-fr-codesamples-902-0-eclipse-j2se-validateur-d-adresse-e-mail.htm

Changer d'encodage un fichier de texte

Voici la commande magique sous linux pour convertir un fichier texte encodé en iso8859-1 en utf8 :

iconv -f ISO8859-1 -t UTF-8 fichier_iso8859.txt > fichier_utf8.txt

et sa réciproque :

iconv -f UTF-8 -t ISO8859-1 fichier_utf8.txt > fichier_iso8859.txt

28 août 2007

Configurer un écran Samsung SyncMaster 940NW

Avec les réglages par défauts, mon nouvel écran TFT Samsung SyncMaster 940NW ne fonctionne pas pour ma configuration.


Voici les caractéristiques de rafraichissement de cet écran :

Synchronisation horizontale
30Hz-90Hz
Synchronisation verticale
56Hz-72Hz

La résolution optimale est de 1440x900, pour obtenir de bon réglages j'ai utilisé le programe gtf :

      $ gtf 1440 900 75

Les deux premiers argument sont la résolution souhaitée et le troisième le rafraichissement. On obtient ceci :
      # 1440x900 @ 75.00 Hz (GTF) hsync: 70.50 kHz; pclk: 136.49 MHz       Modeline "1440x900_75.00"  136.49  1440 1536 1688 1936  900 901 904 940  -HSync +Vsync 
et pour :
      $ gtf 1440 900 60
on obtient :
      # 1440x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 106.47 MHz       Modeline "1440x900_60.00"  106.47  1440 1520 1672 1904  900 901 904 932  -HSync +Vsync


On va maintenant ajouter la section suivante au fichier de configuration /etc/X11/xorg.conf :

Section "Monitor"         Identifier      "Samsung SyncMaster 940nw"         Option          "DPMS"         HorizSync       30-81 # valeurs obtenues sur le site du constructeur         VertRefresh     56-75 # valeurs obtenues sur le site du constructeur         # 1440x900 @ 75.00 Hz (GTF) hsync: 70.50 kHz; pclk: 136.49 MHz         Modeline "1440x900_75.00"  136.49  1440 1536 1688 1936  900 901 904 940  -HSync +Vsync         # 1440x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 106.47 MHz         Modeline "1440x900_60.00"  106.47  1440 1520 1672 1904  900 901 904 932  -HSync +Vsync  EndSection
On peut maintenant modifier la section Screen :
Section "Screen"         Identifier      "Default Screen"         Device          "ATI Technologies Inc RV280 [Radeon 9200 SE]"         Monitor         "Samsung SyncMaster 940nw"         DefaultDepth    24         SubSection "Display"                 Depth           24                 Modes           "1440x900_75.00" "1280x1024" "1280x960" "1280x854" "1280x800" "1280x768" "1200x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480"         EndSubSection EndSection
Après un redémarrage de xorg, l'écran fonctionne a merveille ;-)

20 juillet 2007

Passer sa version de Debian de stable/testing à de testing/unstable


Pour commencer il faut éditer le fichier /etc/apt/sources.list et modifier les lignes suivantes
deb http://ftp.fr.debian.org/debian/ stable main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ stable main non-free contrib
en ceci pour passer à testing :
deb http://ftp.fr.debian.org/debian/ sid main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ sid main non-free contrib
ou en ceci pour passer à unstable :
deb http://ftp.fr.debian.org/debian/ sid main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ sid main non-free contrib
Deplus,
pour s'assurer que apt-get update installera les packages dans la branche que vous avez choisis de rejoindre (testing/sarge), il faut donc modifier le paramètre APT::Default-Release du fichier /etc/apt/apt.conf :
APT::Default-Release "stable";
devient par exemple (suivant votre choix plus haut) :
APT::Default-Release "unstable";
Il ne vous reste plus qu'a effectuer les mises à jour :
apt-get update && apt-get upgrade

04 mai 2007

Réparer une archive rar sous Linux

La solution est simple :

rar r archive.rar

24 février 2007

Lire et écrire sur une partition NTFS depuis linux c'est possible !

NTFS-3G est un module open-source developpé afin de rendre possible la lecture et surtout l'écriture sur des partitions NTFS à partir de Linux.

Ce driver est considéré comme non stable par ses auteur vous pouvez donc l'utiliser sans trop de problèmes.

Voici comment faire :

  1. Installer le paquet de votre distribution nommé ntfs-3g

  2. Modifier la ligne correspondant à votre partition NTFS pour qu'elle ressemble à celle-ci :
    /dev/hdb1 /media/wind ntfs-3g defaults,rw,umask=111,nls=iso8859-1 0 0

  3. Remonter la partition en question (ici /media/wind):
    umount /media/wind; mount /media/wind