29 March 2011

Bidirectional Links: They're Here!

I attended the third annual ACM Hypertext Conference held in Pittsburgh in 1989. Three years prior I had co-founded Folio Corporation, a developer of electronic publishing software. I wouldn't earn my BS for another six months.

A fundamental question in the early days of hypertext was whether links should be one-way or bidirectional. Theorists were adamant that links should work both ways. They claimed that it's equally relevant to learn what refers to an item as to know what it refers to. Of course, that's hard to accomplish because an author may not have the permissions necessary to install a matching link. For example, if I link to a story on an arbitrary site, I probably don't have permission to install a back-link on that site.

A survey of some of the abstracts from the '89 conference reminds me of the many proposals on how to make bidirectional links work. Some used a sort of cooperative exchange protocol. Other approaches centered on a third-party link registry. Besides being unwieldy, these methods have other problems. If bi-directional links require cooperation, I might deny you the privilege of linking to my content. I might even report that my page had been deleted just to clear your link.

Tim Berners-Lee (who didn't present at Hypertext '89) launched the HTML/HTTP combo we know as the World-Wide Web one year after that conference. His aspirations were for a global, open web and so he took the practical approach of unidirectional links. His decision was strongly criticized by visionaries like Ted Nelson but today you're reading this on the web while Xanadu remains a dream.

Still, wouldn't it be nice to have back-links even if only occasionally?

Some blogging systems (not including blogger) have a "trackback" system in which blogs notify each other when someone from one blog links to a post in another.

Better yet, we do have backward links! I don't think even Berners-Lee expected a world-wide index with the capacity of Google. And one of the things it indexes are links. Google has a special syntax for it. If you search for "link:freakonomics.com" you'll find all of the websites that link to Freakonomics. A clever browser add-in (or built-in) would be to create a button that performs that query automatically when you're on a page. Maybe I'll write that someday.

This could be really useful. For example, the Common Core State Standards for education are organized on the website so that there's a unique URL for each of the standards. Here's an example related to the Pythagorean theorem: http://corestandards.org/Math/Content/8/G/B/6.

So, suppose Salman Khan (of Khan Academy) posts a video about the Pythagorean theorem. In that page he could include a link back to the corresponding standard. Then, I could post the following query to Google: link:corestandards.org/Math/Content/8/G

If this practice became common, the result would be content from all over the web that teaches the Pythagorean theorem. As of this writing, it only returns some cross references from within the standards themselves.

Of course, I couldn't resist the vanity search. A query for "link:ofthat.com" results in... one link from an old site of my own. Maybe someday.

15 March 2011

The Next Personal Computing Wave

We are partway into the next wave in personal computing. Google's Chrome OS is an excellent example but others abound.

The PC/Laptop/Tablet/Phone/PDA of the near future will work like this:

  • All local storage will simply be a cache of permanent storage in the cloud. Therefore, if a device is lost/stolen/destroyed/crashed there is little or no data loss. The individual simply picks up a new device, enters their credentials and all information gets re-cached from the cloud.
  • Applications will be cached right along with personal data. The record of your purchase (or adoption of free apps) is kept in the cloud so a new device automatically loads your apps along with your data.
  • Applications will be hosted in a runtime sandbox. Binary compatibility with the CPU or operating system will not be required.
  • Connectivity will be near-universal but not completely. Therefore applications will be designed to be “occasionally connected.” Existing examples are email and podcast readers that download information when there's connectivity but let you manipulate messages while disconnected.
  • Peripheral devices such as printers, scanners, TV tuners, heart-rate monitors, etc. will connect directly to the network, not to your individual PC.

While elements of this framework appear in the iPhone/iPad, in the Android OS and in Windows Phone 7, Google's Chrome OS is a better example. In true disruptive innovation fashion, Google is starting with a device with a lower cost, lower complexity and lower capability but superiority in one area. The superiority is fundamentally superior management and ease-of-use. This is accomplished by reducing the OS to just the services necessary to run a the web browser. In one particular area Chrome-based devices are superior to all others: They are almost entirely immune to data loss due to loss, damage, hardware failure and so forth and the dramatically simplified OS is easy to understand and use.

And even though the OS is little more than a browser, you can still load up applications. The application runtime is simply ECMAScript (Javascript) and the web environment. Notably, Google Gears and the recently released HTML5 features (both of which are in Chrome) allow browser-based applications to cache local data and continue to operate when disconnected. Google even has a special compiler that will compile Java applications into ECMAScript instead of JVM code so that they run in a browser context. And Google has also addressed the mobile device printing problem.

Of course, Chrome isn't the only example of this wave. Much of it started with Netbooks. With the Eee PC Asus pioneered the idea that a simple device that doesn't run a mainstream OS can be easier to understand and adopt.

For all of it's pioneering work, Apple hasn't fully adopted the new paradigm. And the anchor they are still dragging was introduced with the Palm Pilot introduced 10 years before the iPhone. Palm's innovation was to create a small, handheld device that was an extension of your home computer. You "cradled" your palm once a day to charge it and synchronize your calendar, contacts and so forth. Apple still maintains this framework. You can't get full utility from your iPhone or iPad without having a PC back at home. The rather horrible iTunes app (maybe it's better on a Mac) is required to backup your phone, to manage your music library, to subscribe to podcasts, to upgrade the OS and for a host of other reasons. There's no justification for this. The iPhone/iPad is a networked device and all of these services would be better in the cloud.

Microsoft has done a perfect job of imitation with its Windows Phone 7/Zune Desktop pairing. The imitation is so perfect that in both cases you can't even give a name to your device without first connecting it to your PC/Mac.

Some will point out that you don't really have to tether your iPhone to subscribe to podcasts. There's an app for that. But my point is that Apple should have done that. In fact, opportunities abound to build apps to untether these devices. Just consider the reasons for connecting to a computer and find an alternative.
  • Cloud backup. Think "Carbonite for mobiles." (Yes, Carbonite has an iPhone app but it's for getting to your PC backup using your iPhone. It should be for backing up your iPhone.)
  • Music store management (organization, tagging, purchase, backup, etc.)
  • Device management (name, iTunes account, memory management etc.)
  • OS Upgrade (in conjunction with backup).
In true disruptive innovation fashion, the first devices of this wave are specialized and have limitations but they will continue to improve until there's no reason left to keep a desktop or laptop.