This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.

Wednesday, March 01, 2006

Augment Java Emulator

Today I'm trying to get an old Java-based terminal emulator that was created for signing into the existing Augment system. The goal is to learn how the existing system works before we clone it onto the web.

On the server-side, the original Augment code is running, but within an emulator as well; the emulator is simulating a PDP-10 computer system, but underneath it is a Xeon using Debian Linux!

Screenshots of emulator:

Unfortunately, we don't have guest accounts yet; I'm asking around to see if we can create them.

I'll be playing around with the system the next few weeks, learning it myself and explaining it through this blog to others.

Technorati Tags: hyperscope

Introducing the Hyperscope Project

Everything Old is New Again, or, Why You Should Care About Computer History

Imagine the year is 1968: mainframes rule the roost, the concepts of personal computers and collaborative systems are non-existent, and people's conception of the Human Computer Interface are punch cards and teletypes.

You're invited to attend a demo in San Francisco, now known as The Mother of All Demos, at which the following is shown for the first time:
Hot damn.

To paraphrase William Gibson, the future had arrived far ahead of time, it just took 30 years to be evenly distributed.

The system was known as NLS, or oNLine System, and the team showing the demo was headed by Douglas Engelbart.
Today I start a new project with Douglas Engelbart, Eugene Kim, and Johnathan Cheyer, named Hyperscope; I'm deeply honored and humbled to be a member of this team. Hyperscope is a National Science Foundation funded project to rebuild portions of Douglas Engelbart's groundbreaking NLS system on the web.

We're going to start small; Douglas and his lab invented a great deal over the many decades of their research.

In the first phase of the Hyperscope project, mapped out to be the following six months, we are going to implement Engelbart and his team's advanced hyperlink system on the web, including some of the user interface of NLS.

In NLS (or Augment, as it was later renamed), a small command bar at the top of the screen could accept commands; below this command bar was the document that was being worked on. Users would type commands into the command bar, something like the command-line of a DOS or Unix terminal, and would use the mouse to click on portions of the document to interact with and operate on.

Some of these commands involved working with structured documents, including creating very rich hyperlinks between documents. In addition, these hyperlinks supported something called ViewSpecs, which made it possible to view the remote linked-to file in many sophisticated ways. I'll be going more into Augment's hyperlink and ViewSpec functionality in future blog posts.

In this first six months, we will be creating the shell of the Augment UI, described above, including the hyperlink, jumping, and viewspec functionality. We will probably be doing this using AJAX and DHTML, possibly using the Dojo Toolkit, so you can run Augment right within your browser without downloading anything. In addition, there will be a server-side component, written in Java or Ruby, that the AJAX/DHTML component will interact with.

The deliverable will be a URL you can go to "run" the Augment/Hyperscope system in your browser; you will be able to view Hyperscope documents, issue Hyperscope commands into the command bar, and use the advanced jumping, linking, and viewing capabilities of Hyperscope.
This entire project will be open source, released under the GPL, and will be done in the public. I'll be blogging as much as I can and discussions will be happening on the Hyperscope Wiki and mailing lists.

Hyperscope is not only about rebuilding Augment on the web as an important historical artifact; Engelbart was so far ahead of his time that there are still ideas in this system that can be incorporated into modern software. In addition, as we bootstrap Augment, we will start using it to build a community within it, using it as a super-charged Wiki. One of Engelbart's important ideas that has not been realized enough is that not only must computers change to accomodate humans, but humans also have the option of growing and learning to become more skilled at collaborative work. We'll put some of these ideas to the test as we build up an Augment/Hyperscope community, using Hyperscope itself to build it.

This first month, March, is about all of us comming up to speed on the original NLS/Augment system, learning how to use devices such as the chord keyset that Engelbart's lab invented, and prototyping small pieces of the system to see what design we will use. I'll be posting small prototypes of various portions here; all of this bootstrapping will be public.

In this first iteration, we will be translating the original NLS/Augment system as faithfully as we can into the browser, without changing it. Once we stabilize the core, we can begin to revisit portions, but for now it's meant to be a clone of the original.

Every week we have a two hour meeting with Engelbart and many of the original implementors, including Jeff Rulifson and Charles Irby. Every few weeks I'll take a question posted here on this blog by someone and ask Douglas Engelbart the question; to ask a question, post a comment to one of these Hyperscope blog posts with the subject QUESTION: added to the beginning; be sure to add your full name so when we blog the response we can give you credit.

Eugene will also be posting audio of the Tuesday meetings on the web; when I get a link for these I will post them here.

Technorati Tags: hyperscope, engelbart

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]