ETech: Ray Ozzie

Below is my first draft transcript of Ray Ozzie’s session at ETech, “Simple Bridge Building”. My apologies to Ray for any typos, but the session was so amazing I thought everyone should see it ASAP.

Ray Ozzie at ETech, March 7 2005

If you saw what we were working on last fall with tsimple sharing extensions to RSS, you know that I’m pumped up with the potential for RSS to be the DNA for wiring the web. RSS could be connective tissue between web and desktop.

RSS and mashups are building composite applications. Vendors such as Microsoft have put huge investments into tools for professional programmers to build composite apps. Unix pipe programmers don’t think of themselves as weaving together a composite app but that’s what they’re doing. The clipboard is how desktop users create composite apps, it’s the standard bus for data.

I see a lot of largely siloed sites. Each has tremendous power. Might have ability to do al oto f data interhcnage on the inside. We’ve defined small XML schemas, microformats that represent the data elements that we might be able to exchange between sites. Where is the clipboard of the web. What is the thing that lets people get information from one site, one web app to another as easily as it’s possible to do today with GUI-based apps.

A few months ago I had an idea: why isn’t the clipboard for the web the clipboard. If users are already deeply familiar with how to weave together desktop apps, why can’t we continue on this paradigm to the web. I have a concept development team that works for me. I went to them a month ago, gave them rough concepts, and gave them challenge: how can we jam things together in a browser?

What we’ve come up with, what I’m going to show you today, is a simple concept. It’s some script code, some stnadard data formats. It’s a gift to the web. if you walk out here when I’m done and you say “well, that wasn’t a very big deal” I will have accomplished my mission. Wouldn’t it be cool if we had a simple paradign that was scalable?

Series of demos. You’ll see a bunch of web sites that you’re familiar with. We’ve screenscraped them, hacked them so static pages have our little script on theme. For the most part it’s mostly fake but for the little control. There are some screencasts on my blog that do the things I’ll show in the demo.

The control is “Live Clipboard”. It simulates something that looks like a button control, works as you would think. Right-click, can copy, go down to another thing, and paste. Can copy and paste things. hCal, contacts, microformats. That’s the basic paradigm from which I’m going to show you these demos.

This is implementing a clipboard on the clipboard. Within CFText, we’ve put a more structured data format. The control is explained in the website. Securely, this is a secure edit control on top of a bitmap. It’s the user’s text-input menut hat you see when you right-click. Really using the browser’s cut and paste.

This is what we’re putting on the clipboard. XML schema. Couple of renderings: hCal, iCal, just like the normal Windows clipboard. Now show you some demo concepts. First, the objects–how this might be used by user to copy structured information from one place to another in a non-geeky fashion: no URLs, no saving things to the desktop.

Scraped eventful web site. One click to copy event. Move to Windows Live Mail calendar, paste in, and it works. [audience whoops] Really simple stuff, and that’s the point. Structured data bridging from website to website.

Now, how to bridge world of web and PC. Implemented roaming service that lets you maintain persistenet clipboard across sessions. Spies on clipboard, and if it sees microformats then it augments them with other formats that PC formats might find interesting.

Just using standard outlook, no addins, can paste an event and up comes a calendar entry. This is because the applet saw the special clipboard format and augmented it with Windows file.

Going other direction, it’s a clipbook. I have four entries, a couple of contacts and a couple of credit card data structures. Going to another simulated web site, might have an e-commerce form. Will now copy my home address from here to there. Fills out the form. I can do the same thing with the billing address. Copy this credit card, paste it over here. Fairly easy, lightweight way, to get the structured information back and forth.

Everything so far is just bridging data by value from one place to another, to and from the PC. Now take it up a level, wiring the web. Putting additional information in the clipboard formats about feeds, we can do interesting things.

Three kinds of blog aggregators: PC-based like Newsgator, web-based aggregators such as Live.com or Bloglines, and the browser. We’re all disappointed that the RSS technology is still leading-edge restricted to technologists, has not blown out to the masses like the browser itself has. Mozilla and IE7 have said “we could put it out to the masses by putting feed reading into the browser”. I don’t know about you, but I think there will continue to be demand for aggregators outside of the browser.

On this page we have a complete mess today on the web because there’s no stnadard UI for publishing and subscribing to feeds. Every blogger has to figure out which dominant aggregator should I support? (column of 10 icons for subscribing to 10 different aggregators)

Standard feed icon next to the live clipboard icon. Copy it, go over to bloglines, and paste. That’s as easy as it should be to set up feeds. By having it that simple, it’ll go out to a lot more people.

That’s blogging. When I say “Wire the Web”, though, I mean more than blogging. Because there are many more types of data that we can represent in schematized XML or microformats there are a lot of things we could do if it was easy for users to wire up website.

Here’s my not-very-frequently-updated weblog. I tend to keep my main user profile on MSN spaces over here. As you might be able to see, this says “Current Location”. I’ve got my GPS-enabled Windows mobile phone (it can even do location sensing with Wifi correlation) uploading my location to the Windows Live service. Doesn’t just take lat-long-alt, it reverse engineers this into a text string that makes sense to users (“intersection of 1st and Market”). I’ve got a little clip icon that I can copy. Here’s my facebook profile, but I don’t want to maintain duplicate data in multiple places. I’m going to paste the data from Spaces into Facebook. It took location, etc. from the static data on the clipboard. But we want it to be live. So the page added another icon that has a choice: “live updates from MSN Spaces Profile”, a link to an RSS feed that’s on my profile. When I check this box, Faces will have a subscription going ot this one piece of inforomation so that when I update in Spaces, it’ll update in Facebook.

Facebook is a social networking tool. I can see the current location of my friends, as it’s aggregating that. This itselef is a feed. Now I’m moving to Windows Live. Pasting it into this Virtual Earth thing, and my friends’ locations are now updating in real time. Hopefully you’ll be able to see them moving around. These are chained feeds, from one to the next to the next. When I say wiring the web, this is what I’m referring to: hwo can we use simple user interface techniques to go from one to the next to the next.

This is wiring web site to web site, but the same thing can be done with the PC. Because it’s still on my clipboard, I can paste that same friends list feed into a program like Excel. If we’d had another week, maybe I could have connected this to OLE and had it updating in real time, but as you can see the same technology is a bridge from web to PC.

As you might be able to see, I’ve got Flickr here. Great photo site. I have enabled this site so that there’s a live clipboard icon on every image. If I copy this image, in actual fact what’s really neat about this is that I’m copying the data below the data. I’ve copied what the page wants to tell me about this image, as complex a data structure as I like. I can go to the Windows file system and simply hit paste [creates new file with the image in it]. It augmented the clipboard with CF file descriptors that pointed up to the web site.

If I go to Flickr, I can copy this entire feed to the clipboard, go to my MyPictures folder. It’s downloading that entire feed as a folder. There’s usually a hidden thumbs.db file. Now when you paste, we add another file that’s subscription.feed that’s an XML data structure with all the data that’s necessary to go back and subscribe to that feed. We’re working with the IE7 team which has an RSS subscriptione ngine in it so that once you paste to the file system, the file system will be kept update as you add new photos in your feed.

End of demo. There’s power in simplicity. The web itself has emerged because it’s a collection of really useful hacks. Hacks get layered upon hacks, but they’re really useful. All this Ajax is complex javascript, but it’s really neat and really powerful. I believe that if we as a community believe we should extend the clipboard to the web, we can do so. Microsoft alone cannot do this. We can augment MSN etc. but it’s only going ot be useful if many many people do it. It’s still only in prototype form, tested on IE, Firefox, Safari, bound to be bugs we haven’t found yet. Would love to work with you, instructions on my blog on how to get involved. Important to agree on common set of data formats that we can all use to exchange things in a fairly useful manner.

I hope this inspires some thinking on how the web might go and that we can contribute and that we can continue to talk.