Here’s one of my favorite scenes from the movie Brazil,
Sam Lowry (Jonathan Pryce): Are you from central services?
Harry Tuttle (Robert De Niro): Hah! They’re a little overworked these days. Luckily I intercepted your call.
Sam Lowry: Can you fix it?
Harry Tuttle: No, but I can bypass it with one of these.
Back in 2003, my InfoWorld column APIs, protocols, and rogue plumbers made three points:
-
The web of data shouldn’t require the services of Harry Tuttle.
-
Unfortunately it still does.
-
Fortunately the web’s architecture (a series of tubes) enables Harry to intervene when he must.
Those points are all still valid in 2011. From time to time I still have Harry Tuttle moments. Today’s involved the campus events system at my alma mater, the University of Michigan. In the current phase of the elmcity project I’m rebuilding hubs in various cities in order to dramatically beef up the number of feeds and quality of tagging. Ann Arbor’s hub was conspicuously lacking feeds from the University of Michigan. When I investigated I found that the central service, http://events.umich.edu, does offer iCalendar feeds. Yay! You can’t take that for granted, many if not most schools don’t make their public calendars available in a machine-readable way. Unfortunately there’s a problem with the feeds produced by the UM service. They’re invalid. You can’t load them into an iCalendar-aware program like Google Calendar or Outlook, and the elmcity engine can’t aggregate them.
I reported the problem to central services and have been awaiting a fix for some time. Today, because I wanted to get my hands on that data, I unleashed Harry Tuttle. There are two major problems with the iCalendar export from events.umich.edu. First, the lines of text aren’t properly folded. Second, the timezone properties don’t refer to a timezone definition. So I made a filter that fixes these major problems (plus some other minor ones). Here’s what the filter does:
Original: http://jonudell.net/data/failed-ics-umich.ics.txt. Validation result: Unparseable.
Line-folding fixed: http://jonudell.net/data/fixed-ics-umich.ics.txt. Validation result: Better.
VTIMEZONE added: http://jonudell.net/data/clean-ics-umich.ics.txt. Validation result: Valid.
Then I used the filter to add a bunch of feeds to the hub. Here’s one for the Taubman Health Services Libraries, and another for the Gerald R. Ford Presidential Library. These merge with other library feeds, notably from the Ann Arbor District Library, in the hub’s top-level library view.
Now, where do I fill out that twenty-seven-B-stroke-six form?
From Wikipedia’s Brazil_(film) page:
The reference to form 27B-6, without which no work can be done by repairmen of the Department of Public Works, is a reference to George Orwell, who lived at 27B Canonbury Square Apartment 6, while writing Nineteen Eighty-Four.
This is part of the calendar / events plumbing picture for the foreseeable future: “filters” or “fittings” which correct input as it comes in.
Yep. So if you happen to have an iCalendar feed with misfolded descriptions, a missing Eastern VTIMEZONE, and bogus categories, you can filter it using http://elmcity.cloudapp.net/DiscardMisfoldedDescriptionsAndBogusCategoriesThenAddEasternVTIMEZONE?url=…
That’s how I’m fixing the UM feeds for now. I hate to think that this will evolve into a parameterized service that fixes a bunch of different pathologies, but probably that’s exactly what will happen.
Yes you can filter the feed but it’s just not the same. Silly iCalendar.