Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!hao!ames!amdahl!dlb!megatest!djones From: djones@megatest.UUCP (Dave Jones) Newsgroups: comp.cog-eng,comp.unix.xenix,comp.unix.wizards Subject: Re: Request for human interface design anecdotes Message-ID: <1638@megatest.UUCP> Date: Fri, 20-Nov-87 17:37:09 EST Article-I.D.: megatest.1638 Posted: Fri Nov 20 17:37:09 1987 Date-Received: Mon, 23-Nov-87 03:24:58 EST References: <1689@rayssd.RAY.COM> Organization: Megatest Corporation, San Jose, Ca Lines: 41 Xref: mnetor comp.cog-eng:304 comp.unix.xenix:1192 comp.unix.wizards:5542 in article <1689@rayssd.RAY.COM>, dhb@rayssd.RAY.COM (David H. Brierley) says: > Xref: dlb comp.cog-eng:259 comp.unix.xenix:1008 comp.unix.wizards:4836 > > If users removing all of their files by inadvertently typing "rm *" is ... > Of course, nothing you can do will ever solve the problem completely > since even the most expert user will occasionally make mistakes. Just > the other day I wiped out a weeks worth of work by typing "cc -o pgm.c" > on my AT&T unix-pc. I had meant to use -O to invoke the optimizer. > Instead, it optimized away all of my code by giving me a message to the > effect of "no source file" and happily creating a zero length output > file called "pgm.c". I was not at all amused. I now have a shell > script in place of cc which checks all its arguments for consistency > (i.e. you can't say "-o pgm.c"). > -- > David H. Brierley > Raytheon Submarine Signal Division > 1847 West Main Road > Portsmouth, RI 02871 > > Phone: (401)-847-8000 x4073 > Internet: dhb@rayssd.ray.com > Uucp: {cbosgd, gatech, linus, mirror, necntc, uiucdcs} !rayssd!dhb I guess I had been programming about two months when it occured to me that a program should always open all the input-files that it can before it opens ANY output-files. Somebody forgot to tell the writer of your cc. Sigh. (When output is going to a disc-file, a program should write it first to a temporary, then if there is no error, move it to the real place.) It is interesting that the same principle can apply to microprocessor hardware: instructions which read all their inputs, and then write one output can be restarted from the beginning after a page-fault at any step in the instruction. The T.I. 990 microprocessor line had some instructions which were not like that. They made it hard to upgrade to virtual memory when all the competators did. So far as I know, the 990 is pretty much a dinasaur now.