A Brief Introduction To Rewindable
Desktops
by Bowie J. Poag, 12/8/02
-------------------------------------------
You and I watch television.
Sometimes, what we see on the
screen reminds us of something else we have seen before. Tiny or
inconsequential memories, perhaps a different angle on something, maybe a
small mention or subtle hint of information. A little snippet of something
that didn't seem worthy of remembering at the time. But now, having just seen
something that caused us to remember it, you and I both wish on some level
that we could go back and see it. To rewind the movie that plays out
infront of our eyes to the point in the film we're interested in. Maybe then, we
can go back and take what we saw, and add it to what we have now and complete
the picture.
You and I work on documents.
The usefulness of college is best
measured by how bored you become -- And, how far you're willing to go to
alleviate that boredom. I once had to write a paper about the Apollonian and
Dionysian aspects of Goethe's "Faust" using both
contemporary and mid 18th century examples of German literature.
The resulting boredom was so deep and insufferable that
I would have beat my face in with a frying pan had one been made
available to me. Anyway, failing to locate a suitably large and heavy
frying pan, I set about the task of typing up the paper. The first thing
you and I do when we write a paper is to take a quick mental inventory of what
we know. Since I was only vaguely familliar with Goethe's retelling of the Faust
epic, I had to rely heavilly on few snippets of Greek mythology
I managed to remember from history classes I had taken in years
prior.
You and I work with
machines.
The manner in which we humans
choose to juggle data has pretty much remained the same for the past 3 or 4
decades. The notion of a filesystem, and its cotnents. What began as a few began
to grow...And grow they did -- What began as only a handful of files grew to
become thousands, if not tens or hundreds of thousands of files. Here a file,
there a file, everywhere a file file. Files for this, files for that. Image
files, text files, config files, source files, lock files, hardfiles, hidden
files, system files, sound files, streaming files, ROM files, swap files,
parameter files, and files of every concievable shape, color and purpose.
But, lets think about things a little differently for a moment. What if it never
went that direction? What if the notion of a "file" never even entered our
vocabulary? What would we do? How would we store things? And even then, how
would we manipulate them once they were stored? And even THEN, how the hell
do we get a machine to do it for us?
For the bulk of mankind's life here on
the big blue marble, we haven't used files. Cavemen had data--LOTS of
it. They had data on where the herds were feeding, where to find
water, what plants will make you goofy in the head, and even where to find good
rocks to make tools from.. Cavemen had plenty of data, and even had methods for
storing, retrieving, and modifying that data. How? Simple -- In
the form of stories, lessons, songs, and other methods of what I like to call
"linear storage". Linear, as in the data has an indefinite beginning,
and an indefinite end. It exists as a singular thread
of information, one which can be delved into, and bits and pieces extracted
from at any point inside the stream. "Linear storage" differs from the
notion of a "file" in that a file is static. Its contents are known,
and it has a very clearly defined beginning and end. For example, the act
of recalling fond childhood memories can be thought of as indexing a
points within a 15 year strip linear storage. Recalling specific
details on the other hand ... Those are fixed, and non-linear in nature. Your
childhood memories dont continue to be created. They are distinct fragments
within the aforementioned strip.
Now think of computing. You're at your
desk, and going about lord knows what... Chatting on IRC, browsing, maybe even
doing some "real work".... And in the course of your work, you remember you
did something relative to it, or similar to it in the past. Maybe you'de like to
take some of that old stuff, and maybe apply it to what you're doing right now.
Nowadays, this is accomplished by accessing a file. Theres a file somewhere that
has what you're looking for. You arent immediately sure where, but, its
somewhere. You just have to find it. So you thumb through a whole bunch of
files, and voila, theres the goodies youre after. A quick cut & paste later,
you have the old information appended into what you're currently working on.
Now stop and ask yourself...Was it
really necessary to have that piece of information stored within a file? Whats
the point? Data is just data.. The method of storage is immaterial to the data
itself.
Wouldn't it be nice to have
a desktop that was constructed in such a way as to _allow you_ to "go back"
and see what the heck you were looking precisely 17 days, 3 hours and 47
seconds ago? You know, like a desktop that could be rewound, fast
forwarded, like a VCR? Why bother opening up new applications,
loading in new files, and looking at them again when you can simply "rewind"
your desktop to the state it was in the last time you worked on it?
Consider the following list of
events:
Time
Action
00:00
User logs in
00:03
User launches application
00:08
User waits
00:10
User loads a document within the application
00:15
User makes mistakes
00:17 User corrects
mistakes
00:21
User adds content to document X
00:29
User makes mistakes
00:31
User corrects mistakes
00:39
User saves document X to a file
00:40
User waits
00:41
User closes application
00:43
User logs out
04:19
User logs in
04:21
User re-opens document X
04:22 Now
..versus...
04:19
User logs in
04:20 User rewinds desktop to
00:31
04:21
User resumes work on document X.
Of course, the notion of being able to
"go back" and change stuff creates a few interesting problems. You begin forking
time. You have parallel threads of linear storage co-existing within the same
system, differentiated only by the behaviors exerted by the user. What becomes a
"rewind" from one point of view may turn out to be a "fast forward" from
another. But thats the trick -- Since youre no longer dealing with files per se,
you lose the concept of a "version". There is no such thing as version 1 or
version 2 of a document. Its the same document, just represented differently
depending on where you are in terms of time. With the notion of a "file" thrown
out the window, you have the freedom to move forward or back within whatever
frame of time your system manages to keep.
Suppose your system is a particularly
strong one. It has a linear storage length of 437 hours. That means, when you
sit down at your computer, you have the ability to roam anywhere within that 437
hour length of time to do your work. As you work on stuff in realtime, things
that you did and actions you performed 437 hours ago are slowly forgotten by
your system. This isn't a problem. If it was worthwhile to keep and use,
you dont have to be afraid, because what falls into oblivion
at the 437 hour point is still being used by you in the time
inbetween. The document never dies, as long as you keep using it.
Suppose your system is a particularly
weak one. It has a linear storage length of 39 minutes. One day, you
sit down at your computer and send an IM to your girlfriend. She
gives you directions to a place you swear to God you'll remember, but, of
course, you forget. Not a problem. Since the machine has witnessed the
past 39 minutes of activity, it undoubtedly still has a portion of your
conversation. Rewind your desktop to the point in the conversation where she
gave you the instructions, and you're off the hook.
Suppose you want to tell a friend on IRC
about this post. If you had a rewindable desktop, you wouldnt need to sift thru
endless piles of email and URLs.. You could just rewind to the point where you
originally read it, copy it, fast forward back to realtime, and paste
it.
On the simplest level, you can think of a
rewindable desktop as an "Undo" for a program close.
On the most complex level, you can think
of a rewindable desktop as a tool which allows your machine to work
independently of time or operating circumstances, and actively maintain multiple
threads of usage. The degree and number of threads are only limited by the
processing capability of the machine, and the amount of time (and granularity)
of the data it records.
--
There, that aught to keep you girls busy.
Good or bad, its an idea you can chew on.
Bowie
|