< previous page page_93 next page >

Page 93

and untutored programmers, hackers consider it the canonical example of a naive algorithm. The canonical example of a really bad algorithm is bogosort. A bubble sort might be used out of ignorance, but any use of bogo-sort could issue only from brain damage or willful perversity.
bucky bits /buh'kee bits/ n. 1. obs. The bits produced by the CONTROL and META shift keys on a SAIL keyboard (octal 200 and 400 respectively), resulting in a 9-bit keyboard character set. The MIT AI TV (Knight) keyboards extended this with TOP and separate left and right CONTROL and META keys, resulting in a 12-bit character set; later, LISP Machines added such keys as SUPER, HYPER, and GREEK (see space-cadet keyboard). 2. By extension, bits associated with 'extra' shift keys on any keyboard, e.g., the ALT on an IBM PC or command and option keys on a Macintosh.
It has long been rumored that bucky bits were named for Buckminster Fuller during a period when he was consulting at Stanford. Actually, bucky bits were invented by Niklaus Wirth when he was at Stanford in 196465; he first suggested the idea of an EDIT key to set the 8th bit of an otherwise 7-bit ASCII character). It seems that, unknown to Wirth, certain Stanford hackers had privately nicknamed him 'Bucky' after a prominent portion of his dental anatomy, and this nickname transferred to the bit. Bucky-bit commands were used in a number of editors written at Stanford, including most notably TV-EDIT and NLS.
The term spread to MIT and CMU early and is now in general use. Ironically, Wirth himself remained unaware of its derivation for nearly 30 years, until GLS dug up this history in early 1993! See double bucky, quadruple bucky.
buffer chuck n. Shorter and ruder syn. for buffer overflow.
buffer overflow n. What happens when you try to stuff more data into a buffer (holding area) than it can handle. This may be due to a mismatch in the processing rates of the producing and consuming processes (see overrun and firehose syndrome), or because the buffer is simply too small to hold all the data that must accumulate before a piece of it can be processed. For example, in a text-processing tool that crunches a line at a time, a short line buffer can result in lossage as input from a long line overflows the buffer and trashes data beyond it. Good defensive programming would check for overflow on each character and stop accepting data when the buffer is full up. The term is used of and by humans in a metaphorical sense. "What time did I agree to meet you? My buffer must have overflowed." Or

 
< previous page page_93 next page >

If you like this book, buy it!