June 12, 2008 at 12:01PM Isaac Browser IV improvements
I was bored on the bus, so I wrote up a list of possible improvements to IB4 (download here). There’s a fair bit of stuff, and I haven’t decided what order to attack it in. Here’s what I came up with:
Better descriptions
Image descriptions to complement the directory descriptions, and a method of specifying directory descriptions that’s better than the current one.
Along with the images descriptions would be proper titles: while the filename is fine in many circumstances, sometimes you want something better.
Tagging
Complementing the images descriptions would be tags. A non-hierarchical tag view would complement the hierarchical directory view pretty well. Here’s my ideas on how it’d work:
- In addition to the thumbnails stored in cache would be a tags cache. The
name of the each tag cache file would be the MD5 hash of the normalised
tag name, followed by
.tag. - Each tag file would contain a serialised PHP array of the filenames and image titles, along with the actual tag name.
- The tag list would be rendered and cached with the name
taglist.html. - The cache would be regenerated by running the script in a cron job or possibly through other means.
Refactored handlers
The code for handling the various views is all a bit of a mess. Instead, it would be broken up into handler functions:
- Thumbnail;
- Zip archive;
- Asset, i.e., CSS, embedded images, &c.;
- Tag; and
- Directory/image view (default).
Handlers would be selected based on the presence of a particular query string parameter, and would take the following as arguments:
- Triggering query string key;
- Its value, if any;
- View directory from the URL;
- View directory in the filesystem; and
- View filename, or null if none.
I can probably come up with a better design that will encapsulate the request better than this, mind.
Aesthetics
It’s currently not too pretty, but I’ve ideas in my head on how to further improve the interface, part of which involves putting the view heading into the banner, moving the logo down to the footer, putting the navigation in its own horizontal strip, rendering the directory list and image list in a nicer manner, and a host of other thing.
Lossless thumbnails
Using JPEG files for thumbnails in all circumstances is hardly ideal. I think it might be better to experiment with using PNGs instead, especially seeing as they support transparency, which would be useful for the top and bottom borders, and far better than the current use of white there.
Online management
It would be nice to be able to create directories, upload images, and edit descriptions, tags, and the like without having to fiddle around on the server with files. Some kind of simple management interface would be essential, but the question of how that can be done in a secure manner remains and allowing that would remove some of the file-and-forget aspects of Isaac Browser.
A new name
IB4 might have started out as a fork of Isaac Browser III, but even in its current state, hardly any of the original code remains. Of course, it has to stay true to its lineage, so it would still record that it was derived from IB3, but the new name would make it obvious that it’s not the same piece of software. I’ve no good name for it yet, mind. My best so far is to call it Yeats Browser after fellow Sligoman and painter, Jack B. Yeats. Another name that came to mind was PictureBook, but that’s bound to be long gone. Pictoria might be ok, but it has the same problems as PictureBook. Answers on an IP packet to....
Update (June 17th): Pictoria it is! I was chatting with Paul, who uses it for his galleries, and I think I’ll adjust the plans to that it uses a plugin system in much the same fashion as Blosxom. That’ll mean it would be able to have a comment system without having to build it into the core. I also might be able to make some of the parts outlined above use the plugin system.