[ home | example web-album | video demo | tutorial | advanced | discuss | download ]
To improve performance when creating thumbnails - a long and painful step when creating web-albums - Booh takes advantage of multi-processor machines.
The following figures were obtained on a P4 HT 2.8 GHz with Linux 2.6.6 SMP 4G (note that this is not a real SMP machine) with the same bunch of thumbnails to create:
Regular 2:10.81 elapsed --mproc 2 2:01.44 elapsed (0.928 Regular)
This is not bad, but clearly shows that an hyperthreading P4 is not a real SMP machine by far! Now let's try with a 6-CPUs Pentium-3 Cascades 700 MHz:
Regular 2:58.07 elapsed --mproc 2 1:32.48 elapsed --mproc 3 1:03.34 elapsed --mproc 4 0:49.12 elapsed --mproc 5 0:40.86 elapsed --mproc 6 0:39.03 elapsed (0.219 Regular)
Now this multi-processor support Booh has is not a toy feature.
More recent tests (not the same photos), on a Core i5 650 (dual core HT) 3.2 GHz with Linux 220.127.116.11 x86_64:
Regular 0:48.79 elapsed --mproc 2 0:27.87 elapsed --mproc 3 0:20.38 elapsed --mproc 4 0:16.96 elapsed (0.347 Regular)
More recent tests (not the same photos), on a Core i7 3770 (quad core HT) 3.4 GHz with Linux 3.3.4 x86_64:
Regular 1:18.21 elapsed --mproc 2 0:39.82 elapsed --mproc 3 0:27.49 elapsed --mproc 4 0:20.95 elapsed --mproc 5 0:17.88 elapsed --mproc 6 0:15.77 elapsed --mproc 7 0:13.93 elapsed --mproc 8 0:12.70 elapsed (0.162 Regular) --mproc 9 0:12.66 elapsed
A test has been conducted on a p4 2.8 GHz with 1G of memory running GTK+ 2.12.9: loading 134 3456x2304 photos coming from a Canon EOS 350D, worth a total of 396 MB. After all the files are in the file system's cache, the time to show a thumbnail for all the photos is measured with booh-classifier against other widely used programs:
Notice that also, gthumb and eog don't preload neighbourghood photos (konqueror neither, but that's not applicable anyway); eog is not capable of showing videos; and konqueror don't even show portrait photos (containing the proper EXIF orientation) correctly rotated - though I suspect it might be related to something with the compilation or the configuration which I wasn't able to locate.
To reduce disk space usage, web-albums including the original images use hard links between the original image in the source directory and the destination directory. Of course, this requires you use a single disk and partition for the source and destination directories; if this is not the case, the image is simply copied (that's fully transparent to the end-user).
The web-album generating is fully done by a CLI program called booh-backend. It generates and/or manipulates an XML file. Editing is done by a graphical front-end (using GTK+) called booh. Therefore, one can generate a web-album with no editing (and actually no human input) only with the CLI program if necessary, or opposedly, only use the graphical program if so enclined (which is the easiest and recommended way). The use of the XML file in between allows for easy "scripting" or "extension" with any XML processing tool if needed. The XML file has a straightforward DTD and actually comprises a tree of elements similar to the filesystem tree of the web-album.
If you want to create a new theme, or make local modifications to a theme, just have them in your ~/.booh-themes directory (Booh version 0.9.2 and more recent). For example, to hack off 'dark':
# mkdir ~/.booh-themes # cp -a /usr/share/booh/themes/dark ~/.booh-themes/mine
Use a different name than original theme names (here I picked the dummy name 'mine', choose a better one).
Currently available themes: simple - gradient - cardu - dark - sbs.
Booh has full internationalization support. Additionally, Booh can generate web-albums with multi-languages navigation, so that the web-albums automatically adapt to the language of the user who's browsing! If missing, please contribute a translation to your native language! Check the directory 'po' in the download archive.
|Booh is already available in french, german, japanese and esperanto (beside english, of course).||
Wed Jun 1 17:53:58 2011