jscroft posted on September 27, 2007 19:16
Both of our regular readers will be happy to know that the TDH calendar is back online.
Each of the Dead Hands has a personal calendar—see the Dead Hands menu for those—and there's a combined calendar on the home page, so you'll never have to miss hearing one of Robert's interviews live. Not by accident, anyway.
The astute reader will have noticed that the new calendar functionality is provided by Google Calendar, and in fact that the personal calendars are very functional and even quite attractive. Why, then, is the one on the home page so damned ugly?
The short answer is that we're lucky it works at all. Embedded Google Calendars like the ones on TDH are generated by passing a long URL query into an IFRAME tag... for the uninitiated, this basically means that we're opening up a Google web page smack in the middle of our own. On the personal calendar pages, this works just fine. When we moved the tag to the home page, though, it broke... and not every time, but only about nine times out of ten. That spells intermittent error, and for us Web guys it rhymes with migraine.
Even worse: the error breaking the IFRAME—a script error, if you care—was happening inside the IFRAME! That put it completely out of our reach, in terms of troubleshooting, and meant we were stuck with the error until somebody at Google decided to look into it.
The bad news is that Google's sweet new embedded calendar is still broken. The good news? Their ugly OLD embedded calendar still works... and you can switch from one to the other simply by altering one term in the URL. Originally, our IFRAME SRC was:
http://www.google.com/calendar/embed?title=TDH%20Calendar&mode=AGENDA&height=300&wkst=1&bgcolor=%23FFFFFF&src=jscroft%40gmail.com&color=%23B1440E&src=61d1fjojq23o8vo547le44srdo%40group.calendar.google.com&color=%23528800&src=rgw%40argee.net&color=%235229A3&src=usa%40holiday.calendar.google.com&color=%230D7813
To get it working, we changed it to:
http://www.google.com/calendar/htmlembed?title=TDH%20Calendar&mode=AGENDA&height=300&wkst=1&bgcolor=%23FFFFFF&src=jscroft%40gmail.com&color=%23B1440E&src=61d1fjojq23o8vo547le44srdo%40group.calendar.google.com&color=%23528800&src=rgw%40argee.net&color=%235229A3&src=usa%40holiday.calendar.google.com&color=%230D7813
See the difference? We just changed embed to htmlembed, and that did the trick. When Google comes to their senses, we'll just change it back, and we should be sitting pretty.
Incidentally, I wish I could take credit for this hack, but I can't. The credit belongs to the folks burning up the comment form at Linden LAN. Good going, fellas!