<?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 &#187; Search Results  &#187;  screencasts</title>
	<atom:link href="http://blog.jonudell.net/search/screencasts/feed/rss2/" rel="self" type="application/rss+xml" />
	<link>http://blog.jonudell.net</link>
	<description>Strategies for Internet citizens</description>
	<lastBuildDate>Sat, 11 Feb 2012 19:45:11 +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 &#187; Search Results  &#187;  screencasts</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>Using sparkcasts to enhance step-by-step instructions</title>
		<link>http://blog.jonudell.net/2010/12/14/using-sparkcasts-to-enhance-step-by-step-instructions/</link>
		<comments>http://blog.jonudell.net/2010/12/14/using-sparkcasts-to-enhance-step-by-step-instructions/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 20:25:44 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=2740</guid>
		<description><![CDATA[A non-profit organization chartered to promote arts and culture within its community will be curating a new elmcity hub. The curator plans to invite dozens of member organizations to contribute to the hub &#8212; that is, to manage their public schedules using calendar applications, and to convey the URLs of their calendar feeds to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2740&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
A non-profit organization chartered to promote arts and culture within its community will be curating a new elmcity hub. The curator plans to invite dozens of member organizations to contribute to the hub &#8212; that is, to manage their public schedules using calendar applications, and to convey the URLs of their calendar feeds to the hub. It&#8217;s critical that these member organizations will be able to easily accomplish this task. I&#8217;ve been pointing to a <a href="http://www.delicious.com/judell/icalpub+howto">series of how-to articles</a> but it was time to make the instructions clearer and simpler. It was also time to revisit how to use screencasting to explain step-by-step procedures.
</p>
<p>
I started with the two web applications that make publishing calendar feeds as simple as it can be: Google Calendar and Hotmail Calendar. Here&#8217;s the new and improved explanation of <a href="http://jonudell.net/elmcity/publishing-feeds-from-google-and-hotmail-calendars.html">How to publish a calendar feed from Google Calendar or Hotmail Calendar</a>. I&#8217;ll soon learn how well this new explanation works for the intended audience. Meanwhile, here are some notes on the techniques I discovered.
</p>
<h2>Using sparkcasts</h2>
<p>
My earlier explanations didn&#8217;t use screencasts, they were just textual narrations with embedded static screenshots. That&#8217;s an appropriate way to explain step-by-step procedures. Screencasts can be overkill.
</p>
<p>
But it is nice to be able to show motion and sequential flow. I wondered: if sparklines are &#8220;intense word-sized graphics&#8221; that appear inline with text, is there a similarly lightweight way to use screencasts? Well, that&#8217;s how this explanation works. The steps are all written as text. Each step comes with a Watch! link that opens a quick little inline screencast.
</p>
<h2>Using Firebug to prepare screencasts</h2>
<p>
As I <a href="http://blog.jonudell.net/2010/12/09/democratizing-design/">mentioned the other day</a>, Firebug is an amazing tool for making mockups based on live web pages. And sometimes you can do more than just take screenshots of those mockups. Sometimes you can interact with them.
</p>
<p>
I used that method to temporarily alter both Google Calendar and Hotmail Calendar for these sparkcasts. In my case, both include several private calendars that were irrelevant to my explanation. Using Firebug I was able to remove them. I also made the address shown in Gmail look like the generic <b>YourAccountName@gmail.com</b> instead of <b>judell@gmail.com</b>. If subsequent interaction with the page doesn&#8217;t trigger a refresh of these altered elements, the changes will persist. Handy!
</p>
<h2>Using Camtasia to make animated GIFs</h2>
<p>
A movie-style screencast is a fairly heavy object, and it would be cumbersome to embed lots of these on a page. Animated GIFs are lighter. And it turns out that Camtasia can produce that format. Nice!
</p>
<h2>Using jQuery to reload animated GIFs</h2>
<p>
On the first try, I made each sparkcast loop forever, and used jQuery to show only the current one. But that wasn&#8217;t ideal. What I really wanted was for each sparkcast to play once when shown, then stop and offer a Replay link. If you view <a href="http://jonudell.net/elmcity/publishing-feeds-from-google-and-hotmail-calendars.html">the source of this page</a>, you&#8217;ll see the solution I came up with. It turns out that when you dynamically reload an animated GIF, you need to decorate its URL in a unique way; otherwise the browser won&#8217;t replay it.
</p>
<h2>Using Image Magick to control the looping of animated GIFs</h2>
<p>
Once I figured out how to replay a play-once GIF, I had to make all the GIFs stop looping. I&#8217;m sure that PhotoShop and others of its ilk can do that, but I like Image Magick&#8217;s ability to automate repetitive tasks. The Image Magick incantation to make an animated GIF play once goes like this:
</p>
<pre>
mogrify -loop 1 howto-01.gif
</pre>
<p>
Now that I&#8217;ve written this down, I can forget it until I need it again!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/2740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/2740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/2740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/2740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/2740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/2740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/2740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/2740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/2740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/2740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/2740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/2740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/2740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/2740/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2740&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2010/12/14/using-sparkcasts-to-enhance-step-by-step-instructions/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>To PIP (picture-in-picture video) or not to PIP?</title>
		<link>http://blog.jonudell.net/2010/06/10/to-pip-picture-in-picture-video-or-not-to-pip/</link>
		<comments>http://blog.jonudell.net/2010/06/10/to-pip-picture-in-picture-video-or-not-to-pip/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 22:06:34 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=2481</guid>
		<description><![CDATA[I&#8217;m just wrapped up a screencast about the elmcity project. It&#8217;ll stand in for me at an upcoming event I can&#8217;t attend, and serve as an explanation I can point others too. This is the first screencast I&#8217;ve worked on in ages, and also the first in which I appear as a picture-in-picture talking head. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2481&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;m just wrapped up a screencast about the <a href="http://elmcity.cloudapp.net">elmcity project</a>. It&#8217;ll stand in for me at an upcoming event I can&#8217;t attend, and serve as an explanation I can point others too. This is the first screencast I&#8217;ve worked on in ages, and also the first in which I appear as a picture-in-picture talking head. The process has been challenging, and I want to write about it while the details are fresh.
</p>
<h2>Software teleprompters</h2>
<p>
After writing the script, I realized I&#8217;d need a teleprompter in order to read it effectively into the camera. You&#8217;d expect to find lots of software prompters floating around on the web, including some free ones, and you&#8217;d be right about that. But I had to work through a bunch of them before I found one that worked well for me. I tried <a href="http://www.cueprompter.com/">CuePrompter</a>, <a href="http://telekast.sourceforge.net/">TeleKast</a>, and many others. All failed in some dimension of control: margins, speed, transport. Finally I settled on <a href="http://www.promptdog.com/">PromptDog</a>, which is free to try but is the one I&#8217;ll buy when I go this route again. It does everything well, but what really put it over the top for me was the way it wires scroll speed to the mouse wheel.
</p>
<p>
If you&#8217;ve read from a software-based teleprompter before, you&#8217;ll already know this, but it was new to me. No matter what scroll speed you choose, you need to vary it as you go along. That&#8217;s because words and sentences take varying amounts of time to speak, but you need to keep your eyes focused near the top of the screen where the camera sits. With most of the programs I tried, you manage this focal zone by stopping and starting the scroll. But for me, at least, the stops and starts were distracting. PromptDog&#8217;s mouse-wheel-driven variable speed control made it much easier to stay in the focal zone. Reading from a software teleprompter is hard, at least for me. I was happy for all the help I could get.
</p>
<h2>Picture-in-picture video</h2>
<p>
For this screencast, I upgraded from Camtasia 5 to Camtasia 7. It can record directly from a camcorder, but my second-hand Panasonic PV-GS400 doesn&#8217;t seem to work well in that mode. So I recorded to tape, imported the results to a file, and imported that file into Camtasia as a PIP (picture-in-picture) video. On import you tell Camtasia how big your PIP window will be, and where it will show up in the larger video window. I made the PIP window a quarter the size of, vertically centered in, and flush right with the larger 1024&#215;768 video window.
</p>
<p>
I&#8217;d sssumed you could move the PIP window around, and grow it or shrink it, to accomodate different kinds of underlying screencast action. But that assumption was wrong. For a given segment of PIP video, the window stays where you put it. This leads to my first feature request for Camtasia 8: a PIP preview rectangle when recording the screen.
</p>
<p>
Often it&#8217;s OK to let the PIP video just overlay the screen action. But sometimes you don&#8217;t want it to hide an essential part of the screen. To avoid that, you have to compose the screen around the PIP window. Lacking a  visual cue for the PIP window&#8217;s borders, I had to guess. Often I guessed wrong, and had to recompose and reshoot a piece of screen action.
</p>
<p>
Note that you <i>can</i> vary the size and location of the PIP window by splitting the PIP video into segments and assigning different sizes and locations to each segment. That&#8217;s a lot of work, though. And you don&#8217;t really want to split the PIP video into segments because then you can&#8217;t manipulate the whole track.
</p>
<h2>Editing audio, motion video, and screen video all together</h2>
<p>
I made things hard on myself because I&#8217;d forgotten that Camtasia invites you to do more integrated editing than you should. In principle you can, for example, run a noise-reduction pass on your audio in Camtasia. In practice, I would prefer to do that in Adobe Audition, which does the job faster and better. What I should have done is grab the sound track out of the captured motion video, run Audition&#8217;s noise reducer, recombine the audio and video, and then import into Camtasia for editing.
</p>
<p>
Instead I edited everything down in Camtasia, then tried to do an export/process/import pass on the audio. When you export, Camtasia renders the audio based on your edits. Unfortunately it came out a few seconds longer than expected. I think that&#8217;s because the differing frame rates for screen video on the one hand, and motion video plus audio on the other, make it hard to keep things in synch. Next time around I&#8217;m going to try matching the frame rates to see if that helps.
</p>
<p>
(In the end I decided it was worth redoing the edit anyway, so I split the AVI file I&#8217;d recorded from the camcorder, fixed the audio, imported it back into Camtasia, and redid the relatively few edits I&#8217;d made to the PIP video.)
</p>
<p>
In the past, I&#8217;ve done some carefully edited screencasts where things that I say are tightly synched to things happening on screen. (&#8220;&#8230;when I click on <i>this link</i>, we see that &#8230;) It&#8217;s easy to pull that off when you can&#8217;t see the speaker, because you can mess with the screen video, or the audio, or both. When you can see the speaker, it&#8217;s much harder. Motion video isn&#8217;t nearly so forgiving as audio, so you have to do almost all the synch adjustment in the screen video. Or else re-record some or all of the motion video.
</p>
<p><h3>To PIP or not to PIP?</h3>
<p></a>
</p>
<p>
Is all this effort worth the trouble? When Scott Hanselman <a href="http://www.hanselman.com/blog/YourOpinionMattersScreencastTechniquesSurveyRESULTS.aspx">surveyed his readers</a> about screencasts, he asked, among other things, &#8220;PIP or no PIP?&#8221; More than half agreed with the statement: &#8220;Too much PIP (Picture in Picture) video of the presenter is distracting.&#8221; And I think that&#8217;s true for screencasts that show how to do stuff with software.
</p>
<p>
When a screencast shows <i>why</i> to do stuff with software, though, I think the talking head may make more sense. Now, my instinct is to be a voice only, as I am on my <a href="http://www.itconversations.com/series/innovators.html">podcast</a>. But if the screencast is going to represent me at an event, it seems like I should try to project myself there.
</p>
<p>
More broadly, the topic is something I care about and have struggled to communicate effectively. If this method of presentation works better than others I&#8217;ve tried, even if only for some people, then it&#8217;s worth doing. My communication kit needs as many tools as I can pack into it.
</p>
<p>
Now that I&#8217;ve knocked the rust off my screencasting skills, I&#8217;m looking forward to redoing this video based on feedback. And since it was made for a ten-minute conference slot, I should probably also do some shorter versions that will work in different contexts.
</p>
<p>
One thing that&#8217;s becoming terribly clear: If I want these to make sense to broad audiences, I need to speak plainly and illustrate with simple everyday examples. I&#8217;ve been embarrassingly slow to figure that out, but I am learning. In the screencast I just wrapped, which is all about syndication, I never use that word. It&#8217;s a start!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/2481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/2481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/2481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/2481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/2481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/2481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/2481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/2481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/2481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/2481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/2481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/2481/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/2481/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/2481/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2481&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2010/06/10/to-pip-picture-in-picture-video-or-not-to-pip/feed/</wfw:commentRss>
		<slash:comments>6</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>How to create a Pivot visualization of a WordPress blog</title>
		<link>http://blog.jonudell.net/2010/04/02/how-to-create-a-pivot-visualization-of-a-wordpress-blog/</link>
		<comments>http://blog.jonudell.net/2010/04/02/how-to-create-a-pivot-visualization-of-a-wordpress-blog/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 16:45:28 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pivot]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=2350</guid>
		<description><![CDATA[I&#8217;ve posted the Python script I used to make the Pivot visualization of this blog. I need to set it aside for now and do other things, but here&#8217;s a snapshot of the process for my future self and for anyone else who&#8217;s interested. Using deepzoom.py to create Deep Zoom images and collections I&#8217;m using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2350&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve posted the <a href="http://github.com/judell/wordpress2pivot">Python script</a> I used to make the <a href="http://blog.jonudell.net/2010/03/29/a-pivot-visualization-of-my-wordpress-blog/">Pivot visualization of this blog</a>. I need to set it aside for now and do other things, but here&#8217;s a snapshot of the process for my future self and for anyone else who&#8217;s interested.
</p>
<h2>Using deepzoom.py to create Deep Zoom images and collections</h2>
<p>
I&#8217;m using <a href="http://github.com/openzoom/deepzoom.py/blob/master/deepzoom.py">this Python component</a> to create Deep Zoom images and collections. I made the following changes to it:
</p>
<p>
1. <tt>tile_size=256</tt> (not <tt>254</tt>) at <a href="http://github.com/openzoom/deepzoom.py/blob/master/deepzoom.py#L59">line 59</a>, <a href="http://github.com/openzoom/deepzoom.py/blob/master/deepzoom.py#L160">line 160</a>, and <a href="http://github.com/openzoom/deepzoom.py/blob/master/deepzoom.py#L224">line 224</a>
</p>
<p>
2. <tt>source_path.name</tt> instead of <tt>source_path</tt> at <a href="http://github.com/openzoom/deepzoom.py/blob/master/deepzoom.py#L291">line 291</a>
</p>
<p>
3. <tt>destination + '.xml'</tt> instead of <tt>destination</tt> at <a href="http://github.com/openzoom/deepzoom.py/blob/master/deepzoom.py#L341">line 341</a>
</p>
<p>
Let&#8217;s assume that Python is installed, along with the Python Imaging Library, and that your current directory contains the files 001.jpg, 002.jpg, and 003.jpg:
</p>
<pre>
001.jpg
002.jpg
003.jpg
</pre>
<p>
For each image file, you could run deepzoom.py thrice from the command line, like so:
</p>
<pre>
python deepzoom.py -d 001.xml 001.jpg
python deepzoom.py -d 002.xml 002.jpg
python deepzoom.py -d 003.xml 003.jpg
</pre>
<p>
My script doesn&#8217;t actually do it that way, it enumerates JPEGs and instantiates deepzoom.py&#8217;s ImageCreator object once for each. But either way, for each JPEG you end up with a DZI (Deep Zoom Image) package that consists of (for 001.jpg):
</p>
<ul>
<li>A settings file: 001.xml</li>
<li>A subdirectory: 001_files</li>
<li>More subdirectories (named 0, 1, etc.) inside 001_files</li>
<li>JPG files inside those subdirectories</li>
</ul>
<p>
Now, in this case, the current directory looks like this (using -&gt; to mark additions):
</p>
<pre>
001.jpg
-&gt; 001.xml
-&gt; 001_files
002.jpg
-&gt; 002.xml
-&gt; 002_files
003.jpg
-&gt; 003.xml
-&gt; 003_files</span>
</pre>
<p>
To build a collection, do something like this in Python:</p>
<pre>
from deepzoom import *
images = ['001.xml','002.xml', '003.xml']
creator = CollectionCreator()
creator.create(images, 'dzc_output')
</pre>
</p>
<p><p>
Now the current directory looks like:
</p>
<pre>
001.jpg
001.xml
001_files
002.jpg
002.xml
002_files
003.jpg
003.xml
003_files
-&gt; dzc_output.xml
-&gt; dzc_output_files
</pre>
<p>
The Pivot collection&#8217;s CXML file will refer to dzc_output.xml, like so:
</p>
<pre>
&lt;Items ImgBase="dzc_output.xml"&gt;
</pre>
<h2>Using IECapt to grab screenshots</h2>
<p>
This <a href="http://iecapt.sourceforge.net/">tool</a> uses Internet Explorer, so only works on Windows. There is also <a href="http://cutycapt.sourceforge.net/">CutyCapt</a> for WebKit, which I haven&#8217;t tried but would be curious to hear about.
</p>
<p>
Here&#8217;s an example of the IECapt command line I&#8217;m using:
</p>
<p>
iecapt &#8211;url=http://blog.jonudell.net/&#8230; &#8211;delay=1000 &#8211;out=tmp.jpg
</p>
<p>
The result in most cases is a tall skinny JPEG, because it renders the whole page &#8212; which can be very long &#8212; before imaging it. When I ran it over a 600-item collection, it hung a couple of times because of JavaScript errors. So I went to Internet Options-&gt;Browsing in IE, checked <i>Disable script debugging</i>, and unchecked <i>Display a notification about every script error</i>.
</p>
<h2>Using ImageMagic to crop screenshots</h2>
<p>
Here&#8217;s a picture of an image produced by IECapt, overlaid with a rectangle marking where I want to crop:
</p>
<p>
<a href="http://jonudell.net/img/pivot-crop.png"><img style="border-color:black;border-width:thin;" width="500" src="http://jonudell.net/img/pivot-crop.png"></a>
</p>
<p>
The rectangle&#8217;s origin is at x=30 and y=180. Its width is 530 pixels, and height 500. Here&#8217;s the ImageMagick command to crop a captured image in tmp.jpg into a cropped image in 001.jpg:
</p>
<p>
convert -quality 100 -crop 530&#215;500+30+180 -border 1&#215;1 -bordercolor Black tmp.jpg 001.jpg
</p>
<p>
I&#8217;m writing this down here mainly for myself. ImageMagic can do everything under the sun, but it always takes me a while to dig up the recipe for a given operation.
</p>
<h2>Parsing the WordPress export file</h2>
<p>
I found to my surprise that WordPress currently exports invalid XML. So the script starts with a search-and-replace that looks for this:
</p>
<pre>
xmlns:wp="http://wordpress.org/export/1.0/"
</pre>
<p>
And replaces it with this:
</p>
<pre>
xmlns:wp="http://wordpress.org/export/1.0/"
xmlns:atom="http://www.w3.org/2005/Atom"
</pre>
<p>
Then it walks through the items in the Atom feed, extracting the various things that will become Pivot facets. For the description, it tries to parse the <tt>content:encoded</tt> element as XML, and find the first paragraph element within it. If that fails, it just treats the element as text and grabs the beginning of it.
</p>
<p><h2>Weaving the collection</h2>
</p>
<p>
There are two control files that need to be synchronized. First, there&#8217;s dzc_output.xml, for the Deep Zoom collection. It has elements like this:
</p>
<p>
&lt;I Id=&#8221;596&#8243; N=&#8221;596&#8243; Source=&#8221;2245.xml&#8221;&gt;
</p>
<p>
Then there&#8217;s pivot.cxml which drives the visualization. It has elements like this:
</p>
<pre>
&lt;Item Id="596" Img="#596"
  Name="Freebase Gridworks: A power tool for data scrubbers"
  Href="http://blog.jonudell.net/2010/03/26/...
&lt;Description&gt;&lt;![CDATA[
I've had many conversations with Stefano Mazzocchi and David Huynh [1, 2, 3]
about the data magic they performed at MIT's Project Simile and now perform
at Metaweb. If you're somebody who values clean data and has wrestled with
the dirty stuff, these screencasts about a forthcoming product called
Freebase Gridworks will make you weep with joy.
]]&gt;&lt;/Description&gt;
&lt;Facets&gt;
  &lt;Facet Name="date"&gt;
    &lt;DateTime Value="2010-03-26T00:00:00-00:00" /&gt;
  &lt;/Facet&gt;
&lt;Facet Name="tag"&gt;
&lt;String Value="freebase" /&gt;
&lt;String Value="gridworks" /&gt;
&lt;String Value="metaweb" /&gt;
&lt;/Facet&gt;
  &lt;Facet Name="comments"&gt;
    &lt;Number Value="24" /&gt;
  &lt;/Facet&gt;
&lt;/Facets&gt;
&lt;/Item&gt;
</pre>
<p>
In this example, <tt>Source="2245.xml"</tt> in dzc_output.xml refers to a Deep Zoom image whose name comes from the WordPress post_id for that entry, which is:
</p>
<p>
&lt;wp:post_id&gt;2245&lt;/wp:post_id&gt;
</p>
<p>
But <tt>Id="596"</tt>, which is the connection between dzc_output.xml and pivot.cxml, comes from a counter in the script that increments for each item processed. I don&#8217;t know why the numbering of items in the WordPress export file is sparse, but it is, hence the difference.
</p>
<h2>Things to do</h2>
<p>
Here are some ideas for next steps.
</p>
<p>
1. Check the comment logic. I just noticed the counts seem odd. Maybe because I&#8217;m counting all comments instead of approved comments?
</p>
<p>
2. Use HTML Tidy to ensure that item content will parse as XML, and then count various kinds of elements within it: tables, images, etc.
</p>
<p>
2. Use APIs of various services &#8212; Twitter, bit.ly, etc. &#8212; to count reactions to each item.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/2350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/2350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/2350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/2350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/2350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/2350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/2350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/2350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/2350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/2350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/2350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/2350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/2350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/2350/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2350&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2010/04/02/how-to-create-a-pivot-visualization-of-a-wordpress-blog/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>

		<media:content url="http://jonudell.net/img/pivot-crop.png" medium="image" />
	</item>
		<item>
		<title>Freebase Gridworks: A power tool for data scrubbers</title>
		<link>http://blog.jonudell.net/2010/03/26/freebase-gridworks-a-power-tool-for-data-scrubbers/</link>
		<comments>http://blog.jonudell.net/2010/03/26/freebase-gridworks-a-power-tool-for-data-scrubbers/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 13:55:42 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[freebase]]></category>
		<category><![CDATA[gridworks]]></category>
		<category><![CDATA[metaweb]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=2245</guid>
		<description><![CDATA[I&#8217;ve had many conversations with Stefano Mazzocchi and David Huynh [1, 2, 3] about the data magic they performed at MIT&#8217;s Project Simile and now perform at Metaweb. If you&#8217;re somebody who values clean data and has wrestled with the dirty stuff, these screencasts about a forthcoming product called Freebase Gridworks will make you weep [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2245&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve had many conversations with Stefano Mazzocchi and David Huynh [<a href="http://blog.jonudell.net/2009/09/28/talking-with-stefano-mazzocchi-about-reconciling-web-naming-systems/">1</a>, <a href="http://blog.jonudell.net/2008/08/25/motivating-people-to-write-the-semantic-web-a-conversation-with-david-huynh-about-parallax/">2</a>, <a href="http://blog.jonudell.net/2007/12/06/simile-semantic-web-mashups-for-the-rest-of-us/">3</a>] about the data magic they performed at MIT&#8217;s Project Simile and now perform at Metaweb. If you&#8217;re somebody who values clean data and has wrestled with the dirty stuff, these screencasts about a forthcoming product called Freebase Gridworks will make you weep with joy.
</p>
<p>
There&#8217;s <a href="http://vimeo.com/10081183">one by David</a>, and another by <a href="http://vimeo.com/10287824">Stefano</a>. Using common public datasets about food, international disasters, and US government contracts, they fly through a series of transformations that:
</p>
<ul>
<p>
<li>Merge similar names using a host of methods:</p>
<ul>
<li>Automatic title-casing</li>
<li>A rich expression language</li>
<li>Analysis of &#8220;edit distance&#8221; between similar phrases, using several clustering algorithms</li>
<li></li>
</ul>
</li>
<p>
<li>Split multi-valued facets</li>
</p>
<p>
<li>Create new facets (e.g., a year column from a data column)</li>
</p>
<p>
<li>Morph linear scales to log scales where appropriate</li>
</p>
</ul>
<p>
It&#8217;s all live, undoable, and fully instrumented, by which I mean that every transformation updates the counts of the values in each facet, and displays histograms of the new distribution of values &#8212; along with sliders for selecting and focusing on subsets.
</p>
<p>
As the open data juggernaut picks up steam, a lot of folks are going to discover what some of us have known all along. Much of the data that&#8217;s lying around is a mess. That&#8217;s partly because nobody has ever really looked at it. As a new wave of visualization tools arrives, there will be more eyeballs on more data, and that&#8217;s a great thing. But we&#8217;ll also need to be able to lay hands on the data and clean up the messes we can begin to see. As we do, we&#8217;ll want to be using tools that do the kinds of things shown in the Gridworks screencasts.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/2245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/2245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/2245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/2245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/2245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/2245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/2245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/2245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/2245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/2245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/2245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/2245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/2245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/2245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2245&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2010/03/26/freebase-gridworks-a-power-tool-for-data-scrubbers/feed/</wfw:commentRss>
		<slash:comments>17</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>Talking with Sal Khan about YouTube tutoring as guerilla public service</title>
		<link>http://blog.jonudell.net/2010/02/01/talking-with-sal-khan-about-youtube-tutoring-as-guerilla-public-service/</link>
		<comments>http://blog.jonudell.net/2010/02/01/talking-with-sal-khan-about-youtube-tutoring-as-guerilla-public-service/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 15:07:06 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[salkhan]]></category>
		<category><![CDATA[screencasts]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=2113</guid>
		<description><![CDATA[My guest for this week&#8217;s Innovators show is Sal Khan. He&#8217;s the creator of http://khanacademy.org, a catalog of more than 1000 YouTube video lessons in math, physics, biology, chemistry, and economics. All of these videos are made by Sal himself, in an engagingly personal style, using simple screencasting tools. When I first got interested in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2113&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
My guest for this week&#8217;s <a href="http://itc.conversationsnetwork.org/shows/detail4386.html">Innovators show</a> is Sal Khan. He&#8217;s the creator of <a href="http://khanacademy.org">http://khanacademy.org</a>, a catalog of more than 1000 YouTube video lessons in math, physics, biology, chemistry, and economics. All of these videos are made by Sal himself, in an engagingly personal style, using simple screencasting tools.
</p>
<p>
When I first got interested in screencasting, I envisioned the medium not only as a way to demonstrate software, but also as a way to share knowledge at Internet scale. Sal&#8217;s work fulfills that vision, and points the way toward a profound and much-needed disruption of our educational system.
</p>
<p>
At its core, Sal&#8217;s project isn&#8217;t about YouTube screencasts. It&#8217;s about intuition.
</p>
<blockquote>
<p>
I always got frustrated by what went on in the classroom. You see otherwise intelligent peers memorizing facts and not really caring about the actual intuition. And because they didn&#8217;t care about the intution in their junior year, when that same idea pops up in senior year, it&#8217;s like they&#8217;ve never seen it before. It boggled my mind. You&#8217;re just relabeling the same concept over and over.
</p>
</blockquote>
<p>
Sal cares about the intuition, and he wants others to care about the intution too. The first beneficiary of that desire was his cousin Nadia, whom he tutored remotely. Then followed other cousins and family friends. Then it dawned on him that there were no limits. The project could scale out. He could become a superempowered individual, reaching anyone who finds value in his method.
</p>
<p>
One of the key ingredients of that method is improvisation. These videos aren&#8217;t carefully planned, and they aren&#8217;t edited. As a viewer, you find yourself looking over the shoulder of a smart and broadly knowledgeable person who is solving problems by thinking on his feet. You watch a practitioner at work: engaged with his medium, wrestling with his tools, correcting false starts.
</p>
<p>
It was Chris Gemignani who first showed me the value of this approach, in a screencast that teaches how to do <a href="http://www.juiceanalytics.com/writing/recreating-ny-times-cancer-graph/">unexpectedly powerful and elegant Excel charting</a>. He did it in one take. I&#8217;d have been tempted to edit out the false starts. But Chris knew better. Learning how a practitioner really thinks about solving a problem is even more valuable than learning the solution to the problem.
</p>
<p>
One thing that Sal&#8217;s lessons can&#8217;t be, of course, is interactive. Nor does he pretend that these videos will make teachers obsolete. But he does suggest, and I violently agree, that teachers can and should become curators of online assets like the ones Sal is creating, and should know when and how to weave those assets into their classes.
</p>
<p>
Teachers should also become connectors. Sal won&#8217;t be the only game in town. Other superempowered tutors will emerge. Each will have a unique style. For a given student, a given subject, and a given problem, one or another of those styles may be right. The best teachers will know their own strengths and limitations, will know which online tutors complement their strengths in a variety of ways, and will connect their students with those tutors.
</p>
<p>
Sal Khan is on fire. He burns with a passion to share his intuitions with anyone and everyone. It is a beautiful thing to see. He has abandoned a lucrative career in finance to do this fulltime, and I am quite sure he will find a way to keep doing it.
</p>
<hr />
<p>
PS: The title of this piece refers to Richard Ankrom&#8217;s <a href="http://ankrom.org/freeway_signs.html">Los Angeles freeway project</a>. At a busy intersection, millions of motorists have been directed to North 5 by a sign that Caltrans omitted. Ankrom created and installed that missing sign.
</p>
<p>
PPS: I wrote to my son&#8217;s math teacher about Sal Khan. She replied: &#8220;Thanks for that link to the Khan Academy. I was overwhelmed by how many video lessons he has! He does seem like an inspiring man. Unfortunately, You Tube is blocked here at the high school.&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/2113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/2113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/2113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/2113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/2113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/2113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/2113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/2113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/2113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/2113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/2113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/2113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/2113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/2113/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=2113&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2010/02/01/talking-with-sal-khan-about-youtube-tutoring-as-guerilla-public-service/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>
	</item>
		<item>
		<title>Replaying history</title>
		<link>http://blog.jonudell.net/2009/06/08/replaying-history/</link>
		<comments>http://blog.jonudell.net/2009/06/08/replaying-history/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 18:19:30 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=1583</guid>
		<description><![CDATA[In his writeup on Google Wave, Dare Obasanjo says: I&#8217;m sure there are thousands of Web developers out there right now asking themselves &#8220;would my app be better if users could see each others&#8217; edits in real time?&#8221;,&#8221;should we add a playback feature to our service as well&#8221; [ed note - wikipedia could really use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=1583&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
In his <a href="http://www.25hoursaday.com/weblog/2009/06/04/DevelopersOnGoogleWave.aspx">writeup</a> on Google Wave, Dare Obasanjo says:
</p>
<blockquote><p>
I&#8217;m sure there are thousands of Web developers out there right now asking themselves &#8220;would my app be better if users could see each others&#8217; edits in real time?&#8221;,&#8221;should we add a playback feature to our service as well&#8221; [ed note - wikipedia could really use this] and &#8220;why don&#8217;t we support seamless drag and drop in our application?&#8221;. All inspired by their exposure to Google Wave.
</p></blockquote>
<p>
Indeed, every application that preserves a change history needs playback. Wikipedia, as Dare notes, is a prime candidate. Back in 2006, I made this LazyWeb request:
</p>
<blockquote><p>
Animation is the best way to visualize the flow of change, as I discovered when I made my <a href="http://jonudell.net/udell/gems/umlaut/umlaut.html">Wikipedia screencast</a>. For Wikipedia, and indeed for all kinds of living documents supported by revision history and diff tools, I can imagine being able to isolate a paragraph or section and autogenerate the screencast of its evolution. I can even imagine the content of such visualizations being considered not just cutting-room floor debris but, rather, part of the &#8220;real&#8221; document, like footnotes.
</p></blockquote>
<p>
Andy Baio responded by sponsoring a <a href="http://waxy.org/2005/06/automating_wiki/">contest</a> for a tool that would do just that. And I made a <a href="http://jonudell.net/udell/gems/wikiAnimate/wikiAnimate.html">screencast</a> demonstrating Dan Phiffer&#8217;s <a href="http://phiffer.org/projects/wikipedia-animate/">winning entry</a>.
</p>
<p>
That script is unavailable at the moment because, ironically, Dan&#8217;s server reports:
</p>
<blockquote><p>
Oh noes! I got HACK*D. I&#8217;m sifting through my files and should restore things back to normal soon.
</p></blockquote>
<p>
In any case, it probably wasn&#8217;t practical for routine use. Fetching every revision on the fly really hammers Wikipedia. What&#8217;s really needed &#8212; again, not just for Wikipedia but everywhere &#8212; is a general way to query change history, and return a stream of versions and differences.
</p>
<p>
One way of doing the latter would be to use <a href="http://en.wikipedia.org/wiki/FeedSync">FeedSync</a>, an open extension to RSS/Atom that supports synchronization in Live Mesh. Another would be to use Google&#8217;s <a href="http://www.waveprotocol.org/draft-protocol-spec">Wave protocol</a>. Because FeedSync deals with lists of items, which can be arbitrary chunks of content, whereas Wave deals with lists of document-mutation operations, like <i>delete-element</i> and <i>start-annotation</i>, it seems to me that FeedSync is more general, albeit less immediately useful for collaborative editing.
</p>
<p>
To explain why generality matters, consider change animation in a very different domain: software configuration. My wife, for example, sometimes changes her settings &#8212; in Word or Firefox &#8212; in ways that cause problems. If these apps persisted their settings to Live Mesh, as they could and arguably should, I&#8217;d be able to debug a mishap locally or remotely. But ideally, the change visualization would be sufficiently user-friendly so that she&#8217;d have a shot at figuring it out for herself.
</p>
<hr />
<p>
PS: Speaking of history and restoration, I&#8217;ve been feeling like an amnesiac ever since my InfoWorld archive went dark. So in spare moments I&#8217;ve been reconstructing and republishing it. I&#8217;ll have the text of all the old blog entries up soon. And I&#8217;ve been restoring the screencasts as well. I&#8217;m keeping track of my progress at <a href="http://delicious.com/judell/screencast+restored">delicious.com/judell/screencast+restored</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/1583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/1583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/1583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/1583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/1583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/1583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/1583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/1583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/1583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/1583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/1583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/1583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/1583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/1583/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=1583&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2009/06/08/replaying-history/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>A conversation with Jean-Claude Bradley about open notebook science and the educational uses of Second Life</title>
		<link>http://blog.jonudell.net/2008/06/24/a-conversation-with-jean-claude-bradley-about-open-notebook-science-and-the-educational-uses-of-second-life/</link>
		<comments>http://blog.jonudell.net/2008/06/24/a-conversation-with-jean-claude-bradley-about-open-notebook-science-and-the-educational-uses-of-second-life/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 14:40:34 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jonudell.wordpress.com/?p=405</guid>
		<description><![CDATA[On this week&#8217;s ITConversations show I finally got to meet Jean-Claude Bradley, the Drexel chemistry professor who coined the phrase open notebook science and who champions the principles behind it. There were a couple of surprises for me. First, I was intrigued to learn about Jean-Claude&#8217;s vision for mechanized research. I&#8217;ve always thought of open [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=405&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
On this week&#8217;s <a href="http://itc.conversationsnetwork.org/shows/detail3705.html">ITConversations show</a> I finally got to meet <a href="http://www.chemistry.drexel.edu/people/bradley/bradley.asp">Jean-Claude Bradley</a>, the Drexel chemistry professor who coined the phrase <a href="http://precedings.nature.com/documents/39/version/1">open notebook science</a> and who <a href="http://usefulchem.blogspot.com/">champions the principles</a> behind it.
</p>
<p>
There were a couple of surprises for me. First, I was intrigued to learn about Jean-Claude&#8217;s vision for mechanized research. I&#8217;ve always thought of open notebook science as a way to speed up the iterative cycle of research and publication, and to engage more human minds in collaboration. Of course Jean-Claude thinks so too. But he also thinks that when data are published in accessible formats, and exposed to computational processes running in the cloud, we&#8217;ll be able to automate certain aspects of research.
</p>
<p>
It reminds me of George Hripcsak&#8217;s effort to <a href="http://blog.jonudell.net/2008/06/17/a-conversation-with-george-hripcsak-about-electronic-health-records-and-clinical-truth/">mechanize the interpretation of electronic health records</a>. In general, we&#8217;re collecting way more data than the collectors can analyze. Crowdsourcing is one solution to this problem. Mechanization is another. We&#8217;ll need both.
</p>
<p>
The other surprise was hearing about Drexel&#8217;s fairly aggressive use of Second Life. I&#8217;ve been an <a href="http://jonudell.net/udell/2006-10-16-in-search-of-non-gratuitous-3d.html">amused skeptic</a> on that front, but Jean-Claude&#8217;s passionate advocacy requires me to rethink that stance.
</p>
<p>
What didn&#8217;t surprise me, but might well surprise tuition-paying parents of Drexel students, was Jean-Claude&#8217;s attitude toward the classroom. He mostly doesn&#8217;t see a need for it. The content delivery aspect of education, he feels, is best handled in other ways, including screencasts and podcasts as well as traditional texts. There can, and should, be a range of sources, to accommodate the differing inclinations of learners. And teachers need to be competent producers and orchestrators of those sources. But for Jean-Claude, the best way to engage directly with students is to meet with individuals, not with whole classes.
</p>
<p>
Now admittedly, a chemistry class doesn&#8217;t invite and thrive on group discussion in the same way that, for example, a literature class does. And yet Jean-Claude says that a literature class was one of the models for his use of Second Life. When group interaction is central to the educational experience, he thinks that virtual environments &#8212; though he doesn&#8217;t require their use &#8212; may outperform real ones.
</p>
<p>
I remain skeptical on that point, but I&#8217;m always open-minded, so I hope Jean-Claude will take me up on my offer to visit one of his virtual environments and document the interactions that happen there.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/405/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/405/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/405/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=405&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2008/06/24/a-conversation-with-jean-claude-bradley-about-open-notebook-science-and-the-educational-uses-of-second-life/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>Serious uses for YouTube&#8217;s new popup video feature</title>
		<link>http://blog.jonudell.net/2008/06/06/serious-uses-for-youtubes-new-popup-video-feature/</link>
		<comments>http://blog.jonudell.net/2008/06/06/serious-uses-for-youtubes-new-popup-video-feature/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 13:24:32 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jonudell.wordpress.com/?p=398</guid>
		<description><![CDATA[I&#8217;m loving YouTube&#8217;s new video annotation feature, which Phil Shapiro alerted me to. Lots of people are going to have lots of fun with that. If you remember when MTV first started doing popup video, you&#8217;ll have some idea how much fun. But from Phil&#8217;s perspective and mine, this is a seriously useful tool as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=398&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;m loving YouTube&#8217;s new video annotation feature, which <a href="http://teachme.blogspot.com/">Phil Shapiro</a> alerted me to. Lots of people are going to have lots of fun with that. If you remember when MTV first started doing popup video, you&#8217;ll have some idea how much fun.
</p>
<p>
But from Phil&#8217;s perspective and mine, this is a seriously useful tool as well. He&#8217;s planning to annotate screencasts with it. And I found a great use for it <a href="http://youtube.com/watch?v=8y7REjrdprs">here</a>.<br />
<a href="http://youtube.com/watch?v=8y7REjrdprs"><img hspace="6" align="right" src="http://elmcity.info/media/img/videos/coffey.jpg"></a>
</p>
<p>
That short video features Bob Coffey, the senior climber at our YMCA. When I made and posted the video, I wasn&#8217;t quite sure <i>how</i> senior Bob was so I didn&#8217;t say. Yesterday I remembered to ask. Turns out he is 79.
</p>
<p>
It&#8217;s painful to add new information to a video. Opening up the raw file (if you even kept it around), adding a caption, recompressing, reuploading &#8212; it&#8217;s too much overhead, and unless there&#8217;s a compelling need you&#8217;re just not going to bother.
</p>
<p>
Of course you can update the textual wrapper, and alter the title or description. But in this case, I didn&#8217;t want to that. The information is much more effective when inserted midstream. After he&#8217;s scampered halfway up the wall, the popup annotation saying &#8220;Bob Coffey is 79 years old&#8221; makes the point more subtly and powerfully.
</p>
<p>
The point, by the way, is that we can do more, physically, at all ages, than we think. I&#8217;ve known a few people over the years who have redefined what&#8217;s possible, and it&#8217;s always an inspiring thing to see.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/398/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/398/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/398/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/398/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/398/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/398/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/398/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/398/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/398/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/398/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/398/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/398/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/398/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/398/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/398/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/398/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=398&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2008/06/06/serious-uses-for-youtubes-new-popup-video-feature/feed/</wfw:commentRss>
		<slash:comments>1</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://elmcity.info/media/img/videos/coffey.jpg" medium="image" />
	</item>
		<item>
		<title>Perspectives, a new interview series, launches today</title>
		<link>http://blog.jonudell.net/2008/03/13/perspectives-a-new-interview-series-launches-today/</link>
		<comments>http://blog.jonudell.net/2008/03/13/perspectives-a-new-interview-series-launches-today/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 23:09:48 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/?p=346</guid>
		<description><![CDATA[Today I&#8217;m launching a new Microsoft-oriented interview series called Perspectives. The show will touch on a variety of topics including robotics, digital identity, e-science, and social software. I&#8217;ll be speaking mostly with passionate Microsoft innovators, and sometimes also with key partners from academia and industry. The format is an audio podcast and a blog, where [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=346&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> Today I&#8217;m launching a new Microsoft-oriented interview series called <a href="http://perspectives.on10.net">Perspectives</a>. The show will touch on a variety of topics including robotics, digital identity, e-science, and social software. I&#8217;ll be speaking mostly with passionate Microsoft innovators, and sometimes also with key partners from academia and industry.</p>
<p>The format is an audio podcast and a blog, where the blog provides a partial (but substantial) text transcription in order to make these conversations accessible to folks who don&#8217;t listen to podcasts, and also to expose them to the Net&#8217;s ecosystem of search, linking, and aggregation. Where appropriate, I&#8217;ll also use screencasts to show software in action.</p>
<p>Perspectives runs on the same publishing platform that supports <a href="http://on10.net/">Channel 10</a> (for enthusiasts), <a href="http://channel8.msdn.com/">Channel 8</a> (for students), <a href="http://edge.technet.com/">TechNet Edge</a> (for IT pros), and <a href="http://visitmix.com">VisitMIX</a> (for Web designers and developers). (<a href="http://channel9.msdn.com">Channel 9</a>, the original site, will migrate to this platform too.) Perspectives intersects with the interests of all these sites, but it doesn&#8217;t really belong in any of them, so we&#8217;ve created an independent home for it. Thanks to the EvNet team, especially Duncan Mackenzie, David Shadle, and Jeff Sandquist, for making that happen.</p>
<p>The first <a href="http://perspectives.on10.net/blogs/jonudell/Microsoft-Robotics-A-new-approach/">episode</a>, with Henrik Nielsen and Tandy Trower, explores the Microsoft Robotics initiative. We discuss why robotics is &#8212; as futurist Paul Saffo believes &#8212; a Next Big Thing. And Henrik and Tandy explain how the concurrency and decentralized-services infrastructure that supports the robotics platform is broadly relevant in an era of loosely-coupled services.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/346/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/346/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/346/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=346&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2008/03/13/perspectives-a-new-interview-series-launches-today/feed/</wfw:commentRss>
		<slash:comments>1</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>From screencasting to automation</title>
		<link>http://blog.jonudell.net/2007/11/13/from-screencasting-to-automation/</link>
		<comments>http://blog.jonudell.net/2007/11/13/from-screencasting-to-automation/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 18:42:51 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/2007/11/13/from-screencasting-to-automation/</guid>
		<description><![CDATA[I was pleased to see the announcement that Novell and Microsoft are collaborating on the User Interface Automation (UIA) stuff. My mom can use all the help she can get. But as I discussed in Automation and accessibility, beefing up our ability to automate software in a consistent way can give us huge leverage in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=272&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I was pleased to see the announcement that <a href="http://www.microsoft.com/presspass/press/2007/nov07/11-07MSNovell1YearPR.mspx">Novell</a> and <a href="http://www.novell.com/news/press/microsoft-and-novell-celebrate-year-of-interoperability-expand-collaboration-agreement/">Microsoft</a> are collaborating on the User Interface Automation (UIA) stuff. My <a href="http://internetcommonsense.jonudell.net/2007/11/03/mom-its-not-your-fault/">mom</a> can use all the help she can get. But as I discussed in <a href="http://blog.jonudell.net/2007/09/10/automation-and-accessibility/">Automation and accessibility</a>, beefing up our ability to automate software in a consistent way can give us huge leverage in other areas, like education, training, and collaboration.
</p>
<p>
In <a href="http://blog.jonudell.net/2007/09/06/the-social-scripting-continuum/">The social scripting continuum</a> I suggested that a system like <a href="http://services.alphaworks.ibm.com/coscripter">CoScripter</a> could automate desktop and web applications in a common way. Here&#8217;s one way to think of the benefit of doing that. Today, I can share software-related task knowledge in a social manner by creating and posting screencasts. But you can only watch a screencast. If I could instead share that task knowledge in the form of standardized high-level scripts, you wouldn&#8217;t need to watch the screencast. Of course, you might want to, for other reasons, but not simply to get the procedural knowledge transferred from my brain and fingers to yours.
</p>
<p>
Given how popular screencasts have become <a href="http://jonudell.net/udell/2004-11-15-name-that-genre.html">in three years</a>, I&#8217;ve got a hunch that taking things to that next level would be huge. And lord knows I&#8217;d love to be able to convey packages of procedural knowledge to my mom that way.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/272/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/272/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/272/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=272&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2007/11/13/from-screencasting-to-automation/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>
	</item>
		<item>
		<title>FAQ for podcast (and screencast) interviewees</title>
		<link>http://blog.jonudell.net/2007/10/16/faq-for-podcast-and-screencast-interviewees/</link>
		<comments>http://blog.jonudell.net/2007/10/16/faq-for-podcast-and-screencast-interviewees/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 15:50:59 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/2007/10/16/faq-for-podcast-and-screencast-interviewees/</guid>
		<description><![CDATA[I spend a lot of time recording and editing audio interviews for two shows: ITConversations and Perspectives. I also do a lot of interview-style screencasts. I&#8217;ve been meaning to write up a FAQ for interviewees, so here goes. Preparation As the interviewee, you need not prepare anything. Your life is the preparation. You might, however, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=245&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I spend a lot of time recording and editing audio interviews for two shows: <a href="http://itc.conversationsnetwork.org/series/innovators.html">ITConversations</a> and <a href="http://perspectives.on10.net/">Perspectives</a>. I also do a lot of interview-style screencasts. I&#8217;ve been meaning to write up a FAQ for interviewees, so here goes.
</p>
<p>
<b>Preparation</b>
</p>
<p>
As the interviewee, you need not prepare anything. Your life is the preparation. You might, however, want to help me prepare, by referring me to background materials that I may not already know about. I don&#8217;t show up with a script in mind, but I do like to be as informed as I can be.
</p>
<p>
<b>Recording</b>
</p>
<p>
My preference is that you use a landline, not a cellphone or a speakerphone. If you have a strong preference for Skype, I can accommodate.
</p>
<p>
Either way, it&#8217;s ideal if you can make a decent recording of your half of the call &#8212; for example, by using a USB microphone plugged into your computer, or a standalone digital audio recorder &#8212; and convey that recording to me as uncompressed audio. It&#8217;s easy to splice the two halves of the conversation together in post-production, and if you got a decent result on your end, the combined result will be way better than any current scheme for squirting audio through a long-haul network. If the local recording doesn&#8217;t pan out, we&#8217;ll just fall back to the phone recording that will occur in parallel.
</p>
<p>
<b>Editing</b>
</p>
<p>
As discussed in <a href="http://jonudell.net/udell/2005-01-16-the-audio-digital-darkroom.html">this essay</a> on the audio digital darkroom, I&#8217;m fairly aggressive about editing audio interviews. As a result, you and I will come out sounding somewhat better than we really are. I do this out of respect both for the listeners&#8217; attention, and for the importance of the ideas we&#8217;re discussing.
</p>
<p>
The amount of editing varies from show to show. Some hour-long interviews have produced twenty-minute shows, other hour-long interviews have produced fifty-five-minute shows. I would say the compression is normally in the ten-to-fifteen-percent range. In all cases, I apply one rule: Focus on the most interesting and important stuff. Interviewees have so far always been pleased with the results.
</p>
<p>
One of the useful consequences of this approach is that, since you know there&#8217;s a safety net, you can relax, there&#8217;s no pressure to perform flawlessly, and we can work together to capture the interesting and important stuff.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/245/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/245/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=245&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2007/10/16/faq-for-podcast-and-screencast-interviewees/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>First look at Resolver, an IronPython-based spreadsheet</title>
		<link>http://blog.jonudell.net/2007/09/27/first-look-at-resolver-an-ironpython-based-spreadsheet/</link>
		<comments>http://blog.jonudell.net/2007/09/27/first-look-at-resolver-an-ironpython-based-spreadsheet/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 15:22:49 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/2007/09/27/first-look-at-resolver-an-ironpython-based-spreadsheet/</guid>
		<description><![CDATA[Last month in an item about working with crime data I asked: Will there be a role for IronPython (or IronRuby) here, someday, such that you could use these languages inside Excel? That&#8217;d be very cool. Several folks suggested that I should take a look at Resolver, an IronPython-based spreadsheet that deeply unifies Pythonic object-oriented [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=230&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> Last month in an item about <a href="http://blog.jonudell.net/2007/08/02/the-police-station-effect/">working with crime data</a> I asked:</p>
<p><img src="http://jonudell.net/img/resolver.png" align="right" /></p>
<blockquote><p> Will there be a role for IronPython (or IronRuby) here, someday, such that you could use these languages inside Excel? That&#8217;d be very cool.</p></blockquote>
<p>Several folks suggested that I should take a look at <a href="http://resolversystems.com/">Resolver</a>, an IronPython-based spreadsheet that deeply unifies Pythonic object-oriented programming with the sort of direct manipulation that makes the spreadsheet so useful. Resolver was and still is in private beta, but today&#8217;s screencast (<a href="http://jonudell.net/screencast/resolver/resolver-flash.html">Flash</a>, <a href="http://jonudell.net/screencast/resolver/resolver-silverlight.html">Silverlight</a>) will give you a good sense of what it&#8217;s all about.</p>
<p>The presenters are Giles Thomas, managing director and CTO of Resolver Systems (and creator of <a href="http://www.resolversystems.com/screencasts/web-app-in-10-mins">his own Resolver screencast</a>), and Michael Foord, who <a href="http://www.voidspace.org.uk/python/weblog/">blogs about Python</a>, contributes to the <a href="http://www.ironpython.info/">IronPython cookbook</a>, and is also working on the forthcoming book <a href="http://www.manning.com/foord/">IronPython in Action</a>.</p>
<p>If you are (or would like to be) using Python to wrangle business data, Resolver will make sense immediately. You&#8217;ll love the idea of wielding Python&#8217;s powerful data manipulation features in that context. You&#8217;ll appreciate what it would mean to harness not only the Python standard libraries but, because Resolver is IronPython-based, also the .NET Framework and the universe of third-party .NET assemblies. And you&#8217;ll be intrigued by the way in which the IronPython code that represents and animates a Resolver spreadsheet can be reused elsewhere &#8212; for example, in web applications.</p>
<p>But there&#8217;s more to the story. Because a cell in a Resolver spreadsheet can contain a reference to any .NET object, Resolver creates, as Giles Thomas says, &#8220;a somewhat pathological but entirely new way of programming using a spreadsheet.&#8221; You can, for example, define an anonymous function &#8212; say, a function that returns the square of its argument &#8212; and store it in cell B4. Then you can place a value &#8212; say, 5 &#8212; in cell A2. Then you can store this formula in cell B6:</p>
<p>=B4(A2)</p>
<p>That says: &#8220;Apply the squaring function in B4 to the value in A2.&#8221; The result in B6 will be 25.</p>
<p>I&#8217;ve long argued that the interactive and exploratory style of dynamic object-oriented languages is an important but underappreciated benefit. As I may have mentioned before, IronPython&#8217;s creator <a href="http://blogs.msdn.com/hugunin/">Jim Hugunin</a> told me that when he first showed IronPython to folks at Microsoft, he was surprised by their reaction. He thought the big wow would be IronPython&#8217;s ability to streamline and accelerate use of the .NET Framework. But while people did appreciate that, they were truly wowed by something that&#8217;s second nature to every Python programmer &#8212; the read/eval/print loop which traces all the way back to the earliest Lisp systems.</p>
<p>It is a magical and powerful thing to be able to explore and modify a running program&#8217;s code and data. From those early Lisp systems to today&#8217;s Python and Ruby implementations, we have been doing that exploration and modification using a command line.<sup>1</sup> We can trick it out with recall, name completion, and search, but it&#8217;s still a command line with all the limitations that entails. If I&#8217;ve defined an object A and stored some code or data there, my definition and invocations of A will scroll out of view as I continue to work. They won&#8217;t be visually persistent.</p>
<p>In a Resolver spreadsheet, these objects <em>are</em> visually persistent. I haven&#8217;t yet got my hands on Resolver, but here&#8217;s an example of what I think that will mean. Suppose that I have a data set I want to transform, against which I&#8217;m testing five different versions of a transformation function. I&#8217;d put the data in cell A1, the functions in cells B1..B5, and the results in C1..C5. Now I&#8217;ll see everything at a glance. The spreadsheet that would conventionally have been the results viewer at the end of a series of tests becomes the environment in which the tests are written, performed, and evaluated.</p>
<p>The spreadsheet is also an important bridge between programmers and their business sponsors. It&#8217;s no accident that Ward Cunningham&#8217;s <a href="http://fit.c2.com/">FIT</a> (Framework for Integrated Test) was originally inspired by <a href="http://jonudell.net/udell/2003-08-04-revisiting-zope.html">Ward&#8217;s experience</a> of inviting business analysts to write test cases in spreadsheets. In its current form, FIT uses HTML tables in a wiki as the bridge between analysts who write tests and developers who write the code that must pass those tests. I think Resolver and FIT may prove to be a marriage made in heaven.</p>
<p>While Resolver will initially appeal to business programmers who appreciate Python as a language, and IronPython as a way of leveraging the .NET Framework and .NET-based business logic, the ideas it embodies transcend Python and .NET. I&#8217;ll be fascinated to see how this &#8220;pathological but entirely new way of programming using a spreadsheet&#8221; will evolve.</p>
<hr /> <sup>1</sup> Smalltalkers will note that <em>they</em> have been using a three-pane browser all along, and that&#8217;s true. However the spreadsheet metaphor, in this context, is something else again.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/230/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/230/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/230/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=230&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2007/09/27/first-look-at-resolver-an-ironpython-based-spreadsheet/feed/</wfw:commentRss>
		<slash:comments>54</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/img/resolver.png" medium="image" />
	</item>
		<item>
		<title>Silverlight for screencasters</title>
		<link>http://blog.jonudell.net/2007/09/24/silverlight-for-screencasters/</link>
		<comments>http://blog.jonudell.net/2007/09/24/silverlight-for-screencasters/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 18:10:49 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/2007/09/24/silverlight-for-screencasters/</guid>
		<description><![CDATA[I&#8217;ve been doing some experiments to find out how the Silverlight plug-in will work as a player for screencasts. On this test page you&#8217;ll find four different versions of a 23-second clip. There&#8217;s one for Quicktime, one for Windows Media, one for Flash, and one for Silverlight. Some important variables, from a screencaster&#8217;s perspective, are: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=227&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve been doing some experiments to find out how the Silverlight plug-in will work as a player for screencasts. On <a href="http://channel9.msdn.com/media/sctest/sctest.html">this test page</a> you&#8217;ll find four different versions of a 23-second clip. There&#8217;s one for <a href="http://channel9.msdn.com/media/sctest/quicktime/quicktime.html">Quicktime</a>, one for <a href="http://channel9.msdn.com/media/sctest/winmedia/winmedia.html">Windows Media</a>, one for <a href="http://channel9.msdn.com/media/sctest/flash/flash.html">Flash</a>, and one for <a href="http://channel9.msdn.com/media/sctest/silverlight/silverlight.html">Silverlight</a>.
</p>
<p>
Some important variables, from a screencaster&#8217;s perspective, are: legibility, file size, and convenience of production, deployment, and viewing.
</p>
<p>
That legibility matters seems obvious, but I see an awful lot of screencasts delivered at squinty resolutions. This puzzles me. The purpose of a screencast is to show and describe on-screen action. If you can&#8217;t read the screen, what&#8217;s the point?
</p>
<p>
All four of these examples are legible. The Quicktime version achieves the best clarity, but there&#8217;s a tradeoff: it&#8217;s also the largest file.
</p>
<p>
That size matters is perhaps less obvious to those of us living in the developed world. But as I&#8217;ve been recently reminded by both <a href="http://itc.conversationsnetwork.org/shows/detail3293.html">Beth Kanter</a> and <a href="http://itc.conversationsnetwork.org/shows/detail1910.html">Barbara Aronson</a>, much of the world remains bandwidth-challenged. Videos that don&#8217;t squeeze themselves down will not be seen in many places where they should be.
</p>
<p>
Among these four examples, Windows Media weighs in lightest at under half a megabyte. That works out to about a megabyte per minute, which is the target I like to shoot for. If it&#8217;s possible to deliver a legible screencast at a data rate significantly less then that, I&#8217;d like to know how.
</p>
<p>
The sizes of the other versions in this example, in ascending order: Flash 1.2MB, Silverlight 1.5MB, Quicktime 2MB.
</p>
<p>
Of course these sizes depend on which encoder is used, and on which settings are applied. For these tests, I produced all of the screencasts in Camtasia. For Quicktime and Windows Media, Camtasia uses the encoders that come with those platforms. For Flash, it supplies an encoder. For Silverlight, it doesn&#8217;t yet supply an encoder so I produced an uncompressed AVI and then used Expression Encoder to create a Silverlight-compatible WMV file.
</p>
<p>
I should add here that, despite all the work I&#8217;ve done in this area, I&#8217;m still a bit vague on the concept of a screen encoder &#8212; that is, a video encoder that&#8217;s tuned for the kinds of low-motion but text-rich content that&#8217;s typical of screencasts. In beta versions of Silverlight and Expression Encoder, for example, there wasn&#8217;t a screen video option, so the only way to produce a legible screencast was to crank up a motion-video encoder to the maximum data rate, which produced a massive file. Now Expression Encoder provides a screen encoding option, which I used for this test and which Silverlight 1.0 can obviously play back.
</p>
<p>
It seems to me that Camtasia should be able to use that encoder directly, but until I figure out how, it will be less convenient to produce Silverlight screencasts from Camtasia than to produce the other formats. Rendering to AVI as an intermediate step is doable, but time-consuming.
</p>
<p>
In terms of deployment convenience, one measure is the number of supporting HTML, JavaScript, configuration, and other files required in order to play a screencast. I&#8217;m a minimalist, so when I deploy Camtasia screencasts I throw away the wrappers that Camtasia generates and go with the Simplest Thing That Could Possibly Work. From my perspective, that winds up being an OBJECT tag (and, sigh, also an EMBED tag) for Quicktime or Windows Media, plus a reference to a minimal player in the case of Flash. By comparison, my Expression-generated Silverlight example has lots of moving parts &#8212; an HTML file, a XAML file, a flock of JavaScript files, and the WMV file.
</p>
<p>
The Silverlight example could of course be simplified by coalescing the JavaScript support, but that alone won&#8217;t solve another issue of deployment convenience. It&#8217;s nice to be able to embed a screencast in any arbitrary web host. From the perspective of my WordPress.com blog, that&#8217;s an issue for all four of these approaches. WordPress is always coming up with <a href="http://wordpress.com/blog/2007/02/05/4-new-ways-to-embed-video/">new ways to embed video</a> from various services, but the reason that&#8217;s necessary is that WordPress.com &#8212; quite rationally &#8212; strips out most of the advanced HTML tags and JavaScript support that you might want to include in your blog postings. In general, embedded video seems to be a game of point solutions. In order to embed video flavor X in web host Y you need a specific X+Y adapter. I understand the reasons why, but it&#8217;s frustrating.
</p>
<p>
One of those adapters, by the way, will be needed for WordPress.com and <a href="https://silverlight.live.com/">Silverlight Streaming</a>, which is the Microsoft hosting service announced at the MIX conference earlier this year. I&#8217;ve hosted <a href="http://channel9.msdn.com/media/sctest/slstreaming/index.html">another version</a> of my Silverlight example there. It&#8217;s the same set of files as <a href="http://channel9.msdn.com/media/sctest/silverlight/silverlight.html">this example</a>, minus the HTML wrapper and the core Silverlight JavaScript code, plus an XML manifest, all packaged up in a zip file. I&#8217;m not expecting my little test to attract millions of viewers, but if I were, this hosting service would be one way to handle the load.
</p>
<p>
In terms of viewing convenience, the <a href="http://channel9.msdn.com/media/sctest/silverlight/silverlight.html">Silverlight example</a> exhibits a nice property that I wasn&#8217;t expecting. When you resize the window containing the player, the player scales to fit. I&#8217;m pretty sure the embeddable Quicktime and Windows Media players can&#8217;t do that. Flash-based media players are more customizable, and can respond to container resize events, but I don&#8217;t think I&#8217;ve ever seen the technique applied to a screencast. It&#8217;s a nice idea. A screencast at 1:1 resolution is guaranteed to be legible, but will also consume a lot of screen real estate. So it&#8217;s tempting to shrink its width and height in production. But by how much? Any fixed resolution will work well for some people and not others. Resizable screencasts would be great for accessibility.
</p>
<p>
Of course you can resize any standalone player. So this issue boils down to what&#8217;s possible when the player is embedded in a web page. And as we&#8217;ve seen, embedding can be problematic. In general, we need to work toward a smoother transition between embedded and standalone viewing experiences.
</p>
<p>
The ultimate test of viewing convenience is, of course: Does it play instantly, regardless of the operating system or browser I happen to be using? Flash leads the way in that regard. Silverlight aspires to the same level of plug-in ubiquity, and with the announcement of <a href="http://www.mono-project.com/Moonlight">Moonlight</a> that aspiration seems achievable.
</p>
<p>
Ultimately a screencaster wants to be able to produce one video that works well for everyone, everywhere, for various definitions of <i>works well</i>. That&#8217;s a hard problem. Solutions depend on the raw capabilities of media players, it&#8217;s true. But they also depend on an ecosystem of plug-ins, browsers, encoders, operating systems, and hosting services.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/227/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/227/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=227&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2007/09/24/silverlight-for-screencasters/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>
	</item>
		<item>
		<title>Appreciating Common Craft&#8217;s &#8220;paperworks&#8221; sketchcasts</title>
		<link>http://blog.jonudell.net/2007/09/19/appreciating-common-crafts-paperworks-sketchcasts/</link>
		<comments>http://blog.jonudell.net/2007/09/19/appreciating-common-crafts-paperworks-sketchcasts/#comments</comments>
		<pubDate>Wed, 19 Sep 2007 16:17:11 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/2007/09/19/appreciating-common-crafts-paperworks-sketchcasts/</guid>
		<description><![CDATA[I am an immediate fan of Common Craft&#8217;s style of concept videos. Their explanations of how and why to use del.icio.us and Google Docs are crisp and entertaining. They convey the essence of these activities more clearly than any other visual explanations I&#8217;ve seen, including many of the screencasts I&#8217;ve made. The style is called [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=224&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
I am an immediate fan of <a href="http://www.commoncraft.com/">Common Craft&#8217;s</a> style of <a href="http://www.commoncraft.com/show">concept videos</a>. Their explanations of how and why to use <a href="http://www.commoncraft.com/bookmarking-plain-english">del.icio.us</a> and <a href="http://www.commoncraft.com/video-googledocs">Google Docs</a> are crisp and entertaining. They convey the essence of these activities more clearly than any other visual explanations I&#8217;ve seen, including many of the screencasts I&#8217;ve made.
</p>
<p>
The style is called <i>paperworks</i> because these <a href="http://blog.jonudell.net/2007/08/13/podscreenmathslidesketchcasting/">sketchcasts</a> are made by capturing screenshots, printing out key elements, and then filming, animating, annotating, and narrating arrangements and rearrangements of these scraps of paper. The first time you watch one, you&#8217;ll be captivated: it&#8217;s cute, it&#8217;s fresh. But is this just a gimmick? After you watch a few more, and you begin to acclimate to the style, does its effectiveness wane? Not yet, for me, because these productions have more going for them than cuteness and freshness.
</p>
<p>
One of the principles at work here is the moral equivalent of cropping and zooming in the screencast medium. When you&#8217;re trying to explain software on a conceptual level, images captured from screens can be a mixed blessing. It&#8217;s valuable to show exactly what screens look like, and exactly how actions flow within and across them. But the amount of detail that&#8217;s visible in a typical screen can often distract from the story you&#8217;re trying to tell. By cropping the screen, and/or by zooming in on the active region, you can prune away a lot of visual clutter and focus on key interactions. The paperworks style is an extreme form of cropping and zooming; it prunes and focuses very aggressively.
</p>
<p>
Another principle is sketching. According to <a href="http://blog.jonudell.net/2007/05/31/a-conversation-with-bill-buxton-about-design-thinking/">Bill Buxton</a>, sketching goes hand in hand with what he calls <i>design thinking</i>. When I asked Bill how he would have used sketching in the design of a feature like the Office ribbon, he said:
</p>
<blockquote><p>
You&#8217;d start with paper prototyping — quickly hand-rendered versions, and for the pulldown menus and other objects you&#8217;d have Post-It notes. So when somebody comes with a pencil and pretends it&#8217;s their stylus and they click on something, you&#8217;ve anticipated the things they&#8217;ll do, and you stick down a Post-It note.
</p></blockquote>
<p>
If that&#8217;s a helpful way to imagine software interaction in the design phase, why wouldn&#8217;t it also be a helpful way to conceptualize the software in use? The paperworks style strongly suggests that it is. These sketchcasts are great visual explanations of working software. I suspect they&#8217;d be equally useful during the design of that software.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/224/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/224/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/224/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=224&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2007/09/19/appreciating-common-crafts-paperworks-sketchcasts/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>Automation and accessibility</title>
		<link>http://blog.jonudell.net/2007/09/10/automation-and-accessibility/</link>
		<comments>http://blog.jonudell.net/2007/09/10/automation-and-accessibility/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 17:52:59 +0000</pubDate>
		<dc:creator>Jon Udell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jonudell.net/2007/09/10/automation-and-accessibility/</guid>
		<description><![CDATA[In last week&#8217;s item on social scripting, I suggested that CoScripter&#8217;s automation strategy &#8212; based on simple English instructions that people can easily read, write, and share &#8212; could in theory work across the continuum of application styles. And arguably it will need to, because we&#8217;re increasingly likely to mix those styles. If you begin [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=219&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> In last week&#8217;s item on <a href="http://blog.jonudell.net/2007/09/06/the-social-scripting-continuum/">social scripting</a>, I suggested that <a href="http://services.alphaworks.ibm.com/coscripter">CoScripter&#8217;s</a> automation strategy &#8212; based on simple English instructions that people can easily read, write, and share &#8212; could in theory work across the continuum of application styles. And arguably it will need to, because we&#8217;re increasingly likely to mix those styles. If you begin to rely on an automation sequence for your bank&#8217;s web application, for example, you&#8217;ll be sorry to have it broken by an upgrade that introduces AJAX, Flash, or Silverlight components.</p>
<p>What enables CoScripter to work in the web domain is the <em>document object model</em> (DOM) of which every web page is a rendering. Because JavaScript code can explore and interact with the DOM&#8217;s tree of user-interface objects, the browser can be driven semantically, by object names and properties, rather than literally, by mouse clicks and keystrokes. The literal method is workable, and there many tools that make excellent use of it. The semantic method is more reliable if available, but it isn&#8217;t always. So the literal method winds up being the common denominator, because every style of application will respond to mouse clicks and keystrokes.</p>
<p>There is another kind of semantic technique long supported by desktop applications that define <em>object models</em>, notably the Mac&#8217;s AppleScript object model and Windows&#8217; Component Object Model. These technologies enable automation scripts to reach below the user interface of applications, and to work with their internal machinery.</p>
<p>Using the Word object model, for example, you can <a href="http://support.microsoft.com/kb/301656">automate a mail merge</a>. If you run this program, you&#8217;ll see Word launch, you&#8217;ll see a data document written by an invisible hand, and then you&#8217;ll see a mail merge appear. What you won&#8217;t see are the user-interface actions required to produce these effects, because this level of automation bypasses the user interface.</p>
<p>So let&#8217;s distinguish between two flavors of semantic automation. The mail merge script does what I&#8217;ll call engine-based semantic automation. And CoScripter does what I&#8217;ll call UI-based semantic automation.</p>
<p>These two flavors are useful in quite different ways. With the engine-based approach, an automation script uses the application as if it (the application) were a service. In this case you don&#8217;t want windows and dialog boxes popping up all over the place, you just want to feed inputs and harvest outputs. The engine-based approach works accurately and efficiently, but it doesn&#8217;t yield a representation of task knowledge that a normal person could use, learn from, adapt, or share.</p>
<p>With the UI-based approach, an automation script uses the application as if it (the script) were a human being. It sees and touches exactly what the human sees and touches. This is not the optimal way to crank out a thousand mailing labels. But the UI-based approach does yield a representation of task knowledge that a normal person could use, learn from, adapt, or share.</p>
<p>Shareable representations of task knowledge are incredibly useful and powerful. Screencasts are one such representation, and as many people have noticed in recent years, they can radically outperform traditional forms of documentation. But you can&#8217;t interact with a screencast or concisely describe it. You can only watch and learn and imitate. Although that&#8217;s way better than not being able to watch and learn and imitate, interaction and concise description would be better still.</p>
<p>CoScripter delivers that superior experience of interaction and concise description. It does so by means of UI-based semantic automation which, in turn, is enabled by the browser&#8217;s document object model.</p>
<p>What might enable a more comprehensive flavor of UI-based semantic automation? Noodling on this question I arrived at one possible answer: the Windows UI Automation API, which is part of .NET Framework 3.0. I&#8217;d heard of it, but hadn&#8217;t connected the dots. In this <a href="http://www.sigaccess.org/newsletter/june05/june05_3.php">June 2005 article</a> for the ACM&#8217;s Special Interest Group on Accessible Computing, Rob Haverty lays out the rationale for this relatively new mechanism:</p>
<blockquote><p> Windows UI Automation unifies disparate UI Frameworks such as Avalon [Windows Presentation Foundation], Trident [the browser], and Win32 so that code can be written against one API rather than several.</p></blockquote>
<p>The basis of this unification is a tree of <em>automation elements</em> that is, in effect, a generic document object model. Automation providers map various specific object models, notably those of the browser and of Windows, into the generic tree. The API provides mechanisms for searching the tree and interacting with its elements.</p>
<p>It&#8217;s a powerful system that is also accurately described by John Robbins as &#8220;intensively fiddly.&#8221; So in this <a href="http://msdn.microsoft.com/msdnmag/issues/07/03/Bugslayer/default.aspx">March 2007 MSDN article</a>, he provides and illustrates the use of a set of convenience wrappers around the raw System.Windows.Automation classes. The sample program included with that article drives Notepad through a few basic operations. Could it be extended in the direction of CoScripter, in a way that realizes UI Automation&#8217;s ambition to uniformly control Windows and web applications?</p>
<p>I took a crack at that, and concluded that creating even a proof-of-concept will require more time and more programming chops than I can muster. But I&#8217;d be interested to hear from anyone who&#8217;s gone further down that path. I think this is potentially a very big deal. Although I suspect most programmers see UI Automation in the context of software testing, for which it is indeed well suited, Rob Haverty&#8217;s article suggests that it was primarily motivated by the need for better assistive technologies and improved accessibility.</p>
<p>When Tessa Lau says that accessibility guidelines are the lifeblood of CoScripter, she&#8217;s talking about affordances for people whose cannot otherwise use the full capability of their software. But consider Rob Haverty&#8217;s definition of accessible technology:</p>
<blockquote><p> Accessible technology enables individuals to adjust their computers to meet their visual, hearing, dexterity, cognitive, and speech needs.</p></blockquote>
<p>I like his use of the word <em>cognitive</em> because in some sense we are all cognitively impaired when we try to use software. For most people, most of the time, the <a href="http://del.icio.us/judell/conceptcount">concept count</a> is way too high. We don&#8217;t normally think of automation as an assistive technology. But arguably it is one. And when automation yields interactive documentation that lives in shared information spaces, it becomes a really potent assistive technology.</p>
<p>In case it&#8217;s not obvious, I am not claiming that Windows UI Automation can realize this vision of assistive automation across the spectrum of application types. It&#8217;s currently only available by default for Vista, and optionally for Windows XP if enhanced with the .NET Framework 3.0. It is not part of Silverlight or Moonlight, though conceivably one day it might be. And it clearly has nothing to do with Mac OS X, or Java, or Flash, or the Linux desktop.</p>
<p>But the idea of UI-based semantic automation is something that could apply in all these domains. A proof-of-concept CoScripter-like application-plus-service spanning two major domains &#8212; Windows desktop apps and browser-based apps running on Windows &#8212; would be a big step toward that broader vision.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonudell.wordpress.com/219/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonudell.wordpress.com/219/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonudell.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonudell.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonudell.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonudell.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jonudell.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jonudell.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jonudell.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jonudell.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonudell.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonudell.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonudell.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonudell.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonudell.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonudell.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.jonudell.net&amp;blog=109309&amp;post=219&amp;subd=jonudell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.jonudell.net/2007/09/10/automation-and-accessibility/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>
	</channel>
</rss>
