booh logo this page in english cette page est en français

Booh

[ page principale | exemple de web-album | démo vidéo | tutoriel | avancé | discussion | téléchargement ]

Performance - création de web-albums

Afin d'améliorer la performance à la création des vignettes - une étape longue et pénible quand on crée des web-albums - Booh bénéficie des avantages des ordinateurs multi-processeurs.

Les valeurs suivantes ont été obtenues sur un Pentium-4 avec hyperthreading à 2.8 GHz, avec Linux 2.6.6 SMP 4G (notez que ce n'est en aucune manière une vraie machine multi-processeurs) avec la même série de vignettes à créer :

    Normal     durée : 2:10.81
    --mproc 2  durée : 2:01.44

Ce n'est pas si mal, mais montre clairement qu'un ordinateur hyperthreading n'est de loin pas une vraie machine SMP ! Maintenant, regardons le résultat avec un Pentium-3 Cascades 700 MHz avec 6 processeurs :

    Normal     durée : 2:58.07 
    --mproc 2  durée : 1:32.48 
    --mproc 3  durée : 1:03.34 
    --mproc 4  durée : 0:49.12 
    --mproc 5  durée : 0:40.86 
    --mproc 6  durée : 0:39.03   (j'aurais du tuer ces processus apache inutiles !)

On voit bien ici que le support multi-processeurs de Booh n'est pas une fonctionnalité inutile.

Des tests plus récents (pas les mêmes photos), sur un Core i5 650 (dual core HT) 3.2 GHz avec Linux 2.6.33.7 x86_64 :

    Normal     durée : 0:48.79
    --mproc 2  durée : 0:27.87
    --mproc 3  durée : 0:20.38
    --mproc 4  durée : 0:16.96

Performance - booh-classifier

Un test a été effectué sur un p4 2.8 GHz avec 1 Go de mémoire, avec GTK+ 2.12.9 : le chargement de 134 photos en 3456x2304 en provenance d'un Canon EOS 350D, faisant un total de 396 Mo. Après que tous les fichiers soient dans le cache du système de fichiers, la durée nécessaire pour afficher une vignette pour toutes les photos est mesurée avec booh-classifier en comparaison d'autres programmes utilisés couramment :

Il faut garder à l'esprit en plus, que gthumb et eog ne préchargent pas les photos environnantes (konqueror non plus, mais ça ne fait pas de sens pour lui) ; eog n'est pas capable de montrer les vidéos ; et konqueror ne montre même pas les photos portrait (qui contiennent la bonne orientation EXIF) tournées dans le bon sens - même si je soupçonne un problème avec la compilation ou la configuration que je n'ai pas pu trouver.

Occupation disque

Pour réduire l'occupation disque, les web-albums incluant les images originales utilisent des liens durs (hard links) entre l'image d'origine dans le répertoire source et dans le répertoire destination. Bien sûr, cela nécessite l'utilisation de la même partition du même disque pour les deux répertoires ; si cela n'est pas le cas, l'image sera simplement copiée (c'est totalement transparent pour l'utilisateur).

Architecture et manipulation des données

La génération du web-album est complètement effectuée par un programme en ligne de commande qui s'appelle booh-backend. Il génère et/ou manipule un fichier XML. L'édition est faite par un programme en mode graphique (utilisant GTK+) appelé booh. Par conséquent, on peut générer un web-album sans aucun travail d'édition (et en fait aucune entrée manuelle) uniquement avec le programme en ligne de commande si nécessaire, ou au contraire, utiliser seulement le programme en mode graphique (ce qui est la manière la plus simple et recommandée de procéder). L'utilisation d'un fichier XML entre les deux permet un "scripting" ou l'"extention" des résultats avec n'importe quel outil de traitement XML. Le fichier XML a une DTD "logique", il est en fait constitué d'un arbre d'éléments similaire à l'arbre des répertoires du web-album sur le système de fichiers.

Considérations internes

Le web-album généré par Booh fait une utilisation intensive du javascript pour être capable d'effectuer un préchargement intelligent des images suivantes/précédentes, et pour montrer toutes les images au sein d'une seule page HTML (cela élimine un download et évite de changer votre position de défilement dans le navigateur). Cela devrait fonctionner correctement avec le navigateur buggué le plus répandu actuellement, mais a été développé avec Galeon. De plus, notez que l'album généré est visible sans problème sans javascript (des pages HTML spécifiques sont générées dans ce but), de telle manière que le javascript n'est pas obligatoire pour parcourir les albums (un navigateur avec le javascript désactivé sera tout de même capable de parcourir les albums).

Le thème par défaut, 'simple', a été écrit dans le but d'être simple et concis, et il pourrait probablement avoir un meilleur look (les contributions sont les bienvenues). Il possède plusieurs tailles de vignettes et de plein écran, forgées avec soin pour remplir le maximum sur un écran en 800x600, 1024x748, 1280x1024, 1400x1050 ou 1600x1200 (vous pouvez sélectionner la liste des tailles que vous désirez pour vos web-albums - ensuite, lorsque les utilisateurs parcourent les albums, une autodétection en javascript de la taille optimale pour la taille réelle de la fenêtre du navigateur est utilisée). Les personnes intéressées par l'HTML et le CSS sont les bienvenues pour créer de nouveaux thèmes - jetez un coup d'oeil au fichier THEMES dans le tarball pour obtenir de la documentation à ce propos.

Si vous voulez créer un nouveau thème, ou bien faire une modification locale à un thène, il vous suffit de mettre des thèmees dans votre répertoire ~/.booh-themes (Booh en version 0.9.2 ou plus récente). Par exemple, pour partir de 'dark' :

# mkdir ~/.booh-themes
# cp -a /usr/share/booh/themes/dark ~/.booh-themes/montheme

Utilisez un nom différent des noms des thèmes originaux (ici j'ai choisi au hasard 'montheme', choisissez un meilleur nom).

Les thèmes actuellement disponibles : simple - cardu - dark - sbs.

Traductions

Booh a un support complet de l'internationalisation. De plus, Booh peut générer des web-albums avec la navigation disponible en plusieurs langues, de telle manière que les web-albums s'adaptent automatiquement à la langue de la personne qui les parcourt !
Booh est disponible en français, allemand, japonais et espéranto (en plus de l'anglais, bien évidemment). drapeau anglais drapeau français drapeau allemand drapeau japonais drapeau espérantiste

Wed Jun 1 17:51:26 2011