[3474] in Central_America
New quotes for Tue Jul 9
daemon@ATHENA.MIT.EDU (Initializer.SysDaemon)
Tue Jul 9 01:38:21 1991
Date: Tue, 9 Jul 91 01:37:59 EDT
From: root@charon.MIT.EDU (Initializer.SysDaemon)
To: ca-mtg@bloom-beacon.mit.edu
---------------------------------------------------------------------------
dalippe (David A Lippe):
Hey, watch where you go sticking your finger!
---------------------------------------------------------------------------
eichin (Mark W. Eichin):
Plan - to find something to do with my hands...
------------------------------
Date: Sat, 6 Jul 91 11:26:50 PDT
From: Martin Minow 06-Jul-1991 1428 <minow@ranger.enet.dec.com>
Subject: On finding a coding bug in the Time Server Daemon
While reading through the source code to the Berkeley Time Server (which runs
in the background of a group of Unix workstations and keeps their system clocks
adjusted to "network average time"), I discovered an interesting code sequence
in the networkdelta function. That function takes a set of time delay
measurements and computes the network average time change. I.e., it is the
core of the time server algorithm:
/* this piece of code is critical: DO NOT TOUCH IT */
...
i++
if (i = j)
j++;
...
Those of you familiar with C programming will recognize the classic error
(I make it frequently) of writing "i = j" (assignment) rather than "i == j"
(equality test) in an if statement. Both are legal in this context: "i = j"
meaning "assign the value of j to i and then test for inequality to zero."
Some reflections:
-- Burying an erroneous statement in a paragraph that says "don't touch"
makes matters worse. I only found the bug when I went back to 30 year
old "Math 295" tools of pencil and paper and walked through the
algorithm one statement at a time to see how it worked.
-- The error will only manifest itself if one or more systems is wildly
out of agreement with the other systems being served by the time daemon.
I.e., it is a classic "normal error" in that it is triggered by some
other error and makes matters worse.
-- The error results in an incorrect calculation of the network average
time, which will be corrected (if anyone notices it) when the entire
network is re-synchronized to a standard clock (several dial-up
time standard clocks are readily accessible from a dial-up modem).
-- If Berkeley (the copyright holder) didn't distribute source code,
I wouldn't have found the error. Instead, I'd have written my own
procedure which almost certainly have been a poorer algorithm.
-- Code reviews -- having your software carefully reviewed by a competent
outside consultant -- are useful. (What is the computer engineering
equivalent of a pathologist?)
-- Beware of language constructions, such as C's "if (i = j)" that are
error prone. Having once tried to add a warning for this to a C compiler,
I can attest to it being extremely difficult: you want to warn on
"if (i = j)" but not on "if ((i = j) != 0)" Ultimately, I decided the
cure (heuristics in a the compiler) might be worse than the disease.
-- "Beware of language constructions" is a warning to the programmer, and
one that belongs in a "Manual of Programming Style." It is an engineering
statement, not one of "Computer Science." I.e., it is at a different
level of discourse than "beware of bubble-sorts."
-- My university sent me to a remedial writing course because I couldn't
spell or distinguish between "who" and "whom," not to mention "that"
and "which" -- should there be remedial programming courses, taught
by writing teachers, that concentrated only on style?
It is possible to write quality bug-free software in error-prone languages
(just as it is possible to write poor software in languages that would prevent
"if (i = j)" errors). However, I am beginning to suspect that this requires
the obsessive attention to detail of a contract lawyer, combined with the grace
of expression of an essayist.
Martin Minow
------------------------------
---------------------------------------------------------------------------
ermarsh (Eric R Marsh):
The plan is to graduate and get a real paycheck as soon as possible.
Well, if you really want to get a hold of Eric, try
him in his office 3-443. The phone number is 253-2349
---------------------------------------------------------------------------
honor (Andrew John Cassidy):
To be true to myself.
To eat. Alot.
Thoughts to consider:
Of all the people who have ever fingered me, you are now one.
honor@athena.mit.edu
honor@space.mit.edu
HUMPTY-DUMPTY WAS PUSHED!!!
favorite song: Forever Young (see /mit/honor/Quotes/forever_young)
(see also /mit/honor/Quotes/aging)
To reach me
-----------
in CA: 1138 Gilbert
Hemet, Ca 92343-7910
(714)-925-5188
in MA: (617)-262-7343
email: honor@athena.MIT.EDU
honor@space.mit.edu
---------------------------------------------------------------------------
jcb (Jeff Bigler):
Seen on the morris@suvm.bitnet mailing list:
From: Jon Berger <batcomputer!ingres.com!jonb%CS.CORNELL.EDU@uga.cc.uga.edu>
> How many G pennywhistles and drums (of what type) does it take to be
> heard in a parade? I know that one melodion is barely enough.
Uhhhhh... three: two to play the tune and one to complain about how much
better they do it in Boston.
---------------------------------------------------------------------------
jdmarko (Jim Davenport):
Mail last read on Jul 3 15:37.
------------------------------
MOST RECENT LOGIN HISTORY:
Logout from e40-008-12 : Tue Jul 2 16:39:48 EDT 1991
Login on e40-008-12 : Wed Jul 3 11:42:47 EDT 1991
Login on e40-008-12 : Wed Jul 3 15:30:52 EDT 1991
Logout from e40-008-12 : Wed Jul 3 17:02:32 EDT 1991
Login on e40-008-12 : Mon Jul 8 13:46:43 EDT 1991
Logout from e40-008-12 : Mon Jul 8 14:22:40 EDT 1991
---------------------------------------------------------------------------
jtkohl (John T Kohl):
searching, searching...
---------------------------------------------------------------------------
may (G. May Yip):
HOME: 7905 San Felipe Blvd #216
Austin, TX 78729
(512) 250-8071
WORK: yip@asc.slb.com
(512) 331-3278
---------------------------------------------------------------------------
mein (Yu J Chen):
To graduate. Else to open a fast food joint.
---------------------------------------------------------------------------
mjdaly (Mark J Daly):
Strat '78 Standings
Boston 9 3 - .750
NY Yankees 16 11 .5 .593
Pittsburgh 13 11 2 .542
Houston 3 3 3 .500
Los Angeles 0 0 3 ---
Texas 6 9 4.5 .400
Baltimore 3 6 4.5 .333
Montreal 1 8 6.5 .111
LEADERS
-----------------------------------------------------------------
AVG | SLG | OBA
Carter, MON .455 | Murray, BAL .833 | Carter, MON .455
Cruz, HOU .368 | Scott, BOS .735 | Cruz, HOU .455
Murray, BAL .361 | Singleton,BAL .629 | Singleton, BAL .455
Hargrove,TEX .343 | Rice, BOS .612 | Hargrove, TEX .439
Lynn, BOS .320 | Cruz, HOU .579 | Yastrzemski,BOS .382
HRs | RBIs | Runs | SB - CS
Murray, BAL 5 | Murray, BAL 16 | Lynn, BOS 10 | Bumbry, BAL 4-0
Rice, BOS 4 | Scott, BOS 10 | Rice, BOS 10 | Remy, BOS 2-0
Scott,Evans BOS | Rice, BOS 9 | | Cabell, HOU 2-1
Grubb,Harrah TEX 3 | Grubb, TEX 9 | | Wills, TEX 2-1
--- End of Central America ---