zenity 2.30

L’outil du jour s’appelle Zenity. Il permet d’afficher des boites de dialogue GTK+ à partir de commandes simples. Comme il est écrit sur le site officiel, il appartient à la même famille que dialog, xdialog et cdialog, mais il surpasse tous ces projets en ayant un nom bien plus classe.

Zenity gère les boites de dialogue suivantes :

  • calendrier
  • saisie de texte
  • message d’erreur
  • message d’information
  • sélection de fichier
  • liste de choix
  • icône de notification
  • barre de progression
  • question
  • message d’avertissement
  • échelle
  • affichage de texte

Un petit coup de zenity -help fournissant une aide conséquente, je ne m’étendrai pas ici sur toutes les options possibles, mais voici quelques cas concrets, simples mais efficaces :

#!/bin/sh
 
# Liste
zenity --list --title="leloup.org" --text="Comment trouvez-vous leloup.org ?" --column="Appréciation" "Excellent" "Parfait" "Fantastique" "Divin"
 
# Echelle
zenity --scale --title="leloup.org" --text="Saisissez la qualité du site leloup.org" --value=95 --min-value=0 --max-value=100
 
# Notification
zenity --notification --text="Parlez de leloup.org autour de vous"
 
# Question
zenity --question --text="Allez-vous répondre 'non' à cette question ?"
 
# Barre de progression
(while [ ... ]; do
 # Traitement
 # ...
 # Calcul du pourcentage pour la barre de progression)
 pourcentage="..."
 # Texte à afficher, et pourcentage, à afficher dans la fenêtre de la barre de progression pour le traitement courant)
 echo "# nom du traitement en cours"
 echo "$pourcentage"
 shift
done
) | zenity --progress --text="leloup.org" --percentage=0 --auto-kill

Précision concernant la barre de progression : elle ne calcule pas la progression elle-même, elle ne fait qu’afficher une progression qui est calculée par vous-même à chaque itération. Pour transmettre un pourcentage quelconque à la barre de progression, il faut écrire echo « <nombre entre 0 et 100> » comme dans l’exemple. Pour calculer le pourcentage, tout dépend de votre problème !

Et voilà, il ne vous reste plus qu’à créer un script révolutionnaire à base de zenity

java split

Voici un problème qui va certainement vous paraitre basique, mais bon, pas sûr, ça pourrait bien vous éviter quelques effets de bord disgracieux.

Attention à la méthode split(String regex) en java ! Elle renvoie bien les éléments vides, mais uniquement les éléments vides qui ne sont pas situés en bout de chaine.

Exemple :

String chaine = "0;1;;3;4;;";
String[] tab = chaine.split(";");
// tab[2] renvoie bien ""
// tab[5] renvoie une exception

Heureusement il existe la méthode split(String regex, int limit). Le 2ème paramètre indique le nombre limite de recherches à partir de la regex. Je vous invite à lire l’API pour plus de détails, en tout cas pour résoudre notre problème il suffit d’indiquer un entier négatif pour le 2ème paramètre afin que les éléments vides ne soient pas ignorés.

Exemple :

String chaine = "0;1;;3;4;;";
String[] tab = chaine.split(";",-1);
// tab[2] renvoie bien ""
// tab[5] renvoie bien ""

BitNami : le n’ami des développeurs

En cherchant comment installer un environnement PHP / PostgreSQL facilement (comprenez : « je suis un gros flemmard »), je suis tombé sur le site http://bitnami.org . C’est seulement après coup que je me suis aperçu que Tonton Korben en avait parlé récemment sur son blog. Les outils proposés par BitNami sont fantastiques ! Ils permettent de déployer des environnements de développement en deux coups de cuillère à pot. Et il y en a pour tous les goûts : pour Linux, pour Windows, pour Mac, du PostgreSQL, du MySQL, etc. BitNami propose également une installation rapide d’outils très connus comme Mantis, eZ Publish, Drupal, etc. (mais ce n’est pas l’objet de notre problème ici).

Voici la procédure d’installation d’un environnement LAPP 1.2.1 ( Linux, Apache, PHP, PostgreSQL) :

1) Télécharger l’installateur. Pour LAPP, le lien est le suivant : http://bitnami.org/stack/lappstack

2) Rendre le fichier téléchargé exécutable : chmod +x bitnami-lappstack-1.2-1-linux-installer.bin

3) Lancer l’installateur : ./bitnami-lappstack-1.2-1-linux-installer.bin

4) Choisir le chemin d’installation (par défaut le home est proposé)

5) Saisir le mot de passe, qui sera ensuite attribué aux comptes administrateur de phpPgAdmin et de postgreSQL

6) L’installation s’effectue… Et voilà, ça tourne !

Quelques infos pratiques :

- phppgadmin se trouve à l’adresse http://127.0.0.1:8080/phppgadmin

- Vos projets sont à placer dans /<chemin d’installation de lappstack>/apache2/htdocs/

- Commande pour arrêter / démarrer / relancer les services : ./ctlscript.sh (start|stop|restart)

(Les services ne sont pas exécutés automatiquement au lancement de la machine)

- Un script de désinstallation est également fourni

- Le compte phpPgAdmin est administrator

- Le compte postgreSQL est postgres

- Licence : Apache

- J’imagine qu’une installation en production par BitNami n’est pas recommandée, dans ces cas-là on n’échappe pas au cambouis !

Une bonne dose d’ajax

Si l’envie vous prend de développer un site internet qui en jette, pas la peine de réinventer la poudre, de nombreux scripts et cadres d’applications à base de javascript sont là pour vous aider. (Je vois déjà les amateurs de Lynx crier au scandale :-) )

Commençons par ajaxrain , un site qui regroupe une batterie de composants en tous genres. Tous les domaines sont traités, j’en veux pour preuve cette page: www.ajaxrain.com/tagcloud.php Des galeries photos aux calendriers en passant par l’autocomplétion, vous trouverez presque à coup sûr votre bonheur.

Viennent ensuite les cadres d’applications. Ils nécessitent de mettre les mains dans le cambouis mais ils sont à la base de tout projet web qui se respecte. Dans les plus connus on peut citer par exemple prototype , jquery , ou encore mootools .

Enfin, plus axé pour des applications d’entreprise avec interface web, il existe des composants très intéressants comme extjs qui produit notamment des tableaux de données très puissants et de toute beauté (voir la page d’exemple ici) ou encore rialto qui permet de simuler une interface lourde.

Quand vous aurez fait le tour de tout ça, appelez-moi :-) Si vous connaissez d’autres produits à base d’ajax, n’hésitez pas à en faire part dans les commentaires !

Tableau html: défiler uniquement sur les données

En html il est très simple d’écrire un tableau. Malheureusement, par défaut, les tableaux ne permettent pas de faire défiler uniquement les données sans déplacer les titres de colonnes.

Pour pallier ce problème, j’ai développé une structure en html / css / javascript, avec laquelle vous allez pouvoir faire défiler les données à la verticale et à l’horizontale. Le fichier se trouve ici.

Les explications sont dans le code d’exemple. Juste pour info, l’astuce est d’utiliser deux div: un pour les titres, et un pour les données.

Si vous utilisez mon code, merci de laisser un commentaire sur le blog ! (J’accepte également les gros chèques :-) )