03rd Sep 2003

FlexiPhoto Collections, Spanning Time

While munching on my over-processed apple cinnamon cheerios this morning, trying to work out whether they were very crunchy, or merely stale, I pondered a FlexiPhoto programming bit I’m working on …

As I’ve alluded to here and there, FlexiPhoto is a web-based photo db. One of the ideas is to group photos together into Collections. Collections reflect a given Location and Time, along with a major category and subcategory. (you’ll see me forever using the phrase “Location and Time”, because it gets at my ThereAndThen.org writeup)

You can generally think of a Collection as something containing photos that were taken at the same time.

Well, until I started talking to Snapper (my wife, Susan) about it. She wisely pointed out that a collection of photos can span days, weeks, and so on. What to do? Pick a starting date? the end? somewhere in the middle?

It’s a great point, and just one more reason why I’m Escaping To New York for a month in October. I want to talk to photographers and others that deal with lots of digital images about this stuff.

So into the code delve I …. Every Collection will span some range of time, from a day to years. That gives a side benefit of being able to say “show me collections that span through December, 1999″. One possible match would be a collection that spans “January 1999 – June 2001″.

I suppose it also leads to the idea that a photo can be flagged in some way if it falls outside the range of its collection date-span. It also leads to the idea of telling a collection to “derive your dates from the timestamps of your photos … find the oldest and most recent, and keep adjusting if need be as I add or remove photos”.

So that’s my project for the next day or two (he said, oh so optimistically).

Along with this, I pondered the UI for entering dates. I want to make things easy for users. Perhaps you should read that as “I want to be as lazy as possible when entering dates, and have FlexiPhoto figure out what the heck I mean”.

Some samples:

  • 1999 – means 12:00:00 AM, January 1, 1999 to 11:59:59 PM, December 31, 1999
  • 2001-03-01 – means 12 AM to 11:59 PM of that day
  • 2002-05 – the entire month of May, 2002
  • 2002-12-25, 2003-02-14 – Christmas 2002 to Valentine’s Day 2003
  • 2001-01-01, 2003 – January 1, 2001 to December 31, 2003
  • 1999-10, 2003-05 – October 1, 1999 to May 31, 2003

Leap years will be accounted for, leading zeros added (”05″ for “5″), and other details checked out. Basic idea is to take the starting time, and roll back to midnight, and to take the ending time and roll forward to 11:59:59 … same idea for months and years.

Assuming I’ve thought this through sufficiently, it becomes easy to add a scanned photo that might be from, say, 1975. You may not have the exact date of a photo, but you know it’s from a certain year. Tell the collection “1975″ as a start date, and then searches will hit it for any date that year.

In putting this down on paper, so to speak, I’m able to work through the idea. I’d love to hear comments on it, but I understand it’s all a bit abstract until I post FlexiPhoto (but I wanted to document and do a blog entry, so this is two stoned birds)

Another topic that comes up, in thinking about this, is what I should do about spanning time for individual photos. My hunch is that to stick with the timestamp of when a photo was taken (as is the case with most digital photos), but to have start/end fields that are optional. If someone (like my wife, to think of an example down the hall) combines elements from several sources into a single image, it may imply a range of time. Consider an “end of year 2003 montage”, one picture with layers of Iraq, the NYC blackout, and some goofy Christmas shenanigan. What’s the time for that? It could well be the range of “year 2003″.

If you made it this far, great! I may well start a Wiki for FlexiPhoto that I distribute in the docs directory, just to show some of the thoughts that lead to design decisions.

Comments are closed.

grupa LGBT