Wednesday, August 25, 2010

“Nightmare Programming” or “Somebody Up There in Redmond Hates Me”

IF Mouse_Over_Icon()
THEN Icon_Blink(CurrentIcon, 20); Shift_Icon_Right(CurrentIcon, 2);


IF Mouse_Click_Left()
THEN Make_Cursor(HOURGLASS);


IF Multiple_Mouse_Click_Left()
THEN Freeze_Cursor(20);


IF Recorder(Mode)=ON AND Recorder(Voice) = CURSE
THEN Shiver_Cursor(10);  Hide_Cursor(20);  Keyboard_Lock(ON,25);
Message("Please watch your language");


IF CtlAltDel
THEN Clear_Screen (BLUE); Sound_Tone(IRRITATED); Keyboard_Lock(ON,25);


IF Recorder(Mode)=ON AND Recorder(Voice) = GROAN
THEN Message(“Unable to save file”);


IF Recorder(Mode)=ON AND Recorder(Voice) = SCREAM
THEN Sound_Tone(SHUTTING_DOWN): Message("You Don't Like Me, I'm Shutting Down");

Sunday, August 22, 2010

Today's Programmers

I know I'm doomed to sound like an old fogy (is that how you spell it? I don't really want to know.) when you read this.  I started programming (IBM big iron) in 1959.  We had very limited random access storage, about 200 Kbytes and a processor that blazed away at a 12 microsecond instruction cycle, most instructions taking 2 cycles.  The stress of making the most out of every byte, and every machine cycle was intense.  Artful programmers (usually the PhDs) would come up with ways of using unused bits within the instruction itself, to squirrel away additional information, rendering the code impossible to translate when a new and faster machine came along.

Input/output on the IBM 704 was unbuffered, meaning, among other things, that the program had to wait for say, the printer to start rolling, before you could actually feed it a line of output.  This dead time was used to set up the first lines of printed output, usually the report title lines, converting data from binary to BCD (this was before the days of EBCDIC), inserting the current date and time, that sort of thing.

The programs I was working on at that time, using the IBM 704 at the National Bureau of Standards (now NIST), were ground-breaking applications of the fairly new "minimum path through a network" Moore algorithm, to provide tools in designing the Interstate Highway System.  A typical analysis run for testing an alternative Interstate configuration for the Washington DC region would take six hours of dedicated computer time (no multi-tasking in those days).  We could do this only after midnight, most likely at 3 AM.

Having said all that, I come to my point.

Today's programmers see little need to worry their heads about time and space -- they have a virtually unlimited supply of each.  The notion that a function call could reach down maybe a dozen or more layers of code is of no consequence - it all happens so fast!
 
During one of my brief spells as a contractor to the US Government, I witnessed some of the worst and most inefficient coding practices I could ever dream of.  I saw one case at a major regulatory agency where the programmer had reproduced the code for a function fifty times, changing only a line or two in each copy (and renaming it of course) to get it to perform the required function, this whole mess driven by a CASE statement!

When your PC begins to drag its heels, you may be fairly sure the chickens are coming home to roost.  Overloaded stacks and queues, processes waiting for processes waiting for processes to complete their tasks, ... ad infinitum (almost), stacks of interrupts waiting to be serviced, need I go on?  A tired PC is an overloaded PC.  PCs are like any other kind of worker, overload them and maybe they will not complain, but they will fail to perform.

Thursday, August 19, 2010

End of Useful Life

I have been using the same Canon flatbed scanner for several years now. It has always been a totally reliable piece of equipment,  It just sits there quietly, minding its own business, until I insert something to be scanned and go to Paperport to complete the scan.

Now I am told I cannot get a new driver for this scanner, for Windows XP, because the equipment has been deemed to have reached the end of its useful life. 

I just hope to God I don't get a letter from Medicare telling me I've reached the end of my useful life!

Thursday, June 17, 2010

Planned Obsolescence

Anyone with a computer three or more years old has probably experienced it -- the computer's version of tired blood. It doesn't boot up as fast as it used to, applications seem to take an age to initialize, even shutting down takes forever -- it just seems to have lost the sharp edge it came with the day you opened the box.

You have followed the suggestions in those endless computer magazine articles: defragment your hard drive, get rid of applications you don't use, clean out the cookie jar once in a while. You even download FREE software which will tell you what your problems are. It does. And then it invites you to BUY the software you need to fix them.

You talk to the guys at your local computer repair shop, and what do they tell you? Get more memory! Get a bigger hard drive! Your operating system is out-of-date! For only $150 we'll take care of it! They will even try to convince you that the electrons your system came with are too slow, so you need new drivers -- the information highway is no place for slow drivers.

I have a conspiracy theory about all this. I am convinced that all computer software is written with embedded delay loop counters that are initialized with the square root of the number of minutes elapsed sinced you purchased your computer, each time the software is executed. During any operation, startup, shutdown, application initialization, these delay loops are executed so as to make it appear your computer is slowing down, when in fact it's the software that is slowing down -- deliberately! How about that for a theory?





Acer AL1916 Display

The Acer AL1916 display I bought with my media center computer has given me very good service -- until the 3-year warranty expired. Then. it started developing an "artifact" at the top right corner of the screen in the shape of a green and black cloud with an incipient tornado hanging from the bottom.

The artifact seems to reside on the outer layer of the display, so that the cursor slides under it and it is possible to click on the barely visible windows control buttons. However, the artifact is slowly growing, and will eventually degrade the quality of the display to the point of being unusable. Aside from being a nuisance, this problem is one you'd think the folks at Acer would be eager to learn about.

However, now that the 3-year warranty is up, I can find no way of reporting this problem to Acer. I heve tried several approaches, phone and email, to no avail. I could, of course, spend $30 or so for a 30-minute support call, but what could they possibly tell me that would be helpful? I am the one trying to give them informaton! Frustration!!