A Brief Introduction To Rewindable Desktops

Here's a special handicapped version for the girls who threw a pissy fit
with the earlier copy:

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


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.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]