Well, it’s officially ready for public beta testing. I finished the DM Albums™ Plugin for WordPress, which is an embedd
ed version of my online photo album tool called DM PhotoAlbums™. (DM PhotoAlbums™, along with my online file management system called DM FileManager™, will be ready for public beta testing in a few months’ time as well.)
I have been diagnosed with obsessive-compulsive disorder, and while it’s not like Jack Nicholson in As Good as it Gets, it is bad enough that when I get something stuck in my head it’s curtains until I finish it. In fact, Michelle experienced this while I have been working on this post:
Michelle: “Hey, Frank. You want a beer?”
Frank: *glare*
Honestly, who glares at their partner when being offered a beer? I need medication. But the beer will cover it for now. Vicious cycle.
Back to the point, I have no Earthly reason to build this plugin other than that it bothered me that I had links to photo albums in my posts which, if my readers are anything like me, don’t get clicked on. But I definitely want people to see the photos so having the photos in-line is the solution. And, because I’m I’m in the software development business, I am not about to use a service like Flikr for managing my photos. I want things the way I want them, not the way a service dictates I should want them. That feels very “Microsoft” to me.
The more detail-oriented (and dorkier) readers among you may have noticed that I’ve silently been testing my plugin in my blog. Instead of seeing the links to my photo albums (Photo Album: {link}), the photo albums are shown embedded in-line in the post, like this:
You can view a live demo and download the plugin on the plugin’s home page at http://dutchmonkey.com/wp-plugins/dm-albums/.
Nerd Alert: The rest of this post (after the jump) will not include any more English, and will consist entirely of GeekSpeak. But read on, it’s good for you.
The photo album uses the Internet’s most powerful asset: a technology called AJAX. The reason AJAX is so powerful is that it takes existing browser capabilities and combines them to build web pages that don’t “blink” - meaning they don’t require a round-trip to the server every time the user wants to interact with the web page. Traditional web applications (a web application is nothing more than a web page that does something other than simply displaying text and images) were designed using a “post back” which collected information from - for example - a form, then cleared the web browser’s screen, processed the information on the server, and finally spat back another page. This provided a very choppy experience - the screen shows information, you click something, the screen goes blank, and then a new page is shown (blinks). This process was doomed to limit the utility of the web browser as an application platform: the choppy nature of the application-user interaction was very different from how desktop applications such as e-mail and word-processing applications behave, thereby confusing users and creating a sense of distrust.
In those days, the only way to have a web application that didn’t “blink” was to use a browser plug-in. A browser plugin is a third-party application that users had to download and install in order to use the web page. Common plugins are the Java plugin or the popular Flash plugin. But, there is a big problem with plugins: they have to be downloaded and installed, and they have to support the type of operating system the user is using (Apple OS X, Windows, or Linux), and updates have to be installed by the user every time a new version is available. This is a problem because (a) most users are distrustful of downloads, (b) users can make mistakes when installing software, (c) there are a billion-kajillion settings on a user’s computer that can mess up and interfere with the plugin, and (d) most users are not good at keeping up with installing updates to software they already installed.
In short, any software that relies on user-interaction to maintain it is a management nightmare for software developers.
AJAX, however, combines existing browser capabilities in a novel way to provide web applications that have seamless interaction with the user very similar to desktop applications. And, because it relies on capabilities the browser already has, there is no need to install a browser plugin to support the functionality. It is this distinction that gives Internet applications the ability to provide truly powerful web applications that can rival desktop applications in behavior and functionality.
DM Albums™ uses AJAX to provide smooth interaction while viewing the photo album. DM Albums™ is different from other photo management applications in that it strives to provide the highest-resolution photos possible to the user. Simply upload full resolution images to your web site, point DM Albums™ at the directory they are located in, and DM Albums™ does the rest, scaling the photos to the perfect size to fit the user’s screen. As if that’s not good enough, it also caches that size of the photo on the server in case it needs to use that size again. The next time it needs to scale the photo, it doesn’t automatically go back to the original, full-sized photo; it will find the photo in the cache that has the nearest size bigger than it needs and scales that one instead, improving performance and lightening the load on your server.
This behavior can be seen right here in this blog post: the photos are scaled to fit the area where the album was embedded in the post. But, if you click “full screen”, the photos will be scaled to fit your screen, whatever your screen resolution may be.
There is an interactive demo on the plugin home page, http://dutchmonkey.com/wp-plugins/dm-albums/ where you can adjust the various settings available to users of the plugin, as well as download the plugin to install on your own server.
One last thing: in this case, “plugin” does not refer to a browser plugin, but instead refers to a WordPress plugin. Where a browser plugin is a piece of software you, the user, needs to install on your computer, a WordPress plugin is a piece of software that an administrator of a blog can install in their WordPress blog - it doesn’t require the user to do anything or install any software.






