Facelets et JSTL

By , 06/06/2010

Il est important de savoir que l’utilisation de Facelets est compatible avec l’utilisation de certaines fonctionnalités de la JSTL.

En lisant la documentation de Facelets, j’ai découvert que seulement cinq fonctions sont implémentées :

  • c:if
  • c:forEach
  • c:catch
  • c:set

J’ai aussi remarqué que leurs utilisations n’est pas toujours possible. Par exemple, il n’est pas possible de demander un c:if dans un ui:repeat. Dans ce cas, j’ai du remplacé le ui:repeat par un c:forEach pour que mon instruction conditionnelle soit prise en compte.

Ecrire un document XML avec Facelets

By , 05/06/2010

Générer un document XML à partir d’un application web Java est très simple. Il suffit d’écrire une servlet qui va écrire du XML sur la réponse HTTPResponse avec le bon type de contenu. Voici un exemple :

try {
 FacesContext ctx = FacesContext.getCurrentInstance();
 final HttpServletResponse resp = (HttpServletResponse)ctx.getExternalContext().getResponse();
 String xml = "<settings>...</settings>";
 resp.setContentType("text/xml");
 resp.setContentLength(xml.length());
 resp.getOutputStream().write(xml.getBytes());
 resp.getOutputStream().flush();
 resp.getOutputStream().close();
 ctx.responseComplete();

} catch (IOException e) {
 e.printStackTrace();
}

L’opération s’avère plus difficile lorsqu’il faut l’écrire à partir d’une page XHTML en utilisant Facelets. Voici une solution possible :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" contentType="text/xml">

<settings>...</settings>

</f:view>

La déclaration de la dtd HTML (deuxième et troisième lignes) n'est pas nécessaire sauf si vous utilisez des caractères latins ("é", "è", etc.) car facelets les traduit automatiquement en caractères HTML du style "&eacute;" et cela provoque l'erreur "Erreur d'analyse XML : entité non définie" sans ce fichier dtd.

Monter une image ISO sous Linux

By , 11/04/2010

Après quelques minutes de recherche, je viens de trouver comment lire et utiliser une image ISO sous Linux sans utiliser mon graveur. Ma première idée était d’utiliser un lecteur de CD  virtuel comme je le faisais sous windows. En fait, la commande mount qui permet de monter des disques (cd, dvd, disques durs, clé usb, etc.) sait aussi, nativement, monter une image ISO. Voici ce qu’il faut taper à la ligne de commande :

sudo mount -o loop -t iso9660 fichier.iso  repertoire_de_montage

Sinon pour les fans de la fenêtre, j’ai trouvé Gmount-iso, un petit outil graphique disponible sous Ubuntu qui monte une image ISO sans passer par la ligne de commande. Pour l’installer :

sudo apt-get install gmountiso

Pour plus d’information sur cet outil, je vous propose de vous rendre sur les blogs Green-lab (site francophone qui vous apprendra aussi à utiliser le dépôt Ubuntu sans avoir installé Ubuntu), ou bien Tux Enclave (site anglophone).

Normalisation des bases de données

By , 02/04/2010

Depuis que je travaille dans l’informatique de gestion, je vois tout et son contraire en terme de normalisation des bases de données. J’ai découvert aujourd’hui un document très intéressant sur le sujet qui pourrait servir à l’ensemble des informaticiens qui travaillent avec une base : http://sqlpro.developpez.com/cours/standards/.

On y apprend comment nommer ses tables relationnelles, leurs colonnes, index, etc. Je ne vais pas réécrire l’article, cela n’aurait pas d’intérêt, mais je vais vous montrer quelques exemples. Voici la proposition pour les tables et les vues :

Préfixe de table fonction préfixe de vue
T_ lorsqu’il s’agit d’une table fonctionnelle V_
TR_ lorsqu’il s’agit d’une table de référence VR_
TS_ lorsqu’il s’agit d’une table “système” VS_
TJ_ lorsqu’il s’agit d’une table de jointure VJ_
TG_ lorsqu’il s’agit d’une table générique (héritage) VG_


On y apprend aussi comment écrire du code SQL (indentation, nom des colonnes résultats, etc.). Par exemple voici un mauvais code :

SELECT CLI_ID, CLI_NOM, CLI_ENSEIGNE,
CLI_PRENOM  FROM T_CLIENT WHERE CLI_ADR_PAYS = 'F'
AND CLI_ENSEIGNE IS NULL OR CLI_ENSEIGNE =''
ORDER BY CLI_NOM

Voici le même code bon cette fois-ci :

SELECT CLI_ID, CLI_NOM, CLI_ENSEIGNE,
       CLI_PRENOM
FROM   T_CLIENT
WHERE  CLI_ADR_PAYS = 'F'
       AND CLI_ENSEIGNE IS NULL OR CLI_ENSEIGNE =''
ORDER  BY CLI_NOM

Au final, je pense que si tout le monde utilisait les mêmes conventions pour les schémas de base de données et les requêtes SQL, les développeurs (Java par exemple) seraient plus à l’aise pour leurs développements et pour changer de projet.

10minutemail

By , 30/03/2010

Comme les grandes découverts scientifiques, c’est souvent en cherchant quelque chose sur internet que l’on tombe sur les plus grosses pépites sans aucun lien avec la première recherche. C’est donc en navigant sur le site de JBoss Seam que j’ai trouvé 10minutemail. Le principe est simple : création instantanée d’une adresse email qui n’a que dix minutes de durée de vie.

Intérêt limité ? Tout dépend de l’utilisation : Cela permet de garder un certain anonymat, d’éviter les spams et surtout vous n’avez plus besoin de mémoriser tout vos comptes dans votre email habituel. Pour ce dernier point, il suffit de créer un nouveau compte avec une nouvelle adresse temporaire à chaque fois que vous avez besoin de vous inscrire quelque part. Si si, je vous assure que des fois c’est plus rapide que de retrouver son identifiant et son mot de passe.

Au niveau des fonctionnalités, dès votre arrivée, le site internet vous attribue automatiquement une adresse email sans formulaire à remplir. Lorsque vous recevez un email vous pouvez le lire bien entendu, y répondre et le transférer à quelqu’un d’autre. Si jamais dix minutes ne vous suffisent pas, vous pouvez demander de réinitialiser la durée de vie votre boite aux lettres à dix minutes.

La Télé sur son PC avec la Neuf Box de SFR

By , 26/02/2010

La playlist SFR correspondant aux chaines de télévisions diffusées par le fournisseur d’accès internet se trouve à l’adresse suivante : http://www.n9ws.com/tools/tvsurpc.m3u

Pour  regarder la télévision sur son PC avec le logiciel VLC, il faut lancer cette commande :

vlc http://www.n9ws.com/tools/tvsurpc.m3u &

Hébergement Subversion, Git et Trac gratuit

By , 13/02/2010

Voici un site internet très intéressant pour les développeurs qui souhaitent débuter un projet gratuitement sur internet avec une gestion de contrôle (subversion ou git) et un site incluant entre autre un wiki et un bug tracker. Oui, oui tout cela gratuitement : http://www.assembla.com

Ce site propose en plus de ces offres d’hébergement payantes une offre dite “Free Public Plan”. Vous avez le choix entre plusieurs types de “workspace” :

  • Subversion Hosting with Integrated Tickets : une solution assembla avec un système de ticket et de reporting pour le projet (style de GForge ou Trac “assembla made”)
  • Team collaboration : une solution qui permet de coordonner une équipe
  • Trac and Subversion Hosting : Trac et subversion
  • Subversion Repository : seulement Subversion
  • Git with Integrated Tickets : la même solution que la première en remplaçant Subversion par Git

 

Après avoir créer un compte il est possible de se créer plusieurs workspaces différents.

SQLDeveloper : problème sur les touches (suppression, retour arrière, etc.)

By , 10/02/2010

Il est possible de paramétrer le clavier du logiciel SQL Développeur lorsque celu-ci ne répond plus à certaines touches sur l’éditeur SQL (suppression, retour arrière, selection, etc.) :

  1. Aller dans le menu “Tools -> préférences -> Accelerators”
  2. Cliquer sur le bouton “Load Preset…”
  3. Choisir la configuration par défaut

 

Ma source : http://decoding.wordpress.com/2008/01/09/oracle-sql-developer-problem-backspace-delete-button-not-working-quick-fix/

Enregistrer des MP3 avec FFMPEG

By , 07/02/2010

Pour des raisons légales, le paquet debian ffmpeg n’est pas pourvu des codec permettant de convertir des fichiers vidéos ou musicaux en MP3. Pour contourner ce problème il faut installer ffmpeg puis les paquets dit unstripped :

sudo apt-get install libavcodec-unstripped-52 libavdevice-unstripped-52 libavfilter-unstripped-0 libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 libswscale-unstripped-0

Le gestionnaire de paquet désinstalle les anciens paquets rendus obsolètes par ces derniers. La conversion d’un fichier musical en MP3 reste un jeu d’enfant :

ffmpeg -ab 128k monFichier.ogg monFichier.mp3

Avec -ab = audio bitrate

OfficeFolders theme by Themocracy