January 7, 2005

Status Update: January 7, 2005

(This is a cross-post from my Web Photos Pro website.)

As the deadline for releasing Web Photos Pro gets nearer, events are conspiring to keep the final release date yet another “two weeks away".

What’s happening now you might ask? Well, first I’m in the middle of converting the Web Photos Pro website to a new design (you can get a sneak peak here) – and it’s taking longer than I’d expected. I’m using Wordpress, which is great, but I’m having to hack it to get things like user quotes to appear on the right side of the home page, but categories to appear on the right side of the inside pages. I’ve also got some database work to do in order to automatically send out demo keys, and license keys to people who buy the product.

All that’s going fine, but I haven’t had much time to work on the upgrade because…we’re moving! In fact we’re moving so far from civilization that I’ll be stuck with a net connection that’s slower than than the one…well, since I can’t remember when. That’s right, just as crunch time approaches we’re moving from a place with broadband (DSL to you Yanks), to a place where I’ll be lucky to get 44K over a modem!

Which means that instead of upgrading the website I’m packing boxes, and doing all of the hundreds of things that have to be done before we leave on Sunday.

Where are we going? Back down to Cornwall! You may or may not know that I have a weblog called A Year In Cornwall. It might be more properly called “An Interrupted Year In Cornwall", as last April we had to move out of Cornwall and up to Leatherhead, a suburb of London (about 45 minutes south by train). During that time I’ve been turning what started out as a hobby – writing a program to make it easier to get my photos onto the web – into a full fledged product.

That process has been harder than I’d expected. One problem is that I keep feeling like I can’t release the product because it isn’t quite good enough. Then there’s the website to build, the documentation to write, the support forum to set up, the support questions to answer, never mind figuring out how to sell the product, and oh yes, finding time to do a little coding on the product.

So here it is, January 7, and where I’d hoped to release on January 2, and then on January 9, I’m afraid the release date is going to get set back yet again. How long you (and my wife Rachel) might be wondering. Let’s see, we’re moving on Sunday the 9th, it’ll take at least 2 days to get everything set up down there, at least a week of work to finish the new site and database programming, test, upload, retest…hmmm, sounds like about two more weeks.

All in all, I think we’ll see final somewhere before the end of January.

Until then, stay well.

– Frank

Posted by: Frank @ 10:23 pm — Filed under: Comments (0)

August 31, 2004

Searchable Photos: Part IV - XHTML Questions

The full “Searchable Photos” thread now includes:

  1. How To Make Photos More Searchable (Part I)
  2. Searchable Photos: Part II
  3. Searchable Photos: Part III
  4. Searchable Photos: Part IV

I have finally gotten my Web Photos Pro product to a place where I feel like I can breathe for a bit. The last three or four months have been an endless cycle of new features, bug fixes, and beta releases. So much so that I’ve felt a bit like Judy in Punch in Judy (ergo the photo that adorns this entry) – though I suppose it could also be due to the broken rib I got last week while mountain biking, the rib that’s been making me yelp with pain whenever I sit, stand, lie down, roll over, or rotate in just about any direction.

With this latest release, 1.0b12 (beta 12), out the door, I feel like I can get off the treadmill for a minute and do a couple of things that don’t involve programming – things like pay the bills, clean up my office floor, write documentation for Web Photos Pro, write some entries for this weblog, and get the PhotoRSS web site fleshed out. And oh yes, spend some time with the family.

Never one to do first things first, I decided to spend some time on the PhotoRSS web site. But I got stuck pretty quickly because I wasn’t sure how to go about extending XHTML. I know it can be done, but I’m not sure of all the details, and I don’t know if it’s possible to do it the way I’m thinking about. I looked at the docs, and I looked at various examples, and I found my eyes glazing over. Very quickly I came to the conclusion that it’s just like doing my taxes – it’s a heck of a lot quicker, and a lot less painful, to call in the pros. So here I am, calling all you XHTML pros.

Before My Questions: Some Background
(If you’d rather skip straight to the chase, you can jump down to “The Four XHTML Questions” below.)

Those of you who have been following this blog know that I’m very interested in making my photos more searchable. There are various ways that this can be done, and I’ve started to write up three ideas on the PhotoRSS web site.

Of the three ideas, the first two are relatively straightforward. The first involves creating a photo-centric XML namespace for RSS. I’ve done something similar before, when I was working   with   some   interesting   characters at Wired Digital. One of my skunk projects involved adding RSS 2.0 output to Lycos New and Wired News searches. One of the things I wanted to support was the ability to page through the RSS search results, and to do that I defined an XML namespace xmlns:WiredNewsSearchResults which provided things like number of results, next and previous links, etc.

The second proposal involves creating a new RSS-like format for photo syndication. While at Wired Digital I did a lot of work with XML. Not only did I architect, design and implement the first all-XML-transport site at Lycos (all communication between the front-ends and eight different back-ends used with Lycos News was via XML), but I was instrumental in getting Lycos to change all of its middle and back-ends to serve up XML, so that data could be reused anywhere on the network. No longer was adding a stock ticker to a web page a major project involving cross-group coordination and development, rather it became a simple 15 minute exercise to get and format some XML data.

But it’s the third proposal, the one about defining an XHTML tag that’s giving me trouble.

What Do I Want?
I want search engines to stop having to guess what my photos are about, I want them to know what they’re about. When I search for “Sunset over Daymer Bay” on Google I want to get back this and this, not this.

The way things are today, the best any search engine can do is look at the text and html near an image, and from it hazard a guess as to what the image is about. When you look at this photo search, I’m not sure whether we should be pleased by how many correct pictures were found, or disappointed at how many unrelated pictures there are. Whatever your thoughts, I think we can all agree that not only would it be nice if photo search results were more accurate, but it doesn’t seem as though it should be a particular hard problem to solve.

Two Different Ways To Make Photos More Searchable
To make photos more searchable the information about the photo – the title, description, keywords, location, etc. – must be made explicit. And there are only two ways that this can be done: 1) you can embed the data in the photo, or 2) you can bind the data to the photo’s <img> tag.

Many cameras already embed data in your photos, using the EXIF portion of the JPEG header. The big benefit of EXIF is that the data stays with the photo – link the photo to a web page and it’s there, email the photo to me and the EXIF data gets emailed too. But there are so many downsides – the data is invisible to the human eye, the photo has to be opened to see if it has embedded data, EXIF data is not as structured as it needs to be, the format has some severe limitations, most resizing programs do not keep EXIF data intact, EXIF editing is difficult to do, and the data cannot be context dependent – that it’s pretty obvious that EXIF is not the right way to solve this problem (at least not in the foreseeable future).

This leaves us with only one way to make photos more searchable – by finding a way to bind a photo’s data to its <img> tag. And this problem, how to best bind photo data to the html <img> tag, leads me to ask the following four questions about XHTML.

Continued at PhotoRSS.org »

Posted by: Frank @ 12:40 pm — Filed under: Comments (0)

June 12, 2004

Cross-post From My “Web Photos Pro” Weblog

Last July, before we left the States, I purchased a Canon EOS D10 digital camera. I was determined to use it to record our time abroad, and when I started this weblog I decided to include at least one photo on every entry. If you’ve read the weblog at all, you’ll know that all of the entries have at least one photo, many have two or three, and several, like the time Nathaniel and I rode the steam trains in Bodmin, have ten or more photos.

And there would be a lot more photos in this weblog if converting them to the right sizes, into the right format, and getting them into the right folders on my server weren’t all such big hassles.

One of the reasons that posts to this weblog have been so far and few between lately is that I have been been working on a product to make the process of getting photos ready for, and onto the web, simple and painless. That product, currently called “Photo Album", is just about finished. I’m testing the iPhoto connectivity right now, have just started the documentation (of which this entry is the first baby step), and should have a first beta release late next week.

In the meantime, there’s more on the other web site about “Who Is “Photo Album” For?". So if you’re curious who the product is targeted at, then wander on over and read the whole thing.

Posted by: Frank @ 2:23 am — Filed under: Comments (0)

March 5, 2004

Searchable Photos: Part III

Last October I wrote a piece entitled How To Make Photos More Searchable. I wrote it because I wanted to, well, make my photos more searchable, both locally, and from search engines such as Google.

But I also wrote it because I was frustrated by how hard it was to get photos up on my weblog. First I’d download from my camera to iPhoto. Next I’d copy the images I wanted to use to a temporary folder, and then open them in Photoshop where I’d resize and make thumbnails. After that I’d upload the various files via FTP, and finally I’d add some <img> tags to the weblog entry. All this could easily take 30 minutes minutes or more, and it made me quite grumpy (and still does).

In November I wrote a followup piece entitled Searchable Photos: Part II, where I described my camera, computer and weblog setups, and a wish list of things I’d like to have to make my photo to weblog life easier. The wishes included reducing the number of steps it takes to get a photo from camera to web, creating thumbnails automatically, displaying photos on my weblog entries as well as in album format, setting and displaying GeoURL and EXIF information, and of course making them more searchable.

Since early January I’ve been working hard on a product that I think will satisfy most of those wishes in the first version, and all of those wishes in followup versions. And I’m happy to say that the product is just about ready for release.

It’s a two part product. The first part is a photo album program called “Photo Album” (until such time as I can think of a better name) that runs on both Mac and PC. With it you can build photo albums, view the photos, add information to each photo such as Title, Description, Date, Location, Keywords and GeoURL. And you can even see, and add to, the EXIF information stored in the photo’s JPEG header (well, you’ll be able to as soon as I finish the EXIF parsing code).

The second part of the product is PHP-based software, called “Photo Album Server", that displays your photo albums as dynamically generated web pages. In addition to being able to display your albums and photos in customizable templates (and in various thumbnail and full image sizes), it has search capability, can display EXIF data, and lets you create public or private photo albums (the private albums are password protected). And don’t worry, if you don’t have a server that runs PHP, “Photo Album” (the Mac/PC program) can create great looking photo album web pages that can be displayed on any web server.

But that’s enough tease for now, I’ve got to get back to the coding grind.

I’ll be adding more information about the products and the release schedule over the next couple of days, so come back and visit us soon.

And if you want to be a beta tester, drop me a line.

p.s. I have a new weblog devoted to the product over at http://photoalbum.backtalk.com/

Posted by: Frank @ 4:19 pm — Filed under: Comments (0)

November 5, 2003

Searchable Photos: Part II

When I was in Italy I ate alone at lunch and dinner. There’s nothing worse than having to look like you’re enjoying dining alone (with nothing more interesting to do than look at your fellow diners all evening), so I would either bring a book to read, or a pen and paper to make lists.

One evening in Florence I made a list of features I wanted in photo gallery software that I could use with this weblog. When I came home I took a second look at that feature list in the context of the comments I received on How To Make Photos More Searchable.

Here’s what I came up with.

Step 1: My Situation

  1. Camera: I have two cameras, an EOS-10D and a Sony Cyber-shot DSC-P72. I had an EOS film camera for many years, so making the step to using a digital back with my existing lens was a no-brainer once one with enough features became available. I like to put the Sony in my pocket when the EOS is too bulky for where we’re going, e.g. hiking with the kids.
  2. Photo Software: I use iPhoto on an iBook to store my photos. I use Photoshop Elements 2.0 to resize the images for the web and create two sizes of thumbnails. I use ftp to move the variously sized images to my web server.
  3. Weblog: I use MovableType. I tried a couple of other packages, but for no particular reason, other than it was good enough, decided on MovableType. If I had it to do over again I might use PHPNuke, but it’s not worth the hassle of starting all over again at this point.
  4. Servers: I have a server sitting at a colo in San Jose that serves this site. I have an identical MovableType setup on my home PC so I can write entries locally without being connected to the net. I do this partly because I only get 33.6K connectivity here in Cornwall, but also so I can hack the site and not impact my server.
  5. Programming: I program in most anything – except Perl. I’ve always disliked command lines and shell scripts, and Perl reminds me of a big shell script. On the other hand, the palette of stuff we sent from the States that’s arriving later this week has a Perl book in one of the boxes, so I may dig into it a bit more next week (and I’ll let you know if I change my tune).

    My current favorite programming tools are PHP and MYSQL, as well as the excellent Zend Studio development environment. I used ASP a lot at Wired Digital (aka Terra/Lycos), but I prefer PHP’s syntax, features and capabilities. For database work I find MYSQL easier to install and use than SQLSERVER; and of course there is the cost issue to consider as well.

  6. Photo To Weblog Process: The process of getting photos from my camera onto my weblog looks like this:

    1. Use camera to take photos
    2. Connect camera to iBook
    3. Import photos into iPhoto
    4. Drag photos I want to use on the weblog from iPhoto into a /temporary directory in the Finder. A copy of each dragged photo is created in the /temporary directory.
    5. Use PhotoShop Elements batch capability to create 650 width large images, 150 width thumbnails and 60 width mini-thumbnails.
    6. Use FTP to move large, thumbnail and mini-thumbnail images to separate directories on this web server
    7. Write weblog entry. Insert photo by placing an <img> tag in the html.

Step 2: My Wish List

The wish list I’ve come up with is a direct result of the camera and weblog setup I have, and my desire to do more with geoUrl and GPS information.

  1. Simplify my photo to weblog process by reducing the number of steps it takes to get a photo from the camera to the web server.
  2. Add geoUrl or GPS info to my photos.
  3. Display photos (as pinpoints or mini-thumbnails) on a map using the embedded geoUrl or GPS info.
  4. Create thumbnails automatically on the web server rather than by hand using PhotoShop Elements. (It would be nice if I could create thumbnails that were as small (filesize) as those created by PhotoElement’s “Save For Web” feature.)
  5. Make it easy to add thumbnails, mini-thumbnails or mini-thumbnail galleries to a weblog entry (must be even easier than using <img> tag.)
  6. Display photos in gallery format.
  7. Display photos in multiple large format sizes as is done at photo.net.
  8. Expose EXIF, geoUrl and GPS info when the photo is displayed

Step 3: Next Steps

Do, or figure out how to do, the following:

  1. Add geoUrl or GPS data to EXIF headers of photos in iPhoto. I guess I need something like RoboGeo running on my Macintosh. And oh yes, a GPS receiver.
  2. FTP photos from iPhoto to my web server.
  3. Create thumbnails on my web server (probably using iMagick)
  4. Create a simple PHP-based API that I can use to display thumbnails and photos on my weblog entries.
  5. Write a simple, PHP-based, template driven, photo gallery viewer.
  6. Read and display EXIF data using PHP.

I’ve already started working on some of these items. My plan is to release anything I do as open source. I’ll post updates as things become available.

Online Research

As part of writing this entry I visited all of the sites suggested by comment writers. I also looked on the web for photo gallery software, or anything else that was somewhat related, e.g. EXIF and GPS. I found a number of interesting sites, all of which I’ve listed here.

General Searches

PHP Gallery Software

Other Gallery Software

GPS Hardware and Software

Mapping Software

Anyone know of a web site on which I can create a map with multiple waypoints? How does Blog Mapper do it?

Other Bits and Bobs

Posted by: Frank @ 11:06 pm — Filed under: Comments (0)