<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Jon Udell</title>
	<atom:link href="http://blog.jonudell.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jonudell.net</link>
	<description>Strategies for Internet citizens</description>
	<lastBuildDate>Fri, 03 Feb 2012 22:23:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.jonudell.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Jon Udell</title>
		<link>http://blog.jonudell.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.jonudell.net/osd.xml" title="Jon Udell" />
	<atom:link rel='hub' href='http://blog.jonudell.net/?pushpress=hub'/>
		<item>
		<title>The memory palace</title>
		<link>http://blog.jonudell.net/2012/01/30/the-memory-palace/</link>
		<comments>http://blog.jonudell.net/2012/01/30/the-memory-palace/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 14:28:30 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3191</guid>
		<description><![CDATA[As we increasingly augment our minds I sometimes pause to reflect on the trade-offs we are making. What powers does the unaugmented mind possess? What do we give up when we outsource our memories to the collective electronic mind? In Dilemma of a Cyborg Carina Chocano writes: For everything that&#8217;s gained by our ability to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3191&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
As we increasingly augment our minds I sometimes pause to reflect on the trade-offs we are making. What powers does the <a href="http://blog.jonudell.net/2011/07/21/the-unaugmented-mind/">unaugmented mind</a> possess? What do we give up when we outsource our memories to the collective electronic mind? In <a href="http://www.nytimes.com/2012/01/29/magazine/what-happens-when-data-disappears.html">Dilemma of a Cyborg</a> Carina Chocano writes:
</p>
<blockquote><p>
For everything that&#8217;s gained by our ability to store and maintain more information than ever before, something is lost that has to do with texture, context and association. The science journalist Joshua Foer, author of &#8220;Moonwalking With Einstein: The Art and Science of Remembering Everything,&#8221; said in a lecture to the Royal Society of Arts that people once &#8220;invested in their memories, they cultivated them. They studiously furnished their minds. They remembered. Today, of course, we&#8217;ve got books and computers and smartphones to hold our memories for us. We&#8217;ve outsourced our memories to external devices. The result is that we no longer trust our memories. We see every small, forgotten thing as evidence that they&#8217;re failing us altogether.&#8221; As we store more and more of what makes us us outside of ourselves, he said, &#8220;we&#8217;ve forgotten how to remember.&#8221;
</p></blockquote>
<p>
The mnemonic techniques rediscovered in <a href="http://www.worldcat.org/title/moonwalking-with-einstein-the-art-and-science-of-remembering-everything/oclc/646111979">Moonwalking with Einstein</a> were first popularized by Cicero. You bind memories to images, and then you bind the images to a path through the rooms and hallways of a &#8220;memory palace.&#8221;
</p>
<p>
Here&#8217;s another technique that isn&#8217;t so well known. I attribute it to Carlton Fisk by way of a story I heard from the baseball writer Roger Angell. Somewhere in the 2000s, Angell asked Fisk to reflect on what had most altered the game of baseball since his playing days. The salaries? The drugs?
</p>
<p>
No. The game-changer, Fisk said, was instant replay. His game-winning 1975 home run is one of most-remembered moments in all of sports. The <a href="http://mlb.mlb.com/video/play.jsp?content_id=19792129&amp;c_id=mlb">video</a> of that event is one of the most-watched clips. You might think that Carlton Fisk has seen that clip a million times. But in fact, he told Roger Angell, he never watches it. That&#8217;s because he doesn&#8217;t want to overwrite the original memory, which is his alone, recorded from a point of view that was his alone, with a memory we all share that was recorded by a camera up in the stands.
</p>
<p>
We can&#8217;t do away with instant replay, nor do we want to. But it&#8217;s worth remembering how to experience life, even when we know it&#8217;s being recorded externally, as if the only cameras are the ones in our heads.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3191&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2012/01/30/the-memory-palace/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Another way to think about geeks and repetitive tasks</title>
		<link>http://blog.jonudell.net/2012/01/09/another-way-to-think-about-geeks-and-repetitive-tasks/</link>
		<comments>http://blog.jonudell.net/2012/01/09/another-way-to-think-about-geeks-and-repetitive-tasks/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 16:08:38 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3183</guid>
		<description><![CDATA[The other day Tim Bray tweeted a Google+ item entitled Geeks and repetitive tasks along with the comment: &#8220;Geeks win, eventually.&#8221; Here&#8217;s the chart posted on Google+ by Bruno Oliveira: A couple of things bothered me about this. First, there&#8217;s the adversarial tone. The subtext is a favorite geek quotation: First they ignore you, then [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3183&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
The other day Tim Bray <a href="https://twitter.com/#!/timbray/status/154976685773684736">tweeted</a> a Google+ item entitled <a href="https://plus.google.com/102451193315916178828/posts/MGxauXypb1Y">Geeks and repetitive tasks</a> along with the comment: &#8220;Geeks win, eventually.&#8221;
</p>
<p>
Here&#8217;s the chart posted on Google+ by Bruno Oliveira:
</p>
<p>
<img style="border-style:solid;border-width:thin;" src="http://jonudell.net/images/geeks-win-eventually.png">
</p>
<p>
A couple of things bothered me about this. First, there&#8217;s the adversarial tone. The subtext is a favorite geek quotation:
</p>
<blockquote><p>
First they ignore you, then they laugh at you, then they fight you, then you win.
</p></blockquote>
<p>
That gem is often attributed to Gandhi. Wikiquote <a href="http://en.wikiquote.org/wiki/Mohandas_Karamchand_Gandhi">disputes</a> that and finds a close variant in <a href="http://books.google.com/books?id=QrcpAAAAYAAJ&amp;pg=PA53&amp;dq=%22First+they+ignore+you%22#v=onepage&amp;q=%22First%20they%20ignore%20you%22&amp;f=false">Nicholas Klein&#8217;s 1918 speech to the Amalgamated Clothing Workers of America</a>. Either way it&#8217;s the story of a persistent underdog overcoming an oppressor.
</p>
<p>
In geek ideology the oppressors are pointy-haired bosses and <a href="http://jonudell.net/udell/2005-04-28-those-clueless-users.html">clueless users</a>. Geeks believe (correctly) that clueless users can&#8217;t imagine, never mind implement, automated improvements to repetitive manual chores. The chart divides the world into geeks and non-geeks, and it portrays software-assisted process improvement as a contest that geeks eventually win. This Manichean worldview is unhelpful.
</p>
<p>
But the chart also fails to capture the reality of repetition and automation in the realm of information systems. Here&#8217;s an alternative world view that I choose to imagine and strive to create:
</p>
<p>
<a href="http://jonudell.net/images/alternate-view-of-automation.png"><img style="width:500px;border-style:solid;border-width:thin;" src="http://jonudell.net/images/alternate-view-of-automation.png"></a>
</p>
<p>
In this view of the world, tasks that involve data manipulation (as so many modern chores do) are undertaken by teams. There is an infinite supply of manual chores. Everybody tackles them. Ideally there is one member of the team I call the toolsmith. Working shoulder to shoulder with the team, the toolsmith spots an opportunity to automate some piece of the work, writes some code, deploys it, observes how it gets used (or doesn&#8217;t get used), assesses its impact (or lack of impact), and then iterates on the code. Meanwhile the toolsmith keeps working alongside the team, chipping away at the never-ending and always-evolving list of manual chores, looking for more opportunities to automate, and exploiting them in an incremental and collaborative way.
</p>
<p>
Software-assisted automation of repetitive work isn&#8217;t an event, it&#8217;s a process. And if you see it as a contest with winners and losers you are, in my view, doing it wrong.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3183&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2012/01/09/another-way-to-think-about-geeks-and-repetitive-tasks/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>

		<media:content url="http://jonudell.net/images/geeks-win-eventually.png" medium="image" />

		<media:content url="http://jonudell.net/images/alternate-view-of-automation.png" medium="image" />
	</item>
		<item>
		<title>When 2.0: Scheduling the Internet of things</title>
		<link>http://blog.jonudell.net/2012/01/04/when-2-0-scheduling-the-internet-of-things/</link>
		<comments>http://blog.jonudell.net/2012/01/04/when-2-0-scheduling-the-internet-of-things/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 14:23:30 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3180</guid>
		<description><![CDATA[Before my podcast went AWOL I had been meaning to interview Toby Considine about his efforts to mesh schedules for things with schedules for people, and to define Internet calendaring extensions for that purpose. So when Phil Windley wrote to ask me how I thought calendaring might relate to the personal event networks he wants [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3180&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
Before my podcast went AWOL I had been meaning to interview <a href="http://www.newdaedalus.com/aboutme/">Toby Considine</a> about his efforts to <a href="http://www.automatedbuildings.com/news/dec11/columns/111129033202considine.html">mesh schedules for things with schedules for people</a>, and to <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ws-calendar">define Internet calendaring extensions</a> for that purpose. So when <a href="http://windley.com/">Phil Windley</a> wrote to ask me how I thought calendaring might relate to the <a href="http://www.windley.com/archives/2011/08/curation_in_the_small_personal_event_networks_and_getting_things_done.shtml">personal event networks</a> he wants to bootstrap, I suggested that we ask Toby on an episode of Phil&#8217;s <a href="http://itc.conversationsnetwork.org/series/technometria.html">Technometria podcast</a>.
</p>
<p>
Phil, I suspect, is actually one of five identical quintuplets. One teaches at BYU. Another runs a startup called <a href="http://www.kynetx.com/about/">Kynetx</a>. A couple of others take care of family, church, and political matters. Finally there&#8217;s the one who does a podcast and also serves as executive producer of ITConversations. I don&#8217;t think I could handle being a quintuplet but it&#8217;s lucky for all of us that Phil can!
</p>
<p>
It was a real pleasure to meet Toby and learn about his comprehensive vision for a world in which our buildings, our cars, and our energy grid work with us, appearing as the intelligent agents that science fiction always encouraged us to imagine. One of his favorite examples involves a meeting room that&#8217;s scheduled for a 9AM meeting. A really intelligent system wouldn&#8217;t start heating or cooling the room at 9AM, it would start sooner. How much sooner? That would depend on the number of people attending.
</p>
<p>
Orchestrating that kind of dance requires the sort of loosely-coupled event-driven programming at the heart of the Kynetx technology that Phil is creating. Toby is layering that orchestration on top of existing Internet standards: iCalendar (for events), vCard (for resources), LDAP (for directory services). I love that approach for two reasons. First, I&#8217;m forever being reminded that we have barely scratched the surface of what might be accomplished with these existing standards if we really put them to use. Second, I violently agree with Toby that automated systems need to build on the standards that people actually use.
</p>
<p>
Toby chairs the OASIS Web Services Calendar Technical Committee and is an editor of the <a href="http://docs.oasis-open.org/ws-calendar/ws-calendar-spec/v1.0/cs01/ws-calendar-spec-v1.0-cs01.html">WS-Calendar</a> specification. If standards whose names begin with WS- give you the heebie-jeebies, take a deep breath. I guess at some point there will be a SOAP profile for WS-Calendar but for now it&#8217;s a straightforward set of iCalendar extensions that define intervals, sequences, and relationships.
</p>
<p>
The web succeeds, in part, because its atomic particle &#8212; the hyperlink &#8212; can be manipulated both by automated systems and by people. When systems use hyperlinks it&#8217;s called RESTful web services. When people do it&#8217;s called emailing links. We tend to <a href="http://blog.jonudell.net/2011/12/15/forgotten-knowledge/">forget</a> how profoundly the dual nature of the hyperlink binds the web together.
</p>
<p>
The hyperlink is atomic with respect to location. It says where. The fundamental particle of calendaring &#8212; iCalendar&#8217;s VEVENT &#8212; is atomic with respect to time. It says when. To me it makes perfect sense that smart buildings and energy microgrids will schedule their interactions with us in the same way that we schedule dentist appointments and soccer games.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3180&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2012/01/04/when-2-0-scheduling-the-internet-of-things/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Teaching is about conveying a way of thinking</title>
		<link>http://blog.jonudell.net/2012/01/02/teaching-is-about-conveying-a-way-of-thinking/</link>
		<comments>http://blog.jonudell.net/2012/01/02/teaching-is-about-conveying-a-way-of-thinking/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 15:01:00 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3169</guid>
		<description><![CDATA[As I build out the elmcity network, launching calendar hubs in towns and cities around the country, I&#8217;ve been gathering examples of excellent web thinking. In Ann Arbor&#8217;s public schools are thinking like the web I noted that the schools in that town &#8212; and most particularly the Slauson Middle School &#8212; are Doing It [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3169&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
As I build out the elmcity network, launching calendar hubs in towns and cities around the country, I&#8217;ve been gathering examples of excellent web thinking. In <a href="http://blog.jonudell.net/2011/11/09/ann-arbors-public-schools-are-thinking-like-the-web/">Ann Arbor&#8217;s public schools are thinking like the web</a> I noted that the schools in that town &#8212; and most particularly the Slauson Middle School &#8212; are Doing It Right with respect to online calendars. How, I wondered, does that happen? How does a middle school figure out a solution that eludes most universities, theaters, city governments, nightclubs, museums, and other organizations with calendars of interest to the public?
</p>
<p>
<b>It&#8217;s not technology</b>. Slauson Middle School is using the same web services (in this case, Google Calendar) available to everyone.
</p>
<p>
<b>It&#8217;s not budget</b>. The web services required for this solution are free.
</p>
<p>
<b>It&#8217;s a way of thinking</b>. I wrote to Slauson&#8217;s principal, Chris Curtis, to congratulate him on the excellent example his school is setting, and to identify the thinker responsible. That thinker turns out to be Chris Curtis himself. And it&#8217;s no accident that the implementation pattern on display at Slauson is also evident at Pioneer High. Chris did the same thing there before coming to Slauson.
</p>
<p>
Now I am not an educator, I only watch from the sidelines. But to me the K-12 <a href="http://www.sau29.org/documents/Curricula_Computer_K12_Small.pdf">&#8220;computer skills&#8221; curriculum</a> seems uniformed by the kinds of <a href="http://blog.jonudell.net/2011/01/24/seven-ways-to-think-like-the-web/">core principles</a> that will make students effective in a web-augmented world. So I asked Chris:
</p>
<blockquote><p>
What you&#8217;ve done at Pioneer and now Slauson builds on an important conceptual foundation. Do you think that K-12 education could build that foundation?
</p></blockquote>
<p>
Here&#8217;s what he said:
</p>
<blockquote>
<p>
I agree with the notion that the basic principles of computer science should be generalized more broadly across the curriculum. In many ways, teaching computer and technology skills courses absent a meaningful application of them is ineffective and silly. We wouldn&#8217;t teach driver&#8217;s education and not let students drive. We don&#8217;t teach a &#8220;pencil skills class&#8221; in which we learn the skills for using this technology tool without an immediate opportunity to apply the skills and then begin to consider and explore the many ways that the pencil and writing change how we organize, perceive, and interact with our world.
</p>
<p>
This issue gets at the heart of the challenge of technology and education. Often the world seems to divide into separate interest areas: those interested in technology and those interested in education. The result is often to send the technology nerds to a room and make them teach technology and send the other teachers to their rooms and let them teach. In order to be effective at integrating technology into the instructional environment there has to be a merger between a technology interest and and educational interest, within the same person. The awareness of what is possible via technology resources and the desire to perform educational functions can lead to the educator realizing that a task could be done differently, more efficiently, more effectively, with more precision, or in some other manner improved.
</p>
</blockquote>
<p>
Of course the schism that separates technologists from educators also affects practitioners of all kinds. In his <a href="http://worrydream.com/SomeThoughtsOnTeaching/">most recent essay</a>, Bret Victor meditates on this point:
</p>
<blockquote>
<p>
My piano teacher played the piano. Like, all the time. He had to; it&#8217;s not easy to make a living as a musician. Between tours, his band played restaurants, bars, weddings, anywhere they could get a gig. He chose this life because he loved music, and when he taught music, he was teaching what he did. In that way, his teaching was honest.
</p>
<p>
&#8230;
</p>
<p>
Back in high school, I was taught differential equations by a working engineer. He spent his days at Lawrence Livermore Laboratory, and for whatever reason, chose to spend his evenings at the local community college. Differential equations wasn&#8217;t some abstract arcana to him. It was his bread-and-butter, and he apparently found it important enough to share.
</p>
<p>
&#8230;
</p>
<p>
My information theory professor would teach me information theory in the morning, and then spend the afternoon furthering the field. Sure, what she taught was somewhat elementary by her standards, but she was well aware that this elementary theory was the foundation on which her life&#8217;s research was built. It showed, and it stayed with me.
</p>
<p>
&#8230;
</p>
<p>
Real teaching is not about transferring &#8220;the material&#8221;, as if knowledge were some sort of mass-produced commodity that ships from Amazon. Real teaching is about conveying a way of thinking. How can a teacher convey a way of thinking when he doesn&#8217;t genuinely think that way?
</p>
</blockquote>
<p>
I&#8217;m preoccupied with a related question. The way of thinking that I most want to convey is web thinking. Which is, by definition, openly available to anyone who wants to learn. Schools everywhere can observe and emulate what Chris Curtis is doing at Slauson. In so doing they can become practitioners in the way that Chris is. Their students might then see them as practitioners and learn from their examples.
</p>
<p>
I would be delighted if the elmcity project could help bootstrap that virtuous cycle.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3169/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3169&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2012/01/02/teaching-is-about-conveying-a-way-of-thinking/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Forgotten knowledge</title>
		<link>http://blog.jonudell.net/2011/12/15/forgotten-knowledge/</link>
		<comments>http://blog.jonudell.net/2011/12/15/forgotten-knowledge/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 13:12:09 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3165</guid>
		<description><![CDATA[John Ochsendorf, who teaches civil and environmental engineering and architecture at MIT, cares about ancient construction methods and the forgotten knowledge they embodied: rammed-earth walls, braided-fiber suspension bridges, Gothic cathedrals. In an enlightening lunchtime talk a couple of years ago he reviewed what these ancient builders knew and could still teach us if we were [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3165&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
John Ochsendorf, who teaches civil and environmental engineering and architecture at MIT, cares about ancient construction methods and the forgotten knowledge they embodied: rammed-earth walls, braided-fiber suspension bridges, Gothic cathedrals. In an enlightening <a href="http://www.spokenword.org/program/430407">lunchtime talk</a> a couple of years ago he reviewed what these ancient builders knew and could still teach us if we were willing to learn.
</p>
<p>
Dave Winer&#8217;s <a href="http://scripting.com/stories/2011/12/13/whyAppsAreNotTheFuture.html">Why apps are not the future</a> reminded me of that. The ancient construction method we are forgetting, in this case, is linking. We had already started to forget back in 2004. Then, writing for InfoWorld, I argued that rich Internet apps needed to learn what web apps always knew: RESTful design that exposes internal state as links. Kevin Lynch, who was then chief software architect of Macromedia, accepted the challenge and <a href="http://www.klynch.com/archives/000076.html">showed</a> how a Flash app could behave that way.
</p>
<p>
But while you can bolt RESTful design and linking onto a rich Internet app, or a phone app, these principles aren&#8217;t built in. So apps are inherently less open to the sort of lightweight service composition that I&#8217;ve championed for a decade, ever since the <a href="http://jonudell.net/LibraryLookup.html">LibraryLookup project</a> showed me just how easily and powerfully a humble hyperlink can connect two otherwise separate information silos.
</p>
<p>
The point about service composition and linking is so obvious that we often fail to notice it. Yesterday I booked a hotel in Chicago for an upcoming conference. The organizer sent me an email containing this link for hotel booking:
</p>
<p>http://www.marriott.com/hotels/travel/chidm-chicago-marriott/?toDate=1/22/12&#038;groupCode=GROUPCODE&#038;fromDate=1/20/12&#038;app=resvlink</p>
<p>
When I followed the link I landed in Marriot&#8217;s service with context appropriate to my status as an attendee. Nobody at Marriott specifically designed that capability. It&#8217;s just something that&#8217;s possible because the site works RESTfully, exposing its state as links that people can hand around.
</p>
<p>
Now to be honest, you have to be a geek-minded person &#8212; like the guy who invited me to this conference &#8212; to recognize and exploit this possibility. Most people don&#8217;t expect things to work this way, and most web designers don&#8217;t try to encourage that expectation.
</p>
<p>
My fear with rich Internet apps, and now phone apps, is that they tend to obscure an important lesson we never learned well enough in the first place.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3165&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/12/15/forgotten-knowledge/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Harry Tuttle&#8217;s busy month</title>
		<link>http://blog.jonudell.net/2011/12/08/harry-tuttles-busy-month/</link>
		<comments>http://blog.jonudell.net/2011/12/08/harry-tuttles-busy-month/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 21:51:45 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3155</guid>
		<description><![CDATA[It&#8217;s been a busy month for rogue plumber Harry Tuttle. When last heard from, he was deploying a filter to fix broken iCalendar feeds served up by the University of Michigan. His next assignment was at Rice University, where the downloadable sports schedules are available only in CSV (comma-separated values) format. Here are the instructions [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3155&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
It&#8217;s been a busy month for rogue plumber Harry Tuttle. When <a href="http://blog.jonudell.net/2011/11/08/long-live-harry-tuttle/">last heard from</a>, he was deploying a filter to fix broken iCalendar feeds served up by the <a href="http://events.umich.edu">University of Michigan</a>. His next assignment was at Rice University, where the downloadable sports schedules are available only in CSV (comma-separated values) format. Here are the <a href="http://www.riceowls.com/ot/rice-sched-download.html">instructions</a> for how to get one of those CSV files into Outloook:
</p>
<blockquote>
<ol>
<li>Select the File / Import and Export&#8230; Menu option.</li>
<li>Select &#8220;Import from another program or file&#8221; and click Next.</li>
<li>Select &#8220;Comma Separated Values (Windows)&#8221; and click Next.</li>
<li>Find the desired CSV file and select &#8220;Do not import duplicate items&#8221; and click Next.</li>
<li>Select Calendar and click Next.</li>
<li>The next window will have a title that says &#8216;The following actions will be performed:&#8217; above an option to &#8216;Import &#8220;(filename).csv&#8221; into folder: Calendar.&#8217;</li>
<li>Check that box and and click on &#8216;Import &#8220;(filename).csv&#8221; into folder: Calendar&#8217; From there, click and drag needed fields from the left window into the right window. Its fairly self-explanatory, but the basic corresponding fields are below: SUBJECT to Subject START_DATE to Start Date START_TIME to Start Time END_TIME to End Time DESCRIPTION to Description LOCATION to Location </li>
</ol>
</blockquote>
<p>
It&#8217;s hard to believe any Outlook user has ever followed those instructions. And if you&#8217;re using a calendar other than Outlook, you&#8217;re on your own.
</p>
<p>
So I asked Harry to make a <a href="http://elmcity.cloudapp.net/url_helpers#csv">filter</a> that turns those CSV files into iCalendar feeds. It&#8217;s specific to that particular format for now, but as we find other examples in the wild we&#8217;ll generalize accordingly.
</p>
<p>
My next challenge involved feed categorization. I&#8217;m finding pockets of excellence in various places around the country. As I <a href="http://blog.jonudell.net/2011/11/09/ann-arbors-public-schools-are-thinking-like-the-web/">mentioned last month</a>, the Slauson Middle School in Ann Arbor is one of them. Its <a href="http://slauson.a2schools.org/slauson.home/calendar">calendar</a> looks like a single feed, but is actually a merged set of 11 distinct Google Calendars, including one for Slauson clubs, several for Slauson sports, and one for Slauson&#8217;s upcoming Chicago trip.
</p>
<p>
As curator of Ann Arbor&#8217;s community hub I was thrilled to see this kind of self-categorization. It enables me to merge Slauson&#8217;s sports and music events with other sports and music events in Ann Arbor. But if it&#8217;s rare to find a public calendar in machine-readable iCalendar format, which it unfortunately is, it&#8217;s even rarer to find a set of machine-readable public calendars that can be syndicated by category.
</p>
<p>
I asked Harry to weigh in on this problem too. He&#8217;s a do-it-yourself guy who doesn&#8217;t like to wait for Central Services to take care of things. &#8220;If the sources aren&#8217;t providing you with the categories you need,&#8221; he said, &#8220;maybe we can create them ourselves.&#8221; Next thing you know, he&#8217;d whipped up a <a href="http://elmcity.cloudapp.net/url_helpers#ical_filter">filter</a> that selects subsets of iCalendar feeds by keyword and/or time.
</p>
<p>
Here&#8217;s one example of how I&#8217;m using it. Vinology, a restaurant and wine bar in Ann Arbor, publishes upcoming events using a <a href="http://www.vinowinebars.net/vinology/enrich_inspirations.php">Google Calendar</a>. The feed from that calendar mixes two different kinds of events: restaurant business (Happy Hour) and a jazz schedule (Meri Slaven trio). I&#8217;d like to select just the jazz events for Ann Arbor&#8217;s <a href="http://elmcity.cloudapp.net/a2cal/html?view=music">music</a> and <a href="http://elmcity.cloudapp.net/a2cal/html?view=jazz">jazz</a> views.
</p>
<p>
Harry&#8217;s filter solves this problem. Actually, it solves it in two different ways. The first way is to filter Vinology&#8217;s feed for events where the SUMMARY or DESCRIPTION fields contain the keyword <i>jazz</i>. The second way is to filter the feed for events that happen after 8PM. Either of these methods produces the jazz-categorized iCalendar feed that Vinology might someday create for itself.
</p>
<p>
Harry&#8217;s filter also solves a related problem. The <a href="http://www.bampfa.berkeley.edu/">Berkeley Art Museum / Pacific Film Archive</a> is, as the name suggests, a venue for both art exhibits and film showings. The <a href="http://www.bampfa.berkeley.edu/calendar/">calendar</a> is, happily, available as an iCalendar feed. Unhappily it mixes art exhibits with film showings and I couldn&#8217;t find any times or keywords that would reliably separate the two streams. But then I found a keyword that would. The BAM/PFA website&#8217;s URLs look like http://www.bampfa.berkeley.edu/<b>exhibition</b>/faulders_bamscape) and http://www.bampfa.berkeley.edu/<b>filmseries</b>/clouzot). And those same URLs appear in the iCalendar feed. So Harry enhanced the filter to look for those boldedkeywords in the URL field of iCalendar events. Now the BAM/PFA&#8217;s film series shows up where it belongs, in the <a href="http://elmcity.cloudapp.net/berkeley/html?view=film">film category</a> of the Berkeley hub.
</p>
<p>
Senator Ted Stevens got it right. The Internet really is a series of tubes. When they don&#8217;t fit together quite the way you need them to, Harry Tuttle can sometimes help.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3155&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/12/08/harry-tuttles-busy-month/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Marine mammals, Sorcerer&#8217;s Apprentices, and authoritative publication of data</title>
		<link>http://blog.jonudell.net/2011/11/16/marine-mammals-sorcerers-apprentices-and-authoritative-publication-of-data/</link>
		<comments>http://blog.jonudell.net/2011/11/16/marine-mammals-sorcerers-apprentices-and-authoritative-publication-of-data/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 12:49:16 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3149</guid>
		<description><![CDATA[As we saw last week, the future of community-scale calendaring is already here in some cases but isn&#8217;t yet evenly distributed. Consider the Seattle Aquarium&#8217;s public calendar. As curator of Seattle&#8217;s elmcity hub I&#8217;ve found four iCalendar feeds for the Aquarium: An Eventful venue. (iCal feed.) An Upcoming venue. (iCal feed.) A Facebook Page. (iCal [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3149&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
As we saw last week, the future of community-scale calendaring is already here in <a href="http://blog.jonudell.net/2011/11/09/ann-arbors-public-schools-are-thinking-like-the-web/">some cases</a> but isn&#8217;t yet evenly distributed. Consider the Seattle Aquarium&#8217;s public calendar. As curator of <a href="http://elmcity.cloudapp.net/seattleopencalendar/html?count=1000">Seattle&#8217;s elmcity hub</a> I&#8217;ve found four iCalendar feeds for the Aquarium:
</p>
<ol>
<li>
<p>
An <a href="http://eventful.com/ical/seattle_wa/venues/the-seattle-aquarium-/V0-001-000256589-2">Eventful venue</a>. (<a href="http://eventful.com/ical/seattle_wa/venues/the-seattle-aquarium-/V0-001-000256589-2">iCal feed</a>.)
</p>
</li>
<li>
<p>
An <a href="http://upcoming.yahoo.com/venue/72361/WA/Seattle/Seattle-Aquarium/">Upcoming venue</a>. (<a href="http://upcoming.yahoo.com/calendar/v2/venue/72361">iCal feed</a>.)
</p>
</li>
<li>
<p>
A <a href="https://www.facebook.com/pages/Seattle-Aquarium/141795792557?sk=events">Facebook Page</a>. (<a href="http://elmcity.cloudapp.net/ics_from_fb_page?fb_id=141795792557&amp;elmcity_id=seattleopencalendar">iCal feed</a>.)
</p>
</li>
<li>
<p>
The Aquarium&#8217;s own <a href="http://www.seattleaquarium.org/page.aspx?pid=224">calendar page</a>. (iCal feed.)
</p>
</li>
</ol>
<p>
If you visit #4, the Aquarium&#8217;s calendar page, you&#8217;ll see that it does offer an <i>Export as iCalendar</i> link. So why isn&#8217;t that link hot here? Because it&#8217;s only wired to JavaScript code that imports a snapshot of the data into a calendar program. No URL points directly to the data. That means people can&#8217;t subscribe to the feed &#8212; and neither can the Seattle hub.
</p>
<p>
If the Aquarium were truly thinking like the web it would offer its calendar as a first-class web resource addressed by an iCalendar URL. Even better, it would offer one such URL for each view of the calendar page: Educators, Family / Kids, Members Only, Out and About, Speaker Series, Special Events, Summer Camps, Volunteer Orientation.
</p>
<p>
Since those views aren&#8217;t available as feeds I had to fall back to the other three sources. At first I merged all three to create the <a href="http://elmcity.cloudapp.net/seattleopencalendar/html?view=aquarium">aquarium view</a> of the Seattle hub. When I compared the results of the merge, though, something didn&#8217;t cross-check. An event called Marine Mammal Talk, which showed up in the Upcoming feed, wasn&#8217;t in the Eventful or Facebook feeds or on the Aquarium&#8217;s own page. Yet Upcoming&#8217;s <a href="http://upcoming.yahoo.com/event/8372321/WA/Seattle/Marine-Mammal-Talk/Seattle-Aquarium">Marine Mammal Talk page</a> says this event was discovered by the Upcoming Robot, has occurred 498 times already, and will occur 77 more times. What&#8217;s up with that?
</p>
<p>
I searched the Aquarium&#8217;s site and found <a href="http://www.seattleaquarium.org/page.aspx?pid=224&amp;cid=1&amp;ceid=423&amp;cerid=200&amp;cdt=4%2f8%2f2011">the event</a>. Here are the details:
</p>
<blockquote>
<p>
Tue, 15 Nov, 2011 2:43 PM &#8211; 2:43 PM
</p>
<p>
Three weekends of special activities all about the Aquarium&#8217;s Marine Mammals &#8211; Otters, Harbor Seals &amp; Fur Seals.  Join us for special talks, demonstrations and hands-on activities.
</p>
<p>
Fees: Included with regular Aquarium Admission
</p>
<p>
Calendar: Programs &amp; Events Calendar
</p>
<p>
Category: Special Events
</p>
<p>
Repeats: Weekly on Sunday, Friday, Saturday until 4/24/2011
</p>
</blockquote>
<p>
You can see why the Upcoming Robot was confused. The event&#8217;s date is given as Tue 15 Nov 2011. But its recurrence rule says that the last recurrence was back in April of this year.
</p>
<p>
Of course this fragment of text doesn&#8217;t really specify a date or a recurrence rule. The Upcoming Robot just inferred those, erroneously, from unstructured text. And then, like the Sorcerer&#8217;s Apprentice, it began pumping those errors onto the web. It has evidently done so for a couple of years and will, if unchecked, continue into 2013.
</p>
<p>
I don&#8217;t blame the Upcoming Robot. Denied access to the structured data it craved, the poor thing scavenged what it could. The lesson here is for the Seattle Aquarium and for all who mean to publish data online. If you don&#8217;t establish yourself as the authoritative source for that data then others will step in to do it for you. And they are liable to get it wrong.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3149/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3149&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/11/16/marine-mammals-sorcerers-apprentices-and-authoritative-publication-of-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Ann Arbor&#8217;s public schools are thinking like the web</title>
		<link>http://blog.jonudell.net/2011/11/09/ann-arbors-public-schools-are-thinking-like-the-web/</link>
		<comments>http://blog.jonudell.net/2011/11/09/ann-arbors-public-schools-are-thinking-like-the-web/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 19:06:47 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3135</guid>
		<description><![CDATA[As I review and improve the elmcity hubs in selected cities, I am again reminded of William Gibson&#8217;s wonderful aphorism: &#8220;The future is already here, it&#8217;s just not evenly distributed.&#8221; Yesterday we saw that the future of community calendars hasn&#8217;t yet arrived at the University of Michigan. But today I was delighted to see that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3135&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
As I review and improve the elmcity hubs in selected cities, I am again reminded of William Gibson&#8217;s wonderful aphorism: &#8220;The future is already here, it&#8217;s just not evenly distributed.&#8221; Yesterday we saw that the future of community calendars <a href="http://blog.jonudell.net/2011/11/08/long-live-harry-tuttle/">hasn&#8217;t yet arrived</a> at the University of Michigan. But today I was delighted to see that it has arrived, in a big way, for the Ann Arbor public schools. Almost all of them, it turns out, are making good use of Google Calendar to publish machine-readable calendar information. This morning I rounded up thirty of those calendars and added them to Ann Arbor&#8217;s elmcity hub, bringing the total number of feeds from 194 to 224.
</p>
<p>
Here&#8217;s the breakdown of the 309 events from the <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=gradeschool">grade schools</a>:
</p>
<table style="margin-bottom:20px;">
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=abbot">Abbot Elementary</a></td>
<td style="text-align:right;">8</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=allen">Allen Elementary</a></td>
<td style="text-align:right;">13</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=angell">Angell Elementary</a></td>
<td style="text-align:right;">7</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=bryant">Bryant Elementary</a></td>
<td style="text-align:right;">29</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=dicken">Dicken Elementary</a></td>
<td style="text-align:right;">118</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=eberwhite">Eberwhite Elementary</a></td>
<td style="text-align:right;">19</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=haisley">Haisley Elementary</a></td>
<td style="text-align:right;">25</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=mitchell">Mitchell Elementary</a></td>
<td style="text-align:right;">23</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=mlk">MLK Elementary</a></td>
<td style="text-align:right;">12</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=pittsfield">Pittsfield Elementary</a></td>
<td style="text-align:right;">5</td>
</tr>
</table>
<p>
And the 322 events from the <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=middleschool">middle schools</a>:
</p>
<table style="margin-bottom:20px;">
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=clague">Clague Middle School</a></td>
<td style="text-align:right;">28</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=forsythe">Forsythe Middle School</a></td>
<td style="text-align:right;">71</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=scarlett">Scarlett Middle School</a></td>
<td style="text-align:right;">15</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=slauson">Slauson Middle School</a></td>
<td style="text-align:right;">181</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=tappan">Tappan Middle School</a></td>
<td style="text-align:right;">33</td>
</tr>
</table>
<p>
And the 966 events from the <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=highschool">high schools</a>:
</p>
<table style="margin-bottom:20px;">
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=chs">Community High School</a></td>
<td style="text-align:right;">67</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=huron">Huron High School</a></td>
<td style="text-align:right;">396</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=pioneer">Pioneer High School</a></td>
<td style="text-align:right;">294</td>
</tr>
<tr>
<td><a href="http://elmcity.cloudapp.net/services/a2cal/html?view=skyline">Skyline High School</a></td>
<td style="text-align:right;">210</td>
</tr>
</table>
<p>
Among grade schools, Slauson is notable not only for the number of events but for the exemplary self-categorization applied to them. When you click the Google Calendar subscribe button on the <a href="http://www.a2schools.org/slauson.home/calendar">Slauson calendar page</a> here&#8217;s what you&#8217;ll see:
</p>
<p>
<img width="450px" src="http://jonudell.net/images/slauson-calendars.png">
</p>
<p>
This is a best practice I wish everyone would adopt. It illustrates the seventh of my <a href="http://blog.jonudell.net/2011/01/24/seven-ways-to-think-like-the-web/">seven ways to think like the web</a>: #7: Reuse components and services. The Slauson calendar is both a user of other services (the district-wide calendars) and a provider of services. And as a provider, it understands the idea of componentization. In an era of abundance it costs no more to create and manage a dozen calendars, using free services like Google Calendar and Hotmail Calendar, than to jam everything into a single calendar. The benefits are manifold. They include:
</p>
<h2>Delegation</h2>
<p>
In most schools and businesses, maintenance of &#8220;the&#8221; public calendar is one person&#8217;s job. That person becomes a bottleneck. When you recognize that logically there isn&#8217;t one public calendar, but instead several or many, each with its own appropriate maintainer, then you can break that bottleneck.
</p>
<h2>Precision</h2>
<p>
A parent who subscribes to a single undifferentiated school calendar may be overwhelmed by the flow. Parents of kids who are in music programs, or on sports teams, or who are going on the Chicago trip, should  be able to focus on those activities.
</p>
<h2>Scope</h2>
<p>
Slauson Middle School is part of the larger Ann Arbor community. When Slauson&#8217;s calendars are self-categorized, they can align with community-wide views. Here&#8217;s a picture of some <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=sports#d20111117">sports-related activites</a> in Ann Arbor on November 17th:
</p>
<p>
<img src="http://jonudell.net/images/slauson-in-sports-view.png">
</p>
<p>
Slauson&#8217;s publication of a set of self-categorized machine-readable calendar feeds enables it to represent its sports activities on a city-wide timeline that includes, in this particular view, events from the Ann Arbor Triathlon Club, the Wolverines basketball teams, and Ann Arbor&#8217;s kickball Meetup group.
</p>
<p>
Well done Slauson! And kudos to all the Ann Arbor public schools. You have become web thinkers. I hope schools everywhere will learn from your example.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3135&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/11/09/ann-arbors-public-schools-are-thinking-like-the-web/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>

		<media:content url="http://jonudell.net/images/slauson-calendars.png" medium="image" />

		<media:content url="http://jonudell.net/images/slauson-in-sports-view.png" medium="image" />
	</item>
		<item>
		<title>Long live Harry Tuttle!</title>
		<link>http://blog.jonudell.net/2011/11/08/long-live-harry-tuttle/</link>
		<comments>http://blog.jonudell.net/2011/11/08/long-live-harry-tuttle/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 18:05:57 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3127</guid>
		<description><![CDATA[Here&#8217;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&#8217;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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3127&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img style="float:right;border-style:solid;border-width:thin;margin:20px;" src="http://jonudell.net/images/harry-tuttle.png"></p>
<p>
Here&#8217;s one of my <a href="http://www.youtube.com/watch?v=eosrujtjJHA">favorite scenes</a> from the movie Brazil,
</p>
<blockquote>
<p>
<b>Sam Lowry</b> <i>(Jonathan Pryce)</i>: Are you from central services?
</p>
<p>
<b>Harry Tuttle</b> <i>(Robert De Niro)</i>: Hah! They&#8217;re a little overworked these days. Luckily I intercepted your call.
</p>
<p>
<b>Sam Lowry</b>: Can you fix it?
</p>
<p>
<b>Harry Tuttle</b>: No, but I can bypass it with one of these.
</p>
</blockquote>
<p>
Back in 2003, my InfoWorld column <a href="http://www.infoworld.com/d/developer-world/apis-protocols-and-rogue-plumbers-988">APIs, protocols, and rogue plumbers</a> made three points:
</p>
<ol>
<li>
<p>The web of data shouldn&#8217;t require the services of Harry Tuttle.</p>
</li>
<li>
<p>Unfortunately it still does.</p>
</li>
<li>
<p>Fortunately the web&#8217;s architecture (a series of tubes) enables Harry to intervene when he must.</p>
</li>
</ol>
<p>
Those points are all still valid in 2011. From time to time I still have Harry Tuttle moments. Today&#8217;s involved the campus events system at my alma mater, the University of Michigan. In the current phase of the elmcity project I&#8217;m rebuilding hubs in various cities in order to dramatically beef up the number of feeds and quality of tagging. Ann Arbor&#8217;s hub was conspicuously lacking feeds from the University of Michigan. When I investigated I found that the central service, <a href="http://events.umich.edu">http://events.umich.edu</a>, does offer iCalendar feeds. Yay! You can&#8217;t take that for granted, many if not most schools don&#8217;t make their public calendars available in a machine-readable way. Unfortunately there&#8217;s a problem with the feeds produced by the UM service. They&#8217;re invalid. You can&#8217;t load them into an iCalendar-aware program like Google Calendar or Outlook, and the elmcity engine can&#8217;t aggregate them.
</p>
<p>
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&#8217;t properly folded. Second, the timezone properties don&#8217;t refer to a timezone definition. So I made a filter that fixes these major problems (plus some other minor ones). Here&#8217;s what the filter does:
</p>
<p>
Original: <a href="http://jonudell.net/data/failed-ics-umich.ics.txt">http://jonudell.net/data/failed-ics-umich.ics.txt</a>. Validation result: Unparseable.
</p>
<p>
Line-folding fixed: <a href="http://jonudell.net/data/fixed-ics-umich.ics.txt">http://jonudell.net/data/fixed-ics-umich.ics.txt</a>. Validation result: <a href="http://icalvalid.cloudapp.net/?uri=http://jonudell.net/data/fixed-ics-umich.ics.txt">Better</a>.
</p>
<p>
VTIMEZONE added: <a href="http://jonudell.net/data/clean-ics-umich.ics.txt">http://jonudell.net/data/clean-ics-umich.ics.txt</a>. Validation result: <a href="http://icalvalid.cloudapp.net/?uri=http://jonudell.net/data/clean-ics-umich.ics.txt">Valid</a>.
</p>
<p>
Then I used the filter to add a bunch of feeds to the hub. Here&#8217;s one for the <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=taubman">Taubman Health Services Libraries</a>, and another for the <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=gerard.r.ford">Gerald R. Ford Presidential Library</a>. These merge with other library feeds, notably from the <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=aadl">Ann Arbor District Library</a>, in the hub&#8217;s top-level <a href="http://elmcity.cloudapp.net/services/a2cal/html?view=library">library</a> view.
</p>
<p>
Now, where do I fill out that twenty-seven-B-stroke-six form?
</p>
<hr />
<p>
From Wikipedia&#8217;s <a href="http://en.wikipedia.org/wiki/Brazil_%28film%29">Brazil_(film)</a> page:</p>
<blockquote><p>
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.
</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3127&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/11/08/long-live-harry-tuttle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>

		<media:content url="http://jonudell.net/images/harry-tuttle.png" medium="image" />
	</item>
		<item>
		<title>X-WR-TIMEZONE considered harmful?</title>
		<link>http://blog.jonudell.net/2011/10/17/x-wr-timezone-considered-harmful/</link>
		<comments>http://blog.jonudell.net/2011/10/17/x-wr-timezone-considered-harmful/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 15:37:45 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3114</guid>
		<description><![CDATA[In a pair of recent entries, Semantic web 101: Say what you mean and The long tail of the iCalendar ecosystem, I&#8217;ve begun to report on what I&#8217;m learning about the state of the iCalendar ecosystem as I work in parallel on the elmcity project and on the iCalendar Validator. Today I&#8217;ll focus on just [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3114&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
In a pair of recent entries, <a href="http://blog.jonudell.net/2011/09/29/semantic-web-101-say-what-you-mean/">Semantic web 101: Say what you mean</a> and <a href="http://blog.jonudell.net/2011/09/30/the-long-tail-of-the-icalendar-ecosystem/">The long tail of the iCalendar ecosystem</a>, I&#8217;ve begun to report on what I&#8217;m learning about the state of the iCalendar ecosystem as I work in parallel on the <a href="http://elmcity.cloudapp.net">elmcity project</a> and on the <a href="http://icalvalid.cloudapp.net">iCalendar Validator</a>. Today I&#8217;ll focus on just one of a number of issues I&#8217;ve run into. Consider these two screenshots:
</p>
<table style="margin-bottom:20px;border-spacing:8px;background-color:lightgrey;border-style:solid;border-width:thin;">
<tr>
<td style="text-align:center;">google calendar</td>
<td style="text-align:center;">hotmail calendar</td>
</tr>
<tr>
<td><img style="border-style:solid;border-width:thin;" src="http://jonudell.net/images/brower-gcal.png"></td>
<td><img style="border-style:solid;border-width:thin;" src="http://jonudell.net/images/browser-hotmail.png"></td>
</tr>
</table>
<p>
On the left you see Google Calendar displaying two calendars, each representing a single event &#8212; the <a href="http://www.berkeleyside.com/BerkeleysideCalendar/events/index.php?com=detail&amp;eID=6">Brower Youth Awards on October 18 at the Herbst Theater in San Francisco</a> &#8212; in a different way. On the right you see Hotmail Calendar displaying the same two calendars. The event will happen at 5:30 Pacific time on the 18th. I found it on the <a href="http://www.berkeleyside.com/BerkeleysideCalendar/events/">Berkeleyside</a> site whose events page offers a companion <a href="http://www.berkeleyside.com/BerkeleysideCalendar/events/link/iCalendar.php">iCalendar feed</a>.
</p>
<p>
If you load that feed into both Google Calendar and Hotmail Calendar, and if your calendars are set to Eastern time, you&#8217;ll see what&#8217;s shown above. If your calendars are set to another timezone the times will be shifted but the pink ones still won&#8217;t match.
</p>
<p>
The green ones should always match and should always be what you&#8217;d expect. For me, looking at a 5:30 Pacific event through the lense of calendars set to Eastern, I&#8217;d expect both calendars to display 8:30.
</p>
<p>
What&#8217;s the difference between the pink calendar and the green calendar? Here&#8217;s the <a href="http://jonudell.net/data/t_berkeleyside.ics">pink</a> one. It&#8217;s just the original calendar reduced to a single event. Like the original it declares its timezone using the nonstandard X-WR-TIMEZONE property:
</p>
<pre>
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
PRODID:-//Refresh Web Development//Helios Calendar//EN
X-FROM-URL:http://www.berkeleyside.com/BerkeleysideCalendar/events/
X-WR-RELCALID:Berkeleyside
X-WR-CALNAME:Berkeleyside
<span style="font-weight:bold;color:red;">X-WR-TIMEZONE:America/Los_Angeles</span>
BEGIN:VEVENT
URL;VALUE=URI:http://www.berkeleyside.com/BerkeleysideCalendar/events/index.php?com=detail&amp;eID=6
DTSTART:20111018T173000
DTEND:20111018T210000
SUMMARY:Brower Youth Awards 2011
LOCATION:Herbst Theater - 401 Van Ness \, San Francisco\, CA US 94102
END:VEVENT
END:VCALENDAR
</pre>
<p>
And here&#8217;s the <a href="http://jonudell.net/data/t_berkeleyside2.ics">green</a> one. Again it&#8217;s a derivation of the original calendar that reduces to a single event. But it also declares its timezone in the standard way, using a VTIMEZONE component and then referring to it using the TZID parameter of the DTSTART and DTEND properties:
</p>
<pre>
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
PRODID:-//Refresh Web Development//Helios Calendar//EN
X-FROM-URL:http://www.berkeleyside.com/BerkeleysideCalendar/events/
X-WR-RELCALID:Berkeleyside
X-WR-CALNAME:Berkeleyside<span style="font-weight:bold;color:green;">
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
X-LIC-LOCATION:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE</span>
BEGIN:VEVENT
URL;VALUE=URI:http://www.berkeleyside.com/BerkeleysideCalendar/events/index.php?com=detail&amp;eID=6
DTSTART<span style="font-weight:bold;color:green;">;TZID=America/Los_Angeles</span>:20111018T173000
DTEND<span style="font-weight:bold;color:green;">;TZID=America/Los_Angeles:</span>20111018T210000
SUMMARY:Brower Youth Awards 2011
LOCATION:Herbst Theater - 401 Van Ness \, San Francisco\, CA US 94102
END:VEVENT
END:VCALENDAR
</pre>
<p>
As we see in the picture above, the event time on the green calendar shows up the same way in both Google Calendar and Hotmail Calendar. It should also be the same in any calendar program that supports the iCalendar standard.
</p>
<p>
The event time on the pink calendar, though, is a up for grabs. Calendar programs that strictly follow the iCalendar standard should ignore X-WR-TIMEZONE and always display the local time, 5:30PM, which will be right for people in the Pacific timezone and wrong for everybody else. Hotmail Calendar does this. Programs that use X-WR-TIMEZONE, on the other hand, can render this calendar just as they would render a standard calendar. Google Calendar does this.
</p>
<p>
Why do I care? I have to decide whether the elmcity service will or won&#8217;t consider X-WR-TIMEZONE to be meaningful. The service is based on DDay.iCal, the same standards-based parser that powers the iCalendar Validator. So when the the service reads the pink calendar, and renders it for users in Berkeley, it will do the wrong thing from their point of view.
</p>
<p>
To do the right thing for Berkeley it would need to do the wrong thing by iCalendar: transform the nonstandard X-WR-TIMEZONE property into a standard VTIMEZONE component, and then transform all the dates so that they refer to the VTIMEZONE&#8217;s TZID. In order to create that VTIMEZONE component, it would interpret X-WR-TIMEZONE value as a TZID (timezone ID) from the <a href="http://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">Olson database</a>. A Unix-based service would look up the TZID in Olson, find the rule for the timezone &#8212; i.e., offsets from GMT for standard time and daylight savings time, and when to appy them &#8212; and express the rule using VTIMEZONE syntax. A service running on Windows Azure, like mine, would instead need to <a href="http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml">map</a> the Olson name to a Windows timezone name, look up the rule using a Windows API, and then express the rule in VTIMEZONE syntax.
</p>
<p>
Of course this is a slippery slope because, in the end, I&#8217;m only guessing what X-WR-TIMEZONE is supposed to mean. Here&#8217;s Rick DeNatale engaging in the same kind of <a href="http://lists.osafoundation.org/pipermail/ietf-calsify/2009-May/002184.html">guesswork</a>:
</p>
<blockquote>
<p>
Someone pointed me to this icalendar file of Australian holidays for a test case:
</p>
<p>http://icalx.com/public/rohanl/Australian32Holidays.ics</p>
<p>
This contains NO VTIMEZONE components, but does have the calendar property: X-WR-TIMEZONE:Australia/Sydney
</p>
<p>
Googling indicates that this is a non-standardized property, but it seems to be used by several calendar apps including Apple&#8217;s ical.app<br />
and Google calendar.
</p>
<p>
I know that it&#8217;s non-standard, but it seems to be somewhat important for interoperability.  I&#8217;m looking for some kind of information about<br />
what it means in general.
</p>
<p>
It seems to indicate a default tzid for the whole calendar.  In the absence of timezone components I&#8217;m not sure how to interpret the tzid, though.
</p>
<p>
Australia/Sydney IS a time zone identifier in the Olsen database, is it standard practice to use olsen tzids in X-WR-TIMEZONE calendar attributes?
</p>
</blockquote>
<p>
Fortunately I can bring some data to bear on this question. Thanks to the iCalendar Validator I can analyze public calendars produced by a variety of iCalendar producers. In <a href="http://blog.jonudell.net/2011/09/30/the-long-tail-of-the-icalendar-ecosystem/">The long tail of the iCalendar ecosystem</a> I listed the names of about 600 producers seen recently by the Validator. Of those, about 100 use X-WR-TIMEZONE instead of VTIMEZONE, and 70 of those 100 use local rather that UTC date syntax which implies they are depending on X-WR-TIMEZONE for correct interpretation of those dates.
</p>
<p>
Note that Google Calendar, the 800-pound gorilla in this space, is not one of those 70 producers. When it writes iCalendar format it uses both X-WR-TIMEZONE and VTIMEZONE; the latter ensures that Google Calendars can be understood properly by standard parsers that don&#8217;t support X-WR-TIMEZONE. The 100 producers I&#8217;m talking about, though, are using only X-WR-CALENDAR in a way that suggests they expect a nonstandard transformation. The fact that Google Calendar performs that transformation is, of course, a major reason why producers would expect it to happen everywhere.
</p>
<p>
Should X-WR-TIMEZONE be standard? That&#8217;s debatable. It would certainly make life easier for iCalendar producers. They could just mention a timezone rather than having to extract its rule from their operating systems and express the rule in VTIMEZONE syntax. One of the reasons for the success of RSS and Atom, after all, is that it&#8217;s always been easy to whip up an RSS or Atom feed which you can then check with the <a href="http://feedvalidator.org/">Feed Validator</a>. An analogous simplicity for iCalendar producers would help grow the iCalendar ecosystem.
</p>
<p>
On the other hand if an iCalendar feed were to only mention a timezone without fully defining it, then the consumer would have to do the work that the producer didn&#8217;t. That&#8217;s problematic as Doug Day, author of the iCalendar Validator, notes in a recent email exchange:
</p>
<blockquote><p>
Unfortunately, without including the actual time zone information in the calendar (i.e. via VTIMEZONE), you can&#8217;t be sure that the date/times you&#8217;re representing are accurate, even when using X-WR-TIMEZONE.  For example, if you&#8217;re on a Windows XP machine that hasn&#8217;t been updated in 5 or 6 years, your system time zone information will be inaccurate.  However, if the VTIMEZONE were included in the calendar, it would remain accurate, even on an older machine with out-of-date time zone definitions.  Also, in order to interpret X-WR-TIMEZONE, you&#8217;d  need to be in an environment where interpreting Olson time zone is realistic (easy on Linux, harder on Windows). I know a global, online time zone registry is in the works, but I don&#8217;t think it&#8217;s to a point where it&#8217;s useful, yet.
</p></blockquote>
<p>
You might wonder why all this timezone stuff is even necessary. After all, an iCalendar feed can simply omit VTIMEZONE (and/or X-WR-TIMEZONE), express dates and times in UTC (Coordinated Universal Time), and use UTC syntax for all dates and times. Why not just do that? I asked Doug Day about this a while ago, and here was his reply:
</p>
<blockquote>
<p>
The biggest problem is with recurring events and daylight/standard time transitions.  For example, consider the following (all hypothetical):
</p>
<p>
1.  I live in Salt Lake City, Utah
</p>
<p>
2.  I want to schedule a meeting, starting on September 7, 2009 at 9:00 A.M, which recurs every month on the first Monday.
</p>
<p>
3.  Some of the people attending this meeting live outside my current time zone.
</p>
<p>
So, here are the occurrences you&#8217;re ultimately after:
</p>
<p>
- September 7, 2009 &#8211; 9:00 A.M. (3:00 PM UTC)
</p>
<p>
- October 5, 2009 &#8211; 9:00 A.M. (3:00 PM UTC)
</p>
<p>
- November 2, 2009 &#8211; 9:00 A.M. (4:00 PM UTC)
</p>
<p>
As you can see, once the time changes from daylight back to standard time, so does the UTC representation of that time.  So, if you had scheduled your event in UTC time, when the time zone changes, your event time will actually have changed (to 10:00 A.M., rather than 9:00 A.M.)
</p>
<p>
For this reason, among others, it&#8217;s always best to include time zone information whenever available.  Traditionally, it&#8217;s been pretty difficult to include that information, and it&#8217;s more often left out than included.
</p>
</blockquote>
<p>
So what shall I do with X-WR-TIMEZONE? I&#8217;ve decided to support it experimentally. If you start a new hub on the elmcity service, the default is to ignore X-WR-TIMEZONE. But if your hub has important sources that depend on it, as Berkeley does, then you can override the default so the times will be as you expect.
</p>
<p>
Meanwhile we&#8217;re going to update the iCalendar Validator to warn producers about this issue. There&#8217;s nothing technically invalid about a calendar that uses X-WR-TIMEZONE without VTIMEZONE. To a parser that strictly interprets the RFC5545 standard, that property is just a name that&#8217;s &#8220;reserved for experimental use.&#8221; But as has always been true of the RSS/ATOM Validator, the iCalendar Validator aims to deliver useful real-world guidance. Producers that use X-WR-TIMEZONE alone to declare a timezone should know that while it may often yield expected results, it&#8217;s not guaranteed to do so. It would be better to use a standard VTIMEZONE.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3114&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/10/17/x-wr-timezone-considered-harmful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>

		<media:content url="http://jonudell.net/images/brower-gcal.png" medium="image" />

		<media:content url="http://jonudell.net/images/browser-hotmail.png" medium="image" />
	</item>
		<item>
		<title>The long tail of the iCalendar ecosystem</title>
		<link>http://blog.jonudell.net/2011/09/30/the-long-tail-of-the-icalendar-ecosystem/</link>
		<comments>http://blog.jonudell.net/2011/09/30/the-long-tail-of-the-icalendar-ecosystem/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 16:38:44 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3104</guid>
		<description><![CDATA[A couple of months ago I began saving the iCalendar files that are submitted to the iCalendar Validator. Today I extracted a list of unique names of iCalendar producers along with associated counts of the number of calendars validated for each. Here they are, with Google Calendar at the head and a classic long tail [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3104&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
A couple of months ago I began saving the iCalendar files that are submitted to the <a href="http://icalvalid.cloudapp.net">iCalendar Validator</a>. Today I extracted a list of unique names of iCalendar producers along with associated counts of the number of calendars validated for each. Here they are, with Google Calendar at the head and a classic long tail distribution of almost 600 other iCalendar producers. (You can also see them elsewhere <a href="http://jonudell.net/data/prodids.byname.html">by name</a> as well as <a href="http://jonudell.net/data/prodids.bycount.html">by count</a>.)
</p>
<p>
The next step will be to analyze how well these these producers conform to the validator&#8217;s interpretation of the iCalendar spec. But the list itself forms an interesting data set. We know intuitively that, after 12 years of evolution, the iCalendar ecosystem must have become broad and diverse. Here&#8217;s a nice illustration of that breadth and diversity.
</p>
<p>
(Note that these counts don&#8217;t necessarily reflect the real distribution of iCalendar producers. The iCalendar Validator is closely associated with the elmcity project, so certain producers used heavily there &#8212; DDay.iCal, EVDB, Meetup &#8212; are overrepresented. On the whole, though, I&#8217;d guess this is a reasonable proxy for the distribution of producers.)
</p>
<hr />
<table>
<tr>
<td>-//Google Inc//Google Calendar 70.9054//EN</td>
<td>2102</td>
</tr>
<tr>
<td>-//DDay.iCal//NONSGML ddaysoftware.com//EN</td>
<td>334</td>
</tr>
<tr>
<td>-//SchoolCenter/NONSGML Calendar v9.0//EN</td>
<td>280</td>
</tr>
<tr>
<td>-//EVDB//www.eventful.com//EN</td>
<td>200</td>
</tr>
<tr>
<td>-//hacksw/handcal//NONSGML v1.0//EN</td>
<td>163</td>
</tr>
<tr>
<td>-//Meetup Inc//RemoteApi//EN</td>
<td>145</td>
</tr>
<tr>
<td>-//Meetup//RemoteApi//EN</td>
<td>143</td>
</tr>
<tr>
<td>-//Events at Stanford//iCal4j 1.0//EN</td>
<td>137</td>
</tr>
<tr>
<td>-//Drupal iCal API//EN</td>
<td>133</td>
</tr>
<tr>
<td>NingEventWidget-v1</td>
<td>131</td>
</tr>
<tr>
<td>-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN</td>
<td>101</td>
</tr>
<tr>
<td>-//CustomICS by Robert Brady 888-523-7275</td>
<td>81</td>
</tr>
<tr>
<td>PHP</td>
<td>76</td>
</tr>
<tr>
<td>-//Last.fm Limited Event Feeds//NONSGML//EN</td>
<td>61</td>
</tr>
<tr>
<td>e-vanced event management system</td>
<td>56</td>
</tr>
<tr>
<td>-//Microsoft Corporation//Windows Live Calendar//EN</td>
<td>55</td>
</tr>
<tr>
<td>-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN</td>
<td>55</td>
</tr>
<tr>
<td>-//openmikes.org/NONSGML openmikes.org//EN</td>
<td>53</td>
</tr>
<tr>
<td>PRODID;X-RICAL-TZSOURCE=TZINFO:-//com.denhaven2/NONSGML ri_cal gem//EN</td>
<td>49</td>
</tr>
<tr>
<td>-//ActiveDataExchange/Calendar V3.12.0//EN</td>
<td>47</td>
</tr>
<tr>
<td>Data::ICal 0.16</td>
<td>36</td>
</tr>
<tr>
<td>-//Facebook//NONSGML Facebook Events V1.0//EN</td>
<td>36</td>
</tr>
<tr>
<td>-//sports.yahoo.com//San Francisco Giants Calendar (MLB)//EN</td>
<td>35</td>
</tr>
<tr>
<td>http://devliquid.hillel.org/</td>
<td>33</td>
</tr>
<tr>
<td>-//University of Oulu//SEAA 2011 Conference Program//EN</td>
<td>33</td>
</tr>
<tr>
<td>iCalendar-Ruby</td>
<td>32</td>
</tr>
<tr>
<td>-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN</td>
<td>31</td>
</tr>
<tr>
<td>https://news.piratenpartei.de/calendar.php</td>
<td>31</td>
</tr>
<tr>
<td>-//sports.yahoo.com//San Francisco 49ers Calendar (NFL)//EN</td>
<td>31</td>
</tr>
<tr>
<td>-//Refresh Web Development//Helios Calendar//EN</td>
<td>30</td>
</tr>
<tr>
<td>-//strange bird labs//Drupal iCal API//EN</td>
<td>29</td>
</tr>
<tr>
<td>-Consultation Manager iCal File</td>
<td>28</td>
</tr>
<tr>
<td>-//Kennedy Space Center launches by Chad//NONSCML//EN</td>
<td>27</td>
</tr>
<tr>
<td>-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN</td>
<td>27</td>
</tr>
<tr>
<td>-//Apple Inc.//iCal 4.0.4//EN</td>
<td>26</td>
</tr>
<tr>
<td>-//Ascensha//Causeway Workgroup Calendar//EN</td>
<td>25</td>
</tr>
<tr>
<td>-//Events Calendar//iCal4j 1.0//EN</td>
<td>25</td>
</tr>
<tr>
<td>-//Enzian Specials by Chad//NONSCML//EN</td>
<td>24</td>
</tr>
<tr>
<td>Absorb LMS</td>
<td>24</td>
</tr>
<tr>
<td>-//Apple Inc.//iCal 3.0//EN</td>
<td>22</td>
</tr>
<tr>
<td>Clear Books</td>
<td>22</td>
</tr>
<tr>
<td>-//University of Geneva//Calendar v1.0//EN</td>
<td>22</td>
</tr>
<tr>
<td>PRODID;X-RICAL-TZSOURCE=TZINFO:TeamPages.com</td>
<td>22</td>
</tr>
<tr>
<td>-//lanyrd.com//Lanyrd//EN</td>
<td>20</td>
</tr>
<tr>
<td>-//Upcoming.org/Upcoming ICS//EN</td>
<td>20</td>
</tr>
<tr>
<td>TT-Kalender</td>
<td>19</td>
</tr>
<tr>
<td>-//ForeTees//NONSGML v1.0//EN</td>
<td>19</td>
</tr>
<tr>
<td>-//Webmaster-Portal//</td>
<td>19</td>
</tr>
<tr>
<td>-//suda.co.uk//X2V 0.9.2.1 (BETA)//EN</td>
<td>18</td>
</tr>
<tr>
<td>-//Partyflock//Partyflock_agenda_user_350057//EN</td>
<td>18</td>
</tr>
<tr>
<td>-//John Papaioannou/NONSGML Bennu 0.1//EN</td>
<td>18</td>
</tr>
<tr>
<td>-//collegefootballcalendar.net//2011-2012 NCAA Football Calendar//EN</td>
<td>17</td>
</tr>
<tr>
<td>-//Kerio Technologies//Kerio Connect//EN</td>
<td>17</td>
</tr>
<tr>
<td>BedeWork V3.5</td>
<td>17</td>
</tr>
<tr>
<td>-//Apple Computer\, Inc//iCal 2.0//EN</td>
<td>17</td>
</tr>
<tr>
<td>-//Trumba Corporation//Trumba Calendar Services 0.11.8113//EN</td>
<td>17</td>
</tr>
<tr>
<td>-//Schedule Star LLC//HighSchoolSports.net Calendar 2009.02.19//EN</td>
<td>16</td>
</tr>
<tr>
<td>-//MH Software Inc//Calendar &#8211; 3.2.13-pre8//EN</td>
<td>16</td>
</tr>
<tr>
<td>-//Springshare//LibCal//EN</td>
<td>16</td>
</tr>
<tr>
<td>-//University of California\, Berkeley//UCB Events Calendar//EN </td>
<td>16</td>
</tr>
<tr>
<td>-//ViableIT Inc//athletechs.com Calendar 1.0//EN</td>
<td>15</td>
</tr>
<tr>
<td>-//FBC//Turnierkalender//EN</td>
<td>15</td>
</tr>
<tr>
<td>-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN</td>
<td>14</td>
</tr>
<tr>
<td>-//SÃƒÂ¸lvguttene\, //Aktivitetskalender//EN</td>
<td>14</td>
</tr>
<tr>
<td> TOUTWEB http://www.toutweb.ac-versailles.fr</td>
<td>14</td>
</tr>
<tr>
<td>-//yeltzland/Calendar v1.0//EN</td>
<td>14</td>
</tr>
<tr>
<td>-//SimpleMachines//SMF 1//EN</td>
<td>14</td>
</tr>
<tr>
<td>-//Korfball.de//NONSGML Korfball.de V2.0//EN</td>
<td>13</td>
</tr>
<tr>
<td>-// Kansas Humanities Events Calendar //NONSGML v1.0//EN</td>
<td>13</td>
</tr>
<tr>
<td>RSS2iCal 0.0.1</td>
<td>13</td>
</tr>
<tr>
<td>-//Calendar//Calendar Event//EN</td>
<td>13</td>
</tr>
<tr>
<td>-//Dasos//NONSGML berksevents.com//EN</td>
<td>13</td>
</tr>
<tr>
<td>-//davical.org//NONSGML AWL Calendar//EN</td>
<td>13</td>
</tr>
<tr>
<td>-//Evolvera AB\, //TimeEdit//EN</td>
<td>12</td>
</tr>
<tr>
<td>-//Pingstkyrkan Sundsvall//Kalender//SV</td>
<td>12</td>
</tr>
<tr>
<td>-//Apple Inc.//iCal 5.0//EN</td>
<td>12</td>
</tr>
<tr>
<td>-//GMN training events//NONSGML v1.0//EN</td>
<td>12</td>
</tr>
<tr>
<td>-//RidgeStar//NONSGML v1.0//EN</td>
<td>12</td>
</tr>
<tr>
<td> -//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN</td>
<td>12</td>
</tr>
<tr>
<td>-//Intand Corporation//Tandem for Schools//EN</td>
<td>12</td>
</tr>
<tr>
<td>-//Gala Festival Engine//gala-engine.com//EN</td>
<td>12</td>
</tr>
<tr>
<td>https://vertrieb.panomizer.de</td>
<td>12</td>
</tr>
<tr>
<td>-//loco.ubuntu.com//EN</td>
<td>12</td>
</tr>
<tr>
<td>Coldfusion8</td>
<td>12</td>
</tr>
<tr>
<td>-//VTM//TEXT Causeway Calendar//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//Generated by RSScal//Tom Henderson 2007</td>
<td>11</td>
</tr>
<tr>
<td>-//herald-dispatch/calendar//NONSGML v1.0//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//Events Manager//1.0//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//CHECK24 Vergleichsportal GmbH//Kfz iCal Termin v0.1//DE</td>
<td>11</td>
</tr>
<tr>
<td>-//FwdMeeting.app//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//FAST//NONSGML v1.0//CZ</td>
<td>11</td>
</tr>
<tr>
<td>Mobile Geographics Tides 3988 2011</td>
<td>11</td>
</tr>
<tr>
<td>-//Punahou School/finalsite//NONSGML v1.0//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//Bryce Campbell/NONSGML v1.0//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//beTicketing/Events//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//djeebus/scheduleanywhere//NONSGML v1.0//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//mySportSite Inc.//mySportSite//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//nikatla.de//MoDuL//DE</td>
<td>11</td>
</tr>
<tr>
<td>PRODID;X-RICAL-TZSOURCE=TZINFO:-//ArcticStartup//ri_cal gem//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//Weather Underground Inc//Wunder Weather Calendar//EN</td>
<td>11</td>
</tr>
<tr>
<td>-//CALENDARSERVER.ORG//NONSGML Version 1//EN</td>
<td>10</td>
</tr>
<tr>
<td>-//Ben Fortuna//iCal4j 1.0//EN</td>
<td>10</td>
</tr>
<tr>
<td>-//Linux Users&#8217; Group of Davis//events-as-ics 2006.09.12//EN</td>
<td>10</td>
</tr>
<tr>
<td>-//WestConn Events//iCal 2.0//EN</td>
<td>10</td>
</tr>
<tr>
<td>-//Korrio Inc//Korrio Calendar 0.42//EN</td>
<td>10</td>
</tr>
<tr>
<td>-//TPP//v2.2.6//DE</td>
<td>10</td>
</tr>
<tr>
<td>soe_events</td>
<td>10</td>
</tr>
<tr>
<td>Ajax Event Calendar WordPress Plugin</td>
<td>10</td>
</tr>
<tr>
<td>de.rwth-aachen.filmstudio.www</td>
<td>10</td>
</tr>
<tr>
<td>-//Datasport//Datasport Events V0.1//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//Vertical Magazine//VerticalADCalendar//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//denef.design\, //iCalCreator 0.1//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//Oakland Unviersity//NONSGML Events//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//sports.yahoo.com//Connecticut Huskies Calendar (NCAA Men&#8217;s Hoops)//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//blogTO//NONSGML Toronto Events V1.0//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//CiviCRM//NONSGML CiviEvent iCal//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//Microsoft Corporation//OutlookMIMEDIR//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//sports.yahoo.com//Central Conn. St. Lady Blue Devils Calendar (NCAA Women&#8217;s Hoops)//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//Export//Set-a-Date//EN</td>
<td>9</td>
</tr>
<tr>
<td>-//winchesteryouthhockey.com//Schedule Calendar 0.001//EN</td>
<td>9</td>
</tr>
<tr>
<td> -//guthrietheater.org///Schedule Calendar 0.001//EN</td>
<td>8</td>
</tr>
<tr>
<td>-//The Horde Project//Horde_iCalendar Library\, Horde 3.3.4//EN</td>
<td>8</td>
</tr>
<tr>
<td>-//UB Events Calendar//NONSGML v1.0//EN</td>
<td>8</td>
</tr>
<tr>
<td>-//jEvents 1.5 for Joomla//EN</td>
<td>8</td>
</tr>
<tr>
<td>-//crystalbootssilversaddles.org//NONSGML //</td>
<td>8</td>
</tr>
<tr>
<td>i-Aspect IAF 1.0.23</td>
<td>8</td>
</tr>
<tr>
<td>-//ReminderFox V1.9.9.4.2//EN</td>
<td>8</td>
</tr>
<tr>
<td>-//Arnolds calendar//</td>
<td>8</td>
</tr>
<tr>
<td>-//flaimo.com//iCal Class MIMEDIR//EN</td>
<td>8</td>
</tr>
<tr>
<td>Computers in Personnel Ltd &#8211; Ciphr</td>
<td>8</td>
</tr>
<tr>
<td>-//ISCOPE GmbH//NONSGML iCalendar library for PHP//DE</td>
<td>8</td>
</tr>
<tr>
<td>-//WebCalendar-v1.1.2</td>
<td>8</td>
</tr>
<tr>
<td>Town of Chapel Hill Calendar Creator</td>
<td>8</td>
</tr>
<tr>
<td>-//Edtech\\\, //Ultranet 2.3.4//EN</td>
<td>8</td>
</tr>
<tr>
<td>-//Proweso/TeamData//DE</td>
<td>8</td>
</tr>
<tr>
<td>-//AntonDesign//NONSGML LUCS//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//LEARNING CURVE PLANNER//DAIRY WIDGET//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//Ascensha//Causeway Calendar//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//ABC Denayer//NONSGML DenayerAgenda//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//DNN//Events 05.00.02//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//F30//NONSGML Text Editor//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//Terrapinn//The Internet Show Middle East//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//Clubless//NONSGML//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//zulily//reminders//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 8.5//EN</td>
<td>7</td>
</tr>
<tr>
<td>Zimbra-Calendar-Provider</td>
<td>7</td>
</tr>
<tr>
<td>-//WebCalendar-ics-v1.2.3</td>
<td>7</td>
</tr>
<tr>
<td>//RESEARCH IN MOTION//BIS 3.0</td>
<td>7</td>
</tr>
<tr>
<td>+//IDN hrooster.nl/icsFeed//NONSGML v1.0//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//ESD105//NONSGML v1.0//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//University of St Andrews//Galen Timetable//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//Cairns State High School//Events Manager Export//EN</td>
<td>7</td>
</tr>
<tr>
<td>-//ELT Calendar//Eventer 1.0//EN</td>
<td>7</td>
</tr>
<tr>
<td>bnmng</td>
<td>7</td>
</tr>
<tr>
<td>-//UT///NONSGML v1.0//nl-NL</td>
<td>7</td>
</tr>
<tr>
<td>-//Telerik Inc.//NONSGML RadScheduler//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//InstituteOfClinicalResearch//NONSGML v1.0//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//Skoonhoven//VUrooster//NONSGML v1.0//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//TPP//T P P v2.2.6//DE</td>
<td>6</td>
</tr>
<tr>
<td>-//Vereniging Voor Natuurkunde//NONSGML Activiteitenkalender//NL</td>
<td>6</td>
</tr>
<tr>
<td>-//MNC Heren 8 Kalender//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>6</td>
</tr>
<tr>
<td>-//Costasoft//CalGen//IT</td>
<td>6</td>
</tr>
<tr>
<td>-//MGL//APPOINTMENT//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//ReminderFox V1.9.9.4//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//Typo3 CMS\, News Event Extension</td>
<td>6</td>
</tr>
<tr>
<td>-//Nevobo/Competitie/NL</td>
<td>6</td>
</tr>
<tr>
<td>-//Scientia Ltd//iCalendar Server v 1.0//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//kex.se//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>6</td>
</tr>
<tr>
<td>-//TYPO3/NONSGML Calendar Base (cal) V1.4.0//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//Trumba Corporation//Trumba Calendar Services 0.11.8009//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//Day Software//CQ5 Calendar 5.4.2//EN</td>
<td>6</td>
</tr>
<tr>
<td>CALENDAR_APP_EXAMPLE_FOR_PMP</td>
<td>6</td>
</tr>
<tr>
<td>-//RHHA//NONSGML Cal//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//sphereinc//jira to iCal Vacations 0.09//EN</td>
<td>6</td>
</tr>
<tr>
<td>-//stgeorge.org//calendar.php//NONSGML v1.0//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//polishprofessionals.org.uk//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>5</td>
</tr>
<tr>
<td>-//SHEA/syndicated//NONSGML v1.0//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//Remember The Milk//rtm.Service.iCalendar.Export 3.0//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//SFU CourSys//courses.cs.sfu.ca//</td>
<td>5</td>
</tr>
<tr>
<td>iTV &#8211; televizni program</td>
<td>5</td>
</tr>
<tr>
<td>-//www.byucougars.com//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>5</td>
</tr>
<tr>
<td>THARTSCAL</td>
<td>5</td>
</tr>
<tr>
<td>-//jhart//skytools_icalendar//EN</td>
<td>5</td>
</tr>
<tr>
<td>Microsoft Exchange Server 2007</td>
<td>5</td>
</tr>
<tr>
<td>Integrated Resources Booking System</td>
<td>5</td>
</tr>
<tr>
<td>-//Air Crew Portal//.air V0.2b//EN</td>
<td>5</td>
</tr>
<tr>
<td>http://www.billomat.net/service/feed/ical/</td>
<td>5</td>
</tr>
<tr>
<td>HSJ &#8211; Excel</td>
<td>5</td>
</tr>
<tr>
<td>-//Abreu Viagens//CorpAbreu//PT</td>
<td>5</td>
</tr>
<tr>
<td>-//ED//Agenda Harmonie//EN</td>
<td>5</td>
</tr>
<tr>
<td>VBCPS Calendar Application</td>
<td>5</td>
</tr>
<tr>
<td>-//192.168.100.199//NONSGML iCalcreator 2.4.3//</td>
<td>5</td>
</tr>
<tr>
<td>-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//Apple Computer\, Inc//iCal 1.0//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//The Highbar LLC//BoardOnTrack//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//Trumba Corporation//Trumba Calendar Services 0.11.8016//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//64.56.109.132//NONSGML iCalcreator 2.6//</td>
<td>5</td>
</tr>
<tr>
<td>-//Leaguerunner//Team Schedule//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//Legends Racing UK//Race Calendar//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//Trumba Corporation//Trumba Calendar Services 0.11.8024//EN</td>
<td>5</td>
</tr>
<tr>
<td>-//ABC Corporation//NONSGML My Product//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Algit d.o.o.//NONSGML iUrnik 7.0.680//EN</td>
<td>4</td>
</tr>
<tr>
<td> Common Place</td>
<td>4</td>
</tr>
<tr>
<td>-//Schoolonline//Schoolonline 1.0//NL</td>
<td>4</td>
</tr>
<tr>
<td>-//78.47.136.163//NONSGML iCalcreator 2.6//</td>
<td>4</td>
</tr>
<tr>
<td>-//Revoshop//BrÃƒÂ¸nshÃƒÂ¸j kampe//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//agenda.strasweb.fr//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>4</td>
</tr>
<tr>
<td>-//RidgeStar//NONSGML v4.8.2//EN</td>
<td>4</td>
</tr>
<tr>
<td> -//glenallenpool.com//GlenAllenCommunityCenter//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Incom.org//iCal Helper//DE</td>
<td>4</td>
</tr>
<tr>
<td>-//iCal Parser Test//NONSGML v1.0//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Novell Inc//Groupwise 12.0.0 Beta</td>
<td>4</td>
</tr>
<tr>
<td>-//Middlebury College//Dining Menus//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Mercury//cam.ac.uk//</td>
<td>4</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 6.0//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//D2Rec WEB//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Church of Jesus Christ of Latter Day Saints//LDS Calendar 2.0//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Cambridge Publications//NONSGML ConferenceSys//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Double Yellow//DY//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//HOCZ.org//srazy.hocz.org//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Foris//Meetings//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//eZ Systems//eZ Publish//EN</td>
<td>4</td>
</tr>
<tr>
<td>-//Trumba Corporation//Trumba Calendar Services 0.11.7922//EN</td>
<td>4</td>
</tr>
<tr>
<td>http://www.jeripeier.ch/piper+</td>
<td>4</td>
</tr>
<tr>
<td>-//UM//UM*Events//EN</td>
<td>4</td>
</tr>
<tr>
<td>//Dave Warker//Remember? 4.6.2d1</td>
<td>4</td>
</tr>
<tr>
<td>-//TIMEANDDATE AS//NONSGML//EN</td>
<td>4</td>
</tr>
<tr>
<td>Clubless Event Invite</td>
<td>4</td>
</tr>
<tr>
<td>http://aol.animanga.at/</td>
<td>4</td>
</tr>
<tr>
<td>-//ungarn.brunstadworld.org// Ungarn.iCal 1.0//EN</td>
<td>4</td>
</tr>
<tr>
<td>infosys@rn.inf.tu-dresden.de</td>
<td>4</td>
</tr>
<tr>
<td>GIGPRESS 2.0 WORDPRESS PLUGIN</td>
<td>4</td>
</tr>
<tr>
<td>-//vodafoneprojects-hr.mediaxplosion.nl//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>4</td>
</tr>
<tr>
<td>IntraSEIC ICS Generator</td>
<td>4</td>
</tr>
<tr>
<td>-//Terrapinn//World National Oil Companies Congress 2012//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//test.org//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>3</td>
</tr>
<tr>
<td>-//CBIT//eAdministration//DK</td>
<td>3</td>
</tr>
<tr>
<td>-//MightyMax/JPT/ripper v1.0//NL</td>
<td>3</td>
</tr>
<tr>
<td>-//ELT Calendar//Add to calendar//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Tethr.co.uk/NONSGML Tethr 0.1//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//TBP\ Inc//iCal 1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//NONSGML Events //EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Taxi Licensing//MOT BOOKINGS//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//NOVASOFTWARE//Calendar//IT</td>
<td>3</td>
</tr>
<tr>
<td>http://www.example.com/calendarapplication/TZ:+01:00</td>
<td>3</td>
</tr>
<tr>
<td>http://www.trinews.at</td>
<td>3</td>
</tr>
<tr>
<td>DaisyTest</td>
<td>3</td>
</tr>
<tr>
<td>-//DNN//Events 05.02.00//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Novell Inc//Groupwise 8.0.2 </td>
<td>3</td>
</tr>
<tr>
<td>eAdministration</td>
<td>3</td>
</tr>
<tr>
<td>-//MIA Consulting//MIA_Toolkit v1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//hugoviste.cz//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>3</td>
</tr>
<tr>
<td>-//i:FAO Aktiengesellschaft//NONSGML cytric r10//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//localhost//NONSGML iCalcreator 2.6//</td>
<td>3</td>
</tr>
<tr>
<td>-//Trumba Corporation//Trumba Calendar Services 0.11.7914//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Hester Jans//Agenda//NL</td>
<td>3</td>
</tr>
<tr>
<td>-//Ibooqu Calendar 1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//University of Florida//NONSGML Calendar v1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Intand Corporation//Tandem//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//koivuniemi//navettabroker 1.0//FI</td>
<td>3</td>
</tr>
<tr>
<td>-//WBT Systems//NONSGML TopClass//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//University of Cambridge/WattLab V1.4//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//LOGICS SOFTWARE GMBH//MOBILE APP 2.1//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Example/ExampleCalendarClient//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//meds.queensu.ca//iCal MEdTech Central Calendar MIMEDIR//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//MGL MakingGreatLeaders//NONSGML MGL//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Eveoh//Eveoh iCalExporter 1.2//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//The Taft School//NONSGML v1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Maxinutrition//iCal 2.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//GENTICS Content.Node//NONSGML AWO Event//DE</td>
<td>3</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 7.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 8.5.2//EN_C</td>
<td>3</td>
</tr>
<tr>
<td>-//Markthisdate.com\,0.7</td>
<td>3</td>
</tr>
<tr>
<td>-//Generated by PHP in Linux!//NONSGML v1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//OHAI.CA//Brian Lai&#8217;s Awesome iCal Parser 1.01//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Appointments On Time//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//SweepAround.Us: Ward 40\, Sweep Area 5//EN</td>
<td>3</td>
</tr>
<tr>
<td>TEST</td>
<td>3</td>
</tr>
<tr>
<td>NetProfits Guidance Scheduling</td>
<td>3</td>
</tr>
<tr>
<td>-//Plan 2011Z CB//NONSGML v1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>Microsoft Exchange SERVER 2007</td>
<td>3</td>
</tr>
<tr>
<td>-//Schedule Star LLC//HighSchoolSports.net Calendar 2009.02.19//ENVERSION:2.0CALSCALE:GREGORIAN</td>
<td>3</td>
</tr>
<tr>
<td>UVT/ESG</td>
<td>3</td>
</tr>
<tr>
<td>-//Saltech Systems//NONSGML Saltech CMS 2011//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//sol3//EN</td>
<td>3</td>
</tr>
<tr>
<td>ReflexAppointment</td>
<td>3</td>
</tr>
<tr>
<td>-//Amtelco/Oncall//NONSGML V1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Rentmanager XI//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Reincubate Ltd//iPhone Backup Extractor 3.0.8//EN</td>
<td>3</td>
</tr>
<tr>
<td>Nova-Migration-PC-1.0</td>
<td>3</td>
</tr>
<tr>
<td>-//Sotic Ltd//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Roundcube Webmail//NONSGML Calendar//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Scott Crevier//SouthEndZone.com//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//Brian Victor//BTBCal</td>
<td>3</td>
</tr>
<tr>
<td>-//OHAI.CA//Brians iCal Generator 1.01//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//ServeiTIC ETSAB//iCal4j 1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//p77b Inc//iCal Splitter r1//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//SÃƒÂ¸lvguttene//Aktivitetskalender//EN</td>
<td>3</td>
</tr>
<tr>
<td>IE &#8211; 2011</td>
<td>3</td>
</tr>
<tr>
<td>-//Ascentis Corporation//CalExporter 1.0//EN</td>
<td>3</td>
</tr>
<tr>
<td>-//synexarium_arabic@copticchurch.net//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>3</td>
</tr>
<tr>
<td>-//IP.Board Calendar 3.1.4//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//iwooweb.umcn.nl/rooster/B1GM1t_rooster_12-8-2011.ics//NONSGML iCalcreator 2.6//</td>
<td>2</td>
</tr>
<tr>
<td>-//Zarafa//7.0.1-28479//EN</td>
<td>2</td>
</tr>
<tr>
<td>Reflex Appointment</td>
<td>2</td>
</tr>
<tr>
<td>-//WebCalendar-v1.0.2</td>
<td>2</td>
</tr>
<tr>
<td>-//YuMe Inc//NONSGML My Product//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//www.bostonharborislands.com//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>2</td>
</tr>
<tr>
<td>-//jaegerlacke.de//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>2</td>
</tr>
<tr>
<td>-//Genbook, Inc//Genbook Calendar 1.0//NONSGML v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//flybe SDRA iCal Export//Daniel Giles//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//inter-actief//amÃƒÂ©lie//NL</td>
<td>2</td>
</tr>
<tr>
<td>-//AbanQ/AbanQCalendarClient//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Volleyball calendar 2011-2012//</td>
<td>2</td>
</tr>
<tr>
<td>VMH Akademie Mailer</td>
<td>2</td>
</tr>
<tr>
<td>-//192.168.65.8//NONSGML iCalcreator 0.9.9//</td>
<td>2</td>
</tr>
<tr>
<td>-//127.0.0.1//NONSGML iCalcreator 2.6//</td>
<td>2</td>
</tr>
<tr>
<td>- // LuxCal 2.5.0 // I+R Web Calendar // EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Vrijhof Cultuurcentrum//Admino 3//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Abilene Christian University//CM 2011.1//EN</td>
<td>2</td>
</tr>
<tr>
<td>UWA Whatson </td>
<td>2</td>
</tr>
<tr>
<td>-//adb_birthdays2ical//V0.1//EN</td>
<td>2</td>
</tr>
<tr>
<td>SuperOffice Calendar </td>
<td>2</td>
</tr>
<tr>
<td>-//http://nitalk-dev.natinst.com//ics-export-sbs-plugin//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Hochschule Heilbronn//ICS Downloader//DE</td>
<td>2</td>
</tr>
<tr>
<td>www.handball.no</td>
<td>2</td>
</tr>
<tr>
<td>feed2ical 0.0.1</td>
<td>2</td>
</tr>
<tr>
<td>Microsoft CDO for Microsoft Exchange</td>
<td>2</td>
</tr>
<tr>
<td>Fenwick/Kinopop</td>
<td>2</td>
</tr>
<tr>
<td>feed2ical 0.1</td>
<td>2</td>
</tr>
<tr>
<td>-//dukamunka.hu// DukaMunka.iCal 1.0//HU</td>
<td>2</td>
</tr>
<tr>
<td>ApplyMate Reminders</td>
<td>2</td>
</tr>
<tr>
<td>-//DougBrown//WHS Date Generator &#8211; copyright 2011 //EN</td>
<td>2</td>
</tr>
<tr>
<td>Microsoft Exchange Server 2010</td>
<td>2</td>
</tr>
<tr>
<td>METHEUS 2000</td>
<td>2</td>
</tr>
<tr>
<td>-//Church of Jesus Christ of Latter Day Saints//LDS Calendar 1.6//EN</td>
<td>2</td>
</tr>
<tr>
<td>JustaTest</td>
<td>2</td>
</tr>
<tr>
<td>-//chapterboard.com//NONSGML iCalcreator 2.6//</td>
<td>2</td>
</tr>
<tr>
<td>-//Chris Malton//UKS_WebExport v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//d-elft.nl//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>2</td>
</tr>
<tr>
<td>-//blah/test</td>
<td>2</td>
</tr>
<tr>
<td>http://ortsring-weiler.de/</td>
<td>2</td>
</tr>
<tr>
<td>http://cybot.eu.org/zapo/</td>
<td>2</td>
</tr>
<tr>
<td>//annando/mybb-ical//DE</td>
<td>2</td>
</tr>
<tr>
<td>-//Air Crew Portal//Air//EN</td>
<td>2</td>
</tr>
<tr>
<td>//Bedework.org//BedeWork V3.7//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Annual//Annual 70.9054//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Feuerwehr Eriskirch//NONSGML v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Air Crew Portal//Air v//EN</td>
<td>2</td>
</tr>
<tr>
<td>-Consultation Manager 2.0</td>
<td>2</td>
</tr>
<tr>
<td>-ANSJOB//IKSTYM//1112</td>
<td>2</td>
</tr>
<tr>
<td>-//AntonDesign//NONSGML v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Apple Inc.//iCal 4.0.3//EN</td>
<td>2</td>
</tr>
<tr>
<td>//opencampus.ssig.ch\ v2.0//IT</td>
<td>2</td>
</tr>
<tr>
<td>NONE</td>
<td>2</td>
</tr>
<tr>
<td>-//EMA Inc//EMA Private//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//EventPoint, Inc.//TechEd Australia 2011 Calendar//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Apple Computer\, Inc//iCal 1.5//EN</td>
<td>2</td>
</tr>
<tr>
<td>//Nokia Corporation//Maemo5 Calendar PR1.2//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Apple Inc.//iCal 3.0m//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//MKIVC//Public//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Terrapinn//Hedge Funds World Asia 2011//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//PBS Arts//NONSGML GIVE ME THE BANJO//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Songkick//iCal 1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//SYFADIS//PORTAIL FORMATION//FR</td>
<td>2</td>
</tr>
<tr>
<td>-//TV-kalendern.se//NONSGML Calendar feed for television//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//NC State OIED//NONSGML v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//P2D Prontuario Universal//P2D Calendar 1.7//PT-BR</td>
<td>2</td>
</tr>
<tr>
<td>-//Paprikka_ERP//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>2</td>
</tr>
<tr>
<td>-//localhost:2026//NONSGML v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Rearden Commerce//iCal4j 1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//suda.co.uk//X2V 0.7.2 (BETA)//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Maxinutrition//iCal 1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Meetup//Meetup Events v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//The Horde Project//Horde_iCalendar Library\, Horde 3.3.8//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Microsoft Corporation//Outlook MIMEDIR//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//SoPA UoE//Event Calendar//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//LUIS/handcal//NONSGML v1.0//LV</td>
<td>2</td>
</tr>
<tr>
<td>-//Planetarium Hamburg//Planetarium Hamburg Technikeinsatzplkanung//DE</td>
<td>2</td>
</tr>
<tr>
<td>-//test//Set-a-Date//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//USBank//NONSGML v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Snow B.V.//NONSGML ldap2ics.pl v0.1//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//JH-data//www.kobh.dk v1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//K Desktop Environment//NONSGML libkcal 4.3//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//Skiteam Wolfskamer//Wedstrijdagenda//NL</td>
<td>2</td>
</tr>
<tr>
<td>-//Taxi Licensing//Basildon Borough Council//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//TAO Outlook-Converter//software.tao.at//</td>
<td>2</td>
</tr>
<tr>
<td>-//School Datebooks Inc//The Zoneâ„¢ &#8211; Ursuline Academy of Cincinnati//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//SÃƒÂ¸lvguttene//Aktivitetskalender//NO</td>
<td>2</td>
</tr>
<tr>
<td>-//TheWeddingDJ</td>
<td>2</td>
</tr>
<tr>
<td>-//northwestern_econ_pinksheet//NONSGML iCalcreator 2.6//</td>
<td>2</td>
</tr>
<tr>
<td>-//Union Korneuburg//iCal4j 1.0//EN</td>
<td>2</td>
</tr>
<tr>
<td>-//CE Systems//calendarexchange 1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Numara Software, Inc.//FootPrints Calendar//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//NWHS Events//EN</td>
<td>1</td>
</tr>
<tr>
<td></td>
<td>1</td>
</tr>
<tr>
<td>-//CitySocialising//NONSGML CitySocialising Socials v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//CMS4Schools.com//NONSGML Pro//EN</td>
<td>1</td>
</tr>
<tr>
<td>http://www.htw-aalen.de/</td>
<td>1</td>
</tr>
<tr>
<td>-//Plan 2011Z CA//NONSGML v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//PIRATEN//NONSGML ELSAevent//DE</td>
<td>1</td>
</tr>
<tr>
<td>http://www.mscbeuern.de/</td>
<td>1</td>
</tr>
<tr>
<td>-//arqcore.com//NONSGML iCalcreator 2.10//</td>
<td>1</td>
</tr>
<tr>
<td>-//Asia Pacific Civil-Military Centre of Excellence//NONSGML v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Calendar For</td>
<td>1</td>
</tr>
<tr>
<td>-//Calendar Labs//Calendar 1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Cambridge Folk//NONSGML Cam-French//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//BusyMac LLC/BusyCal 1.5.4/ET</td>
<td>1</td>
</tr>
<tr>
<td>-//CalendarONE Pte Ltd//Entourage Mac 11.0 MIMEDIR//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//OJP/Thales//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//calendar-workoptions b.v..eazymatch.net//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>1</td>
</tr>
<tr>
<td>-//Open Source Applications Foundation//NONSGML Chandler Server//E</td>
<td>1</td>
</tr>
<tr>
<td>-//bughome/tasks//NONSGML v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>livesportontv.com</td>
<td>1</td>
</tr>
<tr>
<td>-//BlackParadigm/Schedule/FR</td>
<td>1</td>
</tr>
<tr>
<td>-//ATK Palvelu Hakosalo Oy//Yrinet3-asiakashallintajÃ¤rjestelmÃ¤//FI</td>
<td>1</td>
</tr>
<tr>
<td>-//PimlicoSoftware Inc//Pimlical Calendar ICS Export//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Broadnet Teleservices/Event manager//EN</td>
<td>1</td>
</tr>
<tr>
<td>Id de procedencia (Compaï¿½ia)</td>
<td>1</td>
</tr>
<tr>
<td>Lagsidan</td>
<td>1</td>
</tr>
<tr>
<td>-//PBS Arts//NONSGML</td>
<td>1</td>
</tr>
<tr>
<td>-//212.90.148.26//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>1</td>
</tr>
<tr>
<td>-//216.71.91.126//NONSGML iCalcreator 2.4.3//</td>
<td>1</td>
</tr>
<tr>
<td>-//193.202.110.157//NONSGML iCalcreator 2.6//</td>
<td>1</td>
</tr>
<tr>
<td>-//SMW Project//Semantic Result Formats</td>
<td>1</td>
</tr>
<tr>
<td>-//192.168.65.8//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>1</td>
</tr>
<tr>
<td>University of Kent THALIA</td>
<td>1</td>
</tr>
<tr>
<td>-//Sol-3/sol3-export-crm-calendar-ics.pl//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Schedule Star LLC//HighSchoolSports.net Calendar 2009.02.19//CALSCALE:GREGORIAN</td>
<td>1</td>
</tr>
<tr>
<td>-//schleifring//messen</td>
<td>1</td>
</tr>
<tr>
<td>TT-KalenderMETHOD:PUBLISH</td>
<td>1</td>
</tr>
<tr>
<td>-//78.47.136.163//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>1</td>
</tr>
<tr>
<td>-//002511509501000000000000000000000002000_NÃ– MÃ¤nner Meister PlayOff//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>1</td>
</tr>
<tr>
<td> ANSJOB IKSCRIPT</td>
<td>1</td>
</tr>
<tr>
<td>-//SHEA//syndicated//NONSGML v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>XVU iCal</td>
<td>1</td>
</tr>
<tr>
<td>-//Shrimad Rajchandra Mission//Mission Calendar 1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>PRODID;X-RICAL-TZSOURCE=TZINFO:-//Full Slate\, Inc.//NONSGML fullslate.co</td>
<td>1</td>
</tr>
<tr>
<td> HIP-HOP.DK 1.0</td>
<td>1</td>
</tr>
<tr>
<td>&#8211;//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN</td>
<td>1</td>
</tr>
<tr>
<td>-////NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>1</td>
</tr>
<tr>
<td>-//scrollday.com//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>1</td>
</tr>
<tr>
<td>www.apartmentsapart.com</td>
<td>1</td>
</tr>
<tr>
<td>-//SimpleMachines//SMF/RAphotoclub v1.0 1//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//anzevents.adobe.com &#8211; Creaive Class: for creative people//</td>
<td>1</td>
</tr>
<tr>
<td>ONNET OFFLINEKALENDAR</td>
<td>1</td>
</tr>
<tr>
<td>-//St. Luke University Parish//stlCalendar v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>Projektron BCS</td>
<td>1</td>
</tr>
<tr>
<td>Open-Xchange</td>
<td>1</td>
</tr>
<tr>
<td>-//Reincubate Ltd//iPhone Backup Extractor 3.0.8//EN // RECOMMENDED INCLUSION</td>
<td>1</td>
</tr>
<tr>
<td>-//PYVOBJECT//NONSGML Version 1//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Apple Inc.//iCal 4.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Raco//iCal4j 1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>ONLINEBOOQ</td>
<td>1</td>
</tr>
<tr>
<td>-//stgeorge.org//calendar.php//NONSGML v1.0//ENb</td>
<td>1</td>
</tr>
<tr>
<td>-//Something.org//NotesCalendarExport 0.96//EN</td>
<td>1</td>
</tr>
<tr>
<td>Rooster-janwal2010</td>
<td>1</td>
</tr>
<tr>
<td>-//ActiveDataExchange/Calendar V3.12.1//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Acme Corporation//NONSGML V1.0//Widget</td>
<td>1</td>
</tr>
<tr>
<td>-//Schedule a Meeting</td>
<td>1</td>
</tr>
<tr>
<td>SFPL Web Calendar</td>
<td>1</td>
</tr>
<tr>
<td>-//ACVB//RSVP Event//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Rillsoft GmbH//Rillsoft Integration Server//DE</td>
<td>1</td>
</tr>
<tr>
<td>-//Solvguttene\, //Aktivitetskalender//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//agenda.strasweb.fr//NONSGML kigkonsult.se iCalcreator 2.8//</td>
<td>1</td>
</tr>
<tr>
<td>-//SABA SOFTWARE//NONSGML iCal//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//RIT Events Calendar//events//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//GEOclubbing//NONSGML//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//timetable.staircase.dur.ac.uk//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>1</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 8.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//generated//sprungknoedl.at//</td>
<td>1</td>
</tr>
<tr>
<td>-//GENTICS Content.Node// AWO Event//DE</td>
<td>1</td>
</tr>
<tr>
<td>-//WebCalendar-ics-v1.2.4</td>
<td>1</td>
</tr>
<tr>
<td>-//LG Electronics//LG Remarq//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//WebCal.fi//NONSGML iCalendar Creator version 3.3//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//WebCal.fi//NONSGML iCalendar Creator version 3.3//FI</td>
<td>1</td>
</tr>
<tr>
<td>-//WebCalendar-ics-v1.2.1</td>
<td>1</td>
</tr>
<tr>
<td>-//Henrik Levkowetz//ietf-agenda-ical 1.03//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//TimeEdit\, //TimeEdit//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//XYZ Corp//My Product//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Flogs//NONSGML Flogs iCalendar interface v1.1//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Five Borough Bicycle Club//genics.cgi//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//M&amp;V Software//NONSGML Yritysmappi 1.4.2//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Freshcookies.org//NONSGMLNotesCalendarExport 0.96//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 8.5.2//EN_S</td>
<td>1</td>
</tr>
<tr>
<td>-//www.bad-homburg-tourismus.de//DE</td>
<td>1</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 8.5.3//EN_C</td>
<td>1</td>
</tr>
<tr>
<td>-//www.ziv-zweirad.de//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>1</td>
</tr>
<tr>
<td>-//Lotus Development Corporation//NONSGML Notes 8.5.3//EN_S</td>
<td>1</td>
</tr>
<tr>
<td>-//LFP//iCal 3.0//FR</td>
<td>1</td>
</tr>
<tr>
<td>-//Intracore 13092011 103801 AM //iCal 2.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//IP.Board Calendar 3.2.2//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//University of Oulu//NONSGML SEAA 2011 Conference Program//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//University of Michigan Museum of Art//Events Calendar//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Integrated Resources Booking System</td>
<td>1</td>
</tr>
<tr>
<td>-//Irish Orienteering Association//NONSGML Fixtures//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//jCRM//iCal 0.1//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Jeb//edt.pl//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Verkkovaraani Oy/Generated by eAdmin//FI</td>
<td>1</td>
</tr>
<tr>
<td>-//IS4U//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//virtual-loup-de-mer.org//NONSGML iCalcreator 2.6//</td>
<td>1</td>
</tr>
<tr>
<td>-//HZ93//HZ93//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Typo3 CMS\, News Event Extension //MIMEDIR//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Hypermatix//NONSGML Andal BETA//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//http://notclive.co.uk/IC-DoC-iCal//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>1</td>
</tr>
<tr>
<td>-//http://www.ibestat.es</td>
<td>1</td>
</tr>
<tr>
<td>-//TYPO3/NONSGML Calendar Base (cal) V1.3.3//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Infragistics,Inc.//UltraWinSchedule</td>
<td>1</td>
</tr>
<tr>
<td>-//University of Illinois//Web Services Calendar//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Kiiba ApS//NONSGML Kiiba//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//ICal by EliasSoft//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//ical.net//NONSGML kigkonsult.se iCalcreator 2.9.1//</td>
<td>1</td>
</tr>
<tr>
<td>-//MAT Foundries Europe GmbH Informationsportal//NONSGML Infoportal//DE</td>
<td>1</td>
</tr>
<tr>
<td>-//Day Software//CQ5 Calendar 5.3.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>fenwick/kinopop</td>
<td>1</td>
</tr>
<tr>
<td>-//NCEO//Web site//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Nevobo/Competitie</td>
<td>1</td>
</tr>
<tr>
<td>Hasso Plattner Institute Potsdam, Germany, AOSD 2012</td>
<td>1</td>
</tr>
<tr>
<td>-//TBP\, Inc//iCal 1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//mulberrymail.com//Mulberry v4.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Terrapinn Holdings Ltd//The Internet Show Middle East//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//multifunction.nl/#SPLUS630532//NONSGML v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//delftcalendar.tudelft.nl//NONSGML iCalcreator 2.6//</td>
<td>1</td>
</tr>
<tr>
<td>-//musique4.localhost//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>1</td>
</tr>
<tr>
<td>http://tute.ch/events/ical/</td>
<td>1</td>
</tr>
<tr>
<td>-//Cozi Group Inc//Cozi Calendar//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//NorthEastSocial//NONSGML NorthEastSocial Events v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//collegefootballcalendar.net//2011-2012 NCAA Football Calendar (ACC)//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//collegefootballcalendar.net//2011-2012 NCAA Football Calendar (SEC)//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//None/1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>http://calendar.rockhurst.edu/</td>
<td>1</td>
</tr>
<tr>
<td>-//Dallas Theological Seminary//NONSGML v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//d-elftwedstrijdkalender//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>1</td>
</tr>
<tr>
<td>-//NLFacMgr_v.2.288//FM//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Newcastle University//Personal Student Timetables v2.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Doodle AG//Doodle//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//MIA Consulting//NONSGML MIA_TOOLKIT v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>//Dave Warker//Remember? 4.6</td>
<td>1</td>
</tr>
<tr>
<td>//MCPS//iCalendar//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//Test//NONSGML My Calendar//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//The Horde Project//Horde_iCalendar Library//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//thinkdigital/webkit-calendar//NONSGML v1.0//EN</td>
<td>1</td>
</tr>
<tr>
<td>-//zugunited.ch//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>1</td>
</tr>
<tr>
<td>-//Zermelo Roostermakers//NONSGML Infoweb rooster//NL</td>
<td>1</td>
</tr>
<tr>
<td>-//MAT Foundries Europe GmbH Informationsportal//NONSGML Infoportal//DE </td>
<td>1</td>
</tr>
<tr>
<td>-//EZ Bill Tracker//</td>
<td>1</td>
</tr>
<tr>
<td>-hanmade</td>
<td>1</td>
</tr>
<tr>
<td>-//dsek.lth.se//NONSGML dCalMaker 1.0//</td>
<td>1</td>
</tr>
<tr>
<td>-//mjoberg.net//NONSGML kigkonsult.se iCalcreator 2.10.5//</td>
<td>1</td>
</tr>
<tr>
<td>-//Drupal iCal API//EN </td>
<td>1</td>
</tr>
<tr>
<td>-//dorky.bkbruntal.cz//NONSGML iCalcreator 2.4.3//</td>
<td>1</td>
</tr>
<tr>
<td>CommuniGate Pro 5.4.2d</td>
<td>1</td>
</tr>
<tr>
<td>BYU Calendar</td>
<td>1</td>
</tr>
<tr>
<td>AndroidEmail</td>
<td>1</td>
</tr>
<tr>
<td>//SMP</td>
<td>1</td>
</tr>
<tr>
<td>-//test.org//NONSGML kigkonsult.se iCalcreator 2.10//</td>
<td>1</td>
</tr>
<tr>
<td>-//Mijn Rooster//osiris.uu.nl//</td>
<td>1</td>
</tr>
<tr>
<td>-//Eloqua//NONSGML Eloqua Conversion Suite//EN</td>
<td>1</td>
</tr>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3104&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/09/30/the-long-tail-of-the-icalendar-ecosystem/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Semantic web 101: Say what you mean</title>
		<link>http://blog.jonudell.net/2011/09/29/semantic-web-101-say-what-you-mean/</link>
		<comments>http://blog.jonudell.net/2011/09/29/semantic-web-101-say-what-you-mean/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 17:19:48 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3095</guid>
		<description><![CDATA[If you think that the semantic web is just some kind of geek rapture, like the singularity, I can understand why. As with Zeno&#8217;s Paradox we&#8217;re always advancing but never arriving. Unlike the singularity, though, I do expect a semantic web to emerge in my lifetime. The latest initiative is schema.org, sponsored by Google, by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3095&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
If you think that the semantic web is just some kind of geek rapture, like the singularity, I can understand why. As with Zeno&#8217;s Paradox we&#8217;re always advancing but never arriving. Unlike the singularity, though, I do expect a semantic web to emerge in my lifetime. The latest initiative is <a href="http://schema.org/">schema.org</a>, sponsored by Google, by Yahoo!, and by my employer, Microsoft. Schema.org recapitulates prior efforts to define how webmasters can mark up web pages to include structured data. I hope that this time, thanks to collaboration among the major search engines, we&#8217;ll finally cross the activation threshold.
</p>
<p>
Meanwhile I&#8217;ve been toiling in another part of the semantic web. I&#8217;ve been trying to get <s>webmasters</s> people to understand why and how to publish calendars as machine-readable structured data in addition to human-readable text. If you&#8217;ve followed the <a href="http://delicious.com/judell/elmcity+azure">elmcity saga</a> you know I&#8217;m on a crusade to make more and better use of the Internet&#8217;s venerable standard for exchanging structured calendar events: iCalendar.
</p>
<p>
It&#8217;s been a struggle. Almost every website run by a school, club, business, or town has an Events page. Those pages are, almost always, data siloes: HTML or PDF files that can be read by people but cannot be processed by machines. Only rarely do such pages offer links to iCalendar feeds served up by Google Calendar or Drupal or Hotmail Calendar or some other service capable of producing such feeds. So when elmcity curators discover one of these rare feeds, it&#8217;s cause for rejoicing.
</p>
<p>
Sadly that joy is sometimes short-lived. A surprising number of iCalendar feeds just plain don&#8217;t work. That&#8217;s why I invited Doug Day to create the <a href="http://icalvalid.cloudapp.net">iCalendar Validator</a>, a service that helps producers of iCalendar feeds conform to the <a href="http://www.rfc-editor.org/rfc/rfc5545.txt">specification</a>. It&#8217;s always painful when I have to explain to a curator that the shiny new feed they&#8217;ve discovered doesn&#8217;t conform and won&#8217;t deliver events to the hub.
</p>
<p>
Here are three sources of iCalendar feeds that, I&#8217;ve recently discovered, don&#8217;t work.
</p>
<p>
1. The University of Michigan&#8217;s <a href="http://events.umich.edu/">UM Events</a>. It&#8217;s a major hub that serves many campus websites. As far as I can tell, all of those sites are providing feeds with malformed descriptions. Here&#8217;s an example of the <a href="http://jonudell.net/data/failed-ics-umich.ics.txt">problem</a> and the <a href="http://jonudell.net/data/fixed-ics-umich.ics.txt">fix</a>. (iCalendar producer ID: UM//UM*Events)
</p>
<p>
2. <a href="http://civicrm.org">CiviCRM</a> is a &#8220;free, libre and open source software constituent relationship management solution.&#8221; Its feeds also have malformed descriptions. Here&#8217;s an example of the <a href="http://jonudell.net/data/failed-ics-civicrm.ics.txt">problem</a> and the <a href="http://jonudell.net/data/fixed-ics-civicrm.ics.txt">fix</a>. (iCalendar producer ID: CiviCRM//NONSGML CiviEvent iCal)
</p>
<p>
3. <a href="http://drupal.org">Drupal</a> is a popular open source content management system. I&#8217;ve seen Drupal feeds used successfully, but today I found one that fails for two reasons: a malformed recurrence rule, and a missing timezone definition. Here&#8217;s an example of the <a href="http://jonudell.net/data/failed-ics-drupal.ics.txt">problem</a> and the <a href="http://jonudell.net/data/fixed-ics-drupal.ics.txt">fix</a>. (iCalendar producer ID: Drupal iCal API)
</p>
<p>
These problems are minor and would be easy to resolve. I&#8217;ll try to contact the authors of these iCalendar producers; if you can help put me in touch I&#8217;d appreciate that. I&#8217;m also going to look through the logs written by the iCalendar Validator, compile a list of producers of invalid feeds, and try to contact them as well.
</p>
<p>
Where&#8217;s the connection to the semantic web? At the end of the day, as <a href="http://feedvalidator.org/">RSS/Atom validator</a> co-creator <a href="http://intertwingly.net/blog/">Sam Ruby</a> likes to say, &#8220;It&#8217;s just data.&#8221; But structured data, whether it conforms to the dozen-year-old iCalendar standard or some newfangled microdata standard, is easily screwed up. And the consequences of screwups are often silent. Services that were looking for that structured data find nothing, mutter to themselves, and move along.
</p>
<p>
As we collectively create the semantic web we&#8217;ll need to make sure that the structured data we intend to publish really says what we mean.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3095/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3095&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/09/29/semantic-web-101-say-what-you-mean/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>I want to be the customer, not the product</title>
		<link>http://blog.jonudell.net/2011/09/19/i-want-to-be-the-customer-not-the-product/</link>
		<comments>http://blog.jonudell.net/2011/09/19/i-want-to-be-the-customer-not-the-product/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 18:11:49 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3089</guid>
		<description><![CDATA[If you follow this sort of thing, you already know about IFTTT. It&#8217;s a new web service that enables non-programmers to compose other web services. The acronym expands to If This Then That, and here are some ways you can use the metaphor: If I am tagged in a Facebook photo, then save the photo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3089&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
If you follow this sort of thing, you already know about <a href="http://ifttt.com">IFTTT</a>. It&#8217;s a new web service that enables non-programmers to compose other web services. The acronym expands to If This Then That, and here are some ways you can use the metaphor:
</p>
<blockquote>
<p>
If I am tagged in a Facebook photo, then save the photo to Evernote
</p>
<p>
If the library sends email saying my book on hold is ready, send me a text message
</p>
</blockquote>
<p>
My colleague Scott Hanselman says this is <a href="http://www.hanselman.com/blog/EssentialIFTTTIfThisThenThatProgrammingWorkflowsForHumansUsingTheWebsSocialGlue.aspx">bloody brilliant</a> and I agree. It&#8217;s the next step in a journey that began for me back in 1999 when I <a href="http://jonudell.net/udell/2003-12-04-measuring-web-mindshare.html">mashed up</a> Alta Vista&#8217;s search engine with Yahoo! directories to measure the mindshare of sites by category. More recently Yahoo! Pipes made service mashing easier for non-programmers. Now IFTTT enables everyone to play. Wonderful!
</p>
<p>
So why am I less enthusiastic about IFTT than I thought I would be? There are two related reasons. First, here&#8217;s what IFTTT says when you ask it to activate its Twitter channel on your behalf:
</p>
<blockquote>
<p>
This application will be able to:
</p>
<ul>
<li>    Read Tweets from your timeline.
<li>    See who you follow, and follow new people.
<li>    Update your profile.
<li>    Post Tweets for you.
<li>    Access your direct messages.
</ul>
</blockquote>
<p>
Excellent! This is an example of OAuth, a protocol that enables you to delegate powers to IFTTT without giving up credentials. Most of the services you can use with IFTTT support OAuth, and that represents another huge step forward for the web.
</p>
<p>
What if I only want to give IFTTT the power to tweet on my behalf, though, and not give up access to my private direct messages? More generally, how can I think about the tradeoffs involved in delegating all versus some versus no powers to IFTTT, across a range of services I might authorize it to use on my behalf?
</p>
<p>
This leads to the second and broader concern. If I&#8217;m not paying for the product, I am the product. As is true for many free services on the web today, I have no contractual relationship with IFTTT. I pay for the service it provides by surrendering access to my data. OAuth helps me negotiate how much access, but if I give up none then IFTTT is powerless.
</p>
<p>
Why, though, can&#8217;t I pay for the product instead of being the product? I want IFTTT to work for me, I want to pay for the service, and in return I want it to promise never to keep or use any of the data it exchanges on my behalf. I realize this may not be a popular option anytime soon. But it&#8217;s time to start the conversation. Services don&#8217;t only want to be free, they also want to be valuable. That&#8217;s rarely a choice nowadays. It needs to become one.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3089/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3089&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/09/19/i-want-to-be-the-customer-not-the-product/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Beating the drum for Delicious</title>
		<link>http://blog.jonudell.net/2011/09/13/beating-the-drum-for-delicious/</link>
		<comments>http://blog.jonudell.net/2011/09/13/beating-the-drum-for-delicious/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 15:14:31 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3082</guid>
		<description><![CDATA[Yesterday&#8217;s stream of notifications brought two links paired with invitations for me to comment. The first link points to a NY Times story about how AVOS, the new owner of Delicious, plans to remake that service. Chad Hurley: The home page would feature browseable &#8220;stacks,&#8221; or collections of related images, videos and links shared around [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3082&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
Yesterday&#8217;s stream of notifications brought two links paired with invitations for me to comment. The first link points to a NY Times <a href="http://www.nytimes.com/2011/09/12/technology/youtube-founders-aim-to-revamp-delicious.html">story</a> about how AVOS, the new owner of Delicious, plans to remake that service. Chad Hurley:
</p>
<blockquote><p>
The home page would feature browseable &#8220;stacks,&#8221; or collections of related images, videos and links shared around topical events. The site would also make personalized recommendations for users, based on their sharing habits. &#8220;We want to simplify things visually, mainstream the product and make it easier for people to understand what they&#8217;re doing,&#8221; Mr. Hurley said.
</p></blockquote>
<p>
The second link points to a blog post from Mark Surman, executive director of the Mozilla Foundation, who wants to teach the world to code:
</p>
<blockquote><p>
This has been the premise behind much of what we have done with Mozilla Drumbeat: people who make stuff on the internet are better creators and better online citizens if they know at least a little bit about the web&#8217;s basic building blocks. Even if they only learn a little HTML, the web gets better.
</p></blockquote>
<p>
I wish I could broker a conversation between Chad Hurley and Mark Surman. If mainstream folk used Delicious and understood what they&#8217;re doing when using it, they&#8217;d understand themselves to be makers of things on the Internet. The things they make are custom information systems. They make them by writing code, but not in the languages of HTML or JavaScript. Instead they use tag vocabularies that produce and consume web services. And services, I argue, are the most fundamental of the web&#8217;s basic building blocks.
</p>
<p>
Here is an example: <a href="http://www.delicious.com/judell/del.icio.us">http://www.delicious.com/judell/del.icio.us</a>. Ostensibly it&#8217;s a list of dozens of articles I&#8217;ve written over the years about what I mean when I say that Delicious enables non-programmers to code and use web services. But it&#8217;s not just a list. I think of it as a web service. One aspect of the service provides the list in HTML format for people to read in browsers. Another provides the list in RSS format that enables cooperating services to watch the list and react when new items are added. Another enables the list to combine with other lists. Here, for example, is a subset of my Delicious-related articles that are also related to the elmcity project: <a href="http://www.delicious.com/judell/del.icio.us+elmcity">http://www.delicious.com/judell/del.icio.us+elmcity</a>.
</p>
<p>
More than anything before or since, Delicious empowers me to manage web resources &#8212; both personally and socially. Once those resources were mainly things we found on the web. Now they&#8217;re also things we make on the web. I hope the forthcoming Delicious makeover will help people understand it to be a tool for creating, mixing, and sharing web resources. And I hope it remains the sort of open web tool that  Mozilla Drumbeat wants to popularize.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3082/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3082&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/09/13/beating-the-drum-for-delicious/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Sears doesn&#8217;t want you to think computationally</title>
		<link>http://blog.jonudell.net/2011/09/05/why-sears-doesnt-want-you-to-think-computationally/</link>
		<comments>http://blog.jonudell.net/2011/09/05/why-sears-doesnt-want-you-to-think-computationally/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 15:56:42 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=3074</guid>
		<description><![CDATA[Last September we bought a new dishwasher to replace the old one that had failed. It was a reluctant purchase. We&#8217;d actually gone a couple of years doing dishes by hand, partly because we&#8217;ve been so disappointed by the modern generation of appliances. When the salesman at Sears mentioned their free 5-year preventive maintenance program, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3074&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
Last September we bought a new dishwasher to replace the old one that had failed. It was a reluctant purchase. We&#8217;d actually gone a couple of years doing dishes by hand, partly because we&#8217;ve been so disappointed by the modern generation of appliances. When the salesman at Sears mentioned their free 5-year preventive maintenance program, though, we decided to opt in. The plan entitles you to an annual appointment with a dishwasher tech who will come by to inspect your machine and do what&#8217;s needed to keep it in good working order.
</p>
<p>
Stoves, dishwashers, and vacuum cleaners shouldn&#8217;t require this kind of life support. I&#8217;m not going to win that argument, but I can at least make effective use of the life support service. Doing so requires a bit of a hack, though. Why? Remembering something annually, on a certain date, for five years running, isn&#8217;t the sort of thing that humans do well. It&#8217;s a task that begs for automation.
</p>
<p>
Of course Sears could remind me, in September of 2011, 2012, 2013, 2014, and 2015, about my dishwasher checkup. It would be easy for them to do. They&#8217;re a mega-corporation with a mighty IT department that can easily perform this feat of magic. But Sears doesn&#8217;t want to remind me. They&#8217;re betting that I&#8217;ll forget, as I&#8217;m sure most people do.
</p>
<p>
So they sounded quite surprised when I called yesterday, on the anniversary of my dishwasher purchase, to schedule my appointment. How did I do it? By casting this magic spell:
</p>
<pre>
BEGIN:VEVENT
DTSTART;VALUE=DATE:20110902
DTEND;VALUE=DATE:20110903
RRULE:FREQ=YEARLY;COUNT=5
SUMMARY:sears dishwasher
END:VEVENT
</pre>
<p>
That&#8217;s an event recorded by my calendar program. It happened first on September 2, 2011, and will happen again yearly for five years. I cast my spell using Outlook but you can do the same thing using any calendar program: Google Calendar, Apple iCal, Hotmail Calendar, Lotus Notes, many others.
</p>
<p>
When I talk about iCalendar feeds in the context of the elmcity project, I tend to focus on the idea that these are data feeds, which they are. But iCalendar has a special property. Some of that data is actually code. In this example, here is the one line of code:
</p>
<pre>
RRULE:FREQ=YEARLY;COUNT=5
</pre>
<p>
In iCalendar lingo, RRULE means recurrence rule. From Outlook&#8217;s or Google Calendar&#8217;s point of view the rule is a tiny program and they are the operating systems that run it. Here are some other RRULES that calendar applications enable you to express:
</p>
<blockquote>
<p>
every Tuesday at 10AM
</p>
<p>
every first Sunday until October 2011
</p>
<p>
every September 2 for five years
</p>
</blockquote>
<p>
You don&#8217;t have to do it this way. You can, instead, record each event separately. Even though calendar software makes it quite easy to define repeating events, I&#8217;ve got a hunch that in the dishwasher scenario a lot of people would use data (five discrete events) rather than code (one event that expands to five). Why? For the same reason that many people will manually adjust the font size used for every paragraph in a document, rather than creating a rule that governs all the paragraphs.
</p>
<p>
My <a href="http://blog.jonudell.net/2011/01/24/seven-ways-to-think-like-the-web/">list</a> of core principles for web thinkers doesn&#8217;t yet include the idea of code that generates data. I&#8217;ve found it plenty challenging just to get people to think about the nature of their data, about how they do or don&#8217;t control it, and about how it does or doesn&#8217;t flow through networks.
</p>
<p>
But if we want everyone to be able to <a href="http://blog.jonudell.net/2011/08/25/learning-to-automate-work/">automate</a> tasks that otherwise get done poorly or not at all, we probably do need to find a way to teach patterns like code-generated data and <a href="http://blog.jonudell.net/2011/08/31/be-authoritative-to-stay-dry/">Don&#8217;t Repeat Yourself</a> more broadly than just to students of computer and information sciences.
</p>
<hr />
<p>
If you want to read a lovely short essay on calendar software and our relationship to the future, I highly recommend Paul Ford&#8217;s <a href="http://www.ftrain.com/tickle.html">Tickler File Forever</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/3074/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/3074/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/3074/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/3074/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/3074/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/3074/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/3074/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/3074/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/3074/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/3074/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/3074/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/3074/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/3074/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/3074/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=3074&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2011/09/05/why-sears-doesnt-want-you-to-think-computationally/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0d7c7e171fc0ad3dacc9b1ed203e3e50?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jonudell</media:title>
		</media:content>
	</item>
	</channel>
</rss>
