• (cs) in reply to Monday
    Monday:
    It should really write a log of each session state crash to the hard drive...just in case.
    That would be loads of fun if the failure was "Out of disk space"!
  • (cs) in reply to vtcodger
    vtcodger:
    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?
    I think the point of the story is that they were *stupid enough* to cobble together a watchdog running on a serial port, when the actual problem was that they had been *stupid enough* to save and restore the state of their application.
    vtcodger:
    With all due respect, that doesn't seem very likely.
    Dude. There are only five letters in T.D.W.T.F. Which one don't you get?
  • (cs)

    ... I don't think so. There were Amigas in 1985.

  • MRAB (unregistered) in reply to Dan
    Dan:
    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.

    If they didn't have the source code, maybe they could run it in an emulator.

  • An Hourly WTF (unregistered)

    I agree, the pitbull should have said "011101110111010101110100??"

  • Herby (unregistered) in reply to An Hourly WTF
    An Hourly WTF:
    I agree, the pitbull should have said "011101110111010101110100??"
    Shouldn't it be: 011101110111010001100110?
  • 50% Opacity (unregistered) in reply to vtcodger
    vtcodger:
    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.

    Looking at The Big Picture doesn't seem like a particular strength of these guys. The time they used to build a resume "helper" for the watchdog would probably have been better invested in buying a cheap off-the-shelf modern PC and set up a DOS emulator on it. Even if the program still managed to crash the computer, each calculation would have been sped up by many magnitudes, elminating the need for a resume helper and, you know, speeding things up.

    "We keep it because it works" wouldn't strike me as valid anyway in this case.

  • 50% Opacity (unregistered) in reply to 50% Opacity
    50% Opacity:
    ...each calculation would have been sped up by many magnitudes, elminating the need for a resume helper and, you know, sped things up.

    FTFM.

  • Bibble (unregistered)

    Hang on...

    Everyone seems to have missed this bit:

    "Yeah, the real problem was that it would get stuck in a rebooting loop. Things got so bad that we had to add another program. One the tenth reboot in a row, it would delete its save state from disk before loading the main program."

    A light immediately went off in Shawn's head, "Wait a second - What do you mean by 'saved state' exactly?"

    So, they DID realise that the save state could be the problem, and DID delete the save state if it caused a persistent problem!

    So, what was the WTF again?

    (Yes, there were WTFs, but they weren't what the article said they were, and Shawn got it wrong, because he heard 'save state' and not the bit where they were deleting it.)

  • Iain Collins (unregistered) in reply to Edinburgh Mike
    Edinburgh Mike:
    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!

    Some languages, like Java and typically .NET languages, support an extended paradigm which allows you to improve performance by performing resource management (e.g. to replenish depleted resources) in an additional final block.

    For example:

    throw { // Throw thing }

    fetch { // Fetch thing }

    biscuit { // Hell, give a biscuit anyway, even if thing not returned, 'cause // he's so cute, yes-he-is, who's daddy's boy? Good doggy! return true; }

  • (cs) in reply to vtcodger
    vtcodger:
    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.

    It's entirely possible to be technically competent but logically blind, especially when you're focused on one aspect of what you're working on, namely making it work. When you're dealing with a problem in a live system you're very often just in "make it work" mode.

    They basically had two separate pieces of good functionality and lost sight of the possible bad interaction between the two. It happens. It even happens if you fully design your system before implementation; edge cases get missed.

  • NoXzema (unregistered)

    I made an app like that once. It would save a bad value, and when it tried to print it would tell me that I sucked and need to learn how to code. Damn you fail message!

  • an onymous (unregistered) in reply to Ken B
    Ken B:
    Three of the most feared words in computerdom: Works as designed.

    Not quite as feared as "works as coded". Which is what I tell whiny help desk twerps, when they think they have a bug to report.

  • (cs) in reply to Herby
    Herby:
    An Hourly WTF:
    I agree, the pitbull should have said "011101110111010101110100??"
    Shouldn't it be: 011101110111010001100110?
    Ah, well, I think his bark is worse than his byte.
  • DysgraphicProgrammer (unregistered) in reply to Ken B
    Ken B:
    Three of the most feared words in computerdom: Works as designed.

    AKA: Broken As Designed. or BAD

  • nB (unregistered) in reply to TarquinWJ
    TarquinWJ:
    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.)

    I've had the equivelent of that happen in hardware. Set of 4 FPGAs and the combination of code on the FPGAs and circuit design led them to have a possible SCR latchup event. First one failed, current draw from the board went through the roof, then dropped. That left its output "dirty" and the second FPGA blew, by the time I realized what was happening it was too late. $4K in FPGAs smoked.

  • (cs) in reply to KP
    KP:
    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
    TRAP would like a word with you. Most BASICs had that back in the early 80s.
  • Wolfraider (unregistered) in reply to IV
    IV:
    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.

    Here at my school, the older machines have 2GB ram and we just standardized on 4GB ram a couple of months ago on all new machines

  • Frob (unregistered) in reply to Iain Collins
    Iain Collins:
    This sort of thing could easily be avoided if only peopled learned how to use throw/fetch exception handling correctly.

    What? Like you throw the beige box and tell the Serial Port Pit Bull to fetch it?

  • (cs) in reply to heretic
    You, sir, have obviously never worked in a True Java Environment where there is but one True Way to format the above code: 1. Thou shalt use four space indents. 2. Thou shalt put the opening brace of a block on the same line as the token which initiates said block. 3. Thou shalt cower before the mental supremacy of the Great Sun (for you are too stupid to code your way out of a wet paper bag).
    Why, oh why do people still insist on having spaced indents.

    Use tabs! You can make your tabs be 4 spaces, 8 or even 2!

    Ever since I first saw code guidelines that explicitly mentioned indents being so-and-so many spaces I have wondered... What on earth is wrong with using tabs?

  • (cs) in reply to Kiddibeik
    Kiddibeik:
    Use tabs! You can make your tabs be 4 spaces, 8 or even 2!

    Ever since I first saw code guidelines that explicitly mentioned indents being so-and-so many spaces I have wondered... What on earth is wrong with using tabs?

    Try loading your source into Notepad.

  • (cs)

    what is the problem with loading source into notepad? the tabs still display fine.

  • (cs) in reply to Pim
    Pim:
    Kiddibeik:
    Use tabs! You can make your tabs be 4 spaces, 8 or even 2!

    Ever since I first saw code guidelines that explicitly mentioned indents being so-and-so many spaces I have wondered... What on earth is wrong with using tabs?

    Try loading your source into Notepad.
    Why would anyone want to load their code into Notepad? If you can't install a decent code editor then use Wordpad.

  • Iain Collins (unregistered)
    niuren:
    jordan shoes| ugg boots | wholesale nike shoes <snip>
    ITYM "jordan shoes || ugg boots || wholesale nike shoes [...]"

    You might also want to consider using a case statement, using common attributes for different common properties (e.g. for 'boots' or 'ugg boots' or 'nike') or if a regex would be more appropriate.

  • Olipro (unregistered)

    I don't understand why "watchdog" is treated like an alien term... a watchdog is a pretty well-defined term for something that keeps a check on a piece of hardware and makes sure it hasn't crashed - a common one is on a CPU where it will need to set the watchdog's mem address every so often or get reset.

    Incidentally, perhaps the writer is an animal loving hippy because the common description for setting the address is "kick the watchdog"

  • (cs)

    People net Beijing on June 2 report (reporter Wang Jianxin) bulletin of Beijing health bureau, on June 2, beijing reports case of illness of diagnose of flu of two armour H1N1, this is Beijing case of illness of ugg australia boots diagnose of sex of the 13rd the 12nd exemple, input. One of patients,ugg usa, the male, 36 years old, canadian book Chinese. On May 28 16 when take AC407 airliner and family 15 minutes to touch Beijing by Canada. Its ugg classic tall parents drives to receive its in coming ugg boots size home, rest in the home all the time ever since. On ugg size 6 May 31, the patient feels calorific oneself, acid of companion whole body aches. See a doctor to send popular examine at Haidian hospital, accept segregation medicine observation in this courtyard. Turned on genuine ugg June 1 Beijing bless installs hospital proceed to keep apart medical observation. Of ugg classic tall boots on sale the patient, the male, 12 years old, chinese book, stay in the United States some city. On May 31 11 when, genuine ugg australia boots with its mother and little brother take CO89 scheduled flight from American Xin Zexi airport, on June 1 afternoon 1 when arrive at capital International ugg boots size 6 Airport 30 minutes. Give out classic tall boots sale heat because of appearing when airport quarantine be sent toward hospital of Beijing ground altar directly. 2010 the latest snow boots.Anyone interested in them,please contact me directly at louis vuitton outlet once!!!As the trademark ,we louis vuitton outlet don't want involves in the trademark infringements,so the photos have been processed.

  • SDFSDFSsu (unregistered)

    security. But the report also spill the wholesale Lenovo Laptop Battery UK's ability to respond to large-scale question. Members of Britain

  • John (unregistered) in reply to Steve
    Steve:
    Edinburgh Mike:
    Iain Collins:
    This sort of thing could easily be avoided if only peopled learned how to use throw/fetch exception handling correctly.

    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!

    it is supposed to be like this:

    try {

    // crappy code block

    } catch(Exception ex) { // cut and past of crappy code block }

    NO NO NO! It goes like this: while(true){ try {

    // crappy code block

    } catch(Exception ex) { continue } break; }

Leave a comment on “Serial Port Pit Bull”

Log In or post as a guest

Replying to comment #:

« Return to Article