Navigation

image

Your Host
Curmudgeon Emeritus
Francis W. Porretto

Audio File Pages


Most recent entries (Blog)

Screeds

Short Fiction

Essay Series

Otherwise Significant

Duyen's Archive

Search

Weblog Categories

Monthly Archives

Calendar

July 2009
S M T W T F S
     1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Syndicate

« Execute Them All. NOW.
»
Posted Comments    |     Comment Form

Saturday, June 04, 2005

When Bad Software Happens To Good People

By Francis W. Porretto
Francis W. Porretto avatar

It can put them in a really bad mood. Your Curmudgeon is in such a mood.

Your Curmudgeon is a high expert at the "low end" of systems programming. That's the end where the implementation of control software for peripheral devices -- everything but the processor itself -- is handled. Such programs are called "device drivers," and their implementation is regarded as an arcane art by most persons involved in the production of applications for particular purposes.

But your Curmudgeon knows the problems and challenges well. Indeed, it was he, back in the early Eighties, who first formulated the design principles that underpin all proper real-time design. In consequence, he's unsparing of those who seek to short-weight them.

Herewith, the Curmudgeon's Laws of The Adequate Device Driver:

  1. The driver shall possess a written specification to which it shall conform in all details.
  2. The driver shall guarantee specific standards of performance for all its operations.
  3. The driver shall not imbed features or diagnostic assistance that can cause the system, or an application that uses the driver, to crash.
  4. The driver shall not compel an application that uses it to block for completion of a requested operation; it shall always offer an "overlapped" option.
  5. Whenever possible, disjoint operations shall be made concurrent. That is: if the device under control can perform two categories of service simultaneously, the driver designer shall undertake to provide concurrent, overlapped access to them.
  6. The driver shall not require retrofits to the system, nor shall it require a particular version, revision or patch level of the system, unless the impossibility of otherwise meeting its written specification should require it.
  7. The driver shall come with the source code of example programs, written in C, that demonstrate all its features and functions. All such programs shall be coded to best commercial practice, shall be clearly documented and commented, and shall refrain from doing so many things within one application that the user's separation of the functions is impeded.
  8. If the driver is proprietary to one manufacturer's peripheral rather than to a larger class of peripherals, this shall be stated explicitly and conspicuously in the specification.
  9. The driver designer shall make a maximum-good-faith effort to avoid making the driver dependent upon any factor likely to change without conspicuous, well publicized notice.
  10. Should a driver fail in use, in such a fashion as to demonstrate that its designer has not complied with the above rules, the driver vendor shall assume full consequential liability for any damages caused, regardless of any provision of the written laws or traditions of commerce to the contrary.

Because your Curmudgeon takes limitless pride in his ability to make even the very worst garbage work as he's ordained it shall work, the sweetness of his temperament has been polluted by an evil that passes under the name Fibre Channel. This past week, after months of grueling and unnecessary effort, he finally succeeded. The C.S.O. has recommended that he get thoroughly smashed "so that the healing can begin." What he'd really like to do is execute a few carefully selected vendors. Beware.

Posted by Francis W. Porretto on 06/04/2005 at 07:38 AM

Print Vers. • (1) Trackbacks



Comments


Comment Form    |     Back to Top/Original Post
  1. You can’t work in this industry without sometimes feeling the temptation to not merely execute certain vendors, but torture them first. Good Christians do not, of course, _give in_ to such temptations, but we do still feel them. smile

    But yeah...we know. Been there.

    Posted by Matt  on  06/04/2005  at  06:22 PM
  2. I feel only slightly safe from your wrath, having been out of the FC game for 18 months now.  And I feel only slightly triumphant in saying, you should have seen it in ‘99.  Wheeee!

    Posted by Scott Chaffin  on  06/08/2005  at  02:48 AM


Comment Form


Posted Comments    |     Back to Top/Original Post

Commenting is not available in this weblog entry.



© Copyright 2001-2009 Francis W. Porretto. All rights reserved.

E-mails and comments become the property of Francis W. Porretto

Powered by ExpressionEngine

Member:

The Lexicon:

Affiliated Merchants

SmartFlix.com How-To DVD Rental

Blog Roll