Search Results for 'screencast'


I’m just wrapped up a screencast about the elmcity project. It’ll stand in for me at an upcoming event I can’t attend, and serve as an explanation I can point others too. This is the first screencast I’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.

Software teleprompters

After writing the script, I realized I’d need a teleprompter in order to read it effectively into the camera. You’d expect to find lots of software prompters floating around on the web, including some free ones, and you’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 CuePrompter, TeleKast, and many others. All failed in some dimension of control: margins, speed, transport. Finally I settled on PromptDog, which is free to try but is the one I’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.

If you’ve read from a software-based teleprompter before, you’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’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’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.

Picture-in-picture video

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’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×768 video window.

I’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.

Often it’s OK to let the PIP video just overlay the screen action. But sometimes you don’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’s borders, I had to guess. Often I guessed wrong, and had to recompose and reshoot a piece of screen action.

Note that you can 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’s a lot of work, though. And you don’t really want to split the PIP video into segments because then you can’t manipulate the whole track.

Editing audio, motion video, and screen video all together

I made things hard on myself because I’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’s noise reducer, recombine the audio and video, and then import into Camtasia for editing.

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’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’m going to try matching the frame rates to see if that helps.

(In the end I decided it was worth redoing the edit anyway, so I split the AVI file I’d recorded from the camcorder, fixed the audio, imported it back into Camtasia, and redid the relatively few edits I’d made to the PIP video.)

In the past, I’ve done some carefully edited screencasts where things that I say are tightly synched to things happening on screen. (“…when I click on this link, we see that …) It’s easy to pull that off when you can’t see the speaker, because you can mess with the screen video, or the audio, or both. When you can see the speaker, it’s much harder. Motion video isn’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.

To PIP or not to PIP?

Is all this effort worth the trouble? When Scott Hanselman surveyed his readers about screencasts, he asked, among other things, “PIP or no PIP?” More than half agreed with the statement: “Too much PIP (Picture in Picture) video of the presenter is distracting.” And I think that’s true for screencasts that show how to do stuff with software.

When a screencast shows why 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 podcast. But if the screencast is going to represent me at an event, it seems like I should try to project myself there.

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’ve tried, even if only for some people, then it’s worth doing. My communication kit needs as many tools as I can pack into it.

Now that I’ve knocked the rust off my screencasting skills, I’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.

One thing that’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’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’s a start!

The endnotes for the book I’m now reading are a mixture of conventional citations and URLs. The former, expressed as publisher, book or journal title, author, date, and page number, seem not nearly so useful as the latter. Would you rather visit the library or click a link? But nowadays cited URLs also come with disclaimers like this: Accessed July 27, 2009. It might be inconvenient to verify a conventional citation in its original context, but I know that if I had to, I could. There’s no guarantee that I’ll be able to revisit a cited URL. Even if the page itself has not gone missing, there’s no way to know that the page I view on April 22, 2010 is the same one that the author viewed on July 27, 2009.

This anecdote was the springboard for my conversation with Herbert Van de Sompel about Memento, a proposed (and prototyped) method for adding the dimension of time to the web’s existing mechanism for content negotiation.

That mechanism has, to be sure, not taken the world by storm. The most common scenario involves a browser telling a multilingual server that its user prefers to read, say, French. A paper about Memento published last fall walks through the HTTP protocol that enables this negotiation. Odds are, though, that you’ve never seen this actually happen. It’s much more likely for a multilingual website to present itself as “a multiplication of language-specific mini-sites, instead of thinking of it as one site, with one set of URIs, only with different versions and languages available.” Wikipedia, for example, works that way.

The quote comes from a 2006 W3C article, Content Negotiation: Why it is useful, and how to make it work. The article blames the awkwardness of Apache’s implementation of the protocol (since corrected):

For a long time, with the most popular negotiation-enabled Web server (the ubiquitous apache), failed negotiation (for instance, a reader of french being proposed only english and german variants of a document), resulted in a nasty “406 not acceptable” HTTP error, which, while technically conforming to HTTP, failed to follow the recommendation that a server should try to serve some resource rather than an error message, whenever possible.

Is there any reason to suppose that time negotiation will succeed where language negotiation has so far mainly failed? That’s a hard question, and one I wish I’d thought to ask Herbert in the interview, but maybe we can continue the dialogue here.

Meanwhile, the fact that content negotiation is tricky to get right doesn’t invalidate the core of the Memento proposal. Time is fundamental, the web could have a reliable memory, and if we can build such a memory into the fabric of the web the benefits will be profound.

Examples are everywhere. Consider mediabugs.org. Founded by Scott Rosenberg, whom I interviewed last week, the site is dedicated to finding and fixing errors in media reports. A few days ago, the first bug was marked Closed:Corrected. The mediabugs.org bug page initially said:

Listing for Josh Kornbluth’s show “Andy Warhol: Good for the Jews?” says the show is at the Jewish Community Center in SF, but actually it’s at The Jewish Theater in the Theater Artaud building.

There’s a comment pointing out the error but it’s still showing with the wrong info on the Express home page.

And later:

This is fixed now!

If you visit the original news report, though, there’s no record of the correction. It’s no big deal in this particular case, but media organizations should want to be transparent about when and how they alter published items.

Likewise governments. The Citability project aims to account for the history of changes made to items published on government websites. As with mediabugs.org, the approach will initially require third-parties to monitor and chronicle the changes.

The Memento idea is that media organizations, governments, and other kinds of web publishers will be accountable for their own change histories.1 And they’ll do so in a standard way, so that people viewing these sites in browsers can straightforwardly say: “Show me this page as it existed on July 7, 2009.”

This is wildly ambitious, but I applaud the ambition. Every since I made the Heavy Metal umlaut screencast, I have imagined what it would be like to scroll back and forth along the timelines of evolving web pages. At one point Andy Baio sponsored a contest to write a script that would animate the revision history for any Wikipedia page, and I made a screencast of Dan Phiffer’s solution.

Clearly we want this. Will it be hard to arrive at a well-known and well-used standard? Sure. Is it worth doing? Absolutely.


1 Third-party watchdogs will often be needed, of course. We’d like to trust self-reported change histories, but we’d also like to verify them. Even so, third parties shouldn’t be the only mechanisms. Self-reported histories should exist.

I’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’s a snapshot of the process for my future self and for anyone else who’s interested.

Using deepzoom.py to create Deep Zoom images and collections

I’m using this Python component to create Deep Zoom images and collections. I made the following changes to it:

1. tile_size=256 (not 254) at line 59, line 160, and line 224

2. source_path.name instead of source_path at line 291

3. destination + '.xml' instead of destination at line 341

Let’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:

001.jpg
002.jpg
003.jpg

For each image file, you could run deepzoom.py thrice from the command line, like so:

python deepzoom.py -d 001.xml 001.jpg
python deepzoom.py -d 002.xml 002.jpg
python deepzoom.py -d 003.xml 003.jpg

My script doesn’t actually do it that way, it enumerates JPEGs and instantiates deepzoom.py’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):

  • A settings file: 001.xml
  • A subdirectory: 001_files
  • More subdirectories (named 0, 1, etc.) inside 001_files
  • JPG files inside those subdirectories

Now, in this case, the current directory looks like this (using -> to mark additions):

001.jpg
-> 001.xml
-> 001_files
002.jpg
-> 002.xml
-> 002_files
003.jpg
-> 003.xml
-> 003_files

To build a collection, do something like this in Python:

from deepzoom import *
images = ['001.xml','002.xml', '003.xml']
creator = CollectionCreator()
creator.create(images, 'dzc_output')

Now the current directory looks like:

001.jpg
001.xml
001_files
002.jpg
002.xml
002_files
003.jpg
003.xml
003_files
-> dzc_output.xml
-> dzc_output_files

The Pivot collection’s CXML file will refer to dzc_output.xml, like so:

<Items ImgBase="dzc_output.xml">

Using IECapt to grab screenshots

This tool uses Internet Explorer, so only works on Windows. There is also CutyCapt for WebKit, which I haven’t tried but would be curious to hear about.

Here’s an example of the IECapt command line I’m using:

iecapt –url=http://blog.jonudell.net/… –delay=1000 –out=tmp.jpg

The result in most cases is a tall skinny JPEG, because it renders the whole page — which can be very long — 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->Browsing in IE, checked Disable script debugging, and unchecked Display a notification about every script error.

Using ImageMagic to crop screenshots

Here’s a picture of an image produced by IECapt, overlaid with a rectangle marking where I want to crop:

The rectangle’s origin is at x=30 and y=180. Its width is 530 pixels, and height 500. Here’s the ImageMagick command to crop a captured image in tmp.jpg into a cropped image in 001.jpg:

convert -quality 100 -crop 530×500+30+180 -border 1×1 -bordercolor Black tmp.jpg 001.jpg

I’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.

Parsing the WordPress export file

I found to my surprise that WordPress currently exports invalid XML. So the script starts with a search-and-replace that looks for this:

xmlns:wp="http://wordpress.org/export/1.0/"

And replaces it with this:

xmlns:wp="http://wordpress.org/export/1.0/"
xmlns:atom="http://www.w3.org/2005/Atom"

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 content:encoded 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.

Weaving the collection

There are two control files that need to be synchronized. First, there’s dzc_output.xml, for the Deep Zoom collection. It has elements like this:

<I Id=”596″ N=”596″ Source=”2245.xml”>

Then there’s pivot.cxml which drives the visualization. It has elements like this:

<Item Id="596" Img="#596"
  Name="Freebase Gridworks: A power tool for data scrubbers"
  Href="http://blog.jonudell.net/2010/03/26/...
<Description><![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.
]]></Description>
<Facets>
  <Facet Name="date">
    <DateTime Value="2010-03-26T00:00:00-00:00" />
  </Facet>
<Facet Name="tag">
<String Value="freebase" />
<String Value="gridworks" />
<String Value="metaweb" />
</Facet>
  <Facet Name="comments">
    <Number Value="24" />
  </Facet>
</Facets>
</Item>

In this example, Source="2245.xml" in dzc_output.xml refers to a Deep Zoom image whose name comes from the WordPress post_id for that entry, which is:

<wp:post_id>2245</wp:post_id>

But Id="596", 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’t know why the numbering of items in the WordPress export file is sparse, but it is, hence the difference.

Things to do

Here are some ideas for next steps.

1. Check the comment logic. I just noticed the counts seem odd. Maybe because I’m counting all comments instead of approved comments?

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.

2. Use APIs of various services — Twitter, bit.ly, etc. — to count reactions to each item.

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.

There’s one by David, and another by Stefano. Using common public datasets about food, international disasters, and US government contracts, they fly through a series of transformations that:

  • Merge similar names using a host of methods:

    • Automatic title-casing
    • A rich expression language
    • Analysis of “edit distance” between similar phrases, using several clustering algorithms
  • Split multi-valued facets
  • Create new facets (e.g., a year column from a data column)
  • Morph linear scales to log scales where appropriate

It’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 — along with sliders for selecting and focusing on subsets.

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’s lying around is a mess. That’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’s a great thing. But we’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’ll want to be using tools that do the kinds of things shown in the Gridworks screencasts.

As Phil Windley mentioned the other day, I’ll be speaking at the Kynetx Impact conference, April 27-28 in Salt Lake City. Last year I interviewed Phil about what Kynetx does. It’s hard to boil it down to an elevator pitch without examples, so here’s one that came up today: Scott Hanselman’s Put Missing Kids on your 404 Page application.

Inspired by a PHP solution to the problem, Scott set out to replicate it for ASP.NET.

But then I realized that a server-side solution wasn’t really necessary.

Could I do it all on the client side? This way anyone could add this feature to their site, regardless of their server-side choice.

One next step, as Scott points out, is to add geolocation so the list of kids you see will be more relevant to you. But there are lots of ways to contextualize that list based on aspects of your identity. And this is what Kynetx applications do: Contextualize your experience of the web based on aspects of your identity.

My own interest in this idea dates back to the LibraryLookup project, which was an early demonstration of the power of client-driven contextualization. It evolved from a bookmarklet to a browser plug-in, but then stalled there for lack of a ubiquitous client-side technology.

Now there is: jQuery. What Scott’s example shows, as do all Kynetx applications, is that we’re ready to make clients more equal partners in the dance of the web. Among other things, this possibility raises horny issues about the control of content — issues that I explored in a 2005 screencast.

But there’s also a deep connection between Phil’s work and the ongoing saga of digital identity. Phil wrote a book on that subject, and has been a key organizer of the Internet Identity Workshop. When he started Kynetx he wasn’t really thinking about a tie-in to Information Cards and the identity metasystem. But the connection emerged organically.

In a Kynetx-enhanced version of the Missing Kids 404 Page application, your browser would present selected aspects of your identity to the services that provide the data, and a Kynetx application would personalize that data in ways meaningful to you.

The Internet began as a network of peers. That arrangement didn’t last long, and there have been several efforts to restore the original symmetry. In the early 2000s, during Napster’s heyday, there was a flurry of interest in peer-to-peer architectures. Thanks to today’s more capable and more standardized browsers, we’re seeing a new wave of interest. I’m looking foward to hanging out at the Kynetx conference and meeting folks who are riding that wave.

Last year I applied for a grant from a philanthropic group, the Knight Foundation, that wants to save journalism by funding the development of new technological methods. I was conflicted about applying because the project I put forward is already well supported by my employer, Microsoft. But since my proposal was to redistribute all of the grant, as a way of exploring an idea about improving the flow of information in communities, I thought it was fair to give it a shot.

My proposal advanced to the final round and was then rejected. Given my initial ambivalence I was OK with that. But the stated rationale has been bugging me ever since. The letter said:

Because there are thousands of proposals and only a few of them advance, we are able to choose only the most innovative ideas. These are new kinds of technologies or techniques, usually things we have never heard of before.

The meme woven into that paragraph has a name: Shiny New Thing syndrome. It is a plague. Technology journalism feeds it. Thought leaders, including Dave Slusher, Jeremy Zawodny, and Jeff Atwood, have denounced it.

I’m clearly biased, since all my best work involves creative remixing of ideas and technologies that are as common as dirt. But I do wonder about the harm that’s done when we equate innovation with shiny new things.

Old things are full of latent value that we’ve yet to discover and unlock. Why? It takes a long time for real understanding to sink in. In Net infrastructure, consider how long it’s taken us to grok what HTTP, REST, HTML, and JavaScript really are and can do. In education, look at the high-value uses that Sal Khan and Dan Meyer find for low-tech screencasting and blogging tools. In journalism and civic life, read what Alan Rusbridger says about Will Perrin’s compelling — and yet so last-century — use of Typepad to activate communities.

Well, I try to do my part. On my show, which is called Interviews with Innovators, I feature people who are more likely to be evolutionary repurposers than revolutionary creators. Maybe I should rename the show Shiny Old Things.

My guest for this week’s Innovators show is Sal Khan. He’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 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’s work fulfills that vision, and points the way toward a profound and much-needed disruption of our educational system.

At its core, Sal’s project isn’t about YouTube screencasts. It’s about intuition.

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’t care about the intution in their junior year, when that same idea pops up in senior year, it’s like they’ve never seen it before. It boggled my mind. You’re just relabeling the same concept over and over.

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.

One of the key ingredients of that method is improvisation. These videos aren’t carefully planned, and they aren’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.

It was Chris Gemignani who first showed me the value of this approach, in a screencast that teaches how to do unexpectedly powerful and elegant Excel charting. He did it in one take. I’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.

One thing that Sal’s lessons can’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.

Teachers should also become connectors. Sal won’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.

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.


PS: The title of this piece refers to Richard Ankrom’s Los Angeles freeway project. 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.

PPS: I wrote to my son’s math teacher about Sal Khan. She replied: “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.”

At its core, your browser is powered by an engine called the Document Object Model, hereafter DOM. You can think of the DOM as an outline, and the browser as an outline processor that shows and hides things, displays things in different ways, and even adds, removes, or rearranges things. Nowadays what you see, when you view a web page, is the result of a complex interaction between data and code. The data is the HTML content of the page, and the code is its JavaScript behavior. But these are slippery terms. A lot of content never originates as HTML, but is instead produced dynamically — by a web server, but also quite possibly in the browser as it manipulates the DOM. And a lot of behavior happens opportunistically in response to content on the page.

This arrangement has radical implications. For example, back in 2002 I invented LibraryLookup, a bookmarklet that noticed when you were visiting an Amazon or Barnes and Noble book page and offered a one-click search for that book in your local library. A few years later, a Firefox extension called Greasemonkey arrived on the scene. It offered two capabilities that, working together, enabled a zero-click LibraryLookup. First, it could call out to a web service. Second, it could modify the DOM based on the response. Putting these two things together, I wrote a script that would notice that you were visiting an Amazon book page, check to see if the book was available at your local library, and if so, insert a paragraph into the DOM that said: “Hey, it’s available at the [YOUR LIBRARY NAME] library!”

Is this kosher? I think so, but it’s a tricky question. At the time I made a short screencast that reflected on questions of ownership and fair use in an environment that’s designed and built to support intermediation and remixing. These questions were still largely hypothetical, though, because Firefox users who had also installed Greasemonkey were a very small number indeed.

But now, thanks to modern browser-independent JavaScript libraries like jQuery, those hypothetical questions are becoming very real. Here’s Phil Windley demonstrating his 2009 version of LibraryLookup:

The example comes from Phil’s recent essay The Forgotten Edge: Building a Purpose-Centric Web, which makes the case for contextualized browsing as enabled by libraries like jQuery and by infrastructure like that provided by Phil’s company, Kynetx.

In Phil’s next blog item, Claiming My Right to a Purpose-Centric Web: SideWiki, he asserts:

I claim the right to mash-up, remix, annotate, augment, and otherwise modify Web content for my purposes in my browser using any tool I choose and I extend to everyone else that same privilege.

That item grew a long tail of comments. It includes some interesting back-and-forth between Phil Windley and Dave Winer, but I want to focus on this observation from Greg Yardley:

Sites also generally come with a contract attached – some implicit (the view-through), some explicit (the click-through) – and these contracts, done correctly, are generally enforceable.

This whole post mystifies me, because you don’t have the the right to mash-up, remix, annotate, augment, and otherwise modify Web content – it’s not your content.

Earlier in the thread, Jeremy Pickens cited an example of such a contract: Google’s terms of service:

8.2 You should be aware that Content presented to you as part of the Services, including but not limited to advertisements in the Services and sponsored Content within the Services may be protected by intellectual property rights which are owned by the sponsors or advertisers who provide that Content to Google (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this Content (either in whole or in part) unless you have been specifically told that you may do so by Google or by the owners of that Content, in a separate agreement.

In response to Greg Yardley, Phil Rees cites fair use:

Actually we do have those rights.

http://www.law.cornell.edu/uscode/17/107.html

I believe so too. Sooner or later, that belief will be tested.

After my March interview with Phil about Kynetx, I wrote:

There’s a continuum of ways in which I can modify a web page in a browser, ranging from font enlargement to translation to contexual overlays. I wouldn’t draw a line anywhere along that continuum. It seems to me that I’m entitled to view the world through any lens I choose.

This doesn’t only apply to my view of the virtual world, by the way. It will apply to my view of the physical world too. We don’t yet have magic glasses that overlay web prices on shelf items, or web reputations on store signage, but someday we will.

I can’t see how I could be prevented from creating a heads-up display — for realspace or cyberspace — that’s advantageous to me. But I’ve got a hunch that those magic glasses are going to be controversial.

I wonder if it’s going to boil down to magic glasses versus magic projectors. Or, in other words, private versus public augmentation of our experiences of the virtual and real worlds. I can wear my magic glasses, but I can’t necessarily project the view that I’m seeing.

My guest for this week’s Innovators show is Peter O’Toole from mTuitive, a company whose authoring toolkit for clinical data collection I featured in a 2006 screencast. mTuitive is working at the intersection of a number of disciplines that all need to come together to deliver cheaper and better health care.

First, usability. Designing clinical data gathering systems that capture what’s right for the patient, along with what’s mandated by the insurance company, requires a careful balancing of constraints and freedom in software user interfaces.

Second, knowledge engineering. Clinical systems don’t merely record data, they embody medical protocols that reflect an ever-changing consensus about methods and best practices. mTuitive’s authoring system aims to enable leading practioners to encode that knowledge in ways that can then guide others. But knowledge grows at the edge as well as at the center. So mTuitive also enables practitioners to extend and modify the software, injecting local knowledge and custom. Who owns this knowledge? Who’s liable for the consequences of its use? These are some of the implications we discussed.

Third, semantics. Electronic medical records are still mainly narrative in form, says Peter O’Toole. But we’re moving toward more computable ways of describing observations about, say, the nature and size of tumors.

Fourth, social software. My hunch, and Peter O’Toole’s too, is that progress toward the nirvana of medical records that are both semantically rich and interoperable will be powered by a two-stroke engine. One stroke of the piston will be driven by centrally-defined standards and centrally-imposed legislation. But the other will be driven by networked collaboration, at the edge, among doctors who pool and codify their experiential knowledge using ad-hoc, Web 2.0-like methods.

In his writeup on Google Wave, Dare Obasanjo says:

I’m sure there are thousands of Web developers out there right now asking themselves “would my app be better if users could see each others’ edits in real time?”,”should we add a playback feature to our service as well” [ed note - wikipedia could really use this] and “why don’t we support seamless drag and drop in our application?”. All inspired by their exposure to Google Wave.

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:

Animation is the best way to visualize the flow of change, as I discovered when I made my Wikipedia screencast. 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 “real” document, like footnotes.

Andy Baio responded by sponsoring a contest for a tool that would do just that. And I made a screencast demonstrating Dan Phiffer’s winning entry.

That script is unavailable at the moment because, ironically, Dan’s server reports:

Oh noes! I got HACK*D. I’m sifting through my files and should restore things back to normal soon.

In any case, it probably wasn’t practical for routine use. Fetching every revision on the fly really hammers Wikipedia. What’s really needed — again, not just for Wikipedia but everywhere — is a general way to query change history, and return a stream of versions and differences.

One way of doing the latter would be to use FeedSync, an open extension to RSS/Atom that supports synchronization in Live Mesh. Another would be to use Google’s Wave protocol. Because FeedSync deals with lists of items, which can be arbitrary chunks of content, whereas Wave deals with lists of document-mutation operations, like delete-element and start-annotation, it seems to me that FeedSync is more general, albeit less immediately useful for collaborative editing.

To explain why generality matters, consider change animation in a very different domain: software configuration. My wife, for example, sometimes changes her settings — in Word or Firefox — in ways that cause problems. If these apps persisted their settings to Live Mesh, as they could and arguably should, I’d be able to debug a mishap locally or remotely. But ideally, the change visualization would be sufficiently user-friendly so that she’d have a shot at figuring it out for herself.


PS: Speaking of history and restoration, I’ve been feeling like an amnesiac ever since my InfoWorld archive went dark. So in spare moments I’ve been reconstructing and republishing it. I’ll have the text of all the old blog entries up soon. And I’ve been restoring the screencasts as well. I’m keeping track of my progress at delicious.com/judell/screencast+restored.

This week’s Innovators show has the lowdown on Phil Windley‘s new company, Kynetx. The first application of the Kynetx technology is Azigo’s RemindMe service. It alters search-results pages to highlight cases where the user has — but would likely have forgotten about — a discount-qualifying membership.

There are a number of moving parts in this scenario. On the back end, Kynetx provides a rules engine that decides how to rewrite a page based on the context of the user’s “web episode” and the user’s membership in an organization like AAA. Membership is asserted by an Information Card that the user installs, then presents on request to a browser extension. It asks the Kynetx service for a chunk of page-modifying JavaScript, then runs that code locally to effect the change specified by the rule.

If you’ve followed the Internet identity saga — a story that Phil has helped to write, as author of a book on digital identity and as an organizer of the Internet Identity Workshop — you’ll be thrilled to see that the Kynetx system is responsible for the minting and real-word use of Information Cards. As Phil explains in this interview, the cards as currently used convey no extra information, they merely signify membership. Still, it’s great to see this key technology finally percolate out into the mainstream.

Kynetx will mainly serve companies that want to solidify and enhance high-value relationships with customers by means of “permission-based context management.” Refreshingly, the Kynetx wiki qualifies that definition in a way that will make Doc Searls smile:

The following anti-lexicon contains words and concepts that Kynetx doesn’t use:

  • exploit – while opportunities might be exploited, people never should be.
  • eyeballs – we’re not doing optometry
  • target – you target enemies, not customers.

Near the end of the interview, Phil refers explicitly to Doc’s VRM (Vendor Relationship Management) campaign:

We see ourselves as plumbing for VRM. For example, we’re putting together a green choice card. If you install it, as you search around the web it will show you which companies have been ranked well or poorly in terms of social responsibility. Right now it’s just a demo, and we don’t have great data, but suppose we did, and there were enough of those cards out there, and Constellation Brands was determined by Fortune Magazine to be the least socially responsible company in 2008. If every time a cardholder found a Constellation product on Google there was a little icon indicating that, and there were a lot of people with the card, you could change the company’s behavior. They’d want to get the icon off that page.

It’s a fascinating notion, and it leads to an issue that I should’ve raised with Phil in the interview but will raise here instead. A couple of years ago, during my period of infatuation with Greasemonkey, I made a 4-minute screencast entitled Content, services, and the yin-yang of intermediation. At the time, I’d just invented a Greasemonkey-enabled version of LibraryLookup that was more aggressive than the standard bookmarklet version.

With the standard version, you click a bookmarklet while on an Amazon page, and a query against your local library pops up in a window. With the Greasemonkey-enhanced version, the Amazon page itself is rewritten to say:

“Hey! This book’s available at the Keene Public Library!”

Or:

“Due back at the Keene Public Library on March 28.”

But does the user of a web-based service have the right to modify pages in these ways? The screencast ponders that question. Three years ago there wasn’t enough client-side page rewriting going on to raise that question in a big way, and I guess there still isn’t, but now that jQuery is making the capability broadly available it’s bound to come up.

There’s a continuum of ways in which I can modify a web page in a browser, ranging from font enlargement to translation to contexual overlays. I wouldn’t draw a line anywhere along that continuum. It seems to me that I’m entitled to view the world through any lens I choose.

This doesn’t only apply to my view of the virtual world, by the way. It will apply to my view of the physical world too. We don’t yet have magic glasses that overlay web prices on shelf items, or web reputations on store signage, but someday we will.

I can’t see how I could be prevented from creating a heads-up display — for realspace or cyberspace — that’s advantageous to me. But I’ve got a hunch that those magic glasses are going to be controversial.

On this week’s ITConversations show I asked Martin Murray, who is chief spokesperson for Public Service of New Hampshire — and @psnh on Twitter — to tell the story behind this atypical pattern of Twitter followers:

The quantum jump occurs on December 13, and corresponds to the epic ice storm on December 11/12. The storm temporarily knocked the majority of New Hampshire’s homes and businesses off the power grid, and for many the outage lasted days or even weeks.

When I visited the Public Service of New Hampshire website to check on the status, I was delighted to find Martin’s Twitter feed. Gary Lerude had anticipated my question:

@psnh How about an online map showing the areas without power? We could see the progress of the crews as the power is restored.

Three minutes later Martin replied:

@garylerude Good idea – working on it!

I thanked @psnh for the response, and for the company’s ongoing restoration efforts, and added:

@psnh Incidentally if you need help publishing your data online and creating maps, lots of us here are good at that and happy to help.

The response:

@judell Yes, ur google map screencast of Keene walking tour comes to mind. We may follow up on ur offer!

Whoa. This is definitely not how your grandfather’s utility company handles public relations!

In this interview we discuss Martin’s use of social media in the wake of the storm. Of course he has been interviewed elsewhere and more prominently on that subject. So I also asked Martin to reflect on how business-as-usual may change going forward.

Of special interest to me is the portion of that chart beyond Dec 13. True, the follower count has plateaued. But it hasn’t plummeted, and won’t, because it costs followers nothing to stay tuned in to a quiescent channel. If PSNH uses that channel judiciously from now on, I’ll stay tuned in. If the channel annoys me, I can silence it. That’s analogous to unsubscribing from an email newsletter, but better from my perspective because the unsubscribe mechanism is obvious, uniform, immediately effective, and fully under my control.

How will PSNH use this channel for normal, non-crisis operations? Martin thinks that customer service with a human voice is the way forward, and I violently agree.

Consider this exchange:

@psnh tweets: “Explanation/options re high ‘estimated’ bills sent to some customers: http://tinyurl.com/8de4kl”

@sjudd tweets: “The real question is why are the estimated bills higher than expected? Will you tell us later if any estimate was lower than actual?”

@psnh replies by direct message (quoted with permission of both parties): “I doubt any est bills were lower than expected. Computer based it on Dec 07 usage. Apologies for the error!”

That’s what customer service used to be and — let’s hope — will be again.



Update: Here’s a similar effect produced by the February 2010 wind storm:

In Dec 2008, @psnh went from zero to almost 2000 followers as a result of an epic ice storm. A year later the count had crept up to 2600. Then 2010′s epic wind storm spiked it to 4000.

To put these seemingly dramatic numbers in context, though, both storms created outages for more than half the company’s customers. New Hampshire is a small state, with population of only 1.3 million, but even so these storms affected on the order of half a million people. Yet even now @psnh is reaching fewer than one percent of them.

I should get a life, I know, but I can’t help myself, one of my favorite pastimes is figuring out new ways to wrangle information. One of the reasons that IronPython had me at hello is that, my fondness for the Python programming language notwithstanding, IronPython sits in an interesting place: on Windows, side by side with Office, where a lot of information gets wrangled — particularly in spreadsheets.

There are now two interestingly different IronPython applications that marry Python and the spreadsheet. The first, Resolver One, I wrote about last year and featured in a screencast. In this case, IronPython runs the whole show. It drives the user interface, and it also drives the recalculation engine.

More recently Blue Reference, whose Inference suite integrates statistical and analytical tools like MATLAB and R into Office, has taken a different tack. Its Inference for .NET taps the general-purpose scripting capabilities of the dynamic .NET languages, including IronPython and IronRuby.

Now to be clear, I’m not in Blue Reference’s target market. Their customers are doing scientific and technical work that benefits from the ability to embed live R or MATLAB analysis into documents. I don’t know, but would be curious to find out, how those folks — or others — might also want to leverage more general-purpose glue languages like IronPython or IronRuby.

In any case, there are clear tradeoffs between the two approaches. With Inference, the IronPython engine is loosely coupled to the Office apps. That buys you the full fidelity of the applications, but costs you Pythonic impedance.

With Resolver One there is no impedance. The application and your data are made of Pythonic stuff. You give up a ton of affordances in order to get that unification, but it enables some really interesting things.

Here’s one example: row- and column-level formulae. This is a pretty handy idea all by itself. Instead of putting a formula into the first row of a column and then copying it down, you put it into the column header where it applies to the whole column automatically.

Michael Foord has a nice example (screencast, article) that shows how to do some nifty data aggregation using Python list comprehensions.

He starts with a worksheet of People:

Name Age Country Job
Stan 23 USA Blogger
Wendy 66 AUS Analyst
Eric 33 UK Developer

In a second worksheet, he aggregates by Country, like so:

Country People Number of People Average Age
USA [<Stan>,<Kenny>,<Craig>] 3 30.7
UK [<Eric>,<Kyle>] 3 41.3

Here’s the column-level formula that does that:

=[person for person in <People>.ContentRows if person['Country'] == #Name#_]

In other words, for each row make a list of People whose Country attribute equals the value in the Name column of the row. And stick that value into the current cell. If you’re familiar with Python, you’ll notice that the syntax — [<Eric>,<Kyle>] — looks like how Python prints out a list. That because it really is a Python list sitting in that cell.

Now the other columns can refer to that list. Here’s Number of People:

=len(#People#_)

Here’s Average Age:

=AVERAGE(person['Age'] for person in #People#_)

This idea of having live Python objects sitting in a spreadsheet is what really grabbed me the first time I saw Resolver, and it still does.

Here’s another little example of my own. Yesterday I was revisiting some of the code I used in my crime analysis project. These kinds of projects invariably turn into pipelines that transform data one stage at a time. Typically I store those intermediate results in files, which tends to be awkward.

This time around, I did the pipeline as a Resolver spreadsheet like so:

The column-level formula on D combines the fields in A, B, and C into an URL-encoded string in D.

The formula on E calls a geocoding service with an URL made from the string in D and puts the XML result in E.

The formula on F parses the XML in E, creates a Python dictionary, and dumps that into F.

The formulae on G and H extract the lat and lon values out of the object in F and stick them into G and H.

I dunno, maybe it’s just me, but I think that’s cool.

This week’s ITConversations show suffered a tragic glitch that rendered the audio unusable, but I was able to transcribe it as text. My guest is John Leeke, a carpenter who takes care of old buildings and shares his knowledge of the tools and best practices involved in doing that. His methods of sharing have evolved over many years. He started in the early 1980s as a writer for magazines like Old House Journal and Fine Woodworking, transitioned to Internet publishing when that became possible, and more recently has become a leader in the use of Internet video to communicate knowledge that’s embodied, as he likes to say, in the mind, the hands, and the heart.

His approach to Internet video exemplifies and weaves together a number of themes that I’ve focused on in recent years, including narration of work, online apprenticeship, tacit knowledge, screencasting to document our work in the virtual world, and video to document our work in the physical world.


JU: We got introduced by way of the folks at the Open University, whom I met when I visited the UK in January 2007 to speak at the Technology, Knowledge, and Society conference. They were showing me their FlashMeeting videoconferencing system, and they cited you as an example of somebody who’s making very practical use of the medium in your work, which is historic home renovation.

JL: Right. I’d been using FlashMeeting for about a year and half then. They had singled me out because I wasn’t doing education, or developing the FlashMeeting system, like they were there at the Knowledge Media Institute, I was out in the real world doing things with it, demonstrating the horizontal movement of knowledge.

JU: That absolutely grabbed me. Ever since I got involved in Internet video, I saw there was a huge opportunity for horizontal, or direct, or peer-to-peer transfer of knowledge. In particular, of knowledge that is embodied, literally — it’s in your hands…

JL: It’s in your mind, your hands, and your heart. I’ve been sharing what I know through print media since the early 1980s. I grew up working in my father’s shop, in the 1950s, and then was out in the field working on historic buildings as a preservation carpenter for fifteen years. Then I fell into writing about my work: Homebuilding Magazine, Fine Woodworking, Old House Journal. I got pretty practiced at that by the late 1990s.

JU: You’ve published books too, right?

JL: Yes, I’ve self-published a series on caring for older buildings. Through the 1990s I knew that video would be important for my work, but I never came around to publishing anything in video. I didn’t have the time or dollars to put into it. But but 2003 and 2004, it was getting streamlined enough and easy enough to do over the Internet.

JU: As much use of online video as there is, I think we’ve barely scratched the surface when it comes to the sort of sharing of practical knowledge that you’ve been doing.

JL: It’s starting to happen. Just yesterday a colleague sent me a link to a YouTube video about how to draw and sketch the classical forms, like Ionic capitals. It was an architect showing how he sketched, and how he developed a balustrade for a fancy classical building. It showed him actually doing it. This wasn’t happening in the 1990s. You could do it, but it was a huge expensive production. Now you can do it for a couple of hundred dollars, and sometimes even less.

JU: Of course there’s still the question of why someone would do this. And in fact, the theme of the talk I gave at that conference was network-enabled apprenticeship. The idea was that throughout human history, people have learned trades and crafts by direct observation and imitation.

JL: Yeah, workers working side by side. And it’s more than observation. It’s the guiding of hands that makes that work. Internet video, even when it’s live, doesn’t get you all the way there. But it’s certainly a dramatic next level beyond print media, that’s for sure.

Expositional work online — presentation of words and pictures and even videos — it’s all presentational. Someone develops it, and as a separate event in time someone else comes and watches and learns. But when it’s live and interactive, that’s when you jump to the next level. Being there in person is best, of course, but this is a really valuable and powerful intermediate level because it opens up access to many more people than I can get together with personally, side by side.

JU: Can you give an example?

JL: In our work we’re often restoring old windows. This is the time of year when you have to take care of them. One of the details of that work is reglazing, where the glass meets the sash — the wooden frame that slides up and down. There’s a material called glazing compound, or putty, and it’s easy enough to use so that any handy person can do it, but it’s hard to get it so that it looks nice and smooth and even, if you haven’t done it before. Once you learn, it’s a cinch. And it’s easy to show someone how. I’ve taught eight-year-olds and eighty-year-olds how to run a perfect line. But you can’t do that with even a detailed series of photos.

JU: And you’ve tried…

JL: Yes, I’ve written three or four articles over the years, and each one is better, and you can learn a certain kind of thing from print and photos. You can learn what kind of putty to use, you can learn how to hold the putty knife. But until you see a putty knife in motion, and can respond in realtime — adjust the angle, a little more pressure — you can get it in thirty seconds if you’re side by side, and in a few minutes over interactive video.

JU: So you’re talking about a couple of levels here. The first is direct observation and imitation. My first revelation on that front was when I had to fix an old HP laser printer. I found a parts kit online that came with a video on a CD, and it enabled me to successfully disassemble and reassemble that printer. Later I realized there was no other way I could have done the job successfully. No written instruction would have gotten me there.

JL: Right, that’s one level and it works well when the printer you’re repairing is just like the one in the video. And when the job involves mechanical parts that lock and fit together.

But with the window putty, it’s different. You’re working with a plastic material. It’s as if you had to make those printer parts yourself. It’s basic stuff, not manufactured stuff.

JU: The motor skills are subtler, and the nonverbal communication is more critical.

JL: Right, and with the nonverbal communication as well as the visual, you really need to be able to go back and forth between the learner and the teacher. If you can do that within seconds — or if you’re standing next to someone, microseconds — that feedback between the eyes, the mind, the hand, the muscles, the tool, the material the tool is shaping — that’s how they learn so fast in person. And it can happen in seconds when you’re doing interactive video over the Internet.

JU: What’s your setup for doing these interactive training sessions over the Internet?

JL: I take my notebook computer, plug in my Sony HandyCam, and shoot whatever it is we’re teaching or discussing. It’s getting to the point where it’s all plug and play, and if I can do it, many people can.

JU: So that’s the broadcast piece of it, what’s the setup for interacting with people who are following along?

JL: That happens on a page at my website, HistoricHomeworks.com. Other people log in there to the FlashMeeting system, and if they have camera and audio at their end, I can see and hear them. Typical numbers are two or three participants, up to eight or ten. The live sessions are also catalogued for later viewing.

JU: The FlashMeeting system has some interesting features, including a method of visualizing the conversation so you can see who spoke when and for how long.

JL: That helps support the Knowledge Media Institute’s principal mission, which is to study and understand how knowledge spreads from person to person around the world. The analytical features built into FlashMeeting serve that mission.

It fascinates me. For example, you can see displayed on a map of the world the locations of viewers of these recorded sessions showing how to restore historic windows, or painting and restoring exterior woodwork. I can see where the interest is, and it turns out that people everywhere care about this stuff, because there are wooden buildings all around the world. On six of the seven continents there are people using these videos streaming from my office in Portland, Maine. At KMI they joke that they’re waiting for someone to start watching in Antarctica.

JU: It’s an interesting point because in the world of online media there’s a lot of emphasis on what’s new, but you’re operating out on the long tail. Your piece on interior storm windows was very relevant to me because I just went through the exercise of doing the stretch-and-seal method, and your demonstration of how to build reusable interior storms really got my attention.

That’s an idea a person might never encounter. But if you do, it doesn’t matter when. The publishing world calls this evergreen content, it’s valuable anytime.

JL: Right. There’s also a discussion on my website about this topic. It’s more expositional — words and pictures — and that goes hand in hand with the video. One of the limitations of the FlashMeeting system is that I can’t annotate the video, after the fact, with links to those materials.

JU: A lot of folks will look at this and say, OK, John Leeke is an unusual guy. He doesn’t just do the work, he also documents the work, and that’s great for him, but it’s not really relevant to most people who won’t have the time or inclination. For them, this process seems tangential.

But I think that’s often untrue. Here’s an example. I have a pellet stove, and there are a couple of maintenance procedures that I frankly screwed up the first time through because I didn’t absorb the understanding of how to do them from the manual. What struck me was that once I knew how to do it, I could have illustrated these procedures with a couple of five minute videos. And maybe I should just do that myself. But the thing is, if I’m the dealer, and I’m getting complaints from customers who are buying these things and then failing to understand the manual and screwing things up, it’s very much in my interest to do some of my own video documentation.

JL: Of course. And by the way, I’m not special. I’m just a carpenter up here in Maine, taking care of my own house. It just turns out that my work is also helping other people to take care of their houses. Well, yes, it’s not unique but special that I have this compulsion to share what I’m learning and figuring out. But the ability to share it — well, no matter who you are, if your neighbor sees you fixing your windows, and comes over and knocks on your door and asks about how to do it, you would show him. This is just an extension of that. Now we can have neighbors further afield.

JU: Yes. There was a time when the work people did was visible. You saw what they did.

JL: You saw what the people next to you did.

JU: That’s right. And you understood what the different kinds of work were, because you saw people doing that work. But then, in the industrial age, dad went off to work, he disappeared in the morning, and showed up again at the end of the day, and work was a black box. Who knew what dad did?

JL: That’s the industrial disconnect. And there’s a disconnect on the marketing side as well. Through the last half of the 20th century, as the industrial revolution gears up to grind itself into nothing — which is now happening — the method of marketing to more people than needed stuff was to disconnect the people from each other, so that everybody needed something, instead of sharing with their family or neighbors. Everybody needed their own lawnmower. But you figure your lawnmower is sitting idle in your garage for 99% of its time. One lawnmower could easily mow everybody’s lawn on the block.

But that’s the consumer culture that was developed by manufacturers. So very few people now know to run that glazing compound to seal the glass to the wooden frame. This is purposeful. They don’t want people to know how to run glazing because that limits the market for vinyl plastic imitation windows.

So I only have one person on the block I can teach locally, but I can connect with more people with interactive video. Because of the access to the long tail, I can be teaching lots of people who need to know that.

JU: Here’s another aspect I wanted to ask you about. When it’s hard to see how work is done, it’s hard to know what it’s like to be a person who does that kind of work. Unless it’s in the family, you won’t see it, and even then you probably won’t. You don’t have the family or community scope in which to see other kinds of work being done. And lacking that, you can get pretty far down an educational path before you realize that the path isn’t for you at all.

JL: Right. So, I’ve been focused on task-specific demonstration, but you’re talking about another thing that’s happening with video over the Internet — life blogging, or life broadcasting. I don’t think anybody’s doing that as a tradesperson. What is it like to wake up at 4:30 AM, so you can be on the site working on the windows, all day long, and then get in your pickup truck and drive back home? As you say, a lot of people could go all the way through school, and study building construction at the college level, and then take specialty courses in historic carpentry work, and by the time they’re in their early 20s they’re well-educated and have a good set of hands-on skills — and then realize that they don’t like to get up early in the morning.

JU: You’ve painted the downside, and that’s fair, people should understand that, but on the upside, the life blogging should also communicate how you feel when you drive by a house that you’ve restored, and how you know the people living there feel as a result of the work you’ve done.

JL: Absolutely. This is the heart side of the work that the industrial revolution leaves out. It boils everything down to mind and hand, and leaves out the heart. That is the heart side, when you drive by those buildings you helped restore, last month or last year or 20 years ago. It is the reason why we get up early in the morning to go to work. You know that you’re helping people who live in and use those buildings.

JU: Now there are certainly many people who will feel that these methods they get paid to practice are proprietary knowledge they wouldn’t want to reveal. My argument is that in a lot of cases, by demonstrating expertise you’ll attract more work than you lose, and that it’ll often be more interesting and rewarding work. What’s your experience?

JL: Both of those ideas do play strongly in the building trades. It’s a real tradition to keep secrets. Going back hundreds and hundreds of years, with the guild systems, there were ways to control the sharing of that kind of knowledge. And it’s still the case. Not every plasterer who can do those decorative Ionic capitals wants everybody to know exactly how they do it. But they do want everybody to know that it can be done.

You’re right, this is how artisans can do good marketing — by letting people know what is involved, by showing some of these methods, and they don’t have to give up all their secrets in order to do that. But you can help people to understand that it’s not just a machine spitting out product, it’s people making stuff with their minds and their hands and their hearts.

That’s another part of how I use Internet video. I go to some of my colleagues’ shops, as well as my own, and show what this is all about, because it is not well understood by the public. Video can get to the nuances of the heart side of this work.

JU: Also, if you can show me how to take care of some basic things for myself, maybe I can turn around and hire you to do something really special.

JL: Yeah. I’m hoping that we’re now in a post-modern cultural movement, which is what I think you’re talking about. Back in the 1970s I was already working in this realm of making fine things by hand, and there was a groundswell of interest. That’s when Alex Haley’s Roots phenomenon happened. It was important because it touched the hearts of people in America. That’s really what our restoration work is about, it’s the connnection with the people who once lived in these buildings. It wasn’t the national trust and the President telling us to save buildings, it was people who wanted to save them because their grandfathers built them.

JU: So where do you fall along the continuum of trade secrets and knowledge sharing?

JL: I’m at the extreme end of sharing everything I know. I’m a one-person microbusiness and always have been. I grew up in the midwest where sharing what you knew, and helping people, was what life was about, for everybody. That was the culture. It was a natural for me. It didn’t seem like it was worth keeping secrets.

My dad said that if you want to do well in trades, you have to let people know what you do. This is what it’s been all about for me — letting enough people know.

JU: And you have found incredible marketing power in doing what you do?

JL: Oh yeah. As I was working as a tradesperson in the 70s, and a contractor in the 80s, I made a shift because I’d been doing a good job of documenting my work. That’s something else I learned from my father. I also had the documents he created for his work, going back to the 20s, this huge information resource that I had to share.

JU: Really? What did he document?

JL: He documented his work in the arts and trades. He was a commercial artist through the 20s, then shifted into furniture and buildings at the craftsman/artisan level.

JU: And he left behind detailed logs of his practice?

JL: Yeah, detailed files of every project he ever worked on. So I learned that as part of my carpentry and woodworking, growing up in his shop, and continued it when I left his shop and came east to work on old buildings. So by the early 1980s I had this whole backlog of my own work to share. And by sharing it, I created extraordinary interest in my work. Back then it was through the print media — Fine Woodworking, Old House Journal, Fine Homebuilding — and a lot of people learned about the work I was doing to restore columns on old porches, saving windows, doing woodwork repairs. When I learned something I thought was worth sharing, I’d write an article about it. The editors loved it, and their readers did too, it was the authentic stuff, what was really going on out there in the field.

With that body of knowledge, by the late 1980s I was consulting on projects, helping people solve problems with their buildings. That meant I could be on even more projects, helping more people, and if I was writing about what I was learning, then each project was an order of magnitude larger. If I’m doing hands-on work on buildings I might only be helping a few people. If I’m consulting, it might be tens of people. If I’m writing, we figured ten or fifteen thousand people were using my articles. Each is a jump in magnitude. Then of course the Internet, where I got an early start in 1994 and 95.

JU: I’m sure a lot of folks will look at your example and feel that, since they’ll never become featured writers for magazines, there’s no point in doing this kind of sharing in a more modest way. But I think there’s benefit at any level of engagement. You’ve clearly thought through the dynamics of the communication pattern here: one-to-many, multi-level distribution. But for a lot of people, even with electronic media, that isn’t obvious. They’ll still spend a lot of time doing one-to-one communication. They’ll write something up, they’ll even take some pictures, but then they’ll just email that to somebody else.

JL: Two birds with one stone. I realized that if I wanted to accomplish the things I want to get done in my life, I have to get more than one result for every action or activity. The print — and now online — publications that I do are my marketing program, so I don’t have to spend money on advertising. And now you call, and want to talk with me, and if I was only getting one benefit from that, I wouldn’t be able to say yes. But I can already see two or three things that’ll come from talking to you, so I can say yes.

Say I’m thinking of taking on a project to help my neighbor rebuild her front steps. OK, I can earn some money. And I can take a series of photos for a print article, and that’ll bring some more income but it’ll also help with my personal goal of sharing more, and then I can easily shoot a little video that I can broadcast on the Internet and that will help an astonishing number of people. So I can’t say no, because I’m getting multiple benefits. But I would have to say no if the only benefit was getting paid to fix the steps.

JU: You’ve really thought it through.

JL: The key is that the video camera and the computer and the Internet are just tools, no different from my table saw and push stick, or my old wooden hand plane. They’re all just tools, and they’re all in the same kit for me, and I’m a tool user, and I help people with their old buildings.

How can people do this? I’ve found a balance. Instead of watching television, I make television.

JU: Well said. Thanks John!

Back in 2005 I made a screencast that showed how the convergence of GPS and online mapping enables us to collectively annotate the planet. The Tracks4Africa folks have been doing that since 2000. On this week’s Innovators show, Johann Groenewald explains how some GPS enthusiasts who are passionate about exploring, documenting, and preserving Africa’s rural and remote “eco-destinations” have created an annotated map that travelers can use and enhance. The GPS maps have evolved into a commercial product. The annotations — including photos and commentary — are available at the Padkos website, and also as a layer in Google Earth.

I found out about T4A when a reader commented on an earlier item about ground truthing and crowdsourced mapping. T4A is a wonderful demonstration of that possibility. It’s also a great story about how open data contributed by a community, and commercial data managed by a business, can thrive in a symbiotic relationship.

Social networks are Petri dishes in which we can watch memes emerge and spread by imitation. Three years ago, I traced the effect of a powerful one created by the ACLU: a fictional screencast about a dystopian future in which identity and privacy have gone horribly wrong. What I found when I looked at the data was that, although forward thinkers and actors in the realm of digital identity had only recently become aware of the ACLU’s powerful meme, it had been active for 18 months, most forcefully at the beginning of that span.

In that case the meme was an idea which, because it was neatly represented by an URL, could be tracked by using services like del.icio.us and bloglines as proxies for the attention that flows to an URL.

In other cases, a meme is best represented by a word — often, a neologism. There’s no canonical URL to track, but there are other ways to monitor the spread of the meme. Search engines, for example. In the case of screencast, for example, there were 200 Google hits for screencast in April 2005, 60,000 in June 2005, 325,000 in November 2005, and there are 3,000,000 today.

I’m always on the lookout for new ways to make these kinds of observations. Yesterday I encountered Pecha Kucha for the first time. It has a Wikipedia page, so the revision log there is one source of insight.

Since I encountered the phrase on Twitter, I tried a different strategy. While relaying a definition of the term, I used the tag #pechakucha. I realized that these Twitter “hashtags” are another proxy for linguistic memeflow, so I plotted occurrences of the tag on a Timeline. There were only 16 occurrences as of yesterday, so it’s a little sparse, but the same approach can be used to provide insight into the birth and evolution of any Twitter hashtag.

Here’s a Timeline for #quotes. It started on April 6, 2008, when Leonardo Souza quoth: “#quotes ‘This story, like any story worth telling, is about a girl’”, which evidently is from Spider-Man.

One of the nice features of Timeline, one of David Huynh’s many ingenious creations, is this condensed summary of activity:

Here we can see sporadic use of #quotes from April to the first of September, and then much heavier use. What happened on September 1? Tim O’Reilly, a powerful meme transmitter and amplifier, quoth: “‘The skill of writing is to create a context in which other people can think.’ Edwin Schlossberg. #quotes”

In Timeline we can watch other Twitter users immediately begin to use and transmit the #quotes meme:

This method will be most useful for watching Twitter hashtags that haven’t yet been widely adopted. If you apply it to, say, #ike you’ll run into two problems. First, Twitter’s API caps the number of search results you can retrieve, so in the case of #ike we can only see back as far as September 18. Second, Timeline struggles to display thousands of events.

These are general problems. No matter which Petri dish we observe — del.icio.us tagspace, the blogosphere, Twitter — our ability to watch memes evolve is limited by the amount of data we can gather, and also by our ability to effectively visualize what data we can gather. I expect both constraints to gradually erode. As they do, this game of meme tracking will become even more interesting.

On this week’s Innovators show I got together with David Huynh, whose work with MIT’s Project SIMILE wowed me last year. David recently joined Metaweb. His first project there, Parallax, creates a new way to browse Freebase, the structured wiki that also wowed me earlier last year.

What struck me about SIMILE and Freebase was the way in which both projects cut through the fog of semantic web technologies and terminologies and got down to brass tacks: How do you get people to want to contribute structured knowledge? You have to appeal to natural instincts and, as I explored in my writeups of both projects, they do.

In the case of SIMILE, when somebody sees an interactive, data-rich Exhibit, the natural response is: “Cool! How do I get one of those for myself?” The answer is: “Pretty straightforwardly, by cloning the example you see and then massaging your data into an easily-written format.” The hidden agenda is: “You may not know or care, but once your data is in that format, it can federate.”

In the case of Freebase, the reciprocal nature of data relationships creates a kind of social glue. People who contribute to Wikipedia, or Freebase, or to the web in general, hope those contributions will be read and appreciated. The genius of Freebase is that, when I define a relationship between one of my records and one of yours, both come into view. I may notice something missing from yours and add it. You’ll in turn notice my contribution and may reciprocate. As we advance our own interests, we naturally find ourselves advancing others too.

Parallax, as you can see in the screencast David has embedded on the project’s home page, is a new way to explore Freebase. In the standard interface, you have to do some digging to trace connections to related sets of information. Or you might even have to drop into the API to do programmatic search. Parallax brings those relationships to the surface. One of the examples in the screencast asks and answers the question:

What were the schools attended by children of Republican presidents?

This boils down to a query that finds a set of Presidents, then a set of Republican Presidents, then a set of children, then a set of schools. With Parallax you perform that query interactively, by following links that surface as you pivot from set to set.

This is a great way to browse the structured corpus, but how does it motivate people to provide more and better contributions? Here’s one way: By exposing the completeness — or incompleteness — of sets viewed in relationship to one another.

As I was browsing the set of U.S. Presidents, for example, Parallax surfaced the connection Works written. But there wasn’t much there: Jefferson and Adams for the Declaration of Independence, Madison for the Federalist Papers, and a few recent books by Jimmy Carter and Bill Clinton.

So I created an item in Freebase for Richard Nixon’s Six Crises, linked it to Nixon’s record in Freebase, and went back to Parallax. Sure enough, there were Nixon and Six Crises. The set of books written by U.S. Presidents had increased by one. Along the way, a new book record was created in Freebase, and an existing person record was enhanced.

As I mentioned to David in our interview, this strikes me as a really powerful way to motivate contributors. In Wikipedia there’s no easy way to observe an implicit set. You can only look at explicit sets, like the lists of Presidential ages and religious affiliations. Somebody might decide to make an analogous list of Presidential books, but that would be much more likely to happen if the partial list that’s already implicitly in Wikipedia could be brought into focus.

When shown partial patterns, people naturally want to complete them. Parallax looks like a great way to tap into that instinctive urge.

The Conversations Network is embarking on a new phase in which it will expand its ambition to capture, publish, and curate spoken-word audio from a wide range of sources. One of the challenges will be to help more people effectively capture audio to a reasonable standard of quality. Dan Bricklin, my guest for this week’s ITConversations show, has ascended that learning curve in recent years. In this conversation he explains why he’s become interested in audio recording, and what he has learned about equipment, and techniques, which can be readily transferred to individuals and organizations wanting to make decent recordings of their own events.

When I embarked on my personal audio adventure a few years ago, I naively thought that our fancy new digital technologies would make the whole process very simple. Boy, was I wrong about that. Yes, we’ve made digital photography accessible to the masses, but there was vast demand for enabling the so-called Happy Snapper to point, shoot, and take a decent photo. There’s been comparatively little demand for enabling the Happy Caster to plunk down a microphone, punch record, and capture a decent sound track.

Over the last few years I’ve slowly and painfully assimilated just a fraction of the audio lore possessed by domain experts like the Conversations Network’s founder Doug Kaye, and its senior audio engineer Paul Figgiani. So it was refreshing to hear from Dan Bricklin that it has also been a struggle for him to become competent in this domain.

I guess the demand for point-and-shoot photography will always outstrip, by orders of magnitude, the demand for plunk-and-punch audio recording. But the latter demand is growing, and in this conversation we speculate a bit on what the Happy Caster solution might be.

Mainly, though, Dan focuses on two things. First, the new opportunity to capture spoken-word events that would otherwise be lost, and publish them for audiences that didn’t attend, or couldn’t have attended, in person.

Second, the minimal setup that will enable folks who are not audio experts to accomplish that capture and publication.


PS: A bit of backstory on this recording illustrates some of the challenges of the audio domain. In my FAQ for interviewees, I invite remote interviewees to record themselves locally, then send me the track which I combine with my own locally-recorded track. Why? If you’re sending voice over the network, whether it’s POTS (plain old telephone service) or Skype, there’s a lot that can and often does go wrong. Eliminate the network and you avoid all those problems.

In principle, combining local tracks recorded separately is a great solution. In practice, it has almost never worked out, and this case was no exception.

Usually the problem is that interviewees lack the gear or knowledge required to make a decent local track. Attempts to record directly into a computer always end badly. Most people don’t own standalone digital audio recorders. In one case, a musician who routinely records his music through a mixer nevertheless produced an unusable track because he’s not used to recording his voice and overshot the limits.

In this case, Dan was quite capable of making a good recording, and he did, but things went wrong on my end. What Dan recorded was an MP3 file. What I was expecting was a WAV file, because I was going to edit the combined recording and it’s dicey to uncompress an MP3, edit, and then recompress.

Now, Dan had recorded the MP3 at a bit rate — 192kbps — that he judged would be high enough to survive an edit. But would our discriminating audio engineer Paul Figgiani agree? We weren’t sure, so I sent Paul samples of Dan’s MP3 track and the WAV file I made from the telephone track I’d recorded using the Telos. Paul’s verdict: “I think we can make the 192 kbps mp3 version work. The bit rate is high enough … lets go with it.”

So far, so good. But when I loaded up my local track and Dan’s remote track into Audition, things didn’t line up. My WAV track was slightly longer (or shorter, I can’t remember) than Dan’s MP3 track. The difference was only about 1.5 seconds over an hour-long recording, but still, it had to be dealt with.

Audition has a time-stretch feature that can be used to solve this problem. And I could swear that I’ve used it successfully before in these circumstances. But this time, I couldn’t make it work. Every time I tried to stretch the shorter clip, it snapped back to its original position. I fiddled with every approach I could think of, or could discover by searching, and finally threw up my hands and just used the original recording that had both halves of the conversation in sync. If this Audition behaviour rings a bell with anyone, I’d love to know what went wrong and how to avoid it next time.

The moral, anyway, is that if a reasonably technical guy like me is struggling to keep his head above water in this domain, it’s clear that non-geeky civilians will just drown. I’m quite curious to know when, or perhaps whether, those civilians will constitute a market that technology providers want to serve.

I’ve cobbled together a way to turn an Internet data feed into a video crawl that can run on my local public access cable TV channel. Before explaining how, I need to explain why. Here’s the short answer: As much as I want everyone to use the Internet for all it’s worth, most people don’t yet.

A couple of years ago, I was campaigning in my community to open up the parent portal into PowerSchool, a student information system that was being used internally by teachers and administrators but wasn’t available to parents via the Internet. At one point I made a screencast that addressed the perceived risks, and showed the compelling benefits, of opening up the portal. The screencast was published on the Internet, available to the whole world, and the whole world includes Keene NH, so that ought to be a good way to bring my message to the community, right?

Wrong. Nobody watched it.

A while later, it hit me. There still aren’t many folks here who are inclined to receive a message like that from InfoWorld.com, or from YouTube, or from any other Internet destination I might use. But there are significant numbers who tune into the local public access station. Why not show the screencast there?

So I dubbed it onto a MiniDV tape, took it down to the station, and gave it to the executive producer.

Him: What’s this?

Me: A demo and discussion of the PowerSchool software. Will you run it?

Him: Sure.

And lo, a couple of weeks later, I heard from the assistant superintendant of schools. He thanked me for applying the external pressure that they’d been needing in order to break through an internal logjam, and he invited me into the beta program. Now, two years later, it’s fully deployed and making a big difference.

Meanwhile, I’ve been working on a community information project that’s all about feeds and syndication. But slow learner that I am, I continue to invite people to use Internet feeds and Internet syndication. And people continue to mostly decline the invitation.

For example, I’ve been working on calendar syndication. The syndication flows two ways. First, inward. The service pulls events from various local websites, and I’m working with the proprietors of those sites to clarify why and and to publish true calendar feeds.

Second, it syndicates outward. With a JavaScript call, you can include the day’s events in another website, like CitizenKeene or Cheshire TV.

But this is all still just Internet stuff. And as we’ve seen, the community doesn’t (yet) tune into the Internet for local information. It does tune into public access cable TV.

So why can’t Internet data feeds show up there?

Well, of course, they can. Here’s a prototype video crawl (the link goes to an animated gif, just for convenience) made from yesterday’s combined calendar. We’ll need to work out the details of format and workflow, but I think it’ll work. And it seems like a great way to connect two worlds.

Calendars are just part of the story. Consider, for example, the public library’s RSS feeds announcing new books and DVDs. I’m one of probably a handful of subscribers to those feeds. Now imagine that the feeds showed up as a video crawl on TV. I bet a lot more folks would find out about new books and DVDs. And maybe, just maybe, the reception of that feed via TV would lead to discovery and use of the more convenient and powerful Internet feed.

We’ll see. Meanwhile, below the fold, I describe the method I’ve come up with to do this. The paint isn’t dry, and I’ll be very interested in comments and suggestions.

… the fold …

Our public access TV station, as may be typical (though I dunno), is a mostly Windows-based operation. As is surely typical, there’s little money to spend, either on people to produce these feeds interactively or on software to produce them automatically. So the requirements seem to be:

  1. Windows-based
  2. Cheap or free
  3. Fully automatable

My first idea was to leverage SMIL. I knew it would be easy and free to transform a feed into markup that can be played by Real, or QuickTime, or Windows Media. And I hoped it would also be easy and free to render that markup into a video format. But there I ran aground. If there’s a free, or at least cheap, SMIL renderer that can be scheduled to run automatically, I’d like to know about it, because that’d probably be the ideal solution. But I haven’t found one.

The next idea was to produce the animation frame by frame. And that’s what I’m actually doing for now. It sounded a lot harder than it turned out to be. After installing the Python Imaging Library, it was possible to write this very concise frame generator:

import Image, ImageFont, ImageDraw

s = """
EVENTS FOR WEDS JUNE 30 FROM ELMCITY.INFO (HTTP://ELMCITY.INFO/EVENTS)

06:00 AM lap swim  (ymca)
07:00 AM Cheshire Walkers: Indoor Walking Program (eventful: Keene Recreation Center)
...
Trainers Academy - Level II (eventful: Monadnock Humane Society)
TOR 7pm (swamp bats)
"""

lines = s.split('\n')

def frame(index,top):
  image = Image.new('RGB',(720,480),(0,0,0))
  draw = ImageDraw.Draw(image)
  font = ImageFont.truetype("arial.ttf", 18)
  for line in lines:
    draw.text((10, top), line, (255,255,255), font=font)
    top += 25
  image.save('cal%0.3d.gif' % index)

top = 450
for index in range(len(lines)*8):
  print index,top
  frame(index,top)
  top -= 4

This yields a sequence like cal000.gif…calnnn.gif.

I wasn’t sure how to make a video directly from that sequence, but I knew that ImageMagick could turn it into an animated GIF, like so:

convert -adjoin cal???.gif animation.gif

So I did that, and went looking for ways to convert that into a video format. ffmpeg will do it, but the results weren’t pretty, and ffmpeg can be a dicey thing to ask people to install. QuickTime, I found, did a better job. You’d need QuickTime Pro for Windows, which isn’t free, but $30 won’t break the bank.

Now the question became: How to automate the QuickTime conversion? I installed the QuickTime SDK, went looking for examples, and found just what the doctor ordered. Thanks, Luc-Eric!

Luc-Eric’s JavaScript solution, which runs on the Windows command line courtesy of the Windows Script Host, turned out to provide a double benefit. In addition to showing how to automate the conversion of a batch of GIFs to an AVI, it showed me that there was, in fact, no need to produce an intermediate animated GIF. You can just point QuickTime at the sequence in the same way that you can point ImageMagick at the sequence. I hadn’t known that! So ImageMagick dropped out of the toolchain, and there was one less component to require the station to install.

So that’s where things stand. I’m pretty sure there’s a better way to meet the requirements, and I’ll be delighted to discover it. But maybe there isn’t, in which case it looks like this will work.

Either way, it’s the end result that will — or maybe won’t — matter. We’ll do the experiment, and we’ll find out.

On this week’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’s vision for mechanized research. I’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’ll be able to automate certain aspects of research.

It reminds me of George Hripcsak’s effort to mechanize the interpretation of electronic health records. In general, we’re collecting way more data than the collectors can analyze. Crowdsourcing is one solution to this problem. Mechanization is another. We’ll need both.

The other surprise was hearing about Drexel’s fairly aggressive use of Second Life. I’ve been an amused skeptic on that front, but Jean-Claude’s passionate advocacy requires me to rethink that stance.

What didn’t surprise me, but might well surprise tuition-paying parents of Drexel students, was Jean-Claude’s attitude toward the classroom. He mostly doesn’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.

Now admittedly, a chemistry class doesn’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 — though he doesn’t require their use — may outperform real ones.

I remain skeptical on that point, but I’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.

I’m loving YouTube’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’ll have some idea how much fun.

But from Phil’s perspective and mine, this is a seriously useful tool as well. He’s planning to annotate screencasts with it. And I found a great use for it here.

That short video features Bob Coffey, the senior climber at our YMCA. When I made and posted the video, I wasn’t quite sure how senior Bob was so I didn’t say. Yesterday I remembered to ask. Turns out he is 79.

It’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 — it’s too much overhead, and unless there’s a compelling need you’re just not going to bother.

Of course you can update the textual wrapper, and alter the title or description. But in this case, I didn’t want to that. The information is much more effective when inserted midstream. After he’s scampered halfway up the wall, the popup annotation saying “Bob Coffey is 79 years old” makes the point more subtly and powerfully.

The point, by the way, is that we can do more, physically, at all ages, than we think. I’ve known a few people over the years who have redefined what’s possible, and it’s always an inspiring thing to see.

This week’s Perspectives is a two-parter: an interview and companion screencast on the topic of cluster computing in the classroom. The interview is with Kyril Faenov, the General Manager of the Windows HPC (high performance computing) unit, and the screencast is with Rich Ciapala, a program manager for Microsoft HPC++ Labs.

The project demonstrated in the screencast, and discussed in the interview, is called CompFin Lab. It’s a system that enables professors to in turn enable their students to run computationally expensive financial models on large quantities of data. From the student’s perspective, you go to a SharePoint server, select a computational model, pick a basket of stocks, and run the model. Behind the scenes the task is partitioned and sprayed across a cluster of computers, then the results are gathered and presented in an Excel spreadsheet.

From the professor’s point of view, some .NET programming is required. But a framework abstracts the mechanics of dealing with the cluster, so the professor can focus on the logic of the model itself.

There are couple of key points about the evolution of high-performance computing that I want to highlight here. First, there’s what Kyril calls “the gravitational pull of data.” Increasingly, people and organizations are building vast repositories of data that other people and organizations will want to analyze in computationally expensive ways. It’s great to have access to a compute cluster in the cloud that can do the heavy lifting, but when datasets get really big you get bottlenecked trying to send the data to where the code runs. At a certain point you’d rather send the code to where the data lives.

A second and related point is that in our current model for large-scale cloud-based computing, there are only a handful of what I call intergalactic clusters — namely, those operated by Google, Yahoo, Amazon, and Microsoft. These are one-of-a-kind behemoths. You can’t replicate one of them locally and apply it to your terabytes of data. So as Kyril and his team build out their cloud-based HPC services, they’re working to ensure the services can be replicated locally.

Maybe the most optimal thing is for you to stand up a 1000-node cluster with each node having a terabyte of disk. We want to enable that. We want to be able to tell our customers: Here’s how we run this large-scale data-driven HPC applications, and here’s how, within a day or two, you can stand up one of these yourself.

The idea is that if you build one of those for your own terabyte trove of astronomical or climatalogical data, you can run your own computations against that data, and you can also share that capability with other people and organizations who want to run their code against your data.

Today I’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’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 the blog provides a partial (but substantial) text transcription in order to make these conversations accessible to folks who don’t listen to podcasts, and also to expose them to the Net’s ecosystem of search, linking, and aggregation. Where appropriate, I’ll also use screencasts to show software in action.

Perspectives runs on the same publishing platform that supports Channel 10 (for enthusiasts), Channel 8 (for students), TechNet Edge (for IT pros), and VisitMIX (for Web designers and developers). (Channel 9, the original site, will migrate to this platform too.) Perspectives intersects with the interests of all these sites, but it doesn’t really belong in any of them, so we’ve created an independent home for it. Thanks to the EvNet team, especially Duncan Mackenzie, David Shadle, and Jeff Sandquist, for making that happen.

The first episode, with Henrik Nielsen and Tandy Trower, explores the Microsoft Robotics initiative. We discuss why robotics is — as futurist Paul Saffo believes — 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.

Reacting to a Washington Post story on crime in Second Life, Gardner Campbell is troubled by calls for increased surveillance in virtual worlds. But while the notion of being watched by the authorities is as creepy in cyberspace as it is in the real world, we pay less attention to another kind of surveillance. Whether I am piloting my avatar through Second Life, or walking around in my hometown, I am myself a watcher who can, increasingly, record what I see. Whether the authorities surveil or not, we’re doing it to one another.

The funniest screencast I ever made was this snarky 3-minute video report on an IBM press conference I attended in Second Life. It’s a side-splitter, really, you should watch it, and yet it makes me slightly uncomfortable. Anyone in Second Life can, at any time, switch on a virtual movie camera and record everything that’s happening. And there’s no indication of that, nobody sees a camera.

As a teenager, I loved taking candid photos with my dad’s 35mm Exacta. At one point he told me you can get a side-looking lens so people won’t know they’re being photographed. At that point I started to think about the aboriginal notion that a photograph can steal a bit your soul. I’ve been conflicted about candid photography ever since.

Last week I was in the Alewife station on Boston’s Red Line, and saw something I’ve always been curious about. The escalator was completely disassembled for repair. Here’s what the steps look like:

And here’s a worker replacing the rollers on the giant bicycle chain that drives the thing:

As I was taking this shot, one of the workers joked about how I might be a spy for the MBTA, checking up on their work. He was mostly, but I think not entirely, kidding. It was a slightly uncomfortable moment.

Collectively, all of us now wield immense powers of surveillance. Whether the subjects of that surveillance are avatars or real people is beside the point. It isn’t necessarily the authorities who are doing the surveillance. We are doing it to one another. It happens every time somebody is tagged in a photo on Facebook or Flickr. It gets easier all the time.

Is this a good thing or bad thing? A bit of both, I think, hence my inner conflict, and my eternal fascination with David Brin’s The Transparent Society. Who will watch the watchers? The question becomes very different when we are all watchers, recorders, and publishers.

In a tech industry that is obsessively if not pathologically dedicated to the Next Big New Thing, it’s hard to make the case for refining, reinterpreting, and consolidating what we already have. Bill Buxton does so eloquently in a recent BusinessWeek column, The Long Nose of Innovation, which I found by way of Kevin Schofield. You may recall Bill’s name from this introduction to our podcast interview about his book, Sketching User Experiences. In the BusinessWeek column Bill writes:

The heart of the innovation process has to do with prospecting, mining, refining, and goldsmithing. Knowing how and where to look and recognizing gold when you find it is just the start. The path from staking a claim to piling up gold bars is a long and arduous one.

That resonates powerfully with me. I’ve always been a prospecter, miner, refiner, and goldsmith who finds new value in mature technologies like NNTP conferencing, HTTP GET, and screencasting. Bill goes on to say:

Any technology that is going to have significant impact over the next 10 years is already at least 10 years old.

We might quibble. Was the web 10 years old in 1997? Yes and no. But I’ll grant poetic license because I think the statement is mostly true, and I’ve been wrestling with some of the consequences that flow from it.

Here’s one. Advocates for powerful ideas and methods that are long extant but have yet to fully bear fruit may tend to become nostalgic, appear misguided, act bitter, lose focus. These are counterproductive behaviors. So how do you avoid them? How do you stay the course, keep your eye on the ball, move forward, remain excited, and find ways to explore the same old things in new and different ways?

One answer, I think, is to keep engaging with different people in different contexts. Yesterday I was showing and discussing some things that I’ve known for so long, and documented so extensively, that I worried about sounding like a broken record. But in that context it was fresh information, a new perspective. People got excited. And their excitement rekindled my passion.

A number of times, recently, I’ve made an assertion with which nobody has disagreed. The assertion is that if we invented no new information technologies for the next five or ten years, we could nevertheless move the ball significantly forward by consolidating gains that we should have made by now, but haven’t. My argument is that what people don’t know and seemingly cannot learn about computers, software, and information systems represents what Amory Lovins, speaking in terms of energy, calls negawatts, a resource whose value springs not from new production but from the rethinking and improved utilization of existing resources.

As the software pendulum swings back and forth, we alternately hail the simplicity of interfaces that do very little but are easily learned (Google Docs), and the power of interfaces that do much more but are much harder to master (Microsoft Office). Arguments for the former presume that the latter are doomed because most people never learn to use most of their power. That’s true. But does that mean that most people will never be able to make better use of that power? If so, if we assume that people are simply uneducable in this regard, then it’s a problem across the board. Because even the simplest online application can do much more than people know or appreciate.

For example, del.icio.us looks to be bare-bones simple, and in a way it is, but to use it effectively you have to master some strategies that today elude almost everybody. In a comment on that entry, Tessa Lau writes:

In order to accomplish your #1 and #2 above, people need to both realize that they can do that database query, and that they can refer to the results using a stable URL. I’m coming to believe that both those operations are still way beyond the capabilities of mainstream web users.

Here’s a related example from Gmail. Recently, the application’s URLs became more RESTful. A message URL now looks like this: https://mail.google.com/mail/#inbox/116edd484f4ca72e. Why? So that you can bookmark it, exchange it, compose it with other things. Almost nobody will, of course. But are these operations truly beyond the capabilities of mainstream web users? Or are they just skills that aren’t easily transmissible in the current environment, but might be in a differently-designed environment?

Tessa Lau’s CoScripter is, of course, a beautiful example of such a differently-designed environment. It enables people to share experiential knowledge about the use of software in a relatively frictionless way. In the realm of screencasting, Jing is another way to reduce the friction of sharing such knowledge.

My point holds no matter where the pendulum happens to be at the moment. Across the spectrum of application styles, software can do a better or worse job of augmenting human capability. Simplification is important and useful, but it’s not all that matters. Mastery of the more complex matters too. And people can handle that.

As Lucas Gonze notes here, reading and writing musical notation was once a much more common skill than it is today. The 19th-century parlour music that he’s recovering and bringing back to life was, Wikipedia says, “intended to be performed in the parlours of middle class homes by amateur singers and pianists.” Were those amateur singers and pianists more capable than their counterparts today? No, they were just embedded in a culture that was attuned to a certain sort of peer production.

The peer production of our era is based increasingly on software applications and online resources. If we aspire only to the common denominator, and assume that no forms of mastery will matter, then we do ourselves a great disservice. People can attain mastery in an environment that encourages it. Creating that environment would in fact be a major innovation, albeit more social than technical.

Back in July I interviewed Bill Crow about HD Photo, the image format that’s being considered for standardization as JPEG XR. One of the advantages of this new format, as Bill explained on his blog, is that it can preserve data that would normally be lost when a camera decides what color values to include in a photo. Now, there aren’t yet any cameras that implement HD Photo, but the idea is that when they arrive, you’ll get the the best of both worlds. As a JPEG camera does today, an HD Photo camera will produce an image that distributes color values as best it can. But unlike a JPEG camera, an HD Photo camera won’t throw away all the values it doesn’t include. More information will be preserved in the image, and will be recoverable in the editing process.

Bill demonstrates and explains that editing process in this 5-minute screencast (Silverlight, Flash). The editing application is nothing fancier than Windows Live Photo Gallery, and that’s an important point. Most people, myself included, are not wizards in the realm of color theory and advanced image manipulation. We’re happy snappers. We’d just like to be able to move a slider and pull in some information that the camera didn’t assign to the visible range but that we want to include. This screencast shows how easy that will be.

In response to Josh Catone’s observation that del.icio.us has failed to go mainstream, Richard Ziade offers three hypotheses:

  1. Nobody really needs a way to centrally store their bookmarks
  2. Most people don’t understand what del.icio.us does
  3. People don’t feel compelled to share del.icio.us with others

The winning explanation, I am sure, is #2. Nobody understands what del.icio.us does. I am constantly explaining the nature and value of its social information management capabilities. Just this week, in various meetings on Microsoft’s Redmond campus, I found myself reiterating four of my major uses of del.icio.us.

1. Answering a question with an URL.

I’m often asked questions like “What have you written about how to do screencasting?” I answer with an URL:

http://del.icio.us/judell/screencasting+howto

This not only wildly efficient, it’s future-proofed. If I hand you that URL today, then later add new items to the list, you’ll pick them up if you visit the URL in the future.

2. Del.icio.us as a database.

The URL shown above is an example of the pattern I discussed here. It’s actually a query: select all bookmarks where one tag is screencasting and another tag is howto. If you understand that such queries are possible, judicious assignment of tags becomes a data management discipline.

3. Collaborative list curation.

As discussed here:

Recently I began keeping track of interesting public data sources using the del.icio.us tag judell/publicdata, and invited others to do the same using their own del.icio.us accounts. That method sets up an interesting pattern of collaboration whereby all contributions flow up to the global bucket, tag/publicdata, but individual contributors can curate subsets of that collection according to their own interests.

It’s a powerful pattern for loosely-coupled collaborative list-making.

4. Feedback monitoring.

When I’m visiting an URL, I often use my del.icio.us citations bookmarklet (available here) to see who has bookmarked the URL, which quotation and tags were used to describe it, and what the history of attention to that URL has been over time.

Is it del.icio.us’ fault that, even in the geek subculture where the service is mainly used, so few people seem to discover and exploit these patterns? I wonder about this all the time, and not just with respect to del.icio.us. True, all of our information management tools could do a better job making features more easily discoverable. But to grok the patterns and apply the strategies I’m talking about, it’s not enough to know that features exist. You need to develop a sense of how those features can be used in support of certain principles of personal and social information management. It would be great if we could create software that naturally leads us to the discovery of those principles. But that’s a tall order. While we’re waiting, I think we should admit that these principles ought to be part of what you learn in order to become a digitally literate 21st-century citizen.

In this week’s ITConversations show with Matt MacLaurin we discuss Boku, a programming environment in which kids can create their own games.

What inspired Matt to create Boku was the following observation:

If I’m a kid today, looking at the computer, am I going to see it as an art tool, as something that’s there for creative expression? Or am I going to see it as a content channel, really just a television with some interactivity and a whole lot of channels?

He contrasts that with his own early experience of computers:

If you turn on a Commodore Pet, or an Apple II, the first thing you get is the Basic prompt, and it’s really just saying that the computer is a blank slate, and it’s waiting for you to create something in code. That idea that the computer screen is a surface you can paint your ideas on, and then have those ideas come to life in a magical way, that’s what I wanted to recapture.

True, the pendulum is swinging back toward an architecture of participation. Text, audio, and video artifacts are pouring onto the net. But, says Matt, “you can express creative ideas in programming that you can’t really express in any other way.”

Exploring ideas in the realms of gaming and simulation should be as accessible, Matt thinks, as blogging and podcasting have become. So he’s created, in Boku, a programming environment where programs always run, are never incorrect, and are developed by the accretion of actors, of objects, and of rules that govern their interactions.

The roots go back to Logo and Smalltalk, but there’s also a very modern aspect: the system is decentralized and loosely-coupled, behavior is emergent. The robotics examples that Henryk Nielsen demonstrates in this screencast are spiritual cousins to Boku: loosely-coupled systems of independent, rule-governed actors.

If Boku teaches kids to think in these terms, I think they’ll be well prepared not only to create their own interesting games and simulations, but also to negotiate the emerging ecosystem of online services. With the Commodore Pet and the Apple II you were the ruler of the universe. But no more. As programmers who act in a world of loosely-coupled services, we can no longer aspire to total control. Instead we need to learn how to be effective consumers, producers, and — above all — interactive peers.

Boku is also, by the way, fundamentally social.

If you make something that’s cool, not a 4-hour game but just a 15-second interesting visual phenomenon, you give it a name and maybe a tag, and you hit a button, and it goes up into the cloud so other people can pull it down and take it apart. You can’t download a game without getting the source, Boku doesn’t really distinguish between the two. We consider authoring and tweaking to be part of the play.

Matt recalls a conference at which Ray Bradbury spoke, and said that while he was impressed with all the tech, the real problem lay elsewhere.

He held up a blank sheet of paper. What do you do when you’re faced with a blank sheet of paper, and you don’t have an idea? How do you come up with that idea? How do you express it? Our shorthand for that is the blank page problem, and we think about it all the time for Boku. The community is the answer. If you’re stuck, go and surf what others have uploaded today. If you can’t figure out how to make the motorcycle jump over the canyon, go and browse motorcycle and jump, and look, someone else did it. So you pull it down, and of course the code’s built in. It’s obvious I guess, but the Internet as an infrastructure for creative communities to come together — that’s really what it’s all about.

In case you can’t tell, I hugely enjoyed this interview. I hope it will be heard not only by those who care specifically about game programming but also by those broadly interested in creativity, education, and commons-based peer production.

It’s been a couple of years since Ray Ozzie kicked off the Simple Sharing Extensions (SSE) initiative on his blog. It’s not so easy, by the way, to know exactly how many years it’s been. If you search for sse ray ozzie you’ll land on this page which is dated Nov 20, but no year is mentioned. I had to browse around in the archive to remind myself it was November 2005. Blogging platforms — and I’m not singling out Live Spaces here, they’re all in the same boat — aren’t good places for documents that turn out to have historical significance. Of course you never know what will turn out to be significant. That’s why I’ve been evangelizing the idea of a hosted lifebits service that will keep our stuff intact, and available for reliable long-term citation. But, I digress.

SSE was updated this week, and renamed as FeedSync. Over on Channel 9 I published a podcast and a screencast (Silverlight, Flash) with Steven Lees, one of the folks working on FeedSync. The screencast walks through an example (available at CodePlex) in which two simple list-making applications, running on two different machines, synchronize the insertion and deletion of items. In this case they talk through a relay service, but that’s not required. FeedSync is agnostic to topology and transport, specifying only how to represent updates, deletions, and conflicts in RSS and Atom feeds, and how to process those events into a merged result.

The merge algorithm described in the spec isn’t something most of us are going to be able to bang out quickly and reliably, so I’ll be on the lookout for implentations that package up the logic. One of those is the Microsoft Sync Framework, which has just updated the Microsoft.Synchronization.Sse namespace to Microsoft.Synchronization.FeedSync. I haven’t found good examples for using it, so if you can point me to some I’d appreciate that. Similarly I’m curious to know about other implementations of the synchronization logic for other programming environments. Or, equally interesting, implementations delivered as cloud services.

Although FeedSync is capable of full-blown multi-master synchronization, there are all kinds of interesting uses, including simple one-way uses. Consider, for example, how RSS typically has no memory. Most blogs publish items into a rolling window. If you subscribe after items have scrolled out of view, you can’t syndicate them. A FeedSync implementation could enable you synchronize a whole feed when you first subscribe, then update items moving forward. It could also enable the feed provider to delete items, which you might not want if the items are blog postings, but would want if they’re calendar items representing cancelled events.

RSS took off in part because it was human-readable and -writeable. To this day, you can get away with doing simple things “by hand”. With FeedSync, the RSS and Atom formats are still pretty easy to read and write. But nobody is going to do the rule-governed transformations by hand. For that we’ll need an ecosystem of libraries and services. I hope they’ll emerge because FeedSync is an extremely general mechanism that could be applied in all sorts of useful ways.