Doc Auto Save / Fast Save / Threads

Wilddonkey@aol.com
Sat, 20 Nov 1999 14:33:05 EST


Here is my take:
1. Crash protection -- Mandatory. Systems crash. Any design that does not
compensate for crashes is a loser. I would even say that it is unethical to
leave crash protection out of any system without a big disclaimer up front.
When a user types into a word processor, they entrust the system with
something of value. You either do everything reasonable to protect the
treasure, or you state up front that you have not taken every reasonable
precaution. If your reasons appear lame, well...
2. Autosave in place. Personally, I hate this, because, as Paul points out, I
am one whose work style does not assume that the latest is always the best,
but without crash protection, I put up with it.
3. Versioning. I have coded with emacs set to keep 3 versions for so long, I
assume in the back of my head that I have the same feature on every
editor/word processor I use, and like all programmers, checking in and out of
a version control is a natural.

And there you have my ideal: crash protection, keep the results of a few
recent sessions around, and be able designate certain "copies" as significant
enough to keep forever (or some approximation of forever). This is my ideal,
probably a little too elaborate for everyone, but still, I think, essential
for anyone who uses a word processor for producing documents that are more
than one-offs.

Now, how to implement. First, look at emacs and RCS as a prototype
implementation. What are the downsides: Directories full of copies are
confusing and waste disk. You have to remember to check in and out of RCS.
The upsides: the implementation is simple, reliable and relatively easy to
explain and understand. It is pretty easy to understand what is saved and
when it is saved, so that you usually know right after you delete yesterday's
perfect version that you just shot your foot off.

I am going to stop now. I would like to listen for a bit.

Wilddonkey



This archive was generated by hypermail 1.03b2.