Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!cantuar!robert From: robert@cantuar.UUCP Newsgroups: comp.cog-eng Subject: Re: Request for human interface design anecdotes Message-ID: <239@cantuar.UUCP> Date: Sun, 11-Oct-87 01:30:40 EDT Article-I.D.: cantuar.239 Posted: Sun Oct 11 01:30:40 1987 Date-Received: Mon, 12-Oct-87 20:44:13 EDT References: <301@mv03.ecf.toronto.edu> Reply-To: robert@cantuar.UUCP (Robert Biddle) Organization: University of Canterbury, Christchurch, New Zealand Lines: 49 Keywords: human factors, interfaces Summary: Syntax clash between two systems both in use... jkins (drascic@ecf.toronto.edu) writes: >I'm posting this for a friend who does not have USENET access. Please... >Hello. I have recently found myself in the position of having to present >a lecture on Human Factors in Human Computer Interface design to a large... Ok, this gives me an excuse... We use both Unix and Primos a lot here, and students learn Primos before learning Unix. A pair of students were working on a first big Unix programming project, and had a habit of backing up their files by keeping "backup" directories in the source directories. So they'd often say: cp precious backup/precious But they were very used to Primos, and in Primos the directory mark is not "/" but ">". So one time they said: cp precious backup>precious !!! And they were very puzzled about what happened. At first they didn't see what was wrong with the line, but eventually saw the ">". They then realized that standard output was re-directed to their file, and because "cp" has no standard output, "precious" was now null. No problem, it had just made a backup. That was then they learned that the shell truncates and opens files for redirection *before* it arranges for the relevant programme to be executed. So they had lost the file, and not made a backup. But there was the *last* backup, yes? That was when they learned that "cp" takes a directory name in the last position as meaning the same name is meant to be used in the directory. So with a perfectly good looking backup command, they had not only not made a backup, but had lost the file itself, and destroyed the last backup. To end the story happily: After much angst, they realised that it was a Yacc file with a grammar and some large C functions. The grammar hadn't changed since the last tape backup a fortnight before, and the C functions could be captured back from the last C file Yacc had generated. It's interesting to note that even in Primos the statement wouldn't have been correct (even substituting "copy" for "cp"), because in Primos the current directory must be indicated as "*", so the second file should have been "*>backup>precious". Of course, "*" would yield more problems in Unix! None of this is new, of course, and similar problems occur when a new natural language is learned. -- Internet(ish): robert@cantuar.{uucp,nz} Spearnet/Janet: r.biddle@nz.ac.canty UUCP: ...!{watmath,munnari,mcvax,...!uunet!vuwcomp}!cantuar!robert NZ Telecom: Office: +64 3 482 009 x8352 Home: +64 3 64741; +64 21 76205 NZ Post: University of Canterbury, Christchurch, Aotearoa / New Zealand