Archives mensuelles : octobre 2009

Configurer le GDM de Karmic

Karmic vient de sortir et une des nouveautés apportées par cette version est le passage à GDM 2.28.

Cependant, la configuration de ce dernier est très limité et on ne peut pas modifier l’aspect du GDM.

Cependant, il est quand même possible de configurer l’aspect du GDM. Pour cela, il suffit de lancer la commande suivante :

gksudo -u gdm dbus-launch gnome-appearance-properties

La fenêtre de configuration de l’apparence s’affiche avec la configuration des éléments du GDM.

Configuration du thème du GDM

Il suffit ensuite de configurer comme vous le souhaitez (changer le thème, le fond d’écran, la police, …). Redémarrez et admirer le résultat.

Voici mon GDM après changement du papier peint du GDM.

GDM sous Karmic

Migration Netvibes vers Google Reader/iGoogle

Contraint et forcé suite à un blocage de Netvibes sur mon lieu de travail, je viens de migrer de Netvibes vers Google Reader aprés un tentative avec iGoogle.

Exportation de mes flux/widget Netvibes

La première étape de ma migration est l’exportation au format OPML de mes flux / widget. Pour cela, il faut aller dans Profil -> Éditer le profil -> Flux -> Exporter mes flux.

Un fichier zip vous sera alors proposer au téléchargement. Le fichier zip contient 1 fichier OPML par page Netvibes.

iGoogle

J’ai d’abord fais un tentative de migration vers iGoogle. Voyons comment importer la configuration puis je vous dirais pourquoi je ne suis pas resté sur iGoogle pour me tourner vers google reader.

Importation

Pour importer la configuration, il faut aller dans les Paramètres d’iGoogle. En bas de page, vous trouverez la fonction d’import/export.

Si vous tentez d’importer votre configuration via un fichier OPML, vous obtiendrez un message d’erreur vous indiquant que votre fichier n’est pas correct. En effet, iGoogle ne supporte pas l’OPML. Heureusement, il existe un outil qui permet de générer un fichier compréhensible par iGoogle à partir d’un fichier OPML. L’outil se trouve à cette adresse :

http://googlesystem.blogspot.com/2008/07/import-opml-files-to-igoogle.html

Vous copiez le contenu de votre fichier OPML, vous cliquez sur Convert OPML to iGoogle’s format et vous obtenez un fichier au format iGoogle.

L’opération n’est pas encore terminé. En effet, le résultat obtenu n’est qu’une partie du fichier de configuration au format iGoogle. Pour cela, exporter votre configuration iGoogle en cliquant sur le bouton Exporter. Vous obtenez un fichier iGoogle-settings.xml. Copier-le afin d’avoir une copié de sauvegarde en cas de fausse manipulation.

Ouvrez le fichier iGoogle-settings.xml dans un éditeur de texte et copiez le résultat obtenu via l’outil de tranformation avant la ligne qui contient </GadgetTabML>.

Sauvegarder votre fichier. Importer le dans iGoogle. Et voila !!

Essai non concluant

Voici les raisons qui m’ont fait migrer vers Google Reader ou plutôt qui ne m’ont pas fais rester sous iGoogle  :

  • iGoogle est plus orienté widget que flux RSS. N’ayant pratiquement que des flux RSS, Google Reader est plus approprié pour cet usage.
  • Non affichage du nombre des nouveaux billets par flux/onglet.
  • La configuration des flux est très sommaire (seulement le nombre de billet affichés, limité à 9) par rapport à Netvibes.

Google Reader

Importation

L’importation dans Google Reader est beaucoup plus simple puisque compatible avec le format OPML.  Pour cela, il faut dans les paramètres et aller dans l’onglet Importer/Exporter. Sélectionner votre fichier OPML à importer et voila.

Au niveau configuration, j’utilise l’affichage liste que je trouve plus pratique et lisible. Voici les principaux avantages que je trouve par rapport à Netvibes :

  • Possibilité de tagger vos flux
  • Sauvegarde des billets : Le billet est toujours disponible même si celui ci n’est plus disponible dans le flux RSS.
  • Statistique concernant vos lectures
  • Proposition de flux en fonction de vos goûts
  • Simplicité d’utilisation

Utiliser plusieurs bundle de ressource avec JSTL dans une même page.

Dans le cas de développement web avec des JSP, il est recommandé d’utiliser des fichiers de ressources afin de rendre l’application internationalisable facilement. Pour cela, Sun a fourni dans la JSTL (Java Standard Tag Library : librairie qui fournit un ensemble de fonctionnalité de base sous forme de taglib (tab xml), permettant de ne pas mettre de code java dans sa JSP) la librairie fmt. Celle-ci permet de faire du formatage (date, nombre, monnaie, …).

Cette libraire fournit une méthode message qui permet, en fonction de la langue de l’utilisateur, d’afficher un message issu d’un fichier de ressources. Le fichier de ressources étant défini par la méthode setBundle.

Déclaration du fichier de ressources :

Affichage d’un message provenant du fichier de ressource

C’est le dernier fichier de ressources déclaré qui sera utilisé pour rechercher votre message.

Il se peut que vous vouliez utiliser 2 fichiers de ressources dans votre page (inclusion de jsp ayant son propre fichier de ressources, 1 fichier de ressources global a toute l’application et 1 pour votre page, …). Si vous ne voulez pas avoir à déclarer plusieurs fois vos fichier de ressources pour que le bon soit utilisé, il suffit de définir un nom à vos fichier de ressources afin de pouvoir spécifier lors de l’affichage d’un message lequel utiliser.

Lors de la déclaration du fichier de ressources global, on définit son nom avec l’attribut var :

Lors de l’affichage d’un message provenant du fichier de ressource global, on précise le fichier de ressource via l’attribut bundle (Attention le nom doit être entre ${ et }) :

Utilisation des thèmes Adium dans Empathy

J’avais décrit dans un précédant billet comment utiliser les thèmes Adium sous Empathy. Il semblerait que cette méthode ne fonctionne plus. Voici un autre moyen les utiliser.

Il faut déposer les dossiers de style de type *.AdiumMessageStyle dans le dossier ~/.local/share/adium/message-styles/ (~ représente votre dossier personnel. /home/julien dans mon cas). Afin de pouvoir accéder au dossier .local, qui est caché (tous les fichiers préfixés par un . sont cachés), il faut activer l’affichage de ceux ci : Affichage -> Afficher les fichiers cachés ou Crtl + H sous Nautilus. Il faut créer les 2 dossiers adium et message-style.

Adium_Empathy_Config

Allez dans Édition > Préférences > Thèmes. Vos thèmes sont maintenant disponible.

Sélection d'un thème Adium dans EmpathyPour rappel :

  • Vous pouvez trouver sur cette page une liste de thèmes qui ont été testé et leur compatibilité avec Empathy.
  • Vous pouvez trouvez des thèmes Adium ici

Supprimer des conversations d’Empathy

Empathy, le logiciel de messagerie instantanée qui sera par défaut dans Karmic enregistre toutes vos conversations. Celles ci sont alors consultable via le menu Affichage -> Conversations précédentes. Il est alors possible de rechercher vos anciennes conversations soit par un terme, soit par Compte de messagerie / Contacts / date.

Conversations Précédentes dans Empathy

Malheureusement, il n’est pas possible de supprimer des conversations via l’interface d’Empathy (ou alors je n’ai pas trouvé). Voici comment faire pour supprimer vos conversations. Celles ci sont enregistrées dans le dossier ~/.local/share/Empathy/logs (~ représente votre dossier personnel. /home/julien dans mon cas). Afin de pouvoir accéder au dossier .local, qui est caché (tous les fichiers préfixés par un . sont cachés), il faut activer l’affichage de ceux ci : Affichage -> Afficher les fichiers cachés ou Crtl + H sous Nautilus.

Vous avez ensuite 1 dossier par compte enregistré dans Empathy. Chaque dossier de compte contient un dossier par contact. Ce dossier contient alors des fichiers de la forme annéemoisjour.log (ex : 20091004.log pour une conversation du 4 Octobre 2009) qui contiennent votre conversation avec ce contact pour le jour donné. Il vous suffit de supprimer de fichier .log pour que celui ci n’apparaissent plus dans l’historique des conversations d’Empathy.

Fichiers Log de vos conversations Empathy

Et voila !!

CoverFlow sous Exaile

Je vous ai déjà parlé de Exaile, en version 0.3.1 actuellement. Un greffon CoverFlow est en cours de développement. Voici comment faire pour l’installer. Attention, ce greffon n’est pas stable et peut engendrer des plantages d’Exaile.

Installation

Ce plugin n’est pas disponible dans les dépôts de Exaile pour le moment. Afin de l’installer, il faut au préalable télécharger tous les composant du greffon. Ses fichiers sont disponible dans Bazaar, l’outil de gestion de source de Launchpad, la plateforme d’hébergement de projet fourni par Canonical (Canonical est la société qui est supporte Ubuntu). Les fichiers sont disponible ici. Récupérer tous les fichiers et assurez vous de garder l’arborescence (les images dans le dossier images).

Il faut maintenant copier ces fichiers dans ~/.local/exaile/plugins. (~ représente votre dossier home. /home/julien dans mon cas). Afin de pouvoir accéder au dossier .local, qui est caché (tous les fichiers préfixés par un . sont cachés), il faut activer l’affichage de ceux ci : Affichage -> Afficher les fichiers cachés ou Crtl + H sous Nautilus.

Installation du greffon coverflow

Comme nous le verrons plus tard, le greffon CoverFlow dépend du paquet python-clutter. Installez le en cliquant sur le lien précédant ou via la commande suivante :

sudo apt-get install python-clutter 

Vous pouvez maintenant lancer Exaile et aller dans les préférences (Edition -> Préférences). CoverFlow apparaît maintenant dans la liste de vos plugins. Comme vous pouvez le voir dans l’image ci-dessous, le greffon dépend bien de python-clutter. Un clic dans la checkbox vous permet d’activer le greffon qui devrait apparaitre sous la liste de lecture.

Activation du greffon Coverflow dans Exaile

Utilisation

Les pochettes de vos albums sont alors affichées dans le célèbre affichage CoverFlow popularisé par Apple. Cela est du plus bel effet avec la réflexion. La navigation se fait à la souris en cliquant sur une pochette pour la sélectionner ou avec la molette. Le petit + en bas à droite permet d’ajouter à la liste de lecture courante toutes les pistes de l’album sélectionné.

Le plugin CoverFlow dans Exaile

Un clic sur l’album sélectionné permet l’affichage des pistes de ce dernier. Un clic sur une piste permet l’ajout de celle ci à la liste de lecture. La flèche en bas à droite permet de revenir à l’affichage des albums.

CoverFlow dans le mode Piste d'un album

La liste des albums prend en compte la recherche. Ainsi, lors d’une recherche, seul les albums correspondant à la recherche seront affichés.

Conclusion

Ce plugin, bien qu’en cours de développement, est assez stable et très pratique. Je vous tiendrais au courant de son évolution et j’espère que celui ci sera très prochainement installable via un paquet.

Gestion d’événement avec Prototype

Dans certains cas, on peut être amenés à rajouter des fonctionnalités coté client en fonction d’événements. Nous allons voir comment le faire avec la librairie javascript prototype. Nous allons prendre un exemple simple : ajoutez sur les liens ayant pour classe « imprimer » l’appel à la fonction print() lors du clic. Cela nous permet également d’avoir un code plus propre puisque nous avons une séparation entre présentation (page html) et métier (javascript).

Codes

Il faut d’abord inclure la librairie prototype

Voici le code html des liens:

imprimer

Voici la fonction javascript :

document.observe('dom:loaded', function() {
  $$('a.imprimer').invoke('observe', 'click', function() {
    window.print();
  });
});

Explications

La méthode observe

C’est cette méthode qui permet d’écouter les événements. Dans la première ligne, on écoute l’événement ‘dom:loaded’ qui correspond à la fin de chargement de la page. On peut écouter tout type d’évènements comme le clic sur un lien ou bouton, l’appui sur une touche, …

La méthode $$

Cette méthode permet de récupérer une liste d’éléments via un sélecteur CSS. Dans notre cas, on récupère tous les éléments de type lien (a) qui ont pour classe ‘imprimer’

La méthode invoke

Cette méthode permet d’appeler la même méthode pour plusieurs éléments. Dans notre exemple, on appelle la méthode observe pour tous les éléments récupérés via $$.

Conclusions

Nous venons d’ajouter du comportement dans notre page html avec quelques lignes de javascript. C’est grâce à la puissance de prototype que cela est possible.

Remarque : Dans le cas où vous générer/récupérer du code (via de l’AJAX par exemple), il faudra relancer votre méthode d’écoute des événements pour que votre nouveau code prenne en compte ce comportement.