- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
wouf wouf
Admin
That is a thing of beutee
Admin
IN UR 'PUTER - SAYIN YER COMMETNZ
Admin
Their record for fixing bugs is patchy at best.
Admin
I'm disappointed. I expected a script that would activate a piece of industrial machinery to shake the bloody computation out of the beige box.
Admin
Apparently Mark Bowytz isn't aware that "beige box" is in fact generally understood to mean "a PC".
Admin
Well, there's his problem right there: it's difficult to see a solution in the dark.
Admin
Three of the most feared words in computerdom: Works as designed.
Admin
Admin
C'mon, it's a great solution... all it needs is another patch... woof...reboot...crash
Admin
It should really write a log of each session state crash to the hard drive...just in case.
Admin
I was expecting the watchdog to pop a CD tray out that pressed the reset button and then the watchdog's watchdog to step in a stop the first watchdog from reseting the beige box by putting something in to block the tray and then the two watchdogs would end up in big fight over pressing or not pressing the reset switch with teeth and fur flying everywhere causing general mayhem and mass panic.
Skizz
Admin
This sort of thing could easily be avoided if only peopled learned how to use throw/fetch exception handling correctly.
Admin
So the watch dog has something to do while it waits for the computer to freeze?
Admin
WTF? Did these people have a 30-year support contract?
Admin
There's nothing uncommon in having a "286 in small box" in an industrial environment because they Just Work and they can be very reliable. I would be crazy to expect the same reliability from your powerful desktop with colorful lights.
Also, watchdogs are commonly used in industrial environments, automotive and datacenters and they are implemented in hardware since many years.
I'm not implying that what they did was fine - but certaily Mark Bowytz still has something to learn.
Admin
Like a cascade failure on a poorly designed cluster. One app picks up data from the shared storage that causes it to crash. The second server realises the first has died, picks up the process and the data, tries to process it, and crashes. The third server realises the second has died, picks up the process and the data, etc.
A great way to take down your entire cluster, and always face-palmingly funny when it's someone else's cluster, and you get to watch it die. (Of course, it usually happens a lot faster than one failure every 48 minutes, so you usually work out what's happening fairly quickly, though usually too late.)
Admin
Ah yes, like the below:
try { // Poor Code catch (Exception e) {}
But seriously, I doubt you'd like the experience of using most of the languages that support these operations on hardware that old!
Admin
whoosh!
Admin
You're telling me that these guys were smart enough to cobble together a watchdog device running on a serial port? And smart enough to save and restore the state of their application? But they were too dense to figure out that the saved state might be defective and related to their processing crashes?
With all due respect, that doesn't seem very likely. There has to be more to the story.
Admin
They probably bid on a support contract that included "all IT hardware" and got stuck supporting this piece of equipment. From what I hear in the 'hardware world', this is not uncommon.
Admin
it is supposed to be like this:
try {
// crappy code block
} catch(Exception ex) { // cut and past of crappy code block }
Admin
This sounds a bit more like the field of an automation company than an IT company.
I work for an automation company. I recently repaired a welding machine that failed to boot because the 486 DX2/66 machine controlling it got caked with welding dust (thanks to the cabinet not being closed correctly from 'temporary wiring' that's been there for years) and the hard drive failed.
It's a lot of fun to try to replace an 800 MB hard drive on a computer with a BIOS that is some custom job and, because of age, doesn't recognize anything greater than 1.97 GiB - the 4096 cylinder limit. To top it all off the software controlling the machine conflicts with those drive overlay programs.
I eventually pulled a hard drive from some computer scrap place in California, cobbled together the software from four failed-but-semi-recoverable 3.5" floppy disks and a Windows 98SE boot disk, and got them going again.
My favorite part was the support docs I found for this custom computer enclosure. Their solution to replace the power supply when it failed was to swap it out from an AT to an ATX supply - which also required replacing the "CPU board", effectively upgrading the machine from a 486 DX2/66 with 8 MB of RAM to a 2.4 GHz Pentium 4 with 1 GB of RAM. Hmmmm.
Admin
Wow, that's actually pretty amazing... and what I used to do a while back. Though I always went with the "cut cable off old AT supply, cut connector off ATX supply, wire the two together and short the green wire (pin 14) to a ground" method rather than replacing the motherboard as well, too much chance of an I/O port changing addresses, IRQs being mismatched, or something else that the ancient embedded software wasn't expecting suddenly changing under it... up to and including requiring "speed-up loops". Easier to just whip out the soldering iron than fight with the software.
Note: when powering embedded systems, put a fuse at each end of the supply cable... on one project we had the fuse at the embedded system end, and one slip resulted in the -48V feed landing on the ground plane of a board, which backfed it so badly that most of the regulators desoldered themselves from the board and every electrolytic capacitor promptly exploded or caught fire :( $750 of custom hardware gone in under a tenth of a second.
Admin
Probably - most sales types don't realise that there comes a time when some contracts are better not renewed. Have you tried buying DOS-compatible PCs recently?
We had support contracts for a DOS-only app at my last place. They had to use NetBeui and connect to 64-bit Windows Servers. Fun, fun, fun.
Admin
It's possible to run TCP/IP on DOS--at least on 6.22.
Admin
IIRC the TCP/IP stack used an ungodly amount of memory, which could be a concern under DOS. If for example your main APP was close to the limits already, there wouldn't be any room for the TCP/IP stack. NetBEUI was very small however.
Admin
Am i the only one who noticed the pit-bulls question is malformed?
Admin
This wasn't a personal computer. It was an industrial appliance.
And yes, yes I have. It is easy, if you go to industrial supply places. You know, the places that sell raw parts and paint and safety equipment and racks and industrial appliances.
Admin
It's possible to run TCP/IP on a friggin' 8-bit microcontroller. DOS is overkill =)
Admin
Where did he go to school/intern that he was used to multi-giga RAM? At my schools and internships, 1 GB is pretty much the max unless I get on a research machine or go to my personal computer. Maybe I am in the wrong place.
Admin
The TCP/IP drivers used too much memory. The decision to use DOS was made a decade before by time there...
Admin
I agree, according to the story the WTF is that they didn't seem to realise that their "fix" increased the problem ten-fold. The actual problem never even got a mention and all the OP did was get them back to square 1.
Admin
Ouch. We did try and none of them was happy running the software.
And I admire your pendantry, but I think it's safe to call the device in question a PC - an industrial PC. :)
Admin
Try / catch and exception handling came along several years after the AT (80286) and PC (8086 / 8088) machines. Not one of the commercially available compilers would have supported exception handling, if this system was developed before about 1992. To my recollection just about nobody really coded with exception blocks before 2000
Admin
It's possible to run TCP/IP on carrier pigeons. 8-bit microcontrollers are .. well ... check out CPCP :-)
Admin
Admin
So did they not have the source code of the program? If it took 15 minutes on a 286, the same code should take only a couple seconds on a $300 desktop of today. Plus they could, I don't know... FIX the program?
Heck, you wouldn't even need the unreliability of Winderz, since DOS still runs on new hardware.
Admin
Admin
Are you kidding? On Error Resume Next was all the rage in 1998. Now that's what I call error handling.
Admin
How hard do you think it is to add serial ports to a new $300 machine, and get the 16 bit handwritten-in-assembly application to run stably, for that matter? Or I guess they could just reverse engineer the application from the no longer existing design docs?
Admin
According to the article, the serial port was used for the watchdog. And 16-bit code runs on new hardware, so what stability changes are you thinking of? And if they can add state savers and watchdog timers, that's a good sign that they have the source and can also FIX THE PROGRAM while they're at it.
Admin
They probably started with poor assumptions, and never questioned or tested those assumptions. It may never have occurred to them that their data or their app caused the crashes...
Admin
You, sir, have obviously never worked in a True Java Environment where there is but one True Way to format the above code:
Admin
Or the Great Oracle?
Admin
I think you're missing the point. The WTF wasn't the 286 or the watchdog hardware, for the exact reasons you pointed out. The WTF was the 'saved state' crash loop.
The best part of this WTF was how obvious the problem was.
Admin
Am I the only one who's going to object to the jab at pit bulls--the actual dog? They're unfairly maligned enough, without throwing a misleading photo and offhand insult on an IT website.
Admin
Famous words of a programmer I work with ...
s/Famous/Irritating
Admin
loadhigh? I remember having over 600k of free conventional memory even with the packet driver loaded, and the sound drivers and everything. It might have been MS-DOS 6.22 or DR-DOS 7.03, can't remember.
Admin
I was expecting an actual dog.
I can't help but wonder if the problem was coincidental, and they'd already ruled out that their state saving function was the cause. ....nah.