Peaceful pond at Ayr Mount

Archive for August, 2006

Reinventing the Photo Album (Part 2)

I would like to expand a little on yesterday’s discussion of the photo album software I am in the process of developing. Specifically, I’d like to talk about the server side changes that I’m planning on making in relation to the Plogger software that I currently use. Suggestions and additional ideas would be super great, so please suggest anything that comes to mind.

Plogger allows users to add images to an album in two ways: either by uploading an image one at a time, or by importing a number of images at once. I never use the upload feature, opting instead to import one or more albums at a time via SFTP. Plogger handles this process via an upload folder on the server side. One may either place images directly in this folder, or create sub-folders to better organize things during the import process. I tend to do the latter step, creating a sub-folder for each album that I create. At import time, Plogger scans the upload folder for items to be added, presenting the user with a list of the folders containing items to be imported. After selecting the desired folder to import, the user is given the opportunity to caption the pictures and move them into an album. Physically, the files get moved from the upload folder into an images folder. The resulting file structure looks something like this:

+ images/
--+ collection_1/
----+ album_1/
------+ image_1.jpg
------+ image_2.jpg
------+ image_3.jpg
----+ album_2/

There are a few problems that I can see with this system. First, thumbnail images aren’t placed in the images folder, but in a thumbs folder instead (which is up at the same level as the images folder). Unlike its sibling, the thumbs folder has absolutely no organization whatsoever. All of the thumbnail images are simply placed in this one folder, ad hoc. I’m not entirely sure what happens if two different images in two separate albums have the same filename. I wouldn’t be surprised if the name collision is not resolved cleanly.

The second issue is that the sub-folders one creates within the upload folder don’t get cleaned up when the images get moved during the import step. As a result, a bunch of outdated, empty folders build up over time. Highly annoying for an obsessive-compulsive organizer like myself.

Finally, what happens if two albums have the same name? Again, I’m not sure that the collision is handled cleanly. The results could be potentially disastrous. Separating two intertwined albums in the database would most likely cause a great deal of headache, and is something I’d rather not have to deal with.

So here are the changes that I am proposing for my new, custom system. First of all, thumbnail images will be placed with each corresponding album, in a nested “thumbs” folder (to keep the root album folder as clean as possible). Second, the upload folder will be properly cleaned out when importing images. Empty albums will be discovered and removed as necessary. Third, albums will be date stamped. For example, if I uploaded an album today using a folder name of “eno_river”, the resulting album name in the images folder would be something like “20060829_eno_river.” This would help prevent name collisions on the album level, and would provide a nice chronological ordering on disk (not that that really matters).

This is how I am planning on proceeding with my new album package. Thoughts? Suggestions? Both are most welcome. This project is still in the early stages of development, and things are still quite malleable.

Update: I want to emphasize that I will not be using the filesystem to do logical organization and naming for each album and image. My album package will use a MySQL database to accomplish this, storing caption data, album data, and EXIF data as necessary. The organization on disk is simply a convenience, to help keep things orderly. Kip makes some good points in the comments in this post, some of which may result in modifications to my current plan.

Reinventing the Photo Album

I’m slowly working on a replacement for the Plogger software that I’m employing here at this site. Plogger works well enough, but there are enough bugs and “misfeatures” in it to motivate me to write my own package. In the process, I’m learning how to manipulate the file system through PHP, and make use of various cryptographic techniques (for security purposes), both of which are new PHP topics for me. Thankfully, PHP makes all of it very easy.

Here are a few things I’m planning on changing in my new photo album package:

  • Albums will be sorted based on date, providing a better chronological ordering.
  • EXIF data will not be hidden by default.
  • Photos will be better organized on the server side.
  • The old “slashes in the photo captions” bug will be fixed.

Progress is slow, but I hope to have something working within the next month or so. I’m also working on a new theme for this site, which is also coming along nicely. It might debut along with the new photo album software, so keep your eyes peeled.

Extension Updates for Beta 2

New builds of CoLT and Googlebar Lite are now available over at Born Geek. The new version of CoLT (2.1.1) adds support for Bon Echo beta 2 builds, as well as two new translations (Chinese Traditional and Danish). Likewise, the new version of Googlebar Lite (4.3.1) adds support for Bon Echo beta 2, and a new Arabic (ar) translation.

In completely unrelated news, I posted a new photo set today. My dad and I hiked around Occoneechee Mountain State Natural Area this morning. I’ll certainly be glad when cooler weather arrives. I’m tired of all this heat!

Bon Echo Beta 2

The second beta build of “Bon Echo” (what will become Firefox 2.0) is nearing completion, so I am officially switching to the nightly builds for my browsing needs. And I’ve already been quite pleased. By default, the nightly builds come configured to use the nightly update channel. Through this channel, you can receive each day’s updates just by using the Help » Check for Updates… menu item in Firefox. They get downloaded, applied, and the browser is restarted. And with the new session saver feature in Firefox, you start right back where you left off when you downloaded the updates. How cool is that?

I still dislike the theme, and the list of bugs written against it continues to grow. Thankfully, the list of fixes is also seeing some growth. Hopefully things can get polished up by release time.

Sometime at the end of this week, or perhaps this weekend, I will be updating both CoLT and Googlebar Lite to work in the beta 2 builds (stupid maxVersion, grumble, grumble).

Moving Very Slowly

For whatever reason, I’ve been in an incredibly lazy mood over the past several weeks. Every day brings a new stretch of boredom, and I don’t know what to attribute it to. Perhaps I need a vacation. Thankfully, I’ll be taking one in two weeks. A new PC game couldn’t hurt either. I recently realized that I’ve been growing more and more tired of the games I’ve got. This past weekend, I reinstalled Quake 4, to try out its dual-core support. Although it was an enjoyable experience, it felt hollow. A new experience would be most welcome, but sadly there aren’t any games on the market that pique my interest. Prey looks interesting, but I’m not willing to pay $40 for it. Oh how dry the well seems to be!

In other random news, I’m working on a new theme for this blog. It’s still in the concept stage, but maybe I can get it up sometime this fall.

Zalman VF-900 Install Process

Not too long ago, I posted a Zalman VF900 review and, due to my lack of a digital camera at the time, failed to post any images about the install process. Now that I have a camera, and due to my recent computer rebuild, I have posted a small photo set of the install process.

This time around, installation was much easier since I knew what to expect. Thankfully, the stock cooler on the eVGA GeForce 7900GT was easy to remove, unlike my previous card. And the Zalman cooler is, as always, a snap to install. Although I don’t have any current screenshots, my temperatures on this new card are phenomenal. The idle temperature stays around 40 degrees Celsius, and the highest load temperature I’ve seen has been a paltry 45 degrees! As I said before, I highly recommend the Zalman cooler; it truly works wonders.

Overhaulin’

This weekend I had the great fortune of rebuilding my personal computer. It turned out to be quite an experience, and surprisingly frustrating at times. Before I detail the problems I ran into, here’s a list of the new components I put into it:

  • Asus A8N5X motherboard
  • AMD Athlon 64 X2 4400+ CPU (dual core)
  • 2GB Corsair XMS DDR400 SDRAM
  • Antec SmartPower 2.0 500W Power Supply
  • eVGA GeForce 7900 GT 256MB
  • 2 Seagate Barracuda 160GB SATA 3.0 GB/s hard drives

I have also put up a small photo series detailing my progress, for those interested (more on this in a moment). Fortunately, it doesn’t contain any photos of my frustrations.

After assembling everything in the system, I plugged it in and turned it on. For a fraction of a second, the system begins to boot; after that, nothing but silence. I try again, with even worse luck the second time: nothing happens at all. Panic instantly sets in. Frustrated, I surf the web looking for answers but come up empty handed. My dad suggests that it sounds like power supply issues so, one by one, I disconnect every device from the supply. After getting down to just the motherboard, CPU, and memory, things begin working. Slowly but surely I replace the items and, to my delight, everything eventually works.

I tried out Windows slipstreaming for the first time, and was pleasantly surprised with how well it worked. I was able to load Service Pack 2 instantly, bypassing the oh-so-annoying Windows update process. Interestingly enough, I still had a total of 55 critical updates to be applied, and even more for Microsoft Office. I’m slowly getting things back to normal, and I look forward to doing a little gaming in the near future.

I’ll have another Zalman VF-900 blog post here soon, detailing the install process (as well as my second no-power adventure with my new machine).

As I noted earlier, I have posted a photo series here at this blog covering my computer building experience. I am trying out the Plogger photo gallery software for my photos, so feel free to check out my main collection (I have replaced Plogger with Monkey Album, my own photo album software). Plogger has a few bugs, and a few features I dislike, but I’m going to try it out for a while (until I can write my own). If you see a problem anywhere in the gallery software, let me know. Hopefully things will work as they are intended to.