Timeline

You can't see it, but when I access this site I see a timeline of past and future tasks and appointments at the top of the screen that's infinitely scrollable. You can't see it in place, but you can see what the timeline looks like by visiting this link. Go ahead, I'll wait.

I'm using technology from MIT's Semantic Interoperability of Metadata and Information in unLike Environments project called Timeline. It reads the contents of an XML file and plots it on a time map that you can scroll. It's pretty nifty stuff.

I already have a Scheduling webapp that I use to keep track of appointments and tasks, so it seemed a natural fit to combine the two and give myself a much more interactive calendar than I was using before. I really like the rich prospect -- to use the terminology of a friend of mine -- that the application gives me. I can see specifically what's coming up for the next week to two weeks, depending on how wide I have my browser, in general how many tasks/appointments are coming up for the next month and how many have already passed by, and even see an entire year's worth of data all in one glance. It's much more useful than what I was using previously, in that I can go back in time without leaving the page.

I built an exporter to pull the scheduling information out of the database and migrate it to a format that Timeline can understand. I also decided this would be a perfect time to add some functionality to the scheduling app, such as start/end times and activity types. I built the exporter so that it would change the text color and icon for each entry in the timeline based on activity type, deadline (is it past due?) and completion status. If it's complete, it turns green and gets a checkmark; if it's overdue, it turns red and gets a red flag. Appointments, tasks, activities, and deliverables get individual icons so I can see what each entry is at a quick glance. I used a combination of the Mini Icon set, and Mint icon set from FamFamFam. I also grabbed the API source from MIT and installed it locally in an attempt to reduce the latency of the timeline's display. There is still a slowdown due to the actual data being pulled from a remote server, but unless I decide to migrate the database over this is something I can't avoid.