Skip to content

Category archive for: Programmation

Compiler du source Java dans un programme Java

Avec Java 6, il est possible de compiler un source Java directement depuis vos programmes.

Voici la marche à suivre :

Créez des instances de JavaCompiler et StandardJavaFileManager.

JavaCompiler jc = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager sjfm = jc.getStandardFileManager(null, null, null);

Ensuite, ajoutez une tâche de compilation au compilateur Java. La méthode getJavaFileObjects accepte plusieurs paramètres qui permettent de soumettre plusieurs compilations simultanément.

File javaCode = new File(« c:/java/fr/toto/CompilerTest.java »);
String[] opts = new String[]{« -d », « c:/classes »};
Iterable codeObject = sjfm.getJavaFileObjects(javaCode);
jc.getTask(null, sjfm, null, Arrays.asList(opts), null, codeObject).call();
sjfm.close();

S’il n’y a pas d’erreurs, la classe compilée est générée dans c:/classes.

Après cette compilation, cette classe est prête à être chargée dans le programme.

File classesMap = new File(« c:/classes »);
URL[] urls = new URL[]{classesMap.toURL()};
URLClassLoader ucl = new URLClassLoader(urls, cl);
Class clazz = ucl.loadClass(« fr.toto.CompilerTest »);

Et ça roule !  Magique !!

[ Compile Java code in a Java program ]

Trier des données numérique dans un VARCHAR

Sous MySQL, voici une petite astuce rapide quand on ne se souvient plus de la syntaxe de la commande CAST.

Pour trier une colonne de type VARCHAR avec un tri standard, on obtient :

mysql> SELECT colonne FROM ma_table ORDER BY colonne;

colonne
=======
100
1000
10000
200
2000
20000

Maintenant, si on souhaite faire un tri numérique sur cette colonne, il existe une méthode très simple :

mysql> SELECT colonne FROM ma_table ORDER BY colonne+0;

colonne
=======
100
200
1000
2000
10000
20000

Vous avez repéré la différence ? Vous faites un order by colonne+0, qui déclenche automatiquement un CAST.

[ Sorting VARCHAR data in mysql ]

Bien gérer le positionnement dans une page HTML

Voici une très bonne idée pour tous ceux qui se sont déjà pris la tête sur des problèmes de positionnement CSS dans une page HTML.

Le site suivant propose une image à utiliser comme fond de votre page web en développement. Voici ce que ça donne :

WebLayout

Du coup, vous pouvez voir précisément si vos coordonnées, tailles, etc … ont été respectées (surtout avec certains navigateurs qui ne respectent pas les CSSs 😉 )

[ Web Page Layout Grid | Smiley Cat Web Design ]

Google Chart API

Encore du nouveau chez Google ! Voici la Google Chart API !

Vous y trouverez tout ce qu’il vous faut pour créer rapidement des graphiques.

Un petit exemple pour vous présenter le produit : Admettons que je veuille faire  un graphique représentant la répartition des navigateurs sur ce site (limitons nous ici à IE et Firefox).

Les stats du site sont :

  • 62 % pour Firefox  :-)
  • 30 % pour IE

Je tape l’url suivante dans mon navigateur :

http://chart.apis.google.com/chart?cht=p3&chd=t:62,30&chs=350×150&chl=Firefox|IE

Où :

  • cht=p3 est le type de graphique (camembert 3D)
  • chd=t:62,30 sont les données du graphique, séparées par une virgule
  • chs=350×150 est la taille du graphique à obtenir (en pixels)
  • chl=Firefox|IE sont les libellés des données à afficher, séparés par un ‘|’

et j’obtiens :

GoogleChart1

Et vous n’êtes pas limité à un seul type de graphique ou de mise en forme, par exemple :

GoogleChart2

Vous pouvez maintenant agrémenter vos sites de graphes dynamiques !

[ Google Releases Chart Image Generator ]

[ Google Chart API ]

Et une alternative assez impressionnante, en flash, proposée par Max :

[ Open Flash Chart ]