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

Brainwave: Cell Contents



This occured to me while I was in the shower (why do brainwaves
always come when you're in the shower and too wet and soapy to
write them down (Hmmm, whiteboards in the shower, anybody?)).

Ahem, anyway ...

Is there any particular reason that all the data in a particular
zigzag data file (We DO need a name for one of those.  Call it a
'zag'?) (Then we can call the activity of using ZZ 'zigging' :) (but I
digress ...) to be all in one "place"?

Currently we store ALL the ZZ data for a single "database" in one
file, usually zigzig.data in the current directory.  I recall people
talking about interfacing ZZ with OSMIC and hence storing all the data
in one OSMIC server.

What about letting a cell contain a REFERENCE and then we can display
the referent instead of the reference.  Like formulas in spreadsheets
where you enter a formula but it displays to you the result, not the
formula.

So if you entered:
   http://xanadu.net/ZZ/
as the only contents of a cell then ZZ will grab the page (this is easy
in perl) and display THAT in the cell.

Or if you entered:
   osmic://servername/1-22,44-45,some-other-offsets
it will query the OSMIC server on servername and construct the right
display from the offsets you give it.  Etc.

You could also, a-la Lynx, enter:
   file://localhost/home/gossamer/notes
and it'll grab the file off the disk and display THAT ... or
   exec://localhost/file/name/of/a/program
and it'll execute the program and display its OUTPUT!

If you wanted to go the whole-hog you could make a referent the ONLY
thing a cell can contain, and if the user tries to edit an empty cell
you can invent a local file (say ~/.zigzag/some-random-name) and etid
that.  Sorta like HyperWave invents filenames if they aren't
specified.


Positives:
   - You can edit the individual text files out of ZigZag if you want
     to.  (This is something I'd like).

   - Makes the data file smaller and easier to manage.

   - You can get ZigZag to contain information that changes - eg I
     could put http://www.slashdot.org/ in a cell and always see the
     current slashdot headlines!  Or the weather, or the stock exchange
     values or the MOTD or ... anything!

   - There's Perl modules to support this sort of thing, so it's not
     hard to code.

Negatives:
   - You can no longer just give somebody a zigzag.data file and 
     guarantee that's -all- the info they'll need to display the
     dataset it contains.  But we could write a utiliy to run over
     the cells and list all the relavent files fairly easily.

   - Figuring out when to update the data from files that may change,
     like URLs.  This could make startup slow if we have a zag that
     contains 100 URLs and they all try to load at startup!  Need some
     sort of local cache and some smart rules about when to update
     things?  Possible though.  Also some sort of update and/or
     write-lock for local files, same reason.

   - Have to "know" which pages you can and can't edit and disallow
     editing for certain cells.


I keep thinking somebody else MUST have been through this before, is
it a new idea at all?  But I like it a lot.


Gossamer

PS
Just noticed something ... I assume osmic://servername/offsets isn't a
valid URL but can we register it somewhere/somehow so it is?  That'd
mean any browser could display OSMIC files!!  Does OSMIC even have a
standard port or anything?  I can alter the program trivially to work
accross a network, if it doesn't already.

-- 
: Gossamer     gossamer@xxxxxxxxxxxxxx  | Xanadoodler
: http://www.tertius.net.au/~gossamer/  | And proud of it :)
: This above all; to thine ownself be true, and it must follow, as the
: night the day, thow canst not then be false to any man.
: -- William Shakespeare, 'Hamlet'