Slashdot Mirror


Why Do Computers Still Crash?

geoff lane asks: "I've used computers for about 30 years and over that time their hardware reliability has improved (but not that much), but their software reliability has remained largely unchanged. Sometimes a company gets it right -- my Psion 3a has never crashed despite being switched on and in use for over five years, but my shiny new Zaurus crashed within a month of purchase (a hard reset losing all data was required to get it running again). Of course, there's no need to mention Microsoft's inability to create a stable system. So, why are modern operating systems still unable to deal with and recover from problems? Is the need for speed preventing the use of reliable software design techniques? Or is modern software just so complex that there is always another unexpected interaction that's not understood and not planned for? Are we using the wrong tools (such as C) which do not provide the facilities necessary to write safe software?" If we were to make computer crashes a thing of the past, what would we have to do, both in our software and in our operating systems, to make this come to pass?

1,224 comments

  1. Computers don't crash by UndercoverBrotha · · Score: 1, Informative

    People write sloppy code that makes them...

    --
    Solid!
    1. Re:Computers don't crash by BoomerSooner · · Score: 3, Funny

      That's called job security man!

    2. Re:Computers don't crash by UndercoverBrotha · · Score: 3, Funny

      That sir, is a TRUE statement.

      Everyone leaves some code that only they can fix...

      My Standards for variables:

      _needthis
      _needthis1
      _x
      _uz

      etc

      --
      Solid!
    3. Re:Computers don't crash by SILIZIUMM · · Score: 2, Funny

      Anyway remember, it's not a bug, it's a feature...

    4. Re:Computers don't crash by Anonymous Coward · · Score: 3, Funny

      The current issue of Scientific American states that 51% of crashes are due to user error. 15%=software error. 34%=hardware error. Refer to article for further info.

    5. Re:Computers don't crash by Trillan · · Score: 2

      Ah, but is user error defined as "well, you know it doesn't work, so why'd you try"?

    6. Re:Computers don't crash by Anonymous Coward · · Score: 5, Interesting

      The current issue of Scientific American states that 51% of crashes are due to user error. 15%=software error. 34%=hardware error. Refer to article for further info.

      You made a little "user error" there yourself-- the article says that 34%=software error and 15%=hardware error.

      Oh, and those figures are just for Web applications, not software applications in general.

      It's an interesting article. Unfortunately, they're not very clear about what constitutes a "user error." I've filled out Web forms that gave me an "error" when I included hyphens in my phone number or credit card number. That's far from an error, it's just poor user interface design.

      In my opinion, something the user does should never cause a program or operating system crash. If this can occur, it is the developer who is at fault, not the user.

      Apple's Human Interface Guidelines are a nice introduction to user-fault tolerance, even if you're developing for other platforms.

    7. Re:Computers don't crash by abirdman · · Score: 5, Insightful

      I'm afraid if a user error causes the program to crash, I've got to call it a software error. It's not that hard to write the error handling handling routines, it's just never in the budget. And the users are invariably able to discover new frontiers of errors the programmer(s) never dreamed of. No matter. If clicking the wrong box, entering the wrong data, plugging in the wrong mouse, or installing the wrong screensaver causes a program to crash it's not the users fault (bless them, for they know not), it's the programmers and design engineers fault.

      Hardware errors are another problem altogether. Luckily, it's usually quick to diagnose, and it's usually cheaper to replace hardware than software. It's great how I've been using Microsoft error reporting for about 6 months now, and it's never been their fault. They must be getting better. \snicker>

      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
    8. Re:Computers don't crash by Anonymous Coward · · Score: 0

      call me a retard, but I can never find what this saying is making fun of.

    9. Re:Computers don't crash by shaitand · · Score: 1, Interesting

      Although I certainly have no problems with apple or macs in general, I do have a problem with their user interfaces. Personally I don't think not giving the user the option of defining any settings which could cause malfunction to be the answer. The reason? Well it's pretty simple, when set properly those same settings give flexibility, added functionality, and performance (at least one, sometimes two, often all three of the above).

    10. Re:Computers don't crash by Anonymous Coward · · Score: 0
      And the users are invariably able to discover new frontiers of errors the programmer(s) never dreamed of.

      Typing 32768 pages crashes M$ Word(type a page then copy and paste a few times copy and paste that a few times etc)

    11. Re:Computers don't crash by NetCurl · · Score: 5, Insightful

      Personally I don't think not giving the user the option of defining any settings which could cause malfunction to be the answer. The reason? Well it's pretty simple, when set properly those same settings give flexibility, added functionality, and performance (at least one, sometimes two, often all three of the above).

      See, that's the thing. I like Apple's OS because at surface level, you can't get access to those features that could really break things if you screwed with them too much. If you really want to muck around with those settings, they are there and ready to be played with through various means (Terminal -- it's a freaking BSD system, Third-Party, and power-user know-how). I would like to respectfully disagree with your statment and say that by default they don't offer the option of defining settings that may cause malfunction, but in OS X they have left almost complete wiggle-room to in fact screw EVERYTHING up; if you know what you're doing. I think it's more genius than anything...
      --

      It's only when we've lost everything, that we are free to do anything...

    12. Re:Computers don't crash by Anonymous Coward · · Score: 0

      There was many times that if the Microsoft Operating system didn't crash and corrupted all my files that the virus would have. Thank you MS for that feature that saved my financial statments from the havoc of this virus.

    13. Re:Computers don't crash by geekoid · · Score: 3, Informative

      I would call anything that unnesarily foists a business rule onto the user an error.

      " If this can occur, it is the developer who is at fault, not the user."

      thank you. I have to combat 'stupid user' mentality at work every day.
      from "the user will never do that, so don't worry about it" to "I can't be blamed if the user wont read the manual".
      I try not to say it, but it is hell working with coders who got into code 3 years ago for the money. Whining about working 45 hours a week and not understanding things like pointer and user defined types. Normally thats fine, I don't mind mentoring, but when you explain it, to a developer, and there eyes glaze over until you tell them exactly what to write, for the 3rd time that day. I thought it was me, but I even gave the photo copies of very clear explaination, with very simple examples and diagram.

      hmmm, sorry about that, I think work is getting to me.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    14. Re:Computers don't crash by TheOldFart · · Score: 4, Funny

      Eliminate the user. That takes care of half of the problems...

    15. Re:Computers don't crash by digital+photo · · Score: 5, Insightful

      I would agree. Properly and well written code will gracefully handle runtime errors.

      Translation: Short of the user fubar'ing the program or data files themselves, the program should handle all user input in a graceful way.

      The problem though is that to do this would require quite a bit of extra work.

      Progammers are caught in a situation of getting something ready for market at a time dictated to them by a department which doesn't understand the underlying issues or saying "Screw it" and making the code solid.

      That only describes one way in which the problem is caused.

      The bigger problem is the attitude people have about computers which allows for this kind of shoddy programming. People are, for the most part, okay and even expectant of their computers to crash at some point in time.

      This in turn makes it okay to release bad code which will be "fixed later".

      I say that whenever we get a crash or a problem, we report it to the company and we post it to our websites and to review sites.

      I say that the users should make it a big fat noticable problem to the companies whenever their software breaks.

      why? because it means that whenever someone who's never used the software before searches on Google for that software or software company's name, they will find page after page of complaints, dissuading them from using the software.

      the flip side is, if the software works, post to your sites and review sites. Give the people and companies who produce good software credit when it is due.

      As users and consumers, we should find ways to encourage the producers and companies to produce solid code.

      Solid stable code shouldn't be the exception to the rule.

    16. Re:Computers don't crash by satterth · · Score: 1
      I can't be blamed if the user wont read the manual
      Who reads manuals?
      --
      Being called a dork on Slashdot must be like being called the retard in special ed.
    17. Re:Computers don't crash by Anonymous Coward · · Score: 0

      Most software, like all precision tools come with som e sort of manual or instructions as to what you should expect from your software. It should also tell you what it is that you can do with it.
      When the manual for your new chainsaw tells you in what end to hold the machine while starting it, you don't try to hold on to the blade end while pulling the coord. yupp most chainsaws has safeguards to so does software, yould should not try to load a screensaver binary into your waveeditor by renaming .wav any more then you should try glue stuck the safe guard on your chainsaw.

      ? My point is that programmers define a evironment in which their software runs with none or minor problems. and users are obligated to stick to those conditions. so if the enduser by mistake or purpose connects the usb mouse to the ehternet card ( well theres probably a hammer involved ) it's their on fault ?
      idont know about microsoft not having used windows since the days of 3.1 but i imagine their software is more like bying a two bladed chainsaw ( one in each direction ) with no manual and just a big ol button that says "Welcome"

    18. Re:Computers don't crash by Alan+Partridge · · Score: 2, Insightful

      who's gonna buy the product? who's gonna install it?

      --
      That was classic intercourse!
    19. Re:Computers don't crash by bhtooefr · · Score: 1

      It's because when Mr. Gates puts in a new feature in a program such as IE or Office, there is usually an associated bug.

    20. Re:Computers don't crash by jo_ham · · Score: 1

      My domain name, and hence my email address, has a hyphen.

      I have come across a couple of sites that reject my email address for that reason. It's usually no skin off my nose, I just take my business elsewhere, but it's annoying if the site I found was the cheapest for a particular item I was after - it happened with a cheap international call provider (using BT to call internationally from the UK is suicide).

    21. Re:Computers don't crash by jo_ham · · Score: 2, Interesting

      I got fed up with just that sort of thing and changed computing platform. I'm not saying that the Mac never crashes, but it's certainly been a massive, massive step in the right direction.

      A quick trip to the terminal reports my uptime as "11:35AM up 57 days, 12:42..." This is by no means a long time by Unix standards, but for a laptop (iBook 600Mhz) that I use everyday, sleeping, waking, starting and stopping multiple programs, working on all sorts of stuff, burning CDs, browsing the net etc, I'd say it was very good.

      The longest I could go on my Windows 2000 box before I'd have to reset was about a week - it wouldn't crash, it would just get confused and start swapping icon images over, so Word would have the Excel icon, and so on.

      The only time I reboot my iBook is for system updates. Very few programs "Unexpectedly Quit" on me (Camino used to do it occasionally, every 2 weeks or so, but I'm using Safari right now). I've never had a kernel panic in 10.2.x (I had two in 10.1.5, but I traced it to the well known Classic environment and a USB device panic bug that was fixed).

      If you want your software to crash less, buy a Mac.

    22. Re:Computers don't crash by cpct0 · · Score: 1

      I would agree with you on this topic. But even by Foobaring the code, it should STILL handle anything gracefully.

      Best example, from M$. My computer was dead, and I do mean it. It barely started up and acted all weird. A faulty SIMM in that case. I used to work with M$-DOS edit. And it simply asserted whenever there were any real weird problems. It would quit (we're not yet on the micro-reboot systems) but at least, it wouldn't kill my data.

      Being a good worker in a software company, I can tell most bugs are there because we don't have time to "make things right", and no incentive to do it right either. Money talks. Users talk too... if you don't have any bad press because of the bugs, that means there aren't a lot to boot.

      Another company I worked for had the exact opposite mentality. It was a critical-system application and a mere crash with loss of data would've meant at worst 1 month of lost data with little-to-no chance of recovering it afterwards... and no possibility of backup in-between. Not-so-weirdly, they had a VERY strict bug discipline.

      Mike

    23. Re:Computers don't crash by Anonymous Coward · · Score: 1, Informative

      I say Bullcrap.

      I work with a large number of vertical apps that cost Massive amounts of money for what they are and I keep running into the crappiest software on the planet. These apps are for the Advertising sales market and they knw that cince there is only 1 or 2 competitiors out ther they dont have to write stable software. A user if they accidently type a letter in a numeric field can crash the app completely or hose the database is completely unacceptable yet we still pay the $3000.00 a month to use this crap here.

      I am in the process of writing an automated update app for one of these crap-quality software packages in (oh my god, I'm going to admit this... please dont stone me) Visual Basic and have been already told that it is of exceptional quality. Yet I am not finished with it. and it's not a difficult thing.. I simply upon the app running check a network share for a specific file and look at it's time/date stamp. if the server has a new one then copy the file plus the files listed inside it to the local machine,make backups of the existing files and then overwrite the exiting files and launch the program that the user really wanted to run. simple.

      I was told that I was innovative by copying the file to the temp directory first, checking that the file size of the files copied match the server's and then overwrite the existing files.

      What the hell is that? I'm innovative for making sure my app doesnt hose the user application because of a network glitch?

      Software companies are setting their standards really low. Espically when a VB app written by a non-programmer is considered by a software company innovative and high quality.

      and no this guy wasn't blowing smoke up my arse.. he said his programmers told him that it couldn't be done.

    24. Re:Computers don't crash by Channing · · Score: 1

      Tried that - windows still screwed up. I went on holiday for 2 weeks leaving my NT box running at work (doing absolutely nothing).

      When I got back it took 4 reboots in the first hour + several more over the first day before it started working again.

    25. Re:Computers don't crash by Anonymous Coward · · Score: 0

      haha

    26. Re:Computers don't crash by Anonymous Coward · · Score: 1, Insightful

      Hm. Yes, but when you're coding, you're dealing with the task in hand, which is never to write code that handles all possibilities of user interaction. Ultimately, it's testing that should find the bugs.

      Yes, there are bad coders, or coders who are simply over-worked and managers who want everything yesterday. But if enough testing is planned into the project, then there will ultimately be less bugs.

      All software has bugs. That's inevitable. It's minimising the number of bugs and their impact that's important, and that, ultimately, is best done when testing.

    27. Re:Computers don't crash by Booya72 · · Score: 1

      I agree 100% with you, it cannot be a user error. If the computer crashed because the user executed an event that was not predicted by the programmers...well it's the programmers fault for now being preventinve.

    28. Re:Computers don't crash by Anonymous Coward · · Score: 0

      Damn, I almost shoot a mouthful of coke through my nose from that comment. +5 funny!!! *sigh*

    29. Re:Computers don't crash by Anonymous Coward · · Score: 0

      ...and if you eliminate the computer it takes care of all of the problems.

    30. Re:Computers don't crash by Anonymous Coward · · Score: 0
      In my opinion, something the user does should never cause a program or operating system crash. If this can occur, it is the developer who is at fault, not the user.

      What, like turning off the power during a critical operation?

      It's a nice idea, but there are so many situations where software developers can't legislate for user actions - the above is just an extreme example. Terminating processes and not giving them time to clean up after getting the signal is another.

      I do agree however, there is a lot more that could be done from the usability point of view. Unfortunately everything takes time, thus costs money, thus will never be given as much priority as the features the same users are crying to marketing folks for.

      Even developers who make great efforts to produce stable software can't reasonably predict everything - that's why lifecycles involving test and revision exist. Unfortunately most software is released prematurely, to make some cash.

      I feel that stability is going to become an increasingly important 'feature' for users, and hopefully this demand will change the business aspects that drive the prioritisation of features vs. stability & usability. Anyone remember Bill announcing his bug fixing fest? That wasn't through a feeling of responsibility I'm sure - rather, good business sense; in response to the users increasing awareness of security bugs that may steer them towards competing products.

      It's capitalism baby! In the land(s) where money is King - everything else takes a back seat, unless the forces which drive the money making (i.e. the consumers) use their tremendous collective influence to ... ah this could go on for a while.... some of us have got stable software to write...

    31. Re:Computers don't crash by c4seyj0nes · · Score: 2, Insightful

      In my opinion, something the user does should never cause a program or operating system crash. If this can occur, it is the developer who is at fault, not the user C:\WINDOWS> del *.*

      --
      "In wine there is wisdom. In beer there is strength. In water there is bacteria." --Old German Proverb
    32. Re:Computers don't crash by Anonymous Coward · · Score: 0

      In my opinion, something the user does should never cause a program or operating system crash. If this can occur, it is the developer who is at fault, not the user.

      Customer of the last place i worked at complained that nothing was working on their SCO server so we sent a techie out to take a look. Turned out he'd decided to empty the Recycle Bin on the server.

      He'd done rm -r in the bin directory :-)

    33. Re:Computers don't crash by glatiak · · Score: 2, Insightful

      Twentyfive years ago I worked for a database and application vendor doing internals (Amcor in case anyone cares). Filtering for correct input and preventing long scale logical errors was a major fetish. Much of this was not difficult, just a group agreement to use library routines for all user interaction that had input validation and condition handling. Programs were built from shells that had standard condition handling embedded -- you added custom branches as needed. What made the whole approach successful was an agreement on standards of program behavior and a willingness to share common code. Errors like the ever popular buffer overflow just didnt happen because moves into buffers checked first, etc. The move to RISC processor architecture attenuated synchronous error handling, to be sure. But in the large, it is the obsession that in IT, experience is a handicap (just ask any recruiter about experience that is not 110% matched to what they want NOW) -- so junior programmer mistakes become institutionalized. The budget is a convenient excuse, but I think the real root is the inexperienced lack of appreciation for what matters.

    34. Re:Computers don't crash by Hrvat · · Score: 1

      Hey, I know all about pointers and some about user defined types. Can I come and work for your company?

      --
      TANSTAAFL
    35. Re:Computers don't crash by garrulous · · Score: 2, Funny

      >

      Have you ever met a user? They will rip out IDE cables while an OS is being loaded. They're savage, man! They're beasts and there's no proper defense!

    36. Re:Computers don't crash by Anonymous Coward · · Score: 0

      Users are like cats, the only good one is dead one.

    37. Re:Computers don't crash by Anonymous Coward · · Score: 0

      The old user adage: IF you put a delete everything button on the screen, a user will press it. They will then spend hours setting everything up and press it again. They will then set everything back up and do it again. Then they will call you and whine, scream, complain and threaten litigation - "it's your fault! It's Your fault!" "Doc! I walked in front of the train and it hit me. I'm in pain."

      Invariably you try to protect yourself. You have analysis and design sign-offs and all the nice things to CYA and in the end ... "That's not what I wanted! I won't pay for that!" or "What do you mean it's going to cost my department 2.5 million USD?" I never agreed to that. "That's not my signature! It's NOT" "Please step into my office. 2 hours later you're hunting for a box of some sort because that coffee cup with the sweet company logo you USED to proud to represent has some sentimental value.
      Users are evil and they NEVER admit it.

    38. Re:Computers don't crash by sharekk · · Score: 1

      In my opinion, something the user does should never cause a program or operating system crash. If this can occur, it is the developer who is at fault, not the user.
      I'm not sure about this. I'd hate to run an OS where I could not delete any file on my computer. however, I understand that some files are system-critical. Having played with different ways to kill Windows, I know it tries to hide them (default install you can't even see system files) It tries to warn you and make it impossible for the average user to delete them but there are always workarounds. I think it would be sufficient for all fatal actions to have a warning dialog "Hello, you are about to kill your operating system, are you ~sure~ you want to continue?".

      Not that we're at that stage of reliability yet but it'd be nice...

    39. Re:Computers don't crash by Creepy · · Score: 1

      I have almost no crashing problems on my Windows XP box, my Linux box or my MacOSX box. Actually, I've _never_ had any of them crash unless I did it myself (like writing kernel drivers... poorly, or running the 3 line crash Windows XP program :)

      I am an obsessive updater, so my uptime is rarely more than 2 weeks - that may be one reason. I also don't usually leave the Windows XP or Linux machines running (since they're on the same machine and I usually flip-flop from wanting to play games or wanting to write code, which I don't do for Windows)

      My Windows 2000 machine at work has blue screened on occasion, but that appears to have something to do with running tail from a network drive to watch a log file (which is certainly a app problem, but the app MAY actually be the OS). I stopped doing that about 2 months ago, and haven't seen a bluescreen since. The only reason I ever boot that machine now is for patches.

      Now that I've said that, I better knock on wood :P

    40. Re:Computers don't crash by TheCarp · · Score: 2, Interesting

      Impossible.

      How can a "user error" cause a crash. Software should do proper bounds checking and should act appropriately (which may mean giving and error message) no matter what input it is given.

      About the only crash due to user error that I can imagine really being due to user error would be the user killing the proicess with killall or pkill or its moral equivalent.

      Other than that, its just bad bounds checking and blaming it on user error is really bad form.

      Part of the problem IMNSHO is the commodity desktop. There are so many machines and they are all cheap and its more important to get the work done than it is to make sure the crash doens't ever happen again.

      On real systems, if the system crashes, crash dumps are sent off to the OS vendor and they track down the problem and fix it. I know, we have had to collect and send off crash dumps in the past.

      Each round of that makes the system more stable.

      Thats one of the advantages of Linux, and why there are some systems that don't crash (my linux boxes pretty much only crash when the power goes out, and the UPS battery drains). That is, that these OSs like Linuxs and BSD are used in real enviornments and there are people commited to fixing the problems... so even the lowly common desktop user reaps the benefits.

      See there is the differnce.. Windows, even the "server" versions grew out of a desktop OS with a desktop way of doing things. "Oh the server crashed, well lets reboot and hope it doesn't happen again", whereas Linux and BSD come from the land of the server down to the desktop "Oh the server cashed? get DEC on the phone" or "Get out those crash dumps".

      -Steve

      --
      "I opened my eyes, and everything went dark again"
    41. Re:Computers don't crash by cabazorro · · Score: 1

      "user error" is such an oximoron. A correct program does not allow a user to enter erroneous data. Unfortunately computers do what you ask them to do and not what the user "meant" to do. Computers are a few dozen years old. They are still very stupid systems. They are getting smarter though. Lets be patient. cabazorro.

      --
      - these are not the droids you are looking for -
    42. Re:Computers don't crash by TheCarp · · Score: 1

      > and no this guy wasn't blowing smoke up my arse.. he said his programmers
      > told him that it couldn't be done.

      Did you then tell him that his programmers are incompetent and he should probably not recruit programmers out of high school pascal courses?

      Seriously, if he was being truthful, thats absolutly pathetic.

      I can only see two possibilities here. Either his programmers are so incompetent as to be useless, or they are being so overworked with unreasonable deadlines and low staff that they are lieing through their teeth just to keep their heads above water. (I believe that is called "pushback" :) )

      Either way, hes got a major problem in that department.

      -Steve

      --
      "I opened my eyes, and everything went dark again"
    43. Re:Computers don't crash by Cookeisparanoid · · Score: 2, Insightful

      Its a well know HCI concept that people learn by trail and error so its really a design flaw in the program if user error causes a crash

    44. Re:Computers don't crash by garrulous · · Score: 2, Funny

      " A correct program does not allow a user to enter erroneous data." Name me one program that will keep a user from using the CD tray from acting as a coffee holder.

    45. Re:Computers don't crash by Pinky · · Score: 1

      The way it used to work on the mac was there were two files that were system critical. The finder and the system. If you tried to delete the system folder (which was defined basically as any folder that contained these two files) the system would tell you that you can't delete your main system folder 'cause that would render your system unbootable. You could still do it but you had to boot form another disk. You could also split the files up and trash them individually but I think the system file might have been "in use" and you can't delete files that are in use (you could move them, however).

      other files in the system folder were not critical so you could delete them (well the ones that were not in use) and all that would happen was your system would loose functionality. later on they started to bugger about with this so that there were now three files, one of which was the appearance manager or something..

      The Mac was great. You could rename the system folder to anything and it would still boot, you could stick the system folder anywhere on the hard disk even several layers deep in some folder hierarchy.. I even saw someone who had their system folder at the root (which meant that everything on their hard disk was inside the system folder.).. not a good idea but it booted and didn't give any errors or crash. In fact the only reason I was called was he was complaining his fonts had disappeared. He had a second valid system folder inside a folder called system folder on his main HD and he thought that that was his active system folder so he was putting his fonts in there. I simply moved the Finder file off his root and that system folder became unblessed, the system found the other valid system folder and blessed it for me and it was fixed.. although we did have to move a few preferences files over..

      macs were so much fun.. You could copy your active system folder from your HD to a zip then reboot from the zip without having to do anything else. Everything would work with no problems..

      Can't do that any more.. Now everything's got permissions to stop you from modifying things. I'm being stopped form doing things on my own system! Outrageous! More of the system uses primitive absolute paths so if you rename a folder suddenly some program will not know where it is. A program NEEDS installers because third party software has easier access to the system than me. blah.

    46. Re:Computers don't crash by b0r1s · · Score: 1

      Yea, but 16384 emails in a single "folder" in Outlook (2000) will cause it to die (and return a useless error message). This includes the "Deleted" folder, FYI.

      --
      Mooniacs for iOS and Android
    47. Re:Computers don't crash by allism · · Score: 1

      He probably would have had better luck hiring programmers from a high school class - they generally are not as closed-minded.

      We get much better results from the young programmers that don't know it can't be done, instead of the older guys that say it can't be done because they don't know how. The younger guys generally just figure they haven't learned how to do it yet, and that they need to learn how, instead of saying it can't be done.

    48. Re:Computers don't crash by Anonymous Coward · · Score: 0

      I would say that even messed up data files should not crash a program. There should be error checking there as well.

    49. Re:Computers don't crash by etcpasswd · · Score: 1

      When I took a course in Operating System concepts, I was surprised to realize that one of the "solutions" for the correction of a deadlock condition (among processses) was "do nothing" and probably let the system crash. Some problems in the domain of OS are actually NP-complete. Being practical means that the OS should let the user processes have a higher priority (literal sense, not in the context of a priority of a process) than the OS itself, to maximize the utlity value of the system. In other words, it is perfectly acceptable for an OS to choose a suboptmial design, and try to make the problems less obvious, or less damaging, which may not involve "solving" the problem. Many computer programs have the luxury of time-space tradeoff, but both are important when it comes to OS. To conclude, if you manage to build a system that doesn't crash at all, the chances are that your actual work done on the computer will slow down.

    50. Re:Computers don't crash by TitanBL · · Score: 1

      Apple's OS is designed for specific hardware - removing the need to juggle drivers & settings (micrsoft). This is where is gets much of its stability. Think of it as a custom tailored BSD suit. If you desire, you can modify the kernel (extensions)

      Define the core hardware, then design the software (allowing user to modify if needed)

      NOT

      Write software that supports the hardware of vendors who "comply" with our standards (aka agenda), then offer POS api for development "non-compliant" hardware drivers.

      Allowing people to crack open the kernel (open source) is the only way to get a secure and stable system.

      Plug and Play my ass.
      http://www.cnn.com/TECH/computing/9804/20/ga tes.co mdex/gates.30.160.mov

    51. Re:Computers don't crash by pjwhite · · Score: 1

      "user error" is such an oximoron. A correct program does not allow a user to enter erroneous data.

      Actually, a well designed program should allow the user to enter whatever they want, but deal with it gracefully if it's not what it was expecting, instead of crashing.

    52. Re:Computers don't crash by Anonymous Coward · · Score: 0

      "Mac OS X: A server strength operating system that your granny could install and use, running on hardware as fast as a pda"

    53. Re:Computers don't crash by Anonymous Coward · · Score: 0

      Yeah, because Microsoft software is the only software that has bugs. Those fancy OSS programmers never make mistakes.

      BTW- its pretty weak of you to delete your journal entries. Not cool, but we really couldn't expect more from you.

    54. Re:Computers don't crash by jo_ham · · Score: 1

      As fast as a PDA? Nah! They have PDAs with 3GHz P4s inside now don't they?

      Sure you can only check your email on the road for 5 minutes before you need to recharge it, but it's fast email checking!

    55. Re:Computers don't crash by shaitand · · Score: 1

      There are other things to configure than hardware.

    56. Re:Computers don't crash by h4x0r-3l337 · · Score: 1

      In what dream world do you run MacOS X on a 3 GHz P4?

    57. Re:Computers don't crash by shaitand · · Score: 1

      Since OS X your right the situation has improved... I suppose is the difference is that you believe the system should default to settings for the lowest common denominator, I disagree. I believe the lowest common demoninator should be calling someone who knows the impact of the things they want to do with the system and therefore knows how to set those options, the truely advanced stuff SHOULD be behind an advanced button, but clicking that button should bring you options that are as close as a gui can get to real text configuration. So that still leaves the most ignorant users to either learn something about what they want to do (thus improving life on earth) or at least call someone who has learned something about it (good option for those with enough money they don't need brains).

    58. Re:Computers don't crash by Anonymous Coward · · Score: 0
      The current issue of Scientific American states that 51% of crashes are due to user error. 15%=software error. 34%=hardware error. Refer to article for further info.
      Only 51%? There must be some mistake! I can reliably cause over 70% of web applications to fail with a user error by spelling my last name (D'mello) correctly.
    59. Re:Computers don't crash by jo_ham · · Score: 1

      I don't, I run it on a 600Mhz IBM PPC750FX - a G3.

    60. Re:Computers don't crash by TitanBL · · Score: 1

      Yes there are other things to configure besides hardware. Like your desktop image, default browser and email client, whether or not you want to use the START button or.... use the START button.

      Seriously though, what is your point? If a program crashes due to some setting - it should not take down the OS.

    61. Re:Computers don't crash by Anonymous Coward · · Score: 0
      Hard hardware errors are easy to diagnose and repair, but soft ones--the intermittents--are the seventh circle of the Inferno. Is it timing? Noise? Cosmic rays? Heat? Power line transients? Static discharge from cat to mouse cord?

      Work with hardware long eneough, and you know its not if it ever fails, but rather how often it does!

    62. Re:Computers don't crash by geekee · · Score: 1

      I think user error refers to superuser error. That is, the person with root access deleting critical files, etc.

      --
      Vote for Pedro
    63. Re:Computers don't crash by digital+photo · · Score: 1

      It is one thing to admit and resign to that fact that there will be bugs... during the development phase. But the debugging process isn't something that "another department" handles. It isn't something to be foisted onto paying customers.

      What makes someone a good coder, in my mind, is also what makes a person a good driver. You go about it defensively, you are aware of what is going on all around you, and you are planning and anticipating ahead of you well before you get there.

      The idea is that you code defensively so that there are fewer bugs introduced into the software at the start. If the bugs are there at the start, then it has no right leaving development to begin with.

      Passing known buggy code to "a debugging department" is an attitude which results in poor coding.

      If the base code is of poor quality, no amount of debugging can fix inherit flaws and problems.

      As an aside, I write, debug, and profile my own code. I work in concert with other coders. Bugs in our software means downtime and lost revenue for a multi-terrabyte storage system. If we don't have time to make the code stable, we don't push it out. We don't assume the customer is going to be understanding that we were tired when we wrote a particular block of code. We code for contingencies: network failure, drive failure, system crash and reboots. These are things which should be thought about well before any code is written.

      The code should be a source of pride for coders and engineers. Not a reason to apologize for bad planning and constant debugging.

    64. Re:Computers don't crash by shaitand · · Score: 1

      absolutely it should not take down the OS. But having a setting available that can crash the app if not properly configured is often a sign of good design, not bad design.

    65. Re:Computers don't crash by volsted · · Score: 1
      What, like turning off the power during a critical operation?

      I think there is a lot of value in designing systems, that recover gracefully, even after having been switched off (this could also happen due to a power failure). Journalling file systems is just one example of of OS technology meant to support this.

      Many applications have over the years been designed to frequently save their state, and thus minimize the impact of crashes, but it would be nice to see a lot more. The coding effort involved is not all that big either, and with the speed of modern hardware the overhead should not impact usabilty all that much. There really is no excuse!
      --
      Mads V. Pedersen Sr. Software Engineer
    66. Re:Computers don't crash by bobbity · · Score: 1

      How can an OS crash be attributed to end user error, if a user can halt the system doing something thats not administrative, such as pruning a system directory, then the its an OS error not a user error.

    67. Re:Computers don't crash by bhtooefr · · Score: 1

      (Why, oh, why are ACs following me?)
      Did I ever say that MS software is the ONLY buggy software? No.

      I was explaining a joke to someone. Opera is buggy (good browser, but it crashes at least as much as IE). Mozilla is buggy. OO.org is buggy (a patch was just released a couple of weeks ago for a Windows OO.org printer bug). Linux is even buggy. Look at it, compared to, say BSD. Netcraft lists three different OS entries in the top 50 uptimes (last I checked). They are: BSD/OS, FreeBSD, and Windows 2000. If you're having problems with Windows 2000, it might be user error. However, if you're having problems with XP, it might be the OS. Every version of Microsoft software gets bogged down with major bloat (not saying that OSS doesn't have bloat of it's own), and bugs related to that bloat. Fading menus on Windows XP has a bug that makes the processor hit 100% usage. Then again, OO.org had a bug that didn't let it print to a non-default printer (on Windows only, though). The thing is, though, OSS programmers get the fixes out quickly. And, if they don't, programmers can fix them themselves. Tell me Microsoft does that, or lets programmers do it on their own.

    68. Re:Computers don't crash by scarimonger · · Score: 1

      Actually, I believe the saying goes "Its not a bug but an unexpected feature".

    69. Re:Computers don't crash by TitanBL · · Score: 1

      "But having a setting available that can crash the app if not properly configured is often a sign of good design, not bad design."

      What? Allowing for settings which if configured incorrectly could render the application useless is not a sign of good design. Maybe it is charteristic of applications that allow a good amount of flexibity, but not good design. Well written code should never crash - rather generate error messages that tell the user/developer what went wrong.

      " Although I certainly have no problems with apple or macs in general, I do have a problem with their user interfaces. Personally I don't think not giving the user the option of defining any settings which could cause malfunction to be the answer. The reason? Well it's pretty simple, when set properly those same settings give flexibility, added functionality, and performance (at least one, sometimes two, often all three of the above"

      I think you are missing the point made concerning OS X. It provides a very impressive GUI with no loss in functionality/flexiblity. Remember... It is Unix.. The best of both worlds - or I guess you could say all worlds... I currently have Windows XP and KDE running inside OS X. Settings Galore! Ha.

      Check this out - for better explination.

  2. Simple ... by Vilim · · Score: 4, Insightful

    Well, basically as software systems get more complex there is more things to go wrong. That is why I like the roll-your-own-kernel of linux. Don't compile the stuff you don't need and fewer things can break.

    --
    History will be kind to me, for I intend to write it - Sir Winston Churchill
    1. Re:Simple ... by Transient0 · · Score: 4, Insightful

      More specifically... As hardware gets more complex, software gets more complex to fill the available space. More complex software not only means more things to go wrong but also means that the hardware never really gets a chance to outpace the needs of the software.

      Also, as I'm sure someone else will point out, it is very hard to right code that will not crash under any circumstances. Even if you are running a super-stripped down linux kernel in console mode on an Itanium, you can still get out of memory errors if someone behaves rudely with malloc().

    2. Re:Simple ... by cscx · · Score: 4, Funny

      Actually the Zaurus he mentions crashing in the article runs a roll-your-own Linux kernel... ;)

    3. Re:Simple ... by seinman · · Score: 1
      it is very hard to right code that will not crash under any circumstances.
      And I bet it's even harder to write the same code.
    4. Re:Simple ... by The+Analog+Kid · · Score: 5, Interesting

      Yes, on my parents computer, which has 2000 on it(tried Linux it didn't work for them). I set most of the services to manual that aren't needed. Disabled Auto-update. Put it behind a router ofcourse. The only problem remained was Internet Exploder, well I just installed Mozilla with an IE theme, haven't noticed a difference). I think killing most of the services keeps it up. Haven't had a problem with it. This was done before KDE 3.1.x so who knows Linux might work after all.

    5. Re:Simple ... by MikeXpop · · Score: 2, Insightful

      Exactly. I expect that when I enter in [9], [+], [3], [=] on my calculator it will respond with "12", not "ERROR". I expect if I do the same thing on the calculator.app it will do the same thing, agains sans-crash. However, if I'm trying to download a huge file while opening and closing lots of windows, programming some web pages, uploading them to the web, listening to some tunes, talk to 80 different people on AIM, and enjoying a flash animation at the same time, the computer might crash. After all, those are two very different things.

      --
      Etiquette is etiquette. He kills his mother but he can't wear grey trousers.
    6. Re:Simple ... by Zach+Garner · · Score: 3, Funny

      I find that is really easy to wrong code. I do it all the time...

    7. Re:Simple ... by Anonymous Coward · · Score: 0

      Pullin' a fast one on the parental units, huh kid? The old switch-em-out Windows with Linux trick, huh? You saw what happened when they replaced Taster's Choice with that other shit coffee, didn't you? Ahh, too young I bet.

    8. Re:Simple ... by stefanlasiewski · · Score: 1

      This time, he switched Win2k with Linux and it didn't work out so well.

      In a few years, he'll switch his parent's vodka with water. Hope that deal goes over better.

      --
      "Can of worms? The can is open... the worms are everywhere."
    9. Re:Simple ... by orbbro · · Score: 5, Funny


      And, when the cocaine that let's YOU do all these things wears off, you'll crash!

      --
      "It's an erotic, spectacular scene that captures the thrusting, violent, vibrant world Bohemian spirit..."
    10. Re:Simple ... by fishbowl · · Score: 5, Insightful


      "However, if I'm trying to download a huge file while opening and closing lots of windows, programming some web pages, uploading them to the web, listening to some tunes, talk to 80 different people on AIM, and enjoying a flash animation at the same time, the computer might crash."

      Was it, or was it not, designed to be used in this way? If it was not, why does the system let you try it?

      --
      -fb Everything not expressly forbidden is now mandatory.
    11. Re:Simple ... by Fulcrum+of+Evil · · Score: 2, Insightful

      Even if you are running a super-stripped down linux kernel in console mode on an Itanium, you can still get out of memory errors if someone behaves rudely with malloc().

      It's not crashing if you handle the error gracefully. Sure, the app crashes, but the system remains stable. Now, if you run an embedded system of some sort, you'll be writing that app, and being rude with malloc() is a no-no.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    12. Re:Simple ... by stefanlasiewski · · Score: 1

      That is why I like the roll-your-own-kernel of linux. Don't compile the stuff you don't need and fewer things can break.

      Of course, that's assuming that you know for certain that you don't need the stuff.

      Some of the kernel options are pretty darn arcane, and there are few people in the world who understand which kernel options are absolutely necesary.

      --
      "Can of worms? The can is open... the worms are everywhere."
    13. Re:Simple ... by DaoudaW · · Score: 1

      Syntax error: there is more things to go wrong...
      Syntax error: it is very hard to right code that will not crash under any circumstances

      Interesting that the first two posts in the thread had English syntax errors in their first sentences. We can still understand it, but compilers/CPUs would have problems. Seems that the real problem is the difference in the natures of wetware and hardware.

    14. Re:Simple ... by quantum+bit · · Score: 2, Funny
      I expect that when I enter in [9], [+], [3], [=] on my calculator it will respond with "12", not "ERROR"

      I expect that my calculator will respond with "ERROR" right after I hit [+]. And it doesn't have an [=] button.

      /RPN geek

    15. Re:Simple ... by Anonymous Coward · · Score: 0

      you're stupid. So you think everyone should learn how to compile their own linux kernal? At that rate, why don't we just all design our own cars as well. I mean, my car isn't fast enough..

    16. Re:Simple ... by guile*fr · · Score: 2, Funny

      I expect that my calculator will respond with "ERROR" right after I hit [+].
      too much RPL for ya.... now drop the hp and come with hands in sight

    17. Re:Simple ... by Anonymous Coward · · Score: 0

      It's hardly roll-your-own if it was put together by Sharp, now is it?

    18. Re:Simple ... by DarkZero · · Score: 5, Insightful

      Was it, or was it not, designed to be used in this way? If it was not, why does the system let you try it?

      Your microwave isn't designed to let you put an AOL CD or a piece of tinfoil in it and turn it into a box-shaped firecracker, but it still lets you try it. So the simple answer would be that it lets you do it because it can't control absolutely everything that it interacts with. A download manager isn't designed to be run at the same time as an MP3 player, AIM, ten browser windows, an IRC client, and downloads in other programs at the same time, but it still lets you try it because it has no control over those programs, no different than the microwave's lack of control over your hand and your AOL CD.

    19. Re:Simple ... by budgenator · · Score: 1

      I do stupid stuff like that all of the time, I normaly use linux. People who watch me do this who normaly use Win95/98/ME are shocked, and I've found that it usualy doesn't work on those systems, but they are desktop OSes and not realy designed for that kind of abuse. Now people should expect the WinNT/W2K/WinXP family to handle this abuse are they are business/workstation/server class OSes.

      Honestly I think the average desktop user would be annoyed if the OS complained that it had too little available memory to run the application, but if the app launched and ran slowly or death-spiraled, people would blaim the app not the OSes memory management.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    20. Re:Simple ... by Anonymous Coward · · Score: 0
      Also, as I'm sure someone else will point out, it is very hard to right code that will not crash under any circumstances.

      Not to pick on you in particular, but I think we've now identified a reason why software crashes. There are software developers out there who don't regard writing non-crashing software as a realistic goal.

      Yes, malloc() can fail, but it's really not that hard to avoid crashes when it does. That's the type of thing that gets so tedious without the right tools that people just blow it off. But with the right design and with the right tools, such as an allocation mechanism that throws exceptions and try { } catch () { } finally { } clauses placed appropriately (so that the right things are cleaned up in the finally portion), that will really rarely be the source of a crash.

      Of course, it helps to test in a low-memory environment too. But how often does that actually get done?

      Which leads me to my main point about why software continues to crash: the market doesn't place a big emphasis on not crashing. Lots of software (most software?) is a commercial product, and people making a purchasing decision don't really research and evaluate whether the software they're about to (maybe) buy is reliable or not. It's just not one of the top things people look for.

      So, why is that? Well, it's hard to evaluate reliability of software before you buy it. Crashes don't often happen during the first few hours you play with software -- they're a subtle thing, usually. But in addition to that, I think most people have mostly used products that do crash, so they accept it as a fact of life and don't know that it's really possible to do better. If they did, maybe they'd demand better software.

      And then there's always the fact that software development managers want to get more productivity out of people and/or meet some insane deadline, so they make developers rush through things. That causes unrealiable software as well. (What's the phrase? You can meet almost any deadline if you're willing to sacrifice quality.) But it's really not that different than the above; if the market really demanded reliable software, then managers wouldn't be so keen on making that trade-off. (Or it wouldn't be as easy for them to be in complete denial about the costs of rushing things...)

      OK, I guess that's all for now b/c I have some software that I MUST get done TONIGHT. (Yes, really.)

    21. Re:Simple ... by Marc2k · · Score: 2, Insightful

      Computers are just like liquor...the less his parents drink vodka, the less likely they'll be to notice a difference.

      --
      --- What
    22. Re:Simple ... by jcast · · Score: 1

      I think you've got it here---the less Microsoft software running on a computer, the more stable it is.

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    23. Re:Simple ... by fishbowl · · Score: 1

      "Your microwave isn't designed to let you put an AOL CD or a piece of tinfoil in it and turn it into a box-shaped firecracker, but it still lets you try it."

      No, it's quite the contrary. If you read the instructions that come with your microwave oven, I think you will find some language that insists the appliance is only for cooking food, and it might even go as far as to be very specific about what kinds of food. I would not be surprised if it even specified that live animals and CD's should NOT be placed in the oven.

      You have a good point in your analogy, but it is flawed. The crash condition I was referring to sounded like a reasonable use case to me, not a "zapping the CD" condition, and not even "trying to boil an egg in the microwave" either.

      I stand by my reasoning, that using a "download manager" at the same time as an IM client should be a reasonable use case, in addition to having maybe a dozen editor windows open. The CD Burner, due to the horrid legacy hardware interface, is probably not reasonable in this scenario, but, you will also find it documented that you should not attempt to do other tasks while burning a CD. Worst case for that should be a coaster, but NOT a system crash.

      That said, I have been able to do anything except A/D sampling while burning a cd using cdrecord on an ide-scsi device, since the later 2.2 kernels. I still don't trust Nero or Adaptec or anything else I have on the same box with windows to do this.

      --
      -fb Everything not expressly forbidden is now mandatory.
    24. Re:Simple ... by powerlinekid · · Score: 1

      Maybe on Windows 98.

      On a modern OS none of that should crash it, assuming you have the hardware to handle it.
      On my desktop I used to try some stress testing in Windows 2000 and Linux (2.4 kernel). Basically I'd play a dvd, launch a couple divx movies, a couple quicktime movies, open up OpenOffice and mozilla. That right there should of dragged the OS to its knees, but it didn't. Granted this is a dual processor machine but both OS's remained very responsive, even with the CPUs pegged at 100%.

      --

      can't sleep slashdot will eat me
    25. Re:Simple ... by Anonymous Coward · · Score: 0

      Was it, or was it not, designed to be used in this way?

      Imagine the advertising: "The new version of Windows allows you to have twice as much applications running at the same time!"

    26. Re:Simple ... by cyril3 · · Score: 1
      it was not, why does the system let you try it?

      Yeah, like you would be happy if an operating system didn't let you try something. MS release the X-Box and the first thing PLU bitch and moan about is how they won't let you load an entirely different operating system onto it let alone hack the one that's there.

      Is there nothing linux can't do? Can I just keep adding to your list of programs running with no negative effect on speed or usability.

      I suspect that MS release an OS that will be stable under normal loads for most users. The list you have is probably a little longer than most. You forget that most Windows users aren't like you.

    27. Re:Simple ... by Anonymous Coward · · Score: 0

      You don't crash on cocaine, might be your are thinking off amphetamine?

    28. Re:Simple ... by dipipanone · · Score: 1

      You don't crash on cocaine

      Bwahahahahahah. Come and talk to me again after you've done more than the occasional snort or two of the weak shit, sonny.

    29. Re:Simple ... by rat7307 · · Score: 1

      Bless this HP 15C and all geeks who choose to use them

      --
      Burma?
    30. Re:Simple ... by Anonymous Coward · · Score: 0

      You forget that most Windows users aren't like you.

      That's only because people have been trained not to try to get the most out of their systems. And those that DO want to get more out of their systems know better than to run windows.

    31. Re:Simple ... by scottymonkeypants · · Score: 1

      Nero's actually not too bad, but Adaptec's software seems to crash even if you don't remember to turn your back to the machine while it's burning :-)

      I've also had fairly good experiences with CloneCD. But I agree wholly about being more trusting in doing that type of multitasking with Linuxl; there have been times when I've had (and this it /not/ an exaggeration) more than 15 each of browser windows, editors (both Vim and Emacs, yes, I use and love /both/), and files in GIMP, as well as chatting on Gaim and reading email and usenet.

      I'll challenge anyone to try multitasking to that extent in either the mac OS or any flavor of windows.

    32. Re:Simple ... by Creepy · · Score: 1

      > Was it, or was it not, designed to be used in this way? If it was not, why does the system
      > let you try it?

      The answer depends on your OS.

      Windows pre NT based (Win 1,2.x,3.x,95,98,ME), like MacOS pre X were designed initially to be single user, single application systems, so no, they weren't designed that way. Multitasking was hacked in later, because that's what users wanted. The newer kernels (macosx, NT/2000/XP) are built around multitasking cores, so they are designed for it.

      NT based Windows is primarily unstable when in low memory or low diskspace conditions, which may happen if you're running too many apps. I've found that Windows and Windows apps usually handle these situations poorly - especially with disk space, where the errors sometimes are meaningless or confusing.

    33. Re:Simple ... by poot_rootbeer · · Score: 1

      More complex software not only means more things to go wrong but also means that the hardware never really gets a chance to outpace the needs of the software.

      I don't know if I agree with this... my desktop PC is a 3 1/2-year-old PII-400, and with the exception of decoding certain Divx video files, there's nothing in my typical routine that the old boy can't keep up with.

      Sure, if I were a gamer the situation might be different, but in general I feel that the hardware that's currently available now is more than is needed to run the software that's currently available now.

    34. Re:Simple ... by Dahamma · · Score: 1
      That said, I have been able to do anything except A/D sampling while burning a cd using cdrecord on an ide-scsi device, since the later 2.2 kernels. I still don't trust Nero or Adaptec or anything else I have on the same box with windows to do this.

      Have to say, CD burning is one of the WORST discrepancies between Linux & Windows... with recent model CDR drives' "burn proof" feature I have been able to burn a CD image with Nero while still *downloading* it.

    35. Re:Simple ... by Anonymous Coward · · Score: 0

      You find that it is really easy...

    36. Re:Simple ... by Anonymous Coward · · Score: 0

      This isn't funny. Are the mods on crack today?

    37. Re:Simple ... by lsdino · · Score: 1

      NT based Windows is primarily unstable when in low memory or low diskspace conditions, which may happen if you're running too many apps. I've found that Windows and Windows apps usually handle these situations poorly - especially with disk space, where the errors sometimes are meaningless or confusing.

      You can't just blame Windows here - Windows allows apps reliable control of their memory space like just about any other modern OS (But not Linux - it will pick a process & kill it when it runs out of memory rather than failing allocations).

      The fact of the matter is writing code that can handle running Out Of Memory (OOM) is very hard to get right. Consequentially if you haven't tested your program to handle OOM it most likely doesn't. The more memory allocation you do the more likely this is true. Great example: developer ASSERTs an allocation succeeds (but that's gone in the retail build). Hit a NULL reference exception, app goes poof.

      Finally it's really hard to test for, so most people probably don't do it. Chalk it up to another reason software sucks and still crashes: people don't test for these "corner cases" (hah, tell that to the person writing their paper who doesn't know how to save). And it's certainly worse that an OS would consider it acceptable to take away the chance to operate correctly from the developer.

    38. Re:Simple ... by fishbowl · · Score: 1

      "Yeah, like you would be happy if an operating system didn't let you try something."

      Certainly. I like it to prevent my users from writing over write-protected files, or reading each others files when read protection is turned off. I like it to stop a process from accessing memory not assigned to it. Sure, I'd be happy with that.

      --
      -fb Everything not expressly forbidden is now mandatory.
    39. Re:Simple ... by Alphtoo · · Score: 1

      Right about that... there's a limit to how much idiot-proofing can be built into any device. There's also a limit to how much SHOULD be built in. Those of us who are not idiots resent having to pay for it, and Darwin had the right idea about idiots... they'll weed themselves out, one would hope, before their genes can be passed on to future generations.

    40. Re:Simple ... by rocca · · Score: 1

      I disagree completely. A well-written program should handle all error conditions gracefully, and if all software (particularly OS's) did this there would be no such thing as a system crash -- except perhaps as a result of a processor failure on lower-end machines.

      For example a program should check all IO results, all memory allocation attempts should be verified before writing to, string lengths checked before copying, etc. All this is good programming practise, unfortunately with speed-to-market of both products and programmers, much of this has been lost.

    41. Re:Simple ... by 4of12 · · Score: 1

      the less his parents drink vodka, the less likely they'll be to notice a difference.

      The real question is whether his parents would make him a bigger heir in their will if they were drinking more vodka instead of more water. They might kick the bucket sooner on vodka, but run through more cash on the way.

      However, if he does computer support for them, then he's automatically set himself up as Scapegoat Uno, so there's a definite need to improve the old image:)

      --
      "Provided by the management for your protection."
  3. Easy by PerlGuru · · Score: 4, Funny

    Same reason cars crash.... people ;-)

    1. Re:Easy by robfoo · · Score: 2, Funny

      No, I think you mean other people. :p

    2. Re:Easy by Anonymous Coward · · Score: 0

      Airplanes crash.
      Cars collide.

    3. Re:Easy by Gortbusters.org · · Score: 1

      What's this, you're not blaming Microsoft?!

      --
      --------
      Free your mind.
    4. Re:Easy by The_dev0 · · Score: 1

      Tell that to James Dean...

      --
      Never fight naked, unless you're in prison...
    5. Re:Easy by clary · · Score: 1

      Odd, that's the same lame excuse the Architect gave in The Matrix

      --

      "Rub her feet." -- L.L.

  4. C and C++ are the problem by zedge · · Score: 3, Insightful

    Don't allow people to use languages that allow you to access memory not assigned to you or to access array positions that don't exist. This would fix 95% of software problems.

    1. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      This would fix 95% of software problems.

      Any hard evidence to back that up, or are you just pulling "statistics" out of your ass?

    2. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      Also. that lack of strong pre/post condition built into the language and input validation.

      If only people used Eiffel....

    3. Re:C and C++ are the problem by Anonymous Coward · · Score: 3, Insightful

      I'm writing thas as anon because I refuse to enter passwords on a computer I don't trust (internet cafe). But if you must know, my nick is TheMMaster.

      I think you misunderstand the problem, using pointers in C/C++ to unallocated memory only occurs with sloppy programing. It is not a "feature" of the language itself. You could easily do the same with visual basic even, if you wanted to. I DO admit that doing stuff wrong is easier with C/C++ (think of a copier in the wrong place).

      People that write bad code will always write bad code, the point is that C/C++ gives you more power to create better code than other programming languages do, because they are much more flexible.

      thanks for your time

    4. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      So you are stating we should use Java or PHP as the programs on a Operating System?

      Hmm let me know how that works for you in the productivity department.

    5. Re:C and C++ are the problem by VTS · · Score: 1

      But all that is up to the programmer, and are there languages where you can't try accessing an array at runtime with a subscript greater than the size of the array ?

      --
      --- No 16-bit support in Vista? Half of our modules still use it! ---
    6. Re:C and C++ are the problem by Jeremi · · Score: 1

      It might fix 95% of crashes, but it would do nothing to fix other logic bugs (e.g. "When Word saves my document, it forgets to save the page numbers and so I have to re-enter them every time I re-load the document", etc)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    7. Re:C and C++ are the problem by VTS · · Score: 1

      More power == Less forgiving ? Sounds about right...

      --
      --- No 16-bit support in Vista? Half of our modules still use it! ---
    8. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      TheMMaster: Pretty much what I meant, yeah :)

    9. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      If you would prefer to play games that run at 6fps on a 2GHz processor, then sure, lets ban C/C++.

      Maybe we could all use BASIC instead, then we could leave all the complicated coding to the writers of the compiler/interpreter.

    10. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      Zaurus applications are programmed primarily in Java.

      Nice troll, though. Stupid, but that's about all I've come to expect from a troll anyway.

    11. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      Yes. Basic,Pascal, ADA, Java, C#, any many others.

    12. Re:C and C++ are the problem by Anonymous Coward · · Score: 5, Insightful

      A commonly held notion, but not really well thought through.

      Sloppy programmer accesses through bad pointer in C. OS traps task.

      Sloppy programmer accesses beyond array bounds in MySafeLanguage. Runtime system traps tasks.

      In either case, your program "crashes", and the user isn't going to be any happier if you tell them that it's the "MSL virtual run time environment" that painted the blue screen of death than if it's the "operating system". The crappy program still ate my data.

      The two actual causes, IMO:

      1) People always code on the bounds of manageable complexity. Think about the programs people wrote 25 years ago. Nice as they were at the time, and they were on the bounds of manageble complexity, they have what would now be considered a laughable number of features and capabilities. As tools and processes and programmers get better, you don't get a better version of the same old thing you always had. You get something new and different that's just now become possible.

      2) Users (customers) get what they deserve. I have yet to meet a real customer that will actually wait longer and pay more for a higher quality system. Instead, they'll pay less to the guy that gets there cheaper or sooner. Everyone rants about quality, but they turn around and reward time-to-market and corner-cutting on development. If any significant proportion of users really insisted on quality, they'd get it, and probably at a much higher price. (Some, but not all, embedded development falls into this category.) Instead, they want it now and cheap, and the company that takes longer and cost more simply goes out of business.

    13. Re:C and C++ are the problem by jhoger · · Score: 1

      Well, sort of...

      Most strongly typed languages let you use an integer to index into an array, and don't force you to create an integer subtype which is appropriately sized to the array. So you will get run-time errors.

      You aren't likely to get a segmentation fault with such languages, but the program still fails with an exception. And if it doesn't blow up, it may just end up hobbling along pretending things are OK.

    14. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      No i think your wrong. making everyone use java would just lower the bar on who can program, and we would instead find more logic errors.

    15. Re:C and C++ are the problem by Anonymous Coward · · Score: 2, Insightful

      This would fix 95% of software problems.

      It also means that you throw away 95% of all existing software. Away goes the Slashdot (MySQL) along with the rest of the Web (Apache, ISS) and the Internet in general. Not that it matters, because you don't have any more operating systems (Linux, Windows, OS X, etc.) some of which are doubly bad because they are partially written in assembly language, which lets you do (gasp!) anything! What, precisely, are we to actually get done in your computing utopia? Read Pascal code by candlelight?

      And what do you mean, "don't allow" people to use languages you don't like? Keep your laws off my computer, mein Fuhrer.

    16. Re:C and C++ are the problem by m0f3z · · Score: 1

      i think you should all investigate the orthogonality of c++ compared to a language such as Ada.

      I can't see an operating system being coded in anything except a c based language for a while to come yet. its simply too powerful

    17. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      "This would fix 95% of software problems."

      The real question then would be why does Java software crash so much?

      Maybe because it's compilers are written in C, but I don't know. I'm a Java advocate, but needless to say Java programs that don't "allow you access memory not assigned to you" still crash. All the time.

    18. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      Most.
      Retarded.
      Troll.
      Ever.

      Walking over random memory in C/C++ would be the least of my worries. Generally my software crashes because of a corner error case I hadn't thought of, and this is endemic in just about any computer language you can think of (except possibly INTERCAL, and we'll give 5 bonus points to whoever successfully answers the question "What is INTERCAL?")

    19. Re:C and C++ are the problem by El+Cubano · · Score: 3, Insightful

      Don't allow people to use languages that allow you to access memory not assigned to you or to access array positions that don't exist.

      It always bugs me at how quick people are to blame the problem for crappy coding on the language. This would be tantamount to a carpenter saying, "if my hammers weren't so damned versatile I could build a higher quality product and not break my thumb open." People would look at him like he was crazy. Or better yet, an inexperienced apprentice saying, "That hammer is just too powerful for me to use."

      That being said, C and C++ are the hammer that was designed by carpenters (OS experts) for use by caprenters (OS experts). Don't blame the problems on a bunch of kids who are neverly properly educated on the use of the tool.

    20. Re:C and C++ are the problem by EelBait · · Score: 1

      The problem isn't with languages per se, but with programmers who don't really understand how computers work. I work in an IT shop and most of our programmers don't have a clue how computers work. If you tried to explain to them a buffer overrun they would have no idea what you are talking about. Languages that try to hold the programmers' hands don't help the problem since the programmers just write code that is inefficient and buggy in other ways.

      The biggest problem with buggy code is programmers who don't know or don't care to know what it is they are really doing.

    21. Re:C and C++ are the problem by CognitivelyDistorted · · Score: 1
      We'll give 5 bonus points to whoever successfully answers the question "What is INTERCAL?"

      The most obfuscated programming language ever. Don't tell me they're letting kids out of high school without having read the Jargon File these days. :-) (Actually, I didn't read it until I was a freshman in college.)

    22. Re:C and C++ are the problem by jonadab · · Score: 1

      > People that write bad code will always write bad code

      This is true. Software will always have bugs. But it is also
      irrelevant to the other poster's (completely valid) point:
      languages that don't provide basic facilities like automatic
      dynamic storage allocation (and deallocation) are largely
      to blame for inane errors like segfaults and buffer overruns,
      the sorts of problems that have plagued the software industry
      for thirty years although they are 100% preventable.

      Yes, that means C and C++ need to be set aside (for most app
      development) in favour of VHLLs, and the sooner the better.
      Of course lowlevel languages will continue to be used for
      inherently lowlevel tasks, like kernels and bootloaders, but
      in 2003 there's no reasonable excuse to start writing a major
      userland application in C.

      > the point is that C/C++ gives you more power to create better
      > code than other programming languages do, because they are
      > much more flexible

      They're not more flexible, just more arcane. Okay, so they're
      more flexible than BASIC and COBOL. Compare them to a decent
      language, like lisp or Perl, and they suddenly don't seem so
      flexible. Let's see... just in terms of basic flexibility,
      which paradigms can you program them in?

      paradigm C C++ Perl Python Lisp

      procedural yes yes yes yes yes
      object-oriented no partly mostly* yes partly
      event-oriented no ? yes yes no
      list-oriented no no yes yes yes
      functional no no yes ? yes
      logical no no no* ? no

      The ? are where I don't know; maybe someone who knows Python
      can fill in these blanks for me. I'd also be interested to see
      other languages charted by paradigm this way.

      Gosh, C is so much more flexible than the others...

      BTW, Lisp isn't even a VHLL, just a regular third-generation HLL,
      and older than Cowboy Neal's grandfather, but I threw it in just
      to show how C suffers from comparison with even half-decent
      languages, if you compare it on the basis of something other than
      raw speed. Which brings me to my next point...

      The main reason C and C++ are still used is for speed optimisation,
      but this speed optimisation comes at a cost in terms of developer
      time and application stability, and in an era when most desktop
      computers spend 99.99% of their time idle, it's high time we give
      up some speed optimisation so that our apps can be more stable,
      easier to maintain and improve, and, in general, better. I would
      gladly accept applications that run 200% slower in exchange for
      95% fewer crashes. Frankly, at this point, processor speed is such
      a commodity that I'd accept applications that run 200% slower for
      no tangible gain at all, because I buy the slowest CPU available
      and it spends almost all of its time idle; the only delays I ever
      *notice* are when I'm waiting on my CD-ROM drive or my internet
      connection or trying to work with some data (such as a large image)
      that's too big to fit in my RAM and so forces swapping -- or when
      an app crashes and I have to restart it and then redo my work.

      C was great in its day, but things have changed and it's time
      to move on. CPU time is now cheaper than programmer time. It's
      time for variables that can store arbitrarily large data without
      overflowing. It's time for lists and strings and namespaces and
      (dare I say it) matching rules to be first-class citizens. It's
      time for garbage collection, taint checking, and dynamic typing.
      It's time for the wide deployment of Very High Level Languages.

      * Perl6 will fix this big time.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    23. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      Require and Ensure in Eiffel are fine and dandy, but the fact remains: compared to C++, Java, etc., Eiffel's exception handling is pure shit.

    24. Re:C and C++ are the problem by CognitivelyDistorted · · Score: 1
      A commonly held notion, but not really well thought through. Sloppy programmer accesses through bad pointer in C. OS traps task. Sloppy programmer accesses beyond array bounds in MySafeLanguage. Runtime system traps tasks. In either case, your program "crashes".

      Only sloppy programmers write bugs, huh? Anyway, that is all true, but there's also this situation:

      Human, imperfect programmer accesses memory through bad pointer in C. Has no effect during testing. Causes crash/data loss/security hole in production at customer site.

      Human, imperfect programmer access memory through bad pointer in safe language. Causes crash during testing and is fixed before release. If it isn't caught, when it crashes in production it will cause a controlled, traceable shutdown (assuming no bad exception handlers!): less chance of data loss or security holes.

    25. Re:C and C++ are the problem by John+Courtland · · Score: 1

      I think the insane flexibility of C/C++ is the reason it fails in your comparison. It CAN use lists, you just have to write the code for that. It can do anything, you just have to write the underlying class, etc. Want a Lisp interpreter in C++? Simple, write one. Want a C++ interpreter in Lisp? Not so simple. You can write garbage collection in C, you can force strong typing in all the good compilers. VHLLs aren't bad, per se, but C/C++ is probably the best "jack of all trades" language out there. And I'm sorry but my whole problem with VHLL's is when I WANT to touch metal, it requires me to go right back to C, which if it were my choice, I would write the whole thing in anyway.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    26. Re:C and C++ are the problem by Mr+Z · · Score: 1

      It's the Compiler Language With No Pronouncable Acronym, and therefore, for obvious reasons, named INTERCAL.

      And here's a little known fact: The Texas Instruments C64x DSP has special hardware support for INTERCAL in the form of its SHFL instruction.

      --Joe
    27. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      DUMDUM! You forgot "Sloppy programmer accesses through bad pointer in C. OS traps task... hacker gains root access". NEXT!

    28. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      Can you explain how C++ is not fully object oriented?

    29. Re:C and C++ are the problem by innosent · · Score: 1

      No, a computer language is a tool. Choice of language is a combination of finding which tool is best suited to the task at hand, and personal preference. It's the same choice you'd encounter trying to drive a nail into a board. Writing directly in machine language is like driving the nail in with your forehead, ASM is like using the handle of a screwdriver, and pretty much every other language is like using a hammer. It really doesn't matter what brand of hammer you use, they all will do the task for you, although with varying degrees of effort.

      The question is, if you chose hammer x over hammer y to drive in your nail, but you miss the nail and split open your thumb, is it the hammer's fault? Bad coding is like hitting yourself with a hammer, you've got nobody to blame but yourself, but everyone always yells "stupid f&%$ing hammer!"

      --
      --That's the point of being root, you can do anything you want, even if it's stupid.
    30. Re:C and C++ are the problem by Kumkwat · · Score: 1

      >paradigm C C++ Perl Python Lisp
      >functional no no yes ? yes

      I find ur whole discussion of languages suspect by the fact that u actually think Perl is a decent language? How do u define "decent"? I fail to see how u can define Perl is functional? am I missing something?

      Also it is incorrect to catagorize C, C++, etc. as "paradigms", they are merely flawed implementations of a design methodolgy.

    31. Re:C and C++ are the problem by Skapare · · Score: 1

      C/C++ gives you the power to create better code. And C/C++ gives you the power to create worse code. Which is done is up to the programmer. Some programmers shouldn't be given sharp tools. Some programmers need to be kept in padded cells to avoid hurting themselves or others.

      --
      now we need to go OSS in diesel cars
    32. Re:C and C++ are the problem by fucksl4shd0t · · Score: 1

      People that write bad code will always write bad code, the point is that C/C++ gives you more power to create better code than other programming languages do, because they are much more flexible.

      So, what you're saying then is that if someone writes good code, it doesn't matter if they just cracked open a book and started learning or if they've been coding for decades, they have always written good code? And that if someone writes bad code, it doesn't matter if they just started their very first programming class or if they've been coding since you were in diapers, they have always written bad code?

      How do you account for inexperience? I sure in the hell didn't understand pointers my first run through them, and I don't really program all that much. But I can guarantee you that 10 years ago I would've forgotten to release memory back to the OS that I would never forget now. On the other hand, there's plenty of places, especially when learning a new class library, where it's possible to just not *know* that you had to release the memory back to the OS. Then you get an errata sheet for the library that tells you and you go "oh shit, you mean that program I just wrapped up and sent to my customer is leaking memory?"

      Saying that people write bad code is the reason for crashes is like saying all black people are criminals. It's just plain wrong. There are a LOT of reasons computers crash in general, and specific systems crash. There are entire chains to be dealt with, including information delivery (school?), that it's just not possible to point to one specific problem and shoot a silver bullet right through it. It is, in fact, easier to point to a problem and whine that it can't be solved rather than actually trying to locate as many of the problems as you can and solve the ones you can solve.

      --
      Like what I said? You might like my music
    33. Re:C and C++ are the problem by TheSunborn · · Score: 1

      But why use arrays at all?
      If you use a better container-type that grow when you add elements and shrink when you take the out you are almost there. And then insted of using any kind of subscription to name the elements, use an iterator. That way it is really diffucult to go to far in the array.

    34. Re:C and C++ are the problem by rmstar · · Score: 1


      paradigm C C++ Perl Python Lisp

      procedural yes yes yes yes yes
      object-oriented no partly mostly* yes partly
      event-oriented no ? yes yes no
      list-oriented no no yes yes yes
      functional no no yes ? yes
      logical no no no* ? no


      Why do you say lisp is "partly" object oriented? It has one of the more flexible and complete object systems around (clos)

      [...]

      BTW, Lisp isn't even a VHLL, just a regular third-generation HLL, and older than Cowboy Neal's grandfather, but I threw it in just to show how C suffers from comparison with even half-decent languages, if you compare it on the basis of something other than raw speed. Which brings me to my next point...

      IF you mean lisp 1.5 (end of the 50s) then you _might_ be right. But modern Common Lisp is a completely different beast altogether! It is the most HLL i've seen so far. It is in fact the most flexible language I've used.

      There is a nice book online that includes an overview of the CLOS object system.

    35. Re:C and C++ are the problem by vague · · Score: 1

      I'm sorry, but that's a load of crap. Bad tool can cause injury and makes the job harder than it could (should) be. Programming languages are a whole more complicated than hammers and there is much more room for different dimensions of goodness. Trying to make a cupboard with a saw designed for cutting down Redwoods is not only overkill, it's a whole lot harder than using the appropriate tool.

      --

      -
      Listen. Strange women lying in ponds distributing swords is no basis for a system of government.

    36. Re:C and C++ are the problem by ojQj · · Score: 1
      A truly good carpenter avoids joining things with nails. He uses dowls, or even better dove tail joints, and the like. At the very least he uses screws which at least hold better than nails. Likewise, when he's cutting an edge, or drilling a hole, he uses guides and shields to help him prevent errors and injuries while using his power tools. A joint in a good piece of furniture should either be invisible or good-looking.

      C/C++ is your nail and hammer -- sometimes the right tool despite it's drawbacks, but definitely over-used by amateurs. There are other languages which are the professional tools of choice among true craftsmen and women for creating handsome and robust software (when they have a choice -- unfortunately I don't).

    37. Re:C and C++ are the problem by jhoger · · Score: 1

      I agree 100%. But at that point we have gone beyond the issue I was responding to (i.e. that type-safe languages can prevent array indexing errors).

      There are few Languages that will prevent array indexing errors. But even in straight C I can come up with methods, or libraries which if used in lieu of direct access would never index outside of array bounds or raise an exception.

      So, rather than switch languages, we just put the work back on the programmer to get it right by design not hope the compiler will save him/her.

    38. Re:C and C++ are the problem by Col+Bat+Guano · · Score: 1

      >I agree 100%. But at that point we have gone beyond the issue I was responding to (i.e. that type-safe languages can prevent array indexing errors).

      There are few Languages that will prevent array indexing errors. But even in straight C I can come up with methods, or libraries which if used in lieu of direct access would never index outside of array bounds or raise an exception.

      People won't use them though, because the vast majority of libraries won't use them. The C culture is to ignore tricks like this (safety), so I doubt it would have much affect.

      >So, rather than switch languages, we just put the work back on the programmer to get it right by design not hope the compiler will save him/her.

      I'm not sure if you are being sarcastic, but -I- want the compiler to save me. I can make enough mistakes on my own without asking the compiler to not check things for me.

    39. Re:C and C++ are the problem by Col+Bat+Guano · · Score: 1

      Boss: I've heard we've got a tool that can fix 95% of our system crashes!!!
      You: Yeah, but we'll still have 5% of errors, so why bother at all?

      If I had a magic wand to wave that would get rid of 95% of crashes, you wouldn't be able to pry it from me!

    40. Re:C and C++ are the problem by Col+Bat+Guano · · Score: 1

      Ho Ho Ho!

      Yes, C is your wet dream come true. It's so fast that they had to add the "restrict" keyword so that for the first time -ever- it could have a decent range of optimisations applied by the compiler, now that it finally knew there were no aliasing problems.

      There are other languages around that do as well as C, but -are- -safer-.

    41. Re:C and C++ are the problem by Col+Bat+Guano · · Score: 1

      I have yet to meet a real customer that will actually wait longer and pay more for a higher quality system.

      The esteemed Henry Spencer (unix guru and all round clever guy) once commented on reliability...

      (sci.space.tech, 18th Nov, 1999)

      "I recall a discussion, some years ago, between folks involved with two
      different operating systems (neither of which is around today, due to
      larger issues like corporate mergers and bankruptcies). It went about
      like this:

      X: "We've asked the customers where they'd put development money if they
      were allocating it, and none of them would put much on greater system
      reliability, so we decided that this was not a priority."

      Y: "We got the same answers, but decided that they didn't tell the whole
      story, and we mounted a big push on improving reliability in general and
      chasing down the last lingering kernel bugs in particular. This has paid
      off HANDSOMELY, both in glowing reputation and in simpler troubleshooting
      (because large parts of the system are now very unlikely to be the source
      of a new problem). Reliability is more important than it looks."

      You propose 2 choices - wait longer and pay more, or
      pay less for the cheaper/sooner.

      I choose option 3 - don't code in C. It really is an imperfect tool that doesn't help you. Code in a language that supports you, is (as) quick as C and does a better job.

    42. Re:C and C++ are the problem by mendred · · Score: 2, Insightful

      C/C++ are languages that were designed to be as low level as possible. Therefore, the language itself is very simplified, meaning that it expects you to take care of every detail.

      Which makes this language very suitable when used by a small team of 10-20 people who know exactly what they are doing. They can design specific components relevant to their project/product and the rest 100-200 ppl can use a higher level language to link these components and build the final product.

      Using C/C++ only in a team of 100-200 ppl is a recipe for disaster. It requires a great deal of discipline and expertise and also a lot of time in such cases. And humans are prone to error after all. And there is that saying too many cooks spoil a broth.

      Also using only a high level language may make ur code stable for limited usage but under heavy load it will fail, and when it does you will run helter skelter wondering where the problem is. But there will be no indication in your code. I don't know if any of you java programmers have ever encountered a out of memory exception thanks to heavy object overhead and torn your hair in despair, but I have and it isn't pleasant.

      And a client isn't interested in excuses. He just says get it to work in the hardware I have. Atleast a crash or a memory leak, can be traced and fixed but this??? We found a workaround eventually but it was a very painful and harrowing process after consulting a lot of documentation and certainly belied java's reputation as a easy language.

      Also remember some faults may be under the hood and will be there till they get fixed- beyond your control, because essentially after all these languages add a layer over the lower level, meaning more complexity. And this complexity will be very generic in nature and may not pertain to your project or your need. In contrast, C/C++ is as low as u get and so you can write components suited for ur needs.

      For eg. in our project, the programmers outside the core team use java , but they will use native calls to some libs the core team prepares. We find that this way Java gives excellent performance. It is an excellent language for program structure and modules but not for coding core components as the overhead involved is significant. Significant allocations and deallocations are not done by them at all, (ya they use new in java but under the hood all allocation and deallocation is taken care of by the component, the java part is more like a wrapper and has a very low memory print so reduced work for the GC) and any module the core team develops goes through vigorous testing before it is handed over.And the others can just drop it in place. Its not as easy as it sounds, but the Boss anyway feels its a nice balance between efficiency and ease. And besides its helpful of ur boss is also a programmer and a member of the core team.:)

      Again if you are a java expert you could probably minimize those overheads without needing to touch C/C++. I am not sure. Also maybe in the future JIT compilers and other stuff may make java come very close to C/C++ in terms of performance,and defacto hardware may become powerful enough to drop C/C++ altogether (for example now nobody uses a 386/486 for serious work, but here we even had problems on a P4 1 ghz having 256 mb ram, ok may not be bleeding edge but can't call it obsolete). But till then this is the model we will use. Also if we require cross platform independence, only the core libraries need to be ported. Right now the linux port is underway.

      What I am trying to say is everything should be viewed in shades of gray. There is a place for everything and there is a reason for everything to exist. For example, my brother for his phd is using java to run some scientific calculations heavy number crunching stuff because it is easy to code and u don't have to worry about anything other than the logic. Plus his university has given him a dual processor P4 2.5ghz with 1GB ram just for that :))(oh it also has a radeon 9700 drool:). Bu

    43. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      mein Fuhrer

      if you cannot type ä, ö, ü or ß, it is correct to replace them with ae, oe, ue and ss.

      Führer == Fuehrer

    44. Re:C and C++ are the problem by gilesjuk · · Score: 1

      Well the original post was why do computers crash, not applications.

      OSes crash due to bad drivers, a kernel mode program fails bringing the OS down. It shouldn't really be possible for an application to bring down the OS if the drivers are robust.

      BTW, GCC does have an option to allow you to turn on some boundary checking.

    45. Re:C and C++ are the problem by jweatherley · · Score: 1

      > paradigm C C++ Perl Python Lisp
      > functional no no yes ? yes

      in 'you_are_wrong.cpp'
      ----
      #include <functional>
      ----
      end 'you_are_wrong.cpp'

      --

      --
      Reverse outsourcing: it's the future
    46. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      Last time I checked, lisp+CLOS was the only language certified by the object management group to include all object-oriented language features.

    47. Re:C and C++ are the problem by Pig+Bodine · · Score: 1

      And if your only tool is a hammer then everything looks like a nail. But that doesn't mean that a hammer is the right tool for every job. If all you need to do is drive in a bolt, why pound it in with a hammer thereby stripping threads and banging your thumb?

      If you are writing applications that don't require a language that works at such a low level, why not use something safer and easier?

    48. Re:C and C++ are the problem by smallpaul · · Score: 2, Insightful

      It always bugs me at how quick people are to blame the problem for crappy coding on the language. This would be tantamount to a carpenter saying, "if my hammers weren't so damned versatile I could build a higher quality product and not break my thumb open."

      No, you've completely mischaracterized the argument. Actually, the argument is: "People keep using a wrench as a hammer. Yes, you can do it but it isn't efficient and it isn't safe." C++ is not a good application programming language but that is what is is most often used for. It is excellent as a component, operating system or runtime programming language.

    49. Re:C and C++ are the problem by jonadab · · Score: 1

      > It CAN use lists, you just have to write the code for that.

      It can use lists, but it does not do list-oriented programming in
      the same way that lisp and Perl can. (Realise that in lisp, a
      list is also a function, and vice versa, and I've seen this done
      in Perl also, or something very like it.)

      > It can do anything, you just have to write the underlying
      > class, etc

      This is the same argument that was used to explain why assembly
      language was the most flexible language and why assembly language
      would always continue to be used for largescale app development.

      Congratulations, you've discovered Turing equivalence. Yes,
      if you want to build what ought to be language features into
      your code, you can _immitate_ alternative paradigms in just
      about any language. You can create linked lists of complex
      records in BASIC, if you want to inflict pain on yourself.
      (As an exercise in a data structures class, I've done this.)

      But this is... very messy. You end up with code that is needlessly
      difficult to maintain, needlessly bug-prone.

      > Want a C++ interpreter in Lisp?

      How about a C++ interpreter in C++? Huh? Nobody's ever written
      one of those either? That's because C++ wasn't designed to be
      an interpreted language. Now, a C++ _compiler_ in lisp, that
      wouldn't be so hard. (I don't know that it's been done, but in
      principle there's no reason it couldn't be. Lisp is not used
      traditionally for such things, because "it's too slow" -- a
      problem that is going away these days.)

      --
      Cut that out, or I will ship you to Norilsk in a box.
    50. Re:C and C++ are the problem by Espen+Skoglund · · Score: 1
      Sloppy programmer accesses through bad pointer in C. OS traps task.
      ...with a probability of 0.001%. 99.999% of the times the bad pointer access goes through unnoticed. If only there was a way for the developer to increase the detection rate from 0.001% to 100%.
      Sloppy programmer accesses beyond array bounds in MySafeLanguage. Runtime system traps tasks.

      ...with a probability of 100%. 0% of the times the bad pointer access goes thriough unnoticed. If only there was a way for the developers to increase the detection rate from 100% to 100%.

    51. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      think of a copier in the wrong place

      Tell me about it! They put the freakin copier right next to my office. Now that's all I hear all day, noisy machine makin' copies!! I feel like freaking Rob Schneider here! AAAAHHHHHHHHHGHGHG!!

    52. Re:C and C++ are the problem by KingRamsis · · Score: 1

      very insightful indeed, if have mod points i would mod you up, it seems that you can still read good stuff on /.

      For eg. in our project, the programmers outside the core team use java , but they will use native calls to some libs the core team prepares.

      exactly what I figured out after being burnt by Java several times, big native components and thin java wrappers around them.

    53. Re:C and C++ are the problem by VTS · · Score: 1

      Simple: Performance. For any data that is of a fixed size you can't get faster than an array, now if you want to add and remove elements then you write yourself up a tree class... [Homer]mmmm tree class....[/Homer]

      --
      --- No 16-bit support in Vista? Half of our modules still use it! ---
    54. Re:C and C++ are the problem by _typo · · Score: 1

      You take being a grammar nazi to a hole new level.

      --

      Pedro Côrte-Real.

    55. Re:C and C++ are the problem by Anonymous Coward · · Score: 0

      you mean whole new level.

  5. Whose computers still crash? by fishbowl · · Score: 4, Funny

    Crash? What crash?

    radagast% uptime
    8:56pm up 582 day(s), 12:45, 22 users, load average: 0.00, 0.00, 0.01

    --
    -fb Everything not expressly forbidden is now mandatory.
    1. Re:Whose computers still crash? by Anonymous Coward · · Score: 5, Funny

      load average: 0.00, 0.00, 0.01

      easy to keep a computer up if you never use it ;)

    2. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      Fuck you slashbot.

    3. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      Must be a SCO machine. Afterall... they are UNIX and can sue the world to prove it.

    4. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      Check out the load average, an idle computer is far less likely to crash than one that's in use... maybe that's the reason.

    5. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      must.. kill.. all.. uptime.. gloat.. trolls..

    6. Re:Whose computers still crash? by stefanlasiewski · · Score: 3, Insightful

      Crash? What crash?

      up 582 days


      Reboot? What reboot?

      Now, when was the last time you tested those init scripts? :)

      -= Stefan

      --
      "Can of worms? The can is open... the worms are everywhere."
    7. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      AVERAGE. If you're creating more load than 0.01 on average in a 582 day period, assuming 8 hours sleep/day and a few hours for eating... you need to read less Slashdot.

    8. Re:Whose computers still crash? by DNS-and-BIND · · Score: 1
      IN other words, it's been a really long time since you upgraded the kernel.

      Uptime isn't a fetish. It's great but uptime for the sake of uptime is just silly. Especially on a box with zero load, you're just wasting cash on electricity.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    9. Re:Whose computers still crash? by EvilTwinSkippy · · Score: 3, Insightful
      So what Kernel is that you are running? Hmmm. If it's a linux box that would barely by 2.4. More likely 2.2.

      (Digging through my pile of vulnerabilities...)

      Say, could we get an address on that box? Muhuahahahaha

      My uptime is largely limited by kernel upgrades and the fact I cycle the power once per month to prevent the drive head from sticking.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    10. Re:Whose computers still crash? by Cyno · · Score: 1

      Oh yeah? Back in my day I had to write games on a 1 Mhz computer with no hard drive and 64K of RAM. It could run super fast at 2 Mhz if I turned off the graphics. :)

      Now I'm curious... what were you writing games on?

    11. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      "IN other words, it's been a really long time since you upgraded the kernel."

      That's your opinion.

      radagast% uname -a
      SunOS radagast 5.8 Generic_108528-01 sun4u sparc SUNW,UltraSPARC-IIi-cEngine

      >on a box with zero load

      Zero load in this case does not mean "unused".

    12. Re:Whose computers still crash? by windex · · Score: 1

      Too bad two-kernel-monte can't somehow keep the uptime accurate..

      Whee..

    13. Re:Whose computers still crash? by toddestan · · Score: 5, Informative

      Even with my uptime experiments, which consisted of taking an old but reliable hardware, installing Windows 95/OSR2/98/98SE/ME, and then letting the computer idle and do nothing never resulted in more than about 25 days before I came over and windows was fubar'ed or the computer was simply locked hard.

      Windows 3.1 actually did quite well if I remember right, as it seemed perfectly content sitting idle doing nothing seemly forever. Windows 9x always seemed to randomly thrash the HDD, even after a clean install, which led me to believe that Windows 9x is never truly idle, it's always up to something (virtual memory?), and that something eventually will bring it down.

      Windows 9x actually has a bug in it that would lock the computer after 46 days of uptime, but it took years to catch it because no one ever got close to that mark.

    14. Re:Whose computers still crash? by UserGoogol · · Score: 5, Funny

      Well... in my day I had to write games with just seven transistors and a piece of cheese! And I thought I was lucky. Kids today. Geez.

      Granted, I'm 16, but that's not the point.

      --
      "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
    15. Re:Whose computers still crash? by conteXXt · · Score: 1

      looks suspiciously like a Sun running Solaris 8 (at least that's what the uname says)

      but why spoil a good post with data?

      --
      The truth about Led Zep should never be told on /. (Karma suicide ensues)
    16. Re:Whose computers still crash? by Dr.+Photo · · Score: 5, Funny

      Reboot? What reboot?

      Now, when was the last time you tested those init scripts? :)


      Init scripts? You heathen!!

      Rebooting is a special occasion, signalling the coming of the harvest season, or the installation of a new kernel. Accordingly, the High Priest shall bring the system up by hand, typing in the ancient incantations from the sacred scrolls.

      Init scripts are for the weak of faith. Let ye not be tempted by the daemons of rc-dot-d!

    17. Re:Whose computers still crash? by Unregistered · · Score: 1

      Reboot? What reboot?

      Now, when was the last time you tested those init scripts? :)


      The hdd died last year so i can't reboot. I'd lose everything.

    18. Re:Whose computers still crash? by Luke-Jr · · Score: 1

      Good point... Usually when I lose power I have to spend 10 minutes to make the system work correctly again.

      --
      Luke-Jr
    19. Re:Whose computers still crash? by EvilTwinSkippy · · Score: 1
      A PCjr with cartridge BASIC. Back then all of the listings in Byte Magazine were for Commodore's and Apple II's. I had to translate them to PC basic. Fortunately IBM provided a nice fat 3 ring binder with the entire language.

      The machine was neat because back in 1981 it had 3 channel sound! I was born in late 1974, you do the math.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    20. Re:Whose computers still crash? by EvilTwinSkippy · · Score: 1

      Cheese!? You must not remember the time before computers had mice!

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    21. Re:Whose computers still crash? by iwrasahp · · Score: 1

      Easy now... that's 10x my current load

    22. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      Your local electric utility loves people like you.

    23. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      Not always.

      The old HP Apollos running DomainOS had a bug in the TCP stack. After ~ 124 days they would lose network connectivity. Fix? Reboot.

    24. Re:Whose computers still crash? by Guppy06 · · Score: 5, Funny

      "Accordingly, the High Priest shall bring the system up by hand, typing in the ancient incantations from the sacred scrolls."

      Would those sacred scrolls, perchance, be small, yellow, and stuck all around the monitor screen?

    25. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      Unix load averages always go 1-min, 5-min, 15-min. That's a 0.01 load averaged over 15 minutes, not 582 days.

    26. Re:Whose computers still crash? by wideBlueSkies · · Score: 1

      >>it's always up to something (virtual memory?),

      If left sitting alone long enough, 98 tries to optimize your binaries for you. It's trying to be helpful, but I've found that it often crashes.

      Kind of like how my 2 year old daughter carrying dishes to the sink. She's trying to be helpful, but occasionally she drops one.

      In my daughters case, the crash is forgivable. And actually kind of cute. :) In the case of 98, well, it's not so cute.

      --
      Huh?
    27. Re:Whose computers still crash? by DNS-and-BIND · · Score: 1

      -01? That's the first one they came out with! 'Tis not my opinion, 'tis a fact.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    28. Re:Whose computers still crash? by Anonymous Coward · · Score: 1, Interesting

      My experience is quite different. I have 7 computers that run 24/7 playing a popular MMORPG.*

      The systems themselves are a collection of spare parts and old workstation purchased off Ebay. At the low end is a typically configured Pentium II 400 and at the high end is a typically configured Duron 900. All of them are running Windows 98 SE.

      The game and the scripts keep all the systems at or very near 100% cpu utilization at nearly all times. The only time they are not working is when the game servers are down or my internet connection is down. Both of those are not very frequent.

      Even under that somewhat heavy load, I go months without rebooting them. In fact, the only time they are rebooted is when I lose power or I'm leaving for on an extended vacation. One of them is an exception to that rule and has blue screened on occasion, perhaps 3 or 4 times in the past year.

      Of course, on the system I actually use(not one of the seven described above), I left windows 98 a long time ago and I remember being plagued with BSOD's, lock ups, and constant reboots to keep things working.

      What explains these two opposing performance comparisons? I have no idea really, but I have a guess...

      On systems I use, I am constantly adding/installing software and hardware. On the systems that just macro 24/7, I don't do any of that. There is nothing but the bare essentials installed. Perhaps that has something to do with it.

      Anyhow, back to the main point, I disagree that Windows based systems crash even if they are not doing anything. I have a whole bunch that work hard all day and they don't have that problem.

      *No, that wasn't a typo, scripts on the computers "play" the game. It is known as macroig in the MMORPG world.

    29. Re:Whose computers still crash? by stwrtpj · · Score: 2, Funny
      Well... in my day I had to write games with just seven transistors and a piece of cheese! And I thought I was lucky. Kids today. Geez.

      You had transistors?? What a spoiled brat. I had only three vaccuum tubes, an abacus, and a photo of ENIAC. And I was grateful!!

      --
      Karma: Frotzed (mostly due to the Frobozz Magic Karma Company)
    30. Re:Whose computers still crash? by cruppel · · Score: 1

      A couple buddies in the dorm gawked when I (yes, stupidly) ran out of battery power whilst installing Jag onto my iBook, and it recovered without even noticing.

      They also thought it was incredible when that was the last time they ever saw me log in (the day Jaguar came out).

    31. Re:Whose computers still crash? by ChaoticLimbs · · Score: 1

      /peels off 'ancient scrolls' in shame. Places them in 3-ring binder TYPED on six sheets of paper. Some were old enough that the stickum had worn out, were replaced with scotch tape, and retaped when that tape turned yellow. Proud new owner of a finally completed rc.d file. Rebooted. all fileserver functions now mounted, sound even works for the first time in 2 years. (don't need sound on fileserver, really) And no, it's built in to the motherboard, so it isn't wasting PCI bus bandwidth in housekeeping overhead. The overhead was there even without software making calls to /dev/dsp.

    32. Re:Whose computers still crash? by Imperator · · Score: 1
      Would those sacred scrolls, perchance, be small, yellow, and stuck all around the monitor screen?
      No, those are the Secret Tablets which hold the passwords. Rumor has it they haven't been changed in several years...
      --

      Gates' Law: Every 18 months, the speed of software halves.
    33. Re:Whose computers still crash? by Aliencow · · Score: 1

      My computer didn't count as fast as your abacus, you insensitive clod !!

    34. Re:Whose computers still crash? by etrnl · · Score: 1

      Interesting... which MMORPG?

      Most of the MMORPGs are less stable than the OS they run on ;)

      --etrnl--

    35. Re:Whose computers still crash? by TheNetAvenger · · Score: 2, Insightful

      Why is it that people are always using Windows98/ME that was basically written in 1997 and 1999 and then compare it to their *nix installations that are the current versions and running the latest *nix patches?

      If people want to compare MS and Windows to their *nux, at least use WindowsXP as the base line.

      It would be just as silly to compare WindowsXP to a 1997 version of any *nix out there.

      Or if you are going to use an 'old' MS OS, at least base it on WindowsNT4.0 which is at least in the same class line as *nix. Our clients have had high usage NT4.0 installations run for years without failures.

      Windows9x is a grand extension of the DOS architecture, NT on the other hand is just a completely different ball game by design.

    36. Re:Whose computers still crash? by jhdsl · · Score: 1, Flamebait

      It would be just as silly to compare WindowsXP to a 1997 version of any *nix out there.

      Yes I agree. Now comparing XP to Unix from say 1987 would prehaps be fair to XP.

    37. Re:Whose computers still crash? by fucksl4shd0t · · Score: 4, Funny

      Kind of like how my 2 year old daughter carrying dishes to the sink. She's trying to be helpful, but occasionally she drops one.

      HEh. My daughter's 4 and she's never accidentally dropped a dish. That doesn't mean she's never broken one, though....

      My son's two, and it's impossible to tell if he drops dishes on purpose or on accident, because he does it so much.

      Should've named my daughter Linux and my son Windows. Now we're having another one, what should I name him? BSD? What's he gonna do? Sit there and whine about how nobody loves him 'cuase he's the only true eunich left? Or is he gonna spend his time crying because right after he's born they're gonna cut him into three pieces and each person will claim their piece is better than the whole?

      Wow, first time I've ever trolled BSD. I feel strangely liberated...

      --
      Like what I said? You might like my music
    38. Re:Whose computers still crash? by fucksl4shd0t · · Score: 1

      And no, it's built in to the motherboard, so it isn't wasting PCI bus bandwidth in housekeeping overhead.

      Um, correct me if I'm wrong, but isn't onboard sound still hooked up to the PCI bus? It all goes through the southbridge, doesn't it?

      --
      Like what I said? You might like my music
    39. Re:Whose computers still crash? by fucksl4shd0t · · Score: 1

      You had transistors?? What a spoiled brat. I had only three vaccuum tubes, an abacus, and a photo of ENIAC. And I was grateful!!

      You had vacuum tubes? Shit you had it easy. All's I had was a couple of rubber bands, a rock, and a few sticks. And I was grateful!

      --
      Like what I said? You might like my music
    40. Re:Whose computers still crash? by fucksl4shd0t · · Score: 1

      The machine was neat because back in 1981 it had 3 channel sound! I was born in late 1974, you do the math.

      No problem, you fuckin' kid. YOu're the same age I am.

      --
      Like what I said? You might like my music
    41. Re:Whose computers still crash? by RayOfLight · · Score: 1

      Reboot? What reboot?
      Now, when was the last time you tested those init scripts? :)


      How about changing run levels?

    42. Re:Whose computers still crash? by TheNetAvenger · · Score: 1, Troll

      Yes I agree. Now comparing XP to Unix from say 1987 would prehaps be fair to XP.


      Clever...

      I'm sure Dave Cutler or another UNIX guru from the late 80s would agree with you, oh wait, he was one of the OS architects of NT that designed it to be something better than UNIX.

      Glad he was at least knowledgeable to realize the shortcomings of the UNIX architecture to reject it when MS set out to build the next generation OS architecture.

      There are so many features of the NT core (even the original 1992 3.1 version) that have yet to be implemented in most *nix variants(like Linux or BSD) it would make a fun debate, but with the spelling errors and nature of your post, I don't think you are someone that would add much to such a debate.

      Just another troll that has no clue about OS architecture (argh MS Bad, everything else good, fire bad, argh), nice to see the Slashdot posts haven't improved any...

      Geesh

    43. Re:Whose computers still crash? by cicatrix1 · · Score: 1

      Two thoughts:

      1) Name him BeOS and kill him.

      2) Name him OS/2 and sell him to crazy people.

      --

      I know more than you drink.
    44. Re:Whose computers still crash? by cicatrix1 · · Score: 1

      I'd reckon it's Ultima Online, but I am curious also.

      --

      I know more than you drink.
    45. Re:Whose computers still crash? by Lobo93 · · Score: 1

      Please stop it, peeps! ROTFLOL! This act drops me every time...

      Sheeze, you guys... Hrmmph. LOL..

      --
      "The only clear view is from atop the mountain of our dead selves." - Peter Carroll
    46. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      582 days, this is obviously a kernel bug. time to patch and recompile nerd

    47. Re:Whose computers still crash? by Bert64 · · Score: 1

      Well, my SunOS 4.1.2 machine from i believe 1993 or even earlier, has been running reliably ever since, not a single crash.. not a single os reinstall, downtime caused by moving house and power failures.
      Windows 95 is surely newer than SunOS 4.1.2, but nowhere near as stable.
      Come to think of it, i have a machine running IRIX 5.3 thats still going strong, i forget exactly how old IRIX 5.3 is, but its not exactly modern.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    48. Re:Whose computers still crash? by gl4ss · · Score: 1

      nt4.0 installations run for years????

      must be a hacker heaven!

      oh wait.. you mean they took restarted them on weekly basis to patch them... oh. .....

      --
      world was created 5 seconds before this post as it is.
    49. Re:Whose computers still crash? by Mike1024 · · Score: 1

      Hey,

      Even with my uptime experiments, which consisted of taking an old but reliable hardware, installing Windows 95/OSR2/98/98SE/ME, and then letting the computer idle and do nothing never resulted in more than about 25 days before I came over and windows was fubar'ed or the computer was simply locked hard.

      But then, why would anyone want to run thier Win9x machine for 25 days?

      If they were doing something like 3D rendering or web serving they'd be using NT, 2000 or XP.

      Complaining Windows 95 can't offer long uptime is like complaining because your 8 year old motor scooter doesn't perform as well as a brand new BMW.

      That's my opinion, anyway.

      Michael

      --
      "Goodness me, how unlike the FBI to abuse the trust of the American public." -- The Onion
    50. Re:Whose computers still crash? by tkg · · Score: 1

      I cycle the power once per month to prevent the drive head from sticking.

      Is sticktion(sp?) really still a problem with modern hard drives? Besides, even if you don't actually use your system I'd think there'd be enough random disk activity (from cron scripts, etc.) to prevent this.

    51. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      Well, my SunOS 4.1.2 machine from i believe 1993 or even earlier, has been running reliably ever since, not a single crash.. not a single os reinstall, downtime caused by moving house and power failures.
      Windows 95 is surely newer than SunOS 4.1.2, but nowhere near as stable


      Windows NT3.1,3.5,& 4.0 are also newer, and you know what, they don't crash either.

      Quit comparing a DOS extended OS like Windows9x to *nix. It is like comparing Mac System 9 to *nix or even Mac OSX itself. Mac System 9 is a lot newer than any of these and you know what, it crashes quite easily as well.

      These are 'different' class operating systems. A true OS that has true isolated processes and an isolated core/kernel is much different from than an OS like Mac System 9 or even Win9x that has a 16bit Mutext thrown into the mix that does sit on a DOS boot loader.

      At least keep the OS fight in the same class. WindowsNT was built to be and has ALWAYS been a very stable OS because it has ALWAYS had isolated applications and a protected kernel.

    52. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      nt4.0 installations run for years????

      must be a hacker heaven!


      Um, unless they are not connected to the internet and have a very orchestrated internal security procedure. People forget that NT4 had a C2 level certification for security with the option of applying for a higher class, something that Linux has yet to acheive.

      People also forget that back in 1996 not every server was connected to the net.

      Geesh...

    53. Re:Whose computers still crash? by SquadBoy · · Score: 1

      I can spell so back up your claims. :)

      --

      Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
    54. Re:Whose computers still crash? by ivan256 · · Score: 1

      As far as the users of the machine are concerned, it does keep it accurate. All the processes on the system are stopped. No running processes == not up from the user's point of view.

    55. Re:Whose computers still crash? by Reziac · · Score: 1

      Oh, as to why anyone would want to leave Win9* running continously? Well, my machines are up 24/7. If there's no reason to shut Windows down, I don't -- after all, I may want to do something in Windows at any time of the day or night. So it runs til I feel an urge to use DOS, or til various leaky programs suck resources down below a useful point.

      I don't regard it as any different than when I left my old pure-DOS machine running for 5 years straight (with only two reboots, both for hardware issues).

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    56. Re:Whose computers still crash? by Rysc · · Score: 1

      There are so many features of the NT core (even the original 1992 3.1 version) that have yet to be implemented in most *nix variants(like Linux or BSD)

      Such as? Linkage? I am genuinely curious.

      --
      I want my Cowboyneal
    57. Re:Whose computers still crash? by FurryFeet · · Score: 1

      Whatever you do, don't name him BSD.
      If you do, the trolls will kill him.

    58. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      I can spell so back up your claims. :)

      Ok, so are you needing a tutor or just want someone to look up the information for you?

      How about this for basic differences...

      Windows NT is a variation of a microkernel design that makes use of the client/server model. NT is roughly divided into two parts, NT executive, the kernel portion of the operating system based on a layered design, and a set of "protected subsystem" servers that run in user mode. These servers each provide an operating system environment to user applications.

      The advantages of such a design include the ability to upgrade OS environments separately from the operating system itself, the ease of adding new environments, increased security and reliability, and selective porting of environments.

      Hence NT can layer OS environments on top of the NT executive. This is NOT something *nix is designed to do. That is also why you find that with NT, Microsoft or third parties (OpenNT) can add their own subsystems that reside on top of the NT executive kernel; thereby, supporting any OS in a native mode and not through an emulation, but yet still having the basic NT architecture underneath the residing OS subsystem.

      Second Point...
      WindowsNT was designed as an object oriented OS with token passing.

      Just one example of why this is important is that NT, with its object design, views processes, threads and other resources as objects, and the entire security model of NT is based on the notion of object security.

      Because many parts of NT are based on a client/server model, with objects moving from place to place, it is more efficient and reliable to attach security and permissions information (access control lists) to the objects themselves, rather than rely on a single centralized security scheme.

      *NIX on the other hand, relies for the most part on the kernel for security enforcement among system components, and almost all internal interaction is through the kernel.

      So assuming you can spell, do you understand a couple of the architectural differences and features of the NT architecture that are not and will never be a part of the basic concepts of the *nix OSes just by the nature of their design and definition?

    59. Re:Whose computers still crash? by SquadBoy · · Score: 1

      So why is this better?
      Assuming that your answer is speed/stability/security then why in the real world does NT do so poorly in all of those areas?

      --

      Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
    60. Re:Whose computers still crash? by bannerman · · Score: 1

      You had a real photo of ENIAC? And multiple vacuum tubes!!??!!? You were obviously not middle income.. and I thought I had it easy!

      --
      I keep forgetting my place. Jesus is for losers. Why do I still play to the crowd?
    61. Re:Whose computers still crash? by chez69 · · Score: 1

      Yes, linux has not gotten C2 certification, but windows NT was only able to do it without a network card.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
    62. Re:Whose computers still crash? by gl4ss · · Score: 1

      so you can forget about intranet & other semi-internal intrusions fully?

      like microsoft did when a certain worm got somehow in their internal net?(they hadn't patched their own computers, most likely because nobody assumed there wouldnt be any connection to net)

      like, i'm fearing a bit of our countrys military(not usa) network because it runs on a 'special' (not that much special) version of a properiaty os that had it's support dropped, and while it is physically cut from the internet it's not a big deal to get access at the network(rather easy).

      --
      world was created 5 seconds before this post as it is.
    63. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      Even if you choose to skip most of this post, at least check out the last few paragraphs

      Assuming that your answer is speed/stability/security then why in the real world does NT do so poorly in all of those areas?


      Hate to kill Santa Claus, but this is for the most part a myth that anti-Microsoft people like to tell around campfires.

      #1) Security - Microsoft had fewer security related alerts last year than Linux, or any other OS.

      Do me a favor, check out the security alerts on a common Linux vendor site, like debian.org, you will see more *nix specific security alerts in a month than you will find coming from Microsoft in a year for the NT product line.

      And also remember that there are a lot of angry anti-Microsoft people out here that work to find security holes in NT(Win2k/WinXP implied) to exploit.

      So as far as security, the NT OS has a much better track record in its 11 years of existence than Linux or most any other *nix out there.

      #2) Speed... NT has proven to be faster than most Unix variants and even Linux in almost every test. It was well known in the Linux world back in 1996/1997 that NT was a faster Server and desktop OS, something Linux was striving to catch up to. (Do a net search; there are many references to this, written by Linux developers.)

      And with Windows 2003, the speed margin is widening considerably.

      Linux servers can be tuned (recompile kernel, set web hit anticipation, etc) to be a fast server, but out of the box, NT will always win.

      Why and how does this relate to what I wrote in the previous post? Because the way the kernel is made in NT, it doesn't have to be recompiled for optimum performance. This is just a piece of the beauty of its HAL and driver implementation model.

      As for on the desktop, the XWindow layered model provides for less performance in the GUI than WindowsNT. For goodness sake, XWindows is a Windowed Network Protocol, not something that should be the basis of a desktop OS Windowing system.

      There is no way XWindows with KDE or any other manager layered on top of it will ever be as fast the native GUI in the WIN32 subsystem.

      Don't get me wrong, Linux and other variants do a damn good job of getting the most performance out of XWindows, but it will hard to match NT's native GUI.

      Look at Apple, even they chose to not implement the XWindow environment and instead created their own window manager for features and performance. Also look for what MS is doing with Longhorn, it has the potential to make a serious strive in the GUI abilities of WindowsNT that will leapfrog what everyone else is doing on the desktop. And I don't just mean its abilities to float pretty windows around - go read about it.

      #3) Stability... If you timeline NT and compare it to almost any *nix available at that time it was available, its stability was on par if not above what top vendors like Sun and other companies were producing.

      Look at WindowsXP or even Win2k and compare it to any current OS on the market. If you have used WindowsXP, you will know that unless there is a serious hardware failure or very badly written (uncertified) driver installed, the OS simply does not crash. Period. (Working in a developer capacity on both WindowsXP and several *nix variants, I can attest to the extra stability XP offers - and I wish that stablity was there on the *nix front as well.)

      With XP's ability to dynamically fix calls made by poorly written software, it has an edge on the *nix world. In other OSes the application would just simply be terminated, in WindowsXP, often the app is compensated for and allowed to run without letting it hurt the system or affect other applications or processes. And of course like other OSes, the last resort is to terminate the app, but still not causing harm to function of the OS or other applications.

      WindowsXP also has the ability to mark and track DLL requirements of software applications so that conflicting libraries wil

    64. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      Yes, linux has not gotten C2 certification, but windows NT was only able to do it without a network card.

      Umm... A requirement of C2 certification is that the machine is isolated from a network.

      It wasn't that they were not able to get C2 with a network card, but to even apply to be C2 compliant, it had to NOT have a network card.

      Go read about C2 security certification, you will see that NO OS can or will ever get C2 certification when networked.

    65. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      so you can forget about intranet & other semi-internal intrusions fully? ....

      like, i'm fearing a bit of our countrys military(not usa) network because it runs on a 'special' (not that much special) version of a properiaty os that had it's support dropped, and while it is physically cut from the internet it's not a big deal to get access at the network(rather easy).


      Actually, my example comes directly from a Law Enforcement Division of the US Government.

      And with the proper security policies, there was restricted access to the server, as well as secure workstations with no way to add an exploitive application/worm to a system or the network. Additionally there was no way to patch into the network to try to breach the Server.

      So yes, it was a very secure system that was never compromised. Even after moving the server to the Internet, and applying appropriate security patches in 1999 and 2000, the server was NEVER compromised.

      This server, and the division that it served, are one of our security team's brass rings. WindowsNT 4.0 did its job and did it well, making our security team look very good when really Microsoft should have gotten 99% of the credit.

      As to your concern, if there is easy access to the network of any system, then it is no longer considered to be isolated and then there is a big problem.

      Security policies are the #1 way to prevent and stop hacking and malicious access to any system. Keep restricted access to hardware and any networking hardware that it ties in to or have strong IPSEC policies on the server if network hardware cannot be fully secured.

      If you have the capacity to address these issues of security policies to your government's military, then do so - it would be a concern to me as well.

      Take care,
      TheNetAvenger

    66. Re:Whose computers still crash? by SquadBoy · · Score: 1

      That has not been my experince. Yes there are more alerts for Debian but they are, in general, fixed faster and expolited less.

      In my experince except for a very few specific situations Linux is *much* faster than Windows.

      In my experince Windows crashes more and has more problema than anything else I've used.

      So no I don't assume that everything is bad it is just that based on what I use every day Windows sucks. Now does Linux and all the *nixes have things that need to be improved of course they do but from my point of view as a network guy *nix just works and does what I want it to they way I want it to and gives me all the tools I need to do things the right way. Windows simply does not. So while I understand almost nothing about kernel design I do understand that if I need a computer to do a job with odds are I can do it quickly and easily with Linux no so much with Windows.

      Granted I'm a geeked out networking guy and what I want and need are not what the other 99% of the population wants and needs but I can convert almost anyone to Linux just by showing them how it can solve their problems. So when things "just work" with Windows and they are not getting expolited more then I might buy into kernel design arguments. But for now it does not matter because they can not meet my needs easily or well.

      --

      Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
    67. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      Whatever you do, don't name him BSD.

      I think the name association was meant to be philosophically metaphorical... since, the second you're born, you're already dying.

    68. Re:Whose computers still crash? by Anonymous Coward · · Score: 0

      >Your local electric utility loves people like you.

      We have our own. Electricity is our product.

    69. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      In my experince except for a very few specific situations Linux is *much* faster than Windows.

      In my experince Windows crashes more and has more problema than anything else I've used.


      I hear this, but usually this is coming from people with Win95,Win98,WinME and not Windows2k or WindowsXP.

      If your experience is from Win9x then you need to take a deeper look at Win2k,WinXP. If you experience is TRULY from WindowsXP then you are definitively in a minority. WindowsXP just does not have the security or stability problems that the Win9X line of OSes do.

      Win9x OSes were not bad for what they were, but they are NOT in the same class as a *nix or NT based OS. They were designed to evolve users and legacy software, and they had no security or protection mechanisms.

      I admittedly am a bit of geek as well, but I got into the NT movement from the beginning, mainly because there were not any quality *nixes available on the Intel platform at the time. And Solaris when it finally arrived for Intel was such a disappointment.

      After studying the creation of NT and watching its evolution, I have witnessed that MS did do something right with the core of NT and it does extend as theorized it would to meet the needs of whatever comes in computing.

      I don't doubt that you have had Windows horror stories; I have seen some as well. But I also try to keep an open mind and have found a lot of pluses in the NT line of Windows.

      With the modern WindowsNT OSes, I have found that there is nothing they cannot do that another OS can. In contrast, I often find myself when at the console of another OS shaking my head when something that is so easy in Windows is either complex or the other OS is not even capable of doing it.

      NTFS being journalled from the beginning is just a small example, I get so tired of 'integrity checks', it reminds me too much of Windows98 and the old DOS days. (Yes I know there are now journalling FS options out there for a few *nix variants.)

      Another common example, I could just choke Linux vendors when I have to manually edit the XF86Config file because the user changed the video settings to something that the system didn't have specified in XF86Config file. And the Linux vendor 'Settings Manager' let the user do it.

      This is just something that doesn't happen in Windows and is so foreign to average PC users. Even the original Windows NT 3.1 made users test the video settings before it would allow them to be committed to the system.

      Thanks for the debate - take care,
      TheNetAvenger

    70. Re:Whose computers still crash? by gl4ss · · Score: 1

      the thing is that if(when) the network is sufficiently large it comes more difficult to assume every user to be honest(which you must, if you want to assume it as an isolated system).

      the more valuable the network(in any way) the more there is to be gained by compromising it, and thus the more probable the intrusion.

      in one case, it would have been trivially easy for anyone willing to take the risk to walk in (in the right uniform, available from stores) and sit on a computer, boot it from a floppy or a cd and get on with anything. or go the other way and open the needed door with necessary force. or just leave sufficient amount of cd's with the right stuff on autorun around.

      or just dig up the cables (really).

      our military isn't _that_ dependant on the network though 'luckily'(as large most of the systems are so outdated, and outnumbered, that all-out attack by the most probable threat would be impossible to defend against). and frankly i'd be more worried about the crypto system that dates back 2 decades used in radio transmissions.

      anyways, you got a job what are doing on having useless debates on slashdot??

      --
      world was created 5 seconds before this post as it is.
    71. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      in one case, it would have been trivially easy for anyone willing to take the risk to walk in (in the right uniform, available from stores) and sit on a computer, boot it from a floppy or a cd and get on with anything. or go the other way and open the needed door with necessary force. or just leave sufficient amount of cd's with the right stuff on autorun around.

      This is why it is essential to have a strong security policy and by this I mean that the workstations are setup for security as well. Locked Cases, no floppies, CDROM set to non-bootable in the bios, etc. This would prevent them from doing anything to the network even if they had semi unsecured access to the workstation.

      As with the network cables, then IPSEC, IP Validation, etc is necessary to prevent another node(workstation) from tapping into the network infrastructure and accessing the network to launch an attack.

      anyways, you got a job what are doing on having useless debates on slashdot??

      Well I surely hope that everyone else here isn't unemployed. LOL Actually, I enjoy the debates here and what I get from them.

      Take Care,
      TheNetAvenger

    72. Re:Whose computers still crash? by EvilTwinSkippy · · Score: 1
      No, the problem is crap left over from manufacturing caking in the area where the heads park. The phenonimon was discovered right after Y2K. A lot of folks turned their servers off for the first time in years, and they wouldn't wake back up.

      (Many of these drives were recoverd by banging them against the floor once. However, I'm just as happy to prevent the problem through PM.)

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    73. Re:Whose computers still crash? by gl4ss · · Score: 1

      not having floppy drives, and cdrom drives set to nonboot in the bios is just fending off the less capable, because the more capable would bring their own hardware more probably anyways.

      err.. well, maybe it's just philosophical way of looking at it.. since if i had 'enough'(nobody ever has) money i would just treat every network as possibly compromised.

      anyways, go see matrix: reloaded, maybe that acts as a wakeup call to some sysadmins who haven't updated their internal networks in years, nothing is secure against couple of gunmen who can do kung fu :).

      --
      world was created 5 seconds before this post as it is.
    74. Re:Whose computers still crash? by Bert64 · · Score: 1

      But the parent was drawing attention to a comparison based on AGE of a system, rather than design.. Which is why i brought up the older unix systems.
      Ofcourse theyre designed for different purposes, but my point is valid considering what it was in reply to.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    75. Re:Whose computers still crash? by einstein · · Score: 1

      3) Name him Amiga, so people remember him fondly, but every few years he pops up looking nothing like what he did before, except wearing a nametag that says "Amiga"

    76. Re:Whose computers still crash? by TheNetAvenger · · Score: 1

      not having floppy drives, and cdrom drives set to nonboot in the bios is just fending off the less capable, because the more capable would bring their own hardware more probably anyways.

      err.. well, maybe it's just philosophical way of looking at it.. since if i had 'enough'(nobody ever has) money i would just treat every network as possibly compromised.


      This is true to a certain degree. All you can do is reduce the risk of compromise. However, with tough policies of access, secure workstations, and server side policies like IPSEC, there is very little chance of someone gaining access or causing harm to a system.

      Unless they hire a super cyber geek (like most of us :) ) the system will be protected from malicious employees, accidental viruses, etc.

      There is no such thing as complete security. Even when we worked with the Pentagon using handprint recognition access identification in the early 90s, there still was a percent of risk that could never be eliminated.

      With my previous articles, I definitely was not advocating not updating systems, even if they are internal or isolated. However there are circumstances (as in the case I mentioned) that security was more important than allowing even a System Administrator to bring down a set of servers to apply patches.

      (This was a very special set of circumstances that prevented the servers from being updated or coming offline for the security systems they controlled as well.)

    77. Re:Whose computers still crash? by dattaway · · Score: 1

      not a single crash.. not a single os reinstall, downtime caused by moving house and power failures.

      Power failures or moving are not an acceptable excuse for downtime. You should have prepared for natural disasters of epic proportions and for the future. Its the life of the computer you are talking about and should not be aborted.

    78. Re:Whose computers still crash? by EvilTwinSkippy · · Score: 1
      Kind of makes you wonder... will there ever be a group of folks as deranged as ourselves? We were there at the dawn of the computing age, before people had it all figured out. We actually had to apply our minds in creative ways completely absent of feedback. I remember writing lots of programs that no one else in the family could honestly understand what it was doing.

      Anyone learning computers today has all sorts of click and drool tools. They have tons of examples of programs from the past. The creative aspect of computers has degenerated into applying canned Comp-Sci algorythems and trying to turn every system into a previously understood system with often humerous results.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    79. Re:Whose computers still crash? by fucksl4shd0t · · Score: 1

      Kind of makes you wonder... will there ever be a group of folks as deranged as ourselves? We were there at the dawn of the computing age, before people had it all figured out.

      I hate to break it to you, but yes. Just like there have been generations before us at the dawn of each age that were a mix of old and new, there will be many more after us. I realize I'm a bit jaded in general, but I suspect that at the dawn of automotion (which had a huge impact on society) there was a group of individuals such as us. Same with the dawn of Industrialization. In fact, considering the time frame, those two groups may have been the same group, or immediately succeeding generations. Go back, and you'll find similar kids at the bronze and iron ages, respectively, as well as the renaissance. Other times as well, I'm sure, I'm not exactly trying to categorize all possibilities.

      The point is, whenever there's a huge technological change or breakthrough that has a huge impact on society, there will be a generation of kids that grow up with a mix of old and new. That's us. Not only do we remember 8-track cassettes (and spent a lot of time listening to them), but we pioneered mp3 digital audio, and had our hand in every technology in the interim. We remember when all cars had carburateurs, now they're all fuel-injected. Hell, we remember when AC was an option, now it's almost a standard feature in most places. What about the ones before us that can remember when refrigeration meant some dude dropping a chunk of ice at your door?

      I also tend to think that every generation feels much like we do, for various reasons. This is, in fact, preferred, since it means that the generation will advance society in general, hopefully to a better state. Without this feeling, I suspect there would be stagnation.

      --
      Like what I said? You might like my music
  6. AS LONG AS YOU CAN TEST EVERY STATE... by drink85cent · · Score: 5, Insightful

    As I've always have heard with computers you can't prove something works, you can only prove it doesn't work. As long as there are an almost astronomical number of states a computer can be in, you can never test for every possible case.

    1. Re:AS LONG AS YOU CAN TEST EVERY STATE... by DaCool42 · · Score: 1

      so then i must test every possible value of 'x' to make sure this still prints hello world?

      int x;

      printf("Hello world\n");

      There is such a thing as a "don't care" state.

      --

      ----
      All of whose base are belong to the what-now?
    2. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      AS LONG AS YOU CAN shut the hell up, assgoblin.

    3. Re:AS LONG AS YOU CAN TEST EVERY STATE... by jfisherwa · · Score: 1

      The real question is, how many Library of Congresses can fit into an astronomical number? :P

    4. Re:AS LONG AS YOU CAN TEST EVERY STATE... by elixx · · Score: 1

      If it's in memory and unneeded, it's a detriment to the system.

      --
      No, Beowulf clusters can't imagine in Soviet Russia.
    5. Re:AS LONG AS YOU CAN TEST EVERY STATE... by nukey56 · · Score: 1, Funny

      Now this is just plain wrong, not to start a flame war. We know that i+1 > i for all i, without having to test each case. We are reasonably certain that there are infinite primes, and are sure that PI has an infinite number of digits. Did we compute either to their entirety? No. We can use induction to figure those out. If each interface is built with a proven induction hypothesis, code will never fail. However, code can be overly complex, and people make mistakes, aren't knowledgeable enough to produce said code, and definately don't certify that their code will provide said results. While I do agree with you that you can't test for every case, this doesn't mean that perfect code can't be constructed.

    6. Re:AS LONG AS YOU CAN TEST EVERY STATE... by mooman · · Score: 1

      so then i must test every possible value of 'x' to make sure this still prints hello world?

      Actually, yes. I mean, isn't that exactly how buffer overrun bugs work after all? There is some certain length of string that just happens to roll the subsequent code onto the stack or something...

      Now, this specific example was a little trite, since it's almost entirely safe to assume that unless your compiler is wonky, x=2 and x=3 will behave the same. But you still have to at least test every boundary condition and first you have to identify every one of those too..

      --
      In the Portland, Ore area and like card games? Check out: http://groups.yahoo.com/group/portlandgames/
    7. Re:AS LONG AS YOU CAN TEST EVERY STATE... by innosent · · Score: 5, Insightful

      Not exactly. Assuming that the hardware is ok, you can prove that a system is reliable for any given finite input (including, most importantly, all possible finite substrings of inputs, however it is not possible to test all possible inputs, since a portion of those are infinite), it's just that doing so in large systems takes enormous amounts of time, and of course, time = money. Take Microsoft, for example. It takes a team years to develop a product like Windows XP, run a few test cases, and fix the major bugs. But just think how long it would take to go through every possible input substring of a given length (and by substring/string I am including non-character inputs [mouse, network, etc]).

      Consider a simple program that inputs 10 short strings of text and does some computations on those strings. Say for example that the system that has only a keyboard as input, that all input functions are guaranteed only to input A-Z (caps only), the space bar, and 0-9 (regex ((A-Z)*(0-9)*)*( )*), not to overflow, and that there are 10 inputs with exactly 10 characters for each input (spaces fill end of string). This means that there are 37 possibilities for each digit, totaling 37^100 unique possible inputs, about 6.61E156 possibilities, each 100 characters. Typing a million characters per second would take 2.094E145 years! Keep in mind that this is an extremely simple system.

      Therefore, it is not possible to test ALL input cases of any nontrivial program, only a few selected cases, which most will agree is far from proving a program correct. Instead, developers should have detailed mathematical descriptions of how a program is to behave at each incremental step, and verify that the program follows those descriptions accurately. Programs can only be proven correct in the same manner that any discrete mathematic concept can be proven correct, with one of the most common methods of a functionality proof being mathematical induction. Based on a few basic assumptions (like that the functions you call work as documented), the rest of the system can be proven by proving the trivial parts and cases first, and then constructing a complete proof based on the trivial parts.

      The problem with this is that a small change can have a big impact on the proof, and nobody actually takes the time to verify that everything still works. Companies don't often spend money on making their software 100% correct, they just need to add the nifty new features that their customers want before their competitors do. I'd be willing to bet that 90% of the bugs found in XP can be traced to a "nifty new feature" that broke code that may have been proven correct at some point.

      In other words, the short answer is yes, if you can test every state, you can prove a program correct, but since that's usually impossible, it becomes the developers' responsibility to incrementally prove the system, which is far easier if all functionality is planned ahead of time, but still too time/money consuming for most software companies to bother with. Microsoft doesn't care if your computer crashes, you'll probably still pay them, and as much as I'd like to think otherwise, OSS isn't much different (although it's usually more time than money there).

      --
      --That's the point of being root, you can do anything you want, even if it's stupid.
    8. Re:AS LONG AS YOU CAN TEST EVERY STATE... by eeyoredragon · · Score: 1

      Applies to everything... including computers.

      Thus you pick your test cases: boundries and "suspicious" values, Do your best to break it and move on when you consider your fault rate to be low enough. :-/ There will always be software bugs, and when there's not, hardware will fail due either to bad design or nature. Such is life.

    9. Re:AS LONG AS YOU CAN TEST EVERY STATE... by TheOnlyCoolTim · · Score: 3, Insightful

      "We know that i+1 > i"

      Are you so sure? Depending on various circumstances, you might find that a little while after you get to 127 or 32767 (or thereabouts) i+1 has become i...

      Tim

      --
      Omnia vestra castrorum habetur nobis.
    10. Re:AS LONG AS YOU CAN TEST EVERY STATE... by boredMDer · · Score: 1

      Astronomical number of states, eh? What country do you live in?

    11. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 1, Funny


      We know that i+1 > i for all i,

      Except when i == 32767 !
      (tee hee!)

    12. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0
      Or some other arbitary number depending upon your architecture. With more code becoming "portable" these days, this sort of problem becomes more prevelant. The majority of programmers havn't had to work across architectures and so don't have the diciplan to write clean code, porting therefore creates very bad code.


      Most architectures don't impliment bounds checking and worse, most programmers don't deal with error conditions at all. It's amazing the amount of code that I've seen ignoring possible error conditions returning from functions & libraries, partly because it's easier and partly because those interfaces and conditions arn't documented. (If you want to see what I mean, have a look at some VMS library documentation).


      The followup poster of this thread really needs to learn some maths theory (as much as I need to learn to spell).

    13. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Piquan · · Score: 1

      Assuming that the hardware is ok, you can prove that a system is reliable for any given finite input (including, most importantly, all possible finite substrings of inputs,

      That sounds like it would require you to solve the halting problem, so I'd say it wouldn't be possible.

    14. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      One variable taking 4 bytes? That statement is just fucking stupid.

    15. Re:AS LONG AS YOU CAN TEST EVERY STATE... by GordoSlasher · · Score: 1

      i+1 is not necessarily > i in buggy multi-threaded programs. Thread synchronization bugs can be some of the more difficult ones to hunt.

    16. Re:AS LONG AS YOU CAN TEST EVERY STATE... by jonadab · · Score: 1

      You must be programming in a language without bignums. Please, for
      your own safety, put down your abacus and get a real language ;-)

      --
      Cut that out, or I will ship you to Norilsk in a box.
    17. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      Your post relates directly to the Halting Problem. In short, you cannot prove that an ARBITRARY program won't hang. I don't know if this means you can't write a crash-proof OS, however. As someone mentioned, the Halting Problem basically says you can't write a program that will tell you whether a program crashes. But a crash-proof OS would be an OS that could recover from any misbehaving program, enabling you to terminate it without jeapordizing the stability of the system. So you're right, you can't predict the outcome for every case. But does this mean we can't create a system that survives the malfunctions of an arbitrary program?

    18. Re:AS LONG AS YOU CAN TEST EVERY STATE... by seefried · · Score: 1

      Actually we know for sure that there are infinte primes. The Greeks proved that.

      Sean

    19. Re:AS LONG AS YOU CAN TEST EVERY STATE... by ajshankar · · Score: 0

      It sounds like it, but it isn't.

      All modern computers are really deterministic finite automata. They have a fixed number of registers of fixed width (the fixed width is the killer), and a finite amount of storage space.

      A simple turing machine with an infinite supply of tape is more powerful.

      As it is, because of these finite limitations, any computer has a finite number of configurations, and therefore can be simulated by a finite automaton, with one state for each configuration.

      (In fact, since all physical models are finite, it would be difficult to do better than this.)

      Luckily, since the number of configurations is so large, we are able to do some very powerful things anyway, such as do TM-like things on any reasonably-sized input.

    20. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Bush+Pig · · Score: 1

      Actually, we're not reasonably certain there are an infinite number of primes. This was proved a loooong time ago, I think by some Greek bloke.

      On the other hand, being as computers are finite systems (unlike the set of primes, for example), sometimes induction isn't going to be as reliable a guide to correctness as you'd think.

      It's still going to be impossible to test every state before the heat death of the universe, though.

      --
      What a long, strange trip it's been.
    21. Re:AS LONG AS YOU CAN TEST EVERY STATE... by PurpleBob · · Score: 1

      The halting problem says that no algorithm can prove whether any program given to it halts or doesn't halt (or, by extension, does any certain thing you wish to test for).

      However, for most programs, you can determine if they halt by one method or another. For example, tell me if this halts:

      while (true) printf("foo");

      There, you didn't need to solve the Halting Problem for that.

      The method to prove a program correct may be quite involved, which is why it's called proving.

      So, incidentally, you can prove that a program will run correctly on any of n zillion possible inputs, without actually running the program on all n zillion inputs, just like the guy who proved Fermat's Last Theorem obviously didn't test it with every combination of (a, b, c, n) from 1 to infinity.

      --
      Win dain a lotica, en vai tu ri silota
    22. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      However, I think formal methods will be used more often in software development, research is making big steps towards some useful things, and see what happened for example with hardware. Can you imagine someone producing chips without proving their correctness? I'm sure software will also go that way (just wait for a big accident due to a bug in a common software, and money will flow in that direction)

    23. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      I remember my AI prof in college told us there were two types of software that could never be fully tested, since their nature was to be open-ended and to provide infinite combinations / states:

      1) AI
      2) Operating systems

      I guess he was on to something...
      He also said a friend of his friends who scoffed at AI told him it was "The dream of the future. Always has been, always will be."

    24. Re:AS LONG AS YOU CAN TEST EVERY STATE... by moncyb · · Score: 1

      That's why you check the overflow flag. Why they left it out of C, I'll never understand.

    25. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      Actually, testing for any finite set of inputs is only useful for programs that are run over a finite input.

      Interactive software has internal state (often more than it should), and you can only test its response to a finite set of first inputs usefully.

      If you can test every state, you can prove a program correct, but that only applies to programs that accept finite numbers of inputs and produce finite numbers of states, which are extremely rare.

    26. Re:AS LONG AS YOU CAN TEST EVERY STATE... by kiniry · · Score: 1

      Another example of lack of information amongst the programming elite...

      You can prove the correctness of any program without a single test case if you have a full semantics for the program as well as your specification language (since you have to say what the program is supposed to do, of course).

      My research group focuses entirely on this problem for JML-annotated Java programs, primarily those from the smart card industry. We do real programs given to us by industry, not toy examples like those found in most textbooks (or example code from unit test suites).

      --
      Joseph R. Kiniry
      http://kind.ucd.ie/~kiniry/
      Lecturer
      UCD School of Computer Science and Informatics
    27. Re:AS LONG AS YOU CAN TEST EVERY STATE... by oliverthered · · Score: 1

      Where possible you should check for errors before they happen not afterwards.

      --
      thank God the internet isn't a human right.
    28. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Piquan · · Score: 1

      Yes, you can often prove that a given program halts, or doesn't. I was referring to the general case. To solve whether any arbitrary program is correct, you must be able to determine that an arbitrary program will terminate.

      If you're willing to restrict yourself to a subset of programs, then yes, you can prove whether their output is correct.

      The theoretical solution this suggests is to restrict yourself to writing programs which can be proven. In practice, people don't prove all their programs, but approaching this-- such as with preconditions and postconditions-- can improve reliability and aid analysis.

      Proofs are, of course, rarely practical. Besides the time it takes, it's too easy to make mistakes in proofs. I believe that "Expert C Programming" (which I highly recommend, even to people who generally use languages other than C) has an excellent example of this.

    29. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Piquan · · Score: 1

      While the computer has a finite set of states, there is still the question of whether any of the solution states are reachable given arbitrary input. That's why the halting problem would come into play.

      Given a finite set of initial states S0, and an alphabet A, you could partition S0 into two groups. First, Sl: the states which will, for every token in A, enter a state in S0. Second, Sn: the states which will not. You can continue this process iteratively on Sn for further tokens in A. But here's the trick: even though the computer is finite, the number of possible inputs are not. To put it a different way, the number of finite substrings of inputs is infinite. That's why I feel you would have to be able to solve the halting problem to prove that an arbitrary program will halt with arbitrary finite input.

    30. Re:AS LONG AS YOU CAN TEST EVERY STATE... by ajshankar · · Score: 0

      The number of inputs to any machine is (countably) infinite. Even a DFA. Regardless, it is much easier to reason about DFAs than about TMs.

      This is because the partition problem that you mention, while intractable for TMs, is easy for DFAs: the set of all possible configurations forms a graph, which edges leading from one configuration to all the other valid configurations reachable from it on one character of input. Therefore computing the set of valid reachable states reduces to graph reachability, an O(N) algorithm. Using this algorithm, you can fully determine the set of reachable states, even considering that there are infinite inputs, just because there are finitely many states and so (by the pigeonhole principle) many input strings are going to have to be handled in the same way.

      [In fact, another way to represent a DFA's states is as equivalence classes of input strings.]

      Now the reason that this algorithm is infeasible for modern computers has nothing to do with the halting problem; it's because even though the algorithm is linear, N in this case is monumentally huge.

    31. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      Bogus analysis. If I have code like this:

      if (strcmp(str, "Hi"))

      then it really doesn't matter what the infinite other possible values of str could be.

    32. Re:AS LONG AS YOU CAN TEST EVERY STATE... by bauernakke · · Score: 1

      If you have the code there is such a thing as logic to aid in the proving. No need to try every possible input... (proof of induction)

    33. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Piquan · · Score: 1

      Therefore computing the set of valid reachable states reduces to graph reachability, an O(N) algorithm.

      I see that graph reachability would tell you that there exists an input for which the program will terminate. I don't (yet) believe, though, that it would tell you that it would terminate for any arbitrary input.

      Let me try another tack. What aspect of the halting problem limits it to TMs? Could you not apply the same reasoning to DFAs? (Here, our halting-solver is implementable on a computer, therefore representable as a DFA, not just a TM.)

      Now the reason that this algorithm is infeasible for modern computers has nothing to do with the halting problem; it's because even though the algorithm is linear, N in this case is monumentally huge.

      Oh, I agree entirely that all this would be manifestly impractical; that aspect of the OP's question was answered long ago. I'm just playing with the mathematical feasibility of his thought.

    34. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Xabraxas · · Score: 0
      Not everyone would agree with you that induction can be used to figure anything out. Hume has quite a good argument against induction. While it seems to work most of the time and we'd pretty much be lost without it, there is no way to prove induction actually works or why.

      In simple terms, we cannot know that the sun will come up tomorrow until it does. The past can in no way be proven to continue in the same fashion in the future. Statistically it may look as if you can prove induction but all you've really done is shown that everything in the past has happened according to rule "X" but that in no way assures everything in the future will happen according to rule "X".

      --
      Time makes more converts than reason
    35. Re:AS LONG AS YOU CAN TEST EVERY STATE... by moncyb · · Score: 2, Informative

      Why? To waste processing time? Programmers should most certainly check beforehand if something catastrophic will happen...such as checking for NULL pointers, or making sure a drive head won't go too far and crash. But I don't see why they should have to predict if an error will happen beforehand for every case.

      Sometimes a more elegant, efficient ior easy solution is to check afterward. Who even says the result will be wanted if an overflow happens anyway? The program may just end the function on an error, or pop up a warning box.

      If needed, an increment can easily be undone, and overflow checking is far easier than comparing against the max value--which you'll have to figure out. Not easy if you don't know the size of the operand (such as with C and ints). Not easy if the size of the operand may be changed at a later date (you'll also have to change all your comparison code, or the max constant if you used one). This may not seem like a big deal, but it's one more thing to get wrong.

      Some 80x86 assembly to illistrate how overflow works to the programmer's advantage:

      inc al ; increment the al register
      jo errorhandler ; if overflow, jump to error handler
      ; no error, continue on...

      Without overflow:

      cmp al,127 ; compare al against the max value of a byte
      jge errorhandler ; if al is greater or equal to max, jump to error handler
      inc al

      Yeah, the extra cmp opcode may not look like much, but it does add to the code size, and will use additional processing time. Doing this a lot in a large program will add up--especially if it needs to be fast.

      This was just a simple case for an increment. What about adds? The precheck will be much more complex than the previous example and probably use up an extra register.

    36. Re:AS LONG AS YOU CAN TEST EVERY STATE... by Anonymous Coward · · Score: 0

      How about bad variable name choice:
      What does the following code do?

      while (i != i + 0)
      {
      System.out.println("Some string"); // Replace above with print statement for // your language of choice
      }

      It is possible to cause an infinite loop with those lines, with the addition of one simple line before the code:

      String i = "hello";

      Or how about something a little less tricky.

      while(i == i + 1)
      {
      System.out.println("Another string");
      }

      This can also be an infinite loop in the following cases. Add one of these lines before the code given.

      1.) double i = 1.0 / 0.0;
      2.) double i = 2.0e40;
      3.) double i = 0.0 / 0.0

      The first works in java because 1.0 / 0.0 is stored as infinity. The second works because for a sufficiently large number, the "one's column" is not significant, and not stored. The third is stored as double.NaN or "Not a Number".

      Interestingly enough, the following code does NOT print out "hello":

      double x = 0.0 / 0.0;
      double y = 0.0 / 0.0;
      if (x == y)
      {
      System.out.println("hello");
      }

      Ask whoever wrote IEEE754 why.

    37. Re:AS LONG AS YOU CAN TEST EVERY STATE... by ajshankar · · Score: 0

      The reason you cannot apply the halting problem to DFAs is that they are not powerful enough.

      The proof of the halting problem is based on diagonalization: constructing a machine that would have to do the opposite of itself and therefore cannot exist.

      In the case of the halting problem, this machine has to be able to simulate Turing Machines and do the opposite of what they do.

      DFAs are just not powerful enough to simulate other DFAs, and so the proof fails.

      hope this helps :)... you might want to check out theory books by Sipser or Lewis and Papadimitriou; both have fairly lucid explanations of the halting problem.

  7. Human Error by Obscenity · · Score: 5, Insightful

    All programs (for the most part) must be written by people. People crash, they're buggy and they dont have a development team working on them. Computers crash because people cant catch that one little fatal error in 10,000 lines of code. Smaller programs are less succeptable to errors and big scary warning messages that make even the most world-hardend geek worried about his files. Yes, it's getting better with more and more people working on something at once. Mozilla (www.mozilla.org) has a feedback option to help them debug, many software companies are including this. But even with that in place, there is always that small human error, that will screw something up.

    --
    OMG OMG OMG WTF OMG WTF BBQ STFU RTFM, OMFG OMG OMG OMG ROFL LMAO OMG WTF STFU ROFLMAO
    1. Re:Human Error by Anonymous Coward · · Score: 0

      Not to quote HAL 9000 or anything....

      but its always been contributed to human error

    2. Re:Human Error by Malcontent · · Score: 5, Insightful

      "People crash, they're buggy and they dont have a development team working on them. Computers crash because people cant catch that one little fatal error in 10,000 lines of code. "

      While this statement is true it's also a cop out. In the last twenty years there have been tremendous amount of advances in computer science and languages and yet everybody still programs in C.

      That is the reason why programs crash. Why don't people use languages that make programs more failsafe and make programmers more productive.

      It would be interesting to do a study of the "bugginess" of programs written in python, java, scheme, smalltak, lisp etc. My guess is that programs written in C crash the most.

      Where are all the programs written in scheme or smalltalk or ML?

      Use better languages and crash less.

      --

      War is necrophilia.

    3. Re:Human Error by Uller-RM · · Score: 4, Insightful

      Java programs can still crash -- and believe me, grade homework for undergrad CS students for a few years and you'll see plenty of it. The only difference is that Java tosses an exception that isn't handled, and C either asserts and calls exit(-1) or segfaults.

      I don't think it's fair to say that any one language is "safer" than another -- once you reach a certain level of expertise, one can write a stable and robust program in C or C++ or Java or Haskell (my preference) with equal effort. The effort is mental: being persistent enough to define solid logical definitions for each part of the program, failure conditions, etc. and then execute them to the letter in the language of choice. If the program behaves logically, you can prove that it works using logical principles -- induction and so on. (And if you ever do govt contracting or any other project that calls for requirement tracability, you'll need to.)

      The difference between languages is merely the way the code is expressed. Java and C++ have exceptions; C does not. For some situations, return codes are better than exceptions, and for some situations the opposite is true. Java has robust runtime safety -- C and C++ do not. C and C++ have templated containers -- Java's just now getting such genericity. All languages and all approaches to problems have tradeoffs: the mark of a good programmer is knowing those tradeoffs and picking which is best for the situation.

    4. Re:Human Error by Anonymous Coward · · Score: 0

      Think about that next time you get on an airplane.

    5. Re:Human Error by PD · · Score: 1

      Mod that up, it's insightful. All I'd add is that it takes equal effort to write a program that a) coredumps or b) gives a wrong answer. You might spend a lot of time making it difficult to produce a core dump, but that won't cut down much on how many wrong answers you have because the problem wasn't fully understood.

    6. Re:Human Error by JohnsonWax · · Score: 4, Interesting

      "All programs (for the most part) must be written by people. ... Computers crash because people cant catch that one little fatal error in 10,000 lines of code."

      All bridges (for the most part) must be built by people. Bridges collapse because people can't catch that one little fatal error in one or two million components.

      The shit coders put out there, I swear... The reason software crashes is that by-and-large it's hacked together, not engineered. You hack a bridge together, and yes, it'll fail. You engineer software, and yes, it will run reliably. It's not fun to do - no easter eggs, no cool tricks, no cramming features in weeks before ship.

      I'm stunned at the amount of code that goes out that was written by interns, by unexperienced coders, by people that just don't have a clue. The software industry really has no concept of best practices, no leadership, no authority body. The fact that buffer overflows still happen is stunning.

      It's not small projects that work well because out of dumb luck they happen to not fail, or larger projects that work okay because we have 34,000 people looking at the code. If that's 'best practices', then we're doomed.

      "Mozilla (www.mozilla.org) has a feedback option to help them debug, many software companies are including this."

      Uh huh. Let's translate that to my car: "Hi. Yeah, I'd like to report a bug. I have a Saturn Ion, version 1.1v4. Yeah, when I turn on the left turn signal and then turn on the lights, the car catches on fire. You might want to fix that in the next version. Just though you might want to know. Bye."

    7. Re:Human Error by GlassHeart · · Score: 4, Insightful
      It would be interesting to do a study of the "bugginess" of programs written in python, java, scheme, smalltak, lisp etc. My guess is that programs written in C crash the most.

      Even that is a worthless statistic. Assuming that bad programs are written by bad programmers, the language that more bad programmers choose will appear the highest in your study as the buggiest language. Bad programmers choose the language du jour, thinking it will land them a cushy job.

      You'll have to disprove the assumption to correctly blame the language.

      Use better languages and crash less.

      Try dividing by zero in your better language of choice.

    8. Re:Human Error by genneth · · Score: 1

      I've just written a small test program in python involving socket handling. It crashes with a mean time to live of about 30 seconds. Java (on every possible platform with the exception of MacOS X) is slow as constipated shit. I would very much like to see someone write a desktop/event handling application in ML, and by event I mean human event.

    9. Re:Human Error by Anonymous Coward · · Score: 2, Informative

      Scheme and Smalltalk are bad examples, because dynamically typed languages produce entirely different types of faults (typing errors).

      ML is a much better example.

      Others will claim Java is a good example, but it's a bad one, because despite being statically typed it causes typing errors (from casts) and null-pointer exceptions (ick).

      Safer languages still don't mean that programs don't fail, but they eliminate some of the ways they can fail.

    10. Re:Human Error by ojQj · · Score: 4, Insightful
      Disclaimer: I haven't programmed in Java since my undergrad, but I learned it before C++. I've been programming in C++ professionally for 3 years straight now, not counting internships and class assignments before that.

      I'd rather have an exception than a crash. It gives me more information about what I did wrong. A crash that's not reliably repeatable and only happens in your release version under Windows OT systems with IE 4 installed, is next to impossible to find and fix -- in C++ it's only worse.

      Not only that, but memory management is more than just a nuisance. Just yesterday, I wanted to move some code from one class to another to improve the object-oriented structure of some code which I've taken over from another developer. In that code were a couple of news, and I couldn't find the deletes which matched them. So I asked the original developer. Turns out the deletes were in a base class of the class that I was moving the code to. If I had been programming in Java, this would have been a cut and paste job finished in 30 seconds, plus 15 minutes for testing the change before checking in. In C++, it was 15 minutes trying to find the deletes myself, 15 minutes waiting for the other developer to get to a break point in his work and another 15 minutes assuring myself that the deletes really were called for all cases, and another 15 minutes for testing the change before checking in. That's a factor of 3-4 (depending on if I have something else I can do while waiting) for the C++ program.

      Memory management and other unnecessary tasks which C++ saddles the developer with do make an impact on either development time, program stability, or both. And that is also true for experienced C++ programmers.

      They also make an impact on language learning time, which is not to be underestimated with the number of newbies today, and people moving up from still worse languages like Cobol. In addition, even for an experienced C++ programmer, they make a difference in the time it takes to understand code which was programmed by another programmer.

      I agree with you that there are situations where every language, including C++, is the most appropriate for the problem in question. I just think that C++ is over-used, thus reducing the average stability of modern programs and the average productivity of modern programmers.

    11. Re:Human Error by gfody · · Score: 0

      Yes, it's getting better with more and more people working on something at once

      no its getting worse with more and more people working on something at once. the best programs are those written by one person from scratch

      --

      bite my glorious golden ass.
    12. Re:Human Error by Anonymous Coward · · Score: 0

      100% Right On!

    13. Re:Human Error by RdsArts · · Score: 1

      Someone has to program Java.
      Someone has to program Python.
      Someone has to program Lisp, Scheme, Smalltalk, et al

      With any of these solutions, a error in the main program brings down ALL apps based on it that touch on that error. "Well, that'll make the base they're built on better and less buggy in the long run." Will it?

      When we have to write something that is not just a program, but a program for other programs to run on, think of all the special cases we have to allow for. All the open endedness that must go in. All the complexity. And that the larger the program, the more bugs that will creep in.

      And, of course, someone has to write those language, and they have to be wrote in something. And we're back at square one again. Also, how can someone write a kernel in Python? Java? At some point, someone has to touch the bare metal regardless of what happens.

    14. Re:Human Error by mr3038 · · Score: 1
      C++ [...] In that code were a couple of news, and I couldn't find the deletes which matched them. So I asked the original developer. Turns out the deletes were in a base class of the class that I was moving the code to.

      Let's get this straight... you have a base class and a class inherited from it and the inherited class acquires (with new) some memory and trusts that the base class implementation frees (delete) that memory? It sounds that the code is seriously broken -- if the base class implementation is changed then the memory isn't deleted? IMO, if the inherited class acquires the memory with new, it must take care to delete that memory. If, on the other hand, it acquires the memory by calling some specific method then it should call matching method unless the aforementioned method guarantees to take care of freeing the memory. If you've broken code it really doesn't matter which programming language was used to write that code. Or if all the memory was designed to be freed by the base class then there's a bug in the documentation.

      In C++ you have to take care of freeing memory. That is by design and if you can't handle it, you should use some other language. It's not like you don't have null pointer exceptions in Java code either. Those languages are a little different but in both cases you have to know what you're doing.

      --
      _________________________
      Spelling and grammar mistakes left as an exercise for the reader.
    15. Re:Human Error by jeffasselin · · Score: 1
      Try dividing by zero in your better language of choice.

      A really good language would not let you divide by zero.

      --
      If he explores all forms and substances Straight homeward to their symbol-essences; He shall not die.
    16. Re:Human Error by groomed · · Score: 1

      The view that the right programming language or paradigm will solve our problems is a very naive view, which Fred Brooks thoroughly debunked back in the eighties ("no silver bullets").

      Programs written in Python or Scheme regularly "crash" on me, with cryptic stack backtraces mumbling about properties that are missing from objects and other unexpected errors (such as missing files and/or functionality due to version mismatches). The only difference is that the Python/Scheme/... community doesn't call this a "crash", they call it "dropping into the debugger so the programmer can fix the problem", which is just wishful nonsense.

      Again, there is no silver bullet. Programming is hard. If the world were to switch to Scheme, we'd suffer "Wrong type argument" error instead of "Segmentation faults", but it wouldn't do anything for the reliability of our software. Because the hard part is not memory management or pointer arithmetic.

    17. Re:Human Error by ArchStanton · · Score: 1

      Computers crash because people cant catch that one little fatal error in 10,000 lines of code.

      They can if they are fanatical about process and have the budget, like Lockheed Martin's on-board shuttle group.

    18. Re:Human Error by Anonymous+Brave+Guy · · Score: 1
      Memory management and other unnecessary tasks which C++ saddles the developer with do make an impact on either development time, program stability, or both. And that is also true for experienced C++ programmers.

      I claim to be an experienced C++ developer. I also claim that if your colleague had bothered to spend just ten minutes learning elementary C++ resource management skills, he would have saved you that half hour, and probably countless other people similar amounts of time over the course of your project.

      The problem is that few people bother to make that tiny effort, and then you and I have to clear up the mess a hundred times for every one of them.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    19. Re:Human Error by Anonymous Coward · · Score: 0

      Java returns "Infinity" when a divide by zero occurs. No error, no exception, correctly, infinity...

    20. Re:Human Error by Anonymous Coward · · Score: 0

      You can r00t a box via an Exception. Say, what are you doing with that buffer?

    21. Re:Human Error by ojQj · · Score: 1
      Actually before I fixed it, it was even worse -- an owner class acquired the memory and a base class of the class in question released it. But remember, as I said in my post, I didn't create this code -- I just got the opportunity to improve it. Bad code is common enough and few enough people get to start from a ground zero project that my anecdote is almost certainly representative.

      And that is exactly my point. I personally am perfectly capable of handling it. The reason I didn't find the deletes in those 15 minutes of searching is that I went through exactly the list of logical locations that you just posted to try to find them. And "there's a bug in the documentation"? What documentation?

      In Java, if you make an erroneous assumption about the type of something, you get an immediate exception. In C++, your exception/crash may come later or not at all. No guarantees. So you could miss it in your testing and debugging, whereas you won't miss the Java exception unless you actually didn't test the input. Getting feedback is good if you make a mistake -- C++ doesn't give enough feedback. (Okay there are better casts developed, but not everyone uses them, and then we're back to the problem of code from other people.)

      We don't live in an ideal world -- sometimes we have to deal with the mistakes of others. So it would be nice to be able to work with a language which helps out with that.

      Your personalization of this issue with an "if you can't handle it" is uncalled for, ignores information I provided in my post, and entirely misses the point.

    22. Re:Human Error by mnmn · · Score: 1

      People crash
      Everyday. I wonder if GOD looks like Gates. No thats too scary, but with all these diseases and weather problems... hmmm...

      <i>they're buggy</i>
      Weve got millions of bugs in us, some even for our health. I wonder if theres a java-based or AS400-based human with fewer errors..

      <i>they dont have a development team working on them</i>
      They usually have two developers who develop but rarely debug the programs. Sadly theres no project manager and really no incentive. But the programs are still branded proprietary and not given out to the public until it leaks out.

      <i>Computers crash because people cant catch that one little fatal error in 10,000 lines of code</i>
      Look at the human genome. Can you debug that? We dont even have an editor for it yet.

      <i>Yes, it's getting better with more and more people working on something at once</i>
      Yeah but thats college and it doesnt usually produce a program (to my knowledge). You cant say its getting better, too many cooks spoil the broth. But the cooks love it.

      <i>But even with that in place, there is always that small human error, that will screw something up</i>Ive got over 6 billion examples of that.

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    23. Re:Human Error by lobsterGun · · Score: 1

      If you've broken code it really doesn't matter which programming language was used to write that code.


      I think you misunderstood what the original poster was pointing out. I believe he was complaining about the trouble that is caused by the manual memory management in C++. He was pointing out that had the program been written in Java, he wouldn't have to waste his time dicking around with memory management. (This really more than a C++ vs Java issue. This is a general memory management issue. Java doesn't have the monopoly on memory management. See products like Great Circle for C++ alternatives.)


      In C++ you have to take care of freeing memory, That is by design and if you can't handle it...


      Well where I come we don't need any of your fancy 'new's and 'deletes'. Hell! we don't need luxeries like mice or keyboards and GUIs either. Those are for the WEAK. We just set the memory manually using toggle switches. An not those new fangled debounced toggles either, I'm talking about good ole fashioned toggle switches - the kind that click when ya' flip 'em! Sure it takes a little bit longer to code and debug, but that is by design and if you can't handle it you should use another language.
    24. Re:Human Error by GraZZ · · Score: 1

      Infinity as the result of a divide by zero is mathmatically incorrect, so I don't think this is an ideal solution to the problem. Better to throw an exception.

    25. Re:Human Error by AutumnLeaf · · Score: 1

      Just to follow up, I agree that the source of the code that is crashing (humans) is the biggest problem. High complexity of the systems, with 'correct' behavior being ill-defined or based on semantics...

      Etc....

      I'm surprised to see this thread get so much traffic. I'm even more surprised to see the question get posted on slashdot. Well, maybe not as surprised as I would have been a few years ago though.

    26. Re:Human Error by Rich0 · · Score: 1

      Or it should return a not-a-number value of some sort. You are correct that infinity is not a valid result - there is no number called infinity - it is more of a concept. What you could say is that as you approach 0 as a divisor from the positive direction the result approaches infinity - so the limit is called infinity. However, this is a concept and not an actual result. Of course, if you approach zero from the negative direction you get negative infinity - so the limit as you approach zero is undefined unless you specify a direction.

    27. Re:Human Error by sonofagunn · · Score: 1

      Programming languages do make a difference, but not directly. Bad programmers write bad code, period. However - languages, designs, development environments, and methodologies that speed development yield more time for testing. For example, if management has given a team a 6 month time frame, and the team thinks the product should start testing in 3 months, they may have a better chance at getting the product to SQA by using Java, Perl, or VB instead of C. A product that is delivered to SQA late is more likely to be buggy. RAD environments and software architects (not managers) can speed development by picking the appropriate design and technologies. In my experience, this doesn't happen very often.

    28. Re:Human Error by maraist · · Score: 1

      thers will claim Java is a good example, but it's a bad one, because despite being statically typed it causes typing errors (from casts) and null-pointer exceptions (ick).

      True, but we'll see if generics resolves this in java 1.5. I'm of the opinion that you should NEVER explicitly type-cast, and generics get us closer to that goal.

      --
      -Michael
    29. Re:Human Error by Anonymous Coward · · Score: 0

      In Java, dividing by 0 gives me an exception that I can catch (and a stack trace if I don't catch it). C and C++ give me a crash. The features of the language of my choice makes a big difference in both debugability and robustness.

    30. Re:Human Error by Anonymous Coward · · Score: 0
      Smaller programs are less succeptable to errors

      Smaller words are less suciiptibel to errors, too.

    31. Re:Human Error by poot_rootbeer · · Score: 1

      The software industry really has no concept of best practices, no leadership, no authority body. The fact that buffer overflows still happen is stunning.

      Is it?

      Computer programming is about 50 years old. Bridge-building dates back thousands of years, to the ancient civilizations.

      And you expect the one discipline to be as mature as the other already?

    32. Re:Human Error by Yunzil · · Score: 1

      Why don't people use languages that make programs more failsafe and make programmers more productive.

      Because, while such languages exist, no one likes to program in them. Also, I don't know any of them. :)

    33. Re:Human Error by iabervon · · Score: 1

      The real need is for fault isolation. The problem is that when a single thing goes wrong, the whole thing collapses. With bridges or airplanes, for example, if one thing fails, that's fine; a series of several failures are needed in order to cause a significant collapse, and the parts that are most likely to fail (like the road surface or the tray tables) do not lead to disaster. In contrast, a little display bug is likely to propagate to taking the whole application down.

      Of course, fault isolation is really hard in computer programming, due to the fact that a program is information manipulating information; there's no way to tell when something is misbehaving, because all of the parts are essentially made of the same stuff: CPU instructions and bytes.

      Java does have some advantages, in that the runtime system can prevent code from running as if an object was a different class and behaving in a particularly chaotic way, and the exception mechanism is similarly beneficial; you can just catch Throwable and log an error message, and the whole program won't crash because of a null pointer.

      Of course, it is theoretically possible to write a C compiler that actually does most of this; there are limits in the C specification such that the program could check that what it was doing was actually legal, and avoid serious problems, but it would be a very unconventional C compiler. (For that matter, you could run your programs under valgrind, with modifications to let it recover from memory errors in addition to logging them; it would be relatively slow, but there's plenty of extra processor power these days).

    34. Re:Human Error by doinky · · Score: 1

      If there was ever time for engineering software, you might see different results. However, the disciplines most people consider "engineering" have levels of process built in that software has never found acceptable. For instance, you can't stop building a bridge halfway through and then decide to reengineer it. You can with software, even when it's a bad idea. You can't start using new concrete in the second half of your bridge. You can with software, even when it's a bad idea. The flexibility of software is the reason why software engineering usually fails - the managers never hold strong enough against the feature creep brigade from sales. I don't care how persuasive the MBA wankers are at BridgeCo; they're not going to be able to convince the civil engineers' boss to do something stupid just to make the bridge a bit prettier halfway through the project.

    35. Re:Human Error by GlassHeart · · Score: 1
      In Java, dividing by 0 gives me an exception that I can catch (and a stack trace if I don't catch it).

      Java (or an interpreted language) would not crash the way a C program might. That wasn't my assertion. The point is, division by zero is a logic bug that the programmer must handle. No language is going to do that for you appropriately.

      In this case, an end user would rightfully consider a stack trace to be a bug.

      The features of the language of my choice makes a big difference in both debugability and robustness.

      Most of the time, ease of debugging is a feature of the implementation, not the language. A C interpreter can easily tell you exactly which line of code caused the division by zero. A compiled C implementation can also note the instruction that caused the division by zero, and work back out to a line of source code.

      There are different aspects of robustness. In the Java sense, you're probably referring the underlying platform protecting the system against errant programs. That's a great feature (which has a trade-off, of course), but Java programs are not inherently robust in the sense of handling user input correctly. Note that running a C program in a virtual machine, for example, has a similar effect.

    36. Re:Human Error by jafac · · Score: 1

      Yeah, exceptions are fine and dandy, as long as the other software components in the system are designed to trap and report the exception. 99% of the time, this is not the case.

      Sure, software fails - but what makes it very difficult to use, maintain, and write, is when you don't get any information back about what caused the failure.

      Public enemy #1 - MFC

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    37. Re:Human Error by jafac · · Score: 1

      Damn, I thought he said "you hack a bride together"

      Usually, you hack a bride apart - unless your last name is Frankenstein, where I suppose you would hack one together, but would it almost certainly fail?

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    38. Re:Human Error by GlassHeart · · Score: 1
      For example, if management has given a team a 6 month time frame, and the team thinks the product should start testing in 3 months, they may have a better chance at getting the product to SQA by using Java, Perl, or VB instead of C.

      I don't have a problem with your general suggestion of using the right tool for the job. However, in this example, you are assuming that your development team is equally competent at the language and tools of each choice. This is a big and almost always invalid assumption. Particularly for a 3-month development project, the best tool is probably the one you already know best.

    39. Re:Human Error by Anonymous Coward · · Score: 0

      Not to mention that bridge builders don't have to deal so often with customers who don't know what the fuck they want.

      Bridges might be made out of millions of pieces, but they're goddamn SIMPLE pieces - there's nothing tricky about building a bridge, just a little physics. Software is infinitely more complex than building a bridge, and there's a good chance we don't fully understand it yet.

      When you get down to it, a bridge only has to do one thing: stay up. Software has to do a million different things, many of them conflicting.

    40. Re:Human Error by deprogram · · Score: 1

      deprogram@c3po:~$ python
      Python 2.1.3 (#1, Sep 7 2002, 15:29:56)
      [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
      Type "copyright", "credits" or "license" for more information.
      >>> 34/0
      Traceback (most recent call last):
      File "", line 1, in ?
      ZeroDivisionError: integer division or modulo by zero
      >>>

      Looks like it handles it pretty well :]

  8. Where is "Billy Gates" to answer this? by Anonymous Coward · · Score: 0

    Billy, is it because computers are using too much memmory?

    -Bobby, in his parents' basement

  9. In my CompSci class.. by ziggy_zero · · Score: 4, Insightful

    ...I remember my teacher saying "Computers do exactly what they're told, not necessarily what you want them to do."

    I think the root of the problem is time. Microsoft doesn't have the time to spend going through every possible software scenario and interaction, or every possible hardware configuration. If they did do that, it would probably take a decade to pump out an operating system, and by that time hardware's changed, and it's a neverending cycle.....

    We just have to accept the fact that the freedom of using the hardware components we want and the software we want, all made by different people, will result in unexpected errors. I, for one, have come to grips with it.

    --
    I belong to the ______ generation.
    1. Re:In my CompSci class.. by c0dedude · · Score: 1

      But Linux, by its nature and the lack of a need to pay programmers/testers, allows more time to test it, and thus Linux crashes less than windows. A decade doesn't matter, a decade of man-hours do.

      --
      Since when has this country used intellectual elite as a pejorative term?
    2. Re:In my CompSci class.. by gregmac · · Score: 1
      Microsoft doesn't have the time to spend going through every possible software scenario and interaction, or every possible hardware configuration.

      But this shouldn't be an issue. If your HAL is done properly, there is no possibility of crashes with different software/hardware combinations, because the hardware doesn't matter. If libraries etc are managed properly, and memory space is isolated properly, then there should be no software-software issues.

      Hardware is a harder one to control, although with modern PCI and USB components, conflicts are becoming very rare. I don't remember the last time I had to deal with IRQ conflicts. (Although I do have an MSI motherboard that can't get past the memory test if a USB smartcard reader is plugged in...)

      --
      Speak before you think
    3. Re:In my CompSci class.. by pnatural · · Score: 2, Insightful

      But this shouldn't be an issue. If your HAL is done properly, there is no possibility of crashes with different software/hardware combinations, because the hardware doesn't matter. If libraries etc are managed properly, and memory space is isolated properly, then there should be no software-software issues.

      And this, ladies and germs, is precisely why computers crash. One system depends on another, and each layer is presumed to be solid. It's the presumption that things at the lower level cannot go wrong that gets most coders into deep do-do.

      The reactionary solution is to code defensivly. Defensive programming has it's place, but it's rarely done correctly (IMO) and it leads to cruft and maintainance nightmares. The solution (again IMO) is to account for failures at the design level.

    4. Re:In my CompSci class.. by Fulcrum+of+Evil · · Score: 1

      Microsoft doesn't have the time to spend going through every possible software scenario and interaction, or every possible hardware configuration.

      Or rather, MS doesn't want to spend the time to properly design the system to limit possible interactions between the various subsystems and then test those because they'd make less money. That said, I haven't had Win2k crash on except for the (very) occasional driver BSOD and bad hardware. Explorer likes to crash and I have no idea why, but the OS stays up.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    5. Re:In my CompSci class.. by damiam · · Score: 1

      Windows has a pool of a few hundred million beta testers. It's hard to beat that.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    6. Re:In my CompSci class.. by Anonymous Coward · · Score: 0

      Fucking slashbot. Fuck off.

    7. Re:In my CompSci class.. by nick_davison · · Score: 3, Insightful

      ...I remember my teacher saying "Computers do exactly what they're told, not necessarily what you want them to do."

      D&D summed it up for me, years ago, with the wish spell: At its purest, it's too powerful to give to players - they'll unbalance and destroy the game. However, it can be balanced by giving them exactly what they ask for.

      "A demon lord approaches you out of the shadows."
      "I cast 'wish' - I wish for a +100 sword of almighty vorpal type slayingness."
      "The sword appears in the demon's hand. He thanks you for it, then hits you."

      Writing good code is like making a good wish. All you can do is try to cover as many eventualities as possible. The problem is, code gets really slow to run and even slower to write when you have to add out of bounds checks on every argument, error handling and reporting, garbage collection and all the rest. Even then, there'll always be some twisted scenario that you didn't know could exist so didn't plan for. So most people just give up, wish for the damn sword and hope the PC/Dungeon Master doesn't have too evil an imagination this time.

    8. Re:In my CompSci class.. by pi_rules · · Score: 1
      We just have to accept the fact that the freedom of using the hardware components we want and the software we want, all made by different people, will result in unexpected errors. I, for one, have come to grips with it.


      Good to know that your "Comp Sci." courses are nothing more than a trade school embedded into a college/university. The study of computer science is going horribly astray if students are actually lead to beleive that there is no possible way that we will ever be able to make robust software cost effectively. That just buggers me to all heck.

      The answer is out there (wow that sounds X-files-ish), but we just don't know it yet. Work is being done on the subject though and it would behoove you to put a little of your brain power toward it. Who knows -- you might stumble across the answer in 10 years! The idea that software just won't ever work right is probably the same feeling bridge builders had back when, well, however long at it was that we couldn't calculate a bridge's ability to hold stuff.

      Right now software's best QA is having 10,000 virtual people hammering on a piece of software through automated tools. Would you want to drive across a bridge that's only QA was "well, we had 10,000 people jump on it for 3 hours -- it should be okay!".

      We -will- get there, but as a college student, please, please don't assume that software that crashes is acceptable!
    9. Re:In my CompSci class.. by |Cozmo| · · Score: 2, Insightful

      If only it was as simple as you say.
      Creating drivers that run devices made by many different manufacturers means you have to take all of their differences into account in order to get the same behavior from all devices. For Example: If one chipset powers down a certain device during a reboot/standby/hibernate/etc and another chipset doesn't, you can run into strange behavior. Throw laptops and APCI into the mix and we're lucky things work as well as they do :) I think we're probably just lucky most of these things are isolated from end-users.

      I have several machines that won't even POST with certain configurations of USB devices plugged in. I think it is a BIOS issue.. Probably trying to fiddle with devices to do HID support or booting from storage devices and it is probably either hanging the BIOS or the hardware.

    10. Re:In my CompSci class.. by cultobill · · Score: 1

      Good to know that your "Comp Sci." courses are nothing more than a trade school embedded into a college/university. The study of computer science is going horribly astray if students are actually lead to beleive that there is no possible way that we will ever be able to make robust software cost effectively.

      "The study of Computer Science" isn't going anywhere. Just because some guy's classes say that we're not going to write robust software doesn't mean everyone is going that way.
      For instance, at my Uni, we have a class (which I just completed) called "Zero-Defect Programming". Does it work? Like magic. Is it easy? Noooo... It takes work. Once you know what you're doing, you can write your code (bug-free, or damn near) in the time it takes you to do the normal "write-compile-test-debug-repeat" bit. To do it right with peer verification takes longer, but the rewards are great. Everyone in the class wrote a program of at least 10 "modules" (functions or objects) that were bulletproof.

      The class text was "Toward Zero-Defect Programming" by Allen Stavely, ISBN: 0201385953. It's dry reading, but worth it. With this book in hand, you can strive towards a point where you no longer wonder if your code works, you know it does.

      --
      -- Bill "Houdini" Weiss
    11. Re:In my CompSci class.. by oconnorcjo · · Score: 1
      I think the root of the problem is time. Microsoft doesn't have the time to spend going through every possible software scenario and interaction, or every possible hardware configuration. If they did do that, it would probably take a decade to pump out an operating system, and by that time hardware's changed, and it's a neverending cycle.....

      Actually that is not the way software should be designed. Modularity is the key. Each piece of functionality should be tested completely but within the scope of its function. Device drivers should be tested to make sure it works perfectly with the OS and the intended hardware. The IO system should make sure it works right and the OS should make sure that it comunicates properly with individual subsystems and etc. That is why programs can have huge amounts of functionality (by leveraging reusable and self contained code). The issue is that some components aren't tested/coded properly (unstable device drivers for example) and ruin it for the rest of the system. As time goes by, hopefully the bad modules get fixed/eliminated. You don't have to test for every scenario the SYSTEM will be in- ONLY the scenario's each MODULE can be in. That is the rule of breaking problems into managable chunks.

      --
      I miss the Karma Whores.
    12. Re:In my CompSci class.. by MikeFM · · Score: 1

      Yeah but most of them wouldn't know how to find the any key let alone debug a problemm and submit a patch. Are we back to the question of how many trained chimps it'd take to beta test Windows 2010? :)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    13. Re:In my CompSci class.. by Anonymous Coward · · Score: 0

      And those Windows beta testers might as well be beta toasters. Their bug reports are obviously ignored.

    14. Re:In my CompSci class.. by MikeFM · · Score: 1

      A good portion of the problem I lay on hardware companies. They refuse to set interface standards and stick to them and they seldom test their drivers as well as they could. If every printer in the world would use the same print driver and API's then the code could be a lot more robust. Sure, for new innovations you'd need to release a new version of the driver but if you had a standards body that released the driver (with these new features) every so often it'd keep things clean.

      More along all websites output HTML and it's the browsers job to render that. Let all apps print Postscript and let it be the printers job to render it. The same with scanners, soundcards, video cards, modems, etc. There is just no need for each to have it's own driver.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    15. Re:In my CompSci class.. by gregmac · · Score: 1
      And this, ladies and germs, is precisely why computers crash. One system depends on another, and each layer is presumed to be solid.

      But that's an implementation problem, not necessarily a design problem. Obviously even a perfect implementation of a bad design is going to fail.

      Like you say, the solution is a solid design that doesn't leave room for failure. I think that often 'proper' design is put behind efficient code, and likely this is a source of problems. (For example, it's faster to directly access array values than it is to access them through a couple layers of abstraction that do error-checking for all (improbable) cases).

      Likely more OO type design techniques need to come into place in overall system design - build small, abstracted pieces, and thoroughly test them before adding on the higher levels. Of course, this is MUCH easier said than done :)

      --
      Speak before you think
    16. Re:In my CompSci class.. by KrispyKringle · · Score: 4, Funny

      And just when being into computers was starting to get "cool" (think The Matrix, Hackers, or Swordfish) someone like you comes along and start talking about Dungeons and Dragons. There go my chances of getting laid. There go all our chances of getting laid.

    17. Re:In my CompSci class.. by dmaxwell · · Score: 1

      ...I remember my teacher saying "Computers do exactly what they're told, not necessarily what you want them to do."

      And that is why my personal machine is always named Amelia-Bedelia. If you don't remember her, then google for it. My own theory is that Amelia must have been an early stealth project of the Sirius Cybernetics Corporation.

    18. Re:In my CompSci class.. by geekoid · · Score: 1

      I've been in your game and you're a dick. ;)

      now making the sword 100 feet long, that would be funny.
      or having the demon offer the sword to them.. hehe.
      "the demon offers you the sword you wish for"
      "I take it"
      "please mover your aligment 4 dpaces toward evil, oh And you can't imagine why you wanted to kill him when the paladin next to you is always telling you what to do"
      "demon leaves".

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    19. Re:In my CompSci class.. by nick_davison · · Score: 1

      Dude, I'm sorry, I thought you got the memo...

      We were all supposed to get married while the dot com thing was sexy and exciting to women. Like Taco did and like I did. Then, when the bubble burst, we would already have wives and could still get sex (well, if married people still wanted to, at least).

      I guess you were the one working Saturdays and getting the other memo, the one about TPS reports, right? You did get the memo? Why don't I just send you another copy.

    20. Re:In my CompSci class.. by nick_davison · · Score: 2, Funny

      I've been in your game and you're a dick. ;)

      Of course I was. I was thirteen at the time, in to D&D and computer programming, and couldn't get any girls.

      Had they had video labs at my highschool and file sharing networks, back at the end of the 80s, I'd have been the fat kid making lightsaber noises while waving a broomstick around.

    21. Re:In my CompSci class.. by jimcooncat · · Score: 1
      "Computers do exactly what they're told, not necessarily what you want them to do."

      That's sorta true, but luser input is rarely in assembly code. So programmer has to make assumptions on howe that input is interpreted. When learning BASIC on my VIC 20 (many moons ago) I never understood the logic that when I'd tell it to PRINT it would display the string on the screen, and not output to the printer. The programmer's definition of the word "print" wasn't the same as mine.

      Computer, do as I mean, not as I say!
    22. Re:In my CompSci class.. by Anonymous Coward · · Score: 0

      You go through the door... you are confronted by Trogdor the Burninator.

    23. Re:In my CompSci class.. by Anonymous Coward · · Score: 0

      Microsoft doesn't have the time to spend going through every possible software scenario and interaction, or every possible hardware configuration.

      bah.

      I'm tired of this excuse. Excusing laziness and incompetence that just encourages more laziness and incompetence. The root cause of the problem is omitting a simple check that you're getting what you expect. The result is thousands of implementations that never have to deal with an error that wasn't returned, and instead pass off whatever it feels like and sometimes getting a crash.

      But it's too late now, because hundreds of programs depend on FooFunctionExA accepting slightly bogus input. Hundreds of programs that probably don't bother to check that the return makes sense either.

      And you get a vicious circle. It's circular. And vicious. That's what makes it a vicious circle.

  10. Yet another... by apophenia · · Score: 0, Offtopic
    "oh no! i just lost my data! what can i do to avoid that in the future" ask slashdot post.

    How about backing up your information?

    1. Re:Yet another... by Anonymous Coward · · Score: 0

      Fuck you, slashbot.

  11. because someone was very curious and decided to... by null-sRc · · Score: 4, Funny

    *0;

    never follow the null pointer they said... what are they hiding there????

    --
    -judging another only defines yourself
  12. OS X by mysterious_mark · · Score: 0, Redundant

    Rarely crashes, have yet to see ir crash, a stbale OS is possible just not by M$. MM

    1. Re:OS X by aarondyck · · Score: 1, Interesting

      I've crashed OS X. It wasn't even that hard, really. I just did a bit of extremely intensive stuff with Adobe InDesign and it died. I found that it was also far more resource-intensive than most other Operating Systems I use. Perhaps it's just the way I use it, but I think that the only OS I haven't been able to crash is DOS.

    2. Re:OS X by Solosoft · · Score: 1

      Duh , typing dir and cd won't crash your OS ... DOS is easy to crash ... Ive done it more then enough time when I ran DOS on my 386 when I was little. Surely I got myself into trouble.

    3. Re:OS X by DaCool42 · · Score: 1

      If you were truly up on your crashing skills, you would know that you can crash msdos in mere seconds! I've heard rumors of a wise old crash-guru who could bring msdos 6.22 to its knees in mere pico seconds.

      --

      ----
      All of whose base are belong to the what-now?
    4. Re:OS X by Chef+Ramen+Noodle · · Score: 0

      applications under OS X crash MUCH more frequently than the operating system itself. I don't think ive had a total crash since 10.2 (up to 10.2.6 now)

      --
      --CRN
    5. Re:OS X by aarondyck · · Score: 1

      When I say that I crashed something, it's not because I intended to crash it, but because it unexpectedly quit. I think that this comes down to a basic definition of what a crash is. By my definition, it is unexpected. If I'm trying to crash something, it will crash. However, if a program suddenly quits it is quite different.

      I believe that I have never crashed DOS, particularly not my all-time favourite version, DR-DOS 6.0 (the most stable and functional version of DOS I've ever used). I have, on the other hand, had a variety of different versions of Windows unexpectedly stop functioning, as well as MacOS X, as I previously mentioned. It all basically comes down to a definition. Mine includes the term unexpected.

    6. Re:OS X by edmo · · Score: 1

      Do you mean that Adobe InDesign crashed or that OS X crashed?
      these are diferent things, and application under any OS can crash no matter how stable the OS itself is. Basicly, did you have to restart whole computer, or just re-open your file?

      --
      Don't save your orgasms for Heaven; Heaven knows we need them here.
    7. Re:OS X by Imazalil · · Score: 1

      I find that fact that it crashes at all quite disappointing. A mac is very much like a nintendo or playstation. It's a box with set hardware specs.

      Yes you can add your fancy webcams etc, but they almost all gp through apple, and the os itself just has to worry about the base hardware: mainboard, CPU, RAM, HDD etc, now all of this is set by apple, so why inthe world does it crash. They know excatly the hardware it is going to run on, so why does it crash!!!

      Windows has the saving grace of being able to complain that it has to run on all sorts of cheap ass hardware, and considering some of the crap I've seen it run on it does a pretty good job

      I don't mean to put apple down and defend MS, but it seems to me that the Apple software (not the 3rd party apps etc) could be a little bit more stable

      Im.
    8. Re:OS X by jweatherley · · Score: 1

      Yes you can add your fancy webcams etc, but they almost all gp through apple, and the os itself just has to worry about the base hardware: mainboard, CPU, RAM, HDD etc, now all of this is set by apple, so why inthe world does it crash. They know excatly the hardware it is going to run on, so why does it crash!!!

      If the hardware requires a driver running in kernel space then it can crash the machine without Apple's involvement. The one thing that crashes my Mac is my Alcatel USB ADSL modem. If you pull the USB lead out you risk a kernel panic. This is all down to Alcatel's ineptitude at writing a kext and has nothing to do with Apple's code.

      I do remember one of the 10.2.x releases had a problem moving directories into themselves so they do make mistakes - but by and large OS X is very reliable. They are also pretty quick at fixing their own bugs - the directory moving one only appeared in a single release. How long did it take Microsoft to fix the 'while (1) printf("\t\b\b");' bug?

      --

      --
      Reverse outsourcing: it's the future
    9. Re:OS X by aarondyck · · Score: 1

      On several different occasions a complete system reboot was required. It could have been that I was just using OSX on a slower iMac, but it had been purchased with OSX pre-installed, so I don't think that was the problem. I also checked to make sure that it wasn't faulty RAM or something foolish like that; I was simply trying to do something that OSX didn't like. I'm not sure exactly what, but I can tell you that at the time I was publishing a 24-page University newspaper in inDesign. I only had one other program running in the background, and that was a simple (read 200K) graphics conversion program, a program that was idle with no loaded files.

  13. Reliability and complexity by woodhouse · · Score: 4, Insightful

    Because reliability is inversely proportional to complexity. Systems these days are generally a lot more complex than those of 10 years ago, and in complex systems, bugs are much harder to find. The fact that you say stability hasn't changed is in fact a pretty impressive achievement if you consider how much more complex hardware and software is nowadays.

    1. Re:Reliability and complexity by homer_ca · · Score: 1

      That's the gist of it. Chaos theory and complex systems will pretty much explain it.

  14. It's not the need for speed by Jeremi · · Score: 5, Insightful
    It's the need for new features. Every feature that gets added to a piece of software is a chance for a bug to creep in.


    Worse, as the number of features (and hence the amount of code and number of possible execution paths) increases, the ability of the programmer(s) to completely understand how the code works decreases -- so the chances of bugs being introduced doesn't just rise with each feature, it accelerates.


    The moral is: You can have a powerful system, a bug-free system, or an on-time system -- pick any two (at best).

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
    1. Re:It's not the need for speed by WasterDave · · Score: 5, Insightful

      Thank you, at least somebody got it fucking right.

      Software doesn't have to crash, but for a given quantity of development resources there's a fairly simple tradeoff between feature-richness and stability.

      You want reliable? Strip back features left right and centre, design an elegant architecture, then unit test properly.

      Dave (in a ranty mood)

      --
      I write a blog now, you should be afraid.
    2. Re:It's not the need for speed by Anonymous Coward · · Score: 0

      The moral is: You can have a powerful system, a bug-free system, or an on-time system

      So, you are telling me that it is impossible to deliver a powerful, bug-free system on-time? You are so fired.

      I think you mean that you can't deliver a powerful, bug-free system in a short amount of time...

    3. Re:It's not the need for speed by Kethinov · · Score: 1

      You want reliable? Strip back features left right and centre, design an elegant architecture, then unit test properly.

      *nodnod* Yes sir, my system does absolutely nothing but at least it doesn't crash!

      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    4. Re:It's not the need for speed by MourningBlade · · Score: 2

      It's the need for new features. Every feature that gets added to a piece of software is a chance for a bug to creep in.

      This is one of the reasons I consider the 'nix philosophy of many small, well-written programs working together to be a good one. Programs use programs.

      One of the reaons that programs crash is that they require knowledge of the component programs. 'nix programmers (should) follow the principle of "define an input protocol and an output protocol. Be as flexible as possible with the input protocol, but do require it. Be as strict with the output protocol and make it human-readable."

      This eliminates numerous programmer-factors problems. It allows for black boxing, unit testing, and allows you to isolate blame quickly. It also allows you to swap out components and split up effort in programming - as I think has been readily demonstrated by the 'nixes.

      This development philosophy can really help kill off featuritis, as you can implement the feature as high-level as possible reducing the amount of code that requires it, thus reducing errors across the system.

      I think that the core problem with features and software (and I do think you're on the right track) is the amount of virgin code introduced, and the quantity of white boxes required to understand the problem. My favorite example of this is TeX and LaTeX: I've never encountered a LaTeX error (they're getting pretty rare now), and I don't know anyone who's encountered a TeX error (you can find them on Usenet, but they're very old posts).

      I sometimes wonder if we wouldn't all be better off using lightweight libraries that handle protocols to talk to programs and daemons than using heavyweight APIs and toolkits.

    5. Re:It's not the need for speed by luciuskwok · · Score: 1
      Regarding UNIX, your description is a simplistic fantasy-land of "what things would be like if, oh, everybody used unix." What happens if you don't have a library that does what you want to do? What happens if the libraries you have can't interface with one another without massive amounts of code? What happens to the performance of the machine when you have thousands of separate processes trying to access shared resources? Do you want to be dependent on another vendor's libraries, which could have bugs and other undocumented "features"?

      What I've found in my experience of writing software is that you end up writing your own libraries for practically everything because the existing library is missing a feature, has bugs, is too slow, isn't being supported anymore, or just does things in strange ways.

    6. Re:It's not the need for speed by MourningBlade · · Score: 1

      What I've found in my experience of writing software is that you end up writing your own libraries for practically everything because the existing library is missing a feature, has bugs, is too slow, isn't being supported anymore, or just does things in strange ways.

      Forgive some sarcasm, but I often find that I rewrite libc and qt. getopt and perl are re-implemented all the time, and gcc is a horrid hack compared to a hand-tuned compiler for my specific application. make is a total hack, and I write my build scripts in assembly.

      Seriously, this bit of "writing your own because the others aren't good" is the exact problem facing us today. Here we go:

      "Missing a feature." Well, if it's missing a feature, why not add it and get the benefits of the other person's bugfixes and reduces the amount of virgin code introduced.

      "has bugs" why not fix them? Fix the devil you know, and avoid inviting in the devil you don't.

      "isn't supported anymore" the reason so many of these libraries aren't supported anymore is because people write their own. Very, very, very few libraries can stand the test of 5 years of upgrades to software without any maintenance and upkeep. Your unwillingness to learn a new system and fix its problems, rather to forge ahead with your own problems and lack of maintenance for the future bespeaks a lack of understanding as to where the problem lies, IMHO.

      As far as being dependent upon another for core code...I have no problem with that as long as I modularize my code sufficiently that I can switch to another or my own system. If the other person's code isn't good enough, I'll put up with it until my system is good enough that the other's library is the critical bug, then I will swap out their code for another, or perhaps my own.

      Note that many larger programs are often written using buggy subcomponents that are later swapped out for better ones rather than sitting in the citadel and crafting the Perfect System From Scratch.

      Also, you run into the issue that your code may work fine for you (works for you, no way to tell if it's broken), but it breaks when you give it to other people.

      Anyways, sorry for jumping on you, I might be wrong about all of this (though I doubt it), but your post is along the lines of some ideas I've had to deal with recently.

  15. Computers don't crash because of bad ethics by Anonymous Coward · · Score: 0, Funny

    Atoms! Look! Atoms are everywhere! They're causing the struction of all we hold dear to us! Atoms are to blame!

    -Montgomery Burns

  16. Don't forget the hardware... by MightyTribble · · Score: 5, Insightful

    Some crashes aren't the fault of the OS. Bad RAM, flaky disk controllers, CPU with floating-point errors (Intel, I'm looking at *you*. Again. *cough* Itanium *cough*)... all can take down an OS desite flawless code.

    That said, some Enterprise-class *NIX (I'm specifically thinking of Solaris, but maybe AIX does this, too) can work around pretty much any hardware failure, given enough hardware to work with and attentive maintainence.

    1. Re:Don't forget the hardware... by Anonymous Coward · · Score: 0
      (from the article)
      >Of course, there's no need to mention Microsoft's inability to create a stable system
      I wish the author would please tell us more about Microsoft's inability to make a stable OS. My experience with NT 4.0 thru XP has been that Microsoft has their sh*t together and Windows doesn't crash anymore unless there's a hardware problem. In fact, it's the x86 architecture that causes most of the crashes on PCs these days.

      First find some fault tolerant PC hardware, then you can start complaining if the OS goes down.

      p.s. I've worked as *nix kernel developer, and I used to be in the "windows sucks" camp, but years of experience with NT have proven to me that my bias was wrong.

    2. Re:Don't forget the hardware... by Anonymous Coward · · Score: 0

      Simple! NT was made by IBM in exchange for OS/2s support for the Windows API.

    3. Re:Don't forget the hardware... by gl4ss · · Score: 1

      the problem with windowsses of modern era is that they go down with the software that they run and crashes, not that they go down on their own like the win9* variety (which had also the problem of going down with the crashing programs).

      it's pretty lame most of the time to cite x86 architechture as the main culprit for crashes, you can take almost any 5 year old x86 machine, check that the fans are ok and hd works(neither of which are 'x86 architechture problems') install an operating system and leave it running for 362 days straight.

      --
      world was created 5 seconds before this post as it is.
  17. crashes? by Moridineas · · Score: 3, Interesting

    Well the computers that I manage we've got an OpenBSD server hat never crashes (uptime max is around 6months--when a new release comes out) and a FreeBSD server that has never crashed--max up time has been around 140-150 days, and that was for system upgrades/hardware additions.

    On the workstation side they are definitely not THAT stable, but since we've switched to XP/2K on the PC side, those pc's regularly get 60+ days of uptime. Just as a note--I had a XP computer the other day that would crash about two or three times a day. The guy that was using it kept yelling about microsoft, etc etc etc. Turned out to be bad ram. After switching in new ram it's currently at 40 days uptime (not a single crash).

    For some reason the macs we have get turned off every night so their uptime isn't an issue, but from what I hear OSX is quite stable.

    1. Re:crashes? by Anonymous Coward · · Score: 0

      I had a XP computer the other day that

      &

      it's currently at 40 days uptime

      Perhaps you need to replace the system clock instead?

    2. Re:crashes? by WasterDave · · Score: 1

      OS X is very stable. I reboot my iBook whever there's an OS upgrade, otherwise it just isn't necessary - just shut the lid when you're done with it.

      Dave

      --
      I write a blog now, you should be afraid.
    3. Re:crashes? by Channing · · Score: 1

      > but from what I hear OSX is quite stable.

      I've run OSX for 2 years, rebooting only after updates required it.

      Its never crashed.

  18. Touchy subject by aarondyck · · Score: 5, Interesting

    I remmeber years ago having a conversation with an IT manager at IBM. We were talking about the inability of computer programmers to make their code foolproof. His point was that we don't see problems like this with proprietary hardware. When was the last time someone crashed their Super Nintendo? Of course, with a PC platform (or even Mac, or whatever else) there are problems of unreliability. His idea is that this is because of sloppy programming. The reason we were having this conversation is that I had a piece of software (brand new, I might add) that would not install on my computer. You would think that a reputable software company (and this was a reputable company) would test their product on at least a few systems to make sure that it would at least install! The end result was that I ended up never playing the game (not even to this day), nor have I purchased another title from that company since that time. Perhaps that is the solution to the root problem?

    1. Re:Touchy subject by JJahn · · Score: 1

      Hmm last time I crashed my Super Nintendo was when my dog stepped on it and made it completely freeze up. (But that was quite a while ago, I have since upgraded a few times)

    2. Re:Touchy subject by Anonymous Coward · · Score: 0

      bull.

      SNES doesn't crash *as much* because it is a *single purpose* device - it plays games. It has one controller interface, one output interface, and it's a lot smaller than, say, Solaris.

      That said, how much contribution to society has been done on a SNES vs a general purpose OS?

    3. Re:Touchy subject by DNS-and-BIND · · Score: 2, Informative

      I saw a quote from a game maker on this...he said something to the effect of, "We have to be really careful with testing the console versions of our games, because if something goes wrong we can't just issue a patch to fix it like we can the PC version."

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    4. Re:Touchy subject by cryosis · · Score: 2, Insightful

      Wait a second. You're saying that because you can't get a modern game that was designed to run on a damn near infinite number of hardware configurations plus a wide variety of software configurations and have that game always run perfectly every time that the programmers are sloppy?

      You can't expect that programmers predict every condition of every system that their software might run on. It would take decades for a new package to be released and even then it would be huge.

      How can you compare a Super Nintendo where all that games written for it are within very strict guidelines to a PC game where the programmer knows next to nothing about the systems that the game is going to be run on? The PC programmer can only try their best to quash the bugs that they can find. And there is no way that they can stop them all. I don't think that this is due to laziness on their part, it's more due to the fact that they're being expected to ship the product on time. If consumers would tolerate longer development schedules and higher program costs, then I think that software would get more stable. But everyone wants newer, faster, better *now*. Oh, and cheap too.

      The only way you could have complete software stability is to ensure that every system is exactly the same, down to the RAM manufacturer and the library versions. And you're never going to get that. Not everyone wants the same computer as Bob next door.

    5. Re:Touchy subject by aarondyck · · Score: 1

      The particular piece of software that I was referring to was tested by myself and a few friends on a variety of platforms and it failed to work properly on any of them, crashing at a variety of places during the installation process. You would think that they would at least test the INSTALL PROGRAM!

    6. Re:Touchy subject by ActiveSX · · Score: 1

      I have since upgraded a few times

      The Nintendo or the dog?

    7. Re:Touchy subject by llamaluvr · · Score: 2, Informative

      I've crashed my Super Nintendo. Quite a bit, actually.

      In Final Fantasy III, in the Phoenix Cave, occasionally when I encountered a random battle, the sprites would all become garbled, andthen the game would hang. At first I thought it was a secret, because one of my characters turned into General Leo, but then the game stopped working and I had to reset.

      You can also sometimes crash Final Fantasy III by using Relm's "Sketch" command on Gau. What you do is you let Gau use "Leap" to learn a new Rage ability when you're roaming the Veldt, and then when you find him in another battle and sketch him when he appears. I'm not sure if it always crashes the game- I recall that sometimes it gave you tons of extra random items (like 99 daggers, among other things)- but that might be another bug.

      --
      Insightful: 76, Off-Topic: 379, Flamebait: 24, Funny: 152, Interesting: 201, Underrated: 55, Troll: 9, Total: 896
    8. Re:Touchy subject by SlamMan · · Score: 1

      Try playing Morrowind on an XBox. I swear to God, that thing crashed every 10 minuites when you get to the higher levels.

      --
      Mod point free since 2001
    9. Re:Touchy subject by Anonymous Coward · · Score: 0

      That said, how much contribution to society has been done on a SNES vs a general purpose OS?

      Good question. But some analysts say that computers actually have reduced our productivity rather than increased it.

      A good tool in the hands of a competent user can bring multifold increases in productivity. Problem is, those few are outweighed by vast numbers of incompetent users with poor tools. :)

    10. Re:Touchy subject by CognitivelyDistorted · · Score: 1
      I remmeber years ago having a conversation with an IT manager at IBM. We were talking about the inability of computer programmers to make their code foolproof. His point was that we don't see problems like this with proprietary hardware.

      Hardware definitely has bugs. CPUs always have bugs, although only a few of them have been a really big deal. Hardware tends to have fewer bugs because it is simpler than software. Also, it's much more expensive to patch hardware than software, so there's more incentive to get it right before shipping.

    11. Re:Touchy subject by Error27 · · Score: 1

      >>When was the last time someone crashed their Super Nintendo?

      I had a watch that locked up. I had to hit all 4 buttons to reset it, to midnight Jan 1. :/

    12. Re:Touchy subject by kesuki · · Score: 1

      The inventory would display say 99 economizers etc, but if you actually sold the items off at a shop you had 254 items.
      Yeah, I did the sketch glitch, and I did get tons of great items. The items recieved are random, based on numerous factors... but I got tons of daggars and other weapons, and of course an infinite amount of economizers (a very useful rare item that reduced the cost of magic spells by 50%) So I could cast at 1/4 cost by equiping dual economizers. mmm... tasty.

    13. Re:Touchy subject by Exantrius · · Score: 2, Insightful

      Well, I've actually caused my PS2 to crash quite a bit, such as playing gauntlet with 4 players (tries to reference negative ram addresses or something like that...
      But in general, you're right. It's very difficult to recall a console game...
      However, it only has to run on one (few at least) set of hardware. It's the reason macs seem to never crash-- If they had to program for every piece of hardware out there, there'd be a lot of "crap" that happens, and things get messy...

      If PCs were uber-standardized-- this proc. this amount of ram, this and that, then there would be no problem. I'm working tech support (for a *gag* foxpro program) and one in 100 customers gets extreme slowdown (like running a report can take 72 hours when it's supposed to only take 10ish minutes) all the time. We have been hunting for it for the past months, and it isn't the data... It seems possibly hardware related, but there's so much hardware out there, and so many different layouts for it (win9x v. me v. 2k vs. nt v. xp)

      It's a nice belief that they try it on a bunch of systems, but chances are, if it's anything like the jobs I've run, you've got one guy that collects all the files, then at the end, he runs it around the office, and maybe to a "test room" with generic pcs of varying speeds and makeups, which he tests it on.

      Did you ever look at sierra's help stuff? I never had a problem installing their stuff (microprose on the other hand, cost me six months allowance because it hard killed win31, and I had to bring it to the store to get it reinstalled (you know, when your parents didn't trust you to touch the damned thing, even though you can't do any more damage than you already did? Ahhh, memories...

      Uh, that's all I have to add. Good points, just a bit more insight... /ex

    14. Re:Touchy subject by Anonymous Coward · · Score: 0

      I thought economizers made all magic only cost 1mp, so having two was useless.

    15. Re:Touchy subject by kesuki · · Score: 1

      maybe i was confused on which item it was... but there was an item that made all spells 1 mp, and one which redused the cost by 50% and one which reduced by 25% I had a lot of the 50% ones, whichever item name that was, I though they were the economizer but it's been many long years...

    16. Re:Touchy subject by cruppel · · Score: 1

      God, I hope it wasn't Half-Life (*wink wink*, CS) that you missed out on...

    17. Re:Touchy subject by Anonymous Coward · · Score: 0

      And then they go ahead and release games like Spyro: Enter the Dragonfly with MAJOR framerate issues... nice testing there, guys. You didn't notice that the screen suddenly dropped below 10fps?

    18. Re:Touchy subject by Zoarre · · Score: 3, Insightful
      I remmeber years ago having a conversation with an IT manager at IBM. We were talking about the inability of computer programmers to make their code foolproof. His point was that we don't see problems like this with proprietary hardware. When was the last time someone crashed their Super Nintendo?

      The Super Nintendo used a 3Mhz Motorola 65816, the same processor used in an Apple IIgs. I can't find it's transistor count on the web, but it could not have had less than 5000 (the 6502) nor could it have had more then 68,000 (the 68k). Compare this to a modern AMD Athlon 3000+, which has about 54.3 million transistors. The Super Nintendo might be less likely to crash than a PC because there are at least 54 million fewer things to break.

      Also, his claim that you don't find similar problems in modern hardware is incorrect. Just search Google for "intel errata" to see what I mean.

      I bought my Gamecube last week and a copy of Metroid Prime. Ironically, it runs on an IBM PowerPC chip (the IBM branding is right on the box) and it's crashed twice since I've owned it. (I <3 my Gamecube regardless).

      Industry professionals that produce glib, ignorant assertions such as this one might be part of the problem. :D

      --
      "People with opinions just go around bothering one another." -The Buddha
    19. Re:Touchy subject by ZorbaTHut · · Score: 1

      First time I saw an N64, it crashed.

      "Isn't this pretty?"
      "Yeah, but why did the planets stop turning?"
      "Er . . . um . . ."

      And I know for a fact that there's a PS2 game out there that crashes on the highest (secret) difficulty with one character class on a specific level. Runs out of RAM. No way to get past.

      As software gets more complex, it crashes more often. Live with it. :P

      --
      Breaking Into the Industry - A development log about starting a game studio.
    20. Re:Touchy subject by happyhamster · · Score: 1, Funny

      dear IDIOT

      If installation program crashes "on multiple systems" and "at various points", there is a 99.9% chance of bad CD. I bet if you just exchanged the CD it would work just fine. How morons like you are even let near computers, let alone "have a conversation with an IT manager at IBM" is beyond me. Mayber this is the real reason computers crash and IT sucks - CLUELESS IDIOTS LIKE YOU.

      jeez

    21. Re:Touchy subject by Bluelive · · Score: 2, Insightful

      This could ofcourse have been a single bit that failed on the medium you got your copy on.

    22. Re:Touchy subject by WWWWolf · · Score: 1
      His point was that we don't see problems like this with proprietary hardware. When was the last time someone crashed their Super Nintendo?

      SNES is a standardized (but not openly standardized, of course) platform. No hardware variations, and if there are, they're all documented in the big Book the Developers are supposed to read. Or something.

      But even standardized platform can't save you from bugs...

      Back in the day, I had a Commodore 64 with a 1541 disk drive. Wholly standard piece of junk I loved to no end. In terms of hardware, it was just as standardized as SNES. Well documented, too.

      Yet, some games had bugs. My copy of TMNT had strange "blackout" bug and IIRC it also did odd stuff when I hit Restore key (when I was supposed ot hit Return). Okay, so the game was obviously quickly produced mass market piece of crap to get money from stupid teens. Social and budget issues made those bugs happen, not technical issues.

    23. Re:Touchy subject by Kintanon · · Score: 1

      All of the Gauntlet games are pretty reliabley crashable. I can crash them on most consoles about 99% of the time. Just go somewhere that you know there is an exploding magic potion in a crate or barrel, and use an exploding potion near it. I've yet to run into a copy of Gauntlet Legends that doesn't crash when you do that about half the time.

      Kintanon

      --
      Check out JoshJitsu.info for Brazilian Ji
    24. Re:Touchy subject by Anonymous Coward · · Score: 0

      Strange, my GC never crashes unless I leave it running nonstop for a couple of days (or the disc is dirty, but there's not much you can do about that except keep your games clean)

    25. Re:Touchy subject by Zoarre · · Score: 1

      Yeah, I was suprised. My guess is that it's a bug in MP but I'll check the disc when I get home tonight. Thanks!

      --
      "People with opinions just go around bothering one another." -The Buddha
    26. Re:Touchy subject by runderwo · · Score: 1
      The Super Nintendo used a 3Mhz Motorola 65816, the same processor used in an Apple IIgs.
      Not Motorola, it was WDC (Western Design, not the HDD mfg). You were probably thinking of either the Motorola 6800, which the 6502 was a cheap clone of, or the 68000.
    27. Re:Touchy subject by aarondyck · · Score: 1

      Just FYI, I took that particular game back to the store not once, but twice and had the same results with all three copies!

    28. Re:Touchy subject by mysticwhiskey · · Score: 1

      Well, I don't know what has made you so touchy about the parent comment, but seems you're basing your argument on pure arse-pullery ("99.9% chance of bad CD", where'd you get this stat from?) and intimidation ("Idiot" x 2)... and anyway how is an END USER the cause of computer crashes? I know I'm prolly eating troll bait, but sheesh, can you imagine a world full of people like YOU? Ick.

      --

      Stuck down a hole! In the middle of the night! With an owl!

  19. Scientific American... by Hanji · · Score: 4, Interesting

    Scientific American actually had an article on a similar topic. Basically, they seem to be accepting crashes as ineveitable, and were focusing on systems to help computers recover from crashes faster and more reliably...

    They also propose that all computer systems should have an "undo" feature built in to allow harmful changes (either due to mistakes or malice) to be easily undone...

    --
    A Minesweeper clone that doesn't suck
    1. Re:Scientific American... by Anonymous Coward · · Score: 0


      >They also propose that all computer systems
      >should have an "undo" feature built in to allow
      >harmful changes (either due to mistakes or
      >malice) to be easily undone...

      A rollback of a hundred table join on a distributed db hardly fits in the same spectrum as "undo"...

    2. Re:Scientific American... by Frobnicator · · Score: 1
      Many supercomputers, most notably the 288 node AIX box that I worked with in grad school, can take snapshots of your application memory and CPU states at regular intervals.

      One problem with that is that communications are not stored as part of that snapshot.

      frob.

      --
      //TODO: Think of witty sig statement
    3. Re:Scientific American... by Anonymous Coward · · Score: 1, Interesting

      Byte magazine had a great article too, with a nicely done chart.

      Memorable line: Men are from Mars. Women are from Venus. Computers are from hell.

    4. Re:Scientific American... by stanwirth · · Score: 1

      They also propose that all computer systems should have an "undo" feature built in to allow harmful changes (either due to mistakes or malice) to be easily undone...

      AS/400's have had this for a long time. Linux does, in the sense that you can load and unload certain device drivers and modules dynamically. But really, in terms of OS architecture and hardware, AS/400's have been way ahead of their time for a long time. Worth studying.

    5. Re:Scientific American... by rabidcow · · Score: 1

      They also propose that all computer systems should have an "undo" feature built in to allow harmful changes (either due to mistakes or malice) to be easily undone...

      That's great until the undo feature crashes.

    6. Re:Scientific American... by RdsArts · · Score: 1

      all computer systems should have an "undo" feature built in

      Caller: Hello, tech support? I installed a new program, and it's got my computer all messed up.
      Tech: OK, I'm going to need to you look at the front of the computer. Do you see that ctrl key and a Z by the power button?
      Caller: *paniced* Yes..
      Tech: OK, now, I'm going to need you to press them
      Caller: The power, ctrl and Z buttons?
      Tech: .. No just the Ctrl and Z.
      Caller: OK, it's powered up.
      Tech: NO! N-. no, power back down, a-
      Caller: I'm hitting the buttons and they're not doing anything.
      Tech: .... *gun shot. Thud*
      Caller: Oh, why are these things so difficult... Hello? Are you still there? Hello? Oh, while I've got you on the line, how do I change the wallpaper? Hello?

  20. And by cscx · · Score: 1

    What happens when you get hit by a bus?

    1. Re:And by UndercoverBrotha · · Score: 2, Funny

      I never thought of that...although I do confide in my DBA who does the same thing with his procs, derived tables and jobs...he would handle it, I would come back like Swayze and help him out...

      --
      Solid!
    2. Re:And by Anonymous Coward · · Score: 0

      His unmaintainable code get replaced by a better implementation. Good riddance.

    3. Re:And by Anonymous Coward · · Score: 1, Interesting
      FACT:

      People who lack with facility with English generally write shitty interfaces that people loathe using, even if the code is "clean".

    4. Re:And by UserGoogol · · Score: 1

      They have to try to figure out how to rise you from the dead.

      --
      "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
    5. Re:And by jdray · · Score: 4, Funny

      Isn't that "restore him from backup?"

      --
      The Spoon
      Updated 6/28/2011
    6. Re:And by guile*fr · · Score: 3, Funny

      ... doing dirty things with clay?

    7. Re:and by cptgrudge · · Score: 1
      tell me when your windows box reliably plays games and maintains more than a few days at best of uptime

      I am a hard core gamer. I stress my computer all the time. My Windows 2000 box for gaming at home has uptimes measured in months and that's only because I'll boot into Red Hat sometimes. I push my machines all the time. Lots of Gaming, VMWare and MySQL on Windows. Apache, MySQL, and coding on Linux. They're all solid.

      When I get together with people for LAN parties (to game) other people have problems. Constantly. Why? Because they bought the cheapest hardware they could, and they're paying the price now in stability.

      --
      Qualitas edurus commercium, nullus penitus net rimor, nullus deus beneficium
    8. Re:and by Temporal · · Score: 3, Informative

      My Win2k box plays games reliably and maintains more than a few months of uptime.

      Please refer to this post for more information.

      Thank you.

    9. Re:and by drinkypoo · · Score: 1
      I play tons of games all the time. My Windows XP box last crashed because I installed an unsigned driver for an Agfa USB-connected ePhoto camera. (I will henceforth avoid Agfa like the plague it is. Besides the driver issues the camera has a nice lens but a shitty CCD.) I don't plug that camera in any more.

      Now, playing really poorly programmed games can crash the system or screw up the GUI so badly that you have to reboot. That is inexcusable. But as long as you stick to the good stuff, and buy the good hardware, you generally have no problem having uptimes longer than the time between major security flaws detected in windows. :)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:and by waspleg · · Score: 1

      i have had 30 days or so on my xp desktop but rarely, more often i get lockups as i push the machine, usually this happens when i'm say.. ripping an incoming internet audio stream to mp3 while listening to it and playing counterstrike

      sometimes i can do this reliably for hours w/o any trouble, other times i get random lockups

      granted i shorted the sound card recently by dropping a mushroom from teh pizza i was eating into the open case but i had these issues before, and it has never been a pleasant experience getting many new games to work

      if i stay in userland and only view websites and listen to mp3s like a good little boy i have no issues with uptime.. is it windows? i'm guessing at least partially

      although the blame goes to many of the application developers as well, the real question is why do operating systems still allow programs to crash them? that is more what i was getting at

    11. Re:And by Anonymous Coward · · Score: 0

      I suppose you know this from implementing such interfaces yourself, eh?

    12. Re:and by |Cozmo| · · Score: 2, Interesting

      I don't remember having any games screw up my system since I stopped playing half-life. I built a new system a couple months ago and it hasn't crashed once.
      I had a win98 system last a bit past 30 days with regular use once and it was terribly hosed by the time I rebooted. Win2k or XP can last until your power goes out, you kick the surge protector, or you need to reboot to install drivers/software/hotfixes ;)

    13. Re:and by cptgrudge · · Score: 1
      Have you checked Event Viewer? Microsoft does pretty extensive error reporting there. And you can figure out what is causing the problem from the details. Do a google search. Check the Microsoft support pages.

      Lots of people just restart their machines and say, "Oh well, it's just Windows. Fucking Microsoft." and never investigate. The vast majority of errors that I find on Windows, and I admin close to a thousand machines, are from either malfunctioning hardware or misbehaving software, not Windows.

      Granted, 95, 98, ME were terrible, and even NT to some extent, but from 2000 and on Microsoft has really cleaned up their act. This constant blaming of Microsoft just has to end. Putting our heads in the sand and not realizing the truth gives the impression that we are the ones spreading the FUD.

      --
      Qualitas edurus commercium, nullus penitus net rimor, nullus deus beneficium
    14. Re:and by workindev · · Score: 3, Funny

      You are acting like you can actually play a decent game on Linux. HINT: Some freeking penguin on a sled doesn't count as a decent game.

    15. Re:And by killmenow · · Score: 3, Funny

      He dies.

    16. Re:and by sheldon · · Score: 3, Interesting

      Interesting.

      I play RTCW quite a bit on my WinXP box with no issues. RTCW occasionally crashes, and I have to hit CTRL-ALT-DEL to bring up task manager and kill it, but the system remains stable.

      When I first built this box I had some issues, after a while it would lock up. Turned out it was because the video card was overheating. The system itself wasn't locking up, just the video card. Put the system in a new Antec SX-835II case with better cooling and haven't had a problem since.

    17. Re:and by Anonymous Coward · · Score: 0

      granted i shorted the sound card recently by dropping a mushroom from teh pizza i was eating into the open case...

      usually this happens when i'm say.. ripping an incoming internet audio stream to mp3 while listening to it and playing counterstrike

      is it windows? i'm guessing at least partially

      Your deductive skills are not so sharp.

    18. Re:And by prodangle · · Score: 1
      FACT: People who lack with facility with English generally write shitty interfaces that people loathe using, even if the code is "clean".

      Make up your mind. Is that a fact, or a generisation?

    19. Re:And by allism · · Score: 1

      That's for the software testers to fix...

  21. Because they are complex systems by Anonymous Coward · · Score: 0

    How often does your 4 function pocket calculator crash? Never? That's probably because they are simple systems. It isn't that hard to figure out.

    1. Re:Because they are complex systems by repetty · · Score: 1

      "How often does your 4 function pocket calculator crash? Never? That's probably because they are simple systems. It isn't that hard to figure out."

      I'd mod you up, if I could.

      You're absolutely right: it's that simple.

      Geeze...

      --Richard

    2. Re:Because they are complex systems by AvengerXP · · Score: 1

      You're laughing, but I've had calculators turn "ERROR 3" when doing simple things. Nothing's perfect.

      --
      Trolls dont like to be Flamebait, because they burn so well. Protect our Troll heritage!
    3. Re:Because they are complex systems by Anonymous Coward · · Score: 1, Interesting

      "How often does your 4 function pocket calculator crash?"

      Well, maybe never, but...

      My calc professor once put a question on an exam that was designed to crash a TI-89.

  22. complexity is increasing by Anonymous Coward · · Score: 0

    the overall complexity of computer systems, both hardware, and software, has increased substantially over the years. This complexity increase has been matched by tools (hardware simulation, purify-like memory checkers, etc) so the overall stability rate has remained good.
    Windows2000 definitely is more reliable than win3.1.
    Freebsd 4.X is definitely more stable than Freebsd 1.x. Progress is being made.

    There are a surprising amount of bugs in anything: computer related or not. The industrial design of your car probably has something you'd consider a 'bug'.

    Perfection is the brass ring to strive for. Commercial expediency is the balance.

  23. Technology has evolved in 30 years... by mrjah · · Score: 1, Insightful

    ...but humankind has not.

    1. Re:Technology has evolved in 30 years... by ramzak2k · · Score: 1

      what ever happened to those mutants ? its about time they got here to fix some software issues.

      --

      Siggy Say, Siggy Do
    2. Re:Technology has evolved in 30 years... by Anonymous Coward · · Score: 0

      But you can't hug your children with nuclear arms!!!!

  24. Yet another "end user" by Stonent1 · · Score: 0, Flamebait

    Who equates computer with Windows(tm)

    1. Re:Yet another "end user" by Anonymous Coward · · Score: 0

      Yet another slashbot, fuck off.

  25. It's expected. by echucker · · Score: 3, Insightful

    We've lived with bugs for so long, they're a fact of life. They're accepted as part of the daily dealings with computers.

    1. Re:It's expected. by LordBodak · · Score: 1

      The attitude that crashes are acceptable is exactly the reason companies like Microsoft can get away with releasing crap every 2 years and still selling millions. If the users make a stand and say "fix the bugs or we're not buying", the bugs will get fixed. The problem is very simple: the average computer user simply doesn't know that it is possible to have a computer that doesn't crash. "Microsoft's biggest and most dangerous contribution to the software industry may be the degree to which it has lowered user expectations." -- Esther Schindler, OS/2 Magazine

      --
      LordBodak's journal.
    2. Re:It's expected. by nordicfrost · · Score: 1
      They're accepted as part of the daily dealings with computers.

      Aaah, but what happens when people find an alternative? My mom (yeah,yeah...) was shopping for a computer to use in web publishing. Previous OS: Windows 98 SE. She bought an iBook, and as a direct result the support phones to me has gone down from 2 a day to 2 a month. And then it's usually about the web publishing tool.

      As a result of switching to MacOS X, life at work becomes unbearable for her. She gets pissed off if a flaky Win2k driver results in a 2-hour work loss, as we should be. The colleauges shrug it off andgo for a smoke while the computer reboots. How did we get used to this? I think we all should use an OS that is more stable than our everyday OS just to expect more.

      Sometimes the bugs aren't in the code, but in the infratructure. Let me tell you the Saga of the Microsoft Bluetooth Mouse...
      'Twas in the days where the Bluetooth system was in its infancy. XP just reached SP1 and MacOS X ruled the user-friendly skies. I borrowed a Microsoft Bluetooth mouse to test at home. As I read the description on the web page, I looked forward to the " effortless, cable-free connections with Bluetooth compatible devices*, including phones" as advertised on the web page.

      I went home and tried to set up this little blue wonder. I was merrily greeted with a "FUCK YOU go buy XP" message on the screen of my Win2k machine. Oh fiddlesticks, I said to my self and phoned a friend with XP. We went to try the Bluetooth wonder on his machine. I popped the USB dongle in, and by the way it is a LONG dongle. The always-friendly message popped up on the screen: "Your system suck, upgrade to XP SP1 now", wich was fortunlately included on a CD with the mouse. I upgraded the system and half an hour later I rebooted (twice) and popped in the Bluetooth XP stack drivers. It seems that Microsoft shipped the Bluetooth stack in English, French (Probably not anymore), Spanish, Japanese, two types of Chinese, Portugese, Arabic, Swedish, Danish, Dutch, and German but not in Norwegian as the system was installed.It would not install, as I might be exposed to English in some menus and we all know that it could be fatal. So the installation was cancelled and I poured my self a hard drink of vodka on the rocks.

      A couple of days later, I was at my mom's chopping down a tree in the garden. The Wireless IntelliMouse Explorer for Bluetooth was still in my backpack. I went to the iBook to do some mental meditation when I got a wicked, wicked idea. What if I tried the Bluetooth dongle on the iBook? What could happen??? So I tried it. I popped it in and the blue light went on, and... ...nothing. Not a driver request, no fretting about shelling out more dough to buy another OS, no nothing. I was a bit disappointed, but then I saw it. The Bluetooth rune symbol went on and the The Wireless IntelliMouse Explorer for Bluetooth finally worked. Not on ANY Microsoft product I tried but the iBook. And it worked perfectly from the get-go. When my phone recieved an SMS, it popped automagically up on the screen where I could type in a reply, add the phone # to the address book or make it fetch a cortado from the caffeine dealer down the street.

      Now that's good programming.

      Disclaimer: I don't own an Apple, but I really like them. My home OS is RedHat 8. So now you know.

    3. Re:It's expected. by server_wench · · Score: 1

      Between specialization (programmers aren't expected to understand how hardware works, let alone understand each other's code) and proprietary systems that have to have new releases to sell, it gets to be difficult to learn the ways of bugs and develop strategies to deal with them.

      Back in DOS 3.2 and BASIC days, I needed to write code that didn't crash to control an analytical instrument. A crash could require repeating two hours work, plus the machine produced ionizing radiation, so safety was also a factor.

      It took a long time, but between snooping around and testing, I found clearing string space regularly worked. I would like to be able to say that methodical research lead to the answer, but actually I was killing time in a bookstore while on a visit to Chicago and happened to open the right book to the right page. 8^)

      I am grateful for the break, but that is no way to build reliable software!

  26. New features are more important than stability by IvyMike · · Score: 2, Interesting

    People upgrade for new features. That computer/OS/gizmo you have today does a lot more than the one from 10 years ago. That's a lot more code that needs to be written, and thus a lot more opportunity for errors. It's that simple.

    (I'm actually ok with that. I'd rather have a moderately crashy Windows XP box capable of playing GTA:Vice City than the hypothetical alternative: a super-stable Windows95, capable only of playing "Doom 2".)

    1. Re:New features are more important than stability by zerocool^ · · Score: 1

      I'd rather have a moderately crashy Windows XP box ... than the hypothetical alternative: a super-stable Windows95,

      It's been my expierence that XP is more stable than win 95, anyway. And the hardware to run it costs less. I mean, not even accounting for current technology vs. old technology - My windows 95 comptuer (back in 96) was a 100 Mhz pentium w/ 16 MB of ram and a 1 GB hard drive. It cost $1700. My girlfriend just built a computer with an athlon 1700+, 256MB of ram, and a geforce 2MX, and it cost about $400, plus monitor.

      --
      sig?
    2. Re:New features are more important than stability by EvilTwinSkippy · · Score: 1

      What about an uber-specialized applicance like a PS/2 that CAN play Vice City without crashing... well not crashing often. Ok, well at least without destroying anything in the process of crashing and without forcing me to upgrade to YET another version of DirectX. Of course the upgrade to DirectX somehow whomps the drivers for my dirt old ATI all-in-wonder card, and upgrading the driver to that takes out DVD playback under windows media player...

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    3. Re:New features are more important than stability by JustAGuyNamedStu · · Score: 1

      "super-stable Windows95"

      Isn't that an Oxymoron?

      --
      I really have no idea what I am talking about.
    4. Re:New features are more important than stability by DiSKiLLeR · · Score: 1

      Are you smoking something?

      WinXP is FAR more stable then Win95 ever was.

      When does Win2k or WinXP (or any NT based OS) ever crash? If it does, its most likely a hardware issue (bad ram?) or buggy 3rd party driver (video drivers for latest 3d cards and scsi drivers have caused me problems in the past).

      Win95 was the buggiest crashiest piece of dog shit ever. Win98 was no better.

      --
      You can tell how powerful someone is by the magnitude of the crime they can commit and be able to get away with.
    5. Re:New features are more important than stability by IvyMike · · Score: 1

      Are you smoking something?

      WinXP is FAR more stable then Win95 ever was.

      I agree. Unfortunately, you've utterly and completely missed my point. For the same effort (on Microsoft's part) over the last 10 years, you could today have "Super Stable Microsoft OS", which never crashed, but because of the effort required to achieve that stability, the OS would only have the feature set of Win95. Or you could have "Moderately Stable Microsoft OS" which crashes sometimes but has the feature set of WinXP.

      MS chose the second path. The first, untaken path, "Super Stable Win 95" is hypothetical and does not exist, hence the reason I said "hypothetical alternative".

    6. Re:New features are more important than stability by IvyMike · · Score: 1

      It's simply an untaken hypothetical alternative that is striking only because it is so different than the reality that was chosen.

  27. Complexity, my dear Watson by T5 · · Score: 5, Insightful

    It's all about the bits. There are just so many more of them now, and a great deal more pressure in the marketplace to bring ever newer software and hardware to market. Back in the day of the IBM 360 and the VAX, even though we were mesmerized by the capabilities of these machines, they were years and years in the making, debugged much more thoroughly than we can hope for today, and much, much simpler.

    And let's not forget that this was the exclusive realm of the highly trained engineer, not some wannabe type that pervades the current service market. These guys knew these machines inside and out.

    1. Re:Complexity, my dear Watson by JayM1160 · · Score: 1

      Wow, take of the nostalgic rose covered glasses and wake up. I punched cards on and IBM mainframe and let me tell you it wasn't anything like you described. The only highly trained engineer was the IBM service rep. The university I went to attracted lots of geeks to mainfram programming they just didn't have degrees in computer science or E.E.

      I'll grant you we didn't have to IPL the system every day and we did average 99% uptime during prime shift. On graveyard shift when the systems programmer make their changes it was another story but since the system wasn't officially available during those times we didn't have count the downtime in our stats.

      No, there are only 3 differances that I can think of that really make differance

      1) A Support contract - We pay big bucks and when there is real trouble truly amazing things will happen. They almost were going to rent a plane just to fly a part to us once because we were down with a hardware failure and we were approaching the 24 hour limit in our support contract.

      2) Strict control over hardware and to a lesser extent the software on the mainframe. If some issue of hardware or software arose and fault was serious enough IBM could void the support contract unless it was fixed. In fact a bug was was found once in the OS and IBM contacted us and said that you must install this patch to to the OS or you will no longer be under support.

      3) Finally, the complexity and 24/7 nature of computing today has really stressed machines far more than we used to back in the good old days. While we didn't IPL every day we did "roll the regions" every night starting at 4:00 AM just to make sure things would run smoothly the next day. Now we can't do that because we've got a region that needs to be up 24/7 to support the web.

    2. Re:Complexity, my dear Watson by MourningBlade · · Score: 1

      [Systems then] were years and years in the making, debugged much more thoroughly than we can hope for today[...].

      In my opinion, testing in the citadel can only do so much. Automated unit tests are wonderful, and in VERY specific circumstances can cover every aspect of a piece of code.

      But I think it is more important to make your work available to others.

      This idea of "test, test, test, test, test, test, test" reminds me of premature optimization.

      First, I am working off of the assumption that we have limits in time, money, and effort. Not big limits, let's say, but limits. If that is true, which is more important: to debug against trivialities that may never occur, or to ensure basic functionality and fix issues as they occur or are discovered to possibly exist (graded by severity and commonality) and ensure that they do not happen again (if possible).

      Deploying something, even to early adopters, gives you orders of magnitude better information on what is a problem and what is not.

      Nota bene: I am not saying that sloppy programming should be done. Your code should be clean, understandable by others, and possess some beauty. Otherwise the fixing of the bugs will cost too much time.

      I am also not saying that you should label something stable when it is not, just that you make it available to others.

      Anyways, this is something to consider. ESR labeled this "release early, release often." I would like to add to that "release early, release often, and tell what you're releasing" (ie stable, milestone, developer, and you-so-crazy).

    3. Re:Complexity, my dear Watson by Ardias · · Score: 1

      There are still some highly trained engineers who know the hardware and software inside and out. But, they are surely outnumbered by the wannabes that only know some HTML tags and how to throw together a VB dialog by clicking on components. Sadly, I think they will be outnumbered for a long time, because there are too many VB "programmers" for the skilled and experienced software engineers to mentor and bring up to speed.

      I know this great story about some engineers who wrote nuclear bomb simulations for supercomputer clusters at Lawrence-Livermore National Lab. After 12 CPU-months of processing time on a massively parallel cluster, they discovered the data was slightly off from predictions made by mathematical models. You can't just run the software through a debugger and wait 12 CPU-months for the bug to show up. Instead, they made test cases for small chunks of their code which they ran through a simulation of the bug in simulator software. Once they found the bug, they patched it on each part of the cluster while the process was *still* running.

      These engineers are selected and trained to be that skilled, because if they did their jobs wrong, millions of people could *live*. (Silliness aside, they do save the US millions of $ because it would cost a lot to determine if our aging nuclear weapons are usable, and if any component within them needs to be replaced.) Personally, I would not that much responsibility. If I ever had to write a nuclear bomb simulator, I would probably make some real subtle bug that would not show up until after a year of computation.

      Each step of this debugging effort took more skill than VB developers have.

    4. Re:Complexity, my dear Watson by Anonymous Coward · · Score: 0

      I crashed a vax. it's not too hard. Try sending a large postscript file w/o lfcr's.

      777

    5. Re:Complexity, my dear Watson by Anonymous Coward · · Score: 0

      thank you. That saves me from making your point, which no body else seems to have picked up on.

  28. Essence of Software Engineering by Zach+Garner · · Score: 5, Insightful

    Read "No Silver Bullet: Essence and Accident of Software Engineering" by Brooks. A copy can be found here.

    Software is extremely complex. Developed to handle all possible states is an enormous task. That, combined with market forces for commercial software and constraints on developer time and interest for free software, causes buggy, unreliable software.

  29. Not always the softwares fault: by bravehamster · · Score: 2, Insightful
    I've found in my years of repairing pc's that the majority of software problems have their root cause in hardware. A bad stick of memory, corrupt hard drive sectors, overheating components, cosmic radiation causing bit flips-all of these things cause random, bizarre errors. It's pretty easy to tell the difference too. Software errors are repeatable. The exact same situation should produce the exact same error. So all I'm trying to say is that I doubt we will ever reach the point that computers won't crash, because at some point there has to be interaction with the physical world. And no matter how perfect your program is, it's not going to survive a two year old stuffing pennies into the back of the power supply.

    --
    ---- El diablo esta en mis pantalones! Mire, mire!
    1. Re:Not always the softwares fault: by Jeremi · · Score: 4, Insightful
      I've found in my years of repairing pc's that the majority of software problems have their root cause in hardware.


      Wow, your experiences are much different from mine, then. I'd say 95%+ of my computer problems are caused by software bugs.


      Software errors are repeatable. The exact same situation should produce the exact same error.


      For a significant percentage of software errors, that statement is false (at least misleading), because it's nearly impossible to reproduce "the exact same situation". For example, take any multithreaded program with a race condition bug -- the chances of the two threads getting the exact same time-slices on two different executions of the program are approximately zero. The result: a crash that happens only sometimes, at random, even given the exact same starting conditions.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    2. Re:Not always the softwares fault: by pi_rules · · Score: 2
      And no matter how perfect your program is, it's not going to survive a two year old stuffing pennies into the back of the power supply.


      Somebody else already stole my rebuttal about multi-threaded apps not being 100% repeatable, so I'm going to follow up with something a bit more humorous.

      I've already put this out here on Slashdot once before I think but it's a fun story and worth repeating I hope.

      I had a wondeful prof. in college, a wise old sage, who had many a tale about the olden days of programming. While going over finite state machines (FSMs) he enchanted us with a story from his younger years about designing a FSM for an automatic teller machine (ATM, or "magic money machine" for those over 60).

      The group dwelled over the problem set and studied the possible events that could occur from user input at any given time. They had a wonderful diagram that represented 100% of all possible situations at all time. They commenced on coding to the hardware designs and the code was finished. QA? Flawless. The men were masters of the ATM universe. Nobody could kill their software -- nobody! The hardware was solid, the client purchased and deployed. Life was good. It served for a long time and one day they get the report:

      "Your ATM crashed."

      "What?!" say the software engineers. "This is impossible! What could we have possibly NOT thought of? Our FSM is perfect!".

      Well, some drunk-assed bastard stuck a McDonald's FishWich into the deposit slip one night. Apparently they didn't account for that one.

      So, to this day, in honor of Professor Jorgensen, I have my own little personal Jorgensen's rule, which was the summary of his story:

      "You can make it fool proof -- but you can't make it damn fool proof!"
    3. Re:Not always the softwares fault: by intermodal · · Score: 2, Insightful

      in my years of repairing PCs and professional testing of software, I find that the majority of software problems are either a direct result of the QA department having no say in the company, the fact that more often than not, QA is looked down upon (and therefore are all contractors who once they know the product and company networks inside and out are at the end of their contract), and that home users don't maintain (defrag, remove dust from inside the case) their computers or pay attention when fans burn out. Or that they bought shoddy hardware, like that of the Dell single-processor Xeon Precision Workstations or an Emachine.

      --
      In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
    4. Re:Not always the softwares fault: by Kashif+Shaikh · · Score: 1

      The result: a crash that happens only sometimes, at random, even given the exact same starting conditions.

      Yeah, I have the same problem who those f*cking multithreaded programs. You see, my software only crashes everyday of the week except on Thursdays. Why? Go figure.

      And just when you thought your program was running, like on Thursday just before you leave for the weekend...when you come on Monday morning all the testers scream, "`tis not working!!!".

      Ahhh fuck. :)

    5. Re:Not always the softwares fault: by Salo2112 · · Score: 1

      And no matter how perfect your program is, it's not going to survive a two year old stuffing pennies into the back of the power supply.

      neither will the two year old. :-)

    6. Re:Not always the softwares fault: by Anonymous Coward · · Score: 0

      I'm a scuba diver and I find that computer failures are invariably caused by them getting wet

  30. Why do... by elysian1 · · Score: 1

    ... cars still crash? ... planes still crash? ... etc. They're run by computers?

  31. Simple Answer by Anonymous Coward · · Score: 0

    Multi-process OSes, and deadlock. No one has figured out a solution that prevents it, so we just hope it doesn't happen.

  32. Switch to vector strings and not null-terminated by scorp1us · · Score: 1

    The null-termination thing is without bounds checking. A simple
    strlen[strlen(str)]=0;
    is enough to crash a computer. What's more is it takes O(n) time to fins strlen

    Vector based strings strlen is O(1), and you get bounds checking and all that.

    The other reason is because DLL exports don't match up between versions. They match up enough to get the link done, but a small change of a return value semantics ina function is enough to send most programs into a GPF.

    That solution is to do away with libraries, and link to functions only. Rather than have glibc, allow a program to call out to any version of any glibc function in existance.

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
  33. Modern Electronics by Anonymous Coward · · Score: 0

    If my Qualcomm 3035 crashes every few months or so of
    continuious uptime what makes you think even more complex computers and PDA's would be anybetter.

    Entropy is a natural part of exsistance even for elecrtonics. You can try to avoid it, but eventually something will be out of order.

  34. Microsoft by eht · · Score: 5, Insightful

    Microsoft has made an extremely stable OS, it's called Windows 2000, as long as you use MS certified drivers the OS should never crash, individual programs may crash under Windows, but you can hardly blame Microsoft for that. I have had Windows machines with months of uptimes and no problems, went down 8 days ago due to power failure too long for my UPS's to handle, which also took down my FreeBSD machines, uptime is matched for all of them, and will one day again be measured in months.

    Yes I should probably patch some of my Windows machines, but I have my network configured in such a way that for the most part I don't need to worry and you don't have to worry about my network spewing forth slammer or other nasty junk.

    1. Re:Microsoft by VTS · · Score: 5, Interesting

      Some time ago I would have agreed with you, but not anymore, If media player crashes playing some video then the whole system becomes unstable and then even doing something like sending a file to the recyclebin freezes the UI...

      --
      --- No 16-bit support in Vista? Half of our modules still use it! ---
    2. Re:Microsoft by Foolhardy · · Score: 3, Insightful
      I have found that the drivers you use in Windows are the biggest factor in stability. Usually the drivers that come on the CD are the most stable, but they are not the best option for some devices. Microsoft supplied video drivers usually have almost no features and sometimes are quite incompatible, espically with games. Some companies produce great drivers while others seem to be really cheapo.

      Sometimes, different compainies will make completely different drivers for the same device. For example, the VIA AC'97 audio controller: VIA has their own drivers, and so does Realtek. I think that the Realtek are vastly superior to the VIA drivers, in terms of functionality and stability.

      I know its easy to blame Microsoft for every crash on a Windows system, but in my opinion bad drivers seem to be the culprit most of the time.

    3. Re:Microsoft by Anonymous Coward · · Score: 0

      I almost posted the same thing but then decided it wasnt worth my time for the same reason the Microsoft comment was in the original post to begin with....and is in every other os related slashdot post for that matter.

    4. Re:Microsoft by CognitivelyDistorted · · Score: 4, Interesting

      Yes, NT5+ is very stable. MS is working on the driver problem. SLAM is a tool for verifying drivers. Given a requirement, e.g., after acquiring a kernel lock the driver must release it exactly once on all control paths, and some driver source code, SLAM can find all the ways the driver can fail the requirement. They have specifications for various driver types and are using them to test some drivers. It's a research project by the Software Development Tools group in MSR, but they're working on getting it stable and powerful enough to verify more drivers. If they can get it to work well enough, they'll supply it to hardware vendors.

    5. Re:Microsoft by Anonymous Coward · · Score: 0

      Months is nothing in uptime compared to a mainframe system, some of which have uptimes measured in years (even with hardware upgrades -- including CPU -- and operating system upgrades) Windows was not built from the ground up for stability/reliability before features, and while it is getting better I don't see the same attention to reliability. Uptime is not just a measure of how long a computer stays running, but how a computer stays running under any situation. Replace some drivers -- oops, reboot--, change your motherboard -- reinstall Windows 2000! -- , install an update -- reboot, install an APPLICATION -- reboot! I sure many servers could have a couple of years of uptime using Microsoft's stuff if none of this is required. Putting video drivers into the kernel and integrating Internet Explorer into the OS are political moves at the cost of reliability.

    6. Re:Microsoft by Anonymous Coward · · Score: 0

      Oh. I forgot to note that even not using a packaging system like RPM to avoid dependency and conflicts is another Microsoft political move. For several years a tested and reliable installer has been available that can solve one of the two biggest sources to Windows instability: modified system files.

    7. Re:Microsoft by Anonymous Coward · · Score: 0

      Then kill the wmplayer process, genius. Problem solved.

    8. Re:Microsoft by TheNetAvenger · · Score: 1

      Microsoft has made an extremely stable OS, it's called Windows 2000, as long as you use MS certified drivers the OS should never crash

      I agree with this, but in actual ways of handling stability, WindowsXP does a better job, and is a much better OS for stability than Windows 2000.

      For example the way WindowsXP handles several things, DLLs in memory, OS protection (above what Win2k does), and the ability to actively catch bad software calls and correct them without failing the application that made the bad call.

      There are numerous enhancements in WindowsXP that give it an edge on stability of Win2K.

      Drivers are also an area where the architecture of WindowsXP is slightly different from Win2k, and the ability of a poor driver causing system instability is reduced significantly as well. This goes back to the OSes ability to catch bad calls in real-time that is not as evolved in Win2k.

      Everyone that is interested in what some of the mechanisms in WindowsXP that enhance stability (and the new Windows 2003 server) should check out Microsoft's site.

      In fact, even if you hate MS, you should check them out. It might give some Open Source developers some good ideas in improving on their favorite OS. You might also find some ideas on moving to a model (like in XP) that has an OS software protection level beyond just isolating memory and processes from each other as has been the old staple in creating a stable OS.

    9. Re:Microsoft by egoots · · Score: 1

      Let's get real here... SLAM ain't the solution in the near term. MS has finally realized that it is way too difficult to write rock solid drivers for all but the most expert of driver writers.

      The areas they seem to be working on to address this issue include the following:

      • the DDK - which up till recently has been horrible to get info from - it still needs work
      • Driver Verifier - this verification tool was created during Win2000 days and keeps improving enabling driver writers to have another tool to test for correctness of key code
      • Debuggers- WinDbg is finally as good (or better) than SoftICE
      • Driver Model - MS has finally realized it is way to complicated to build even a simple driver. To address this they are introducing the "Driver Framework for Windows" (DFW) which is an "object-oriented" programming model for writing drivers (using C not C++). They just released a beta of this at the recent WinHEC conference. For an excellent introduction, see this article by Walter Oney.
    10. Re:Microsoft by Anonymous Coward · · Score: 0

      How? Telepathy? Force of will? Shouting at it?

      Not everybody keeps more than one computer at their home you know. Freezing the user interface is just as serious as a kernel panic if there's no other way available to get into the machine.

    11. Re:Microsoft by gol64738 · · Score: 1

      i run linux when developing, but i also run windowsXP for games, videos, etc.
      first of all, i work very quickly, moving and resizing windows, jumping from app to app, etc. i notice that in linux, i can move as fast as i want without a problem. in windows, if i move too fast, i usually have some sort of problem: an app crashing, XP starts getting unstable or something similar.

      something else i notice with XP, overloading it with tasks can make it unstable, but sometimes i'm doing nothing but clicking on the start button or opening the trash bin, and freeze! not even ctrl/alt/delete saves me from this.

      so i guess what i'm saying, is that XP crashes when doing too much or too little? wow, and i was almost brainwashed into thinking XP was more stable than its predecessors! silly me!

    12. Re:Microsoft by leandrod · · Score: 1
      an extremely stable OS, it's called Windows 2000, as long as you use MS certified drivers the OS should never crash

      You mean as long as you only use MS certified drivers: any driver can compromise the stability of the whole system in monolithic designs like MS WNT or GNU/Linux.

      This is a problem MS can't work around; it is inherent to monolithic kernels. And they simply are too closed to integrate driver development like Linux and the BSDs do. The long-term solution perhaps is something like GNU/Hurd with its multiple-server microkernel and translators, but meanwhile the Linux kernel does a pretty reasonable job at being open enough to get the best of the limitted development and debugging resources available. While MS may have deeper pockets, the aggregate of resources available to free software developers, and their efficiency at using them, enable a far better result.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    13. Re:Microsoft by Anonymous Coward · · Score: 0

      I agree. We have Windows NT4 and 2000 running on 1.2TB RAID Audio Servers recording and distributing audio around the BBC in London, they've been up for over almost a year with no crashes or failures of anykind - even from our software!

    14. Re:Microsoft by mr3038 · · Score: 1
      Some time ago I would have agreed with you, but not anymore, If media player crashes playing some video then the whole system becomes unstable and then even doing something like sending a file to the recyclebin freezes the UI

      As I wrote in another thread, there's a difference between the whole system and single pieces of software. That is, it doesn't matter if the computer doesn't crash if the piece of software that the user is using crashes. If you're running your desktop on X and X crashes it doesn't make you happy that the system is running as you just lost all the apps you had open. If Windows Explorer is practically a single threaded process that blocks until a file is fully moved to recycle bin or a cd-rom drive has successfully read the TOC after inserting the disk then the whole UI seems halted or crashed to the user[1]. Crashing some game running on X so that keyboard doesn't work is exact equivalent to system crash to casual user -- not all of us know, or have enabled, Alt+SysRq+R hack.

      My kernel (be it linux or w2k) hasn't crashed for a long time but my apps are crashing every now and then. Crashing a single app isn't that bad as crashing the whole system but it's still far from perfect. The problem is, it's quite expensive to make all software as reliable as our current OS kernels are.

      [1] At least, with windows 2000, this keeps happening all the time.

      --
      _________________________
      Spelling and grammar mistakes left as an exercise for the reader.
    15. Re:Microsoft by n0mad6 · · Score: 1

      I work at a DOE national lab. Here, the hand of uncle Sam prohibits the use of any M$ OS except for Windows 2000 (all flavors XP are excluded as well). Even win2k is only to be used for non-research purposes (i.e., administrative staff). Shows how reliable windows is considered to be around here...

    16. Re:Microsoft by Anonymous Coward · · Score: 0

      Windows media player relies on external 3rd party drivers to play many types of files. Why do you think it's possible for someone to make their own non-microsoft codec and have the file play in WMP? These drivers can crash WMP, and ANY video player.

    17. Re:Microsoft by Abcd1234 · · Score: 1

      Okay, this may be brutally obvious, but the drivers shouldn't be able freeze the UI! Plain and simple, it just should not be possible, especially on a system where the GUI is the only way to manipulate the system. The fact that a codec (a CODEC!) could possibly freeze the system indicates to me that Microsoft didn't go to enough trouble to protect the OS from user-space apps.

    18. Re:Microsoft by Anonymous Coward · · Score: 0

      Quite often when the UI freezes, you need to kill explorer.exe. Surprisingly, even though everything seems frozen, Ctrl-Shift-Esc will still often bring up a working task manager, and you can kill things and start again.

      I find I have to do this at least once a month (with XP or 2000).

  35. Economics? by iso · · Score: 5, Insightful

    While it's not the whole story, something definitely has to be said about the fact that while people are willing to pay for features, they're rarely willing to pay more for stability. Quite frankly there's little economic incentive to make software that doesn't crash.

    If your market will put up with the ocassional crash, and never expects software to be bulletproof, why bother putting the effort into stability? Until people start putting their money into the more stable platforms, that's not going to change.

    1. Re:Economics? by MourningBlade · · Score: 1

      they're rarely willing to pay more for stability.

      Further, they're reticent to even report the problems they're having! Pure foolishness.

      Of course, it is partly the fault of developers, as we often do not provide an accessible method of reporting errors (in a useful format, or often at all!). I think Talkback in Mozilla is a good idea, and I've heard KDE is getting something similar. I don't know if said tools have been useful to the developers in more than a statistical sense, though (how many people get crashes, so on and so forth), especially since many programs have the debugging info stripped.

    2. Re:Economics? by MourningBlade · · Score: 1

      Oh, and as a corollary: I think that one of the most useful roles of a good IT person in a company is the role of liason between the user and the developers. You can train a liason to give and get good bug data, and get a good relationship going with them. Much harder to do with all of the individual users.

      Also, some liasons are willing and able to write code. A lot of fink and Debian is done this way, I'm sure.

    3. Re:Economics? by tabby · · Score: 1

      from a marketing (and maybe legal) pov releasing a new version with no new features and only stability improvements admits to the world that you sold them crap the first time around.

      --
      I've experiments to run, there is research to be done on the people who are still alive.
  36. Economics by VTS · · Score: 1

    Its all about money, why spend twice as much (or more) money to develop your product when your competitor wont and it will only increase your sales 5% ?

    And there is no point bashing C again, yes it may be less forgiving of errors but any tool is only as good as who uses it. Paying more attention to the architecture and design of a program will eliminate 100 times as many bugs as changing the language.

    --
    --- No 16-bit support in Vista? Half of our modules still use it! ---
  37. The ultimate solution by dsanfte · · Score: 4, Interesting

    The ultimate solution to the problem is to let computers write the software themselves. Give them a goal, set up evolutionary and genetic algorithms, and let them go at it on a supercomputer cluster for a few months.

    Of course, you'd need to make sure the algorithms that humans wrote aren't flawed themselves, but once you got that pinned down, you would be more or less home-free.

    Even if you didn't take this drastic a step, another solution would be computer-aided software burn-in. Let the computer test the software for bugs. A super-QA Analysis if you will. Log complete program traces for every trial run, and let the machine put the software through every input/output possiblity.

    --
    occultae nullus est respectus musicae - originally a Greek proverb
    1. Re:The ultimate solution by Christopher+Thomas · · Score: 2, Interesting

      The ultimate solution to the problem is to let computers write the software themselves. Give them a goal, set up evolutionary and genetic algorithms, and let them go at it on a supercomputer cluster for a few months.

      Unfortunately, this only works if you can distinguish between buggy and non-buggy code produced by the algorithm. You can do tests, but no test suite will be exhaustive (otherwise we'd just use it on human-developed code to find the bugs).

      Perfect software can only be produced if a formal proof of correctness is possible. Even then, you're limited by the assumptions the proof makes.

    2. Re:The ultimate solution by Jeremi · · Score: 5, Interesting
      The ultimate solution to the problem is to let computers write the software themselves. Give them a goal, set up evolutionary and genetic algorithms, and let them go at it on a supercomputer cluster for a few months.


      That only works if you can write a fiteness algorithm that can tell whether the program did the correct thing or not -- otherwise, you have no way to decide what to "breed" and what to throw away. And for many types of program, that fitness algorithm would be more difficult to write than the program you are trying to auto-generate...


      Of course, you'd need to make sure the algorithms that humans wrote aren't flawed themselves, but once you got that pinned down, you would be more or less home-free.


      All you've done is replace a hard problem ("write a program that does X") with a harder problem ("write a program that teaches a computer to write a program that does X"). No dice.


      Even if you didn't take this drastic a step, another solution would be computer-aided software burn-in. Let the computer test the software for bugs. A super-QA Analysis if you will. Log complete program traces for every trial run, and let the machine put the software through every input/output possiblity.


      For most modern programs, there isn't nearly enough time left before the heat-death of the universe to do this. Hell, for programs other than simple batch-processors, the number of possible input and outputs is infinite (since the program can do an arbitrary number of actions before the user quits it)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    3. Re:The ultimate solution by EvilTwinSkippy · · Score: 1
      The only computer systems that can create novel solutions to problems are genetic algorithems and nueral networks. Both operate by sucking slightly less over successive generations of random trials.

      Assuming you did get a computer of human intelligence, what would make it better than a human human? It would still be processing the same incomplete information. It would still have the same learning process. The only difference would be the medium through which the thoughts were processed.

      I have no doubt that at some point we are going to develop sentient machines. I think we are going to find they are monsterously expensive to produce, take 20 years to train properly, and hardly an improvement over a human mind. Indeed, at least a human can draw on life experiences. Plus we are so cheap to make.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    4. Re:The ultimate solution by Anonymous Coward · · Score: 0

      It is a good thing that you don't do this for a living. Because then you'd have to get a clue.

      Let the computers write the software? Umm.. Who writes the spec? People do. Oh. Gosh. Big fluffy clouds..

      The ultimate solution? Getting that clue would be a start..

    5. Re:The ultimate solution by broody · · Score: 1

      The ultimate solution to the problem is to let computers write the software themselves.

      Okay dsanfte, how many times have you watched Matrix Reloaded in the last week?

      --
      ~~ What's stopping you?
    6. Re:The ultimate solution by moosesocks · · Score: 1

      Gosh darn it. Computers don't.........

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    7. Re:The ultimate solution by Lord+Angelbane · · Score: 1

      Apparently someone has never had a run in with Turing completeness.

      Basically, to paraphrase, there are some bugs that a computer CANNOT diagnose. Period.

      Example: write me a piece of code that can analyze and diagnose another piece of code for an infinite loop, and I can guaran-damn-tee you that I can write two distinct snippets of code, one which will pass your code, and one that will not, and neither of them will be inifinite loops.

      Go take a basic course in Computer Programming, or better yet, build a perpetual motion machine.

    8. Re:The ultimate solution by Vaughn+Anderson · · Score: 1
      Even if you didn't take this drastic a step, another solution would be computer-aided software burn-in. Let the computer test the software for bugs. A super-QA Analysis if you will. Log complete program traces for every trial run, and let the machine put the software through every input/output possiblity.

      Isn't this the basis for higher level scripting langauges? It seems that much of more difficult things to program (memory management, pointers, etc...) are all handled with a high level authoring tool/scripting language (PHP, Macromedia Director, etc...) vs having to deal with every nuance of the system (C, assembly, etc...)

      I am by know means an expert but have found I can make very complex and robust software very quickly with Director, that would take an absolute expert in C ten times as long to make, simply because Director has a tremendous amount of libraries to use with no system resource manangement needed unless I choose too.

      On top of that, I can always extend the capabilities with C++ or something very easily or with an ActiveX control. (activeX in Director is buggy somewhat though)

      Since computers are getting faster, and proof of this is fullfledge 3d in Director with hardware opengl support, things that were not possible in high level scripting based authoring tools is now getting that way.

      Then the level of stability can be controlled more at the level of the Director player instead of at the project level...

      Ultimately it seems that more and more work based on user interaction will be done with higher level systems, and lower level coding will go to performance based tasks (video/photo editing, 3d games, etc...) but the USE of these tools may be controled with higher level programming like Director, where new features and ways to access the high performance tasks can be added and modified frequently without concern of overall application instability or performance, as there will be a difinitive seperation between the tasks of rendering/calculations and user interface/features.

    9. Re:The ultimate solution by Kashif+Shaikh · · Score: 1

      If you run a multi-threaded/multi-process app, then each input must be associated with time.

      So suddenly your inputs, (a,b,c,d) become (a @t-a, b @t-b, c@t-c, d@t-d). Of course no one can test for all values of t-n, that would be infeasible. So you gotta test causal effects.

    10. Re:The ultimate solution by HeyLaughingBoy · · Score: 1

      The solution probably lies along the way of admitting that computers, like all other physical systems, will fail. Now decide what the failure should look like. Sudden catastrophic failure without exceptional input is rare in the real world. e.g., my car is unlikely to explode as I'm driving to work; it's more likely that a small puff of steam out the exhaust will signal a slowly failing head gasket and give me time to get it fixed if I notice the problem. Likewise, computers should fail slowly. Got a divide-by-zero exception? Return to an earlier saved, safe state with some data loss since then. Or perhaps turn that divide by zero into a divide by a really small number and signal an error.
      These changes have to happen not just in software, but will require new fault-tolerant hardware architectures to implement them.

      Other mechanisms that come to mind are parallel execution paths where if one path fails, it alerts the other one not to take that particular branch, or to look ahead for a "safe" path.

      What I'm getting at is that in order to write failure-proof software, we'll need entire new methodologies of development, and perhaps new hardware. Right now our recovery mechanisms are limited to such things as watchdog timers or rollback/redo logs. Primitive, but it's a start.

    11. Re:The ultimate solution by KhromeGnome · · Score: 1

      Did you even see The Matrix? ;D

    12. Re:The ultimate solution by glitch23 · · Score: 1

      Of course, you'd need to make sure the algorithms that humans wrote aren't flawed themselves, but once you got that pinned down, you would be more or less home-free.

      Humans are imperfect by creation. The code will never be perfect because humans create it but we can always get it a bit closer each try we get.

      --
      this nation, under God, shall have a new birth of freedom. -- Lincoln, Gettysburg Address
    13. Re:The ultimate solution by burns210 · · Score: 1

      let computers run programs themselves?

      maybe they could make a neat little 3d program and have the programs be represented in the 3d space...

      maybe have the 3d program mimick Earth at around the turn of the century...

      maybe call it The Matrix... Dun, Dun, DUN!

    14. Re:The ultimate solution by edp · · Score: 1
      "... let the machine put the software through every input/output possiblity."

      Great, I've got an atan2 routine with two 64-bit floating-point inputs and one output. Would you mind running it through all 2^128 inputs and letting me know when you're done?

      If you've got a trillion computers each doing a trillion atan2 checks a second, it shouldn't take you much longer than ten billion millenia to finish.

    15. Re:The ultimate solution by NamShubCMX · · Score: 1
      or better yet, build a perpetual motion machine.

      I did! But I lost it...

      Yea, lame. I know.

      --
      We've always been at war with Eurasia.
    16. Re:The ultimate solution by Anonymous Coward · · Score: 0

      The ultimate solution to the problem is to let computers write the software themselves. Give them a goal, set up evolutionary and genetic algorithms, and let them go at it on a supercomputer cluster for a few months.

      This will NOT work. Some bugs come from flaws in the "goal", with intelligent programmers, these can be caught, or things put in to catch somewhat unexpected conditions. If you let the code evolve, you have no idea what will happen.

      Remember, even life sometimes crashes. (ie, background extinction)

    17. Re:The ultimate solution by TomorrowPlusX · · Score: 1

      Easier said than done.

      I'm by no means a professional genetic algorithms programmer, but I was doing some work a couple years ago to see if a software modeled robot could be "taught" to walk, via genetic algorithms. I know, everybody and their uncle has done this now, but bear with me.

      I wrote some dynamics simulation and a breeding program by which N algorithms were randomly generated, tested for fitness by allowing them to run and checking how far the robot went, how stable it was, and how much it diverge from a straight line and so on and so on. as per genetic algorithm programming, the best 2 were selected, "bred" into N new algorithms with some random "evolution" thrown in.

      Long story short, it took a long time just to get the fitness checker working and the dynamics were hard. The program tended to crash after breeing about 30 generations, every time. I never solved that one, but fortunately, it saved out the breeding so it was just a matter of restarting the program. Anyway, after months of work, it finally worked and bred a very effective walk.

      What kind of walk? A *silly* walk. It hopped, for f*ck's sake. The breeding favored a hop, not a walk. So I ran it again... and it hopped again, albeit differently. And again, and so on. And frankly, I was never able to tweak the fitness evaluator to not favor hopping.

      That's when I decided to drop genetic algorithms and go for a cellular automata / neural net like approach, which is working but I'm still evaluating. At least I have control over it.

      The moral of the story: Genetic algorithms work, but it's really, *really* hard to grow a program which does exactly what you want. It's like those stories where the protagonist makes a deal with the devil and gets *exactly* what he asked for, and it's no good at all.

      --

      lorem ipsum, dolor sit amet
    18. Re:The ultimate solution by Anonymous Coward · · Score: 0

      Ever heard of the halting problem?

  38. Dur, i r retard by Anonymous Coward · · Score: 0

    nt, dur

  39. Bugs are fun! by giraphe · · Score: 2, Funny

    But eliminating bugs would take all the fun out of programming!

  40. Get a Calculator by Anonymous Coward · · Score: 0

    My HP48gx never crashes. They should make computers out of 48gx material.
    The same way they should make an entire airplane out of black box material.
    I'm drunk.

    1. Re:Get a Calculator by Anonymous Coward · · Score: 0

      Mine crashed once. That was when I ran some strange game which was labeled as "beta".

  41. QBasic is the future by Anonymous Coward · · Score: 0

    You can't access memory directly when in the QBasic environment. That explains why QBasic never crashed. Hell, I say Linux should be rewritten in QBasic, scrap all that crusty ANSI compliant high-performance 32bit code and cross-platform scalable capability.

    Shit doesn't happen in QBasic, that's why it's stable. Ignore that QBasic is written in C, use QBasic. And ignore Perl, it's a verry laughable impersonation of QBasic except with more scalability.

    1. Re:QBasic is the future by MonMotha · · Score: 1

      Two words:

      PEEK
      POKE

      ASCII stupid question, get a stupid ANSI I always say.

    2. Re:QBasic is the future by Anonymous Coward · · Score: 0

      Oh

      Oh

      Oh yes

      OH oh

      OH oh

      OH oh YES yes

      Poke Me POKE ME Oh Oh Oh OHhhhhhh!

    3. Re:QBasic is the future by Anonymous Coward · · Score: 0

      I'll peek in on that...

    4. Re:QBasic is the future by Anonymous Coward · · Score: 0

      ohh my god, you guys suck. Nerds!!!!!!!!!!!!!!!!!!!!!!!!

  42. 99% of all statistics come out of my ass by SweetAndSourJesus · · Score: 2, Funny

    14% of all people know that.

    --

    --
    the strongest word is still the word "free"
  43. Extra jabs at MS? by Monkeyman334 · · Score: 1

    30 years of computing and we can't get rid of flamebait? You'd think we would have settled this all by now.

    1. Re:Extra jabs at MS? by Anonymous Coward · · Score: 0

      What can I say, there's just a lot of flamers on Slashdot. And I mean that in the sausage chasing way.

  44. Well... by syzme · · Score: 1

    I'm going to have have to take the nutty philosophy card here.

    All language is inherantly flawed in trying to express abstract concepts, even in a fairly limited set of concepts, as is true within a given programming language. This inherent flaw just becomes more obvious to you and me when we objectively see a language implemented, as with computers.

    Fortunately for us, human brains are to the level where we are --for the most part-- able to filter out flaws. Computers can't do this, thus they crash.

    1. Re:Well... by Anonymous Coward · · Score: 0

      Sounds like a variation of Godel's Incompleteness Theorem.

    2. Re:Well... by 1seconddelay · · Score: 1

      thats right, but more system process running also equels more code and more chances for real conflicts. Its really all an issue of using a computers finite (yes finite) resources efficiently and minimizing conflicts. Although linix used to have bad race issues they are now cleaned up.

    3. Re:Well... by Anonymous Coward · · Score: 0

      Please elaborate.

    4. Re:Well... by Anonymous Coward · · Score: 0
      Fuck you.

      Did you get that abstract concept?

    5. Re:Well... by Anonymous Coward · · Score: 0

      ... And if you add to this Goedels Theorem

    6. Re:Well... by syzme · · Score: 1

      Fuck you. Proves my point. Listen to George Carlin's talk on the word 'fuck' and hear its many definitions/uses.

    7. Re:Well... by syzme · · Score: 1

      Sounds like a variation of Godel's Incompleteness Theorem.

      I'm more well versed in philosophy, so I was thinking more in line with H. L. A. Hart and the No Dogs in the Park example.

  45. actually both by Anonymous Coward · · Score: 1, Insightful

    First complexity is an issue. Today's systems are multiple orders of magnitude more complex than those of yesteryear. This by it's very nature causes problems. Also the complexity of today's programs means that large teams are required to get the work done. Every additional team member introduces a new variable into the equation bringing with him (or her) his own set of propensities for certain types of bugs until you have a whole universe of different bug types appearing in your product.

    Second the capitalist market rewards the "just good enough" software. In a pure economic sense stability is not near as important as new features, ease of use, time-to-market, etc. This may horrify engineers and software architects, Lord knows it horrifies me but it's the practical truth of the matter that ROI is largest on systems that are fast to market as long as crashes are completely catastrophic. Also we've solved the problem of crashes in more cost effective ways at the enterprise level. Rather than spending tons of money fixing all the small bugs we advocate backups. As a "backup" they make sense but all to often we use them to cover problems that could/should? be fixed in code. Again the economics say it's cheaper to buy hardware storage than to pay a skilled coder/architect. I don't know if it's "right" or not but at a very practical real-world level economics have to outweight perfect design/production. At least I hope the companies I hold stock in see it that way.

    There are many reasons that software sucks but you've nailed 2 of the biggest...complexity and economics. Let's hope the economics one holds...I don't want my rates coming down like the price of RAM any time soon ;-).

    1. Re:actually both by Anonymous Coward · · Score: 0

      AC wrote:

      "First complexity is an issue. Today's systems are multiple orders of magnitude more complex than those of yesteryear. This by it's very nature causes problems. Also the complexity of today's programs means that large teams are required to get the work done. Every additional team member introduces a new variable into the equation bringing with him (or her) his own set of propensities for certain types of bugs until you have a whole universe of different bug types appearing in your product."

      Hopefully there will only be a galaxy of bug types in any one product. A universe of them would, IMHO, be too much to handle. :-)

      Techniques for programming reliable systems from specifications have been known for a long time. It seems that tool support is catching up. (I've studied formal methods in software engineering at university.) SRI has some tools that sound interesting, though I haven't downloaded them.

      Regards.

    2. Re:actually both by Anonymous Coward · · Score: 0

      I studied them as well and have put them to practice in the real world. Unfortunately you'll find that the real world has non functional requirements put on projects that have nothing to do with tools or process or methodology and that cause problems with code. Politics (i.e. we must use X package to build this when it's not appropriate, or Joe must be invovled in the design when Joe doesn't know the business or technology, or you have 6 weeks to do this..I know you estimated 6 months just work harder).

      I agree that there are ways to mitigate bugs and that they are not a necessity of life (well at least not at their current level) but if the article was asking why was software buggy I stand by my post.

      Oh and by the way many of those Methodologies and tools you studied at University simply don't work in the real world. The RUP is a beatiful thing on paper but you have filet it down to about a fifth of it's size before it becomes manageable for a normal sized software team. XP is just crap. One or two good ideas lost in the hype of a new process. And yes I have worked under it so I'm not just lashing out at a new idea. It created one of the worst failures I've ever seen due I believe to the team programming concepts. Constant itegration and testing was a good idea and worked well but old fashion code reviews woudl have worked much better and not killed our schedule and budget the way team programming did. BTW, it's a failure if you come in over budget and time just like it's a failure if the software doesn't work. There are problems with others but I would encourage any development group to first develop their own methodology appropriate to their charge. Don't call in "experts" and don't take it straight out of a book. Design it to fit your needs.

      Unfortunately the real world simply isn't as pure as school or else my blood pressure would be much lower.

      Just so you know my biases I'm a Software Architect who still does coding on projects when I get the time. I have a Computer Science Bachelor's degree and work for a Fortune 100 company. And given my crappy spelling and grammar I'm obviously American ;-P.

      BTW, I agree, a galaxy is more than enough ;-)

  46. Re:because someone was very curious and decided to by Anonymous Coward · · Score: 0

    Shut the fuck up, slashbot.

  47. The bar isn't set very high. by joshtimmons · · Score: 2, Insightful

    Sure, hardware is complex and today's software is huge, multi-featured, multithreaded, and event-driven and all of these factors make writing good software hard, but I think that the reason we don't see higher quality OS's is simply that the bar isn't set very high by the market leader. We tolerate applications that freeze, computers that need to be rebooted, or crash, etc. That low bar sets consumer expectations and the result is that companies (and programmers) only work to a certain level of reliability - then they work more on more features instead of more work on stability.

  48. For those who are willing to pay... by PseudononymousCoward · · Score: 5, Insightful

    The number of bugs is smaller. Think of the systems used by the telcos, or NASA. Are they perfect? No, but they are much, much more stable than Win32, or Mac, or Linux. The reason is simple, the owners demand them to be.

    There are costs associated with fixing bugs and reducing crashes. The more stable an operating system is to be, the more time and money that must be devoted to its design and implementation. PC users are not willing to pay this amount for stability, either in explicit cost, or in hardware restrictions or in trade-offs for other features.

    As Linux evolves over time, its stability will always improve, but it may still never reach the stability of, say, VMS. Why? Because even with the open source model of development, there are still tradeoffs to be made, tradeoffs between new features and stability, mostly. And successive bugs are harder and harder to fix, requiring greater and greater amounts of time. At some point, the community/individual decides that they would rather spend their time going after some lower-hanging fruit.

    Just my $0.02

    Actually, IAAE.

    1. Re:For those who are willing to pay... by dghcasp · · Score: 4, Interesting
      Think of the systems used by the telcos, or NASA. Are they perfect? No, but they are much, much more stable than Win32, or Mac, or Linux. The reason is simple, the owners demand them to be.

      This reminds me of a story I read in the internal magazine of a telecomunications equipment supplier that I used to work for. It was about an international toll switch somewhere in the U.K. that had been up for 17 years (or something extreme like that.) Furthermore, this included having all of its hardware upgraded and replaced. Twice.

      Just stop and think about that for a while in PC terms... "I replaced my motherboard with the power on without rebooting my system, while it was serving 10,000 web pages a second."

      Granted, this is a higher level of hardware with full redundancy, but it still boggles my mind.

    2. Re:For those who are willing to pay... by Anonymous Coward · · Score: 0

      Think of the systems used by the telcos, or NASA. Are they perfect? No, but they are much, much more stable than Win32, or Mac, or Linux. The reason is simple, the owners demand them to be.

      Uh, and those systems tend to be much, much simplier than say, a complete Windows or Linux system.

    3. Re:For those who are willing to pay... by Sentry21 · · Score: 1

      A former IBM employee I once knew told me a story once that sort of made me think. It's not an interesting story, but it made me think about this same issue.

      Where he worked in IBM, he was a sysadmin. His team worked on a pair of IBM's largest systems, with multi-terabyte fibre-channel RAID arrays, as many processors and as much ram as they could handle, and with IBM, that's a lot of power. The systems were almost always 'idle' in a relative term, except when the processor design guys decided to test their new designs. They'd dump the data to the server, start their tests, and the server would clog up, choke, and die. The second server would then take over from the first, get the full brunt of what the first died from, and then die as well. It would then take hours to start back up again.

      I asked him why it took so long? fsck? Was there no journalling FS back then? He said no, there was a journalling FS, though it took forever on such large and busy disks, but the reason they took so long to boot up was that they weren't designed to.

      When you buy a PC, it boots up fast, does whatever, then dies, and reboots fast. When you pay multi-millions for one of the big toys, you get a system that was engineered to stay up for good.

      Ever wonder why IBM's Power4 chips ran at only a few hundred megahertz at a time when pentium chips were getting up into the hundreds? Why they stayed in the same range when we hit a gigahertz? three gigahertz? Because the chips are designed to be stable. It's not just the software, people, it's the hardware too. IBM isn't pushing their clock rates up because that would destabilize the chips. They're not moving to a smaller process because that would destabilize the chips. Speed does not matter. If it takes a million dollar system a hundred days to balance a bank's client records at the end of the month, then they'll buy a hundred of them; however, if it takes a $40,000 system 10 minutes but there might be a glitch (*cough*intel*cough*), or the system might crash halfway through and lose data, then a million dollars it is.

      'Why do computers still crash?' It's an interesting question, when there are systems out there with 20 or 30 *year* uptimes. *Computers* don't crash. $320 Wal-mart PCs crash. $1600 Dell PowerEdge servers crash. Big iron doesn't crash.

      Computers that crash crash because it wasn't worth the developers' time to make sure every molecule of a processor or every letter of code was justified and correct. Computers that crash crash because they can. Computers that can't possibly ever crash in a million years might crash, but when it does, it's an event, make no mistake.

      --Dan

    4. Re:For those who are willing to pay... by Anonymous Coward · · Score: 0

      Given the number of processors on the market that run in the gigahertz range and the inherently perfectionist nature of the fab industry, it is very unlikely that stability is the reason for slower clocks. They probably don't feel like shortening their pipeline stages because they're too lazy/poor.

    5. Re:For those who are willing to pay... by Johnno74 · · Score: 1

      If it takes a million dollar system a hundred days to balance a bank's client records at the end of the month, then they'll buy a hundred of them; however, if it takes a $40,000 system 10 minutes but there might be a glitch (*cough*intel*cough*), or the system might crash halfway through and lose data, then a million dollars it is.

      Dude, I don't think anyone will pay much for a system that takes a hundred days to balance records each month ;)

    6. Re:For those who are willing to pay... by Anonymous Coward · · Score: 0

      I remember reading a story a year or two ago, but I can't recall now where I read it. In part, it included an interview with one of the guys at Lockheed who worked on the space shuttle's launch control software.

      At one point in the interview, he said that the team, which only consisted of about 18 people at the time, never worked nights or weekends. Ever. Because, he said, if I stay up late working on something and I let a bug slip in because I'm tired, somebody I go to meetings with every week is going to die.

      It is possible to make computer software that is so close to perfect that it gives the appearance of never failing. People (myself included, of course) rarely do it because it's simply more trouble than it's worth to us. But sometimes it becomes a question of doing it right or doing it wrong and killing a bunch of people. That kinda changes the situation.

    7. Re:For those who are willing to pay... by spamtastic · · Score: 1

      Most left in bugs are not actually that hard to solve. A lot come down to typographical syntaxically correct mistakes.

      Granted at the end of most projects the bugs that remain are hard to find but not always hard to solve, consider the following

      str2 = (char *)malloc(strlen(str1 + 1)); and
      str2 = (char *)malloc(strlen(str1)+ 1));

      Ignoring the actual arguement about the functions used the first example will work occasionally, and its hard to spot by eye.

      The difference between safety critical apps and business attitudes to that sort of fault is understandably quite different. If in Business the project enters a period of diminishing returns i.e. 'it doesn't matter too much' it will (correctly imo) be left in.
      Safety critical may demand that it has to be removed (anybody for a scambled HUD in a fighter?) at this point diminishing returns don't feature. Just depends on weather its on a critical path and weather its a real threat

    8. Re:For those who are willing to pay... by julesh · · Score: 1

      Just stop and think about that for a while in PC terms... "I replaced my motherboard with the power on without rebooting my system, while it was serving 10,000 web pages a second."

      There are PC compatible systems you can do that with. I understand IBM's Netfinity is in that category.

    9. Re:For those who are willing to pay... by JohnFluxx · · Score: 1

      that's why he said "then they'll buy a hundred of them"

      HAH! Feel foolish now don't you!

  49. Re:My experience with crashing servers by Anonymous Coward · · Score: 0

    "As an expert in the field of IT consulting, I think I can shed a little light on the current climate of the open source community" ... "I recommended to the company that we use the newest version of Linux, version 9.0."

    I juct checked kernel.org and the lastest kernel version is 2.4.20. Where the hell did you find Linux version 9.0? How can I get a copy? Loser.

  50. Uhhh.... by swagr · · Score: 2, Insightful

    I'm lazy so I haven't bothere to read what others have said. At the risk of repeating what others may have said:

    Isn't this just a matter of economics?
    I bet if you get everyone on the planet, and every company to purchace software solely by merit of stability, you'll start to see a lot more stable software. But as long as people are shopping for *featureful* apps, *fun* games, and eye candy, it's not going to happen.

    --

    -... --- .-. . -.. ..--..
  51. Difference between Crashes and Bugs by Namarrgon · · Score: 1

    They're not the same thing.

    Bugs are where your software does not do what you expected it to do. They seem to be unavoidable, with complex systems. Only by long-term term exhaustive testing can you increase your confidence that your software is bug-free.

    Crashes are where your software catastrophically and unrecoverably fails, to the point where it cannot gracefully recover. Those should be avoidable, with the right tools. There are also crashes caused by unavoidable hardware failures, but that's a different problem.

    Correct programming practices do of course reduce crashes (and bugs), but it seems to me a well-designed language could make it impossible to write code that crashes, only code that is incorrect (and occasionally even correct ;-) e.g. Java eliminates pointers from C, since bad pointers are a major cause of crashes. By using only references, you cannot read or overwrite random or out-of-date memory.

    I'm hardly an expert on language design, but it seems to me that while bugs may never be completely eliminated, crashes could be.

    --
    Why would anyone engrave "Elbereth"?
  52. Mandate memory checking tools by hawkstone · · Score: 5, Interesting

    I'm sure it's harder to accomplish this for kernel level code (it's primarily OSes being pointed at right here) but you can think everything is working hunkey-dorey and not realize something is going wrong under the covers.

    Most errors of this can be found with testing under tools like valgrind or Rational's purify. I'm sure there are others (I've heard of ParaSoft Insure++, ATOM Third Degree, CodeGaurd, and ZeroFault), but the quality of these tools really matters.

    The issue is that tiny errors can cause crashes intermittently, and not immediately. For example:
    uninitialized memory reads -- usually not a problem, but if this value is ever actually used, it will be.
    array bounds reads -- never acceptable, but depending on the structure of memory, may not always cause an immediate crash.
    array bounds writes -- like ABRs, may not be immediately fatal, but these are going to crash your code sooner or later.

    Since they don't always cause an immediate crash, these errors are likely to creep in to released code without use of one of these tools. And if you want to know why we shouldn't always run programs in an environment that checks these kinds of things, try it once; you'll notice a speed hit of usually an order of magnitude. C/C++ is a perfectly acceptable language -- not all debugging has to be done by the compiler/interpreter or only after you notice a problem.

    Anyway, hope that wasn't too pedantic....

    1. Re:Mandate memory checking tools by MourningBlade · · Score: 1

      I think that some of the research being done into programs that walk code and look for certain things to be true (a subset of code checkers) will produce some good things, hopefully soon.

      I think the ability for programmers to write tests for programming errors in a general enough way will be wonderful. Being able to write a test to ensure that, no matter what, that specific coding error will never happen again (and as you discover more similar ones, your net will widen, and as you get false hits your accuracy will increase) will be a great boon for programmers.

      Part of the problem with systems like Purify is that they do not allow the easy addition of tests to the battery (do-able in less than 5-10 minutes for a basic test).

      But I think they are on the right track. We won't catch everything, but we can catch many things.

    2. Re:Mandate memory checking tools by JohnFluxx · · Score: 1

      Quite a few ide's are getting dataflow analysers. kdevelop's is almost done - it can basically 'compile' code as you write it (into an intermediate representation).

      I'm planning to have a go at implementing data bound checking etc in a few months - which should be cool if it works.

  53. third party software by tomstdenis · · Score: 1

    I love how everyone seems to ignore the fact that huge OSes like windows typically work in conjunction with third-party software.

    While a good OS should protect against anything that isn't always possible because occasionally buggy-like behaviour is warranted. For example, you may want a thread to hog cpu time from everything including the gui. [e.g. making a BSP based map or something, want it to finish quickly].

    However, that could just as easily be a run-away thread that isn't supposed to run.

    And to those that think this is Windows only try writing a 1GB file from memory in linux kernel 2.4.20 [or so]. And watch as the system crawls to a halt as the cache is emptied...

    Tom

    --
    Someday, I'll have a real sig.
  54. Re:My experience with crashing servers by pixelite · · Score: 1

    thanks for the laugh, after all of the stress i've under lately, i needed one.

    --
    >>Sig under construction
  55. Because crashes do not cost enough by Anonymous Coward · · Score: 0

    Companies deliver what people will buy.

    If automobile braking systems just stopped working as often as Win 98, or 737 ailerons froze as often as my CD ROM driver, or missile silos accidently launched a nuke as often as a PocketPC resets, then billions of dollars would change hands in the lawsuits and people would go to jail.

    Get software failures as costly to the manufacturer as the above failures are to their manufacturers, and you will see some changes. Delaying product launch by 6 months won't seem that bad, and investing 2 man-decades in final QA will be seen as reasonable.

    Until then, companies (generally) won't invest the money and time into QA -- especially if their competitors are not.

  56. Why do computers crash? by avgjoe62 · · Score: 1

    I don't know about the software or hardware being at fault. My computers crash when I throw them off the fifth floor because they blue screened again...

    --

    How come Slashdot never gets Slashdotted?

    1. Re:Why do computers crash? by Anonymous Coward · · Score: 0

      HAHALOLLERS M$ jokkkkke! Fucking homo.

    2. Re:Why do computers crash? by avgjoe62 · · Score: 1
      Oh how witty! What a clever retort. I am sure that your charming personality is exceeded only by your waistline.

      Then again, I expect dialogue this brilliant from someone defending M$. How much are they paying you to sit around and look for any mention of them on \.

      If you truly did find this funny, I will only point out that all great humor is founded on simple truth.

      It's time to ban the ACs again.

      --

      How come Slashdot never gets Slashdotted?

  57. Re:My experience with crashing servers by Anonymous Coward · · Score: 0

    This is so funny, now if only you had a bit of real knowledge you'd rewrite this to be a bit more believable...

  58. theoretical computer science ? by Cyranith · · Score: 1

    Its amusing that there is a mathematical way to prove that a piece of code (or any program) has absolutly no errors. However, it takes exponential time to do. So the code for, ex, msword, would take many many years. (factoring two large prime numbers falls into the same group... which, apparently, means that if you can factor two large prime numbers in reasonable time, then there exists a method to fix in reasonable time) *shrugs*

    1. Re:theoretical computer science ? by Anonymous Coward · · Score: 0

      "Its amusing that there is a mathematical way to prove that a piece of code (or any program) has absolutly no errors."

      That's only possible in cases where you knew the requirements for the code, in order to determine correctness. This is hardly ever the case in the real world.

    2. Re:theoretical computer science ? by D-d0g · · Score: 1

      I am not sure that this statement is correct, or rather it is correct for only the simplest of programs or algorithms. There are subtleties relating to Algorithmic Information Theory when it comes to expressing information in coded form that make it a nontrivial issue to "prove" that code is or is not error-free. Too, there are constraints related to incompleteness theory involved. Finally, to my knowledge none of this has anything to do with factoring large prime numbers. Peace, D-d0g

      --
      BASE 715 818 SW 3rd, #236 Portland, OR 97204 USA
    3. Re:theoretical computer science ? by CognitivelyDistorted · · Score: 1
      Its amusing that there is a mathematical way to prove that a piece of code (or any program) has absolutly no errors. However, it takes exponential time to do.

      No, it's actually undecidable. For any nontrivial property P, there is no general algorithm for checking programs for P.

      There are algorithms that work on most programs, (on others they fail to terminate) and as you point out, it takes too long to do a full verification of a full program. But you can often prove the absence of certain specific kinds of errors, like null pointer deferences. It's still slow, but doable.

      You also have the problem of generating the specification (and a full specification of Word would be huge). Do you run a specification-checker to prove that it's correct? And what about the specification for that? ...

  59. Re:My experience with crashing servers by Anonymous Coward · · Score: 0

    Nice try Ballmer..

  60. Re:My experience with crashing servers by jimmy_dean · · Score: 1

    You really need to get your "facts" straight. I won't even mention the numerous areas in which you have absolutely no idea what you're talking about. I find it hard to believe that you worked for a fortune 500 company in such a role as you say. This sounds more like a troll post than a factual insightful explanation of real experience. Nice try, if you came out and said you were paid by Microsoft to say this stuff, I wouldn't be surprised at all.

    --
    -> Sometimes, you just gotta break free from the shackles of proprietary code.
  61. Time, Cost, Quality by Symb · · Score: 1

    You want quality. Which of the other two are you willing to sacrifice?

    1. Re:Time, Cost, Quality by VTS · · Score: 1

      You want quality. Which of the other two are you willing to sacrifice?

      Get rid of both, I don't want them :)

      --
      --- No 16-bit support in Vista? Half of our modules still use it! ---
  62. Re:Switch to vector strings and not null-terminate by gregmac · · Score: 1
    The null-termination thing is without bounds checking. A simple
    strlen[strlen(str)]=0;
    is enough to crash a computer.

    In other words, another good example of why C is not suited to modern interactive application programming.

    --
    Speak before you think
  63. Take your pick... by Rocker2000 · · Score: 3, Informative

    Any of the following reasons conspire to result in buggy software these days.. (a) clueless marketing departments, project managers, etc set unrealistic deadlines for completing code to an acceptable standard. shortcuts are taken to meet the unrealistci deadliens and buggy products are the end result... (b) to satisfy client demands for increased functionality (no matter how unnecessary) results in more compelx code.. complx code is harder to maintain and troubleshoot... i sometimes think IT peopel have forgotten the notion that a simple solution that achieves functionality is the best solution... (c) programmers are humans, humans make mistakes in code... (d) companies to reduce the time/resource necessary to complete a product put in place aenemic testing/load testing methologies... (e) people often compare a computer to a kettle, car etc.. why can't it just work like that... well kettles do one thing and that's it.. computers do many complex things from rendering a CAD diagram through to a large scale mail server... etc etc... cars do one thing by relative comparison too but even most cars get more maintenace than some IT environments i've seen and you don't see people rushing out to buy a no name no brand car (e.g. like pc clones etc etc)... and many more im sure... how many more faield IT projects/Buggy software have to occur before peopel realize these things?

    1. Re:Take your pick... by jjohnson · · Score: 1

      You forgot (f), programmers who think they're better than they are.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    2. Re:Take your pick... by Anonymous Coward · · Score: 0

      You can't be a C programmer, we know how to use punctuation.

    3. Re:Take your pick... by jweatherley · · Score: 1

      You can't be a C programmer, we know how to use punctuation.

      Comma splice.

      --

      --
      Reverse outsourcing: it's the future
    4. Re:Take your pick... by Anonymous Coward · · Score: 0

      How ironic can life get? After reading through these comments I open a status report for a project here at work. The summary reads...

      "We have less than 5 weeks until launch Date. The schedule going to be VERY tight. Working on revising Test Plan."

  64. We've got a lot of techniques in the gaming world by Samir+Gupta · · Score: 3, Interesting

    In the world of games, especially console games, a crash immediately spoils the user's gameplay experience, and it's doubly so if you don't have a mechanism to patch games as in the PC world.

    In the GameCube, crashes are alleviated by having only a thin OS layer between the hardware and the game, and restricting only a single task to be run in a single privilege level of the CPU, avoiding context switches and going back and forth between user and kernel mode which introduces complexity and can wreak havoc if malicious data is present.

    Furthermore, we have a set hardware configuration, running a well defined consistent set of drivers, which are again, minimal, and this eliminates another factor that often leads to crashes in the PC world.

    The most important thing though is robust software design. In our games, we all code exception handlers for the software, so that a single errant NULL pointer doesn't bring the whole thing down with a "Segmentation fault" message as PC users seem to experience with their software, but rather, we gracefully recover, perhaps immediately rolling back to the previous iteration in the game loop and "moving" the player a bit, for instance, in a FPS where the player might have entered into an area in a orientation that happens to create a divide by zero error due to numerical imprecision.

    In the future with CPU and memory speeds increasing, we are investigating new designs, such as microkernel based architectures where individual game entities are separate protected "processes" that communicate via some fast IPC mechanism such as shared memory or a "tuplespace", so that a bug in one entity doesn't bring the whole universe crashing to a halt, and I hope that such techniques are adopted by the general computing world.

    --
    -- Samir Gupta, Ph. D. Head, New Technology Research Group, Nintendo Co. Ltd., Kyoto, Japan.
  65. Another SIlly Slashdot by Anonymous Coward · · Score: 0

    Computers crash because they are not designed otherwise.

    Why do cars need to be replaced after 5 years? Why are there disposable contact lenses and disposable cameras?

    Breakdown is inevitable--only impressive engineering can counter it for appreciable amounts of time and like it or not, most people don't seem to care enough. Also, impressive engineering is very expensive because only a handful of people are actually capable of pulling it off. As a matter of fact, it is far more likely that the by-products of our engineering will far outlive the products of our eengineering (think: NYC grabage dump, spent uranium, etc.)

  66. Reason is very simple: halting problem by Anonymous Coward · · Score: 0

    If you look at a class in most CS degrees called Theory of Computation, you will study a phenomenon called the halting problem...while we have some very good toolsets, we are still faced with the same problem of logic errors....if you think about it, the sorts of bugs that plague us now, are the same sort of logic errors that plagued many of the developers from the time of yore...

  67. Obligatory anti-MS by cptgrudge · · Score: 5, Insightful
    Of course, there's no need to mention Microsoft's inability to create a stable system.

    What exactly is the purpose behind this? Why was it put in here? People are going to need to grow up if people in "our" circle want to be taken seriously. I've used Windows 2000 and Windows XP both. They crash as much as my Red Hat and Debian boxes do. Never. They are all rock solid.

    I work for a public school system. We have a class at the High School that teaches and certifies for A+ (I know, I know). They have all sorts of problems getting stuff to work and to get a system stable. In Windows and Linux.

    It isn't because they are high schoolers.

    It isn't because they are "just learning".

    It's because they buy really shitty hardware. They look for the best cost, and they get their hardware from some loser manufacturer that has fucked up drivers and horrible quality control.

    Properly maintained boxes with quality hardware in them just don't crash anymore. Programs maybe, but not systems.

    Christ, people, this has been beat to death! Microsoft has a great product for an OS now! Get back to making something better than them instead trying to convince yourself that Microsoft is delusional.

    Mod me Flamebait, I don't care.

    --
    Qualitas edurus commercium, nullus penitus net rimor, nullus deus beneficium
    1. Re:Obligatory anti-MS by Anonymous Coward · · Score: 0

      Mod parent UP! I've used MS all my life - I haven't had a choice, having to share my comp with non-geeks, and not having $ for 2 comps. I like linux, now that I'm learning - incredibly powerful. But the linux box I have access to crashes at least as much as my XP box - maybe more. And there's a professional linux-using sysadmin/network admin running this as his personal box (and letting a few buds, like me, have non-root access).

    2. Re:Obligatory anti-MS by Billly+Gates · · Score: 1
      Alot of linux distro's have unstable or beta quality apps.

      I would recommend debian or FreeBSD. They are more mature and stable. I personally would not run a server on redhat. The 2.4 kernel has been shown to have defective vm.

    3. Re:Obligatory anti-MS by Anonymous Coward · · Score: 0

      Of course, there's no need to mention Microsoft's inability to create a stable system.

      What exactly is the purpose behind this? Why was it put in here?


      Obviously it needed to not be mentioned, so he did.

    4. Re:Obligatory anti-MS by mcrbids · · Score: 1

      Microsoft has a great product for an OS now! Get back to making something better than them instead trying to convince yourself that Microsoft is delusional.

      Kingston memory. Asus Motherboard. ATI video card. Intel CPU. Maxtor HD. Windows 2000.

      Name brands everywhere. Can't get it to last more than a few hours.

      Replace every single part in the system with different, name brand parts.

      Still can't get it to last more than a few hours. (under light load)

      Give up on Windows 2000, load RH 7.2. Under heavy, continuous use. Now have had eleven months of perfect uptime using it as a NAT firewall/gateway/mailserver/web server/DNS server/Database server/spam assassin&antivirus filter.

      If the above wasn't true, I wouldn't be telling it!

      So far, the best uptime I've seen for Windows 2000 is in VMWare 3.2 workstation on RH Linux 7.x!

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    5. Re:Obligatory anti-MS by dvNull · · Score: 1

      MSI Mobo, Infineon DDR memory, PNY Gfx card, Seagate drives, Windows XP. Hasnt had a crash in hmm almost 2 years now .

      dvnull

    6. Re:Obligatory anti-MS by Anonymous Coward · · Score: 0

      Did you ever replace your power supply?

    7. Re:Obligatory anti-MS by Bert64 · · Score: 1

      As his personal box, and not a production server at his workplace, nodoubt he uses it for testing of new things.. its possible he updates his kernel regularly for instance, like i do on my personal boxes.. testing a new kernel on a production server is inexcuseable, but if your personal box goes down its no biggie.
      I have a few boxes here, some for fucking around with.. and 2 which are dedicated servers, the servers never have anything updated on them unless its necessary for security purposes, and neither have gone down. My test boxes get a new kernel each time theres a new development release out, sure there not stable, development releases arent supposed to be.. But most of the downtime is due to intentional reboots to test a new kernel, and not to crashes.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    8. Re:Obligatory anti-MS by UserChrisCanter4 · · Score: 2, Informative

      Not that anyone will even read this, but good call.

      I see so many people spend beacoup money on their internals and then say, "oh, yeah, and this 420Watt PS I got for $35. What a steal!"

      A good power supply is not cheap. On the flip side, though, a good power supply is not cheap. And a bad power supply is the most annoying thing to troubleshoot.

      Antec makes some good stuff that I've been very happy with, ditto for PC Power and Cooling. Expensive, but so worth it it isn't funny.

    9. Re:Obligatory anti-MS by Anonymous Coward · · Score: 0

      I'm using an IBM thinkpad A31 which doesn't consist of (at least I wouldn't describe it as) crappy hardware. It crashes at least once a day, so I assume it's not entirely a crappy hardware / driver problem. Just my humble opinion...

    10. Re:Obligatory anti-MS by Anonymous Coward · · Score: 0

      Well, I've seen windows crash, therefore you are an idiot and a liar.

    11. Re:Obligatory anti-MS by mcrbids · · Score: 1

      Did you ever replace your power supply?

      Yes, I tried a Lian Li.

      Coincidentally, said motherboard still works flawlessly (and has for months) with RH 7.2, now in a cheezo case/ps that cost $20.

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
  68. Three Words. by coday · · Score: 2, Insightful

    "Time To Market". For commercial software developers they are always trying to "balance", quality and getting into the market ASAP. Unfortunately MS (and others) have made it acceptable to release service packs after the "final" product has already shipped. Get it out there now, fix it later is commonplace.

  69. obvious answer... by paRcat · · Score: 1

    linux.

    My application server (the most active server in the company (serves ~450 records/second for Goldmine (contact mgmt sw), along with >100MB graphics files, and runs as primary domain controller) has been up 411 days as of today.

    Anecdotal evidence, sure, but absolutely true. If you ask me, it speaks volumes.

  70. Guess I'm lucky by Shouldbeworking · · Score: 0

    Our AIX, Solaris and HP-UX development boxes don't really crash very often. These uptimes would be longer but for some power problems.

    smokey:/tmp % uptime
    6:04pm up 294 days, 4:42, 29 users, load average: 0.79, 0.76, 0.82
    # uptime
    6:04pm up 219 days, 8:31, 84 users, load average: 0.16, 0.24, 0.29
    # uptime
    6:05pm up 228 days, 23:44, 156 users, load average: 0.43, 0.34, 0.34
    patty:/tmp % uptime
    6:06pm up 266 days, 19:27, 3 users, load average: 1.01, 0.83, 0.68
    # uptime
    6:06pm up 246 days, 1:17, 92 users, load average: 2.09, 2.05, 2.35
    maggie:/tmp % uptime
    6:06pm up 480 days, 23:14, 28 users, load average: 0.02, 0.02, 0.03
    # uptime
    6:05pm up 201 day(s), 5:42, 1 user, load average: 0.01, 0.01, 0.01
    # uptime
    6:07pm up 480 days, 23:54, 27 users, load average: 0.06, 0.11, 0.15
    # uptime
    6:08pm up 481 days, 16 mins, 13 users, load average: 0.00, 0.00, 0.00
    # uptime
    6:07pm up 242 days, 6:36, 14 users, load average: 0.01, 0.02, 0.03
    rodan:/var/log % uptime
    6:07pm up 377 day(s), 4:29, 14 users, load average: 0.02, 0.04, 0.05

  71. The less obvious solution. by Anonymous Coward · · Score: 0

    I generally don't get into topics like this but it would seem to me that the 'quickest' way to improve software quality is to make any company that sells software liable for the flaws they put in it. If I buy a car and wrap it around a tree no one blames GMH, unless it turns out they were "saving money" by halving the volume of my brake cables that year.

    I know it's not a 'geeky' solution, but the bottom line is that in *ANY* field where people don't have to back up their product, then you're going to get people peddling crap and suckers buying it because it is supposedly 'cheaper'. And in the long term, companies will love it because it would reduce the attractiveness of piracy since most medium to large companies would rather pay a bit more for a guarentee than go in blind (and customers would love it because it would actually be useful to purchase a copy of X).

  72. Jesus was a black lesbian by Anonymous Coward · · Score: 0

    Everyday is a troll-day, bitches.

  73. The truth by AvengerXP · · Score: 1

    I've found out over time that the reason computer equipment crashes in general is lack of maintenance. Would you drive a car without changing it's oil for 5 years straight? Then why should a computer be any different. It's much more complex than a toaster, and yet the average toaster doesn't last much longer than a CPU. I think it's time people start treating things as they do with themselves. Take care of it/them.

    Sure, theres the occasional hardware malfunction, but of all the malfunctions I've seen at home are either the result of my own damn manipulations (Sorry, can't help to tweak here and there) or that the component's life expectancy had ended. How many years do you think you can run on 66MHz First Gen SD-RAM anyway? I'm not defending faulty hardware manufacturers, but I've RMAed a faulty memory or processor once or twice knowingly that it was *my* fault. I'm getting offtopic here, so in conclusion let's just say that Star Trek like computer systems are far from being tommorow's technology, some people don't even have *1* computer let alone a completely dependant second backup computer!

    --
    Trolls dont like to be Flamebait, because they burn so well. Protect our Troll heritage!
  74. Not always software by Anonymous Coward · · Score: 0

    Even a simple 'hello world' program can crash for a myriad of reasons, like if the sysadmin removes a shared library, if memory is corrupted, if the process swaps onto a bad disk sector ....

    I get 'bugs' reported when requirements change, when people move databases around, add network security devices, and so on.

    Upgrades. I once had a bug because we upgraded Oracle and there was an incompatibility with the Sun kernel we were using.

    I could rant on ...

  75. Thoughts on why *nix is stable by jone1941 · · Score: 2, Interesting

    There are a lot of moving parts in a working linux system (I'm talking CLI here), however, it seems to be less prone to crashing. As someone previously mentioned, software that is larger and more complex is more likely to have a bug. The point I'm getting at is that the design priciples of *nix dictate many small programs to create a large working system. When a program is small it can be designed and developed with care. This leads me to my final though, modern Operating Systems with GUIs are less stable because they are generally designed as large monolithic systems.

    I'm going to claim that the prime reason systems with GUIs (and I'm including everyone) are unstable is because noone has come up with a rock solid base for such a system. X is not solid, windows explorer, mac os x's application manager, no one has it right.

    The one thing I am leaving out, is that drivers also tend to be a major cause of instability. I cannot run the nvidia driver on my gentoo box, certain usb events can bring a system to a screetching halt. What needs to happen is better design around the unstable interfaces, such that in the worst case scenario, things can still be recovered.

    --
    Fear trumps hope and ignorance trumps both
    1. Re:Thoughts on why *nix is stable by EvilTwinSkippy · · Score: 1
      Software will not stop breaking until it stops relying on a rigid structure. Unix is relatively stable because after 30 years it still resembles a large puddle of water.

      Each program is like a pebble. Small, easily handled, and not easily broken. Where have our greatest problems been? In large libraries like Glibc and GTK, where massive rigid structures are created. Once you have a large rigid structure, it is difficult to change it without destroying everything attached to it.

      I think the future of programming is not with large object-oriented systems. I think the future is with scripts tying together elemental components. Yes they are "ugly". But they work. Indeed, they tend to work for years, accepting change.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
  76. Coming Soon! by neurostar · · Score: 1

    The ultimate solution to the problem is to let computers write the software themselves.

    Coming soon... "Microsoft HAL". This updated version of "Microsoft BOB" writes his own code and decides what's good for you.

  77. Anti-stupid language by DeKO · · Score: 1

    Are we using the wrong tools (such as C) which do not provide the facilities necessary to write safe software?

    There is NO language that can avoid stupidity.

  78. Re:We've got a lot of techniques in the gaming wor by Anonymous Coward · · Score: 0

    Shutup, motherfucker.

  79. Job security and Money by DraconPern · · Score: 1

    If your program never crashes, then you will never need to create patches/service packs/etc, which is usually an incentive for people to buy support contracts from you.

  80. Source of bugs: Programmers by darkov · · Score: 0, Troll

    Are we using the wrong tools (such as C) which do not provide the facilities necessary to write safe software?

    Absolutely. People should write in Modula-3: safe, efficient and productive. But that doesn't impress your average hairy-chested programmer who needs to prove how smart he is. For him, programming was meant to be hard and bugs can't be avoided. Both are untrue. They just feel more secure in concrete representations rather than constrained abstract models. They'd rather have control than efficiency becuase they have a psychological need for (total) control.

    Most programmers are pathetic, inadequate human beings really.

  81. Getting Your Question Posted On Slashdot 101 by Anonymous Coward · · Score: 0

    Of course, there's no need to mention Microsoft's inability to create a stable system.

    Sure, this would have made sense 5 years ago. Why didn't you just go for the gold and conclude with "Why can't everything be as rock solid as Linux?"

    Grits in the morning, Portman at night.

  82. Crashes? by yerktoader · · Score: 1

    We don't need no steenking crashes!

  83. Typo alert by scorp1us · · Score: 1

    WHoops thousld be ..=1;
    (Anything BUT 0)

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    1. Re:Typo alert by Anonymous Coward · · Score: 0

      And it should read s[strlen(str)]=1;

  84. If this submission had been a comment... by writertype · · Score: 1

    I'd bet it would get modded down as a troll. :)

  85. And what does Billy Gates have to say about this? by djupedal · · Score: 1

    Bugs (that cause crashes, etc.), actually...are cool .

    Oh, and users are 'Luddites'. So, it's the loose nut behind the wheel, not the CPU or the software that is the root cause, after all.

  86. Why by pjdepasq · · Score: 2, Insightful

    Massive complexity (even for simple apps) + enless possibilities of user interactions + rush to market + no sliver bullet = likelyhood of crashing

  87. QA, QA, QA by porter235 · · Score: 1

    I work as a QA Specialist, and am appalled at the state of software that I see out in the wild. Either there is no testing, not enough testing, or those testing are simply doing an insuffiecient job. I suspect a bit of all three. Testing helps a ton in catching those mistakes that are inevitable.

  88. subjects are for homos. by edrugtrader · · Score: 1

    a subsystem making sure the main system can't crash (such as the sandbox architechure of java) requires so much overhead that we would be going back a lot in terms of computing power.

    and god forbid the subsystem has a few errors, or the entire forfeit of speed for reliability was for naught.

    just don't install bonzi buddy and your shit will be fine.

    --
    MARIJUANA, SHROOMS, X: ONLINE?! - E
  89. A lesson from history by Dr.+Bent · · Score: 5, Insightful

    Back in the Middle Ages, when the Catholic Church wanted a Cathedral built, they would pay a bunch of Freemasons to do it. The Freemasons viewed themselves as creative artisans, and they closely guarded the secrets they used to construct these impressive houses of worship.

    The method they used, however, was less than impressive. Typically, they would start with a general design, and piece together stone and mortar until something collapsed, which happened quite often. Then they would patch the section that collapsed and keep on going until something else fell down, or they finished. Given the level of understanding with regards to Physics and Material Science, those Freemasons has no other choice than to build them this way.

    Now fast forward to the 21st century. The engineering disasters on par with those medieval collapses can be counted on one hand (Tacoma Narrows Bridge and the Hyatt Regency walkway collapse are the only two I can think of). This is directly due to the fact that a civil engineer can determine if a design is structurally sound before they build it.

    Contrast this with modern day software development. We can't even tell if a system is flawed after we build it, let alone before. So software gets written, deployed, and put into the marketplace that has no assurances whatsoever of actually doing what it's supposed to do (hence the 10,000 page EULA).

    You can't have Civil Engineers until you have Physics. And you won't have 100% bulletproof software until you have Software Engineering. And you won't have that until someone can figure out a way to prove that a given peice of software will perform as it's supposed to. JUnit is a step in the right direction, but there's still a long way to go. It's going to take a breakthrough on the order of Newton to make Software Engineering as reliable a discipline as Civil Engineering.

    1. Re:A lesson from history by ThreeToe · · Score: 2, Insightful
      You make a very insightful analogy and I think it is quite revealing.

      You state that we won't have Software Engineering until "someone can figure out a way to prove that a given piece of software will perform as it's supposed to."

      Alas, this is known to be an impossible task in the general case: this is Turing's halting problem. There's no Newton-caliber breakthrough waiting in the wings here.

      Unit testing works because testers know their software systems intimately and can specialize testing code to work in a narrower number of cases. State modeling languages such as ASML can help improve the situation, but seasoned testers know that no tool will help them achieve 100% block and arc coverage of their code.

      I'll throw this out for discussion, then: the underlying principals of a software system's design dictate its fundamental physics. It is difficult (sometimes impossible?) to make distinctions between a software's functionality and its substrate.

      In an ideal world, developers would find a technique by which they could _always_ separate the two and hence categorize a common physics. The choice of language is part of the physics, but it isn't the sum total: C++ apps can have radically different underlying structures.

      Thoughts?

    2. Re:A lesson from history by Mostly+a+lurker · · Score: 1

      I think your analogy is generally accurate. However, we do theoretically have methods today that can produce provably correct programs. The problem is: (1) that these methods constrain the manner in which we design software to an extent that development of complex software becomes extremely time consuming, and (2) it does not lead to error free systems because these requires error free design which will only ever be possible (if at all) when we have very advanced computer assisted design methods. To see how far we are from that, consider how well today computers validate our writing for error free grammar.

    3. Re:A lesson from history by Anonymous Coward · · Score: 0

      I don't think we're talking Newtonion breakthrough. It would be more on the order of a quantum breakthrough (and there haven't been any).

      The problem space is huge. Really freaking huge. Software is, for the most part, nothing like civil engineering. Physical engineering has fixed, known inputs and outputs. Any nontrival piece of software has near infinite inputs (and often infinite possible outputs). Very, very difficult to prove (could be impossible).

    4. Re:A lesson from history by Anonymous Coward · · Score: 0

      However, we do theoretically have methods today that can produce provably correct programs.

      Think about what you're saying though. Theoretically I can break a 65535-bit RSA key on my laptop. Is it going to happen? Not likely. Theoretically we can make a chess program that could play a perfect game of chess. Has anyone done it? No, the problem space is huge, too huge for us to currently handle.

      It get even worse for software. The problem space is massive, infinite in some cases. Therefore impossible to "prove" in the traditional sense.

    5. Re:A lesson from history by cooldev · · Score: 1

      That's part of it, but to overextend your metaphor: software engineering today is a little bit like telling the civil engineer to build a two lane highway that is traffic-jam-proof, maintenance free, impossible to deface with graffiti, low cost, and can be rerouted half way through the project.

      My experience is that as long as you have a good, experienced team the programming and testing part can be reasonably predictable. We have a pretty good idea of how to write secure/reliable/performant software. Sure, there's room for improvement, but one of the hardest parts about software engineering is managing changing requirements and unrealistic expectations.

      And to get on my soapbox for a second: this is fine. Software engineering is evolving and improving, but it's unrealistic to expect 100% perfection out of any given programmer or company; rather, the focus should be on outrunning the other guy. That is the road to improvement.

    6. Re:A lesson from history by Anonymous Coward · · Score: 0

      Like your sig. Do you freep? If not check the party at www.freerepublic.com. Its like slashdot for conservatives. You will find all types from religious right, libertines, neocons, and more, we even let liberals come in but they usually can't take the heat. It can be an odd place where diversity is hailed but affermative action is hated, where you love your fellow man but won't give him a thing(make him earn it),

    7. Re:A lesson from history by Minna+Kirai · · Score: 3, Insightful

      It's going to take a breakthrough on the order of Newton to make Software Engineering as reliable a discipline as Civil Engineering.

      The reliablity of today's Civil Engineering comes not from deep theoretical understanding ala Newton- it's really just the same "build, crash, repeat" method those Freemasons have been using for 1000 years.

      Now that we've had centuries of experience at building similar kinds of structures, most of the kinks have been worked out. Those rare CivEng projects that break new ground still have a high risk of unexpected failures. (A 4000% cost overrun is a failure)

      Civil Engineering still uses empirical testing to decide if a new technique is reliable, as does "Software Engineering". You just notice it more in SE because that field has more opportunities for innovation and much, much fewer penalties when an experiment fails.

      JUnit is a step in the right direction, but there's still a long way to go.

      JUnit is a step down a curving road to a dead-end. It won't take us to an ultimate solution (but it will provide benefit in the near-term future). That's because it's not a system to help formally prove code is correct (which some unpopular languages support to small degrees)- instead, Unit Testing is just a way to automate "build, crash, repeat" empirical testing.

    8. Re:A lesson from history by young-earth · · Score: 1

      Another fairly spectacular example is the collapse of Husky Stadium in Seattle in 1987 while it was under construction. Another is the sinking of the Mercer Island bridge, and the sinking of half of the Hood Canal bridge.

      Gee, some things just aren't built that well out here in the Seattle area, are they? Or maybe it's the weather...

    9. Re:A lesson from history by Degrees · · Score: 1
      I even have a book, System Design from Provably Correct Constructs by James Martin (Prentice-Hall, 1985). Part of it focuses on software that implements "Higher Order Software - A Methodology for Defining Software," by Margaret Hamilton and Saydean Zeldin. Unfortunately, I cannot say that I studied the book like I ought to have.

      In my wide-eyed and optimistic youth, I fully expected CASE (Computer Aided Software Engineering) to revolutionize programming. And yes, your point (1) is +5 insightful. Regarding your point (2), I do think we will eventually get to error free systems. But I think it will take giving up the 'programmer as artiste' pretense. I do think that designers will still provide insight. But eventually, engineering a robust solution will be recognized as better than keeping around code just because it was first, and a cool hack at the time.

      I could be wrong. I hear that the Linux kernel scheduler is being re-engineered - and that indeed, the new code is better. I suspect that more formal methods are used today. But I don't know that, and I could very well be very wrong.

      I would like to rephrase your last question. What will it take before computers can validate our writing of error free grammar?

      --
      "The most sensible request of government we make is not, "Do something!" But "Quit it!"
    10. Re:A lesson from history by perky · · Score: 1
      You can't have Civil Engineers until you have Physics. And you won't have 100% bulletproof software until you have Software Engineering.

      [quote chosen in a feeble attempt to summarise your point.] I don't agree. It's a nice premise, and one that is elegant and would be very easy to accept uncritically, but it simply isn't true. The way civil engineers build the *vast majority* of new structures is to take out a copy of the relevant striuctural code and look up the mandated tolerances for wind, water etc. They then look through the list of existing designs until they get one that roughly fits the problem. This is then altered until analysis shows that it will meet the spec.


      Then consider what happens when someone tries to build something new, like the Millennium bridge in London. Even some of the most respected civil engineers in the world slip up, and the thing doesn't quite work as planned. Three years later, we now have a working design for horizontally suspended bridges, and the next one built will work.


      so, you see, whilst the analysis lets us make predictions about what will happen structurally, they're only really valid for designs that have been used before.


      Finally consider the two failures that you mention. tacoma was caused by vortex shedding, a piece of fluid mechanics that was not understood at the time. Hyatt was caused by a construction error - the engineer's drawings were not followed correctly when constructing the walkway. Drawing the obvious analogy with software engineering, the Tacoma case corresponds to an environmental issue perhaps CPU overheating; the Hyatt case corresponds to a simple bug in the implementation of the design.


      I suppose that at least destruction testing on software isn't that destructive when compared with physical engineering projects. So maybe there's hope yet.

      --
      "The new wave is not value-added; it's garbage-subtracted" - Esther Dyson, Dec 1994
    11. Re:A lesson from history by krysith · · Score: 1

      Perhaps the "Newton-caliber breakthrough" will be in the manner of increasing the constraints on the problem. Many problems which are insoluble in the general case are quite solvable in more specific cases. Say you had a language which limited the inputs and handling of each sofware module to agreed-upon standards which could not cause a crash (such things are often done on a per-project basis; I do not know of any research on a more general language). In a case like this, the halting problem is solvable. FYI, IANACS, but IAAP.

    12. Re:A lesson from history by Aidtopia · · Score: 1
      The engineering disasters on par with those medieval collapses can be counted on one hand.... This is directly due to the fact that a civil engineer can determine if a design is structurally sound before they build it.

      Ah, but it's more than that. Civil engineers use material science and physics to decide how strong a bridge needs to be, then they double or triple it in the specs to help cover what they don't know. I don't think there's a software equivalent to using twice as many bolts and thicker suspension cables.

  90. Computers will always crash by variable26 · · Score: 1

    There will never be a computer that will never crash. As systems get more complex, the possibility for crashes increase. There are just too many things that can go wrong.

    Bill Gates: 'My computer crashes too' December7, 2001

  91. try again. by twitter · · Score: 1
    easy to keep a computer up if you never use it ;)

    Most computers are like that, yet some still have to be restarted every day and "rebuilt" every month. Go figure, my computers go down when I want to change hardware, take them to a friend's, or the power goes out. They never crash, despite the worst efforts of some mail clients to add nasty stuff to mail I get. Debian stable is stable.

    --

    Friends don't help friends install M$ junk.

    1. Re:try again. by SN74S181 · · Score: 0, Troll

      Too bad there are so many things you can't do when you've crippled your hardware with an OS with so few apps.

      I mean, you can't do much except play back multimedia, there's seldom any games you can play on it.

      I liken it to a rock in the middle of a field. Damned stable, that rock. It just sits there.

    2. Re:try again. by MikeFM · · Score: 1

      It depends what you want to do. If you want to play games then sure Windows can do more.. except I use my Playstation for games so I don't really care.

      I use my computer to work. Linux can do more work tasks because it's stable and more affordable to produce software on than Windows. There are programs in existence to do damn near every work related task (of any kind) on Linux and when you happen to find something missing (or not good enough) it's affordable to write your own. Also you can run many Windows apps in Linux (thanks to Wine) such as M$ Office, Quicken, Photoshop, and IE.. even games.

      I guess my point is that other than for games (which have specific copyrighted artwork) there is a similar program, for almost every task, that runs under Linux. You are right that Windows has more programs available but that is because you have 4000 types of minesweeper and 20000 different versions of tetris. It's also because most opensource programs develop such that their code can be ported to Windows (or any OS) while commercial Windows products are often not designed to be portable. The lack of Linux software is a myth.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    3. Re:try again. by DNS-and-BIND · · Score: 1
      You define a platform's usefulness by the games you can play on it? Crazy, man. I assume by 'playing back multimedia', you mean 'watching porn'.

      Get real, boy. Nintendo is for playing games. Unix is for getting work done.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    4. Re:try again. by SN74S181 · · Score: 1

      The 'apps' for multimedia content creation and editing on Linux are dismal at best.

    5. Re:try again. by MikeFM · · Score: 1

      What kind of multimedia? There are firly good programs for both audio and video editing. Linux lacks a full Photoshop clone (Gimp isn't bad but isn't the same) but can run Photoshop itself if you use Wine. Am I leaving something out?

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  92. Re:Switch to vector strings and not null-terminate by Anonymous Coward · · Score: 0

    Shut the hell up, you dirty homosexual slashbot.

  93. Fundamentally Wrong by damianlewis · · Score: 1

    Computers are fundamentally flawed, as with most mathematically modelled systems.

    Godel's Incompleteness Theorem (yawn, I know) shows us that no mathematical system can be complete or provable if it has the ability to self-reflect - i.e. can describe aspects of itself or abstractions of other systems within itself.

    The fundamental flaw in computer software is that we stupidly assume that our programming languages are complete, provable and are running on an idealised machine capable of reliably repeating instructions ad infinitum.

    Computer software is merely a final layer of abstraction on top of a teetering tower of already leaky abstractions. We cannot possibly expect software to run reliably when we do not understand how an abstraction at one level affects an abstraction at another level.

    E.g., Silicon designers make decisions that impact on application programmers. A CPU speed stepdown to conserve energy on a mobile PC could cause a time-critical event to be delayed, causing a program to fail. The programmer has no knowledge that this is the root cause, as he/she only thinks at the level of the programming language and assumes (has to assume for sanity's sake) that the language is running on an idealised computer.

    How do you check for bugs when you cannot even identify a problem as being within the domain of the abstracted layer with which you are dealing?

    This path leads to fudges, fixes and kludges.

    That is why our software doesn't do what it says on the label. And the bigger it gets, the harder it falls.

    Current finite-state automata based computing is fundamentally doomed. It is time for more radical approaches to how we abstract and map real world problems on to machine hardware.

    Q-bits anybody?

  94. Norton CrashGuard by Ryu2 · · Score: 0, Redundant

    Norton has a little program called CrashGuard for Windows which supposedly can detect crashes, and somehow "recover" the program, at least enough so you can do a "Save As..." of what you're working on. Does anyone know how it works technically?

    Perhaps by somehow taking "snapshots" of program state in memory, and then "rolling back" when a crash is detected? (It's the only way I can think of without having application-specific knowledge about internal data structures, etc.)

    --
    There's 10 types of people in this world, those who understand binary and those who don't.
    1. Re:Norton CrashGuard by Keeper · · Score: 0

      I don't know how crashguard works in particular, but I imagine is hooks into the same interface dev studio does. When it receives a crash notification I'd be willing to bet it steps over the problem instruction and continues with execution.

      My dad had it installed on an older system several years ago. Never really worked that well (though sometimes it did do the trick), and I'm convinced that a lot of the system's instability was caused by the other crapload of norton apps running on that machine, because my older slower computer without all the crap on it ran faster and more reliably...

    2. Re:Norton CrashGuard by Anonymous Coward · · Score: 0

      Can't reply as my user b/c I already moderated in this thread. When something like a null pointer dereference occurs, it fills the target with something instead of closing the program. Then you can save as.

    3. Re:Norton CrashGuard by jandrese · · Score: 1

      I have never seen that work as advertised, and some people claim that it can even destabilize your system.

      --

      I read the internet for the articles.
  95. if its bad hardware by Cyno · · Score: 1

    I think that's related to capitalism. We're not working to make stable hardware that never needs to be replaced. We're working to make money and provide consumers a product they can purchase over and over again. Products and simply widgets. And if your widget is broke then we recommend you buy a replacement.

    We know that its possible to design an OS, for example, that can update itself by downloading all patches over the net. XP has a similar feature. But do you think it would ever be in Microsoft's interest to give you an OS that would continually update itself over the net without requiring some form of payment?

    I just upgraded my linux kernel among other things using apt-get. But the only reason I can do that on Linux is because Linux developers often care less about money than they do their own products.

    But this is all my opinion. So please ignore everything I just said. Its not important. Be happy. :)

  96. Computers crash by owlstead · · Score: 1

    Hi,

    This is very much a mathematical problem. There are actually systems that prove that a system does what it should do. These are even being build into automated systems nowadays.

    Unfortunately not every mathematical proposition can be proved. It also takes a lot of time to do the actual proving. And last but not least: if the end state is wrong (human error again, for instan ce), you still have a problem. You might even break working code :).

    Another problem is that the computer does not know what the developer wants it to do. So if it is programmed to do something wrong, it can never tell that it's wrong.

    The imperfect solutions are to use the latest techniques (e.g. process based rights), to create a good design first, to not forget a good security design within that design (IE anyone?), and not to focus on performance before good programming practices (like, use bounds checking, buffer overrun anyone?).

    Warper.

    Pointers are as bad as the goto statement...

    1. Re:Computers crash by tommck · · Score: 1
      Very good point... hell, remember when pretty much ALL cards that were manufactured had "patches" of a _wire_ soldered onto the board!


      Ahh... the good old days :-)

      t

      --
      ---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
  97. couple of different reasons... by rusty0101 · · Score: 1

    unforseen uses. hardware problems.

    While it seems least likely for most computers, PDAs are a differnt matter. It is not at all unusual for a PDA to be being used in situations the developers and designers do not expect. This may include dusty, hot, or cold environments, or operating at less than optimal battery power levels.

    Unforseen uses does not simply mean use in the harsher situations noted above, it also applies to software libraries. Array manipulation works fine as long as the array being manipulated is what the library was designed and tested for. If the address book was tested with a couple of hundred addresses, it may not perform as expected with a couple of thousand entries.

    This also applies to interaction between applications. It would be great if my GPS would work with my address book, telling me either how far the address of interest is away from me, etc. The word processor or notepad app should allow me to pull down a list of addresses from the address book and insert those fields that I want (e-mail, url, street address, phone number, etc.) likewise for to-do lists, spreadsheets, etc. However if the feature isn't tested, it will all too often perform in an unexpected manner, including crashing.

    Also there are some features of the OS that get used more often in palmtops than in desktops. PDAs are much more likely to be in and out of "sleep" mode several times a day. Most desktops are turned on and stay that way all day, and are less likely to be put into sleep mode interactively.

    Those are just my observations.

    -Rusty

    --
    You never know...
  98. A lasting lockup that hasn't been fixed... by Epistax · · Score: 2, Insightful

    ... is deadlock. Lets say you have two IO devices, for ease we'll call them disk drives, which give exclusive access. Process A grabs one disk drive, then loses their processor turn (happens many times per second). Process B grabs another disk drive, then requests the drive Process A has, and 'blocks'. Process A then requests the drive Process B has, and 'blocks'. This is a very simple example of deadlock. Now if one of these processes is an OS process, well too bad.

    There are mitigation strategies, but in short the all suck. You can constantly monitor every piece of hardware to see who has rights to what, and flat out deny access to people when a deadlock may occure. This is slow and isn't very nice to processes who now have to trap twice as many errors for many IO operations.
    Another method (in avoidance) is to require all processes to request hardware in a certain order. This prevents all deadlock, but is unrealistic to how a program may function, and may require a programmer to hold onto a hardware device for much longer than actually needed.
    The last method is perhaps worst of all: restrict every process to one hardware device at a time.

    Can you think of a better strategy? Patent it and make a few billion. The strategy taken by *nix, Mac and Windows is... well to completely ignore it because it very rarely happens, but as processors in the future become faster and faster, they are more apt to run more and more processes at once, increasing the problem significantly.

    Note this problem only occures for hold-and-wait devices. Usually any number of programs can read a file for instance, and there is no conflict at all. I find that Operating Systems Concepts (Silberschatz, Galvin, Gagne) covers this topic well, and plenty of other hotspots.

  99. You answered your own question. by pi_rules · · Score: 1
    I don't mean this as flaming the poster, as we're all guilty of it, but:

    My shiny new Zaurus crashed


    That's the reason software sucks. You bought it, right? Sharp got their money so to them their software is 100% on the mark. Could things be better? Oh hell yes! But they don't "need" to be better because the industry is making money off their shoddy software now. It's good enough for 90% of all purposes though so it's marketable.

    I'm not surprised really -- can you name ONE single market that's widely adopted where people demand the utmost of quality all the time? I can't think of one single thing I purchase that's "high end" because not doing so would be insane.

    Less than perfect cars? That's the norm, though they are getting better over time. The cost/benefit ratio though of buying an Audi vs. a Ford just doesn't justify that extra cost (assuming you agree that Audi makes nice quality cars -- I'm working for Germans so I'm biased and I drive a VW).

    Lets drop the price way down: fast food. We don't really buy it because it's the best out there. It's cheap, it's quick, and it fills the job. You want a nice home-made Gyro made fast? It'll cost ya. Some will pay, most won't. It's a niche market.

    Heck... beer is the same way, at least in the US and Canada. I'd say around 90% of "beer" drinkers in my area wouldn't know a good porter if it jumped down their throat. They could grab a 12 pack of good porter for 16 bucks or a 24 pack of rice water for 20... they go with rice water. Reason: value per dollar.

    Is Cherry Coke the best damned cherry flavored cola in your town? I'd wager it isn't, as long as you live in a decent sized town. Yet, we still all buy it.

    Business shoots for the lowest common demoniator. If you can't live with it, well, make yourself a business that caters to people that really want the best. Once your name picks up though you'll have to start mass-producing things at sub standard quality to make a really good profit margin -- unless you gouge your customers.

    Do I dislike it? Yes... of course, especially when it comes to technology as that's 'my thing' and I know it can be done better. Somebody running up to me with a spiffy new Zaurus that crashes is like driving up to your mechanic buddy and beaming about the brand new Kia you just bought. "Hey -- it's got cool cup holders!". Oh brother.

  100. I can tell you why MY computer crashes! by MATTtheROGUE · · Score: 2, Funny

    It seems to be one of the most popular things to do is to blame the software creators, or the human operators. Thats not the reason my computer crahes Why does my computer crash? Well, when you spend hours of your day looking at thigs you shouldn't be looking at (wink wink), and other memory consuming things, (chatting, all those programs that even though I disable from starting up [yes, using regedit] still manage to start) just eat away at my computer. And finally, the most important and Sane reason of all. The Underpants Gnomes. They finally figured out what stage two is. Stage 2 part a; Crash My computer, Stage 2 part c; Use the underpants to make profit. Thanks for listening to my rambling post.

  101. MOD the parent up by captainclever · · Score: 1

    He's talking a lot of sense. Wish i had mod points today

    --
    Last.fm - join the social music revolution
  102. Software, complexity, and human nature. by Christopher+Thomas · · Score: 3, Insightful
    There are several reasons why software keeps crashing, and they aren't going away any time soon. These reasons are:

    • You can't prove that most software works.

      Except for a restricted set of cases, you can't prove that a given piece of code works or doesn't work. A truly exhaustive set of tests would be impractical to perform, and formal proofs of correctness place strong limits on the type of code you can write and the environment in which you can write it.

      The result is that code is assumed correct when no bugs are found. This only means that there probably aren't _many_ bugs left. Thus, it may still crash (or have a security hole, or what-have-you).

    • Software is very complex.

      Software has been complex for a long time. It just tends to be bigger now. A larger system has more opportunities for unexpected high-level interactions between components, but even a smaller system will have enough twists and turns that formulating a really good test suite, or checking the code by inspection, is very difficult. Bugs will be missed. As was discussed above, many of these missed bugs will slip through testing and reach the world.

      • Nobody wants to pay for perfect software.

        As more effort is applied, you can get asymptotically closer to a bug-free system. However, this is far past the point of diminishing returns on the cost/benefit curve. For sufficiently constrained systems, you can even try proving it correct, but this tends to lead to cutting out a lot of functionality, speed, or both.

        In situations where reliability must be had at any cost - aerospace control systems, vehicle control systems, medical equipment - the money will exist to produce near-perfect code, but even then there are bugs that occasionally bite. With commercial software, the buyer would rather have an application that crashes now and then than an application that costs ten times as much and comes out several years later.


      Free and/or open software avoids some of this by staying in development longer, which allows more of the bugs to be caught, but even free and/or open software evolves. Every change brings new bugs to be squashed. As long as there are new types of software that we want, it isn't going to end.
    1. Re:Software, complexity, and human nature. by MyHair · · Score: 1

      ...the cost/benefit curve.

      Give that man a cigar, because that's the answer.

      Computers are generally buggy because the effort or cost to make them bug free generally isn't worth it.

      It's as simple as that.

    2. Re:Software, complexity, and human nature. by shis-ka-bob · · Score: 1
      This is only paritally true. If you are putting software in a life-critical system for which you can be held accountable, the economics of defects changes rapidly. Engineers at companies like Rockwell Collins are applying formal methods and tools like ACL2, which is GPLed, by the way.

      However, these methods are used at very low levels software, I don't think we will be seeing proofs of the properties of web browsers or word processors any time soon.

      Perhaps a distributed systems could be developed to solve formal proofs of increasingly more complex software components. This could be a worthy companion to Operation SETI. As long as it plays nice (perhaps at 10), I would be happy to share my idle clock cycles to validate pieces of Linux or a BSD.

      --
      Think global, act loco
    3. Re:Software, complexity, and human nature. by rebelcool · · Score: 1
      Except for a restricted set of cases, you can't prove that a given piece of code works or doesn't work. A truly exhaustive set of tests would be impractical to perform, and formal proofs of correctness place strong limits on the type of code you can write and the environment in which you can write it.

      Incorrect. Formal proofs can be done on ANY code, with the exception of the halting problem. The whole existance of computers is based on this very fact. The problem is, formal proofs are difficult and time consuming to do. On life-critical systems however, they are done routinely.

      --

      -

    4. Re:Software, complexity, and human nature. by tabby · · Score: 2, Funny

      >># You can't prove that most software works.

      No-one can be told if this software runs.
      You must compile it for yourself.

      --
      I've experiments to run, there is research to be done on the people who are still alive.
    5. Re:Software, complexity, and human nature. by kiniry · · Score: 1

      > You can't prove that most software works.

      Oh really? You should tell that to the thousands of computer scientists in this little field we call "formal methods".

      My research group proves the total correctness of Java programs, primarily those that reside on smart cards. We no longer do "toy" examples any more---we do real-world programs from industry.

      --
      Joseph R. Kiniry
      http://kind.ucd.ie/~kiniry/
      Lecturer
      UCD School of Computer Science and Informatics
    6. Re:Software, complexity, and human nature. by Christopher+Thomas · · Score: 1

      You can't prove that most software works.

      Oh really? You should tell that to the thousands of computer scientists in this little field we call "formal methods"

      This was addressed in my previous message - formal methods are next to impossible to apply to programs of significant complexity, because the correct-behavior specification is as complex as the code itself (what is code, but a specification of what the program should do?).

      Prove that Quake works.

      Prove that $browser_of_choice works.

      If you can construct a specification of correct behavior for these that's less than a thousand pages long and isn't just a restatement of the code, I'll buy your team dinner.

  103. Simple, yes, for other reasons by jabber01 · · Score: 4, Insightful

    Software crashes because it's complex, yes, but that's just part of it.

    Jets are complex too. So is the Space Shuttle. Cruise ships. CARS are pretty complex.

    While all these things do suffer catastrophic failure from time to time, it is far from the norm. Defective cars get recalled. Space shuttles ALL get grounded at the mere possibility of defect.

    If Q/A as stringent as this was applied to software, Microsoft - and in fact most of the software industry - would be out of business. Can you imagine a Windows recall?

    There is software out there that does not fail. Mind-bendingly complex software of the sort that "drives mere mortals mad" to boot. It is tested and retested, through all possible situations - not just the "likely 80%" of them. It is proved correct, and then verified again.

    COTS software is crap because neither the market nor the regulatory forces (such as they are, but that's a separate discussion) do not require it to be. Nor could they.

    A 747 Jumbo costs a whole lot, and while much of that cost is in the manufacture of the "big and complex thing" that it is, a significant chunk of that cost is also due to the design process, the testing, the modeling and simulation of it.

    Software is easy to scale, everyone can have a copy of the product once one is built. Cake. But spread out the cost of an error free design - tested to exhaustion, passed through V&V and so on, and you have a completely different market landscape with which to contend.

    Consumers, in the COTS context, don't mind "planned obsolescence" in their software. The current state of things proves this. People would rather have pretty features on a flaky system, than a solid system.

    --

    The REAL jabber has the user id: 13196
    What you do today will cost you a day of your life

    1. Re:Simple, yes, for other reasons by Zork+the+Almighty · · Score: 0, Flamebait

      Jets are complex too. So is the Space Shuttle.

      I notice that although you go on to talk about jets, you don't seem to mention the Space Shuttle again...

      --

      In Soviet America the banks rob you!
    2. Re:Simple, yes, for other reasons by Surazal · · Score: 3, Insightful

      Consumers, in the COTS context, don't mind "planned obsolescence" in their software. The current state of things proves this. People would rather have pretty features on a flaky system, than a solid system.

      This is not necessarily true... it's a bad generalization besides. Most people I work with in the IT industry would give their arm, leg, spleen, right lung, part of their left lung, lower intestine, and maybe even their occipital lobes for a reliable system that WORKS. Features are secondary.

      The "features over stability" myth is just that: a myth. Show me an admin that prefers only the latest and greatest in "features" and I'll show you an admin that will lose all her/his hair within six months (a little after all their hair turns white).

      Well, ok, I work primarily with IT people admittedly. Perhaps the folks in management are a little different. But I've noticed that IT people have ways of making management's lives miserable (in ways that are downright creative) when a bad decision is made with software purchases. I've done it, myself. ;^)

      --
      --- Journals are boring; Go to my web page instead
    3. Re:Simple, yes, for other reasons by JJahn · · Score: 1
      Except that he did mention it again...

      Space shuttles ALL get grounded at the mere possibility of defect.

    4. Re:Simple, yes, for other reasons by Chris+Carollo · · Score: 3, Interesting
      Jets are complex too. So is the Space Shuttle. Cruise ships. CARS are pretty complex.
      Then again, if one of the overhead bin latches get stuck, or my overhead light burns out, or my seatbelt gets stuck, the entire plane or car doesn't instantly explode. The issue isn't complexity, it's fragility.

      Software is incomprehensibly fragile -- any single thing can cause a crash, taking the whole system or application down. And even those critical parts of things like airplanes have multiple redundancies, something that's hard to build into software. You can do things like catching exceptions, but you typically can't recover as gracefully as if there was never a problem at all.

      The shuttle is actually not a bad analogy -- it's also very fragile due to the stresses it endures. And we've effectively had two crashes in 100 runs. Most software is more stable than that.
    5. Re:Simple, yes, for other reasons by drinkypoo · · Score: 5, Funny
      Can you imagine a Windows recall?

      I must be able to, I'm feeling flushed and my nipples are hard.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    6. Re:Simple, yes, for other reasons by Minna+Kirai · · Score: 2, Insightful
      Most people I work with in the IT industry would give their arm, leg, spleen, right lung, part of their left lung, lower intestine, and maybe even their occipital lobes for a reliable system that WORKS.

      No, that's the myth!

      Show me one off these voluntarily maimed admins, who carved out all his organs hoping for improved software. They don't exist.

      (More realistically, show me one who sacrificed 30% of his annual salary for better software. He also doesn't exist)

      True, from day to day, everyone wishes that that jobs were easier.
      • "I wish customers would read the web page, instead of calling me for phone support"


      • "I wish we had a train to Chicago instead of me driving this truck for 7 hour streches"

        "I wish the servers I maintained didn't crash"
      However, if those people were fully rational, they'd understand that as soon as their wish comes true, they're out of a job. (An enlightened person will welcome the change as better for the world at large; a luddite would whine, scream, and throw boots in the gears)

      And anyway, IT admins are not the consumers of software. They're not the ones who drive the buyer-seller economy. The actual consumers are other people in the company- and from their perspective, the IT staff are an expense attached to buying the software.
    7. Re:Simple, yes, for other reasons by Anonymous Coward · · Score: 0

      The difference between, say, a car and a piece of software is that if there is something minor, it will tend to work itself in and be fine, or at the very worst it will work in spite of it, with only a squeak. It takes a problem in a major system (the engine, transmission or tyres, for example) to bring the whole thing to a halt. Anything else is but an annoyance

      Computers don't work this way. If any part of the program fails, it is often fatal and the program (or if the program happens to be the operating system, then the whole machine) must be restarted. Even if it doesn't actually crash the program (SIGSEGV), it will usually leave the program in an unusable state and the user must restart it anyways.

      It could be likened to a ball on a hill or valley. Mechanical systems are like a ball in the valley. Unless the ball is pushed enough for it to actually leave the valley, it will roll back to the centre. Software systems are like a ball on a hill. If they are pushed off centre, they roll all the way to the bottom.

      That's my view on things. I hope it's useful to someone

      - Michael Melanson

      73 33
      de VE3MTM

    8. Re:Simple, yes, for other reasons by CognitivelyDistorted · · Score: 1
      Software crashes because it's complex, yes, but that's just part of it. Jets are complex too. So is the Space Shuttle. Cruise ships. CARS are pretty complex. While all these things do suffer catastrophic failure from time to time, it is far from the norm. Defective cars get recalled. Space shuttles ALL get grounded at the mere possibility of defect.

      If your car shut down unexpectedly, it could kill you. It's perfectly sensible to put much more effort into debugging a car than debugging a PC.

      Also, the average car now has 50 computers. And they don't crash. Compared to the software on those computers, the rest of the car is buggy and unreliable!

    9. Re:Simple, yes, for other reasons by Igmuth · · Score: 1

      Except for the most part most software programs are not used is situations where fatalities can occur if things fail.

      If a 747 has a problem scores of people will quite possibly die.

      If some random office computer crashes... Ya well usually noone will die.

      The recalls and groundings happen becuase of the loss of life. Now wiether or not software should be held to a higher standard.....

    10. Re:Simple, yes, for other reasons by Anonymous Coward · · Score: 0
      CARS are pretty complex.

      Here in my car
      Where the image breaks down
      Will you visit me please
      If I open my door
      In CARS.

    11. Re:Simple, yes, for other reasons by Anonymous Coward · · Score: 0

      Also people are lazy and complain when they have to follow good software design mechanisms.
      For example I read that when microsoft developed C# they copied Java almost word for word except decided to leave out the throws clause of a method decleration. This was because they talked to developers who said that this was an annoying feature. Never mind that it makes exception handling almost impossible in C#.

    12. Re:Simple, yes, for other reasons by Zork+the+Almighty · · Score: 1

      Forget not reading the articles, I appearently don't even read the posts !

      --

      In Soviet America the banks rob you!
    13. Re:Simple, yes, for other reasons by hellswraith · · Score: 1

      I am an aircraft electrician, and I guarantee that they break quite often, you just don't hear about it. The thing is, most of the complex systems have been thoroughly designed to elliminate most faults, and in case there is a fault, there is a backup system or plan in place to take over the failed system.

      We also are constantly doing upgrades on them. They are not complete when they get out of the factory, we are constantly upgrading the systems, or performing modifications to an existing system because a fault was found after it came into service. Some problems will never happen till the aircraft is in use.

      The same applies to software. There are constant upgrades and fixes. Only when the software gets out of the labs and into service will some problems be found. Even the software on the aircraft have hiccups and have to be reloaded.

      Trust me, your illusion that aircraft are better than software is just that. Sure, since peoples lives are at risk, more time is taken to create an aircraft, but still will have its problems. I haven't seen one aircraft that didn't have a modification or a fix done on it that is older than 1 year. Even with all that, if Windows crashes, who cares, no one dies. If they do, then who ever put it in place needs to be sacraficed too.

    14. Re:Simple, yes, for other reasons by Surazal · · Score: 3, Informative

      You ought to work tech support some time. There are real costs associated with software bugs. These costs are measured. Many times these costs are measured more meticulously than software vendors would like to admit. There are more organizations than you might realize that purposely delay software deployments to make sure that they do not ruin their technology infrastructure. Often times, when I work with a senior admin within the organization, I find they are the "NO" people. "No", we will not apply that patch unless you prove to us it will fix the problem. "No", we will not apply that patch unless you prove it won't introduce new problems. And, in the case that there are unforeseen complications in a software upgrade, guess who gets the heat? Directly, it's the senior admins. Both directly and indirectly, it's the software vendor. Bad publicity == lost sales. Ask any sales person (technical or non-technical).

      Of course, I'm at the end of the equation where these costs are realized after the fact. Also, I think that since I come from the Unix world, I've seen more preference towards quality over quantity. Unix-oriented orgs are much more cautious than Windows-oriented orgs. I attribute this to lack of experience in that market, but the way things are going, experience is not in short supply. Bugs and security breaches are costing companies in real dollors nowadays, and commercial and gov't organizations are not ignorant of this fact, even at the high echelon levels.

      For proof, look at Microsoft. I certainly remember reading that they decided to go for a company-wide code freeze to resolve bugs and security issues. This code freeze lasted for SIX MONTHS. That's a HUGE risk for a software company. Also, there's that whole trillion dollor fine against the company thing, too, that's been circulating a bit lately. It also undermines any arguments based on "customers are lemmings that will buy anything we dangle in front of them". Maybe the fact that features outweighed stability was true during the dot-com boom. I think it's definitely less true now, by a significant degree.

      --
      --- Journals are boring; Go to my web page instead
    15. Re:Simple, yes, for other reasons by zachdms · · Score: 1

      If Q/A as stringent as this was applied to software, Microsoft - and in fact most of the software industry - would be out of business.

      Eh, not so much. That whole Watson Web Error Reporting tool lets 'em know what the big crashes are in real time and fix the issues as they become apparent. Real real easy to keep a lid on things, and one of the biggest reasons why Windows XP SP1 is so stable.

    16. Re:Simple, yes, for other reasons by geekoid · · Score: 1

      A window recal would be much cheaper then a automobile recall.
      You send them your disk, they send you a new one. Or they send out boxes of the corrected disk to stores, you drive down, do a swap. done.

      "Consumers, in the COTS context, don't mind "planned obsolescence" in their software"
      I disagree. I think people understood that computer would be only fast enough for current apps, and that new ones where needed to get the latest. However, that has changed, and consumer are relizing it. For MS to compete, it must make a better OS, however once that start getting so you dont need to reboot* consumer will not buy another system.This is why MS wants an annual liscensing, and it is why they intentionally break the software needed for the popular apps on older systems.
      I am running win98. IT is probably the last MS OS I will own for two reasons I can not agree to there EULA, and I can not afford a hundred bucks. Mostly the EULA.

      *most consumers I know shut there computer off at night, so as long as it can stay stable until then, it will have the perception of being stable to the consumer.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    17. Re:Simple, yes, for other reasons by kien · · Score: 1
      Can you imagine a Windows recall?

      Alas, no...but a geek can dream, right? ;)

      --K.
      --
      Sig: Bad people happen. Try to avoid being one of them.
    18. Re:Simple, yes, for other reasons by fucksl4shd0t · · Score: 1

      Software is incomprehensibly fragile -- any single thing can cause a crash, taking the whole system or application down. And even those critical parts of things like airplanes have multiple redundancies, something that's hard to build into software. You can do things like catching exceptions, but you typically can't recover as gracefully as if there was never a problem at all.

      I don't know how to tell you this, but airplanes and cars are also very bad analogies. When software has been in development for a hundred years, *then* you can compare it to another hundred-year industry.

      There's many reasons we don't use zeppelins anymore, and instead use airplanes. I'll give you a hint: stability was one of them.

      --
      Like what I said? You might like my music
    19. Re:Simple, yes, for other reasons by Anonymous Coward · · Score: 0


      There is software out there that does not fail. Mind-bendingly complex
      software of the sort that "drives mere mortals mad" to boot. It is tested
      and retested, through all possible situations - not just the "likely 80%"
      of them. It is proved correct, and then verified again.


      This is complete nonsense. 1) No software of significant size can be
      tested "through all possible situations" -- the number of relevant input
      and machine states required to test is astronomical, way beyond
      feasibility. 2) No software of significant size is "proved correct;" The
      state of the art in "formal methods" (the mathematical verification of
      software design and/or implementation) does not allow it.

      As for your mention of the 747 -- I worked on a DARPA project applying
      formal methods to some of the flight software for the 777 jet when it was
      still in the design stage. *None* of that software was "tested through
      all possible situations" or "proved correct" before being put into
      service.

      Try to know something about the subject before you shoot your mouth off.
      It makes you look less stupid.

    20. Re:Simple, yes, for other reasons by Minna+Kirai · · Score: 1

      You ought to work tech support some time. There are real costs associated with software bugs.

      Real but small. Having worked both support and development, I also know that there are real costs to fixing bugs- especially in a product that's already released.

      One entire day of downtime from Melissa was a very "real cost". It sure didn't hurt the market share of Microsoft's emailers in the corporate world though, which is why they were able to get another entire day of downtime one year later from Code Red.

      This code freeze lasted for SIX MONTHS. That's a HUGE risk for a software company

      That would've been a "HUGE risk", if it had happened. 1 It also undermines any arguments based on "customers are lemmings that will buy anything we dangle in front of them".

      That's a strawman. The actual argument is that "customers will accept many crashes in their software", and it has been empirically demonstrated by the large number of crashes still occuring in recent software. (Microsoft and Apple's desktops still crash frequently enough that it's no surprise. Redhat's does as well).

      It seems well accepted that Win2k was more stable than WinXP. That sure looks like a case of more features (to drive a big round of upgrades) outweighing stability.

      when I work with a senior admin within the organization, I find they are the "NO" people.

      Senior admins are a small minority of software customers.

    21. Re:Simple, yes, for other reasons by A55M0NKEY · · Score: 1

      Well space shuttle crashes seem to happen for at least 50% of all Space shuttles ever flown... That seems like the norm to me..

      --

      Eat at Joe's.

    22. Re:Simple, yes, for other reasons by jabber01 · · Score: 1

      The fact that you posted as AC not withstanding, I do know something about it.

      I've worked on software that manages and monitors nuclear plants. The risk of failure on that is at least an order of magnitude greater than the crash of a single jet. The critical systems were all treated as I described.

      Try to realize that some people out there know what they're talking about better than you do.
      It makes you look less stupid.

      --

      The REAL jabber has the user id: 13196
      What you do today will cost you a day of your life

    23. Re:Simple, yes, for other reasons by tjrw · · Score: 1

      You have hit the nail on the head.

      I would like to add, that the reason could be summed up as "because that is what the market rewards". As you point out, it's not that it's impossible to write "reliable" (for some definition of reliable) software, but as long as the marketplace (that's us BTW) continue to reward companies who rush out software that is not ready, and reward them for this behaviour, incidentally punishing the companies that try to do a better job, the results will be the same as we have today, i.e. largely flaky, unreliable, hard-to-support software, that, if we're lucky improves somewhat by the third release.

    24. Re:Simple, yes, for other reasons by cens0r · · Score: 1

      Your example is flawed. Do you see NASA installing a generic video card with drivers written by some unknown source on the space shuttle? Does American Airlines install the lastest games on the flight computer?

      If microsoft specified which hardware and which software you were allowed to run, and you could make no changes, it would probably be just as stable as a 747. Take your example of a car for instance. It's pretty stable. Now reprogram the ECU, add a turbo charger, change the tires and brakes, add some new headers. You think it's going to be as trouble free as it used to be?

      --
      Jack Valenti and Orrin Hatch will be first up against the wall when the revolution comes.
    25. Re:Simple, yes, for other reasons by Anonymous Coward · · Score: 0

      this has probably been pointed out somewhere, but I don't care :) Anyways...

      One of the interesting things about software that makes it different from cars and airplanes is in the nature of defects.

      To mass produce a car you must come up with a design of the car and then design and implement the manufacture process, and then go about with the manufacturing. A flaw in the design of the car or in the implementation of the manufacturing process or in the manufacturing itself can bring about problems/defects in the end product. There's alot that can go wrong in this complex system, yes. It's pretty amazing when you think about the low % of failures in cars (and I'm not that easily impressed... WOW A BLUE CAR!... er sorry I love that quote). But a defect in one car does NOT necessarily mean that the defect will occur and/or be exactly the same in another "copy" of the car. This is just the nature of manufacturing. We as humans haven't yet achieved the ability to control the configuration of every molecule within a new car so that it is completely failsafe... there's some randomness involved. This is both good and bad: it's good because a defect won't necessarily occur in every copy of a model of car, it's bad in that there's an unknown factor... the next time you step into the car you cannot be completely confident that something isn't going to fail.

      When producing a software product, EVERY DAMN COPY IS EXACTLY THE SAME! (yes, I'm ignoring defects that could happen when pressing the individual CDROMs/DVDs, but these defects should be caught by the redundancy put in the CD... in any case I'll assume it's not pertinent to my little story). A defect that occurs in one iteration of the product will necessarily occur in every other copy of the product. This makes the defects more visible to the end-user, and in the end you get bad press about how software sucks.

      This is just something that I don't think people tend to think about... I dunno, maybe I'm wrong.

      wheee

    26. Re:Simple, yes, for other reasons by sipy · · Score: 1

      I think there is a much clearer explanation to why software still crashes - there is no human element involved in the actual execution of the work that the software is doing.

      Jets, for example, have auto-pilot, yet a pilot will turn it off if they detect a problem. What software, after being installed to drive C: will - in the course of trying to create some alternate version of your work - detect that the C: drive is becoming full, and pop up a menu that says - "Hey! The default-configured drive is getting full. Which drive do you want to use, instead?"

      That kind of interface - the one that allows human interaction when a slight error is correctable - does not exist. This causes even a slight error to propagate its effects, grow in consequence, and ultimately lead to a complete crash.

      A hammer is no good without the power of a human brain to continuously compute a trajectory, and moderate the muscular control of same. I believe we should consider writing applications and operating environments wherein this human-brain-powered "intervention" is available, if not required. Until the software allows (or requires) such interaction, we will still have code that can not adapt to the simplest issue, and will crash beyond all measure.

      I dare you to fill up your C: drive when Windows is managing your virtual memory on "C:\pagefile.sys". Windows will go "boink"...!

      Perhaps programmers (myself included) are trying to "package" too much work - too much functionality, without involving the user. We assume (ass-u-me) that the user is relatively unsophisticated, and we do things "for them". Maybe we should stop being so condescending, and let them "have more say" while the work is being performed... even let them play around a bit?
      $.02.

    27. Re:Simple, yes, for other reasons by acarey · · Score: 1

      If microsoft specified which hardware and which software you were allowed to run...

      Which is exactly the way it is for Windows Data Center Server, and yes, it's solid as a rock (or, at least, a UNIX system :)

      --
      -- "I believe the human being and the fish can coexist peacefully." - George W. Bush, 29 September 2000
    28. Re:Simple, yes, for other reasons by feldsteins · · Score: 1

      People would rather have pretty features on a flaky system, than a solid system.

      This is not necessarily true

      It's absolutely true. "Most people you work with in the IT industry" do not in any way constitute a meaningful sample of the group "people who buy software." It is of this latter group which I speak when I say they are after the New Shiny Thing and do not care about stability one iota. The software industry has shown one thing very, very clearly: features sell the product. You can't market "stability" to consumers and consumers make up the majority of software buyers (as opposed to your IT professionals.)

      The truth of this is so self-evident, in fact, that I'm inclined to liken it to American politicians: People bitch about politicians - they're dishonest, stupid, crooked, whatever. We might be inclined to say that they are forced on an unhappy populace because there just aren't any better candiadates to be found. When the truth of the matter is simply this: if we truly wanted different politicians we would have them. We - get this - elect politicians. If we wanted ones that were honest we would elect them. If we wanted ones that spoke to us more intelligently than the average sound byte allowed, we would have them.

      And if we wanted stable software we would have it.

      --
      You like your Macintosh better than me, don't you Dave? Dave? Can you hear me Dave?
  104. Dijkstara's argument (sp?) by Cyranith · · Score: 1

    "if a program has n 'parts' and each part has "probability of correctness" c, then the probability that the while program whill work is c^n" so (am I reading this right) while a program may be large, once decomposed into its basic parts, you can show prob. of correctness of each part, thus allowing you to work out the correctness of the whole? And if you can decomposed each, can't you make each the probability of correctness 1? (completly correct?) Again, I'm arguing that its not possible in a realistic time frame.

  105. Don't single out Microsoft by callipygian-showsyst · · Score: 3, Interesting
    Of course, there's no need to mention Microsoft's inability to create a stable system
    My Windows XP box, which is my fileserver, has been up for 5 months so far.


    My OS X box, which I use for web browsing and word processing, crashes about once every three days.


    Now, I certainly have some bones to pick with Microsoft, but Apple is no better.

    1. Re:Don't single out Microsoft by Cheopys · · Score: 1

      Amen. Good luck getting anything but knee-jerks on this, though; MS-bashing in the Linux world is far more repellant than it needs to be. I'da turned penguin years sooner were it not for all the OS-war crap.

      --
      Want to be taken seriously? Then don't write like a sixth-grader.
    2. Re:Don't single out Microsoft by PhxBlue · · Score: 1

      My OS X box, which I use for web browsing and word processing, crashes about once every three days.

      If I had to guess, I'd say you either have faulty RAM in that Mac or else you have an extension conflict in there somewhere. Neither is Apple's fault, though. :)

      --
      !#@%*)anks for hanging up the phone, dear.
    3. Re:Don't single out Microsoft by EvilTwinSkippy · · Score: 1
      What was the IP address of that XP server that's been running on autopilot for 5 months again?

      Really, I find Web Browsing is my a#1 source of crashes. Even under Linux. Though by crash I mean the browser locks up, dies, and I restart if from my otherwise unperterbed desktop. The only time I really manage to kill a linux box is doing something hardware related using experimental software.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    4. Re:Don't single out Microsoft by tbmaddux · · Score: 1
      My Windows XP box, which is my fileserver, has been up for 5 months so far.
      Rendering you open to any vulnerabilities less than 5 months old. Patch your box!

      My uptime in MacOS X is the time between patches requiring reboots, which is usually the latest update to 10.2.x, although QuickTime 6.2 also required a reboot IIRC. I had some crashes back in 10.2.3 when my PowerBook would kernel panic at logout, but 10.2.4 fixed the issue. My iMac has never crashed (requiring a reboot and fsck -y), and only occasionally the UI has hung, requiring me to SSH in and kill the 'loginwindow' process.

      Of course, YMMV.

      --
      Can't you see that everyone is buying station wagons?
    5. Re:Don't single out Microsoft by Anonymous Coward · · Score: 0

      And then there is my OS X box, which has _never_ crashed. My linux box has _never_ crashed. I do some pretty fancy stuff w/ these machines, too.

    6. Re:Don't single out Microsoft by MasonMcD · · Score: 1

      Well, switch those OS tasks, and you'll see the opposite results. Or the same. Err. Or something. :)

    7. Re:Don't single out Microsoft by bishmasterb · · Score: 1

      My WinXP box has been rock solid for 6 months. It's up for weeks at a time, typically only rebooting after the occassional power outage (hmmm...maybe MS is causing the power outages...) Although I have to say, while it gets much less use, my OS X box has been rock solid as well. Windows and Mac OS have both come a long way in the past few years.

    8. Re:Don't single out Microsoft by Anonymous Coward · · Score: 0

      OS X allocates memory for each separate program including allocation for the operating system. This Free BSD coding does not allow you to use memory you shoulden't be using, as mentioned in an earlier post. The system is almost perfect. I only ask for spring loaded folders in the dock, acces to files by typing the first letter (very disapointing) and a few minor bug fixes. But well see if apple fixes these with the new Panthor relese next month.

    9. Re:Don't single out Microsoft by cooldev · · Score: 1

      It's fair to say that Win2k/XP, Linux, and probably OSX are all in the same class of reliability these days... to the point that it would be very difficult to say which one is more stable without significant research.

      Denying this with anecdotal stories or memories of Win9x is futile, and Linux folks who continue to try to play the reliability card will lose credibility.

      If any of these systems crash more than once every few months you either:
      1) Have a faulty driver (yeah, you may think it's a cop out, but 3rd party drivers unfortunately have far less quality control than the Windows/BSD/Linux kernel. Video drivers are especially problematic.)
      2) Have faulty hardware (including I/O issues)
      3) Have discovered a really serious kernel bug

      In that order, and it's probably not #3.

    10. Re:Don't single out Microsoft by edmo · · Score: 1

      My OS X box, which I use for web browsing and word processing, crashes about once every three days.

      The first things I thought of reading you post is that you ether have bad hardware, or are lying. After thinking about it for a second thow I came up w/ a few other possibilities;
      a)you are trying to crash it(It's a real challenge, assuming you limit yourself to the GUI)
      b)You might still be running OS X 10.0.x, which was so buggy that it should have been called a beta, but they wanted to release it at macworld...Just upgrade to 10.2.x, problem solved
      or, c)You are using some massively buggy software, and don't know how to force quit when the application freezes, so think the OS has crashed when all it needs is a quick command-option-esc

      --
      Don't save your orgasms for Heaven; Heaven knows we need them here.
    11. Re:Don't single out Microsoft by Cantus · · Score: 1
      Ugh, mod parent down please. This is obviously a flamer.

      OS X RARELY crashes. These crashes --kernel panics or system-wide freezes-- can indeed occur, but rarely do.

      The system is incredibly resistant to abuse.

      I've had only one kernel panic with the Jaguar version (faulty 3rd party installer) and 2 or 3 system-wide freezes since I installed it September last year.

    12. Re:Don't single out Microsoft by callipygian-showsyst · · Score: 1
      No,I'm not a flamer. I'm a big fan of Apple, and use an OS-X machine for most "desktop" tasks.

      But these Zealot Apple users do nothing to advance Apple's cause. If I report my experience (and frankly, I don't think having to reboot a couple of times a week is so bad), you call me a liar!

      If you really want people to use Macintosh hardware and software, you may try by being nicer to them! Being a clique-ish cult is a bad start.

    13. Re:Don't single out Microsoft by Anonymous Coward · · Score: 0

      Neither is Apple's fault, though. :)

      Except that it is Apple that sells the software AND hardware. But, of course, who said the parent hadn't modified the computer?

    14. Re:Don't single out Microsoft by Anonymous Coward · · Score: 0

      echo "some string" > /proc/kmem should do it.

    15. Re:Don't single out Microsoft by lowmagnet · · Score: 1

      And I'd say you are potentially right on the RAM, and talking out your ass on the second point. OS X doesn't have extensions, nor will a conflict in classic disable OS X or crash it.

      --
      Heute die Welt, morgen das Sonnensystem!
    16. Re:Don't single out Microsoft by fanatic · · Score: 1

      Denying this with anecdotal stories or memories of Win9x is futile,

      This is mostly true, especially the win9x part, at least as far as corporate world is concerned. (Any business that uses win9x just isn't serious about their data.) However, I work in a shop that still uses WinNT 4.0 and Linux is still noticeably better than that for reliability.

      --
      "that's not encryption - it's a new perl script that I'm working on..." - from some Matrix parody
    17. Re:Don't single out Microsoft by nenolod · · Score: 1

      Not to mention Linux, which has a worse implementation of POSIX.1 threading than Windows (get into thousands of threads and kernel goes boom).

      UnixWare, which is a joke that isnt much more stable than Linux when it comes to threads.

      Solaris, which can easily crash and choke up on threading applications.

      QNX, which has really shitty thread support, etc etc etc.

      Anyhow... let's look at some uptimes.
      trogdor.nenolod.net (Windows 98SE, I do not use this box) -- 308 days.

      matrix.nenolod.net (Linux, slight usage):
      12:46:38 up 17 days, 13:31, 2 users, load average: 0.00, 0.01, 0.03

      Therefore, operating systems do SUCK, but... as long as you use them within their capacities, they will run fine. It is only until you surpass their capacity that they will fail. If you don't surpass their capacity, and it still crashes, it is a HARDWARE ISSUE.

      You can really only find the capacity of a given system on a given box through experience.

  106. Feature Bloat by Captain+Beefheart · · Score: 1

    Right off the bat, my first response is "feature bloat." Might not be the most accurate response, but I'm a knee-jerk reactionary anyway, so gut feelings are uber. Anyway, take a word processor, for example. Not much going on there, when it gets right down to it. Besides the actual processing code, there's the thesaurus, grammer and spell checker--and an absolute avalance of features. It got this way because it's new features that get people to upgrade (and the occasional semi-FUD about how even a word processor might have potentially fatal security exploits that can only be fixed by--surprise--paying full price for the next version). So, in short, feature bloat means cramming new code on top of old, which creates a lot of problems. Second: Feature evolution. First-gen hardware has its share of failures and serious glitches. From the GeForceFX 5800 Ultra Wind Tunnel of Doom on down to early hard drive cables. As a new feature is introduced, problems will crop up as the product is distributed into computers containing a wide and wild variety of parts. Conflicts are bound to emerge, because no PC product can approach the streamlined QA you'll find with, say, a console game or an SGI box. Third: Feature creation. Creating software isn't just a matter of honing previous code. Every time you add new code, you create potential problems and conflicts.

  107. Microsoft by Anonymous Coward · · Score: 0

    I find Windows XP to be quite stable, I find in the year or so that I have been using it I havn't had a non hardware related system crash. Overall I would say my XP system is quite the example of stability.

  108. Software will crash as long as there are deadlines by marko123 · · Score: 1

    Any coder here will know that weird little feeling inside when a shortcut has to be made to make deadline. A comment in the code, or a note in the documentation to come back to it later. You know the assumptions you made. You can hope the situation won't come up, but you know that it will.

    --
    http://pcblues.com - Digits and Wood
  109. Need to keep costs low by anoopiyer · · Score: 2, Insightful
    Is the need for speed preventing the use of reliable software design techniques?

    No it's the need to keep costs low and time to market pressures that is preventing the use of reliable software design techniques.

    If all vendors had a large number of programmers and could select their own timeframe for releases, code would perhaps get more reliable.

    But on the other hand, Microsoft does have a large number of programmers, and they pretty much decide their own release schedules. So the above obviously doesn't hold for Microsoft. I guess that's because all their releases add new features, which introduce bugs...

    That's true for other vendors and other platforms too, isn't it? If all feature enhancements to say RedHat or SuSE Linux were stopped overnight and all future releases were only bug fixes, then said distro would be 100 percent bug-free at some hypothetical point in the future. But they have to add features to compete and evolve, and alas, said distro will never be bug-free.

    The low barriers to software updates also make software a less rigorous practice than hardware design. In hardware design, it takes millions of dollars to tape out a new rev of a chip to fix a bug; not to mention all the bad publicity the vendor gets (Intel fdiv bug, anyone?). Hence rigor in design and validation is much higher for hardware when compared to software.

    1. Re:Need to keep costs low by Anonymous Coward · · Score: 0

      Actually, when that guy talked about the need for speed, he WAS talking about time to market, not program execution speed. So shove your idiot speech where the sun don't shine, moron.

    2. Re:Need to keep costs low by Minna+Kirai · · Score: 1

      The low barriers to software updates also make software a less rigorous practice than hardware design.

      Which is why hardware manufacturers have tried to adopt some of the update advantages of software. Intel learned from their fdiv bug and gave their new chips an ability to be patched in software. The CPU can be loaded with a list of instructions+operands known to be dangerous, along with an alternative series of instructions that can be executed in its place. (actually, this change was in the works before fdiv arose).

  110. Re:because someone was very curious and decided to by EvilTwinSkippy · · Score: 1
    You have attained the stillness of mind that Bhuddists seek.

    In the process you have also probably generated a segmentation fault. Hmmm. Nirvana in a core dump...

    Of course it the application is the inittab it is still subject to the endless cycle of crash an restart.

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
  111. What would we have to do? by crashnbur · · Score: 1
    If we were to make computer crashes a thing of the past, what would we have to do, both in our software and in our operating systems, to make this come to pass?
    Sacrifice all sense of value and general utility. Innovation is not possible with imperfection. Mistakes are required, or there would be no room for improvement. That said, it would be nice if the only improvements were innovations, rather than fixes...
    1. Re:What would we have to do? by crashnbur · · Score: 1

      Of course, I meant... "Innovation is not possible without imperfection." Whoops.

  112. don't rush things. by hatrisc · · Score: 1

    mistakes are made when people rush and don't think things through correctly. this is a problem with microsoft, and most other companies, who are trying to be the first to get their products out before other companies. in the case of microsoft, they have next to no competition for windows compatibility (right now) and can rush as they see fit. "getting products out quickly makes the users happy they think. and it puts more money in my pockets" --Bill Gates (thought, not a quote)

    --
    I write code.
  113. hhhahahahhahahhaah by Anonymous Coward · · Score: 0

    "Programming" some "web pages."

    1. Re:hhhahahahhahahhaah by Anonymous Coward · · Score: 0

      He's writing a Lisp CGI application which serves up HTML, you insensitive clod!

  114. buggy software reflects buggy minds by Cheopys · · Score: 1

    Anyone with a little rigor can write software that performs as expected and only crashes on hardware anomalies. It's just discipline and structure. I've been developing 15 years and I would say that in that time I've worked with less than a half-dozen developers who understood what they were doing, people who could tell you *why* to write a certain way, the advantages and disadvantages. The others just go through the motions and justify stupid habits like mid-function returns with lame excuses like "I've always done it this way."

    --
    Want to be taken seriously? Then don't write like a sixth-grader.
  115. Question by statusbar · · Score: 0

    As asked by a taxi driver who has never seen snow before: "Do want to get to the airport FAST or SAFE?"

    --jeff++

    --
    ipv6 is my vpn
  116. Software is a young industry by AmVidia+HQ · · Score: 3, Insightful

    I'll paraphrase a comment that was said before, don't remember where i read it:

    "We've been building bridges for thousands of years, but only started writing software for a few decades."

    To combat increasing bugs in increasingly complex software, we need better tools. From the low level (more reliable memory handling) to the high level (more abstraction to reduce human programming errors) in software languages and compilers.

    You can't expect to build the Golden Gate with shovels, without expecting it to fall apart do you? (no, i'm not a terrorist)

    --
    VIVA1023.com | Political Fashion.
  117. STFP by rice_burners_suck · · Score: 5, Insightful

    Software crashes because: Software is an immature field. Good software takes time. Software is unobvious to business managers who want the job done yesterday.

    Businessmen generally do not understand the internal workings of software. They are in a "big-picture" sort of world where software is but one pesky detail that will be taken care of. A computer crash that causes so many thousands of dollars in damages is no different than a truck crash. There is simply a risk to every element of business. If the risk is relatively low, the big shots don't care about it. Grocery stores in earthquake prone areas continue to place glass jars on the edges of shelves. Sure, there will be an earthquake one day, but it's a calculated part of business risk, and the risk is relatively low (the Earth doesn't shake every five minutes).

    Software bugs are a similar risk. It needs to look like it works. It needs to crash (and lose data) infrequently enough that the software will still sell. The business is not concerned with stamping out software bugs. It is concerned with releasing the software and making money. If the need arises, the business will improve the software and make more money. More often than not, this means adding features and shiny graphics. Fixing bugs is not very important to companies because customers do not pay for bug fixes. By the consumer, bugs are viewed as defects and their fixes should be free. By the company, bugs are viewed as a minor risk and fixing them would cost too much to justify. So you'll reboot once in a while or lose an hour's work once in a while. If it fries your hard disk, well, you should have backed up your data.

    Software is also one of the newest fields of human endeavor. Buildings have been built, ships have sailed and farms were farmed, all for thousands of years. No matter how much progress happens in these fields now, they have come so close to "perfection" that continued improvement serves to lower cost, improve safety and increase convenience. It's not a matter of, "Gee, how can we make buildings that actually stand without falling down three times a week?" It's just a matter of, "How wide, how deep, how tall and what color glass do you want on the outside?" You pay X dollars, wait Y months and voila, there is a building. But programming has been around for how long, 50 years? It's an increasingly important but very immature field.

    Buildings, bridges, ships... they're obvious. Everyone knows that if enough lifeboats aren't put on an unsinkable ship, it'll sink on purpose, just to piss you off. Everyone knows that if a 100 story building is going to stand, it has to take 10 years to build it. Everyone knows that a dam has to be pretty damn strong or it'll break and flood half the countryside. The building, shipyard and dam businesses aren't progressing at light speed. It is easy to justify 10 years for an outrageous building design because people KNOW what is involved. But software... Now that's totally unobvious. Software is an idea. It's abstract. It's a bunch of curse words that look like gobbledygook to the uninitiated. A bunch of "noise" characters on a broken terminal. Something done by a bunch of skinny, pimply faced geeks who got beat up in high school, took the ugly girl to prom and didn't have any friends. Why should a manager bother to care that fst_jejcl_reduce() causes a possible NULL pointer in the outer loop if case 32 is activated, which happens if the previous re-sort encountered two items with similar Amount fields, all of which will take a whole day to find and fix and will only happen, say, 2% of the times this particular feature is invoked by the user, which isn't that often? Why should anybody justify spending 2 years to develop some bulletproof program that can be banged out in 3 months, with bugs? What's the problem? Constructor workers are risking their lives, moving heavy things, sweating all day in the hot sun... While geeks are sitting in offices just punching crap on a keyboard. How difficult could it possibly be? To

    1. Re:STFP by Coz · · Score: 1

      AMEN, Brother! Preach On!

      How else to explain ever-shirnking deadlines, complete lack of willingness to slip by managers, and complete inability to create viable and realistic estimates by developers? It's not a science yet, any more than alchemy was - we're still in that indistinct area between engineering and art, where experimentation and failure spell progress.

      The hell of it is, since there's usually no "right" way to do "it" that everyone can agree on, because you can do things so many different ways in software, that we're prevented from developing the disciplines that turned alchemy into chemistry, philosophy into biology, chemistry, physics, and anthropology... just because it's so easy to "make it work" with crap.

      --
      I love vegetarians - some of my favorite foods are vegetarians.
  118. ssshhhhhh, don't tell them by MonopolyNews · · Score: 1

    say "cosmic rays" or "quantum anomolies".

    --

    Slashdot Journal on Monopoly News
  119. Re:C and C++ are NOT the problem, people are. by Tekman3 · · Score: 1

    While it is true that there are languages that don't allow you to directly access memory, banning those can do wouldn't of much help really. Like most problems, computer crashes are usually because of human error. Hardware based crashed are caused by someone involved with the original design, manufacture or assembly of the hardware. Software based crashes are the most common and are caused by sloppy programming or incomplete desing/testing phases. The language you use can affect the amount of freedom the programmer has but if the programmer is good and is given adequate time to throughly test and debug then it really shouldn't matter that much. There's the rub. Management usually wants software produced within a specific time frame because time is money. Not every programmer is at the top of their game. Most are average programmer's at best. It's just another typical case of asking too much for too little.

  120. Re:My experience with crashing servers by Anonymous Coward · · Score: 0

    Slashbot, fuck off.

  121. According to complexity theory... by zrm8y5m02 · · Score: 2, Interesting

    instability is inevitable for fast evolution. A stable system means its not evolving fast enough, or evolution is slow.

    Many softwares have been evolving so fast that there's been no time to perfect the existing features before adding new ones. At some point in the lifetime of indivisual software, it reaches a point where it's somewhat "stable" in the sense that no more major features are needed. For example, TeX reached its relative maturity during 80s and IIRC, there's no known bug at this point.

    If all softwares are given enough time, they will all reach that kind of maturity. The problem is not all of them can survive that long - usually they become obsolete before they become stable...

  122. Obligatory OpenZaurus plug by noda132 · · Score: 2, Interesting

    Use OpenZaurus and while crashes still appear (I assume 3.2 will eventually, though I haven't had a full crash since it first came out), crashes will not lose all your data, since it's written to flash.

    Also, my Linux box hasn't crashed this year, and I can't recall any crashes last ye-- no, wait, there was one slew, but it was an icky driver which I got rid of. I'd say a pretty good track record for a system built almost entirely from CVS.

    Can't remember any crashes this year or last on any other Linux boxes I manage that I can think of (8 boxes off the top of my head).

  123. Turing showed this by martin-boundary · · Score: 4, Interesting
    A crashed computer is a computer that's stopped. Alan Turing proved in 1936 that the halting problem is unsolvable. So, it's impossible to know when and how a computer is going to crash or not under all possible circumstances (inputs).

    Accept it. It's a fact of nature.

  124. m$ by Anonymous Coward · · Score: 0

    what about microsoft causing crashes? i knoew everyone else here hates them, but i cant remember the last time my windows 2000 machine crashed... i dont know that it ever has o_0 ... all you have to do is keep track of what programs crash your computer and never run them again or figure out why they crashed...
    the problem is most people just dont know what they are doing or dont care...

  125. Features by Anonymous Coward · · Score: 0

    Software and hardware companies are always trying to make their systems do something that the previous version could not do. In Windows XP versus Windows 2000 for example, Microsoft adds hundreds of features (many have to do with multimedia) to try and convince the end user to sell their product. A majority of home users know that computers are not perfect but want those bells and whistles that they didn't have before.

  126. Hmm.... by ChilyWily · · Score: 1

    what would we have to do, both in our software and in our operating systems, to make this come to pass?

    Reboot one more time for the change(s) to take effect?
  127. Due process removes bugs. by Anonymous Coward · · Score: 0

    Removing bugs from software is like removing bugs from anything else - the effort expended gives you diminishing returns. 100% effort removes 50% of the bugs, 200% will remove 75%, and so on.

    Cars still break down. They are generally a lot more reliable than they used to be, but new models still tend to have problems. It's the same with software. The more mature software breaks down a lot less often per clock cycle than it used to. Newer software is more likely to have bugs in it - probably the same number as in the old days. It's just that the number of clocks per second has exploded and the code is being run many many times more than before.

    Order is approximate, but more bugs should be found at the start of this list, less towards the end - becoming more and more subtle to track down:

    (1) Programmer taking due care.
    (2) Programmer being given adequate time.
    (3) Programmer experience.
    (4) Stepping through all code paths.
    (5) Paired (or "extreme") programming.
    (6) Group code reviews.
    (7) Ample QA testing & bug fixing in a feedback loop.
    (8) Public beta tester bug reports.
    (9) End-user bug reports.

    Not all software developers are that rigorous, although a few are more strict. Until some basic standards are applied to all software, the proportion of bugs in software will be reduced.

    1. Re:Due process removes bugs. by Cheopys · · Score: 1

      You left out the important one: (0) design before coding

      --
      Want to be taken seriously? Then don't write like a sixth-grader.
  128. Re:We've got a lot of techniques in the gaming wor by Anonymous Coward · · Score: 0

    I do believe this is a well-known troll. Mod accordingly.

  129. crashes by Veteran · · Score: 1

    Software is unstable because it is designed with the wrong things in mind.

    If you are doing some plumbing and what you think you are doing is running water from point A to point B you are in deep trouble. What you are actually doing is keeping water out of the rest of the room.

    A computer doesn't need our code to run; it will happily execute what ever random garbage is on its data lines. What you are actually doing when you program is controlling all the things you don't want the computer to do. Until we realize that by far the most important thing in software is preventing code leakage software will continue to be an unstable mess.

  130. all systems crash, not just MS by dirk · · Score: 4, Interesting

    When can we finally give up the FUD of "MS crashes all the time"? Anyone who has used a later MS OS (Win2k or XP) can easily see they crash very rarely. I have had my Redhat install have more problems than my Windows install in the past 6 months, and on the MS system most of the problems have been 3rd party software while on the Linux most of the problems have been the OS itself. The reason systems crash is that there are many pieces, written by many different people, interacting with each other. This is the same whether the OS is Linux of Windows. The harping on the instability of Windows does nothing but hurt the Linux cause, since anyone who actually uses a newer version of Windows knows that the person has no basis in reality.

    --

    "Information wants to be expensive" - Stewart Brand, the same guy who said "Information wants to be free"
    1. Re:all systems crash, not just MS by Cheopys · · Score: 1

      And if you deactivate the crippleware anti-virus software that almost always comes pre-installed on Wintel boxes, you'll have a very stable Windows environment, at least under W2K. I won't speak of XP because I don't like it, but W2K was extremely stable and I've had it running for months between boots. I think most of Windows' reputation for instability comes from that damned anti-virus software.

      --
      Want to be taken seriously? Then don't write like a sixth-grader.
    2. Re:all systems crash, not just MS by 1seconddelay · · Score: 1

      so what? Microsoft is more stable now than before. Can i please its source code to verify no system V unix was incorporated? Thing is systems crash cause we aint happy with things they way they are. We like to make the computing experiance "interesting".

    3. Re:all systems crash, not just MS by burns210 · · Score: 1

      3rd party software is to blame for windows. but the system is to blame on linux? isn't linux, in essence, just a collection of 3rd party software?

    4. Re:all systems crash, not just MS by codepunk · · Score: 1

      Oh stop the bullshit, the MS stuff still crashes all the time. I have a xp box at work that crashes every three days. Now ask me what I have running on it? Not a damn thing just plain ole xp loaded from legal purchased disk. We have daily W2K crashes at work as well. How about MS ethernet drivers just going brain dead and working intermittently. The list goes on.............

      --


      Got Code?
    5. Re:all systems crash, not just MS by Anonymous Coward · · Score: 0

      80% of stability problems in Windows are driver problems, 10% are hardware problems. The rest are applications.

      A crash in NDIS.SYS is a network driver problem. I know this because I had it a while back. Running BitTorrent for 5 minutes caused it to bluescreen. Every time. Replacing my Linksys network card with an Intel network card made the problem go away. I know it was a driver problem because my FreeBSD box next my Windows box (with an identical Linksys card in it) could run BitTorrent just fine.

      Kodak digital camera drivers are buggy as shit - frequently when I plug my camera in Windows disappears - and then my computer's rebooting.

      XP is flakey, but more stable if you turn off all that flashy shit that's on by default. I expect it will improve with the next service pack, but I wouldn't use it in a production environment yet.

      Win2k, latest service pack on good hardware - is SOLID and (begrudgingly) is my current OS of choice. It only goes away when I ask it to.

      Running XFree and KDE under FreeBSD, I frequently get odd crashes / locks up / strange windows that won't go away. I love it to death, but it's given me *far* more grief than Windows 2k has lately. Plus dual monitor support doesn't work in FreeBSD 4.8, something I've not yet struggled to work around.

    6. Re:all systems crash, not just MS by Da+VinMan · · Score: 1

      Oh stop the bullshit, the MS stuff still crashes all the time. I have a xp box at work that crashes every three days.

      Well, it must be the case that it senses your anti-MS 'tude, and craps out on you just to get under your skin.

      Or perhaps you installed crappy drivers/software.

      Or perhaps you have crappy hardware.

      Or.. whatever.

      I don't care. The point is that the vast majority of people out there are far happier than they've ever been with Windows. FUD and anecdotal evidence won't change that. The fact that it doesn't work for you isn't proof of anything.

      BTW - If you love Linux so much, don't use Windows. In fact, I think you should refuse.

      When the crap hits the fan, maybe you could just do the Killerbotics thing full time and forget about IT. Given all the time you're spending on your hobbies, you can't actually know what you're doing with Windows.

      --
      Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
    7. Re:all systems crash, not just MS by sstory · · Score: 1

      I have several Win2k installations and they run with great stability. Crashes are nonexistent. I have good hardware (Dell) and good software (Mathematica 4, Visual C++), and perhaps crappier hardware or software would make it less stable.

    8. Re:all systems crash, not just MS by Anime_Fan · · Score: 1

      Actually, I used Windows XP, and started having the strangest crashes... My uptime was down to ~5 minutes, or less...

      Fed up with Microsoft, I decided to try out Linux... Tried Mandrake and Gentoo... Sure, they did have a better uptime, but only barely...
      It turns out I had a span of 500kB with faulty RAM back on the 1326th MiB (302nd MiB of the third stick of memory)... Removed it, and whoops... Unlimited uptime with WinXP, and yet I use it as fileserver and play crappy D3D games at the same time...

      The thing that ruins my uptime is on my proper system with high-classed hardware: Security Fixes... That's what kills MS uptime today...

      Linux is just as solid... Only problem for me is... No Photoshop, no games, dependency hell, no mIRC (yes I know there are other IRC clients out there, but mIRC is, well... I'm used to it, ok?).

      So while system stability might be an issue for some, I belive it is very often the case of old hardware or software (I mean, who could depend on Win98 today... It's like saying: "Todays software isn't all that great, just look at how often my Linux 0.95 crashes.")... Hardware is created to be upgraded, just as software is... Some bugs here, performance there... Just look at Itanium CPUs...

    9. Re:all systems crash, not just MS by caffeinex36 · · Score: 1

      Screw all of you with the MS vs. Linux wars@!@! hehehe...

      I found a novell server on my network (about 15k+ servers) that has been up for a few years. Amazingly enough, it was an AOpen dual pentium too! We just crowded around it...and...well pulled the plug. As far as we tested..it was running just fine.

      I have seen a few cases where an OS/2 warp machine was running for about 3 years without a hitch too.

      Rob

    10. Re:all systems crash, not just MS by shish · · Score: 2, Funny

      It's windows, not even the bugs work properly...

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    11. Re:all systems crash, not just MS by The+Spoonman · · Score: 1

      "Given all the time you're spending on your hobbies, you can't actually know what you're doing with Windows."

      A-FUCKING-MEN! When I meet a Linux person who tells me time and time again that Windows crashes all the time, I have to wonder what is wrong with them. And you've summed it up in a nutshell. They spend so much of their time playing in Linux, and complaining that Windows doesn't work, that they don't bother to learn how to fix problems.

      *WHINE* "But, you CAN'T fix problems on Windows, you don't have the source!"

      Sure you fucking can, I do it all the time. I'll give you a clue. That bluescreen that you always joke is just a message to reboot your computer? That's an error message. Learn how to read the fucking thing, it tells you exactly what's wrong. If your XP machine crashes every three days, there's something wrong with you, not Windows. Everyone else is having no problems.

      --
      Which is more painful? Going to work or gouging your eye out with a spoon? Find out!
      http://www.workorspoon.com
  131. Destined to crash? by scherrey · · Score: 1

    Computers are deterministic systems in a non-deterministic world. This makes only simple, well-understood problems approachable by computers in a 100% reliable manner. As complexity goes up linearly, the level of effort increases exponentially. This will always be the case until something revolutionary changes. Give it another 30 years.

  132. Re:Switch to vector strings and not null-terminate by Anonymous Coward · · Score: 0

    % cat strcrash.c
    #include

    int main()
    {
    char *str = "fucking slashbot";
    strlen[strlen(str)] = 0;
    return 0;
    }
    %export PS1=%#
    %export PS1="%# "
    % cat strcrash.c
    #include

    int main()
    {
    char *str = "fucking slashbot";
    strlen[strlen(str)] = 0;
    return 0;
    }
    % make strcrash
    gcc strcrash.c -o strcrash
    strcrash.c: In function `main':
    strcrash.c:6: subscripted value is neither array nor pointer
    make: *** [strcrash] Error 1
    %

  133. Why do computers crash? Because we let them. by dschuetz · · Score: 3, Insightful

    Face it -- if our cars broke down as frequently as Windows (or Linux or whatever), we'd be suing the auto industry out of business.

    If our VCRs ate every tenth tape and only played tapes from the same manufacturer as the VCR with any quality, they'd all be returned to Circuit City.

    But for software, we grit our teeth and say, well, I just don't understand computers, and reach for the power switch.

    Until we, as consumers, start fighting for software that works without crashing, we'll continue to get the lowest possible quality -- just as we have for years. Once the customer starts demanding a quality product, the quality (and whatever software development practices, languages, testing procedures, etc., are needed) will follow.

    Bottom line -- there's no real incentive. Microsoft makes billions with buggy software, the increase in profit for selling non-buggy software is pretty small.

  134. Go for time-to-market; make 'em wait for bugfixes. by kriegsman · · Score: 1

    The software/system -buying public has been conditioned that the proper response to buggy software is to wait for and often pay for a new 'upgraded' version.

    Speaking as something of a software/Internet industry veterann, given the habits that we've instilled in our customers, it's no surprise that we now feel it's apporpriate to focus on time-to-market as the most important criteria for new software.

    -Mark

  135. Time is Money. by Rimbo · · Score: 5, Interesting

    I think this is basically the right answer.

    A couple of months ago, the company I worked for spent a lot of time and effort developing a robust testing methodology. We had a software product that through blood sweat and tears would not crash unless you basically blasted the hardware in some way.

    But that led to two problems. First, we only had so many people working, and resources spent testing and bugfixing were not being used to add new features. Second, the time it took to get it that robust delayed the product's release beyond the point where we could recover the investment. [Time developing] * [Cost of operating] was greater than [expected number of units sold] * [price per unit].

    What ended up happening was that we lacked the features to justify the price and number of units we needed to sell to cover the cost of developing it. We had no bugs -- and we could be certain of it -- that would crash the machine.

    As of last month, the company could no longer afford to pay me. I'm not there any more.

    The moral of the story is that trying to make a bug-free product will bankrupt your company, especially a startup. Software tools have improved, but the benefit largely goes towards adding new whiz-bang features that sell the product for more money, not to being able to fix more bugs.

    What we should do as engineers and managers of software products is to not be afraid of getting the product out the door with a few bugs in it if we want our company to do well; this business reality is ultimately why bugs will a big part of software for the forseeable future.

    1. Re:Time is Money. by geekoid · · Score: 1

      you had bad managment that didn't put the cost of this level of testing into account when they created the business.
      Using basic accoiunting, they could have derived all the numbers, then determin if it was cost effective.

      As an aside, I know someone this same thing happened to, only she did whatever it took, including no pay' to stay on board, and just befor they turned that lights out, she got them to give her the code.
      She now sells it to some clients for a nice sum, since all the work was done and she didn
      t have the overhead of an office and employees.

      Ikmagine only workd 2 days a week, and still packing in upper 6 figures(nearly 7). Now if I can only convince her to let me do the work for a 20% cut, she could see the world.
      hey, I can dram, rights?

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  136. TexOS by waldoj · · Score: 2, Informative

    I've got the solution: the TeXOS(tm)!

    Slogan: Crash-free -- Donald Knuth guarantees it!

    -Waldo Jaquith

  137. A Contributing Factor & Principles by Jerk+City+Troll · · Score: 3, Informative

    I develop software at a small shop for a living. We're scraping by; money is extremely tight. As a result, anything we code is coded as quickly as possible. The boss always says "we need this done fast and we need it done right." This sentence is almost always followed up with statements like "don't build it for the ages" or any number of quotes that indicate he doesn't care how, just get it finished as soon as possible.

    Welcome to the sorry state of affairs in the software industry today. Developers are too rushed (or don't care themselves) to come up with good designs and write solid implementations. Weaker coders are rewarded for their speed while stronger coders are degraded for software built to last.

    Good engineering principles must be applied if software is to not: crash all the time, contain more than a fair share of bugs, contain security vulnerabilities, and not corrupt data. These engineering principles are complicated in practice, but not so numerous. I cannot be exhaustive here, but I am trying to convey a general idea.

    - Build tiny, atomic pieces and make sure they work. It amazes me how my peers always come up with blanket solutions to problems. These solutions are remarkably complex and may work for most of the data, but not all of the data. Remember tiny pieces! The immediate question is how to make sure these pieces work. It's more than just testing here. You cannot just evalute a small number of pre and post conditions and assume something works. Prove mathematically that for all possible inputs/pre-states you receive correct outputs/post-states. Remember your discrete math class? Remember doing proofs? Apply it! Computers are fundamentally number crunchers and your input/output are fundamentally numbers and can be represented symbolically and in finite terms. Certainly cases exist where this principle cannot be employed, but those are rare. People working in the encryption field should understand this principle very well.

    - Have clearly defined specifications for the software to be written. Strive to work out any questions or ambiguities in the specification before even embarking on the design process. If the specification is unclear or ambiguous, it is simply a matter of time before programmers do the wrong thing or begin to make incorrect or unreasonable assumptions. Another important note on this principle is the partitioning of specifications where appropriate. Do not let specifications for user interface mingle with those for the back-end. While they may be closely related, try to follow the Model Control View (MCV or MVC... it varies). This must be adhered to at the earliest stages of the specification, all the way up to the actual pounding of keyboards.

    - Conduct frequent peer review! This is one of the strongest points of open source software development. I argue that it does not occur frequently in the commercial world because everyone is afraid of their peers negatively reviewing their code, placing their jobs at risk. Sadly, this only results in a suboptimal product. The more other people look at your code, the more likely your mistakes (and they do exist) are likely to be found. It's a shame work place environments are not geared to eliminate fear of failure, otherwise I think most software would be a lot better today if people were eager to do reviews.

    Once again, this isn't entirely complete, but I think the point is clear. This was written on the fly and mostly off the top of my head, but I think I've got it right. In general, a lot of common sense needs to be applied. For example, if your input is for all intents and purposes random (it's coming from the user) then do extensive checking on it! If you want to encounter unexpected values in your data structures, make sure you hide as much as possible from the rest of the code. It amazes me how little the most basic computer science principles are followed in most software development projects. This is one of the biggest reasons software is so unstable.

  138. Complexity, standards, peer review, sanity. by twitter · · Score: 3, Insightful
    this was the exclusive realm of the highly trained engineer, not some wannabe type that pervades the current service market.

    Let's hear it for the "wannabes". I'm not a highly trained engineer by a long shot, but I've got computers that don't go down except for power outages. Then they come right back up. As ERS is so fond of pointing out, complexity kills traditional software. Cosed source can't keep up.

    Free software has the answer. Debian has 8,710 packages available to do anything a comercial comercial software does, mostly better. Not just one or two pieces of it, every piece. My systems never crash under their stable release and I run all sorts of services. How is this? It's easy. Free code get's used, fixed, improved and reviewed all the time. The pace of improvement is astounding. I could go on and on about things free software does that common comercial code does not. Code that never sees the light of day is dead.

    --

    Friends don't help friends install M$ junk.

    1. Re:Complexity, standards, peer review, sanity. by 4minus0 · · Score: 3, Insightful

      Free software never ceases to amaze me.

      I have set up countless email servers, firewalls, spam catching relays, web servers and dns servers. Some clients want Red Hat, others are more up on the game and have heard of Debian or Slackware, others could care less. That's beside the point... It's open freaking source, hack it to your needs/liking.
      You wanna know how much I had to pay for the operating system or individual packages of said software? Nada, that's right, zero, zilch, zip.

      It baffles the mind how something that works so well can be free.
      That means alot to a small time contractor like myself.
      I may not have the money or the coding know-how to give back to the community but you can bet your custom kernel that when somebody has a question on Usenet or a web forum about Linux or a particular package that I happen to know about that I help that person like I was being paid to.
      That's the beauty of 99% of the people in this community... I can even say "I have a client who needs X how do I implement this?", and more often than not someone will help me out with the answer or at least point me to the docs that will answer my question. Even knowing good and damn well I'm getting paid to find the answer to that question.
      This is a good thing we have here folks, I would imagine that I've taken far more than I've given back but every chance I get I do give back and I like to think that most users of this crazy thing called Free Software do too. So far that theory has proven itself true. Just a little soapboxing on my part here, sorry for the rambling.

      --
      You've got an easy breezy wind at your back...most of the time.
    2. Re:Complexity, standards, peer review, sanity. by mr3038 · · Score: 1
      Debian has 8,710 packages available to do anything a comercial comercial software does, mostly better. Not just one or two pieces of it, every piece. My systems never crash under their stable release and I run all sorts of services.

      Did you mean that the system didn't crash, or that not a single process crashed? I guess it's the former. Unfortunately, it isn't usually enough. If any of my processes has a bug that causes that process to crash then part of my work is lost -- in best case it might be just some lost time. If you're running your desktop on X and X crashes then it's pretty much equivalent to system crash from your point of perspective even though the system is still running. The same thing if your server process needs database access and your database process goes to deadlock.

      Writing software is complex and if everything must work then everything must be perfect[1]. Think about writing a whole series of detective stories with references back and forth where every little detail mathes perfectly with all the other details. Writing perfect software isn't that far from proving complex math formulas other than that software is usually much more complex as a whole.

      [1] Sometimes it's possible to write redundant code where first run fails and the process automatically tries something else. In that case the code isn't perfect but the software works perfectly. One might say that the system is perfect but it has non-optimal code because it does some unneeded work (it should have automatically executed the failover code immediately instead of trying the default one first).

      --
      _________________________
      Spelling and grammar mistakes left as an exercise for the reader.
  139. Good = expensive as hell by glenebob · · Score: 1
    It costs a ton to write really well designed, well implemented, and well tested software. Us developers are always walking a tightrope between what would be ideal and what we have time/money for. This is one reason open-source works so well in many cases. Without a budget or time constraints, you're free to implement something as well as you like.

    There is no accountability in the software industry. As soon as software companies are forced to take some responsibility for the code they write, they will write stronger code. Unfortunatly this will also raise the cost of software development even more, along with the barrier to entry.

    Are we using the wrong tools (such as C) which do not provide the facilities necessary to write safe software?
    I'm tired of hearing this. There is nothing unsafe about C. There are only unsafe API's available for you to use. If you're dumb enough to use them and then give the world access to your software, you deserve to be beaten senseless with a dead salmon. It's ignorance and laziness that causes unsafe code, not language X. Let's not forget that most of those 'safe' languages out there are implemente in C. Of course, that doesn't make C the right language for any given project, but the old 'C is unsafe' chant is nothing more than a poor excuse. If you can't use it properly, don't use it.
    1. Re:Good = expensive as hell by tommck · · Score: 2, Interesting
      I'm tired of hearing this. There is nothing unsafe about C.


      I agree completely... This is the same kind of thinking that people use to try to outlaw guns... "If someone can use it to commit a crime, we should just eliminate them!".


      I would say that poor development, insufficient design, (obviously) insufficient testing and a focus on features rather than security are MUCH more to blame for software quality issues than which language was chosen for the implementation.


      I still think we should be able to moderate the whole article as a Troll...

      T

      --
      ---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
  140. The Will To Program Correctly by Anonymous Coward · · Score: 0

    It's not that people are lazy or inherently faulty. A team of moderately skilled individuals can build some incredibly sophisticated equipment that they don't know anything else about, and do it without bugs as long as they verify their requirements are good, that their design flows down from the requirements, and that the code implements the design (and nothing but the design), and that you have tests to prove that the code works. This is standard practice in any industry that makes life critical software. It doesn't take geniuses. Just the Will to do so, and the time/effort/money to apply to its implementation.

  141. Computers crash by starange1 · · Score: 1

    I don't have much to add other than to say that I have worked with computers for over 30 years also and the statement that hardware hasn't gotten much better is completely counter to my experiences.

  142. gotta rant a little here by gandhii · · Score: 1

    "Of course, there's no need to mention Microsoft's inability to create a stable system."

    I guess i've heard this demonization of windows too much lately.. guess i have to respond this time.. the two whisky's help ;]
    I'm presently working at a print house where i operate a xerox docucolor and a docutech.. The docutech is operated by a sun running solaris and the docucolor is operated by a dual 700 running nt4. That solaris flakes out so damn easy.. I have to reboot it at least once a week.. and then there was that time that it totally crashed when all i was doing was adding icons to the control panel.. The nt4 machine has only needed rebooting every few weeks for very specific reasons like a power outage and the power supply going bad. And I'm not even touching on the ease of use and breadth of use issue, which the nt4 machine would win hands down of course..
    so.. allow me to take a deep breath. I got it out of my system.. time to move on with life.

    btw.. trash bill gates all you want (i do).. but if you're gonna trash windows, be specific about which windows version and be relative.

  143. I'm surprised nobody has pointed out yet... by Frobnicator · · Score: 3, Informative
    That beyond all the hyperbole and other reasons, there is something that could be done but usually isn't.

    In C++, which a great deal of software is written in, an exception block [or the language or system equivalent] placed around the entire application will catch just about any recoverable error. This is how most of the windows blue-screens or 'your application has performed an illigal operation and will be terminated' messages are brought up. This is how Linux and other unixes generates a core dump.

    The actual handling may be in a signal handler, try/catch block, or abend, but the functionality is present in every activly developed language I have ever worked with from cobol and fortran to c, c++, java, and object pascal.

    The main reason for applications actually crashing is programmer lazyness.

    The main reason for applications getting into a state that they can crash is improper complexity management.

    When it comes to drivers, I'm much more forgiving, since it is quite difficult to manage both the hardware and software, and the communication between different programs.

    Finally, the operating system itself, which is the layer between the drivers and the applications, I haven't seen any in the last 5 years that has been unstable. Even Windows ME, for all its faults, was very stable in the actual 'operating system'.

    But that's just my 2 pesos.

    frob

    --
    //TODO: Think of witty sig statement
    1. Re:I'm surprised nobody has pointed out yet... by ckimyt · · Score: 1


      What are Karma bouns?

      --

      Putting the sig back into +1, Insightful since 1995!
    2. Re:I'm surprised nobody has pointed out yet... by Frobnicator · · Score: 1
      What are Karma bonus?
      See the FAQ entry

      If you don't want to read the FAQ, here's the summary. In Slashdot, when you are logged in to your account you can get good Karma by posting useful comments, submitting stories, etc. Contrarywise, you get bad Karma from posting trolls and flaimbait.

      If you have good Karma, you can add a 'Karma Bonus' to your posts. When you view posts, your preferences let you determine how much of a bonus the 'Karma Bonus' really is. That's under your preferences page. (click on preferences and go to the comments tab, or just follow this link). On that page you can also add or subtract scores for specific moderations, friends or foes, annonymous cowards, etc.

      Since you are probably referring to my signature, when you look at any specific comment it will show the score at the bottom of the comment. The system clips the score from -1 to 5. It has been a long-standing joke about how the actual sum of the scores can be much different than the displayed score. In my sig, (which was a moderation score for one of my comments) you can see how the actual sum would be 10, but the total score (which is clipped) is 5.

      frob

      --
      //TODO: Think of witty sig statement
    3. Re:I'm surprised nobody has pointed out yet... by ckimyt · · Score: 1
      What are Karma bonus?

      See the FAQ entry [slashdot.org]

      [snip]

      frob
      New Slashdot Math:
      Starting score: 1
      Moderation +6
      Insightful +1
      F.o.F. +1
      Karma bouns +1
      Total: 5
      Yeah, sorry, I was merely being stupid pointing out your .sig spells bonus incorrectly.

      Ironically, you corrected my spelling when you quoted me. =)

      --

      Putting the sig back into +1, Insightful since 1995!
    4. Re:I'm surprised nobody has pointed out yet... by Frobnicator · · Score: 1
      w00t! Now I'm a slashdot editor-in-training.

      Seriously, thanks for the correction. :)

      frob.

      --
      //TODO: Think of witty sig statement
  144. Why? Three reasons: by Timothy+Brownawell · · Score: 1
    The three reasons that computers still crash:
    1. Hardware error

      But, are there supposed to be lightnings in my power supply?

    2. Software/programmer error

      char *j;
      //snip
      char i[15];
      for(int x=0;x<51;x++){
      i[x]=j++;
      }

    3. User error

      cd /usr/local/src/kernel-sources/linux-2.5.69
      make mrproper
      make allyesconfig
      make -j

    Tim

  145. you should expect more. by twitter · · Score: 1

    I'm shocked when an application dies. I've never had an OS crash since moving to Debian two years ago. I never turn my computers off. They just work and everything should be like that.

    --

    Friends don't help friends install M$ junk.

  146. Slashdot Summary by Prien715 · · Score: 1

    I know not everyone has time to read all the comments so I'll summarize the comments:

    * Microsoft sux0rz. They're software has lots of bugs 'cause they're not 1337.
    * My system has been up for the last century running FreeBSD.
    * M$ Sucks.
    * All Software has bugs.
    * Open source software has less bugs.
    * First post!

    --
    -- Political fascism requires a Fuhrer.
  147. Re:A Contributing Factor & Principles (CORRECT by Jerk+City+Troll · · Score: 1

    If you want to encounter unexpected values in your data structures, make sure you hide as much as possible from the rest of the code.

    Sorry, I meant to write "If you don't want to encounter unexpected values...". Of course, I think it's clear what I meant to say, clarification never hurts. :-)

  148. Assumptions by Anonymous Coward · · Score: 0

    "That assumes computer science is a functional engineering discipline. Its not, at best we are at the alchemy stage of progression. You put two things together it goes bang and you try to work out why." Alan Cox

  149. the reason is nonalignment of goals by Anonymous Coward · · Score: 0

    Humans make very reliable aircraft carriers, jumbo jets, satellites, and mobile phones. I think this alone is sufficient evidence that the reason for buggy software is NOT any of the following reasons: tight deadlines, code complexity, industry immaturity, developer team organization, size of state machines, lack of time, customer impatience, or feature bloat. I think the problem is much deeper, viz.: the goals of the people who MAKE the software are not the same as the goals of the people who USE the software. Software developers have no INCENTIVE to make good software. In fact, the opposite is true. For example, if you look at the information systems in hospitals, you'll find that they are invariably awful; this is because the people who write and main those systems are paid based on their ability to minimize hospital expenditures, rather than paid based on their ability to maximize quality of medical care. Low-quality software is cheap to produce, provides recurrent income by forcing customers to upgrade in the future, and is usually just endurable enough to be usable (i.e. the bar is lower for software than it is for a jumbo jet or a mobile phone). The software developers therefore benefit by selling buggy software, simply because their goals differ radically from those of their customers.

  150. Blame it on the end piece... by PSL · · Score: 1

    What kind of asinine question is this? When it crashes you always blame the software. Could it be a powerspike that screwed around a few bytes in ram? Could it be bad hardware sure... but when it a glitch happens it is always blamed on the software.

    Another reason software is more buggy than hardware is that hardware is an improvement on the next version not a whole new idea. How long has SCSI been around? How long has most end user software technologies been around?

    And finally what are the limits of fault tolerance in software vs hardware. In physical engineering you are allowed a certain range of fault tolerance. In software it works 100% or it doesn't work at all. If there is a bug in the hardware that is discovered after production... it's up to the software to account and correct for it. THINK.

    --

    "Times may change, but standards must remain the same." - George Carlin.
  151. Just a quick note... by Anonymous Coward · · Score: 0

    Bashing MS for stability out-of-hand just paints you as an ignorant boob. Are they as stable as Linux and other Unices...no definitely not. But to say that they are unable to create a stable product is ridiculous. My home MS machines have excellent reliability, and places I have worked have also seen servers as old as NT 4 stay up for months.

    Don't think I'm the MS evangalist here, I have as many problems with them and their insane methodologies as most people here. But implying that nothing has changed in the Microsoft stability world since 3.11 or that they do not make OSes stable enough for production use is just assinine.

  152. Actually its getting better by Billly+Gates · · Score: 1

    Its at least getting better in terms of desktops and servers.

    Windows2k is supprisingly stable as well as relatively bugfree. Maybe not as much as FreeBSD or any other Unix but it sure as hell better then Windows3.1, windows95, and even NT 4. XP is alittle flakey with certain things but quite good.

    Infact I have only seen the blue screen on w2k once! This was due to a buggy sblive driver. If you play gxdoom or any program that play midi files you will notice creaks in the sound and if unrebooted will evenutally crash your w2k box.

    I also remember shitloads of bugs in Windows. Do any of you remember Windows95/98, and office95 doing strange and bizaare things? Well I have not seen them at all in Windows2k.

    I am not a pro ms troll here but I am just saying the situation is better. Also lets look at Unix.

    If any of you read the Unix haters manual they will mention unix as a flaky, unreliable and unstable os full that is cryptic and impossible to adminster. They critize the UFS quite heavily. This was written in the late 80's and early 90's.

    From what I read about Unix history is that during the early 80's, Berkely Unix had terrible memory holes, the original tcp/ip stack was not good, and it had to be rebooted every few days and the vm was flakey.

    Today the situation has improved by leaps and bounds. Unix is very stable. BSD leads the others in terms of reliablity. But this came out a price from education about software reliability.

    With UFS2, most assembly code being moved out of userspace, hot swapable hardware support, volume managment with raid support, as well as more mature versions of the BSD tcp/ip stack, and vm code, Free/Open/Net bsd is one of the world's most stable operating systems. Also most bad versions of Unix cough SCO cough have vanished. These versions of unix had no memory protection so they could run on early hardware like 8086 and 286 chips.

    Infact have your computers in your car ever crashed? They are quite stable and have been for years.

    Most computers today from micro-controllers to Mainframes are quite stable.

    1. Re:Actually its getting better by FueledByRamen · · Score: 1

      I completely agree with you for Windows 2000. It gets a bad rap, being associated with other Windows versions that are horrible {95,98,ME,NT4 - don't even get me started on NT4}, but it really has very few core problems. I use it every day (This post made from Win2k) and it never crashes unless I do something really stupid, like knock the network card from the back of the machine during an SMB file xfer op. Sure, individual programs crash sometimes, and Explorer will die occasionally (much less since I stopped using it as a webbrowser and started using Phoenix/Firebird), but the core OS keeps going through basically everything I can throw at it software-wise. (But not everything I could throw at it in hardware, especially when the computer consisted of a motherboard and cards sticking out of it sitting on my desk - no case.)

      --
      Every cloud has a silver lining (except for the mushroom shaped ones, which have a lining of Iridium & Strontium 90)
  153. Re:Mandate memory checking tools...are not enough. by greppling · · Score: 1
    Sorry, I don't buy this. Yes, I've used valgrind in the little (some 7000 lines of hand-written code, plus machine generate code), and it found one and a half bug.

    That's extremely useful, because it might have taken one of us two hours to pin-point this problem. But not more. I'd think that these tools can save you maybe 5% or 10% of the time you need to spend debugging. (And this is a lot, since debugging takes so much time.)

    But the important is still good testing. Think of obscure ways to test your function just after you have written it. Think whether you have tested all code paths that you added. Think about corner cases causing unexpected interactions with other code.

    It's as easy as that, and as hard as that.

  154. Re:Go for time-to-market; make 'em wait for bugfix by Rimbo · · Score: 1

    With most software, most crashes are, at worst, merely frustrating. A crash in your car's ECU might cause it to spew out black smoke, but it will still run. A crash in the ABS firmware on the other hand...

    With software like that, you pay extra for bug-free, and you should expect to get that. But for most of us, if my word processor goes kablooey, my girlfriend and I won't end up as a messy blood splotch on baked asphalt.

    This allowance for bugginess is perfectly reasonable in almost all circumstances. ABS brake controllers and other similar "someone's life or livelihood is on the line" products are obviously exceptions. So although the industry may have conditioned people to expect a bit of bugginess, before the expectation came about there was a bit of common-sense weighing of priorities, and perfect software stability is all the way up there with, well, figuring out if my dress socks are black or navy blue in weak lighting...

  155. What are you smoking? by Jerk+City+Troll · · Score: 4, Interesting

    My OS X box, which I use for web browsing and word processing, crashes about once every three days.

    The Ti PowerBook G4 I am writing this post on is running Mac OS X 10.2.x. It goes in an out of sleep on an irregular basis, and not always when it is idle. I swap PCMCIA cards in and out. It hops from network to network. I do a lot more than browsing and word processing.

    According to my Konfabulator uptime widget, I have 83 days, 23 hours, 20 minutes. My load average at the moment is 1.7. It has not been rebooted since I installed OS X (I did it myself after buying it just for messing around purposes).

    You sir are either lying, have bad hardware, or you've severely corrupted your installation. This operating system (which is BSD) is solid as a rock.

    1. Re:What are you smoking? by weston · · Score: 1

      You sir are either lying, have bad hardware, or you've severely corrupted your installation. This operating system (which is BSD) is solid as a rock.

      As a person who loves Mac OS X dearly but is still frustrated as all get out by the 5-10 crashes per week, I thought I'd speak up here. It's quite possible the parent poster has bad hardware, and it's even possible that he's lying or messed things up himself. But I can tell you that I've been using various flavors of UNIX since 1988, OS X for over two years, and I know it pretty well, and it's unlikely that I've messed my own system over, and I'm telling the gospel truth when I say it crashes with the above frequency.

      I'm sure most people's experience is better, but you don't have to be lying or incompetent to tell an OS X chronic system problem story.

    2. Re:What are you smoking? by Anonymous Coward · · Score: 0
      You sir are...

      Would everybody stop it with the "you sir" bullshit? It's not funny. It's not witty. It doesn't make you look intelligent. It's just fucking stupid.

    3. Re:What are you smoking? by Anonymous Coward · · Score: 0

      Hear, hear!

      You, sir, are absolutely right.

    4. Re:What are you smoking? by curious.corn · · Score: 1

      Well, isn't it time you ran the software update tool? There are a couple of vulns in Jaguar cured in recent updates that require a reboot so you really should plug to a lan and go for it ;-)

      --
      Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
    5. Re:What are you smoking? by Jerk+City+Troll · · Score: 1

      Would everybody stop it with the "you sir" bullshit? It's not funny. It's not witty. It doesn't make you look intelligent. It's just fucking stupid.

      You sir need to calm yourself and relax, and come to an understanding of sardonic writing styles.

    6. Re:What are you smoking? by Jerk+City+Troll · · Score: 1

      Well, isn't it time you ran the software update tool? There are a couple of vulns in Jaguar cured in recent updates that require a reboot so you really should plug to a lan and go for it ;-)

      I run it on a regular basis as a matter of fact. :-) I just Force Quit the tool when it says I have to reboot. I then log out and log back in, which is sufficient for restarting most user space software. I then HUP any servers I may have running on the machine (SSH). I don't know if that is sufficient, but the machine is always behind a firewall, so it's low priority as far as security goes. What's amazing is that it is still stable!

    7. Re:What are you smoking? by edremy · · Score: 1
      Umm sorry, but I've got to come down on the side of the parent poster.

      OSX is way, way more stable than 9, but it's not that great yet. I've had to literally pull the battery out of my old 500MHz TiBook the system was locked so badly. (It wasn't happy swapping out a bunch of Firewire devices)

      I frequently get "Spinning pinwheel o' death" hangs in 10.2.x on my new TiBook. Sure, I can try to wait them out, but it takes less time to reboot.

      --
      "Seven Deadly Sins? I thought it was a to-do list!"
  156. Re:My experience with crashing servers by Billly+Gates · · Score: 1
    "I juct checked kernel.org and the lastest kernel version is 2.4.20. Where the hell did you find Linux version 9.0? How can I get a copy?"

    No way. My MCSE at the office told me he is using Linux 9.0.

  157. Drivers by buddha42 · · Score: 1
    Its all about the drivers. Modern OS's are extremely stable, modern hardware is very high quality. The gap between them, the drivers, are the weak link.

    Thats one of the primary reasons nVidia dominates ATI. Hardware wise ATI gets ahead once in a while, but their drivers might as well be copied and pasted out of a slashdot discussion thread.

  158. Re:A Contributing Factor & Principles mod up p by Anonymous Coward · · Score: 0

    give this guy some credit moderators--real good post

  159. yeah, it's people. by twitter · · Score: 2, Insightful
    Computers crash because of people, especially some people in Redmond. You know, the folks who push that OS with a binary, one bit changes and it dies, registry, an email client that gives mail root access to hardware automatically, a web browwer with similar problems and a kernel that may still not keep track of background processes.

    It's never the user's fault. No matter what the user does, the program should recover gracefully. Code that crashes is pathetic. Take my wife. She's managed to uncover all sorts of bugs and flaws in software, but she and my baby girl have had a hard time busting Debian.

    --

    Friends don't help friends install M$ junk.

    1. Re:yeah, it's people. by osgeek · · Score: 1

      It's the user's fault for continuing to purchase computers that aren't rock solid.

      Face it, users don't care (enough) about stability to force real changes.

    2. Re:yeah, it's people. by stwrtpj · · Score: 1
      It's never the user's fault. No matter what the user does, the program should recover gracefully.

      Reminds me of an argument I once had with a Sun tech (ironic that I work for Sun now, but I digress ...). I was working as a contractor to US West (before they were acquired) when we had a Sun tech over to look at a problem with a Solaris box. It kept going into a kernel panic on a page fault when a certain combination of apps were running on the machine.

      The tech explained that the problem had something to do with a timing window where two apps were trying to access the same page of memory and the kernel could not resolve the conflict (this is a vast oversimplification of the problem, mind you). I nodded and asked him when Sun was going to fix the problem. That's when things got interesting.

      He claimed it was not Sun's problem. He says we overloaded the machine, running too many apps for the small amount of memory in the workstation. Now, technically, this was true, but the machine panicking was not the behavior I expected.

      The tech's solution was still "don't run so many apps". I tried to explain to him that since none of the apps in question was running as root, an ordinary user should not be able to hose up the machine like that, hence this was a bug in the kernel. He continued to insist it was not Sun's fault, that the user was at fault. I must have argued with the man for about a half hour before he finally walked away in disgust, STILL insisting that there was nothing for Sun to fix.

      Now, this was probably more a case of one stupid tech, since the problem I outlined was actually fixed in the very next Solaris revision, and the techs I have been exposed to inside Sun are a hell of a lot more clueful than this, but it just goes to show the attitude that is prevalent out there.

      --
      Karma: Frotzed (mostly due to the Frobozz Magic Karma Company)
    3. Re:yeah, it's people. by Anonymous Coward · · Score: 0

      Take my wife.

      Say please next time...

  160. It is the way the managers manage the IT people by Orion+Blastar · · Score: 1

    they want quick and sloppy instead of slow and reliable code. It is the "Fast Food" mindset that creates unreliable software. Managers don't want programmers to take their time and do it right, they want results as fast as possible. So programmers don't get the chance to make sure that memory used is unallocated once unsed and they forgot to close out recordsets and files once they are finished with them.

    I was let go from my past two jobs because I wasn't quick enough. But my programs ran reliably, and didn't have as many Help Desk calls.

    What the managers want is "Good Enough" code, as in good enough to work and do what they want. They don't care if it crashes the system several times a day or more, as long as they can ship it to the customer.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
  161. and by waspleg · · Score: 1

    they're not gamers at least not at school and neither are you presumably

    tell me when your windows box reliably plays games and maintains more than a few days at best of uptime

    try pushing hte machines.. word processing doesn't hurt anything, hell windows 95A could probably last 30 days if all it had on it was notepad open

  162. untouched subject... by true_majik · · Score: 1
    I've used computers for about 30 years and over that time their hardware reliability has improved (but not that much), but their software reliability has remained largely unchanged.

    I read through most of the replies, and skimmed through the rest...none seemed to touched on the subject that the companies that sell the software (haven't really payed attention to hardware) immideately release themselves from any harm their software causes. They state that they are not liable for any data loss, etc. in result of use of their software. It really ticks me off that it is so easy for them to do that. I would like to be able to have the DMV accept a terms and agreement stating since they granted me the drivers lisence I (the driver) can not be held responsible if I crash [waiting for soembdy to show how this analogy is not so good]. I would imagine if software companies could be held liable they would clean up their code a bit more, make it less likely to crash, etc....Afterall they're making money from this. I could understand programs released under GNU GPL to have "as is" notices. It's free! :)

    At the other end...people do crazy stuff with computers and applications they run on them. It's tough to account for every single little point-and-click a user can possibly think of.

    I would also agree with AvengerXP's statement: I've found out over time that the reason computer equipment crashes in general is lack of maintenance. Would you drive a car without changing it's oil for 5 years straight? Then why should a computer be any different. It's much more complex than a toaster, and yet the average toaster doesn't last much longer than a CPU. I think it's time people start treating things as they do with themselves. Take care of it/them.

    I've come across many computers that don't have the most recent drivers or software upates a ka-jillion programs (and spyware) installed, no anti-virus app. (or if so, waaaaaayyyyyy out of date), yet the woner wonders why their computer is so sluggish. They just dont seem to maintain them at all.

  163. Where do you want to go to day? by SensitiveMale · · Score: 1

    How about to a stack overflow?

  164. Re:My experience with crashing servers by Billly+Gates · · Score: 1

    If your using RedHat 9 you will not have proper mod-perl for apache out of the box.

    This is because rh decided to install apache 2.x as standard without even the old apache 1.3x daemon. It also comes with Perl 5.8. Many perl programs will not work with perl 5.8 or will run unproperly.

    This was really stupidon RH's part. This makes it useless for its own hardcore market which is webservers. I feel ripped off by it. At least Suse provides both versions of apache.

    I also do not think you are serious since mod-perl with apache2 will probably not even work unless you downloaded an alpha version. I now use FreeBSD for this reason since it comes with more conservative package versions and with the ports so I can upgrade the packages I want without rpm hell.

    Also what kind of person writes kernel level code with ASP or Vb? I do not think its possible. With Basic you can peak and poke and insert assembly but I do not think you can do that with VB.

  165. Why is it acceptable that they crash? by MeddlesomeKids · · Score: 2, Insightful

    A lot of the posts here have posited answers to why computers crash (people, complexity, unsafe languages, etc.), but most everyone seems resigned to it.

    It should not be acceptable that they crash.

    Personally, I'm shocked every time I use a computer as to how primitive they are and how little has changed. Is it, or is it not the year 2003?

    All of these posited problems are solvable.

    Unsafe Languages? Stop using them. Someone please design hardware and an OS that disallows their use and disallows unsafe behavior.
    There are safe languages that compile and provide performance today (Lisp comes to mind, perhaps C#, Java's getting faster everyday, and there are safe subsets of C++). Start using those. And then someone go write something better.

    I earnestly believe that if the hardware/OS had good protection at the lowest level then performance would not necessarily have to suffer. If the OS is written in a language where the API is solidly contracted, then _true_ safety can be enforced at compile time, and not slow down the system at runtime.

    People? Users should _never_ be able to crash their machine. The person riding the elevator should have _no_ way, no matter how contrived, of making the elevator crash. And if the problem is programmers, then kick them out of the loop by forcing them to use safe languages, libraries and tools.

    Complexity? Well, this is the kicker isn't it? "you can't foresee all the possible conclusions". But we don't need to see all possible conclusions to stop crashes. And if we lay a foundation of solid transactions on solid APIs with solid languages, then complexity will be reduced, there will be less dark "unknown" spaces. Maybe it'll even be easier to write software with fewer bugs.

  166. stats by Vej · · Score: 1

    Has there been a study, or some site that tracks a certain group of computers of varies systems/OSes and their crash counts/types?

    My 2000 machine at my work has more problems with power spikes than it does crashing, and my XP at home has only crashed due to a driver failure on a 5-in-1 flash card reader.

    That's just those 2 systems of course, I've had nasty crashes on many other windows systems and NT 4 was nasty too.

    I've worked with several embedded systems and find such systems as LynxOS fairly reliable also, however I've not been in the field so much with it as continued development testing.

    Are these crashes design based, or framework based? Give a weird problem, and some Linux/Unix based systems will simply die due to file corruption repeatedly. Windows will crash from internals a lot, and stuff like driver plugins(depends which flavor) which should be caught more, but can recover decently on basic crashes(xp more it seems).

    Just a thought if these kinds of stats are anywhere.

  167. Debian. by twitter · · Score: 4, Funny

    Debian tested in every state, works good everywhere. I have yet to prove that it does not work anywhere in any way. I can not say the same thing for any other software I've ever run on a PC.

    --

    Friends don't help friends install M$ junk.

    1. Re:Debian. by Akoman · · Score: 0

      I'd like to point out that while debian itself may prove this true, one cannot say it is so for the *packages*. STILL trying to get the new version of pyDDR to work.

    2. Re:Debian. by Anonymous Coward · · Score: 0

      Depends on your hardware. I hit college as a CS major, happily installed debian and X didn't seem to work. I grabbed a few of the linux gurus at my school and hauled them back to look at it and they couldn't fix it. one half of the screen flickers - so no synching issues, just bad drivers for the video card? In any case I spent 2 years poking at it on and off between windows boots. (win98, 2k and xp all work fine). I tried, I really did, but linux doesn't work everwhere.

  168. "Most crashes are caused by bad drivers!" (n/t) by Anonymous Coward · · Score: 1, Funny

    This message has no text. This page intentionally left blank. This sentence no verb. :)

  169. Software Requirements by Anonymous Coward · · Score: 0

    Heh. Develop a way to write requirements for software easily and in a way understandable to both humans and computers. I'd give you a medal for that.

    From my experience, broken requirements are often the reason for poor project quality. And management doesn't seem to get that.

    Writing the goal function for genetic algorithms would be the second task, and also in the problem complexity I call 'impossible to solve'.

    --Coder

  170. Wise words from Microsoft Project Managers by Anonymous Coward · · Score: 0

    We have 1,000,000 bugs in this program. From those, we do a statistical modelling to rank them based on their severity and frequency. As you might have guessed, we have only enough time to fix about 1,000 of those before release. The rest remain to our faith that chances are, these bugs won't appear to anyone, or if they do, it will only be a 1:1000000 case. That's why the bugs remain, that's why we all get crashes, yet not always the same.

  171. Oy. by jpellino · · Score: 1

    You may have the single most unreliable Mac OS X box I can imagine hearing of. Seriously, I've got an iBook with 2 kernel panics over 26 months, a dozen cubes and Bondi iMacs with month-long uptimes. And that's with a hundred kids roaming all over them on a daily basis in some sort of quest to break anything they can imagine. Apps (and 99% just the beta ones) may quit unexpectedly, the non-beta ones are typically 3rd party conflicts - but no system crashes.

    Something needs attention, but it's prolly not Apple's QC in your particular case. Now, if your "OS X box" is an unsupported, g3 conversion with all sorts of third party stuff crammed into it, then you're on your own - Apple prides itself on end-to-end integration and this goes a long way to create OSX's new reputation for robustness.

    In fact, OSX shipped on an Apple system is the first mainstream setup I would label "robust" (in the engineering sense as inspired by Rev. Woody Flowers' diatribes from my FIRST days)

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
  172. Testament to Novell by hendridm · · Score: 1

    > my Psion 3a has never crashed despite being switched on and in use for over five years

    Heh, reminds me of this story, which never surprised me in the least after having worked for a university.

  173. Re:And what does Billy Gates have to say about thi by Billly+Gates · · Score: 1
    "...And what does Billy Gates have to say about this?"

    Thanks for thinking of me.

    Well, first off I would like to say that they are features!

    Second, I would also like to point out that we sell products that we think they will sell. All these things you see that you called bugs are really features and if you know what they hell you were doing you would not have them!

  174. Third-generation languages. by jonadab · · Score: 2, Interesting

    Computers crash (and have any number of other problems) largely
    because almost all software is still developed using third-generation
    ("high-level") languages. These languages place on the programmer
    the burden of such fiddly details as allocating and freeing memory
    and checking the size of allocated memory to see that it's adequate
    for the data being copied in.

    *Most* of the time when an application crashes seemingly at random,
    it's a memory allocation problem of one kind or another: a buffer
    that was allocated to small and gets overrun, or a pointer error,
    or something of that nature. When an application (or your whole
    system) grows more sluggish the longer you leave it running, that's
    usually a memory leak: something was allocated and not released
    properly -- repeatedly. All of these problems result from a lack
    of excruciating vigilence on the part of the programmers when using
    a language that requires it. In a large project, maintaining that
    ceaseless caution is a nightmarish prospect.

    Languages (both interpreted and compiled languages) have been around
    for over a decade that handle these things, freeing the programmer
    to concentrate on developing the more high-level features of the
    software, but because this checking imposes some overhead (in terms
    mostly of CPU time and sometimes some memory footprint), they don't
    get used for most applications. Yet.

    The time is coming, though. The value of VHLLs is beginning to be
    recognised, *finally*. When software is written in a language with
    built-in memory management, problems like segmentation faults (core
    dumps in Unix; in the Windows world these are known as Illegal
    Operations, formerly known as General Protection Faults) and buffer
    overruns go away entirely.

    Add proper garbage collection (not reference counting like Perl5
    does, but real gc, which I hope we will get in Perl6), and you
    also dispense with memory leaks once and for all.

    It's coming. Applications are *beginning* to be developed in this
    next generation of languages, but it takes time, because all the
    existing apps are mostly C and C++, and you have to throw them out
    and start over, which nobody wants to do for obvious reasons.

    There will of course always be room for a certain amount of
    inherently low-level code written in C or one of its kin: code
    that absolutely can't spare a nanosecond per run, code that has
    to run on the bare metal (kernels, bootloaders, ...), and code
    needed to bootstrap the VHLL tools (compilers and whatnot). But
    when C is no more common than assembly language is today, then
    you'll be done with random crashes.

    Applications will of course still have bugs -- circumstances
    wherein they don't perform as they ought. And you'll still have
    hangs, because nobody's figured out how to design a compiler or
    interpreter that can detect an infinite loop, and nobody except
    Mel[1] has coded up an implementation for completing an infinite
    loop and passing on to what follows. Perhaps quantum computing
    will one day change this, but that's outside of the forseeable
    future. But crashes of the sort where the app suddenly terminates
    should be mostly a thing of the past within twenty years, ten if
    we're quite lucky.

    [1] Google for "The Story of Mel, A Real Programmer".

    --
    Cut that out, or I will ship you to Norilsk in a box.
    1. Re:Third-generation languages. by memfrob · · Score: 1
      And you'll still have hangs, because nobody's figured out how to design a compiler or interpreter that can detect an infinite loop[....]

      And nobody ever will. q.v. Halting Problem

      --
      The Wizard utters the word 'frobnoid!' and cackles gleefully
    2. Re:Third-generation languages. by yerricde · · Score: 1

      The proof of the undecidability of the halting problem relies on the fact that a Turing machine has unbounded memory. Given bounded memory (as exists in all physical computers), you're no longer dealing with a Turing machine but rather a linear bounded automaton (LBA), and it's straightforward to prove that the LBA halting problem is decidable by an LBA.

      --
      Will I retire or break 10K?
    3. Re:Third-generation languages. by JollyFinn · · Score: 1

      >Languages (both interpreted and compiled languages) have been around for over a decade that handle these things, freeing the programmer to concentrate on developing the more high-level features of the software, but because this checking imposes some overhead (in terms mostly of CPU time and sometimes some memory footprint), they don't get used for most applications. Yet.

      Make it 4 decades.

      http://www8.informatik.uni-erlangen.de/html/lisp /h istlit1.html

      --
      Emacs is good operating system, but it has one flaw: Its text editor could be better.
  175. AppleWorks never crashed by ncc74656 · · Score: 2, Interesting
    From 1986 or '87 until about '94 or '95, all my word-processing/database/spreadsheet stuff got done on an Apple II (first a IIe, then a IIGS) running several versions of AppleWorks, up to v3.0. Even with some 3rd-party addons (mainly SuperFonts and UltraMacros), AppleWorks never crashed.

    I'm willing to concede that the codebase was considerably smaller. It had to be, in order to produce an executable that would fit in 800K (the size of a 3.5" double-density floppy) and would run reasonably well on a 1-MHz 8-bit processor with as little as 128K of RAM...but I don't find myself doing sufficiently more advanced stuff in Word or Excel than I used to do in AppleWorks (actually, AppleWorks was probably doing more sophisticated stuff with UltraMacros added to it). I would be willing to wager that 95% of Office users use no more than 5-10% of its features. All that extra code that keeps getting added in with every new release means there's that much less time spent making sure the core functionality (and all of the chrome added in previous releases) is bug-free.

    (I'll admit that I haven't had much trouble with Office...but then you've noticed that I don't push it particularly hard either.)

    --
    20 January 2017: the End of an Error.
    1. Re:AppleWorks never crashed by ckimyt · · Score: 1
      Only wankers reply to sigs.
      I know what you mean, I hate it when people do that.
      --

      Putting the sig back into +1, Insightful since 1995!
  176. Off Topic by Anonymous Coward · · Score: 0

    Go Nets!

  177. Software still crahses... by ConceptJunkie · · Score: 2, Interesting

    ...because we aren't willing to wait for, or pay for, software that has been adequately tested to any reasonable level of reliability.

    With something like Windows XP, no amount of testing could eliminate every conceivable bug, but there is no doubt in my mind that Microsoft, along with almost every other software company in the world, rushes poorly designed, inadequately tested products to market to meet customer demand.

    Remember, a product's success is due largely to a check list of features created by the marketing people. A product with 90% reliability and 100 features will sell better than a product with 98% reliability and 10 features. Otherwise, how can you explain the success of Microsoft Office? OK, bad example, MS Office is successful because it's been bundled with so much hardware, but you see my point.

    The bottom line is computers are now a commodity. They have become so ubiquitous and cheap that I can go down to the Salvation Army and purchase what would have been considered a supercomputer 10 years ago, for $50. Software is quikly reaching the same state. How much software can you buy for $10 or less? A lot. And not all of it is bad, though most is. On the other hand, you can drop hundreds or thousands of dollars on software that is just as quirky, hard to use and even just as buggy.

    Here's the thing that always interested me. Why don't console games crash? I'm sure they do sometimes, but I've got a Dreamcast and about 50 games. I've seen a small bug here and there, but I've never seen the machine blue-screen or whatever DC's do when the OS lunches itself. I realize that the standardized hardware platform has a lot to do with it, but games are every bit as complex as other software, perhaps more so. So why don't these games crash? Well, if they did, they would never sell. I'm sure there would be /. articles and Ars Technica articles for weeks if a console game came out that crashed, but when PC games are released that have those kinds of problems, it's hardly news.

    Kinda makes me wonder...

    --
    You are in a maze of twisty little passages, all alike.
    1. Re:Software still crahses... by stwrtpj · · Score: 2, Insightful
      Here's the thing that always interested me. Why don't console games crash? I'm sure they do sometimes, but I've got a Dreamcast and about 50 games. I've seen a small bug here and there, but I've never seen the machine blue-screen or whatever DC's do when the OS lunches itself. I realize that the standardized hardware platform has a lot to do with it, but games are every bit as complex as other software, perhaps more so. So why don't these games crash? Well, if they did, they would never sell.

      This is one point (and a good one), but the truth is that games get a lot more testing than other software. The main reason for this is that most games could be considered a realtime system, whereas your spreadsheet program is not.

      What I mean by this is the fact that a program that needs to respond instantly to user input while at the same time spewing out millions of triangles a second of 3D graphics data has a much lower tolerance for error than your spreadsheet program that spends 90% of its time just sitting there as you type stuff into cells.

      Spreadsheet fubar'ed because of some odd value you input? Oops. Oh well, reload from the autosaved copy and try again.

      Your game fubar'ed because of some object collision detection glitch? Arrggghh, my character got killed!! I had the game's ultimate superpowered megaboss down to 1 friggin' hit point!! NOOOOOO!!!

      Perhaps this example also makes a statement about the priorities we place on how excited we get over games vs productivity software :)

      --
      Karma: Frotzed (mostly due to the Frobozz Magic Karma Company)
  178. What would we do then? by QuantumWeasel · · Score: 1

    Honestly, we all owe MS a huge debt. What would we have to bitch about if computers didn't crash. Worse, the computer dweebs might grow up, get lives and gasp find girlfriends, thereby exerting demand pressure on a commodity more already valuable than DRAM. So I say, bring on the bugs!!

  179. Real-Mode Complexity by StormyMonday · · Score: 1

    It's not just software complexity that causes crashes, it's *real-mode* complexity.

    It's an unpleasant fact that real-mode (unmapped) code runs faster than protected-mode code. Therefore, to get that extra speed for their application, designers try to move as much code into real-mode, kernel mode, or whatever the particular OS calls it. Result is that the errors that sneak in are errors that can crash the OS, rather than just crash the application. To make it even worse, real-mode bugs tend to be things like race conditions that are monsters to debug.

    Solution -- don't use real-mode code unless you're actually stuffing bits into device registers. Ideally, you can get your whole kernel (technically, a microkernel or exokernel) small enough to use formal verification techniques.

    This will happen in the Windows, Linux, and BSD worlds sometime after hell freezes over. It is, however, common practice in the embedded computing industry, and has been for some time.

    Application crashes? Assuming it's not just sloppy programming (all too common, alas!), usually it's an undocumented initialization problem somewhere down deep inside a library (MFC is notorious for this).

    --
    Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
  180. ziggy, ziggy, wake up .... by twitter · · Score: 1
    Ziggy dreams something is wrong, errors. I, for one, have come to grips with it., others have noticed and are trying to contact him ...

    ziggy ...
    the Matrix has you ....
    follow the penguin ....

    knock knock ...

    --

    Friends don't help friends install M$ junk.

  181. You trying to put me outta work?! by Anonymous Coward · · Score: 0

    Signed,
    The guy that reboots the windows server.

  182. Nobody really cares by jpmorgan · · Score: 1
    The truth is, not enough people really care. Back in 'the day' software systems were simple enough that it wasn't such a huge problem, and at the same time the cost of failure was relatively minimal. Consequently, it was never a huge issue to create more robust underpinnings.

    Now, things have changed. It's a huge job making sure something is reasonably bug free, and a failure can be very costly indeed. The problem is that most of the computing models we're using are fragile. C, C++, Windows, UNIX, MacOS, some are better than others, but they're all fragile and brittle. It's so easy to step on your toes, it's no wonder we have all these problems. But the cost of rebuilding everything with reliability in mind is huge, and no one is willing to do it. It's too big a project for most academics or free software hackers, and no major company is willing to spend the money on the project, instead focusing on the short-run prospects of getting the application out the door.

  183. Don't you see... by EvilTwinSkippy · · Score: 1
    Memory errors are our way of identifying which part of the code a crappy programmer was working on. Any numbnuts who forgets to check the bounds of an array before filling it with data probably has a lot more logic errors than that tucked away in the code.

    And yes,I am that numbnuts some days.

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
  184. Forget why do computers still crash... by mellonhead · · Score: 1

    ...why don't they boot up within 30 seconds? It's the same thing as having cars in the 60's that still need someone to turn a crank in front to get them going. Totally ridiculous...

  185. sorry friend.... by Anonymous Coward · · Score: 0

    But I've been using my w2k box and previously my win95 box and previously my dos 1.1 -> dos 6.2 box to play games and the w2k box *never* crashes. The win95 box sometimes crashed. The dos boxes only crashed if the game hung the whole system, because hey, dos is only a program launcher anyway. Sigh... I miss dos....

    Anyway....

    The linux boxes at work? They crash with kernel panics.

    The sun boxes? They crash with ecache errors.

    From w2k onwards, MS has made a pretty solid OS comparable to any of the common *nix's available for stability.

    Put the Bible down. It's ok. Even MS is allowed to get it right sometimes.

  186. Well. by Anonymous Coward · · Score: 0

    My Linux machines *never* crash. On occasion though, a few programs, like Mozilla and some Gnome applets, *do* crash. But it is seldom a real problem

    1. Re:Well. by 1seconddelay · · Score: 1

      i agree entirely. Occasionaly my x may freeze but i do a rescue and am cruising. I also use my linux a lot for games. I never had a problem even with rhat 6.1

  187. Economics? by twitter · · Score: 1
    people are willing to pay for features, they're rarely willing to pay more for stability.

    Isn't it amazing how free software costs less to get and own, yet works better too? It's like people are paying extra money to have infexible and unreliable software. I've got more features that I know what to do with under free software, yet I never have to "restart" my comouters. Don't worry, the invisible hand will soon correct things.

    --

    Friends don't help friends install M$ junk.

  188. Dammit! by darkpurpleblob · · Score: 1
    Of course, there's no need to mention Microsoft's inability to create a stable system.
    If there is no need to mention it, then what *!?#$@#^% possesed you to do so!?
  189. Well... by MP3Chuck · · Score: 1

    more code == more bug potential == more crash potential

    As far as open source having less bugs ... I figure, open source coders don't get paid for what they do, so if they don't want to do it AGAIN, they're gonna do it right the first time...

  190. Why unstable software is good by allrong · · Score: 1

    It used to be that I would switch off my computer every night when it ran Windows 98 and below. Why? Because in the next day or two it would continue to needlessly fills its memory until crashed. Now I run things like Linux and Windows 2000 and I can leave them on all week.

    Think of all the power I waste.

    --
    What is the inverse of the Matrix?
  191. Software Engineering? I don't think so by PetoskeyGuy · · Score: 3, Insightful

    Software crashes because it's acceptable and information about how to make programs that don't crash is sometimes hard to come by.

    There are programmers out there who have spent years coding and learned how to avoid buffer overflows, check return codes, and fail safe if something unknown happens. But these things are not taught in school and even if they are, someone is going to make a mistake.

    Software Engieering never advances. We don't follow the blue prints, we send out the constructions workers and makes sure something is standing ASAP so it looks like were working. Boss is coming, put some drywall up - we'll wire it later. Some guys worked on a really safe way to build the stairways, but his last company patented it so we'll have to do something else this time.

    As an industry we don't learn from our mistakes. We reinvent the wheel time and time again but this time it's transparent, chrome and glows in the dark and square. Things are moving too fast and the old can't teach the young to avoid their mistakes because they are considered dinosaurs after a few short years. So we make the same mistakes on the "new" systems over and over.

    Plus the system feeds itself this way. This software sucks, I better upgrade.

    We would need something like standard Building Codes and Inspectors. When real buildings fail people could get hurt or die, but when a computer fails you reboot. It's just not worth it economically to make a program that never crashes. It would be obselete by the time it's done.

  192. Features vs Stability. by Tekman3 · · Score: 1

    Every Software project that I've been a part of has always been a battle between adding more features or just keeping things stable as possible. The problem you run into with just keeping everything stable is that your competition is usually willing to sacrifice stability to add more features. When the consumer goes to buy a peice of, the first consideration is the number features is claims to have. You don't find out how stable it is until you break the seal and try it out.

  193. Several Factors by null+etc. · · Score: 3, Insightful
    There are several causes of software crashes. Let's address the obvious ones:
    • race conditions. From the FreeBSD Developers' Handbook: "A race condition is anomalous behavior caused by the unexpected dependence on the relative timing of events. In other words, a programmer incorrectly assumed that a particular event would always happen before another."

      Race conditions are particularly difficult for developers to address, since they propogate at many levels within the system (hardware level, OS-assigned resource level, application instruction level, etc.) Also, only realtime operating systems or simple embedded systems guarantee the relative ordering of certain events. Complexity has a direct correlation to the inability to guarantee timing.
    • deadlocks. Deadlock occurs when multiple processes compete for limited resources. From Sun's Java Classes: "The simplest approach to preventing deadlock is to impose ordering on the condition variables." Sometimes, it is difficult or impossible to guarantee cooperation among competing resources.
    • unsafe application environments. An operating system can establish limitations upon applications, such that those applications never exceed certain safety boundaries (e.g. access to areas of the filesystem, system resources, etc.)

      Most operating systems that thoroughly employ these limitations are considered "user-unfriendly." More user-friendly operating systems, such as Microsoft Windows, inherently eschew these safeguards by default, allowing applications to perform actions that potentially result in a crash. Application environments such as Sun's Java do a good job of "sandboxing" an application's access to resources, such that system crashes are unlikely.
    • unsafe hardware architecture. A computer's hardware consists of a primitive architecture that is unable to guarantee proper operation. The current PCI bus and "IRQ" interrupt scheme is particularly susceptible to computer crashes, if hardware drivers are programmed incorrectly.
    • third-party software and hardware. The support for third-party software and hardware results in an operating system environment which is open and generalized enough to be susceptible to crashes. For example, if you allowed anyone to come into your house and plug any manner of devices into your power outlets, you could conceivably experience a power outage as the circuit breaker kicks in to prevent electrical damage. That's the danger of exposing your outlet to strangers.

      In order to create a system that enables applications to perform tasks as complex as controlling the entire computer (e.g. screen savers, hotkey programs, power toys, etc.), applications must be given the theoretical power to perform tasks that can crash the computer. The result is that the computer crashes when the application works improperly.
    • application complexity. Regardless of how smart a developer is, the developer's ability to guarantee the functional correctness of a system decreases in proportion to the complexity of that system. Simple systems therefor are much less likely to crash than complicated systems. Whether they do, or not, depends on the safeguards that were put in place to augment the developer's ability to guarantee the functional correctness of a system. NASA's procedures for programming misison-critical systems relies on any number of safeguards to ensure functional correctness of those systems.
    That's a good starting point, for now.
    1. Re:Several Factors by dszd0g · · Score: 1

      I was skimming over the responses to this article and the above is the first one I saw that addresses the real issues.

      If we want reliable operating systems the above issues need to be solved.

      Race conditions can be avoided using semaphores, but most modern operating systems and firmware are loaded with them. Most companies seem to feel that if it won't happen very often it is not worth the time and money to fix. Using semaphores then can create deadlocks.

      I do not see a good way to solve the deadlocks problem. From Tanenbaum, there are four conditions that have to be met for a Deadlock to occur (I am rephrasing them here):

      Mutual exclusion: Only one process may use a resource. Some resources can be spooled, but no solution to this exists for most resources.

      Hold and wait: A process can request a resource while keeping a hold on another. We would need to develop a way to predict what resources a process will need. A lot of programs resources depend on what input they receive. A program can't predict what will happen in the future.

      No preemption condition: Resources may not be taken away from a process; the process must release them. There is no good way to take resources away.

      Circular wait condition: More than one process, each waiting for a resource held by another process, where the order is such that they form a circular wait. One would have to come up with an order that programs have to request resources in to solve this issue, and because programs vary in functionality, no one order would work for all programs.

      So unless someone can come up with a better way to manage resources, we will always have crashes.

      As far as the application issues go, I believe that on a good operating system, no user level application should be able to crash the system. If it is possible, then the user is being given access they should not be given.

      That leaves driver stability. One can standardize the driver API and provide templates. Microsoft takes the approach of driver certification. Open source operating systems take the approach that anyone with the skill can fix a broken driver.

      --
      This message is encrypted with Quad ROT-13 to protect the author's copyright under the DMCA.
  194. "Stability" is in the eye of the admin by LazloToth · · Score: 2, Interesting

    These are true statements:

    -In our server room, which, admittedly, is a little crowded, a Windows 95 box was disconnected from the network but accidently left running. It stayed up for more than a year. No load, of course, but it stayed up. It made the hair on my neck stand on end.

    -In the same server room, a clone PC running Suse Linux 7.0 ran for just short of two years without a reboot. It would have gone longer had the old, 2 gig hard disk not died a clunking death. Fortunately, the web data was on a different disk. We loaded another system drive and had our departmental web/Samba server up in minutes.

    -We have a Compaq Prosignia 200 running NT4 and Raptor 6.0 Firewall. It has seen uptimes exceeding 9 months on more than one occasion. Would have gone longer, I think, were it not for some memory leaks in the Raptor management console snap-in.

    I point these things out so as to ask the question: how stable is stable? Hey, *nix has been my passion for years, but I've seen for myself that NT4 and, now, Windows 2000, can perform well if they are set up by someone who knows what s/he is doing. I believe impressive uptimes can be attributed to many things, but I do not always blame the OS code for the bad things that happen.We all know what bad firmware and drivers can do. I'll take NT4 on an Alphaserver over Linux on a Packard-Bell any day.

    Of course, Linux on the Alphaserver is better yet . . . . : )

    --


    It's only funny until someone gets hurt. Then, it's hilarious.
  195. Actually not a law of computers by Sycraft-fu · · Score: 1

    But of science in general. It is know as the doctrine of Strong Inference and is our currently accepted doctrine for scientific proof. Proposed by Karl Popper in his book The Logic of Scientific Discovery, it does a good job of solving the problem of induciton.

    The problem with inductive proofs or arguments is that, unlike deductive proofs, even if the argument is valid, you can still never be sure that it is true. For example if I say that all ravens are black and I claim this is so because every raven I have ever observed is black. Well fine, but the possibility exists that the next raven I observe will NOT be black, so I can't be certian I am right.

    The argument often given for induction was kind of a circular one. We believe induction will work in the future, becuase it has worked well in the past. Ok, great, but that is ALSO an inductive argument.

    Well Popper said that what we do is NOT prove things ture, but prove them false. So we propose a theory, and then test it in every way we can to try and prove it wrong. We try and test all the alternate theroies, all teh things that could invalidate our theory. Well, if we do that and our theory stands up, we can then say with a great deal of confidence that yes, our theory is correct. Not 100% certianty, but good enough.

    1. Re:Actually not a law of computers by Mac+Degger · · Score: 1

      Hmmm....thing is, induction isn't about proving the future...it has more to do with an argument being put through the scientific process, put up against rivalling theories. Kind of darwinian, with the theory which explains the most in the simplest fashion winning...temporarily, but only to be replaced with a theory which explains more and/or better the already observed facts, hopefully in a simpler fashion.

      So we don't really deal with true or false; we deal with what, at the moment, most accurately tells us the most in the simplest way.

      So in the example with the ravens, saying that you must always take into account the fact that the next raven might not be black needs a more complex theory: one which includes a rationally for expecting that, and one which explains why it could be possible. That theory is essentially the same as my theory, but with a little proviso attached [it proposes a more complex theory, but with no explanation, thus making it an invalid theory].
      But that proviso is not explained in the theory, and neither is it a simpler version of my theory...so it does not pass the scientific method, and the theory that ravens are black (albinism, environmental effect etc excepted) is accepted as the better theory.

      --
      -- Waht? Tehr's a preveiw buottn?
  196. Nature of Computing by EdMcMan · · Score: 1

    Computing is extremely layered now-a-days. Think OSI model. But really - when you write a program, how many layers does it go through that you never even touched?

    Hardware (obviously), BIOS, Operating System, Drivers, APIs, Libraries, Compilers, etc etc. It's no wonder that along the way something will break. Part of it is just a matter of thinking differently. APIs are often not written in a way that is very logical to me, and thus I would be more inclined to make a bug using one.

    As computers and operating systems continue to get more advanced, the likelihood of bugs and crashing increases. Error handling throughout layers is not good at all. Hopefully new higher level programming languages will evolve that make things like that more simple to implement.

  197. I don't know if that is true by zogger · · Score: 1

    Really. If you think about it, just when system x starts to get matured, and stable, WHAMMO, the company releases a brand new system, back to bug hunting and instability, and just slapping a stable label on something is that-a label. Consumers MIGHT want a stable system that did the bulk of the normal stuff they wanted to do, IF it was sold/pushed in mass quantities. Who's tried it? Where is it? If all you see on the road is belchfires, you might not know there were other brands out there.

    Next question is, which OS company would be willing to make a good system, then quit! Just build it good, leave it simple, then just.. stop. Stop adding bells and whistles, make it once, make it correct, charge what you need to charge, then stop. would people buy it? I don't know, maybe. People buy luxury cars sometimes because they feel they are getting reliability as much as class and comfort.

    The reasons why we have cycles of instability are marketing and profit pressure for the most part, there's little profit in something that works quite well, you sell it once, then lose a customer. There's a huge and artificially created market in "works well enough, figure out the shortest psychological human annoyance time between releases, then release". Who really wants to put themselves out of business? And as it applies to OSes, the drive for new apps, which *could* be somewhat improved actually if the world class stable no bugs no improvement needed OS was developed that coders could code for without having to change all the time. Some closed propietary OS could do it, open source I am not sure, someone would fork it, go on, change things enough that the old stuff didn't work on the new version, which would mean back to the cycles. And the pressure of stopping the company would be immense, it would almost have to be written into the incorporation papers and contracts from day one. A voluntary corporate time-out and dissolution on completion of the task.

  198. Hooray for anecdotal evidence! :-) by Dr.+Photo · · Score: 1

    My Windows XP box, which is my fileserver, has been up for 5 months so far.

    My OS X box, which I use for web browsing and word processing, crashes about once every three days.

    Now, I certainly have some bones to pick with Microsoft, but Apple is no better.


    My friend has brown hair. He also won the state lottery.

    Clearly, brown-haired people are more likely to win the lottery. I suggest buying some hair dye today! :-)

  199. It's obviously a hardware problem... by IDigUNIX · · Score: 1
    ...as all good programmers would tell you!
    Seriously though, I've got a Zaurus, and while I haven't spent that much time scanning the hardware specs, I doubt that there's very much error correction packed in there.
    As a proof of concept, I suggest overclocking your PC's memory, or up the PCI bus speed about 10Mhz.

    Anyone care to guess that's part of why true UNIX hardware costs so damn much? Sun, for instance, implements CRC and stuff on the RAM, the memory bus, and the I/O bus. And I can definitely count the total number of times my Ultra 10 has crash in the last 5 years on 1 hand. Not including the thumb.

  200. But I'm a MS bashing whore! I can't stop! by switcha · · Score: 1
    My OS X box, which I use for ... word processing, crashes about once every three days.

    Oh, dude, you must be using MS Office! ;)

    --
    You know what? ... A little club soda *did* get that out!
  201. Bravo! by dcavanaugh · · Score: 1, Insightful

    Now that Microsoft has been marketing fragile products for 20+ years, it should be no surprise that we have Comp. Sci. faculty with a tolerant view of instability. Some of them grew up with this stuff. If M$ "state of the art" is really good enough, then maybe software has become so commoditized that we just relegate everything to the H1Bs and let it go at that.

    True story: My wife was in the hospital maternity ward. This is a modern US hospital, not some third-world tent. For about 24 hours, they had her connected to all kinds of sensors which were connected to a Dell PC running a data collection/graphing program on what appeared to be Win 2k. The application was a joke. The nurses fumbled and bumbled with it; crashed at least once. Fortunately, the important things went well (it's a boy), but no thanks to our friends in Redmond. Had there been a problem that those sensors were supposed to detect, we would have been screwed. As an expectant father, my primary job (at delivery time) is reassure Mom that all is well. Seeing this Windows app sputtering along made my job a bit tougher. Let's hope things are a little better in the ER or ICU.

    1. Re:Bravo! by Anonymous Coward · · Score: 0

      I see. So crappy third-party apps are the fault of MS? Using the same mentality, I could blame Redhat for remotely compromisable SSH problems. Actually... Redhat sold me the software/support... I think that would make them more responsible than the case you point out... Interesting.

    2. Re:Bravo! by Mr_Silver · · Score: 1
      For about 24 hours, they had her connected to all kinds of sensors which were connected to a Dell PC running a data collection/graphing program on what appeared to be Win 2k. The application was a joke. The nurses fumbled and bumbled with it; crashed at least once. Fortunately, the important things went well (it's a boy), but no thanks to our friends in Redmond.

      Unless the application was written by the "boys at Redmond", how could it be their fault?

      By the sounds of your comment, it was the application crashing and not the operating system. Therefore your effort would be better spent complaining about the company that wrote the application rather than Microsoft.

      After all, you don't bitch about the kernel developers if OpenOffice bombs on you, do you?

      --
      Avantslash - View Slashdot cleanly on your mobile phone.
    3. Re:Bravo! by WampagingWabbits · · Score: 1

      True story: My wife was in the hospital maternity ward. This is a modern US hospital, not some third-world tent. For about 24 hours, they had her connected to all kinds of sensors which were connected to a Dell PC running a data collection/graphing program on what appeared to be Win 2k.

      I'll take the tent thanks.

    4. Re:Bravo! by dcavanaugh · · Score: 1

      "Unless the application was written by the "boys at Redmond", how could it be their fault? "

      After the app crashed, the misbehaviors continued until reboot.

      The charge: Failure to cleanly terminate an errant process

      The verdict: Guilty

  202. And actually by Sycraft-fu · · Score: 1

    You could NOT be certian that your product would never cause the system to crash. Why? BEcause it must interact with other problems not under your control. Suppose that your product made a call that was fairly uncommon, only 1 in a thousand programs use it. Now suppose that the given call then interacts with a given driver for a subsystem, say graphics. Suppose then further tha a given manufacturer releases a buggry graphics driver, but only buggy on taht one given call. Your program would then, when it made that call, indirectly cause the system to crash. Though not your fault, your program would be identified as part of the cause since the call is a rare one.

    That is what really kills the reliability thing, the interaction of different leves of components written by different people. Given a hardware configuration one company with enough time could produce a system that, barring hardware failure, would never crash and verifably so. There is indeed hardware out there with this level of reliability (like an AT&T 5ESS/Lucent 7R/E phone switch) however it is highly expensive and very unflexable.

  203. Don't crash much here by Anonymous Coward · · Score: 0

    If you still get the same amount of crashing that you got 30 years ago, you must be using horrible software. I've had builds of Win 98 that stayed up, without a reboot, for over two years, but the same applications were always run on that computer and those applications didn't crash it. As a software engineer, yes ENGINEER (I do math, not silly database work), I test all my code and make sure each piece works. Problems occur, and sometimes it's the users who catch them, but I've never crashed a system. I've corrupted the memory, but who that has written a great deal of software hasn't?

  204. Re:Mandate memory checking tools...are not enough. by hawkstone · · Score: 1

    Well, yes, kind of.

    1. You're absolutely right that there is no substitute for good testing. Test, test, and then set up a test suite, and then run that test suite every night. Maintain and add to that test suite as you write more code. But I don't think that's a complete solution.

    2. It's hard to test everything, even if you are religious about it. The bugs I was describing are nefarious in that you can use the program, even with testing, and not realize they are happening until someone uses your program or library in a way you didn't think about.

    3. For my schoolwork, my assignments are on the order you describe -- maybe 5-10 thousand lines on average. For these, I have almost never needed it. For my full time job, I work on projects ranging from 0.5 to 2 million lines of code. Those are the situations where it's really, really helpful. Why? Because:

    4. For one reason, in large projects you didn't write most of that code yourself, and it's not always obvious where to start looking and what the code you're looking at is supposed to be doing.

    5. In addition, those kinds of bugs are the ones that don't usually crash your code right away. You might get a segfault thousands of lines of execution later.

    6. Even worse, these bugs will sometimes trash the stack, and you can't even get a good core dump. A good memory checker will find the problem where it started, not where it caused the crash.

    7. Lastly, I've never used valgrind, but I have used purify; it may be that valgrind is less complete. (It is, however, thousands of dollars less expensive, and that makes it accessible to most everyone.)

  205. It's about customer satisfaction by Anonymous Coward · · Score: 1, Insightful

    The issue here is that we're talking about a product sold in stores to a large number of customers. And not a particularly cheap product, for that matter.

    Customers have every right to expect value for their hard-earned dollars. If the customer's computer meets the specs printed on the box, the game should install and run. Period.

    The publisher should give refunds to anyone who bought the game in good faith and couldn't run it.

  206. Complexity and economics by dsplat · · Score: 1

    Over time, the size and complexity of the problems we can solve with computers has increased because of two factors. First, hardware has become faster, more reliable, and tailored to our use. Secondly, the software tools we use have increased the number and scope of things we can abstract away. Thus, we continue to work at the boundary of our capabilities, or not terribly far from it. The demands of scientific curiousity and the marketplace will continue to drive that.

    Up to a point, we demand reliability. For all that Windows has a reputation for crashing, Microsoft has improved it over the years. Whether Windows XP is more or less stable than Linux or *BSD can be debated endlessly. But there is no refuting the fact that it is more stable than Windows 95 was.

    Beyond a certain point, additional reliability cost more than it is worth. This is true even if we are talking about the most demanding uses. When the cost of additional reliability makes a technology unaffordable, compromises will be made. The point at which extra reliability is too expensive differs from user to user and application to application.

    It is not clear that it is possible to write software that is provably bug-free. What is clear is that reducing the number of bugs while holding the development methodology constant will tend to increase the cost. Extreme Programming and other similar disciplines have argued, convincingly, that in the long run, this can reduce costs over the life of a product. But when you are trying to hit a market window, or launch a product before your venture capital runs out, corners often get cut.

    I think that the long term trend is for each lower layer of abstraction to become more reliable over time. At the same time, more is added at the leading edge. New development, especially in uncharted territory, has new bugs.

    I can't confirm this with statistics, but I suspect that the reliability of software as an aggregate has either varied around a constant, or has improved slightly over time. What I wonder is whether the reliablity measured against the total amount of code has been slowly improving.

    --
    The net will not be what we demand, but what we make it. Build it well.
  207. The same question, rephrased by Xeth · · Score: 1

    Why do people still run windows?

    --
    If your theory is different from practice, then your theory is wrong.
    1. Re:The same question, rephrased by mlk · · Score: 1

      I thought the Zaurus ran Linux ;)

      --
      Wow, I should not post when knackered.
    2. Re:The same question, rephrased by 1seconddelay · · Score: 1

      Because your avg joe or sue six pack dont know how to really use linux. Its like you learning to read and going from kiddie book #1 to the bible in two hours. Linux IS better but most folks dont know what they are missing. They just think a 'puter is 'puter.

  208. Real world more stable than virtual world by OldSoldier · · Score: 1

    It's a good question, but is complexity the reason? Surely someone could benchmark increasing complexity vs "time to failure" of a bunch of systems, some mentioned already. Seems cars are much more complex today than the original Model-T. Do they fail more often or less? Ditto for airplanes. I would imagine that a plot of increasing complexity of these sort of systems vs "time to failure" would be relatively flat, or at least no where near as sharp as a similar curve for software systems.

    I would conjecture that it's the "virtual" nature of software that makes the interactions difficult to predict and what allows systems to fail. My favorite example of a non-software failure is the situation that lead to someone becomming the President of the United States with out ever being involved in an election. This president was Gerald Ford. For those too young, Nixon's elected VP resigned, Nixon appointed Ford, then Nixon resigned. Frankly I consider this a failure of the US Constitution, and the sequence of events that led up to this an "unforseen interaction". Surprisingly this "bug" in the US Constitution still remains unfixed.

    My belief is that hardware carries baggage with it. People build things with hammers, nails, wood, brick, steel, and etc. These things place design restrictions on the designers and that these restrictions help with stability. In software, or anything virtual, the analogous "building blocks" are all in our minds and the features of these virtual components are less well understood that physical ones.

    Another possibility is mere familiarity. People have been building stuff with real components for a lot longer than they have been building things with virtual components. Perhaps it's merely that length of time that is the difference. Once we've had a sort algorithm in our tool kit for as long as we've had a nail or a lever things will start to improve on the virtual front.

  209. Great by Sycraft-fu · · Score: 1

    So you have found a particular configuration of software, hardware and usage that doesn't cause any crashes. Ok, so I can do that with closed source too. Our DCs at work have never crashed either.

    Now, let me come play with your system. Let me try new software and hardware. I promise to use only open source apps and drivers, but I'll quickly find a combo that will crash your system, even if I use only stable releases. I'll eventually hit on a combo that interacts in an unforseen way and causes a crash. For that matter, I'd give good odds that I could cause a crash simply by misuising the system. I give it enough kinds of input it isn't prepared for in enough ways it didn't think of, it'll crash.

    That's how security exploits happen. There was an exploit in BIND a while back. IT affected basically every version EVER. Years of opensource code, yet there was an exploit. When you used it in an unintended way, you could cause it to malfunction.

    Now I don't intend to debate specifically wether OSS is more or less secure than CSS, that just turns into a stastics game that is useless. I am just pointing out that OSS isn't perfect. The code can be open, widely reviewed, used often, and still an unforseen interaction can happen.

  210. oh please. by twitter · · Score: 2, Informative
    Too bad there are so many things you can't do when you've crippled your hardware with an OS with so few apps.

    Debian now has 8,710 applications. There are few things I'd like to do that I can't. I spend much less time "rebuilding" computers and more time doing those things now.

    I mean, you can't do much except play back multimedia,

    Hmmm, ever heard of film gimp? Sure, there are some hardware problems but those will go away as M$ dies. Hardware makers are already taking free software into account.

    there's seldom any games you can play on it.

    I'm not a game boy, quake II is good enough for me. More will come, in the mean time dual boot. Woody takes care of that auto-magically now.

    I liken it to a rock in the middle of a field. Damned stable, that rock. It just sits there.

    Yes that's the picture you drew. Reality is different. Think of it as a tremendous magic building, where everyone is invited to come and do as they please. Building materials are free, and so long as you follow a few basic guidlines, your changes and additions will be as sturdy as any piece and everyone can enjoy it at once.

    --

    Friends don't help friends install M$ junk.

  211. Actually by Sycraft-fu · · Score: 3, Insightful

    One of the biggest barriers to stability for something like Linux (or Windows) is the fact that it must accomadate new software and hardware configurations all teh time. If you take a Lucent 7R/E phone switch it will run on a given hardware (the 7R/E) hardware. IT will run Lucent's OS, it will do only what it was designed to (switch phone circuts). There is no putting new hardware in it, less it be Lucent approved, there is no loading of new apps to make it do things, less it be Lucent approved, and so on.

    IF you want an open OS that will run with hardware by whoever happens to want to make it and software by whoever hapens to want to write it, you cannot have a verified design that is 100% reliable. Unforseen interactions WILL happen and crashes or other malfuncations will result.

  212. Re:because someone was very curious and decided to by Anonymous Coward · · Score: 0

    Well, on AIX they hide a "". Gotta love IBM

  213. Risks Digest by dsplat · · Score: 2, Informative

    For many megs of answers about why software isn't 100% reliable, read Risks Digest.

    There is indeed hardware out there with this level of reliability (like an AT&T 5ESS/Lucent 7R/E phone switch) however it is highly expensive and very unflexable.

    I don't mean to bash AT&T. In fact, the very infrequency of this sort of problem is a strong argument for their reliability. I had to go back to the pre-Lucent days for this one, folks. However, they do have some occasional bugs in their software. And it makes the news when they do:

    Risks Digest, Volume 9: Issue 69, Tuesday 20 February 1990

    --
    The net will not be what we demand, but what we make it. Build it well.
  214. silly boy. by twitter · · Score: 0
    So you have found a particular configuration of software, hardware and usage that doesn't cause any crashes. Ok, so I can do that with closed source too.

    No, I've found many combinations of sofware that work on many platforms. I've built up everything from a 33MHz 486 terminal machine for email to a Soyo Dragon. I'm currently running six computers and a P90 thinkpad. I've used them for everything from particle transport and fluids calculations to ripping CDs. None of them has ever just crashed. I use one of them everyday for email, browsing and the usual stuff. Sometimes applications flake out, no big deal.

    Now, let me come play with your system

    I doubt you could be as random as my 18 month old daughter. Oh yeah, I'm sure you could do something nasty so just stay away. Normal and abnormal use has caused me no problems. Malicious use is something I'm not willing to put up with.

    There was an exploit in BIND a while back. IT affected basically every version EVER.

    I remember that. It did not affect the then currently stable Debian bind and no harm came of it. There is no comparing the world of M$ exploits to the few free software rabbits you might pull out of your hat. The game is not useless, the results are real.

    --

    Friends don't help friends install M$ junk.

    1. Re:silly boy. by TopShelf · · Score: 1

      The point isn't whether a closed or open source solution is necessarily more stable due to the merits of the programmers. Rather, in the closed source realm, corporate demands have emphasized feature rollout ahead of absolute rock-solid 100% stability, and the markets have by and large accepted this. It's a classic market failure, really - the incentive to get product out into the wild is well worth the headache of dealing with support issues on the backside, along with providing room for a "New & Improved" version that can come along in a couple years and keep the revenue stream pumping...

      --
      Stop by my site where I write about ERP systems & more
  215. Scientific American cover story this month by ChrisCampbell47 · · Score: 2, Informative
    Scientific American magazine has this topic as their cover story this month (June issue).

    Computer, Heal Thyself

    "Systems inevitably fail. The key to reliable computing is building systems that crash gracefully and recover quickly."

  216. "Inability?" Please by Anonymous Coward · · Score: 0

    Windows XP is incredibly stable for something that runs on such a huge variety of hardware. "Inability to create a stable system?" Please.

  217. well...this might be related by tx_mgm · · Score: 1

    my playstation 2 is still broken. sony manufactured them with shitty quality lasers to save costs and gaurantee that people will need to either shell out almost as much to repair them as it would cost to replace them....
    now if you still need me to spell it out, it's entirely possible that some propiatary software is flawed intentionally for job security...imagine the hit that tech support would take if software suddenly worked all the time!
    But no new playstation for me! I refuse to fuel this evil business model that sony has deplayed. And I've got graduation money sitting in the bank just waiting to be spent... ...what? Soul Calibur 2 will be out soon? Aw, god DAMMIT!

    --
    Gentlemen...BEHOLD!
    -Dr. Weird
  218. 2 things by GnuVince · · Score: 1
    1. I think features are a big problem. Let's take ICQ, that thing is so loaded with crappy, useless features! But these features contribute to fragilize the application. Follow the "KISS" principle (Keep It Simple, Stupid), don't add stupid/useless features to your applications.

    2. Testing. Recently, I started writing unit tests for my applications, and I can tell you that this is something that should pushed more! They can definitly help discover bugs in your application. I think schools should teach unit testing and encourage students to always use them.

    These two points could help make applications somewhat stabler. Also, using "safe" languages (Lisp, Python, Ruby, ML, Smalltalk, etc.) is another step in the right direction; let the compiler/interpreter worry about low-level details, you just make sure that your code does what is expected.

  219. i'll tell you what we would have to do by Anonymous Coward · · Score: 0

    we would all be using identical computers with identical hardware, no input or output devices and running unix

  220. OT: Electric overconsumption by maynard · · Score: 5, Insightful

    I used to leave all sorts of machines running 24/7 in my apartment. Several Suns, a couple PCs running Linux and BSD, an SGI, blah blah blah. I did take care to turn monitors off though. I kept this up until I turned off all my systems (except the mail server) for a two week vacation: I was shocked to discover the next electric bill arrived a good $80 cheaper. I've since cut back to a single machine which I turn off at night. No more crazy uptimes, but honestly - I'll take the money. I wish there was consumer demand for low power destop computing. I guess I'll just have to migrate to a good laptop for the low power option. But you're absolutely right: a few computers can suck up a lot of power, with damaging results to one's electric bill. --M

    1. Re:OT: Electric overconsumption by doorbot.com · · Score: 5, Interesting
      I wish there was consumer demand for low power destop computing.

      My mail/web server would run fine off of something rediculously small, like a Sharp Zaurus. Here are my requirements, and I will pay for one if it is available.

      1. Non-x86 hardware designed for lower power -- extra speed is nice, but not required; Pentium 200 speeds or better
      2. Low power, with 9V or AA-based battery backup (changeable while system is running)
      3. 3" - 4" LCD (with manual switch to turn off) at 640 x 480, or some sort of LED array/VFD, because all I really need is a low power terminal supporting 80 x 24 characters.
      4. USB port for keyboard
      5. Serial port
      6. Two or three 10/100 NICs
      7. Full (Debian) Linux support of all hardware
      8. Some sort of expansion (PCMCIA maybe, or via USB)
      9. Support for CompactFlash for backups
      10. Hardware encryption would be a nice goodie but not required


      Yes, I could probably build this with PC104 components, but I want a pre-built product, and I'm willing to pay for it (maybe $300 - $400).
    2. Re:OT: Electric overconsumption by Anonymous Coward · · Score: 0

      ... for a two week vacation ... the next electric bill arrived a good $80 cheaper...

      Well, no lighting, heating/cooling, cooking, laundry, television, hot water,...

      Maybe you's save more on electricity if you stayed on vacation all the time ????

    3. Re:OT: Electric overconsumption by killerc · · Score: 1

      I wish there was consumer demand for low power destop computing.

      Motorola's G3 and G4 processors are known for their low-power consumption, as well as Via's C3 line of CPUs.

    4. Re:OT: Electric overconsumption by Anonymous Coward · · Score: 0

      Just wondering - do you have something against ALL possible x86 implementations???

    5. Re:OT: Electric overconsumption by agentk · · Score: 1

      Sounds like you need a Fujitsu Lifebook.

      --

      VOS/Interreality project: www.interreality.org

    6. Re:OT: Electric overconsumption by Anonymous Coward · · Score: 0
      Well, no lighting, heating/cooling, cooking, laundry, television, hot water,...

      Maybe you's save more on electricity if you stayed on vacation all the time ????
      Nope, at the time my sister was staying with me and she used basic utilities during my vacation. It was definitely the computers which sucked all that electricity and caused the higher electric bill. --M

    7. Re:OT: Electric overconsumption by Reziac · · Score: 1

      I have two machines that run all the time: the P3 uses about $8/mo. and per a power calculator I once ran it thru, half of that is the gig of RAM. OTOH the P233/256mb doesn't affect the bill by more than a buck (mind you, this is California power, thus severely price-inflated). They both use the same monitor (the new 19" uses somewhat less power than the old 15" did), which I do sleepmode during warm weather, but not during winter -- figure the thermal stress of coming up from 55F in the morning will cost me more in shortened lifespan than the few extra bucks to let it run overnight during the winter months.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    8. Re:OT: Electric overconsumption by doorbot.com · · Score: 1

      Just wondering - do you have something against ALL possible x86 implementations???

      No, but I'm not a big fan of the BIOSes on most modern PCs. My Sun Ultra 30 has a great BIOS (Open Firmware) and I think it'd be great if someone made non-Windows x86 PCs that used OF. As far as I know, those don't exist, so I'd rather look to other hardware platforms (PPC seems promising).

      Also, I like running my servers on less-common hardware, as it makes buffer overflows and such a bit more difficult -- Debian still works the same so if I can get a bit of added security from obscure hardware, I'm prefer to use something other than x86.

      I'm really looking for something like my Javastation, but designed instead to function as a very lightweight server instead of a client.

    9. Re:OT: Electric overconsumption by WasterDave · · Score: 1

      Tried a LART?

      --
      I write a blog now, you should be afraid.
    10. Re:OT: Electric overconsumption by theLOUDroom · · Score: 1

      Why not use a Zaurus?

      $200 for the Zaurus plus $30 for the ethernet card and you're set.

      --
      Life is too short to proofread.
    11. Re:OT: Electric overconsumption by Game+Genie · · Score: 1

      If you didn't require linux support, an Apple Newton MessagePad 2100 would do this, for much less money.

  221. linux by 1seconddelay · · Score: 1

    www.thelinuxshow.com live interviews on streaming it is pretty cool.

  222. Computer crashes as pertaining to chaos theory by Anonymous Coward · · Score: 0

    In the early days of networking the mathematicitian Benoit Mandelbrot had his attentions drawn towards a problem in a stability found by the engineers. He proved that the amount of distortion and therefore computer error (crashes) is always a proportion of the total time studied and that crashes can never be eliminated. Quantum effects, current bleed, malformed chips, and other factors will forever combined to make crashes occur at random intervals. Any software/chips currently made are simply better at compensating for these perturbations.

    further reading == Gleick's Chaos

  223. When not hardware.... by Anonymous Coward · · Score: 0

    The magic words are "single input queue clashes".

    I believe the bulk of crashes in the OSes of choice I've run since '95.

  224. Too many cooks... by Insurgent2 · · Score: 1

    Back when you wrote programs for the Apple ][e, you know what hardware you were writing for. Every machine pretty much had the same thing. Yet even on the early IBMs you had to take into account that they could be running mono, cga or (rich people) ega and all from different manufacturers who has varying degrees of "compatability" in a young environment and young dev tools.
    Fast forward to today and multiply this by the hundreds or thousands of different pieces of hardware all from different manufacturers all writing "drivers" with different levels of compliance and reliability stacked on top of the myriad of 3rd party/OS APIs that you use all based on standards (or not) that are open to interpretation...add other variables ad nauseum
    Sometime I find it amazing that things work as well as they do.

  225. it DOES cause an error by ChrisCampbell47 · · Score: 4, Interesting
    Interesting that the first two posts in the thread had English syntax errors in their first sentences. We can still understand it, but compilers/CPUs would have problems. Seems that the real problem is the difference in the natures of wetware and hardware.

    Actually, "syntax errors" like this DO cause a problem for wetware systems -- they cause the brain (well, mine at least) to kind of glaze over and take the remainder of the sentence/thought much less seriously. Kind of like aborting/returning out of a subroutine.

    Here in the Slashdot world of "definately" and "righting", I've learned that any posted comment that makes high-school-level grammatical or spelling errors is not worth my time and I immediately skip the post. I've been doing this quite rigorously lately -- blah blah blah "seperate" PAGE DOWN.

    OK now, everybody nod and think I'm talking about someone else's posts ...

    1. Re:it DOES cause an error by fucksl4shd0t · · Score: 4, Funny

      Here in the Slashdot world of "definately" and "righting", I've learned that any posted comment that makes high-school-level grammatical or spelling errors is not worth my time and I immediately skip the post. I've been doing this quite rigorously lately -- blah blah blah "seperate" PAGE DOWN.

      You are just asking for it. :) Yes, you are. So here it is:

      "high-school-level" should not be hyphenated. That is a High School level grammatical error.

      That sound you hear is the toilet flushing your shit away.

      --
      Like what I said? You might like my music
    2. Re:it DOES cause an error by Mac+Degger · · Score: 1

      Wow...you must have never heard the phrase "never judge a book by its cover". It basically means that you should judge on content, not on packaging. And the reason for that is because they don't correlate at all; the packaging, although it might sometimes be indicative, says nothing about the content.

      Someone might be slightly hung over, feeling sick, be dislexic, or just plain not care about his spelling on a 'dumbass' message board, but could (and often does) have something important, relevant or insightfull to say about the subject at hand.

      You just limit yourself by using a wheat-from-chaff selection process which has no basis on logic or even empirical data.

      And just to prove a point (while commiting a logical phalacy); most goatse.xc trolls don't make spelling mistakes ;).

      --
      -- Waht? Tehr's a preveiw buottn?
    3. Re:it DOES cause an error by bm_luethke · · Score: 2, Insightful

      I think you loose alot (and I am sure you will quickly ignore my posts).

      The poster may not be a native english speaker.

      The poster may have my problem (dyslexia, learning disability, etc) and still be quite competant in what they are trying to express.

      So, I can't spell. I have a physical problem (dyslexic - actuall medical diagnosis), I also don't have time to spend putting every post through a spell checker. It still doesn't change the fact of the content of my posts being correct or incorrect. Then again - it is only damaging to you to ignore any wisdom given by someone who doesn't speak english well or has a disability.

      --
      ------- Sorry about the spelling, I suffer from two problems. Dyslexia makes it difficult to spell well, lazy makes it
    4. Re:it DOES cause an error by Markizs · · Score: 1

      "Here in the Slashdot world of "definately" and "righting", I've learned that any posted comment that makes high-school-level grammatical or spelling errors is not worth my time and I immediately skip the post. I've been doing this quite rigorously lately -- blah blah blah "seperate" PAGE DOWN. "

      Sorry lad. I guess you are simple average arrogant american who always forgots that there are other languages out there and that not everyone in the world knows only one language like you. I am not native english speaker and i am not shamed about that. And yes my spelling got errors and mistakes. but hell, who cares? I wouldnt want to spend my valuable time talking to average moron anyway.

    5. Re:it DOES cause an error by CBravo · · Score: 1

      like I care... You either read it with pleasure, or you can skip it. You don't want to know my opinion and I don't need to learn you anything. Please, forever skip my (CBravo) posts in the future.

      Communication errors are in abundance and syntactic ones are only a minor reason for misunderstanding. Just like in programming.

      --
      nosig today
    6. Re:it DOES cause an error by mdw162 · · Score: 1
      Are you sure about that? "High," "school" and "level" together form a compound adjective and standard usage seems to prefer hyphenation in that case.

      On the other hand, I'm no grammar expert, so this post is more of a question than an assertion.

    7. Re:it DOES cause an error by Anonymous Coward · · Score: 0

      Speaking as a nonnative english speaker (my first language is Spanish), I have to say these are mistakes that I would never understand why people make them.

      Loose/lose? To loosen a screw, to lose something.

      Their/there. Their errors are there...

      Saddest of all is then/than on slashdot. Haven't you ever written any basic? If/Then. less than. Try type if/than on a basic interpreter and see it laugh at you.

      There are many others I can never understand but I can't remember them now.

      So don't blame it on the foreigners. It's you guys that have trouble with it becuase you learned to speak first, so you get confused with the similar pronuciations. Most of us learned both the written and spoken versions at the same time, so these are not the kind of mistakes we'd make.

      That is not to say that we write/speak better. I make a lot more mistakes than most americans do. They are just different mistakes. lose/loose hadn't even ocured to me until I started reading slashdot.

    8. Re:it DOES cause an error by pesto · · Score: 2, Informative

      Actually, you're right. Words used together as a compound adjective modifying a noun should be hypenated. There's one little catch here: Because "high school" is itself an adjective modifying "level," we should put a hyphen between "high" and "school" (think of it as a first-order compound) but a longer en-dash between "high-school" and "level" (a second-order compound).

      So: high-school-level, where the second dash should be HTML entity &#2013; (but Slashcode won't allow it).

    9. Re:it DOES cause an error by Anonymous Coward · · Score: 0

      I would be happy if people would just learn the difference between "then" and "than."

    10. Re:it DOES cause an error by mdw162 · · Score: 1
      Well, I have no idea if you're right, but I'm certainly impressed by the reasoning and justification of your response. Thanks for the grammar lesson.

      I think modern English grammar rules have relaxed a lot in recent years (decades?) and so it's doubtful anyone would ever catch this type of error on a resume or whatever. But I still like to know what is "technically" correct.

    11. Re:it DOES cause an error by oliverthered · · Score: 1

      What context do people get then and than confused?

      I would rather have apples than plums.
      I would rather have apples then plums.

      Fairly obvious.

      Now then, do people really write 'Now than...'

      Please help: I don't want to make the then/than mistake.

      --
      thank God the internet isn't a human right.
  226. Tongue in cheak, foot in mouth, issame difference! by Keighvin · · Score: 1

    Of course, there's no need to mention...

    Why is it that whenever this phrase appears, you always know that the unnecessary reference is about to make a guest appearance? You can at least correct it a smidgeon, to "No need to elaborate on/expound/extoll/etc."

    Sheesh.

    --
    Any spoon would be too big.
  227. The Answer To ALL Your Problems by xeon4life · · Score: 1

    If we were to make computer crashes a thing of the past, what would we have to do, both in our software and in our operating systems, to make this come to pass?

    You would have to use Scheme. ;-)

    P.S. I'm serious.

    --
    Real programmers can write assembly code in any language. -- Larry Wall
  228. Laws of Logic by Anonymous Coward · · Score: 0

    There's a law as to why things crash/go wrong/develop new 'features' (not bugs) - but I forget the name of it, but here's the gist:

    Consider a very simple logic problem:

    An ant is standing on a white tiled floor. He must abide by 2 rules - as he travels across tiles, if he steps on a white one, he turns it black, turns left and steps forward one tile. If he steps on a black one, he turns it white, turns right and steps forward one tile. Now regardless of the size of the floor (once there are enough tiles) - the ant's motion will appear random for a period of time (eg 10,000 steps) - but eventually it will settle down into some pattern - usually somewhere above the 10,000 iterations mark. And now you have a new feature.

    Now consider applying this theory to a computer program - which has many more than two simple rules. It's no wonder that new things will pop up.

    This doesn't entirely condone the stability (or lack of) in many programs and OS's - but it does give some insight into the difficulty in achieving the holy grail - a perfectly stable, well behaved system.

  229. Containing the Damage by Salamander · · Score: 4, Informative

    A lot of people are answering the question of why there are bugs at all, and it's an important question, but I'd like to take a different angle and consider why there are so many visible bugs. Why does a bug in a driver, or even an application, bring down a whole system? In addition to reducing the incidence of actual bugs, IMO, we should also do a better job of containing the bugs that will inevitably exist even if we all use the latest whiz-bang code analysis tools (which rarely work for kernel code anyway). Some of the semi-informed members of the audience are probably thinking that's the job of the operating system; I'd argue that our entire current notion of operating systems is flawed. There are way too many components in a typical computer system that "trust each other with their lives" in the sense that if one dies all die. Memory protection between user processes is great, but there should be memory protection between kernel entities, and other kinds of protection, as well. One of the basic services that operating systems need to provide going forward is greater fault isolation and graceful instead of catastrophic degradation.

    The Recovery Oriented Computing project at Berkeley has gotten some press recently for trying to address this issue. Many here on Slashdot don't seem to "get it" because they've never worked on systems in which a component failure was survivable; they don't realize that rebooting a single component - perhaps even preemptively - is better than having the whole system crash. "Software rot" is a real problem, no matter how hard we try to wish it away. ROC isn't about saying bugs are OK; it's about saying that bugs happen even though they're not OK, and let's do the best we can about that. Another project in the same space, with more of a hardware/security orientation, is Self Securing Devices at CMU. There, the idea is to find ways that parts of a system can work together without having to share each others' fate. While the focus of the work is on security, it shouldn't be hard to see how much of the same technology could be applied to protect a system from outright failure as well as compromise. There are plenty of other projects out there trying to address this problem, but those are two with which I happen to have personal experience.

    The key idea in all cases is that current OS design forces us to put all of our eggs in one basket, and that's really not necessary. Designing fault-resilient systems is tough - few know that better than I do - but that's only a reason why we should do it once instead of devising ad-hoc clustering solutions for each specific application. Lots of people use various forms of clustering as a way to achieve fault containment and survive failures, but the solutions tend to be very ad-hoc and application-specific. Do you think Google's solution works for anything but Google, or that a database transaction monitor is useful for anything that's not a database? Fault containment needs to be a fundamental part of the OS, not something we layer on top of it.

    --
    Slashdot - News for Herds. Stuff that Splatters.
    1. Re:Containing the Damage by curious.corn · · Score: 1

      I was told (I'm not a CS) that the microkernel concept came into being for this reason. Such a kernel is an orchestra of separate processes each managing one resource. When one fails a low level 'init' respawns it warning the other which one crashed. The system is still complex and vulnerable to domino effects but restricts a flaky driver from trying to 'kill the idle thread' (a linux panic message) and messing with other system resources.
      Like in hardware, sw complexity grows exponentially to the number of variables so partitioning does limit the effort required to master it. Example: RNS arithmetic hardware. A set of 4 parallel 8 bit adders will do the work; if the overhead of the i/o decoders is small this system is much faster and leaner than a full scale 32 bit adder.

      --
      Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
  230. This is a mathematically proven un-solvable thing by jhoffoss · · Score: 2, Insightful

    You could never write software that was perfect, because you can never account for every situation.

    The solution most non-CSci people ask next is "Can't you write a program that checks for errors?" Intriguing to think about if you've never actually pondered it, but the answer unfortunately is no. You can't write a finite-state machine that can detect or correct an infinite number of states.

    To do so would be similar to calculating the "best" route from NY, NY to LA, CA. You could choose any number of roads and paths from coast to coast, with or without loops (finding them would be quite a bitch) possibly traversing every road in the US. If you don't understand why you can't calculate this, ask your neighborhood CSci major.

    The best we can instead do is safeguard the software we write as well as possible, which requires time (and therefore money) and computing power to do things like bound-checking on arrays; handling interrupts properly; and managing memory throughly, to name a few major problems in any software. Languages like Java come a long way in some respects, but are very slow. But this isn't a good enough solution, and frankly, most programmers aren't good enough to produce fully error free code.

    As revolting as it may sound to the hacker-coders out there, great programmers, software engineering, business processes, documentation, and management of the whole product are necessary to produce truly good software.

    --
    Linux: The world's best text-adventure game.
  231. We're not using the same software by Random+BedHead+Ed · · Score: 1
    We all wish that software would come to us sans bugs, but the persistence of bugs makes perfect sense. Computers have been in use for over 30 years, but we've used new software continuously throughout that period. And we'll be using brand new software again five a years from now (except for people who use Microsoft Word, which will still contain original 1.0 code along with 3 GB of patches and features - but I digress).

    Software is not always hereditary - each project, whether it be a browser or an OS or an office suite, is often a fresh start. Unfortunately you need to use software for a while in order to discover its bugs, so as long as there is new software, there will be new bugs.

    Inevitably when software becomes bug-free it will also be close to obsolescence.

  232. Nope! Case in point. by fireboy1919 · · Score: 3, Informative

    I have a Microsoft reference driver for my soundcard (i.e. Microsoft made the driver and approved it themselves). I use it on my computer.

    Unfortunately, two things cause it to fail.
    1) It doesn't play nice with other drivers on the same IRQ.
    2) Microsoft's advanced power management driver assigns it to the same IRQ as my USB port and my network card, and that can't be changed without a reinstall of Windows.

    So basically, what happens is that the sound card will eventually crap out completely and never work again (until reboot) if it attempts to work at the same time either of the other two devices on that IRQ are working.

    Keep in mind:
    1) Microsoft knows about this bug
    2) It causes system instability for lots of drivers - even certified ones

    I should also mention that there is nowhere that this bug is reported by the OS; I had to find it through trial, error, and lots of research. Win2K is not as stable as you think

    --
    Mod me down and I will become more powerful than you can possibly imagine!
  233. Two Observations by Anonymous Coward · · Score: 0

    A) 95% of the people in the software industry suck at doing their jobs. They should be making fries, sacking groceries, mowing lawns, etc. They think they're good at it and just plain aren't. Remember, bad coders can write bad code faster than: 1) good coders can write good code; and 2) good coders can fix the bad code.

    B)Look at the June issue of Scientific American; cover story: "Computer, Heal Thyself", (An End to Disasterous Crashes?)

  234. Space Shuttles are dangerous by xintegerx · · Score: 1

    "After the Columbia was lost, NASA officials said that just one missing tile could mean that safety blanket could be compromised."

    One of a billion mishaps could kill people. But consumer hardware, let alone software, is pretty safe...

    "One hundred forty four manned flights in space and only two failures," he said in an ABC interview about the shuttle program. "That's a pretty amazing safety record."

    That's a quote by John Glenn. He forgot to account for the failure of apollo. Imagine if 1 in every 48 times you used a computer it blew up? Now imagine a billion computers being turned on and off simultaneously. About 48 every month.
    Still, no accident!

    So even a software catastrophe on a personal computer is no big deal (E.G. hard drive crash) and is preventable in many ways from physical and online backups to multiple hard drives with RAID configurations.

    However, that 1 in 48 figure is for EXPLOSIONS.

    Minor things happen in software that are just annoying, that you wouldn't know about if they did on a space shuttle.

    Maybe a velcropad is missing, etc. Minor annoyances must happen. A repetative annoyance in Windows, noticed by millions of users, would be public, even if it's a minor thing like a spelling mistake. But a job-slowing mistake on a space shuttle would be a fact of life for the 5 astronauts, wouldn't it? You would never know about it.
    So space shuttles are extremely dangerous and failure prone. They are more likely to break down than personal computers, not less.

  235. Scope and Features by jkichline · · Score: 2, Insightful

    I think the issue with crashing software is a combination of problems. Obviously cost is the biggest issue. Economics is another. And time is never on the developers side. Fact is, it is not economically advantageous to write rock solid code. Why?

    First, it costs a lot of money to test and it is very difficult to keep your new code under wraps (from competition) and still offer a truly well tested system. Open source solves this problem by somewhat reducing competition since the code is free and can be tested by many people in various stages of testing. (Probably why Open Source is more stable)

    Don't forget boredom. Once a developer gets something "working" he or she doesn't want to continue to stare at the code for hours contemplating its every possible flaw. We'd rather be reading slashdot.

    Second, if your software was 100% bug free, people would never have a reason to upgrade. Guaranteed, if Windows 98 didn't crash so dang much I would never have installed Win2k. My dad had an old Compaq Presario with Windows 3.1 on it and it never crashed. He reluctantly had to upgrade to experience things like MP3's and AOL. (and crashes) I did downgrade from WinXP (Piece of doggie doo) back to Win2k.

    Third, time is of the essence. Many times I am pressured to get the code done. It is better to have a software application that works pretty good and start using it than to have it absolutely perfect and never use it. This is an expontential scale. It takes more and more time to make the software a fractionally more stable. And sometimes you find a rewrite is in order. There is a balance to be obtained.

    Some other things to consider: Scope and Methodology. The comparison was made between cars and code. I think this is an unfair evaluation because the scope of a car is well defined. You know certain parameters such as the size of the road, the speed it can travel. You have certain benchmarks it must meet, safety regulations. Software on the other hand has few of these. Operating Systems run on an incredible number of hardware and can be configured in infinite number of ways. I've found that PCAnywhere when installed with some other, unrelated software can just blow up an machine. The problem is that scope is not, and most noteable cannot be contained WITHOUT limitations. This is the reason why a Linux server running in Terminal mode with two daemons on it can run FOREVER. The scope is well defined, crap is not compiled into the kernel.

    Lastly, methodology is the best answer. The comparison of computer code to legal code is a very good one. The reason why good lawyers write good legal docs is because they have a good methodology. They know how to cover their bases. Programming language developers should consider a development methodology and set up limitations. Java and other type-safe language set up these limitations and the result is safer code. Consider narrowing this even more. But realize that limiting what the developer can do has economic effects. What good is the worlds tightest coding methodology if VBScript still exists and can do the same thing? (and break)

    In all, we are held in the balance. Yin and Yang. We cannot have one without the other. You add features, you add bugs. You create limitations, your code doesn't get used. You increase your time to market, you watch your competition buy you out. This is the way of things. A chasing after the wind.

  236. Why? by dragin33 · · Score: 0

    Because Al Gore invented the Internet.

  237. [OT] your sig by Mr+Z · · Score: 2, Interesting

    About your sig: Actually, I currently write games on a machine with about 1.5K of memory and an 895kHz CPU. And I am grateful.

    --Joe
    1. Re:[OT] your sig by EvilTwinSkippy · · Score: 1
      Now I'm curious. Flipping traffic light controllers have more guts than that. My dad, in his formative years, used to reprogram them to play musical tunes.

      Of course the University of Penn was experimenting with all sorts of fancy computer controls for traffic at the time, so these were probably not your average traffic light, at least in the late 70's.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    2. Re:[OT] your sig by Mr+Z · · Score: 1

      Well, if you want to get technical, the CPU's input clock is a 3.579545Mhz clock (NTSC colorburst frequency), but the instruction clock is 1/4th that. (It takes four input clock phases to advance by one instruction clock cycle.) Thus, the execution clock is still 895kHz. Instructions take about 6 to 12 cycles (typical instruction is about 8), as measured against that 895kHz rate.

      This is actually par for the course for the era. The TMS9900 CPU (the CP-1610's other 16-bit contemporary in the 70s) I believe posted similar execution speeds, although I really have no numbers for it. The 6502, at 1 MHz, was a bit faster, since most of its instructions required fewer cycles. But, then, it came out later I'm pretty sure, and it was only 8 bit. (The CP-1610 was 16 bit.)

      Take a look at the specs for an Atari VCS / 2600 sometime. The machines of that era sucked for performance. :-)

      BTW, as for traffic controllers, I thought that the 8008 and 8080 were used for those. (There is some folklore that Billy Gates built one around a 4004 or 8008 once upon a time.)

      --Joe
    3. Re:[OT] your sig by EvilTwinSkippy · · Score: 1
      BTW, as for traffic controllers, I thought that the 8008 and 8080 were used for those. (There is some folklore that Billy Gates built one around a 4004 or 8008 once upon a time.)

      That's the folklore I heard too. I just couldn't remember the model numbers to save my life.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
  238. Re: Up 5 Months? No Patches? by TheCeltic · · Score: 1

    If you've had a windows system up for 5 mos. then you certainly aren't patching (and rebooting) the system and are adding yet another vulnerable windows system to the internet... Unfortunately, I think this is common as we have seen with code-red/sql-slammer/etc.. propagating long after patches were released. Heck, even MS has had that problem (not willing/able to keep up with the system patches they release).

    --
    =-=-=-=-=-=-=-= - The Celtic - =-=-=-=-=-=-=-=
  239. Re:Nope! Case in point. by Billly+Gates · · Score: 1
    Disabel Apic in your bios and set it to pic. THen reboot and re-install Windows. Windows hal is built at installation time so any change to your hardware will freeze it. Shitty design.

    Anyway FreeBSD or Linux will still work without a reinstall by changing this setting.

  240. Enlightenment by LPetrazickis · · Score: 1

    I think it says a lot about religion and spirituality that computers crash when they achieve enlightenment. Namely, that's it's a load of hogwash that I wouldn't dare bathe my dear pet pig in.:)

    --
    Is this a sigs-optional kind of place? 'Cause I am totally down with that if you know what I mean.
  241. So compare with civil engineering by Anonymous Coward · · Score: 0

    If you wish to write a system that is stable, firstly follow some standard engineering practice. For example (albeit contrived):

    Select a hardware platform that is stable and has not had to be patched EVER for for at least 10 years.

    Select an OS that has not had to be patched EVER for the last 10 years.

    Select Databases and tools that have not had to be patched EVER in the last 10 years.

    Select tools/methodologies that have a long history of successful results in similar projects.

    Employ only QUALIFIED specialists to design/configure/code etc.

    Heinous mistakes are punishable by fines (jail time is also possible).

    This will make computer solutions much more expensive. This is the cost that the user base must pay if they wish to have computer solutions that do not crash. Is this all a tad extreme? Well, let's examine bridge building for example. The materials used have known properties that are thoroughly understood. ONLY qualified professionals may design bridges. No IFs not BUTS no "I've xxx years experience - I know what I'm doing - trust me". (Incidentally, Mr xxx years experience MAY know what he is doing - but that's besides the point). Designers and builders are given the time required to do a good job. In fact, there's plenty of legislation mandating certain building practices that forces companies to "do the right thing".
    There are national standards for every singly part of bridge design, from the type of steel to use, to the colour and composition of the paint applied. There are NO national standards for software design.
    Imagine how cheap it would be to construct a bridge if the builder could just 'slap it up'? This is what they would have to do if all the competition was also doing the same. This is actually just like the software industry. Other engineering disciplines are regulated and software engineering needs to be also.

    With traditional engineering, failure is generally not an option. If a bridge falls over during construction, generally the building company is dismissed. The cost of failure is extreme. Everything MUST work the first time. In the software industry it's all too easy to retro-fit and patch. There's no perceived cost.

    Now imagine this scenario; half-way through building a bridge, the project sponsor changes requirements. The bridge must now be suspension bridge at one end only. etc. This ludicrous situation happens every day in IT.

    IT is such a young unregulated industry that there are no "tried and true" components - everyone is attempting to out-feature everyone else.
    Projects are full of unqualified individuals. Also incompetent individuals.
    Project sponsors change requirements during a project, in other words, everything is not set down in stone at the start of the project.
    There are no national standards (certainly for tools and application development) to ensure that viscous competition cannot drop the end-product's quality below a certain level.

    The end-user must be prepared to pay for such quality. This level of quality is going to be expensive. Compare a flight simulator to the space shuttle guidance system. The space shuttle's code is expensive beyond belief. Where did all the money go? Guaranteeing that the system didn't crash. Why are they running on dinosaur equipment? Because they know it works on that particular set of equipment.

    Guaranteeing that a complex solution will never crash is a very very expensive exercise - will the market tolerate this. or is the market comfortable with cheap software that crashes now and then?

    And lastly here's a plug for open source. The composition and properties of the materials used in bridge building are not proprietary. They are published, examined, tested, confirmed and quantified. You can draw you own software parallel.

  242. One word. by pair-a-noyd · · Score: 0, Troll

    "Why Do Computers Still Crash?"
    Micro$oft.

  243. XP crashes as much as Linux? Hrmm.. which costs? by TheCeltic · · Score: 1

    Which is more expensive (not that I agre with your idea that XP is as stable.. but if it were).

    --
    =-=-=-=-=-=-=-= - The Celtic - =-=-=-=-=-=-=-=
  244. Umm... by KewlPC · · Score: 1
    This particular Ask Slashdot is retarded. It's like the people who ask, "Why do they make Macs and PCs different?"

    People are imperfect, and therefor anything created by people will be imperfect. Thusly, hardware and software will always have bugs.

    It is possible to write software that doesn't crash very often, but that depends on:

    Stable hardware

    All software layers under the program must be stable (such as the OS, system libraries, windowing system, drivers, etc.)

    Knowledgeable programmer(s)

    Good coding practices and the proper choice of programming language for the task (and yes, C can be a "safe" language, if people would just use "safe" library functions like snprintf() instead of sprintf(), fgets() instead of fscanf(), strncat() instead of strcat(), etc.)

    A well-though-out design that is as uncomplicated as possible (i.e. not having a separate daemon to handle configuration info for programs *ahem* GNOME *ahem*).

    A programming team that can resist the urge to add extraneous features. A program should do one thing and do it well.

    Time. No program is bug-free right off the bat. Sufficient time for testing and debugging must be given.

    1. Re:Umm... by Anonymous Coward · · Score: 0

      I'd like to see some kind of toggle (gcc switch, #define, something) that would make the compiler or linker fall over if someone tries to use things like strcpy, sprintf, or strcat. Some systems already do this for things like gets - they either throw a warning or fail to compile entirely.

      Of course, knowing some luser developers, they'd probably do the minimum to flip their bad calls to good ones without thinking about why, and would find some way to create a problem with the new functions.

  245. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  246. Whoops, bullshit alert. by freeweed · · Score: 2, Interesting

    Windows 9x actually has a bug in it that would lock the computer after 46 days of uptime, but it took years to catch it because no one ever got close to that mark.

    Bullshit, bullshit, bullshit. This urban legend deserved to die years ago.

    I ran several Windows95 OSR2 systems with uptimes approaching 90+ days, and had no problems with them locking up. Sure, 9x wasn't HAPPY with this, and if you ran a lot of applications odds are you won't hit this, but I did it many times in my former employment.

    When the '45 days' (as I heard it first) rumor started going around, I set up a bunch of idle 95 machines for fun, and on days 45-50 watched for anything going on. Not one crashed.

    Hell, for all I know, Microsoft themselves are reporting this, just to cover their asses based on some average uptime limit they worked out, but I will swear on a stack of bibles that I've had Win95 machines go at least twice this supposed limit without locking up.

    --
    Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
    1. Re:Whoops, bullshit alert. by rabidcow · · Score: 4, Informative

      Microsoft says so.

      Actually it's in some driver, not the core OS, so it's not surprising that it doesn't happen to everyone. (There's a few other things with similar problems.)

    2. Re:Whoops, bullshit alert. by fucksl4shd0t · · Score: 1

      I ran several Windows95 OSR2 systems with uptimes approaching 90+ days, and had no problems with them locking up.

      Bullshit, bullshit, bullshit.

      /me says nothing.

      --
      Like what I said? You might like my music
    3. Re:Whoops, bullshit alert. by FryGuy1013 · · Score: 1

      I thought the problem was that the TCP/IP stack used a long int for the time, and the timer would roll-over and cause problems. Did you have networking capabilities on those machines you set up?

      --
      bananas like monkeys.
    4. Re:Whoops, bullshit alert. by tagevm · · Score: 3, Interesting

      I bet the piece of code causing this looks something like this: ... /*
      Check every second....
      Maybe GetTickCount wraps, but I don't care,
      something else will probably break before 49 days anyway
      */

      if (m_dwLastTick-GetTickCount())>1000)
      {
      DoSomeThingImportant();
      m_dwLastTick=GetTickCount();
      }

      GetTickCount returns the number of millisecs since reboot, after 49 days it will wrap and start over, so lazy programmers using code such as above will have a problem.

    5. Re:Whoops, bullshit alert. by madman101 · · Score: 1

      Not at all. We have a Windows 95 machine that runs automated tasks that is rebooted 2 or 3 times a year. Been running for 5 years. Last time it was rebooted was around New Years.

    6. Re:Whoops, bullshit alert. by Reziac · · Score: 1

      As a reply says, the bug is real, tho I'd never heard that it was in some driver -- but that makes sense, since it's clearly not a 100% fault: This here Win98 box's longest uptime was somewhere around two months, and it's not been patched. And before the Win95 box got to be the mostly-DOS machine, Windows ran pretty much all the time (also not patched).

      Would be good to know what driver (presumably a VXD?) contains the fault.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    7. Re:Whoops, bullshit alert. by Reziac · · Score: 1

      Do you know offhand what driver? At a guess, some VXD? Cuz like the parent poster, I've not experienced this problem, and have had Win95 and 98 uptimes in excess of 49 days.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    8. Re:Whoops, bullshit alert. by Anonymous Coward · · Score: 0

      All I know I got from the links. The first one mentions a specific vxd.

  247. Aircraft analogy by ChaoticLimbs · · Score: 1

    Some aircraft are inherently unstable. When I say unstable, it means the aircraft doesn't have a preference for flying straight and level over flying straight down in inverted flight. This means that the aircraft does not resist the transition from level flight to turning or banking. It also makes them difficult to fly. Stable aircraft, on the other hand, are easy to fly straight but can't be used as a fighter aircraft because they bank slowly and they resist everything but level flight. Computers are kind of like this as well. Special purpose computers are wonderfully stable but totally inflexible. Things like analog fire-control computers on submarines never crash. The main problem with PCs is that they are so totally flexible that at any moment, just about any combination of software may be in use at one time. Combine that with an unpredictable action, and software with thousands of relatively unchecked features or controls, and you have a recipe for disaster. Especially since the programmer has no idea what combination of hardware the end user's machine will be running, he can't do anything to deal with other pieces of software trying to access memory space assigned to his app. (Or operating systems that seem to 'forget' who gets what, and prevent violations) Okay, so it's an imperfect analogy. I got nothing.

  248. You can't afford it by xenocide2 · · Score: 1

    It costs a lot of money to use the proper technologies to verify and secure a system. It takes months/years to verify software for critical DoD use. And even if you could afford it, nobody else wants to pay for it, making it that much more difficult.

    To some extent, the problem lies with the language (some languages have more secure features and software than others), but a large part lies with Microsoft's liscence to print money and Windows. Its a large code base, partially due to backwards compatibility. There's little financial incentive to work on the problem. It appears that people are convinced that crashes and viruses are a fact of computers, and put up with it rather than seek alternatives.

    And its not just Operating Systems. How much would you pay for a web brower that didn't crash? IE crashes, Opera crashes, and even Mozilla can crash. At the software level, there isn't much one can do against random hardware failure (bits flipping in RAM). Sure, you could pretend to address the problem by operating on redunant variables, but what if the code bits are affected instead?

    --
    I Browse at +4 Flamebait

    Open Source Sysadmin

  249. Hardware by Phroggy · · Score: 1

    I attempted to rip a bad audio CD with cdparanoia using my Plextor SCSI CD-ROM drive. When I say "bad" I mean, if you held it up to the light you could see a tiny hole in it. The system locked up.

    The excuse for this, of course, is that it's a hardware problem. Why should the inability of the CD-ROM drive to properly read the disk cause the rest of the system to hang? The kernel should be able to handle this kind of error. What went wrong? Is a bug in the kernel responsible, or is it a hardware issue with the motherboard, or something else?

    --
    $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
    $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    1. Re:Hardware by SuiteSisterMary · · Score: 1

      The program thinks, 'I'll just take the data I'm given, as the hardware will pass me a nice error message if it encounters a problem.'

      The hardware thinks, 'I'll just pass the data I have, and trust the program to do sanity checking.'

      The user thinks, 'Hey, my cup holder ain't working right!'

      --
      Vintage computer games and RPG books available. Email me if you're interested.
    2. Re:Hardware by geekee · · Score: 1

      It could also be a lame driver.

      --
      Vote for Pedro
  250. Intel! Where Quality is Priority Number.... by BIGstan · · Score: 1

    0.9999999999999997823.......

    As an AMD user, I don't have to worry about such things.

    Of course, I don't ever have to worry about heating my house, either.

    --

    BIGstan!
  251. Why do Computers Still Crash? by RussP · · Score: 1

    That's an easy one. Because their operating systems are written in C. Next question?

    --
    I watch Brit Hume on Fox News
    1. Re:Why Do Computers Still Crash? by Anonymous Coward · · Score: 0

      Do us a favor and please STOP using them, thanks.

  252. Re:Try the UML by Billly+Gates · · Score: 3, Interesting

    Architects and engineers use extremely detailed drawings. Have you ever taken any drafting courses in Highschool or College? Every piece and even the size of every screw is accurately detailed as possible. It takes forever to get anything done because the precsion is more important. It drives some people like myself crazy.

    The blueprint is the actual prototype of the product being designed.

    The problem is if you document every step and algorthim in exact detail you will spend weeks, months, and yes years without a single line of code!

    This is unacceptable in today's bussiness world where all the projects are due yesterday and your bosses demand percentage wise how much of the code is being developed. If you spend a month planning and not a single line of code is developered your canned.

    My father took over a project where a clueless IT manager got because she slept with the CIO. Anyway she went to a seminar which talked about over flowcharting everything would be the wave of the future. She then had all the programers draft every single algorithm to the very if statements themselves on paper. After 4 months and not a single line of code my old man took over. From there he finished the project within 3 weeks!

    My point is that drafting programs is too time consuming. In a way your drawing is the program and changes can be made as you go. Its essential to have good flowcharts and notes but they need to be generalized. If there is an error in it you can delete the line and fix it. In engineering you would have to dissamble the actual product and redesign it. Because they would cost time and money it is not accepted. In software that limitation is not there or as sevre.

    UML tries to be the blueprint of all software programs but instead is only used to explain certain subsystems and algorithms. Mostly flowcharts are used so all the developers have a sense on how the program will work and how to invoke different pieces of the program.

    I do not think this going to change unless there is a quick and easy way to debug UML charts. Logic errors are killer and if its perfect I suppose you can compile the uml directly into the language of choice.

    Hmmm infact this might be the way to do it in the future.

  253. XML ... by Anonymous Coward · · Score: 0

    Isn't a programming language.

  254. How it's done. by Animats · · Score: 1
    We know how to make systems that don't crash.
    • Use hardware with a well-defined I/O architecture, like IBM mainframe channels, rather than bus-type systems where peripherals can store into memory where the peripheral wants to. The key idea here is that where the data from an I/O operation gets stored is completely separated from device control. USB and (to a lesser extent) FireWire, are good steps in this direction.
    • Use a true microkernel, like IBM's VM or QNX. Nothing runs privileged unless it has to do with process switching or memory management. Everything else is a user program. Drivers run in user space. File systems, networking, etc. are user programs. The key concept in reliability is to ruthlessly minimize the code that can crash the system. x86 machines aren't really well matched to this type of OS, but QNX demonstrates that it can work.
    • Don't add code to the microkernel. The successful microkernels, like VM and QNX, have very low modification rates.
    • Take security seriously. Use a mandatory security model (see NSA Secure Linux.) Nothing else has a chance of working.
    • Hardware errors must be detected. ECC memory, always.
    • The vendor must accept financial responsibility for all crashes. In the gambling industry, that's routine, and a few percent of profits go into paying penalties.

    Why this won't happen:

    • It commoditizes the OS. Asked why Microsoft keeps adding features to the Windows kernel, Ballmer once answered "If we stopped adding features to Windows, Windows would become a commodity, like a BIOS. Microsoft is not a BIOS company."
    • Some hardware devices are hard to implement efficiently in a secure environment. This is most notably true of complex graphics cards. Arguably, the way graphics should work is that the graphics system creates bitmaps in memory, and the display board is basically an MMU which maps portions of memory to the screen in a sprite-like way. Graphics acceleration would be done with coprocessors, like the old Apple 3D coprocessor or the PS2's vector processors. For historical reasons, the PC world hasn't taken that path.
    • Computer vendors have been able to escape product liability. If computer crashes resulted in lawsuits, like car crashes do, there would be far fewer crashes.
  255. Re:This is a mathematically proven un-solvable thi by heff · · Score: 1

    would this be similar to a matrix with certain predictable irregularities?

    *cough*just saw the movie, it rocked*cough*

    --

    --

    |-_-| . o O ( bEef!)

  256. Re:crashes? - you just said it by victim · · Score: 1

    Just something to think about, the gist being we will not have reliable computers until we demand them...

    Your guy had a computer that crashed twice a day from bad ram. Why doesn't he have parity ram and some mechanism for the computer to hollar "hey, i got a parity error, my ram is bad"? SIMMs come in 64 bit chunks these days.

    Parity will cost 2% or so. ECC adds 10% on 64bit ram. Why not? You've got a component that is probably the 2nd mostly likely cause of failure (power supplys being number 1, fan failure), is probably the most expensive failure to diagnose becuase of its random nature, and for a $5/computer cost (typical) you could identify and eliminate it.

    Why don't people demand this? Why didn't you demand this on your workstation?

    I know I've personally wasted more than 40 hours of my life debugging systems that turned out to be bad RAM in the end. $5/box RAM insurance is pretty cheap in those terms.

  257. Re:Intel! Where Quality is Priority Number.... by Art+Tatum · · Score: 1

    And then there's this old gem: "Intel--United We Stand, Dividing We Fail".

  258. willingness to sacrifice quality by CaptainPhoton · · Score: 1

    I think topics like these express a bit of naivite, because the root cause for most system failures are economics and human nature. As the universal goal for a business is "money for nothing and chicks for free", an academic discussion of creating a "perfect" commercial product is a bit like debating the existence of God, imho.

    I think most commercial software is written with the minimum effort required to gain the largest chunk of market share. Bugs are expected and tolerated. If you can sell crap and get away with it, then it doesn't make sense to spend as much up front making a perfectly reliable program. It's better to wait until people are dependent on your system, then with the established customer base, go forward in making incremental improvements in reliability. Didn't we have this conversation about Microsoft before?

    I think most products are done this way, using the cheapest components and the smallest amount of labor possible. If you can get your devices mostly working, then time-to-market and pretty packaging can be more important than having the best quality. It's all about whoring yourself properly!

  259. Re:crashes? - you just said it by Moridineas · · Score: 1

    I dunno about this--i agere that it is certaintly better to have more reliable parts, but I don't think you're right about memory being the 2nd most likely part to fail. I'd certaintly agree that power supplies are walking death traps of hardware failure, but I would say that hard disks, cpu fans, cd-rom/dvd/cdrw are MUCH more likely to die. Maybe I've been lucky, but I've never seen a computer with known good ram suddenly go bad--the case that I refered was a on a newly built computer that had 512mb ram in two ddr dimms and apparently only were bad somewhere high in the 2nd one so crashed sporadically during the day under heavy load (and somehow wasn't caught when built).

    It's not really hard to diagnose either I would say--try memtest86 is the name of the program i used to confirm bad ram. Believe me, from now on I will run it on all new computers before putting them into use :)

  260. Uptime! by Anonymous Coward · · Score: 0

    Last login: Thu May 15 17:26:31 on ttyp3
    Welcome to Darwin!
    [Adolph-Trudeaus-Computer:~] adolph% uptime
    11:47PM up 22 days, 8:40, 5 users, load averages: 0.81, 0.65, 0.45
    [Adolph-Trudeaus-Computer:~] adolph% time
    0.020u 0.000s 0:11.86 0.1% 0+0k 73+4io 0pf+0w
    [Adolph-Trudeaus-Computer:~] adolph%

    The only reason to restart is to apply updates.

  261. Job Security? No, Life Security. by Anonymous Coward · · Score: 0
    I program "bugs" into my software so it will eventually crash just in case that peice of software becomes conscious and we all get stuck in the Matrix. At some point my code will bring down the Matrix and we won't have any need for Mr. Reeves.

    So thank your lucky bugs!

  262. ML is a programming language. by cpeterso · · Score: 1
  263. Re: mod funny not insightful by Anonymous Coward · · Score: 0
    I don't know how grandparent is +2 funny and parent is +5 insightful, but here's a correction for the parent's "insightful joke". (Parent was smoking some really good crack... can we have some too?)
    Depending on various circumstances, you might find that a little while after you get to 127 or 32767 (or thereabouts) i+1 has become i...
    Umm yeah whatever. i+1 might become -(i+1) or 0, but it never becomes i unless you've got some hardware problems.

    127+1 = -128, 32767+1 = -32768, etc. Here, i+1 = -(i+1) (*see below), not i+1 = i. (Hex examples: 0x7f + 1 = 0x80, 0x7fff + 1 = 0x8000, etc. )

    But you also forgot to add that something similar happens for unsigned integers. 255+1 = 0, 65535+1 = 0, etc. i+1 = 0. (hex examples: 0xff + 1 = 0x00, 0xffff + 1 = 0x0000)

    (*) Here's a nifty trick: -0x80 == 0x80, -0x8000 == 0x8000, etc.
    Why, you ask? -0x8000 == ~0x8000 + 1 == 0x7ffff + 1 == 0x8000.

  264. Simple... by Anonymous Coward · · Score: 0

    Square electrons

  265. at the End by beavmetal · · Score: 1, Insightful

    Besides the harware production flaws, the software coding flaws, and the shipping process (every atom is manufactured, man-handled, assembled, and shipped somewhere), let us not forget end user abuse.

    Who is guilty of smacking/kicking the PC or mainframe? I bet this helps stability alot.

    --
    Looks like it is time to replace your Personality Module. You are a bit to clingy, guess I better replace your fuser to
    1. Re:at the End by Anonymous Coward · · Score: 0
      every atom is manufactured

      When did they start doing that?

  266. Microsoft lower the standard by frovingslosh · · Score: 2, Insightful
    "I've used computers for about 30 years and over that time their hardware reliability has improved (but not that much), but their software reliability has remained largely unchanged.

    I've been using computers a few years longer. Heck, I've owned computers a few years longer (yes, that makes my first one prior to the 8080 micro chip). But even 25 years ago I saw Data General systems with a lot less raw power than a Pentium that ran a multi-user OS and supported an office full of users, and routinely ran without crashing or even being shut down from year to year, and were only rebooted when the tech came around to give them a scheduled prevenative maintence. Sure, some systems did fail (and some in quite interesting ways), but it was the exception, not the rule. The thing that I see as having changed is that Bill Gates became the richest man in the world, while at the same time giving us an OS that crashed so regularly that it just can't stay up. And somehow people accepted it. How he got away with it I don't understand.

    --
    I'm an American. I love this country and the freedoms that we used to have.
  267. Why computers crash by G27+Radio · · Score: 1

    Not everyone has switched to Linux yet. It takes time for such a massive exodus, so expect crashes for a while yet.

  268. Oh, give me a break. by Anonymous Coward · · Score: 0

    I have a brand new PowerBook G4 (12.1"), running the very latest OS X. I had a kernel panic every couple of days for the first week or so that I used it. I still get kernel panics from time to time when disconnecting an external monitor.

    Just because *you* didn't experience the bug doesn't mean the bug isn't there. I'm sure you'll claim you do some "hardcore shit" with your Mac -- pushing it to the veru limits (you can cook an egg on it it's so hot!), uptime for months on end, you can even walk into a bar with it and, in a single bound, pick up four hundred chicks before leaping off to save the day -- and therefore you can't possibly imagine how the OP could be telling the truth.

    I doubt, however, that your use patterns are identical to his. And it's this sort of attitude that, "if I don't get the bug, it's clearly a user issue" that makes software the shit -- yes, it's all shit -- that it is.

    It's especially bad in the Cult of Mac (I mean, it's conversely bad in the world of Windows--users blame Windows because "Windows" is the excuse, that's not any better at isolating causes). But, nobody wants to blame Apple--nobody wants to think that their only hope, the only credible hope against the oncoming Microsoftian hordes, is just as full of shit.

    But, they are. If my Mac crashes it doesn't matter one lick if it's the hardware or the software or even if that's better than the competition -- it's still unstable, for my use patterns.

    So, just put that self-righteousness back in your pants. OS X is more stable for some, less stable for others. There are terrible, crippling bugs lurking in it (alongside the more common, "plain irritable" variety) just like everything else.

    Try to repeat after me: Just because Apple made it, doesn't make it perfect. Apple makes a good product from time to time, sure, and so does Sun, and so does SGI and: Just because Sun made it, doesn't make it perfect.

  269. Why Do Computers Still Crash? by Phleg · · Score: 1

    Simple answer: because idiots still use them.

    --
    No comment.
  270. I don't understand why... by NanoGator · · Score: 1

    .. anybody would think that computers that multitask with a number of programs made from a number of different programmers running on a virtually infinite combination of hardware all operating under a variety of environmental conditions can work under the idea that a computer could be made that doesn't crash. Hell, all you have to do is shine a light on RAM chips and that'll cause stray bit flippings.

    --
    "Derp de derp."
  271. My mirror crashed by Oswald · · Score: 1
    Slightly OT, perhaps, but I'll relate my little story; someone else can determine its cosmic significance.

    I had to reboot the mirror in my pickup truck. Or, rather, I had to reboot the tiny computer inside my mirror. The mirror has a small window that displays blue-green letters to indicate which direction the truck is headed--N, S, SW,etc. One day last February I noticed that the mirror said simply "C". I assumed this stood for "Cold" and that the compass would return to normal functioning when the heater had warmed the cab up a bit.

    I was wrong. Three days later, it still said "C". So I reached up and pushed the switch on the mirror to Off, then back over to On. The mirror successfully rebooted and has been working properly ever since.

    So that's where we've gotten ourselves: mirrors that crash and have to be rebooted.

  272. crashing computers by br00tus · · Score: 1
    In my experience, hardware problems are more often the cause of crashes (which I define as the machine is inaccessible, except perhaps from a console) than software problems, at least with UNIX. I've worked at facilities from a handful of machines to thousands of machines over the past few years. Usually hardware problems are what cause the crashes - a hard drive goes bad, a processor goes bad (I recall one model of Sun CPU's that had a penchant for crapping out), a memory board goes bad, a network card or host bust adapter goes bad and so forth.

    It's abnormal, especially if you have a good network monitoring system, for software, either the kernel or running processes, to cause things to crash. In my experience, 99% (maybe 100%) of the time this is due to processes causing disk, memory, or processor (or network) to get filled up, eventually crashing the system. If you have a decent network monitoring system and enough administrator person-hours to deal with it, you will rarely have problems on this side.

    My previous job was at a Fortune 100 company where I was part of a team that administered thousands of machines, and I would say it takes being in a large environment like that to realize that hardware crashes occur a lot more often then software crashes, and software crashes are usually avoidable. In fact, hardware crashes are usually avoidable as well - unimportant development boxes were usually the only things that crashed due to disks or processors or network cards failing. A critical heavy-duty production machine would often be running on a Sun Enterprise 6500 with a RAID disk array, multiple processors, multiple network cards, and besides all that a spare 6500 with the same setup just sitting there on a veritas cluster server, waiting for the other machine to fail so it could kick in. That's pretty good hardware redundancy, and there is no real "crashing", just replacement of disks that go bad for which RAID5 automatically kicked the data to spare disks and so forth

    There is a common enemy for all hardware crashes in all environments, no matter how small or deep the pockets of the company - heat. Servers piled on top of one another, row on row, cabinet to cabinet, can generate a lot of heat. And no matter where I go the cooling always seems to be inadequate, even in places with deep pockets. If the room is hot, the cabinet is hotter, the machine is even hotter, and the processor is hotter still. I had a machine room once where the temperature kept building and building and building, until suddenly in the space of one or two days, over half of the hard drives in the room crapped out. If your machines are having hardware problems, go around and feel if it is hot anywhere in your cabinets, and wherever it is hot put a thermometer there. However much the temperature is, remember that the processor is hotter, and that it is probably even hotter if it is in a cabinet and you later close the cabinet.

  273. the MS case by porkface · · Score: 2, Informative

    Having spoken with Microsoft OS developers about this issue in some detail, they make risk / benefit choices all the time where they know one way will not crash ever, and the other way will crash but will be amazingly faster.

    Guess which way consumers pay them to build it. When they choose the crash-but-fast method, they just put an astounding amount of QA into it to whittle the probability of a crash down to an acceptable level. And I agree with them about what an acceptable level is, because I know that when I crash my Win2k system, it's my fault.

    They put more testing and research into their OSes than anyone these days. Maybe Sun used to have them beat there, but Sun isn't nearly as focused on those things anymore.

    1. Re:the MS case by curious.corn · · Score: 1

      Yo cool, I want my car designed like this! It could easily do with a lighter brake system and even manage to shave another 20 Km/h max speed. Is it worth it? Oh shure, it's what consumers want right?

      --
      Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
    2. Re:the MS case by SuiteSisterMary · · Score: 1

      The aftermarket parts industry, not to mention the amount of, well, 'riced-out' Honda Civics you see on the road says 'yes.'

      --
      Vintage computer games and RPG books available. Email me if you're interested.
  274. Cuz Every OS sucks by Anonymous Coward · · Score: 0

    Its true even the canadians think so. Listen to this funky mp3 by Three Dead Trolls in a Baggie, Our nerd buddies from up north eh?
    OSDN

  275. Self-Repairing Computers by mackertm · · Score: 1

    Neat article about self-repairing computers courtesy of Scientific American.

    http://www.sciam.com/article.cfm?chanID=sa006&arti cleID=000DAA41-3B4E-1EB7-BDC0809EC588EEDF

    Neat stuff, interesting ideas.

  276. no artificial intelligence by falsification · · Score: 1

    I think we will have crashing computers until we have AIs (with real AI). One thing an AI should be able to do is self-heal.

    1. Re:no artificial intelligence by aaaurgh · · Score: 1

      ...and then we'll all be out of a job. They'll build our cars, operate our factories, control our lives and then... one day they'll realise they don't need us any more! Way to go (not!)

      Give me a good ol' blue-screenable robot any day. Even Asimov himself talked his way round his own three laws in one of his short stories.

      --

      Go permanent? In your dreams and my worst nightmares.
  277. Two easy reasons... by NerveGas · · Score: 1



    1. "Get certified in three weeks, and make $$$ as a programmer!"

    2. The market demands features above all else, and wants them *now*.

    It's the old adage: Quick, cheap, good: Pick any two.

    steve

    --
    Oh, you're not stuck, you're just unable to let go of the onion rings.
  278. Where it counts by spaic · · Score: 1

    You seldomly hear about software in medical equipment or airplanes crashing. So i guess it's applied in places where it really matters.

    NASA managed to load an old version of the software in one of their shuttles... that's what you call a usererror.

  279. Tools problem indeed by Anonymous Coward · · Score: 0

    Too complicated tools (c++) for most jobs
    Lack of garbage collection on system level
    Lack of bounds check on system level
    Increase in system size and complexity but still usage of the same tools
    + sometimes sloppy code

    and you have the crashing symptom but the tools are the cause.

  280. Re: Up 5 Months? No Patches? by callipygian-showsyst · · Score: 1

    It's behind a firewall. NO ports are open to the outside world. It just serves files, runs my webcam, and streams MP3s in-house.

  281. Reliability of a different kind by podperson · · Score: 1

    Actually computer software has gotten a lot more reliable in the last 20 years, it's just a different kind of reliability.

    Software runs on two platforms -- one of them the user. Usability has -- in general -- improved in leaps and bounds (in large part owing to Apple, Xerox, et al) vastly reducing the tendency of software to crash on humans. Crashing on humans remains such an enormous problem, however, that fixing it is a far larger market differentiator than fixing relatively minor problems with crashes on hardware.

    The reason for this is simple. A well-designed and easy-to-use piece of hardware, e.g. the mercedes seat adjustment control given as an example in Don Norman's "The Design of Everyday Things", is more expensive to manufacture than a badly-designed and difficult-to-use equivalent. So hardware design tends to offer a trade-off between design and price. Generally major appliances are cheap or well-designed, but not both. For software, usable software is more expensive to create, but less expensive to support, and no more expensive to manufacture.

    The fact is that the cost effectiveness of hunting down bugs that cause software to crash hardware is much lower than the cost effectiveness of improving usability (i.e. reducing crashes on human beings).

  282. My *camera* crashes by jmerelo · · Score: 1

    Since everything is a computer nowadays, they seem to have also the right to crash. Mi Nikon CoolPix camera does it from time to time, and the only way to ctlr-alt-del is to take off the batteeries and leave it there for a while.

    1. Re:My *camera* crashes by lieven_dekeyser · · Score: 1

      yeah.. my cellphone crashes too.. but, it seems to have a crash-recovery system, because after a few seconds, it "reboots".. pretty cool for a piece of crap like this (the cheapest one I could find :) )

  283. Same reason your room is still a mess. by stephanruby · · Score: 1

    Our jobs, our toys, and our options are diverging from each other and increasing in numbers.

  284. Crash & Burn Baby! by BladeMelbourne · · Score: 1

    Computer crashes are annoying, although most of them are caused by buggy software, not faulty hardware.

    The worst type of crash for me is when the operating system crashes, as opposed to an application crashing. My Windows 98 (fully patched & updated) crashes occasionally. Explorer (not Internet Explorer) crashes frequently, especially after deleting files. When deleted files go to trash, it doesn't crash.

    No linux kernel has ever crashed on me. Occasionally an application will crash, but that does not bother me too much.

    Applications that allow automatic saves ever X minutes are a great idea. It lessens the worry.

  285. Bullshit. by fruity1983 · · Score: 0, Flamebait

    All you people who can't keep a Windows 2k or XP box running for longer than 2 days have something wrong with you.

    Either you are lying, which I think is entirely plausible. Linus users generally seem to me to be about 60% as neurotic and obsessive as Mac users. You guy's should form a religion - you already have the frighteningly blind faith.

    Or you are unable to learn how to install a driver correctly in windows, which has got to be something to the tenth magnitude easier than in Linux, which I think is implausible.

    My Win2k box goes for weeks at a time without a reset. And yeah, I run applications on it; games, 3D modelling tools, CAD package, many other CPU and system intensive programs.

    And furthermore, I by no means consider myself a technologically elite person. I can replace all my own hardware, install all my own software and keep that software updated, but I don't have the need or desire to learn how to use the Linus command line, or write custom assembly for my Radeon.

    What I am basically saying is that if you are unable to run a stable Windows system, it is entirely yours, or the people who use your computers' fault. You cant blame MS, cause no one I personally know has had these problems since WinME.

    --
    I am a viral sig. Please copy me and help me spread. Thank you.
    1. Re:Bullshit. by WildThing · · Score: 1

      My Win2k box goes for weeks at a time without a reset.

      I too have Windows boxes that run for weeks at a time, but then.. boom-crash. My Linux boxes run and run and run. The only time any of them have gone down was when I changed kernels or hardware. I have 4 that have been goping for over a year.

      The problem isn't short 'bursts' or running - the problem is the 'long-haul'.

    2. Re:Bullshit. by Anonymous Coward · · Score: 0
      Or you are unable to learn how to install a driver correctly in windows, which has got to be something to the tenth magnitude easier than in Linux, which I think is implausible.

      Unfortunately, my experience has been the complete opposite of that. I now know more about installing a driver correctly in Linux , than windows unfortunately. To get a driver to catch into the windoz system on the first try has become a bit like russian roulette. On the other hand, installing a module in linux was easier cuz I just had to modify the IRQ and I/O settings manually in /etc/modules.conf if necessary, which was rare.

    3. Re:Bullshit. by Loosewire · · Score: 1

      haha - "since ME" granted 2000 is much more stable but me was the biggest bug filled o/s they ever made.

      --
      Slashdot - The one stop shop for procrastination
  286. Let it be known... by pVoid · · Score: 1
    This is the stupidest question I've ever read in my life. Your question and the way you ask it sounds so arrogant, that it makes my skin crawl.

    You've even set up the volley so that everyone can jump in and say "well, look at *nix".

    Way to go slashdot, you've posted a Troll. And guess what, it's a hell of a troll, because it got 700 replies, and counting.

    My troll of the day: dear slashdot, I just don't understand why there are traffic accidents. I mean, my father has driven the same car all his life to work without crashing once, and yet, my sister, who just got her car 2 months ago had a fender bender.

    I mean, is it too hard to drive? Aside from the fact the Ford makes SUVs that tip over... is it not possible to make a safe car?

    My answer to you is: yes, let's build a titanium car, that has 200 cubic meter airbags (constantly inflated) around it, with rubber that is 9 inches thick.

    Pointless. Sigh.

  287. Can you imagine Enterprise's "Computer" crashing? by ChocoyitoChimbaron · · Score: 1

    > Janeway: Computer, triangulate the source of the weird stuff > Computer: Hold on, I'm going through POST

    --
    Discovering new things.... one beer at a time
  288. No need? by arpy · · Score: 1

    Of course, there's no need to mention Microsoft's inability to create a stable system.

    You did realise you were posting this to /. didn't you?
  289. Human Error === Software Error by ScriptGuru · · Score: 1

    IMHO, any time a program crashes due to human error, it is the programmer's fault for not forseeing the event and thus a program error.

    --
    Yet another signature that refers to itself. The irony and humor is dead.
  290. OR by geekoid · · Score: 1

    train your people on proper software methodolgy so they use the language properly.

    C and C++ should not take the rap because dumb ass programmers can't be bother to use them correctly.

    Designing a proper test method would do wonders.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    1. Re:OR by vague · · Score: 1

      The problem isn't that C/C++ exist, the problem is that they are used by people and in projects which would be better benefitted by different tools.

      The logic seems to be:
      Bad programmers produce slow code, so let's mitigate that by giving them a language that generally compiles to really fast executables, C/C++.

      The smart programmer uses the appropriate tool for the job, 95% of the time that wouldn't be C/C++ if it wasn't for the fact that the tool and library support for those languages often tip the scale.

      www.ocaml.org

      --

      -
      Listen. Strange women lying in ponds distributing swords is no basis for a system of government.

  291. I had a rant about this in 1998... by atcurtis · · Score: 1

    I had a rant about this in 1998 on my homepage... It's preserved in all it's glory on the Internet Archive.

    http://web.archive.org/web/19980419075203/nuts.ml. org/comment.html

    --
    -- The universe began. Life started on a billion worlds...
    -- Except on one where stupidity was there first.
  292. Crashing... by JWSmythe · · Score: 2, Insightful

    Crashes are a rather ambiguous topic..

    A lot of computer crashes depend on what you're doing with it.

    The machine I'm working on right now running Win98 or Win2k crashed on a regular basis by itself. I was tempted to blame bad hardware. Under Linux with a similiar workload (OS, GUI, browser, mail client) it never crashes.. That I can blame on the software being run.

    Identical machines with completely MS software behave the same, so it's hard to blame non MS software for the crashing.

    My Compaq iPaq with WinCE would lock up or shut itself off about twice a day under virtually no load and no 3rd party software. (I hadn't really figured out what to do with it yet). I was ready to return it to the store. I opted to call it a part-time paperweight, and "try" Familiar Linux on it.. Hasn't crashed since..

    Well, that's not completely true. I've done some rather silly OS upgrades (hey, lets change all the libraries while it's running, and see what happens), so the crash was user failure.

    But not to make Linux sound perfect, I've crashed machines with poorly written software. I've sent them into huge loops, and had software running that managed to suck up all the memory and hang the machine (a packet sniffer monitoring a 100Mb/s connection). Even my favorite web server, thttpd, had a poorly written beta version once that would upset the server after a couple days of running.

    Is it always the OS? Nope. I've had a set of 10 machines with "generic" memory in them.. After a few years of running, they all began crashing mysteriously about twice a day.. Swapped the memory out for name-brand memory, and the started working perfectly.

    We have a big industrial looking Dell on the network. Memory flaked out in that. Machine was dying about once a month. Swapped that out for a larger quantity of Crucial memory, and no more problems.

    In a computer store I worked in years ago, we bought the cheapest hardware possible. The motherboards didn't come with boxes, and the manuals never made a reference to a manufacturer. Most of the hardware I couldn't even track down a manufacturer name through the vendors. About 1 in 10 parts wouldn't behave properly when we turned it on. About 1 in 30 machines came back for repairs for bad hardware within a few months.

    So, it is really up to everyone involved if the machine will work right. I use Asus motherboards, Crucial memory, and Western Digital hard drives, and rarely have a hardware problem. The last problem I had was a bad IDE cable. There's always something that can fail.

    The software has to run well, and we've very very happy with Slackware's distributions, with Apache and thttpd.

    The biggest problem we have is user software or simple misconfigurations.. What happens when you have a heavy traffic web site, and the web server logs never rotate or get truncated? The drive fills up fast, and you end up with 2Gb logs.

    What happens when you write a program that ends up sucking up all the memory and CPU time? Makes it not run right (I've done it myself a few times. Oops.)

    People constantly bring their home machines in to work for repairs, for various reasons. About half are software misconfigurations (how many 3rd party applications do you really need running at boot time?). The other half, dying hardware.. The CPU fan made noise for 6 months and then stopped making noise, but you let it go? Ya your CPU is burnt. Cheap fans do that faster than most.

    Can they build a crash-proof computer? No. Just like they can't build a crash proof car.. Cars typically crash due to user failure (users including other drivers), or compontent failure (Ford tire blowouts). Not really the car's fault. I had a car in a parking lot crash. A driver missed the highway and broadsided it.

    So, you can strive for perfection, but there are always going to be circumstances that can cause failures, usually attributed to users. (those damned users.).

    --
    Serious? Seriousness is well above my pay grade.
  293. JCL on the mainframe never crashes by Anonymous Coward · · Score: 0

    We have a ton of JCL code on the mainframe. It was built years ago. It never crashes. Based on a solid language, if designed and written properly, it will last a life time.

    One exception, the memory leak with VTAM. Once we upgraded to the newest version of OS/390 and our CICS LINKK migration. Not a single problem.

  294. 2+2=5 for very large values of 2 by harveyswik · · Score: 1

    duh.

  295. Your hammer analogy is surprisingly accurate. by Dthoma · · Score: 1

    You see, C is also like a hammer in that it is totally unforgiving. Everyone makes mistakes, even "carpenters" and "OS experts". But both C and the hammer will smash your thumb (or stack) open regardless. I think what people are trying to point out is that sloppy coding is not necessarily the cause of programming errors. An unforgiving language is.

    --

    Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".

    1. Re:Your hammer analogy is surprisingly accurate. by Anonymous Coward · · Score: 0

      yes it is ....

      to make the carpet stay in place you need the hammer and nail in the hands of a skilled person, the glued carpet, laid down by an amateur whitout the risk of hitting a finger, keeps loosening in the corners, and it is a pain to remove the glue when you want to ... :)

    2. Re:Your hammer analogy is surprisingly accurate. by Anonymous Coward · · Score: 0

      I'm wondering if he was arguing most carpenters would be better suited with rubber hammers?

  296. Bad programmers are the problem by Skapare · · Score: 1

    Don't allow bad programmers to use sharp tools with which they may be able to hurt themselves or someone else. C and C++ are sharp tools. Perl and Python are blunt instruments.

    --
    now we need to go OSS in diesel cars
    1. Re:Bad programmers are the problem by __past__ · · Score: 1
      I am really amazed about this self-justification of C hackers. Do you really believe this? That C++ and C of all languages are somehow more powerfull tools than high-level languages?

      If I have the choice between the ability to modify arbitrary memory locations in an unchecked way or using a language that supports building abstractions, type-safety, changing running programs in well-defined ways, an escape from the "edit wait-for-the-compiler wait-for-the-linker try to debug with inferior tools" cycle etc., I don't have to think twice.

      On the other hand, I have no problem will all the C luddites around. It's always good if you can point to your competition and show how they only managed to get a half-ready, buggy, crashing, inflexible system in more time than your working one took to write.

    2. Re:Bad programmers are the problem by Skapare · · Score: 1

      Just take a look at what language most of those "advanced" systems are written in. I assume you are one of those kinds of programmers that needs someone to protect your from yourself with type-safety features. Of course you can find bad programmers anywhere, in any language. But the bad programmers don't mean the language is bad any more than drunk driving can be blamed on the car.

      --
      now we need to go OSS in diesel cars
    3. Re:Bad programmers are the problem by __past__ · · Score: 1
      I happen to be a Lispnik. My Lisp compiler of choice is written in (grasp!) Lisp, as are most others. Yes, that includes a native code compiler, assembler etc. for multiple OSes and architectures. (Parts of the runtime are written in C, admittedly, scince Unix eshews what it can't understand) Go have a look, it's free: http://sbcl.sourceforge.net

      I wouldn't say that I always need type safety in all it's glory - actually, when I deploy, I usually change optimization settings to disable most automatic checking. I like it during development, though. In case you aren't aware of, Common Lisp allows you to declare types, but doesn't force you - if you do, they can be either used as assertions, notifying you when you fucked something up, or as an optimization hint. As opposed to C, which forces you to declare all types at all times, and yet fails to be strongly typed, thus giving you optimization as the only choice, even where you don't need it.

      I guess the major difference is that bad Lisp programmers will produce code that runs slowly, while bad C programmers (and these obviously include the authors of Linux, Apache, OpenBSD or OpenSSL, which all had C-typical vulnerabilities) will produce code with exploitable bugs. Buffer overflows or format string errors just don't happen with Lisp, because arrays are bounds checked (and may be size-adjusted, if you want them to), and cl:format, while more powerful than printf, just wont let you play tricks with the stack. At least not unless you explicitly ask for it.

      Not to mention that Lisp actually rocks for bit fiddling, compared to C: not only are all relevant binary operators availabe (and them some, let alone the ability to convenitently extend the language if something is missing), I also have the ability to arbitrarily mess with memory locations. I just don't see why I should. I have other things to do, like solving real problems that are not ideally described in terms of binary numbers of various lengths.

      I challenge you: Where are the good C coders that write working code, without critical bugs, in any reasonable amount of time? If you fail to find some, give me a simple example of how I can emulate stuff like update-instance-for-redefined-class, restarts, method combinations or even trivial stuff like proper support for rational numbers in C, and claim that C is "a sharp tool" again.
    4. Re:Bad programmers are the problem by Skapare · · Score: 1
      I challenge you: Where are the good C coders that write working code, without critical bugs, in any reasonable amount of time?

      Define "reasonable amount of time". There are tradeoffs in time, cost, and quality. When you want the time to be shorter, the others are greater (you can still balance between them).

      The C language is like "portable assembly". It isn't intended to do everything. What it does well is what needs to be close to what the CPU literally does, whether for direct access reasons, or for performance reasons. It is a "sharp tool" in the sense that it does give you that direct access, and the dangers associated with it. I tend to recommand that programmers who want to do C first learn an assembly language, so they learn the impact of making mistakes, and the details involved. Those will be the good C programmers. C doesn't even try to the abstract concepts you can do in Lisp. If an application needs those, then it's more appropriate to do in Lisp than in C. And it's more appropriate for you to do it than for me to do it (because I could never understand Lisp, but I do very well in assembly and C ... difference in how brains are wired, I presume).

      C supports rational numbers. The issue is how you define "support". In C, "support" for things like that means "you can code it". C99 does have complex numbers, and I think that's a mistake. Applications that need a complex number type I cannot imagine being appropriate for C (maybe Fortran or Java or Lisp ... I'm sure Lisp has that, too). But any high level language that has something like complex numbers or rational numbers had to have that capability designed in some way. Some might do it in C, and some might do it in their own language (shouldn't be hard to do). But asking for rational numbers in C is like asking for rational numbers in assembly. Does the CPU have a rational numbers instruction?

      --
      now we need to go OSS in diesel cars
  297. Lack of skill by _Brazil_ · · Score: 1

    It's a matter of skill and cost... I'm sure if you had 500 programmers that had PHDs in Computer Science and Computer Engineering and code program in assembly then they could work together to make software that would never crash... but how much would it cost to employ that many people with that much skill?

    Why do that when you could hire 500 programmers that just got out of college w/ CS Degrees that now let them know how to program MS Visual Basic really really well and make a program that can execute...

    Plus on top of that... if it crashes once in a while, the computer is probably still helping you do something could never do by yourself.

  298. Crashing a car by Skapare · · Score: 1

    Keeping your indexes inside the bounds of an array is like coloring a picture and keeping inside the lines or driving a car and keeping it on the road. There's nothing to stop you from coloring outside the lines (you won't die because of this) or driving off the edge of a cliff (you will die because of this). Yet we aren't calling for "bounds checkers" for steering wheels. Programming in a language like C/C++ or even assembly gives you all the power you need just like a car, along with the responsibility to stay on the road and not drive drunk.

    --
    now we need to go OSS in diesel cars
  299. Psion by Anonymous Coward · · Score: 0

    Erk, Psion EPOC16 machines (like the 3a) are anything but stable - it's quite easy to crash them, especially Agenda.

    I've used 3, 3a, 3c and 3mx and they will all crash at some point for some obscure reason.

    Agenda is worse, followed by Sheet.

    1. Re:Psion by Anonymous Coward · · Score: 0

      Have to admit to *never* having a crash on my 3a or Revo.

      If only I could say the same thing about my Palm m515 or Newton 2000 . . .

    2. Re:Psion by ebbe11 · · Score: 1
      Hmm, during the seven years I used Psions (one 3a and two 5mx'es, all gone now due to hardware failures) I did a soft reset twice - and I had to look it up in the manual how to do it on both occasions.

      I've had a Pocket PC PDA for about half a year now. On the average I do a soft reset daily...

      --

      My opinion? See above.
    3. Re:Psion by Fjan11 · · Score: 1

      I've used a Psion 5 for years now and have never had a single crash or data loss. I installed several games on it, some of those have crashed, but it never did anything to the OS, my data, or the other apps. So, it can be done.

      --
      This sig is just as redundant as the rest of this posting
  300. Its very simple.... by coeus_theoi · · Score: 1

    .... useless code. It is easily visible in RTS games (Real Time Strategy. Like Command & Conquer). A small patch added to the game activates the use of a unit which was programmed into the game, but its use was removed during production for any numer of reasons. The same goes for Windows. It takes YEARS of work, millions of man-hours of programming done by different groups of people. Sometimes programmers simply dont take the time to completely remove a piece of code or a feature, and instead opt to remove the little "/" at the end which terminates its use.... yet the wasted alphnumerics still remain, taking up space. It serves no purpose. There was an article in Scientific American about the future of software. The fact that programmers and software companies should start taking pride and effort in having 'clean' code. The code used serves a purpose and nothign is wasted, it could really prove to be a thing of beauty if done properly. DNA is rather similar. For example, human DNA is full of useless (as far as we know) code. Old genes, genetic diseases and the like. However, a cold virus has a kind of beauty to it in that the RNA which makes up its genetic profile is only what the virus needs to live, reproduce and so on. Unfortunately, todays software has the equivalent gene quality of a half-dead 97 year old man.

  301. What a load of MS garbage by Anonymous Coward · · Score: 0

    Don't have a clue why I bothered to read past the second paragraph.

    This guy either works for MS or has MS shares.

  302. Bad electricity supply by Anonymous Coward · · Score: 0

    I've had computers crash in certain wallplugs, but working perfectly connected to others.

    First time i experienced this was when I got my second computer, a C64. Since then I've experienced this with Amigas, a Playstation 2 (running Linux) and a number of PCs (Both Windows and Linux machines.) The computer I'm writing this on would crash occasionally until I disconnected everything external and plugged it back in.
    Also a PC refused to boot Windows while connected to the same wallplug as a cooling fan (the ones humans use on hot summer days.) I suspect the thingie created quite a bit of electrical noise :)

    That is all.

    - thorsten

  303. YU0 R TEH MOR0N! by Anonymous Coward · · Score: 0

    Do you know what the "Event Viewer" is?

    No?

    Next time, learn how to troubleshoot!

  304. Fortune 500 companies run IBM and Sun you liar by Anonymous Coward · · Score: 0

    Fancy trying just one version of one distribution and condeming all the versions of every distribution.

    This is either an idiot or a blatant liar. I'd say the later as most professionals don't use Microsoft software for 24/7 applications. For example, how many Airlines use MS applications? Not one!

    And as for a worm infecting his Linux servers...well this starts to sound like a joke rather than MS dribble. I think this person is just trying to annoy and waste time rather than inform.

  305. Computers crash because: by master_p · · Score: 1
    1. Software is complex. Each line of code "doubles" the complexity. Imagine the complexity of a software product like the Windows NTl with 33 million lines of code. Testing every possible case is prohibitively expensive.
    2. Software tools are inadequate. Languages either offer no protection of data (*cough* C/C++ *cough*) or utilize a virtual environment while being slow (*cough* Java *cough*) or are extremely difficult and boring, even if they possess these qualities (*cough* ADA, Eiffel *cough*).
    3. Computers are not fast enough to prove their own programs. The theory is there, and there are software tools that can prove that software meets the requirements (for example the B tool). But running every possible combination of each line of code with every kind of input would take ages. Only very critical systems' projects employ these techniques.

    Software will become more reliable when:

    1. developers will be forced by the programming language to handle every possible case.
    2. the computer itself can prove that the code works as intended.
    3. the programmers will be free from implementation details in the most mundane tasks.
    4. developers are forced to use software testing methodologies by the law.
    5. each software product is accompanied by a receipt with test results as proof that it is reliable.
    6. developers accept (partial ?) liability for their software.

    All these require a change of mentality: the today developers think about profit. They hurry to put something in the market, and security/safety may come later. Microsoft Windows is a prime example of this. Competition is good, but not in the expense of security/safety.

    By the way, it is amazing that even with the primitive available tools, some developers do the job correctly. Most operating systems that I know of don't crash if the hardware drivers installed are good. That means that there has been a bunch of people that had burned their eyes in front of a monitor hunting and fixing bugs (and kernel bugs are extremely difficult to catch).

  306. X number of manufacturers for PCs... by wardred · · Score: 1

    One thing not mentioned is the shere number of manufacturers/devices for the PC. It becomes impossible to test X piece of software, or X driver, or what have you for every combination of hardware that is out there with PCs. And, while it's less likely to happen with hardware, hardware vendors do sometimes do things, much like software vendors, that cause "buggy" or "flaky" hardware for the PC. And then you have mini power outages, brown outs, driver conflicts, a piece of software written for active X 6 and we're not on 9, etc. The PC has far and away more software and more hardware available to it than any other system on the planet. It is impossible to test your software or your hardware in all possible combinations.

  307. Yes! (we need feature freeze) by Jeppe+Salvesen · · Score: 1

    The market has been (foolishly to some degree) accepting features over correctness.

    What we need is for the major OS and application vendors to spend a few years doing nothing more than fixing bugs and finding security holes. As long as we have such a sloppy baseline, continued development will accidentally expose underlying bugs in unpredictable ways. Get your Finite State Machine books out, folks!

    --

    Stop the brainwash

  308. My computer doesn't crash. by trouser · · Score: 1

    I run OSX and Linux on a few different boxes. I can't remember the last time any of them crashed. Once in awhile a process will crash and if this process happens to be related to driving the GUI or keyboard/mouse IO stuff then the machine gets a little useless for awhile, but I can pretty much always ssh in from another box, HUP the offending process and away I go. A lot of people either wouldn't know how to do this or don't have another box handy on the network so they're stuck with a reboot. So ummm my experience is that some programs crash but modern *nix kernels are remarkably stable and the OS itself tends to kind of hang in there and keep on choogling I guess is maybe what I was getting at there. The End.

    --
    Now wash your hands.
  309. Old Computers. by ude · · Score: 1

    I can't seem to remember once that my good old Commodore 64 has ever crashed. But I'm not certain if my good old Amiga 500 crashed either.

    But my 386 SX 16 Mhz running M$-DOS 6.22 crashed a few times, but that was rarely.

  310. Crashes are the past when... by Quazion · · Score: 1

    We stop accepting them as a common thing, when manufactorers decide to give something a longer development cycle. Now its design, produce, sell and then test. Look at loads of firmware and software updates that are around.

    Its normal that a company makes money on support instead of the products they are selling, so it should be crap, otherwise they cant deliver support and it should be just a bit better then the other supplier to make it sell, its better not ? ;-)

  311. Modern debugging is too easy by Anonymous Coward · · Score: 0
    Our first database product, written in assembler, had zero bugs (and it was used by many people for over 10 years). Some obvious reasons: small (70,000 lines). Ran under DOS (a stable system with well-defined interfaces). But the biggest reason is the methodology. Much of the early development was done in a development system that had no debugger. The only way to test a piece of code was to run it: if it never terminated, or crashed the computer, you'd have to reboot and think your way through the program to see what happened. This concentrates the mind wonderfully. It makes you very conservative in programming. You spend a lot of time proving to yourself that the code you are writing will always work, instead of happily running it through a debugger a couple of times and being content with that. Nowadays I mostly work on Windows, but my Linux programs are the most reliable, because they're usually on remote machines (and constant ftp/telnet/recompile is a pain) and I've deliberately never learnt gdb. So:
    • Restrict debugger access. Either charge people for it or have only one team member authorised to run debugger sessions. If my code fails, I either get publicly humiliated ("please can I use the debugger?") or I sit down and think what went wrong. It reflects back onto coding styles themselves: after all, if I can't think my way through my own code just after writing it, what chance will anyone else have?
    Of course, it would also help if we were writing for systems that, unlike Windows, were documented, documented by people who knew how to write unambiguously, and functioned more or less according to their own documentation. The major advantage of open standards is that the process of implementing them (by multiple independent software writers) debugs the documentation beautifully.
  312. Why Do Computer STill Crash ? by pwl256 · · Score: 2, Interesting

    While the constraints may be cost etc perhaps something I took from a PL/1 book - ;-0 years ago may be relevant.
    'The Meaning of Correctness

    1. The program contains no syntax errors that can be detected by the compiler.
    2. As for 1 and it can be run.
    3. There exists a set of test data for which the program will yield the correct answer
    4. For a typical ( ie reasonable) set of data the program return the right answer
    5. For a deliberately difficult set of data the program returns the right answer.
    6. For all sets of data, valid with respect to the specification, the program restuns the right answer
    7. For all possible sets of valid test data, and for all likely conditions of erroneous input the program returns a correct ( or at least reasonable) answer.
    8. For all possible input the program gives the correct, or reasonable answers.

    Most programmers work at level 3 or 4
    Users at 8.'

    (I am sorry but I have lost the reference to the original book)

  313. C won't be marginalized by yerricde · · Score: 1

    Add proper garbage collection ... and you also dispense with memory leaks once and for all.

    Garbage collection simply replaces the memory leak of forgetting to free() memory with the memory leak of holding onto a reference too long.

    There will of course always be room for a certain amount of inherently low-level code written in C or one of its kin: code that absolutely can't spare a nanosecond per run

    Video games and many other real-time applications are like that. Would you rather play a video game with 100 times the MTBF, or would you rather play a video game with 3 times the FPS?

    code that has to run on the bare metal (kernels, bootloaders, ...)

    There are several times more embedded systems in use on this planet than PCs.

    The use of C(++) for document-oriented and database-oriented applications on machines at least as powerful as a PC has already begun to decrease as Java technology and its clones catch on, but C still won't be as marginalized as some claim.

    --
    Will I retire or break 10K?
    1. Re:C won't be marginalized by jonadab · · Score: 1

      > Garbage collection simply replaces the memory leak of forgetting
      > to free() memory with the memory leak of holding onto a reference
      > too long.

      This is true if you do reference counting (like in Perl5), but with
      true garbage collection this is not so.

      > Video games and many other real-time applications are like that.

      Yes, realtime games -- because in games performance matters more
      than stability. Dataloss in a realtime game is generally no really
      big deal.

      > There are several times more embedded systems in use on this
      > planet than PCs.

      Yes, but PCs are used for several times more distinct applications.
      Any given embedded device is generally not used for very many
      distict tasks.

      Except PDAs, but those are becomming more powerful all the time,
      just as PCs are, and the idea of running an app written in (say)
      Perl on a palmtop sounds much less absurd today than it did five
      years ago.

      > The use of C(++) for document-oriented and database-oriented
      > applications on machines at least as powerful as a PC has
      > already begun to decrease as Java technology and its clones
      > catch on

      Yes, but Java has many of the same problems as C. Still, the
      use of VHLLs *is* beginning to catch on, it just hasn't fully
      arrived yet.

      --
      Cut that out, or I will ship you to Norilsk in a box.
  314. Easy.. economics and ongoing profit by smeenz · · Score: 3, Interesting

    In the vast majority of cases, it's simply not economic to release bug-free code.

    1. Any programmer knows that 90% of the code is written in the first 90% of the time, and the other 10% of the code is written in the other 90% of the time. (no typo). That is to say, it takes a lot more time, effort, and hence money, to move a project from "working well" to "working perfectly".

    2. Many software companies these days make very little profit on the 1.0 release of their software, and make huge amounts of money through ongoing support charges. Microsoft is a classic example of this type of company.

    3. If you release a piece of software that works really well, does everything the users want, and never crashes or causes trouble, then you may as well pack up shop and go out of business quietly. The unfortunate truth is that nobody is going to buy version 2 if they can do everything they want with version 1, and they're not getting constantly frustrated by crashes. The only carrot you have in this situation is to think up some really great ideas for version 2 in order to encourage people to upgrade - In fact, some of those ideas may have been deliberately left out of version 1 just so that they could be added later. Version 3 is more difficult still, and version 5 is right out. By comparison - how many versions of office are we up to now ?

    A notable except to this business model is the games writers. Companies like valve and id software consistantly produce very near to bug-free code that works well and generally impresses the masses.

    In all the years since half-life was released, there have been relatively few patches and fixes, and many of those were to prevent ingenious new methods of cheating, or to add support for hardware that didn't exist when the game was first released. The unreal engine had a similar history.

    People buy new games because they crave the excitement or challange of exploring and interacting with it. That's not something that could really be said about excel or word, so those sorts of products have to rely on the "draw out the profit over many releases" strategy described above.

    Another (big) factor is people's expectations - most people expect that word will crash from time to time, and given microsoft's past history, they have little reason to expect that to change. On the other hand, gamers have an expectation that the latest game from id software will be as solid as a rock, and that the few problems that do crop up after the release will be fixed quickly.

    If a games company didn't spend that "other" 90% on the last 10% of development, and released something that crashed as often as explorer, their reputation would be mud within days, and people would stop buying their games.

    And lastly, choice.

    People have a choice as to which games they want to buy. It's a competitive market out there, with many people having little disposible income to spend on games. On the other hand, despite what linux advocates (I can't believe I'm saying this on slashdot) say, most people use MS apps and operating systems because they don't have a choice - say due to corporate rules.

    You might think that it is the end user that gets the sharp end of the stick here, but the people that really get screwed are the dedicated and talented programmers, who are working for companies that don't care too much if they release code before it has been fully tested.

    1. Re:Easy.. economics and ongoing profit by anubi · · Score: 2, Interesting
      "If you release a piece of software that works really well, does everything the users want, and never crashes or causes trouble, then you may as well pack up shop and go out of business quietly."
      Geez! You stated exactly what happened to me. The company I used to work for bought some really neat DOS software for circuit analysis, schematic capture, and PCB layout. It worked flawlessly. Very easy to use. No frustrating DRM/Licensing issues to deal with. User-definable libraries. Nice file structures. In short, what I would have done if I did it myself.

      When they transitioned from an Engineering Company to a Management Company, they surplussed all this neat software. Me, along with my software, was excessed. I was first in line to buy it from the company, being I knew exactly what it was and how I could run it on anything I could get my hands on. The company no longer exists, but I still run the software daily, albeit in another company.

      Here it is, nearly 20 years later. I *still* prefer to use these programs. They are blindingly fast on a Pentium, allow me to update their libraries with all the latest parts I use, and still work perfectly.

      By this time, I understand exactly what these programs do and am quite fast with them.. they are so familiar by now that I no longer have to concern myself with how to get the system to do what I want... now that I have finally perfected a simple DOS-based system thats ready for work about 13 seconds after I turn on power. I still fail to see what everyone is carrying-on about over these finicky new design softwares. I *try* to use them but soon become so frustrated with them that I keep reverting to the simple one.

      It kinda bugs me when I have way too many choices - like do I really care what font or centering options the resistor values show up in the schematic I am preparing to feed to the SPICE simulator or the PCB Layout proggie? Just put the value where I place it and I'm happy. I just want it done NOW. I don't wanna dicker with it. If its gonna get published, I'll dump it into a .DXF file and let the AutoCad and PhotoShop guys gussy it up all they want.

      See? There's an anecdotal evidence supporting your claim. They did the software right, and never sold another to me. All the companies that made the software are now out of business ( one got bought out, the other two are just gone.)

      The favorite concern of the company I now work with is that I am using completely unsupported software. But then, I used a completely unsupported hammer when I built my doghouse. Big deal. If it works, what do you need support for?

      --
      "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

  315. Our professional responsibility? by lynet · · Score: 1

    David Lorge Parnas have discussed the topic of software flaws from different angles. One I find very interesting is the one regarding our responsibility as sofware engineers.
    Do we have a professional responsibility for not making software that a)We know will not work properly, b)Will harm people or the environment, or c)We lack the professionalism to produce?

    At present the answer to these questions seems to be: NO!

    I suggest reading one of Parnas' papers, SDI: A Violation of Professional Responsibility, where he presents the arguments for leaving the SDI (Star Wars) programme due to his belief that such a system could not be built properly.

    --
    -- Recursion n.: See Recursion. -- Random Shack Data Processing Dictionary
  316. infinitude of primes by FryGuy1013 · · Score: 1

    yes, I know there are a couple others, but I thought I'd show something more..

    How many prime numbers are there?

    There are infinitely many prime numbers. The oldest known proof for this statement is a reductio ad absurdum dating to the Greek mathematician Euclid. The argument goes as follows:

    Assume that there are only a finite number of primes. If you multiply all the primes together, and add one, the resulting number, when divided by any of the primes, has a remainder of one. Therefore it cannot be divided by any of what were supposedly all the primes, and it must be another prime, or divisible by a prime that we have omitted from our list of all the primes. We arrive at a contradiction, so our original assumption (that there is a finite number of primes) must be false. So there are an infinite number of primes.

    http://www.wikipedia.org/wiki/Prime_number

    --
    bananas like monkeys.
  317. 4th crash on knoppix tonight by Anonymous Coward · · Score: 0


    Trying to ssh/scp using kio_fish and konqueror, files from an underlying suse installation.

    Fourth time I'm running down to the basement to push the damn reset switch on the box tonight.

    I won't even mention not being able to get a 3com 509C card working on another box with knoppix.

    Knoppix


    The debian that crashes more often than a cheese eating surrender monkey!

  318. he he he. by twitter · · Score: 1

    Oh well, if you can't get pyDDR try "worm" instead. It will practice your vi movements. Put on some headphones and sync your hjkl pressing to the beat. That'll lern your computer to sing and dance.

    --

    Friends don't help friends install M$ junk.

  319. Minor correction by rjh · · Score: 1

    C and C++ have templated containers -- Java's just now getting such genericity.

    C does not, nor has it ever, supported either generics or standard containers. Yes, you can technically kludge something together with nasty preprocessor #defines, lots of void pointers and awful casts, but at that point you can say that C supports logic-based functional programming (ala PROLOG)... after all, with enough code any Turing-complete language can emulate any other.

  320. the way as we do.. by tshuma · · Score: 3, Insightful

    Have you ever heard about a company which is bulding houses without any plans?
    Software companies are growing too fast, and they want to make more and more and more...
    there is no time to make good requirements and no time to make a plan..

    People, and mostly managers, are not "safe thinking".. Thay want everything as fast as possible. This is the reason why software companies need to use software to controll they process.

    But in the other hand, the hardware is looking the same.. i dont remember any C64 which has wrong memory, or motherboard.. it was just good at all! But if I buy a new memory modul to my computer it could be wrong, or it is incompatible with the others!

    So, what I belive, we need to use programs to controll the all software designe process, a program which dont let me go around a problem. But I am sad, because we sould use it since 80's!!!

    --
    There is only one good solution: The simpliest!
  321. Paranoia by Detritus · · Score: 2, Interesting
    Many years ago, I had the experience of reading the source code for the device drivers in a multi-user DEC operating system. It was very enlightening. The engineers who wrote the drivers assumed that all of the hardware was buggy, unreliable junk. They wrote code that expected the hardware to fail or lock up, and took the appropriate corrective action. If an operation timed out, the driver would reset the controller and reissue the command.

    UNIX had the opposite philosophy. The hardware was expected to work perfectly. This led to situations where a DEC operating system would run reliably on a particular machine for months at a time and UNIX would crash within minutes on the same hardware.

    --
    Mea navis aericumbens anguillis abundat
  322. blah by Anonymous Coward · · Score: 0

    imho because operating systems have got much more complex as the feature set grows and therefore so has the code underneath meanwhile humans havent got more intelligent. The time allocated to get stuff out the door has decreased especially in this desperate IT environment which doesnt help.

    Theres ofc the biz incentive to ensure a fault rate. i.e I recently had to buy a new power supply for my HP printer, of course it had been price fixed to cost nearly as much as a new printer, way in excess of its actual production costs. A nice little money spinner and the odds are the average consumer will buy it vs. a whole new product.

  323. FYI by zloppy303 · · Score: 1
    FYI: I'm working on a Sun Ultrasparc1, this is my login info:
    11:08am up 159 day(s), 21:35, 1 user, load average: 0.25, 0.25, 0.24
    User tty login@ idle JCPU PCPU what
    zloppy console 12Dec02160days 4184:21 2517:41 tcsh

    So it's been running (and I'm logged in) since Dec 12.

    Don't be fooled by the idle time, I'm logged on to the console only to start X ;)

    --
    Beware of Programmers who carry screwdrivers. -- Leonard Brandwein
  324. Apple's Human Interface Guidelines by BigBadBri · · Score: 2, Insightful
    Apple's Human Interface Guidelines are a nice introduction to user-fault tolerance, even if you're developing for other platforms.

    Are we to understand that Apple is good, or that Apple users are particularly stupid?

    Personally, I've never used a Mac for work (I've only dealt with them when setting networks up for others), but the UI has always seemed a few steps ahead of the competition in terms of ease of use, so I'd applaud Apple for taking the time to think of the user and making the interface easy to use.

    --
    oh brave new world, that has such people in it!
    1. Re:Apple's Human Interface Guidelines by Afrosheen · · Score: 3, Insightful

      Considering that Apple's original (and perhaps enduring) core market were 'creative types', I'd say they were shooting for brilliant people that didn't know shit about computers. They originally established those guidelines so companies coding software would adhere to a standard and everything would feel right.

      Consider Adobe, for example. You open an old or new version of photoshop on macintosh..it looks and feels the same. Everything is always in the same place on a mac. File, Edit, Bla bla bla it's always in the same order regardless of the version, regardless of the app. It's called 'genius' from a user's standpoint.

      When you can take a drooling noob and turn him into a productive photo retoucher in one week, I attribute that more to apple and adobe than anything. Trust me, I had to train a few dozen people from various backgrounds and everyone became a ninja eventually.

  325. Re:Switch to vector strings and not null-terminate by caluml · · Score: 1
    A simple strlen[strlen(str)]=0; is enough to crash a computer.

    Shouldn't affect the computer as a whole - should just segfault when that compiled program is run.

  326. Obvious quote. by Dr.Karnage · · Score: 1

    Like Agent Smith said: "Some believed that we lacked the programming language to describe your perfect world." Software crashes just like software has bugs, that simple.

  327. You didn't take maths did you? by oliverthered · · Score: 1

    You don't have to test everypossible input.

    Each function can be proved to work by reducing it's functionality.

    Lets say I have a simple function

    increment(a){
    a=a+1;
    return a;
    }

    This function will work as expected for every value of a that is smaller than the maximum size of a, I can prove this and don't need to test every possible input.

    I should really change the code to

    increment(a){
    if a == MAX_SIZE_OF(a) then error(OVERFLOW);
    a=a+1;
    return a;
    }

    --
    thank God the internet isn't a human right.
  328. Problems with the process? by Anonymous Coward · · Score: 1, Insightful

    My take is that there are problems with the process of creating software.

    My first belief is that there are no "user errors" that cause software to crash. Hitting ctrl-s should not cause the word-processor to crash, taking out your thesis.

    Secondly, the software design, develop, test, redesign ... process is far to often ignored. How many software managers out there believe that the sound of keys clicking is indicative of "progress"?

    Third, there are an aweful lot of extremely bad software-designers out there. These are people who fail to understand how to compartmentalize their design. Compartmentalization should always be done with a view to minimizing software complexity and reducing the number of failure cases. A simple elegant well-thought-out design almost always performs better than a complicated over-engineered for speed design.

    Finally, programmers are people - subject to personal problems and limitations in what they can do. I've had the pleasure of working with several very arrogant egotistic project leaders who's projects consitently fail. Nothing pisses people off faster than having their code removed from the CVS and replaced with the bosses' that doesn't work and fails to handle special conditions, esp. when the check-in is done after office hours and the e-mail states "it works, its staying".

    Bottom line: hire good designers, technical writers and programmers. Never hire idiots to save money. Carefully screen project managers, and choose only those ones with success under their belt.

    When I buy software and pay good money for it, failure is not an option.

    -Brett

  329. try this in VB, you'll get i + 1 = i by oliverthered · · Score: 1

    try this in VB, you'll get i + 1 = i

    Dim i As Integer
    i = 32767
    On Error GoTo printi
    i = i + 1
    printi:
    Call MsgBox("I = " + CStr(i))

    --
    thank God the internet isn't a human right.
  330. It IS possible.. by jcr · · Score: 1

    There is such a thing as a reliable operating system.

    KeyKOS was one. EROS is another. Check out www.eros-os.org for the details.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  331. Standford Checker. by eddy · · Score: 1

    The Meta-level Compilation groups Stanford Checker is doing the same thing for linux (and others). Faschinating tech in my mind.

    --
    Belief is the currency of delusion.
  332. Re:A Contributing Factor & Principles (CORRECT by Anonymous Coward · · Score: 0

    A-fucking-men dude!

    Small pieces are the way to go.

    That's how we overcome human limitations,
    build the systems out of no more pieces than we can understand. If it needs more, make it into a two stage project where each piece is less than the managable complexity.

    As an aside, people piss me off when they claim "but software is so much more complicated than a car!" Fucking whiny losers... Let's see them do the materials science to build a decent car tyre...

    "But that's a problem that's already been solved" Yeah, well someone had to solve it... the genius was that we developed standards and concepts how to REUSE that knowledge. Building a new car? Make your wheels standard size and buy the tyres from Michelin or Goodyear (for "freedom" loving types).

    RDBMS is an example of this in software, but there aren't many more good examples and that is part of the fucking problem. Software is as immature as we make it. Since we can't make good libraries, we can't make good software. The sad thing is, we seem too dumb to fix it.

  333. IT'S A SATIRE, YOU IDIOTS. by Anonymous Coward · · Score: 0

    And yet it continues to fly over your heads... sheesh.

  334. depends on you by Anonymous Coward · · Score: 0
    I've noticed that the computers of some people I know tends to get more crap than others. For example, my brothers WinXP PC gets strange popup ads. Mine doesn't. Now, this is not something he has chosen, or wants, but something that he's doing gets him these popups. Probably installing the wrong things, not unchecking certain checkboxes, stuff like that. His overall pattern of computer usage seems to end up making the computer behave worse, but I can't point out anything specific. And yes, it also crashes more.

    It's like it's subconscious, or something.

    /Hmm

  335. brilliant by VanillaCoke420 · · Score: 1
    Of course, there's no need to mention Microsoft's inability to create a stable system.

    I, too, practice what I preach. Oh, and btw, I have nothing but good things to say about the stability of Win2K. But maybe you're using Win98?

  336. Djikstra! by JollyFinn · · Score: 1


    >>To do so would be similar to calculating the "best" route from NY, NY to LA, CA. You could choose any number of roads and paths from coast to coast, with or without loops (finding them would be quite a bitch) possibly traversing every road in the US. If you don't understand why you can't calculate this, ask your neighborhood CSci major.

    The fastest route from NY to LA is computable, it takes sometime, but its small enough to be handled by anymonern computer with ENOUGH RAM to hold the graph of the roads. Have you ever heard of Dijkstra? With Djikstra you can solve single source shortest paths, even with your PC for large problem.

    Also NP-complete graph problems are STILL computable it takes just takes LOTS of computing resources and time, (Travelling salesman) but its not infinite, like infinite state machine. NP-complete is still way beyond solvable with current computers but its in reach withing 40 years, for medium sized problems.
    Its all how much computing resources you have vs size of problem. One grows 2^(sqrt n).
    If we can make 2^30 processors each handling 2^40 elements per second and we could afford spending
    2^30 seconds with it. The result would be 10000 element size travelling salesman problem would be solvable, as absolute manner. And making this happen well there is moore law, and with enough cash to get power, and chips it will be solvable.
    The infinite state machine still is unsolvable problem, because its infinite. Finite data, with finite solving algorithm is solvable it just MIGHT take more computing resources than you have available currently, depenending on problem.

    No I'm not compsci major but Electrical Engineering Major.

    --
    Emacs is good operating system, but it has one flaw: Its text editor could be better.
    1. Re:Djikstra! by jhoffoss · · Score: 1

      Yeah, I couldn't remember Djikstra's name or "travelling salesman" but those are what I was thinking of. And yes, they are calculatable, but you'd have to calculate everything. So I used bad examples, because at least with the TS problem, you have finite roads. With a PC, there is essentially infinite things that could go wrong, and configurations are ever changing and rarely the same. From programs installed to driver versions installed. Anyway, it's been awhile since I took Automata, so I can't remember specifics, but you couldn't write a program that could actually check if a program will crash or not.

      --
      Linux: The world's best text-adventure game.
  337. Lackius RAM by pommiekiwifruit · · Score: 1

    My last game was written on a machine with 640 bytes of work RAM (none of this luxury "K" malarkey). Although admittedly the CPU is a bit faster (3,375kHz). And yup, I'm grateful for it.

    1. Re:Lackius RAM by Mr+Z · · Score: 1

      Cool! One of the guys at work was telling me about the Atari Joystick Atari. :-)

      I thought the Atari had a ~1MHz CPU, and most of your time was spent filling the line buffer, though. Or am I mistaken?

      --Joe
    2. Re:Lackius RAM by pommiekiwifruit · · Score: 1

      The graphics hardware is different; the original VCS could not have displayed the title screen/instructions since they include a lot of text.

      It wasn't the Atari one I worked on. But I'm glad you've heard of it!

      The IDE has all the mod-cons (step-backwards, profiling, tool-tips on variables in source code etc.) since its nice and easy to get PCs to do that with slow machines (I'm sorry, I haven't downloaded your SDK yet). It's a pain going to other hardware emulators (e.g. GBA) and not having that!

    3. Re:Lackius RAM by Mr+Z · · Score: 1

      My SDK doesn't have an IDE or an emulator. Someday it will. I do want bidirectional simulation (eg. step backwards). Eventually....

      My girlfriend takes a lot of my time. It's a "problem" I enjoy having. :-)

      --Joe
  338. It's all about conditioning. by Bert64 · · Score: 2, Insightful

    People are so used to unstable computers nowadays, a crash is considered normal.. people EXPECT computers to crash, and couldnt imagine one that doesnt.
    This means that unstable software sells just as well as stable software, but is much cheaper to produce since you dont need to test it so thoroughly. Now any commercial vendor will realise they can save a lot of money while only very slightly damaging their sales, the money they save on testing more than makes up for the lost sales so they just continue writing buggy software.
    If the average computer user would boycott products for being unstable, and stand up and say "this really isn't good enough", and it seriously hurt software sales, then something would swiftly be done about it.

    --
    http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  339. Re:We've got a lot of techniques in the gaming wor by Anonymous Coward · · Score: 0
  340. no by Anonymous Coward · · Score: 0

    simply no.

    Inaccurate history. Inaccurate on modern day civil engineering. And ignorant of principles of proving software - something that has received BILLIONS of dollars of study in universities and military establishments worldwide.

    Google it and learn; or go on to the next Slashdot article and charm us with the crumbs of opinion you've gleaned from sundry sources and mistaken for actual knowledge.

  341. YOU were lucky!! by interactive_civilian · · Score: 1
    "We had to get up every morning at 10:30 at night, half an hour before we'd gone to bed, drink a cup of hot sulfuric acid and go work at the mill for 29 hours a day, 74 days a week, AND we had to pay the mill owner to work there, and when we came home, our father would kill us and dance about on our graves singing hallelujah!

    and if you tell the young people of today that, they'll never believe you..."

    time to program games??? sheeesh!.

    ;-P

    --
    "Empathise with stupidity, and you're halfway to thinking like an idiot." - Iain M. Banks
  342. Stable, Fast, or Cheap by interactive_civilian · · Score: 2, Funny
    choose any 2.

    or something like that...

    --
    "Empathise with stupidity, and you're halfway to thinking like an idiot." - Iain M. Banks
  343. because kids use them to play video games by andy666 · · Score: 1

    that are violent and kill washington state law enforcement officials.

  344. Because people rarely pay for stability by jopet · · Score: 1

    They prefer fancy features, cool theming, and they like to rave about new releases. They want to be able to read all the Word-documents they receive by email and they want to browse all the badly written web pages. And that is, what they get. Making a stable system would have meant significant redesign long ago, would have been expensive, would have meant long development time and even longer testing time. Who would have paid for this? You?

  345. It's data - use it as you will by jpellino · · Score: 1

    Calm down and stop putting words in my mouth. I didn't claim any of the things you manufactured - but I have a fair amount of data under varied conditions and the life of the OS - and he has one buggy machine. Do the math. I believe he's telling the truth - but I also believe he needs to get the thing looked at. What's your solution? The overwhelming user experience with OS X is that it is sterling compared to most other OSs. If it's unstable for you, dump it or fix it. But it is clearly possible to treat OS X pretty poorly and do a lot better than you are or the above poster is doing with OSX. Your 12" G4 has only two video outs - VGA adapter and S/Comp out - if disconnecting either of those is causing a kernel panic - get it looked at. It's obviously under warranty and you can make it better. Or continue to act like you are and post things like that.

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
  346. However clever, by blamblamblam · · Score: 1

    Your DM was an asshole.

  347. McDonald's Ware by Anonymous Coward · · Score: 1, Insightful

    McD's doesn't make food that's good for you. But they make lots of it and they profit by it.

    M$ doesn't thrive on quality software, just software with lots of bells and whistles, marketed well to the masses. And they profit by it.

    Unfortunately, MickeySoft sets the BAR.

    It IS possible the write qality, bug-free, software that doesn't crash. Just nobody has found a way to profit by it.

  348. Here is a link by Midnight+Thunder · · Score: 1

    Here is a link to the guidelines.

    --
    Jumpstart the tartan drive.
  349. Re:Why do computers crash? Because we let them. by khakipuce · · Score: 1
    The fact is that cars used to breakdown (nearly?) as often as yor computer crashes, back in the days when the car industry was as immature as the software industry (i.e. 1930's?).

    Another way of looking at it is to look at top-end race cars (Formula 1 etc.) They cost millions and break down pretty regularly- for some it must be approaching 1 failure every 50-100 hours.

    So now think about IT. We have an industry that is pretty immature running on cutting edge technology. It's like giving a modern day race car to a 1930's mechanic. It is simply not going to run reliably.

    Ford made billions selling cars that were good for their day (they still broke down, you had to know where to put oil and water, you had to be careful not to flood the engine when starting) but now they just run and all you have to do is get them serviced once a year.

    Bottom line -- its about market forces. At the time ford was selling the Model T, Rolls Royce were selling much more expensive cars. They both still sell cars of different quality to different markets.

    If you want more reliability pay for it, if you want something that for all practical purposes does the job, go for the cheaper option.

    --
    Art is the mathematics of emotion
  350. the organisation of software development by tychoS · · Score: 2, Insightful
    For close to a decade I have worked as a software developer for various companies, and in the course of that period I have read quite a few books and papers on software project management, process and the like, as well as participated in conferences and study groups on the topic. Both theorethical and anecdotical evidence points towards the way we organise software development to be the main limiter to quality and creativity.


    In most software companies you get promoted for political aptitude with little or no regard to yoru knowledge of how to create software and just as important how to organise software development teams well and how to get a mutually benefitical relationship with the clients during and after the project.


    Such people tend to beleive urban legends such as in bygone days, in a country far from here, there was a software project that used the waterfall process and finished on time, within budget and with a happy customer.


    They do this despite the reasons why waterfall processes leads to nowhere pleasent having been throughly documented in everything from scholary texts on organisational theory to excessive numbers of first person narrated horror stories. And who can blame them. They got promoted to middle or upper management, not because they knew a thing about organising software projects, but because they were better politicans than the next guy, so it would not further their carear if they were to sit down and read their first book on software project management throry.

  351. Lots of crashes == bad hardware by ChrisPaget · · Score: 2, Insightful

    Windows 2000 Server, SP3. Up for 55 days, 15 hours, 53 minutes. And that's only because I moved into my flat 55 days, 17 hours ago :) In that time it's been used extensively for C / C++ development, plenty of Quake 3, CD burning, watching DVDs, Kazaa, you name it. And it also serves my website (half a million hits over the 55 days), email, internal DNS, DHCP and file server. It's transferred over 150Gb of data to either the internet or LAN, and has never crashed. Who says Windows 2000 isn't stable? I don't even need to reboot when I install patches - restarting services to trigger the updates is relatively easy on Win2K if you know your services well.

    Windows in general cops a LOT of shit for instability that it really doesn't deserve. Before you criticise Windows for being unstable, I suggest you try debugging a crashdump - 99.9% of the time it's caused by a third-party driver. Cheap sound card? Old graphics driver? Hell, maybe even you've not installed the 4in1 driver for that Via IDE controller on your motherboard? Drivers are the single biggest source of crashes and reboots in Win2K. If you want a stable system, spend some money on your hardware, and get it from a company that provides decent drivers.

    Admittedly, that's the reason why *nix is generally perceived as more stable than Windows - if a driver is bad in Windows, you're screwed. If a Linux driver is bad, you can fix it, recompile the source, and bye bye instability.

    Don't blame Microsoft for instability. Blame the third-party hardware vendors who can't be bothered to spend the time and money properly debugging their drivers.

  352. Freemason != someone who works with stone by kahei · · Score: 1


    The Freemasons were founded in the 18th century (although they are fond of claiming to be several thousand years old, and it's more fun that way). You are thinking of just plain masons, without the 'free' and without the capital letter.

    Masons: build stuff from rock
    Freemasons: walk around in rooms with checkered floors carring dividers and set-squares

    Or, to put it another way:

    Masonry: craft useful in construction
    Freemasonry: last offshoot of neoplatonic philosophy (or at least symbolism) in mainstream western culture

    OR, to put it ANOTHER way, you have inverted the 'learn, then teach' process that works so well when done in the right order.

    --
    Whence? Hence. Whither? Thither.
  353. my experience in COTS development by walterbyrd · · Score: 1

    I can not over emphasize how vitally important it was to get something out the door - right away. They said their stuff was shipping weeks before development was complete.

    The idea of thoroughly testing the software would have been a joke.

    Still, if the OS (MS-DOS at the time) was more stable, at the computers would not have crashed.

  354. Why does software crash? by Anonymous Coward · · Score: 0

    I'm a career programmer with 20+ years of PC
    experience. Here's my summary

    1. Scientific American ran a study about the
    fragility of systems (NOT computers). Their
    conclusion was the more interdependencies there
    were between systems the more likely a system
    was to fail. There are more systems today and
    much more interconnectedness.

    2. In appropriate focus and lack of experience
    by designers and managers. Too many designerd are
    technophiles who put in features because they're
    cool not because they're useful or good. Too
    many managers (ATI graphics card drivers anyone?)
    push product out the door with flaws because
    of market pressures. Are you boycotting ATI
    because they build awful software, or buying
    their cards because they're 'cool'?

    Those are the big ones, there are lots more
    but those catch most of it.

  355. It's not /computers/ in general, it's PC's by wiredog · · Score: 2, Interesting
    From the April 1998 (!) issue of Byte (back when it was an excellent printed magazine):

    "The fundamental concept of the personal computer was to make trade-offs that guaranteed PCs would crash more often...The first PCs cut corners in ways that horrified computer scientists at the time, but the idea was to make a computer that was more affordable and more compact."

    "Having 15 million lines of code isn't as bad as having 15 million lines of new code"

    Millions of PC users would be overjoyed with an MTBCF of just one day. Yet mainframes are big, complex systems that often have clusters of CPUs, gigab ytes of main memory, and thousands of users. What makes them so reliable?

    Mainframe experts say that it's a matter of priorities. ... . When a mainframe crashes, however, it's a major catastrophe. It's General Motors calling up IBM to demand answers.


    It's interesting how little has really changed in the past 5 years...

  356. human by Anonymous Coward · · Score: 0

    Why Do Airplanes Still Crash? Why Do Cars Still Crash? Why Do Computers Still Crash? Why people always make mistakes? Because we are only humans.

  357. I wish Slashdot had a comment summary feature by Crag · · Score: 2, Informative
    So here's my attempt (in no particular order):

    1. Software is a lot more stable than we think
    a. My (*nix/Windows/MacOS) computer has been up for X days/years
    2. Some software is faulty because it can be
    a. Out of Fast/Cheap/Correct, correct is first to go
    b. It's Good Enough (for management/the market)
    c. No accountability for faults
    3. Developers/managers insist on using broken tools (C language)
    4. The problem is just Too Hard
    a. Software gets more complex faster than it gets better
    b. We don't have the tools to build it right yet
    c. It's impossible to test every code path and state
    d. Software is a new "science" we don't yet understand
    5. It's the hardware/interfaces to other software
    a. VCRs and other closed simple systems don't break
    b. Even with ECC memory and disks, there's a non-zero chance of a
    random single bit error from cosmic rays going uncorrected and
    gumming up the works
    c. Each piece works as designed, but every combination of pieces can not
    be designed or tested, and will always have unanticipated states
    (think The Matrix)

    Solutions

    0. It's not a problem (it's a result of other problems)
    1. Fix bugs by removing code instead of adding it
    2. Pay more, wait, or fix it yourself (tip the Fast/Cheap/Correct balance)
    3. Over-build systems to be more defensive against all errors
    (and use better tools and components)
  358. I am troubled... by Jerk+City+Troll · · Score: 1

    that this post got moderated up so high, but this post, which is more on topic and well written did not. Moderators, please pay attention.

    1. Re:I am troubled... by callipygian-showsyst · · Score: 1
      Why don't you go suck my dick? Really now, getting your panties in a knot because other people, in the Democracy called /., deemed it necessary to mod me up.

  359. Nintendo Cube has crashed by Carbon+Unit+549 · · Score: 2, Insightful

    When was the last time someone crashed their Super Nintendo?

    Actually, my game cube has crashed on several occasions with SSX tricky and other games.

    --

    nohup rm -rf ~/. >& zen &

  360. Re:My experience with crashing servers by Anonymous Coward · · Score: 0

    Another classic from egg troll. What a guy!

  361. Focus by Mattygfunk1 · · Score: 1
    What happens when you get hit by a bus?

    Then that is not your concern. Sad but true.

    It is something that too many people overlook - you work for an easier time when you are not at work, business is business and NOT your life. Society is far too work focused when it really should rate extremely low in the big scheme of things.

    Cheap web hosting from three shiney red pills a month.

    1. Re:Focus by TechnoLust · · Score: 1

      That's no excuse for not documenting your code, and DEFINITELY not a valid reason to purposely obfuscate it. Can you imagine how far software would have come if people could come into a job after someone has left and pick up where the person left off? Rather than having to start from scratch because the previous person put all sorts of crap in "their" code so no one else could read it? IMO, if you are a good programmer, you don't need to CREATE job security, you will have it. This kind of work ethic (or lack thereof) is why companies are outsourcing programming and support to India.

      --
      "Da ist ein Technölüst in mein Unterpanten!"
    2. Re:Focus by Delphis · · Score: 1

      This kind of work ethic (or lack thereof) is why companies are outsourcing programming and support to India.

      "You mean you're firing Michael and Samir, and you're giving me more money?"

      --
      Delphis
    3. Re:Focus by Latent+IT · · Score: 1

      This kind of work ethic (or lack thereof) is why companies are outsourcing programming and support to India.

      Yeah, or it could be because they work for less. Just an idea.

    4. Re:Focus by TechnoLust · · Score: 1

      But if Americans would work harder and smarter, instead of doing stupid things like spending time embedding "job security" into their code, IT budgets wouldn't need to be so large. If I could pick between replacing 50 American programmers with 50 programmers working in India for half the American salary or 25 HARD WORKING American programmers that I had to pay a little extra, I would take the American programmers. Most businesses would. Why? Because the more Americans you have working, the stronger the American economy. The stronger the American economy, the better your business is doing. It's not always about labor costs, there are other factors involved. I can lower my labor costs be 100%... fire everyone and outsource every department. Is that going to make my business successful? No. Because people that don't work FOR YOUR COMPANY don't have a VESTED interest in your success, and they are going to whatever it takes just to get by. They aren't going to go the extra mile. The problem is, many programmers now act as though they don't have a vested interest in their company. They do the least amount to not get fired. I don't play like that. I give it my best shot, and I do what I can with the time and skills I have. Some might say that's stupid and won't pay off... but my salary has increased 45% in the 3 years I've been here, so I think it has paid off. I'm 25, but they could find someone just out of college that would work for a lot less money than I make. They haven't done that, because they know it's hard to find people with a work ethic anymore.

      --
      "Da ist ein Technölüst in mein Unterpanten!"
    5. Re:Focus by Latent+IT · · Score: 1

      Because people that don't work FOR YOUR COMPANY don't have a VESTED interest in your success

      So what? The company doesn't have a VESTED interest in your success, either. If you work for a company that has more than 100 employees, in this day and age I nearly guarantee you that you will be laid off as soon as it makes economic sense to do so, and not a moment later. Do companies have pension plans anymore? Do they take care of you if you get sick, above and beyond what the law requires? No. Why would they? All a company has VESTED interest in is its shareholders - not you, not the country, not the environment, nothing. If you think they more than marginally care that you're dedicated, you're wrong.

      If you're an employee in a large corporation today, that's all you are - essentially a contract laborer - a cog in a machine. Your thinking is completely wrong, and one day it will bite you in the ass. Loyalty is dead.

      On the other hand, intentionally writing what I would call 'broken' code, i.e. something so undocumented as to be unusable is also wrong - you're not holding up your end of the contract. Practically, you're a thief.

      Either way, call back when you're over 30. Right now, you're 25, and as far as the real world, you don't know shit about shit.

      By the way - I can lower my labor costs be 100%... fire everyone and outsource every department. Seriously, what does that mean? You can lower your labor costs be 100%? Even if the words were right, is outsourcing free now? If so, who do I call to find that bargain?

    6. Re:Focus by TechnoLust · · Score: 1
      If you work for a company that has more than 100 employees,
      58,000+ last time I checked.

      in this day and age I nearly guarantee you that you will be laid off as soon as it makes economic sense to do so, and not a moment later.
      Yes, but as long as I'm doing my job better than anyone else could, it doesn't make economical sense to lay me off.

      Do companies have pension plans anymore?
      Mine does... and a pretty good one at that.

      Do they take care of you if you get sick, above and beyond what the law requires?
      Yes, as a matter fact, our insurance coverage (which the company pays for most of) is second best in this area.

      Either way, call back when you're over 30. Right now, you're 25, and as far as the real world, you don't know shit about shit.
      Oh, you are one of those "You are too young to know anything" people. I've been working in IT for 9 years (yes, since I was 16) and I know a thing or two. I'm not so naive that I think they keep me around because of my charming personality. But I work hard, and THAT makes me indespensible, not self created "job security".

      Seriously, what does that mean? You can lower your labor costs be 100%? Even if the words were right, is outsourcing free now?
      I mistyped... that should be "...costs BY 100%..." and it is correct from an accounting standpoint. Most places put outsourced labor under a different account than employee labor. So, it goes into overhead instead of directly affecting product cost. Yes, it's a stupid accounting trick, but I was trying to illistrate the point that there are OTHER FACTORS besides the cost of labor going into your bottom line. Call back when you learn about accounting. :-)

      --
      "Da ist ein Technölüst in mein Unterpanten!"
    7. Re:Focus by Chop · · Score: 1

      I have the same attitude, the only problem was my last employer. I gave them my best shot saved the company loads of money, yet still have not recieved a raise. Which is why they are nolonger my employer.

    8. Re:Focus by Anonymous Coward · · Score: 0

      "illustrate" ... :)

    9. Re:Focus by The+Clockwork+Troll · · Score: 1
      Yes, but as long as I'm doing my job better than anyone else could, it doesn't make economical sense to lay me off.
      There is a flaw in your logic. For example, I am a world-renowned freelance typewriter repairman/bottled milk deliveryperson. I freelance because I was long ago laid off by each of my companies and have not been able to find a job in 22 years.
      --

      There are no karma whores, only moderation johns
    10. Re:Focus by Latent+IT · · Score: 1

      Well, one day you'll figure it out, but it seems you're the type who won't believe it until it happens directly to you. Oh well.

      Believe me, I won't lose any sleep over it. Especially since you think putting something in a different column of a spreadsheet means it doesn't cost anything.

      Do you think working in IT for 9 years means anything? Do you think starting at 16 means anything? Maybe you'll have to wait a very long time to get clued in, but when you're laid off two weeks before you can collect on your pension, I bet you'll understand then.

      In this world, no one takes care of you but you. Especially not me. So no more free advice, besides this - make certain you have your own damn retirement fund. If you're too dumb to do that, you deserve whatever you get.

    11. Re:Focus by TechnoLust · · Score: 1
      you think putting something in a different column of a spreadsheet means it doesn't cost anything.
      Did you even read my post? I said it was an accounting trick, not that putting it somewhere else made the cost go away. I never once said that made it free. As I explicitly said in my last post, THE WHOLE POINT OF MY ARGUMENT IS THAT THERE ARE OTHER FACTORS BESIDES LABOR INVOLVED.

      but when you're laid off two weeks before you can collect on your pension...make certain you have your own damn retirement fund. If you're too dumb to do that, you deserve whatever you get.
      If I'm laid off tomorrow, I can still collect my pension when I turn 55. Sure there won't be much in it, but I can collect what's there. (I told you we had a good pension.) In addition to that, I have a 401(k) with a company match (100% for the first 3% of my salary I have deposited, and 50% for the next 2%). Besides that I have a ROTH IRA and a Traditional IRA.

      So no more free advice
      I am terribly saddened, but some things are worth what you pay for them.

      In this world, no one takes care of you but you
      I'm sorry that's the kind of life you have. I'm glad mine isn't like that. When I was in the hospital with kidney stones, it took a day for my mother to travel up to visit me in the hospital. In the mean time, my neighbor came and made sure everything was signed and gave them my insurace information and she even went by my house and picked up my laptop and a book from my roommate, so I could get some work done while I was in the hospital, instead of laying there inactive. Other friends came by and brought me things.

      If I ever need anything, I have family, friends, and my closest fraternity brother that will do whatever is neccessary, and I would do the same for them. If you honestly have no one that cares about you enough to take care of you when things go wrong, I feel bad for you. So I guess we live in different worlds after all.

      --
      "Da ist ein Technölüst in mein Unterpanten!"
    12. Re:Focus by Anonymous Coward · · Score: 0

      Heh. You're a funny, funny little man.

  362. Re:A Contributing Factor & Principles (CORRECT by Jerk+City+Troll · · Score: 1

    I'd just like to point out the *BSD projects are "managed" with these principles in mind. A lot of the work going into BSD is the result of doctorial theses and other strict academic work. As a result, there's intense peer review, both immediate and those reading whatever journal you are trying to get published in, and a lot more consideration to provably strong design.

    And I definitely agree that software is not more complicated than a car. Anyone who thinks software is more complicated has never popped the hood. Hell, cars also embody a lot of software these days. Plus, while most people can crank out a program, I doubt any of them could even draw out a design on paper for a vehicle that works.

  363. Safe Software by Anonymous Coward · · Score: 0

    Avionics software must be developed in compliance with RTCA DO178B to be used in aircraft certifed by the FAA. Creating such software is expensive and labor intensive. But, even then redundancy is need to provide the necessary reliablility. Flight control systems on large airliners have 3 or 4 computers that 'vote'their outputs.

    Drawing conclusions are left as an exercise for the reader.

  364. Microsoft has the ability to create stable softwar by Anonymous Coward · · Score: 0

    But if they did, and everything worked just fine, who whould continue paying to them for upgrades and patches?

  365. Simply stated, the reason is the end user... by Anonymous Coward · · Score: 0

    Software is not reliable simply because there are enormous pressures to release it as soon as possible. Since you can't not develop the software and still release it, software companies are making up the time in QA. Honestly, I think most developers, given enough time, could write perfect code. That's the nature of them, they constantly seek to improve and refine their code. At some point, it would become "perfect" in the since that it would do everything as expected. Here in the real world, developers only receive a fraction of the time it would take to get to that point. So, we can assume that in most situations the code that goes into modern software programs is less than perfect. QA's job is to find where the imperfections are located, to hopefully speed up the developer's work. This system, without external pressures should work to create extremely stable software. Then marketing comes into the picture and chaos ensues. Marketing wants this software at such-n-such time. That forces QA to take risks in their role, and test only what's considered a "reasonable" amount, usually far removed from a complete test set.

    So what's the result? Developers are forced to hurry their coding, tinkering, and refining. This passes some risk to QA. QA is usually even further behind the developers. Thus they are forced to test only a sample of what would be considered "complete". This adds to the risk already passed on from the developers. In the end the marketing department gets to release Microsoft Windows. Developer refinement and further QA testing occurs post-release and gives you the much-loved "Hot-Fixes" and "Service Packs".

    In the end, the only one to blame is the End-User. We live in a world of instant gratification and expectation. Demand for things is immediate. Marketing's purpose is to meet those demands; thus they put the pressure on the rest of the cycle. And that, ladies and gentlemen is the circular prophecy of modern software development.

    Flame on....

  366. The real question: by MxReb0 · · Score: 1

    If we were to make computer crashes a thing of the past, what would we have to do, both in our software and in our operating systems, to make this come to pass?
    The real question:
    If we were to make computer crashes a thing of the past, what would we have to do?
    Anyways, I'd say that *nix is pretty stable with uptimes of hundreds of years possible.

    --

    MAKE YOUR TIME
  367. Choose two out of three: by stomv · · Score: 1

    Timeliness|Price|Quality

    This tradeoff exists in all facets of the economy. Turns out that in software (OS or otherwise), most are choosing the first two.

  368. Plenty of blame to go around... by zerofoo · · Score: 1

    Lots of people here are defending users and blaming programmers for computer "crashes".

    I'm a network administrator and I have to deal with these users every day. The typical user will define a computer "crash" as anything the computer does that the user did not intend. That situation may, or may not, be a "crash".

    Yesterday I had a user complain that Appleworks crashed on her while she was working on a document. It turns out the program threw an "IO error" when she saved the document.

    Guess what caused that error?......a bad FLOPPY! I asked her if she kept a duplicate of her document on the server, but she said she didn't. It seems her floppy disk was 3 years old and it had just given up the ghost.

    She thinks the computer crashed. In actuality it hadn't. How can you blame the system architects/programmers for that?

    Some programmers may be lazy, but that's nothing compared to the stupidity of some users.

    -ted

    1. Re:Plenty of blame to go around... by magic · · Score: 1

      A piece of software that failed to trap an I/O error and instead exited abruptly is clearly at fault. One try..catch or error code check could have saved this user's document.

      -m

    2. Re:Plenty of blame to go around... by gordguide · · Score: 1

      You are absolutely right. Too bad that's not what he said happened.

  369. The People's Will by mobileskimo · · Score: 1

    In answer to whether people would pay for something that's broken (ie. would people pay for a car that won't start reliably).

    People do. All the time.

    And you wonder why so many great author's say humans are stupid? We sell to the lowest common denominator. It's the few greedy, lazy or otherwise simply stupid people that ruin it for the rest of us. It will NEVOR be resolved. There's nothing to resolve. This is the way we are designed. Until someone fixes us, this will not likely change.

    --
    "Last one in is a rotten goblin!" - Kepp
  370. With great power... by Anonymous+Brave+Guy · · Score: 1

    ...cometh great responsibility. He who cannot handle that power should not take on that responsibility. Thus it always was, and is, and for ever more shall be.

    Here endeth today's reading, which was taken from 1 Life, verses 1-3.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  371. IMO, the mentality behind creating it has changed. by Demon-Xanth · · Score: 1

    I had read an article a while back where it came to the conclusion that software has gotten worse due to programmers not checking thier code before they compile it, but instead just bouncing it off the compiler until no errors pop up. Remember, you no longer have to schedule compiler time.

    Now consider the difference between hardware and software:

    Software can have millions of lines of code.
    Hardware can have millions of transistors.

    Software can usually be patched in the field.
    Hardware can rarely change once sold.

    To run a new batch of software, someone must only compile it, and then test it.
    To run a new batch of hardware, someone must re-layout the PCB, buy parts, get the board stuffed, and then test it.

    If a piece of software breaks, it can often be patched.
    If a piece of hardware breaks, it has to be replaced.

    Basically:
    It costs big money when hardware screws up, so companies spend time making sure it's good. But software doesn't have immediately visible high costs. And it has more of a "black box" mentality.
    -

    --
    If you think education is expensive, you should try ignorance -- Derek Bok, president of Harvard
  372. Cost and Lack of Testing by Anonymous Coward · · Score: 0

    Why do programs crash? There are two main reasons:

    1. Coding time is very expensive.
    2. Teams aren't using test driven design (or written unit/integration/regression tests).

    You also can have the problem of non-technical management that doesn't have a clue how to develop reliable software (or software period). Keep in mind that many people today have very low expectations with regards to the quality of software. If it doesn't need to be reliable to sell well, why spend the money to make it reliable?

    Think about it. The commercial software vendors are making software to make money. Many times they couldn't care less about how well the algorithms were implemented, or that the architecture is solid, etc.

    Quality software comes from people that are passionate about their art, not from a profit (at any cost) oriented corporation.

  373. You broke my calculator by CausticPuppy · · Score: 1

    I got an error when I tried [9], [+], [3], [=].

    It turns out that I was really supposed to do the following:
    [9], [Enter], [3], [+] and it responded with the expected "12"

    Reverse Polish Notation, really cool, is.

    --
    -CausticPuppy "Of all the people I know, you're certainly one of them." -Somebody I don't know
  374. The best crashes. by Anonymous Coward · · Score: 0

    Are written in assembly. Have you ever taken down a VAX cluster with one wrong assembly instruction, you should give it a shot. Crashing PCs is for minor leaguers, try knocking off a machine that has 50-70 users on it at the time.

  375. Not sure about that.. by Jeppe+Salvesen · · Score: 1

    When you start building "fault tolerant" programs, you also risk having subtle bugs live for a long time and then all of a sudden explode in your face.

    If we want to reduce the error rate, we should do it the right way: Spend more time in the design and fault detection/correction phases. That is boring, and it produces less revenue. But it works according to everything I've read about the subject.

    --

    Stop the brainwash

  376. well...... by m00by · · Score: 1

    it's obvious isn't it? if the hardware is better, it MUST be the software! =D seriously though, it's crappy drivers and incompletely tested/badly written code. given that I manage/aid in managing 100+ 2000/NT servers, and half (if that many) netware servers (which work better), not to mention the toying I do with linux and *BSD's in my free time, I'd have to say that lazy programming is the reason that most problems occur. sure, a meteorite fragging your hard disk, or using it as bullet resistant armoring will cause errors, but not as often as bad code will. that was the whole reasoning behind OpenBSD, to ironically, shut that puppy up tight. by correcting bad programming they have built a very secure OS. maybe there's something for microsoft to learn here. perhaps instead of adding crap on top of crap, they could audit their code instead of letting 5kr1p7 k1dd3z do it for them...but I'm just one raving lunatic that will likely never progress past windows 2000 on the MS frontier. slackware for me!!!! =D

  377. Here's another one by sdack · · Score: 1

    >>> Why do cars break down?

    This hasn't improved for how many years??

    Sven...just wondering

  378. Not economically effective by Anonymous Coward · · Score: 0

    Software and developemnt strategies have changed, but the laws of economy haven't. The 80%-20% principle and all that is still there.

    Which means that buggy, error-prone software will always be around since no companies think it pays off to fix bugs.

  379. Disabled auto-update? by metamatic · · Score: 1

    Are you crazy? Think how many security holes they're open to at this point.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  380. Would you run a Bank on it... by bodland · · Score: 1

    I don't think so. Try doing some "real world" work with a Windows box and see how long it stays up. Games and loads of other stuff you use are stable and well written and NOONE would buy them OR use them if they weren't. In the business world software sales is about making money not stability. Crappy programming practice should'nt bring a whole system down....and it does when it comes to Windows. Blame Microsoft for the culture they created that thinks it is OKAY to reboot once a week.

  381. VIA EDEN by metamatic · · Score: 1

    A VIA EDEN system can run on 20W of power. It'll run Linux happily, and fit in a box not much bigger than a CD-ROM drive. Will that do?

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  382. It's cause by modern times =) by troy_psx · · Score: 1

    Time is money.... Money is time.... The software made more fast.. is more money... more fast .. small time to project the software... small time to project... error is founded.....

  383. Undefined Behavior by platos_beard · · Score: 1

    Programmer's have to deal with lots and lots and lots of undefined behavior. Language specifications contain undefined behavior, I know C++ does. APIs include lots of undefined behavior.

    You can read "undefined behavior" as "may work fine in testing, but breaks in the real world." I've seen C++ undefined behavior that works fine in unoptimized builds, but crashes with the optimizer turned on. I've dealt with API calls that work fine under Windows 98 and crash in Windows 2000 (or was it the other way around).

    Now a good programmer can make sure he doesn't do anything undefined if he's careful enough, but it sure makes the job harder. The amount of undefined behavior that software development involves makes it more like the medical profession than other engineering professions. Asking why computers still crash is like asking why, with modern medicine, people still get sick.

    Of course, with new languages and new APIs, we may be able to escape this problem and make programming more like engineering.

    --
    What's a sig?
  384. Derrrrrr by ajole · · Score: 1

    If software has always been about as reliable as it has always been, doesn't that mean that software is just not that reliable?

    Take a risk analysis course.

    --
    -P ...and the boy pulled open his bleary eyes an discovered the python he always knew he was.
  385. That icon-swapping issue by raygundan · · Score: 1

    What the heck causes that? That is the single most screwed-up glitch I get from windows. It's bizarre-- instead of just failing, the code actually exhibits the rather complex random behavior of making icons for some programs look like icons for other programs. Utterly baffling.

    1. Re:That icon-swapping issue by JKR · · Score: 1
      Well, it's not helped by POS software like Iomega's IoWare, which appears to install a kernel-mode service, JUST to change the removeable drive icon.

      Adobe are guilty of this as well, they ship DLLs which render thumbnails of PS and Illustrator images into the icon; it's always THOSE icons that break first.

      Quick fix used to be to delete C:\WinNT\ShellIconCache.

      Jon.

    2. Re:That icon-swapping issue by Anonymous Coward · · Score: 0

      I think it's an issue with Windows' icon cache. TweakUI lets you rebuild that cache without restarting.

  386. two simple things ... by Anonymous Coward · · Score: 0


    The question is why do computers crash, not why
    do programs not do what is expected.

    Basically, people write programs to work, not to fail. If people wrote programs to "FAIL" ... then
    we wouldn't have all this crashing nonsense. What I mean by failing is, every command must be considered to fail -- and the program (or OS?) must recover gracefully. Personally, I'm so tired of open source programs that are written for exactly 1 instance of an OS (that of the author).

    Secondly, programs need to be more resilient and graceful. That is, a program or programming language needs to ALLOW for commands to fail.
    This about null pointers... these should not
    cause a program to crash, the program should just go on. Code would basically be of extremely simple components, but with a completel level of reslience.

    For instance... just thinking out, something like:

    program command to do something (can't crash)
    look for anything strange, if so, is it related
    to me? does it affect me? if not, continue.
    Think about what it takes to get you from your bed to the closest mcdonalds. That program alone is virtually impossible for many instances, but it should be trivial. Think about what you do as a human -- this is all a program has to do. Ya, if you *choose* to take a car and another car hits you, you could say that you crashed... but if you're not hurt and you continue to mcdonalds, then the accident wasn't fatal to the goal.

    I'm sure people will not understand this, or people will claim it is already in place, etc.
    It is difficult to explain this here in a short manner, but I wanted to put some fodder here for the kiddies to misunderstand and tear apart. The
    responses will only hepl me make things better.

  387. The fault lies not in our tools... by mwood · · Score: 1

    ...but in ourselves. We don't take time to do the job right. We concentrate on trivial stuff like skins and ignore important stuff like does-it-work. We don't hang coders caught reading from a socket into an 'auto' buffer. We release undocumented products (which means we don't even understand our own creation) and stick the end user with solving a black-box problem. As customers, we continue to exchange good money for others' bad code and don't complain when it fails.

    Incidentally, the reliability of million-dollar computers, which is what you were using 30 years ago, has improved *enormously*. It's the reliability of $299.95 computers you find at the supermarket which is questionable. You can get much better stuff if you're willing to spend a little more money and, more important, a little more time learning about the in'ards of the products.

  388. TBH by Anonymous Coward · · Score: 0

    Just shows how much you know about DNA & genetics... :]

  389. Re:Time is input too by A55M0NKEY · · Score: 1

    The timing of the entering of input into a program may affect how it runs too.

    --

    Eat at Joe's.

  390. Where I work... by chiller2 · · Score: 1

    .. there are many critical systems glued together with very badly written scripts (shell, etc). They work fine as long as there is not a problem or delay along the way, at which point they fall apart.

    For example, we retain 60 days worth of logs and reports. The original script looked at the system date, and deleted any files older than 60 days. Simple, except for when the clock skewed wildly (to the year 2020). All history data was deemed more than 60 days old and deleted.

    I altered said script to delete anything older than 60 days and newer than 61 days and the problem went away.

    In another example we have several important EDI files that go up to a broker system each day. There was a plain old upload script, called from another script, that would upload the files and exit. The calling script would then delete the files. This was all fine unless of course the FTP failed, which it did fairly often.

    Of course, because there was no error checking to see if the FTP succeeded, the files were erased regardless, and an administrator had to log in, rebuild the files, and run the upload script. Fine, but nobody knew usually that the scripts had failed until the broker called or e-mailed about it.

    Seeing how much time this wasted I wrote a quick Perl script to do the upload, and report back by email to the administrators if it failed, along with why (couldn't connect, login info rejected, etc). On failure it queued up the files to go later, rather like a mail queue. Again, a little error checking goes a long way.

    If you don't bother with error checking, it will almost invariably come back to haunt you.

    --
    --- Commission free trading & free stock up to $500 - use http://share.robinhood.com/kelvinp6 :)
  391. MS Hardware vs MS Software by Anonymous Coward · · Score: 0

    I have w2k sp3 and it has never crashed on me, although I have never tried crazy uptimes because the fan is too loud. However, I also have a 5-button optical intellimouse and back when I tried to install the stuff on the CD that came with the mouse, it said it had to reboot. That was ok until it told me to press ctrl-alt-del to log in. The new intellimouse software had somehow disabled my keyboard and mouse (both with PS/2 connections). The only solution I could think of was to do a complete reinstall of 2k.

    As far as features vs. stabiltiy goes, I can forgive Opera7 the odd crash, IE is less stable and doesn't give me the lovely safari-style skin or tabbed browsing in multiple windows or mouse gestures or continue browsing from last time or only accept requested pop-ups. Go Opera!

  392. Oh god, more Big Bro bashing... by dasmegabyte · · Score: 2, Insightful

    Of course, there's no need to mention Microsoft's inability to create a stable system.

    You know, my win2k machine -- the one that has been up since our last power outtage, and had been up since the power outtage before that -- has never crashed. It might be because I don't overclock it, used a retail processor, Intel networking, four fans, whatever. But it has not crashed or needed a reboot since I installed Jetico BestCrypt last year, March or something. I use it every day, have played pretty hardware intensive games on it, and even used it as a server.

    I think the problem here isn't with Microsoft and their inability to write a stable OS. If it is stable anywhere, that means the kernel isn't leaking ram or occasionally polling hardware that doesn't exist. The problem therefore lies with Microsoft's inherent trust that driver manufacturers and software engineers will handle their own damn errors. Linux doesn't do that. The kernel is so "low" that it recovers from just about everything. The software on top of it, that's another story. Many of the applications I've used in Linux crash after a single parsing error, bringing down anything reliant on them. Tell me you've never had an X server crash on you, taking down your entire GUI. To the average user, who isn't running a bunch of services or daemons, losing the GUI is the same thing as crashing. So what if bringing it back up is faster than rebooting the machine -- it's also more complex to support.

    Besides, hardly anybody buys a Windows installation because they wanted a more stable system. They bought it because they wanted cooler toys and a snappy GUI. People "buy" Linux, BSD, et al. for stability.

    --
    Hey freaks: now you're ju
  393. I do believe we have struck a nerve by almound · · Score: 0, Offtopic

    Could it be because of management (see rules 5 and 6)? In case anyone was wondering about the ground rules:

    Corporations 101
    (for the new employee)

    1. Management is not there to help.

    2. If you actually understood what management was saying, you would quit.

    3. Don't bother trying to understand what role management plays in a corporation. They don't know, and nobody else does either.

    4. If you don't do what management says, everything works out just fine.

    5. Excellence is the farthest thing from management's "mind." Uppermost is fooling people into believing that it is.

    6. Management doesn't mind presiding over a corporation comprised simply of itself and a Human Resources department. And often they get by without the Human Resources department.

    7. Stock price is the barometer by which one can tell how well management's retirement fund is padded.

    8. The CEO never gives a f**k, and banks upon being quietly and summarily dismissed.

    9. Every executive hopes to become CEO.

    10. This is the best system the world has to offer.

  394. Oh the irony... by kotj.mf · · Score: 1

    While loading the first page of comments, my Zaurus ran outta memory and crashed. Figures.

    --
    hang brain.
  395. The reason is..... by Anonymous Coward · · Score: 0

    When the software is buggy, the software developers can earn more money... by making you upgrade to a newer version... offcourse they implement new bugs there ;)

  396. programmers trending downward by junkgoof · · Score: 3, Interesting

    I think this brings up a good point. Hardware may have improved, software development tools may have improved, the people writing software have gotten much worse. A few years ago most people who were in the computer industry were there because they knew something. Now they are there because they wanted money, some HR droid picked their CV out of a pile because of the acronyms, and some manager does not know enough to fire them. Layoffs haven't helped either, generally the knowldegable people with higher salaries get booted first. Security vulnerabilities are up (including old stuff that has not been patched) and successful projects are down.

    --
    You got me into this! You were the ideologue! I'm only a poor assassin! - Twenty evocations, Bruce Sterling
  397. Java allows out-of-bounds accesses too. by Chemisor · · Score: 1

    You can reference array elements that do not exist in Java too, and in any other language. The only difference is that Java will throw an exception, while a C program will crash. As far as the user is concerned, the result is identical - bye bye data.

  398. 1999? 1998? by themusicgod1 · · Score: 1

    damn lynx deleting my post. anyways ive crashed many a nes, snes, and otherwise... it is possible. while without a doubt dust 'forign objects'(dust/dog hair/etc) is the most common reason for a crash, hardware failures(*cough playstation*) and even design/software bugs do exist. though i didnt know it at the time for what it was, i remember finding with my friend a bug in Final Fantasy I that was repeatable in both our respected cartridges. and that was in the days before complexity of hardware/software really began to take off... i personally can imagine an 8 bit system that doesnt crash. 256/128 bit? thatl be the day... theres just too many things going on.
    that being said i once said that i thought that the first ai(a very youthful me, innocent and naieve as i was) would be a next generation(from 98) windows machine that was left up too long and crashed -- and that this crash handling was the first stage of consiousness. why not? mabye crashes in the future will be used to accelarate our technology by giving it *depth*...a randomness(or so i thought before i learned of hardware clocks and random # genorators)...and uniqueness.

    --
    GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
  399. How much do you want to pay by Mike+McTernan · · Score: 1

    Well, really it is simple. If you want everything to be more reliable you will have to pay more for it - development and debugging cost money and time. Time to market is often an important factor and hence the software will be released with testing only to ensure some mean time to failure, if that.

    Software could be more reliable, but it would also cost more, and most consumers don't like that... (or know what software is!).

    --
    -- Mike
  400. CPU speed -or- reliability by PurplePhase · · Score: 1
    In a recent slashdot on the PowerPC970, the linked article at Ars pointed back to earlier articles, including this one. At the very bottom of the page is a startling paragraph (apparently I have a very brittle concept of how perfect humans' products should be). This is most of the paragraph:

    The trade-off for this decreased failure rate and improved reliability was that the Power4's transistors have slower switching speeds, so even with process shrinks it's harder to push the design to higher clock speeds. Since the 970 is made for the desktop market, there's no need for such measures and therefore the new chip's clock speed will scale much higher than the Power4's. In sum, the 970 is made to be faster, cheaper, and significantly less reliable than the Power4. (Of course, when I say "significantly less reliable than the Power4," you have to understand that this puts the 970's product life and failure rate on par with other mainstream CPUs, since the Power4's increased gate oxide thickness makes it significantly more reliable than most mainstream CPUs.)


    8-PP
  401. Re:Why do computers crash? Because we let them. by bhamm · · Score: 1

    Face it -- if our cars broke down as frequently as Windows (or Linux or whatever), we'd be suing the auto industry out of business.

    If our VCRs ate every tenth tape and only played tapes from the same manufacturer as the VCR with any quality, they'd all be returned to Circuit City.

    But for software, we grit our teeth and say, well, I just don't understand computers, and reach for the power switch.


    While i wont disagree that ms makes far too much money on second (or third) rate software, i must take issue with the analogy about "if cars were this flaky, we would.."

    part of the computer problem is what people do *after* they turn the box on.. they install all manner of commercial software and other shareware.. they buy peripherals and upgrade their box with more memory, etc.. I liken this to if consumers were to attempt replacing their own transmission in the car, especially with non-mfg parts.. and then became upset that something doesn't work quite the same

    if folks just set up their box stock and didn't go around mod'ding it with software/hardware all the damn time (i agree this is hardly practical, but for the sake of arguement..), they'd probably have a much lower failure/crash rate. They're no less complicated than a car, but computers are asked to be much more flexible in their task. That flexibility is going to introduce more potential problems..

  402. Asserts will fix that. by Chemisor · · Score: 1

    It is trivial to add runtime bounds checking to a C++ class by putting an assert into the operator[] implementation. If you feel you need more information, you can actually throw an exception (possibly inside a #ifndef NDEBUG) and fill it with the crash context as you unwind the stack. Java did not invent exception handling. As for your problems with memory management, they result from a failure to adhere to the cardinal rule of memory allocation: delete allocated memory in the same scope where you allocated it. That's what Java enforces for you. Memory allocation is easy if you know exactly who owns each block, and if you ensure that this ownership is consistent and preferrably non-transferrable. Any memory management nightmare you encounter is always the error of a programmer who does not know who owns his objects; and there is absolutely no excuse for such irresponsible behaviour.

  403. And here's your display by hendridm · · Score: 2, Informative

    It's x86 hardware, but it's powered through the video card. Looks pretty good at 800x600 too (it's a TFT display).

    Unisys 10.5" LCD Monitor w/ 2MB PCI Video Card

    It says 2MB video card, but the one I got was a 4MB video card. It happily supports dual displays with Windows 9x and higher, but it doesn't support video playback, so scrap the idea of getting it to watch TV or play movies on. But for what you're describing, a small monitor for a low-power system, I think this would be ideal.

    Sadly, they don't have a Linux driver for the required 65550 video card, but there's always Google and the price is right.

  404. Funny thing about computer errors... by Thedalek · · Score: 1

    Strangely, system crashes don't generally happen on video game consoles. There are a (very) few exceptions to this rule.

    Of course, there are some reasons for this: video game consoles always have the same hardware setup (that is to say, every PS2 is functionally identical to every other PS2, software wise), and the user can only really input through a simple controller. However, as the systems become more complex, they start to resemble a full-fledged computer system more and more. So the question arises again: Why?

    Standarization. You never have to download new drivers for an Xbox or Gamecube controller (even if it is 3rd party) because all such controllers conform to an interface standard. Multi-player adapters are always plug-n-play. To a computer developer, this sounds like a mythical la-la-land. To a console developer, this is a given.

    --
    Happiness is relative, Based upon the way we live.
  405. Uh... this is flawed by Rooked_One · · Score: 1
    Ok... i've had windows 2000 installed since it hit the warez scene back around august of 99.

    NEVER ONCE have I had a problem with this OS made by the 'evil ones' except for when IT WAS MY FAULT. Either I overclocked my machine, installed beta drivers, or just did something very stupid. IT HAS NEVER crashed on its own. Might I note that through all of this i've been using a radeon32 then a radeon 8500 and i'm sure there are others out there that can vouch for me that radeons were never really supported by win2k at first, but then ATI got their act together and wrote some decent drivers, BUT EVEN SO, the drivers that were out there were stable enough to call my box a workstation.

  406. Sorry man... by DesertFalcon · · Score: 1

    but I'm going to have to disagree with you on most of the points here.

    For one, I've got a Windows 98 box (se) that I've been running for about three years now with no crashes, no reinstalls, etc. etc. I turn it off now and then to deal with the memory leaks in IE but other than that, it stays up. The reason I've been able to keep it stable is because I closely monitor the software that's installed and running on it. In my experience, Windows only crashes if you gratuitously install every piece of crap software that's offered to you. And if you do that, really, you deserve to have it crash.

    Windows aside - I've got a FreeBSD box that *never* goes down. That's with several dozen sandboxed accounts on it, each of which is running its own web services package - sendmail, apache, mysql, any custom perl scripts the users want to install, etc. etc. Unless you're a clueless sysadmin, running *nix can generally guarantee that your system will never crash. Individual programs, yes, but not the system as a whole.

    Bottom line is that if your machine is crashing, you're either using crap for an OS, or you're installing crappy software. Keep your system clean and running only what you need it to run, and you should see your crashes go away.

    --
    --- 11 meters/second, or 24 miles per hour - the airspeed velocity of an unladen European swallow. Really.
  407. Why Do Computers Still Crash? by dougdonovan · · Score: 1

    that's like asking why do vehicles still break down? ahhh, the perfect world. we wouldn't know what to do. let's start out w/ the power going out & you are late for work.

  408. Sorry to be contrary... by DesertFalcon · · Score: 1

    but have you ever actually written any large piece of interactive software? What about any large piece of multi-threaded/multi-user software? The reason I ask is because it is *impossible* to predict, when you're writing the software, what bizarre combination of input your end users are going to come up with.

    It's all well and good to gripe and moan about how the people writing software should write it to handle errors, (and you're right, they *should* write their code to handle errors, there's no excuse not to,) but I don't think you can safely blame everything on shoddy coding. There's just no way to predict every possible combination of input, particularly on a large or complex piece of software. And just writing good error handling code isn't going to change that.

    --
    --- 11 meters/second, or 24 miles per hour - the airspeed velocity of an unladen European swallow. Really.
    1. Re:Sorry to be contrary... by Anonymous Coward · · Score: 1, Insightful

      Yes I have 30,000 lines of code and not one crash in over a year. It is multi-user and multi-threaded and is used ALL DAY everyday at my office. I will not say that it has never had any issues but it has never crashed. Most of the issues seem to have to do with the DDE link to our contact managment program. Sometimes they seem to stop talking to each other.
      The truth is this is more about the OS then apps. An app should not take down a computer if it does then the OS has issues.
      I will say that a lot of OS crashes and app crashes has to do with shoddy coding.

  409. crashes happen by pulse2600 · · Score: 1

    Shit breaks, and that's all there is to it. Nothing in this world is perfect. Humans are not perfect, they do not make perfect things. Saying we should have computers that don't crash is like saying we should have cars that hit 200 mph in .01 seconds, generate 0 emissions, and never ever ever need repair or maintenance - esp cause we've had cars longer than computers. You are asking for perfection and that is not humanly possible.

  410. Complexity and Requirements by warped23 · · Score: 1

    I have to echo some sentiments already posted about increasing complexity and the ability to control the environment to prevent crashes (of which there are all sorts of kinds). I started in programming 20+ years ago but over the last decade have mostly been involved with systems integration and consulting, and so have run the gamut from designing programs to ripping out my hair over trying to use them and the systems they are supposed to be running on. Many different platforms have been mentioned in these posts, but I think there is a common facet to them all; the ones requireing limited hardware and software compatibility (and support fewer applications) are going to be more stable. It's easier to control the environment, and there are far fewer developers and customers to have to work with Microsoft is in a position unlike other OS vendors; They are providing and supporting a family of OS's that are trying to handle *every* kind of user from a single home user to small businesses to fortune 50 firms with tens of thousands of users, and at the same time are striving for interoperability with other operating\file systems, compatibility with probably tens of thousands of peripherals, hundreds\thousands of PC platforms, etc, and that finally have a huge installed base of somewhat computer illiterate customers.. And, they of course have a huge installed base of older OS versions that they have to support. I think any vendor in their position, with today's overall environment, is not going to be able to do much better in terms of limiting crashes. To the open source supporters - I think that if open source gets what it wants - reaching the masses - it's going to have the same problems the larger the number of customers it gains, the number of platforms\peripherals\software products open source will be asked to be perfectly compatible with will increase drastically, and those combinations will be "stressed" much more than they are now by the larger volumes of users. It seems like open source took a long time to support even some basic common peripherals in ways that typical consumers could deal with. If you took an open source platform like Linux and suddenly put it on the current platforms of several million end users with legacy systems, I would guess there would be widespread serious problems, and those users would have no one to go to for quick fixes. No "typical" user is going to be satisifed with being told that if they have a problem, they have to wait until a random user in similar circumstances with a *nix programming bent decides to poke their nose around and try to fix the problem in their spare time. That might work for a small core of very common platorms and products, but won't hold up to the thousands and thousands of hardware and software components out in the real world today. Which is why I think that while a LAMP server on a common platform might be extremely viable for businesses, the same OS\hardware setup might (probably would) fail miserably for the typical end user masses as it stands currently. All that aside, no matter what platform you are discussing- as a user of these systems, I find the basic architecture of the PC platform very frustrating, and ..ah .. crude considering all of the years of development there have been. Just look at even the basic hardware design - why are we still having to risk finger cuts to insert stubborn PCI boards into tight slots and having to try to screw the damn paddle boards in - why no boards in pluggable cartridges like a video game console, for instance? It's a small (stupid) point, but kind of shows that after all of these years, we still have a platform that has way too many individual component suppliers (hardware and software) and little standardization, quality, & error control. And I think that when OS vendors have to let all of these vendors play directly in the same sandbox, trouble is always going to happen. It seems to me that we are never going to accept, en masse, complete proprietary hardware systems from sin

  411. Software crashes because it is open, not closed. by gurps_npc · · Score: 3, Insightful
    Anyone can write code for a computer.

    In order to be flexible enough to do everythign a computer can do, computer languages have to be allowed to crash the computer. Otherwise you are severly limiting what they can do and slowing thigns down.

    Most computer crashes are caused by an INTERACTION of two pieces of code that did not know about each other and were never tested.

    If you want a system that never crashes than all you have to do is:

    1) accept a restricted operating system that will never be able to compete with a commercial system like Windows.

    2) Never install a program that was not A) created by the same company/group that wrote your operating sytem, B) specifically designed for your particular computer, and C) designed to be used with and thoroghly tested against all the other software that is currently installed on your PC>

    That is what companies do when they make non-pc computer equiptment (cars have tiny computers) and is the reason why such things do not crash.

    --
    excitingthingstodo.blogspot.com
  412. No stable windows? by Anonymous Coward · · Score: 1, Informative

    I know this is slashdot, but what about Win2000/XP? I've only had XP crash when I used old software drivers. Since then it's been fine.

  413. My 2 cents by Anonymous Coward · · Score: 0

    Ok, I haven't read any of the comments, but this sprang to mind instantly: Have you ever tried to write a big program? I don't mean a measly 2,000 line program, but a BIG PROGRAM? One that spans at least 50,000 lines? Ok, if you have, then you know it ain't easy. Making a program this big, or bigger, is certainly possible. In fact, it can be done, and has been done. But most companies aren't willing to take the time to make sure it's bug-free. Profit-minded companies just want to rush their product out to the market.

    Did you know that many companies out there consider a program with one serious bug "releasable"? It's true. If you take too long to work on a product, you lose money. And that's what's unacceptable in today's market.

    It's not the people or the computers. It's the market that drives the standards.

  414. The Software Stipulation by Anonymous Coward · · Score: 0

    I, once, worked with a very insightful Finnish software designer who told me that champion software is characterised by (1) high quality, (2) low development cost, and (3) low time to market. He added that any two of the 3 are achievable, and that it is impossible to achieve all 3.

  415. Re:Whose computers still crash? Not mine!! by Reziac · · Score: 1

    That's a good point. A scooter is designed for short-haul, and does that very well. Win9* is designed with the idea that most users shut the machine down once a day, so long uptime wasn't exactly the first point in the design specs. Whereas NT/2K was expected to be a 24/7 server OS, and is designed and behaves accordingly.

    That said, *I* think it's normal for Win9* to run for weeks at a time, often working its ass off -- before TurboTax forcibly installed IE5.5 and FUBAR'd resource management on this Win98 box, it routinely had uptimes around 6 weeks (usually ended only because I wanted to use it in plain DOS). And it crashes at worst only once or twice a year, and has *never* BSOD'd. (In fact, most of my WinBoxen, from Win3.1 to XP, have *never* BSOD'd, and crash seldom to never.)

    Computers, unreliable? Well, some folks' systems, maybe. But if I had a computer that was crashing all the time, I'd regard that as a clear symptom that something was wrong -- most often cranky hardware or sheer lack of maintenance.

    See also http://slashdot.org/comments.pl?sid=45941&cid=4745 739 (beware the /. space) [g]

    --
    ~REZ~ #43301. Who'd fake being me anyway?
  416. Vendor chaos, low quality control by labradort · · Score: 2

    In mentioning that gaming consoles are the exception to the rule, you're on to the critical factors in the differences.

    Here are the key aspects that lead to system instability of PCs (Linux or Windows or whatever):

    1. Chaos of hardware vendors.

    There are thousands of pieces of compatibile hardware for your PC. No one can test all of the combinations and revisions and their various driver and BIOS versions with all of the other hardware and software. If the hardware came from one vendor, or was standardized (which isn't going to happen), then there could be better quality control on the hardware.

    When software and hardware are from the same vendor and go through their joint QA, you get better quality and fewer surprises. It isn't perfect, but it is less chaotic. Sun Solaris and Sun hardware is an example of this, and there are many more in the server/mainframe world.

    2. Low level of quality control and durability design in hardware engineering and manufacturing

    There are more quality checks in how Heinz ketchup is made (tastes the same all over the world with tomatos grown in very different regions) than in how PC components are made.

    As a result there are many more DOA hardware, and hardware that behaves flaky.

    This is related to keeping prices for the hardware down. Up to now the performance has increased at such a pace no one is complaining if they have to ditch a 2 GB drive and buy a 100 GB drive, or toss out their 486 for a P-III. Contrast that with my Canon AT-1 camera, which is still working fine since 1976 (two minor physical repairs), and my Yahama stereo amp, which is working great since 1989. If computers (and other cheap electronics such as digital cameras) ever reach the point where we expect them to last for 10 years or more, the quality control and durability of the components will have to increase.

    3. Chaos of software vendors

    Again, there are thousands of software titles and dozens of operating systems and revision/patch levels. It is impossible to test all permutations together. It is usually impossible to test completely all permutations of software options. I was asked to QA a product which had over 8000 different ways the options dialog box could be configured. Of course it wasn't done. We tested only a single option by itself, and not very many combinations were tried before the server product was shipped. I've seen very specific interactions between software products and their DLLs in Windows. This has been mainly fixed by the way Microsoft Windows XP manages DLLs now, but there are still ways that memory and resource leaks can cause one application to poison another. I've also seen Microsoft intentionally leave a poison bug in Internet Explorer to keep a competitor from taking on a role they had planned for IE in the future. They do these things in a very innocent way.

  417. oh come on... by spazoid12 · · Score: 1, Insightful

    Why Do Computers Still Crash?

    So, he's used computers for 30 years, apparently not programmed them.

    Other important questions:
    Why do computers still cost money?
    Why do computers still require power?
    Why can't computers yet read my mind?
    Why don't computers smell pretty?

    Well, back to the crashing... it's all my fault. I'm sorry. I won't do it again.

  418. people don't care by mboedick · · Score: 1

    Computers still crash because your average use doesn't care that they crash. All the computers he has ever used have crashed regularly and he accepts this as a fact of life. Not to point fingers, but the dominant operating system for the past 15 years has created a culture where crashing is an accepted, even expected, part of the computing experience.

    Most people use computers in a task-oriented way. As long as they can accomplish their task in a reasonable amount of time, they don't care if their machine crashes once or twice in the process. They are not interested in tweaking things or making things run more smoothly.

    I think people have a sense of powerlessness when it comes to computers. I have seen people continue to use machines that crash constantly, everything is a mess, hard drive is full, etc. for years. Members of my family got infected with some windows pop-up message annoyware, and they just accepted the fact that they constantly had to close these spam messages popping up.

  419. Insert Generic Dilbet Joke Here... by Anonymous Coward · · Score: 0

    Dilbert's Salary Theorem states that Engineers and scientists can never earn as much as business executives and sales people. This theorem can now be supported by proof based on the following postulates: * Postulate 1: Knowledge is Power. * Postulate 2: Time is Money. As every engineer knows: Power = Work / Time. Since Knowledge = Power, then Knowledge = Work/Time. Since Time = Money, then Knowledge = Work/Money. Solving for Money, we get Money = Work / Knowledge. Thus, as Knowledge approaches zero, Money approaches infinity, regardless of the amount of work done. Conclusion: ... left to the reader.

  420. The Problem With Java (and other similar beasts) by Anonymous Coward · · Score: 0

    Is that JVMs are complex.

    All java does is move (some of) the complexity off the application programmer's shoulders and onto the JVM/JDE programmer's shoulders.

    In theory, this is good software design practive:since the JVM is written and debugged once, and reused over and over, it should be less buggy.

    But JVMs are written by people like Microsoft, so they're buggier than heck, because they're rushed out the door the same way Windows is.

  421. Favorite movie quote by Anonymous Coward · · Score: 0

    "you keep using that word. I don't think you know what it means."

    Since you're offering your observation, here's mine: I've seen damn near the exact same thing said about every version of Winders (and yes, I can't bring myself to type it, live with it), and time and time again, it has been proven to be at best, marketting hype.

    A nice haircut and a nicer smile are no substitute for critical thinking, no matter what the teevee tells you.

  422. crash-proof computing by Roadmaster · · Score: 2, Informative
    a few months before it got cancelled, Byte magazine published a great article entitled crash-proof computing, exploring the reasons why PCs are so tremendously unreliable. This goes beyond merely stating the known fact that Windows is horribly unstable and recognizing Linux particularly as a more stable solution; the article compares the entire PC architecture, design and current manufacturing and implementation techniques to big-iron systems like mainframes, with "5 nines" availability, MTBF of 20 years (yes, that means the computer is spec'd by the manufacturer to crash only once every 20 years), and other such techniques meant to justify those 6 and 7-figure pricetags.


    Overall a very good read, highly recommended.

  423. Re:Why do computers crash? Because we let them. by dschuetz · · Score: 1

    they buy peripherals and upgrade their box with more memory, etc.. I liken this to if consumers were to attempt replacing their own transmission in the car, especially with non-mfg parts..

    Yeah, but the operating system is designed to allow this. The hardware is designed to accept new cards. Why don't all cards have standardized APIs (thus not requiring specialized drivers?) That alone would solve a LOT of problems.

    I'd say that adding peripherals to a computer isn't so much like changing the transmission, but like changing the radio. Certainly, you wouldn't expect an aftermarket CD player to cause your windshield wipers to not work. But we seem to accept that adding a Soundblaster Live! card will stop your Zip drive from working.

    I still say it comes down to the industry, as a whole, not being forced by the consumer to design their products properly, and that no amount of theoretical improvements in design or engineering methods will matter a damn if they aren't pressured by the marketplace to implement those improvements.

  424. Senior admins are what??? by UNIBLAB_PowerPC · · Score: 1

    Senior admins are a small minority of software customers.

    You had me up until that point. Are you overlooking the fact that senior admins essentially speak for a larger number of people? Or that senior admins recommend purchases from enterprise-side rollouts down to workgroup-level rollouts all the way down to answering questions for anyone they encounter socially (I.E. from telling the secretary what PC to buy so little Johnny can out-frag the other preschoolers to answering questions every time they go to a family function, church, a bar, or any other kind of social function where the question "What do you do for a living?" is inevitably asked?). Yeah, if you overlook those scenarios, then you can definitely say that senior admins are a small portion of software customers. Whatever, dude -- there is a reason ThinkGeek.com sells shirts that say "No, I will not fix your computer."

    1. Re:Senior admins are what??? by Minna+Kirai · · Score: 1

      I think the people who buy those shirts are junior admins. The senior types don't often want to appear in T shirts.

      Also, the lower-level staff is on the front lines of responding to end-user needs. They're more likely to field questions about "Which new NVidia card should I buy?". After all, they're more numerous, more accessible, have more unscheduled time, and have more direct experience with the bowels of consumer-grade hardware (as opposed to designing backoffice architexture, a more important task for the senior guys)

    2. Re:Senior admins are what??? by Surazal · · Score: 1

      WRONG. Junior people don't *buy* those shirts. They'd prefer to get them for free as some sort of promotional thing or something :^)

      --
      --- Journals are boring; Go to my web page instead
  425. Re:crashes? - you just said it by victim · · Score: 1

    I know, its too late, no one will ever read this but...

    I run memtest86 whenever i suspect a problem. Sometimes it has to run through warm up for the problem to trip. I had machines that took as long as 8 hours of memtest86 before they generated errors.

    So, add $5 to the cost of a new machine for a robust memory system, or set up each new machine and bench test it for 8 hours, then whenever it crashes mysteriously bench test it again?

    The market consistently chooses not to spend the $5 on robust memory systems in their new hardware. Its the pocketbook vote that matters.

  426. Re:Software crashes because it is open, not closed by TitanBL · · Score: 1, Informative

    "Most computer crashes are caused by an INTERACTION of two pieces of code that did not know about each other and were never tested."

    A majority of crashes are at the kernel level. How do you suppose one would go about "introducing" their code (drivers), and ensure compatibility. with an OS which is not open source?

    "1) accept a restricted operating system that will never be able to compete with a commercial system like Windows."

    Yep - unix, linux, OS X - they are all so "restricted" and shrouded in a veil of secrecy. Ha. Must be why they are not "commercial", right?

    2) Never install a program that was not A) created by the same company/group that wrote your operating system, B) specifically designed for your particular computer, and C) designed to be used with and thoroughly tested against all the other software that is currently installed on your PC.

    You highlighted this while reading your Getting Started with Windows XP booklet - didn't you?

    "That is what companies do when they make non-pc computer equipment (cars have tiny computers) and is the reason why such things do not crash."

    You are referring to what is called an embedded system - your reasoning/comparison is sorely invalid.

  427. Its because... by Realistic_Dragon · · Score: 1

    Computer still crash because consumers in focus groups (you know, those people who must have an average IQ of 11 who have their ideas intepreted by marketing types with an average IQ of 3) state that they want more features, not more stability.

    Development time being finite, stability never gets worked on - hence Microsoft Clipart at the sake of a version of Windows able to hit decent uptime figures.

    Thankfully free software has less of a problem with this as mostly it's designed by geeks for geeks, and users and focus groups can go p*ss into the wind for all they care :o)

    --
    Beep beep.
  428. Modern OS? by Mr.+Mosty-Toasty · · Score: 1
    So, why are modern operating systems still unable to deal with and recover from problems?


    Modern operating systems? I must have missed something.


    All we currently have is a 40-years-old loader programm for spacewars, which has been extended and patched until FUBAR...


    And then there's this DOS thingy... with the teletubby-GUI... know what I mean?


    So please, if you know of a modern operating system, tell us!!!

  429. It's sloppiness by Syberghost · · Score: 1

    Same reason my frickin' Nokia cellphone crashes; because computer programming is still science, not engineering.

  430. Human Error - or just bad management? by Thumpnugget · · Score: 1

    no cramming features in weeks before ship

    This reminded me of the fact that often times it is management and the "got to get things to market yesterday or we'll never be able to compete and then we're doomed so cram these other features in and don't worry about the bugs we'll fix those in a patch later" attitude that causes software bugs.

    Don't get me wrong. Coding quality between coders varies dramatically. But even the very best coder can only do so much when his manager is telling him he's got four days to implement some whiz-bang feature before code freeze or else.

    --
    Free yourself. Everything else will follow.
  431. Software Crashes because... by voxel · · Score: 1

    We are only human. No one is perfect. Not even "god", if you beleive in that sort of thing.

    Besides.. Most of the time its the hardware that is crap, and the software has to "support" the crappy hardware. I know from experience.

    --
    Modesty is one of life's greatest attributes
  432. EVENT VIEWER!!! by Anonymous Coward · · Score: 0

    Do you know how to troubleshoot at all? If not, take your computer to someone who does before bitching...

  433. Languages, reliability and expectations by jk0ne · · Score: 1

    One reality of software development (or anything development, really) is that a product will only be as good as the customer demands it should be. Our economic system drives manufacturers to produce what the customer wants, and not much more.

    So, if we all expect that our windows software is going to crash fairly often, when it does, we aren't surprised, and we don't demand better. (And how could we, Often times there's no way to tell it had anything to do with the software in question) On Mac OS X, we don't expect crashes so much, and when the software we are working in crashes, we view it as bad software quality, but some of us remember OS 9 enough to excuse it for the most part. For linux and (insert Unix-OS here) we expect our server apps to be reliable, and when they are not, we look for alternatives. When our Linux desktops crash, we chalk it up to beta software or whatever... but still it's an abnormality... but we forgive, after all, it's a volunteer project (most of the time.)

    The crash-resistance of software increases proportionally with our expectations. Simple economics, really. Supply and demand, if we demand stable software more than whiz-bang software, we are going to get it. The majority of people don't. They expect computers to act that way. They are still 'technology' after all. People expect new technology to be problematic. We won't put up with half the problems on our home phones (not 'technology' in most peoples minds) that we put up with on our cell phones.

    As someone else pointed out. NASA and The U.S. Navy do not run on unstable systems. The systems they run on have different levels of reliability because if they didn't, they would have bought something else in the first place.

    Regarding languages and the quality of the code different languages produce, there is no correspondence.

    A programmer who understands both the syntax and the programmatic idioms of, say, C, can produce code that is just as unlikely to crash as another programmer who has the same level of ability and experience with, say, java.

    All to often people think that because they know the syntax of the language well they know how to program in the language well. This is simply not the case. There is much more to programming than being able to write code. A programmer who understands the idioms of the language, and uses them them during the design phase (yes there is a whole phase where you just think about how to solve the problem) tends to produce higher-quality code than someone who does not.

    For example, if you understand pointers and you know how to safely use them, they will not cause you problems in your code. If you are not diligent about managing your pointers, you will have problems. If you don't know to use bounded string operations, you can have buffer overruns, is that the languages fault? no.

    The complexity of systems is bunk too. Yes, systems are more complex. However, as long as interfaces are well defined, and the developer follows the rules of the api, you will not have problems. Once again, there are more than syntactic rules here. For example, the Cocoa APIs on Mac OS X (and gnustep) have very well-defined rules about who 'owns' objects. It is very easy to ignore these and produce working code. If you do, though, you will have problems with object leakage in your programs at best, and outright crashes at worst.

    (yes,there can be bugs in system libs, but they occurs less often than bugs in joe developers code, in my experience, and are usually fixed more quickly.)

    In short, I think there is no technical reason that applications and computers crash. The 'bad software' problem lies mainly with people, what they will accept and won't accept, and programmers who believe that because they can write a program in a language they know the language. There's a big difference between the two.

  434. Except that... by Rimbo · · Score: 1

    ...we had total control over the hardware and drivers that we released.

    We released a full embedded product, and so there were no user options to give us any hassle that way.

    And that decision was by design so that we could ensure that it was bug-free.

    For example, if you pop an SD Card out in the middle of a write operation, you will corrupt the data, no matter how bug-free your software is. Solution? You physically block the SD Card slot. Since we had to build an external shell for a couple of additional components anyway, it was just a matter of remembering that we wanted to block the slot off.

  435. KDE and stability by siskbc · · Score: 1
    This was done before KDE 3.1.x so who knows Linux might work after all.

    Kind of. I recently switched to KDE 3.whatever from 2.whatever (finally!) and it seems more stable in most respects. I occasionally have disconnects still between KDE and the X server, and sometimes the K panel or kicker or whatever they call it loses the ability to function.

    Still, worst-case scenario is I have to 3-finger salute to log out of KDE and get to a command line, restart X, yadda yadda. Actually, I think one time KDE lost the keyboard too, and I had to walk over to the damned windows machine, telnet in, and kill X. But that was with KDE 2.

    Ultimately, the beauty is that with linux, the operating environment has a layer between it and the OS, so the environment can't kill the OS. THat's how it was with windows 3.1, and it was great! No longer though, I suppose that was too stable. So no matter how many bugs that KDE dev team throws in, it can't hurt me! ;)

    --

    -Looking for a job as a materials chemist or multivariat

  436. What about liability? by VinceTronics · · Score: 2, Insightful
    MIT Tech Review's July 2002 cover story was titled Why Is Software So Bad?" (registration required to read whole article). The article makes the point that because there is no liability to the makers of faulty systems, there isn't any real incentive to build systems that never crash.

    What if we could bill the HW, OS, and apps vendors for our lost time due to crashes? I'm sure systems would improve in a hurry!

    What's needed is legislation making vendors liable for losses due to faulty computer systems. Remember, carmakers cared more about styling than safety until Ralph Nader's book Unsafe at Any Speed alerted the industry and consumers to the need for things like safety belts. Now we have federal safety standards for automobiles.

    I'm sure the libertarian-leaning tech community will freak out as soon as they read this. But "self-regulation" will only take the computer industry so far towards total reliability. As computer systems govern more aspects of our modern lives, government regulation seems inevitable in my view.

    1. Re:What about liability? by EllF · · Score: 1

      Companies need money to operate. By and large, that money comes from your buying their products. If you think their products crash too much, stop buying them -- don't waste my tax dollar on more legislation that will simply be "overlooked" when it comes to a corporation that has enough of your cash to pay for someone to look the other way.

      --
      We who were living are now dying
      With a little patience
  437. Totally and completely wrong by jpmorgan · · Score: 1

    Three words: Formal verification methods. The mechanism of mathematically proving your software to be correct. Languages like Eiffel are even designed with automated verifiers in mind.

    1. Re:Totally and completely wrong by jhoffoss · · Score: 1

      If you can produce an OS and applications with Eiffel, and prove to me that it will never crash, I'll eat my pants, shoes, boxers, and start on my home's carpeting. Seriously.

      --
      Linux: The world's best text-adventure game.
  438. My computer doesn't crash by codeguy007 · · Score: 1

    [mark@mail mark]$ uptime

    3:19pm up 57 days, 5:56, 2 users, load average: 0.15, 0.03, 0.01

    The only time this computer reboots is when I update the kernel or I have a power failure. It never crashes and has been running steady for 2 years now.

    Sure some Linux programs may crash occasionally but a majority of the system is stable and if you choose the right software it won't crash.

    I can't say the same about windows.

  439. Re:Nope! Case in point. by alext · · Score: 1

    Indeed. I couldn't believe this when I encountered it, but it's true. My desktop now only does powersaving when in Linux!

    I heard that Win95 worked OK, but somebody at MS decided that as they couldn't figure out how to do IRQ allocation right for the supposedly more complex 'server market', they wouldn't do it at all, and everyone would get to share IRQ 11. Or something.

  440. I don't have a problem by Anonymous Coward · · Score: 0

    I am so surprised that i have not seen a post of this type so far in the ones below... considering all the people that use unices on slashdot.
    But... my computer doesn't crash. The one i have right now, with flawless hardware, never has... in the nearly a year i have had it. Previous computers haven't crashed on me, ever, except for when the RAM went bad in one of them.

    I use Linux, as many people do here. What are you doing wrong that makes you even have to discuss this for anything other than on the behalf of the windows users?
    Really, it HAS NOT CRASHED ON ME ONCE.
    I load tonnes of stuff up at the same time, often have memory/processor intensive tasks running in the background at low priority... load is close to maxed out a lot of the time (there is always a new build of wine or mozilla to leave running at nice -n 19 :))
    And yet no crashes. Do i have a magical aura or something?

  441. Why is crashing a bad thing? by gilgongo · · Score: 1

    It didn't stop the Mac from getting popular.

    Most people don't care if the OS crashes. It's annoying, but as long as data's not lost, we can live with it. Everyone here saves their work regularly and backs up at the end of the day, after all. Would that change if the OS didn't go tits up now and again?

    The alternative is higher software costs to pay for herculean debugging programmes and other tactics nail the causes of crashes. I'd pay for that in an OS controlling a nuclear power station, but not for a glorified typewriter I play Quake on from time to time.

    --
    "And the meaning of words; when they cease to function; when will it start worrying you?"
  442. It's your fault by Bitmanhome · · Score: 1

    Noone will ever see this post, but I'll answer anyway. The real question is, why are you running unstable software? Flaky software is common because that's what people are willing to pay for. Now the reason for that is bound up in cost vs. practicality, but software will be flaky as long as you buy flaky software.

    (Um, I guess the question was about computers, so my rant applies to hardware too.)

    --
    Not that this wasn't entirely predictable.
  443. it's your computer. by Anonymous Coward · · Score: 0

    quit your microsoft windows bashing

    can your Dell/Compaq/HP computer run this?
    http://www.mersenne.org/freesoft.htm

    this will force your computer to do some calculations. the program knows the answer. your crappy computer will probably be wrong because it is an inferior POS with sub-standard parts. if you get errors from that program, then windows and all software within it will crash periodically.

    if you can run that for 24 hours straight, then your northbridge, cpu and ram are ok.

    every thread at this crappy site:

    useful info
    some guy comparing the info to something else
    some guy telling the first guy that their is no comparison
    5 pages of arguing about the comparison
    the sum of all this is zero uselfull information until i degrade myself and post something here.

  444. Just a Thought by Anonymous Coward · · Score: 0

    Does anyone think that there will never be bugs in software? Even if all software moves to open source, thorough testing, focus on quality, etc.? Check out the homepage for OpenBSD, the line that used to read "0 security vulnerabilities in the default install for the last * years" now reads "1 security vulnerability in the....". OpenBSD is a model of open source development with a focus security above all and I think most people will agree that they have built one of the most secure OS's ever. Admittedly, this is different than a system crash, but it's similar. Mistakes happen. Always will.
    Side note: my windows XP box-0 crashes, win2k-2 crashes in 2.5 years, Linux box-0 crashes. Stability can be achieved on any modern OS.

  445. Guilty as charged... by HaggiZ · · Score: 1

    I have to say I'm not innocent of it, as much as I wish I could be

    In the end there are quite a few factors that ultimately come into play as to why an application I've built crashes:

    - Laziness. I just simply forget to put in the appropriate error checking in place, and the user attempts something I didn't account for
    - Deadlines/Cost. Unrealistic deadlines mean that, althought I'm loathe to release the product management doesn't care and demands a release anyway
    - Something larger. There have been cases (I'm on a MS platform for most parts) where a known problem or undocumented "feature" actually prevent the regular operation of the application

    All of these are avoidable, could be adequately planned against, and are completely inexcusable from an end user perspective.

    And even as a developer I tend to agree. At the end of the day, I really shouldn't care what OS or processor my computer users so long as it reliably does all the work I need it to. I hope that day eventuall arrives.

  446. They crash because you buy sh!t hardware by The_Dougster · · Score: 1

    My spiffy Asus A7N8X motherboard has yet to crash, you are probably running some junk from Compaq/Dell/Gateway etc. I guess you don't understand that the "big" pc manufacturers are in a mega price war and they buy the cheapest they can get. You will never see a top-quality motherboard in a "big-name" vendor's system.

    --
    Clickety Click ...
  447. Psion software development process by Anonymous Coward · · Score: 0

    I worked at Psion on all the early devices as a software developer. The reason the software didn't crash was because it was designed from the ground up with quality in mind. The basic premise was, whatever happens, we can't afford to lose the users personal data in the machine, and the development process and OS design reflected that - with painstaking attention to detail.

    The length of the development process was not significantly affected. We were still able to use C, and still had pointers. But we were good programmers, working with good tools with a great OS underpinned by well designed hardware.

    In a word... good engineering. It's amazing, developers today don't even aspire to crash-free code - a reset is accepted as a fact of life. It doesn't have to be that way, with good engineering, as we showed.

    BB

  448. Because Software is so Complicated by MrWizard510 · · Score: 1

    Part of the answer is that the size and complexity of software has continued to increase, allowed by the increasing speed and lower cost of hardware.

    The result has been that our software has grown faster than our ability to insure it won't crash. The tools and languages have been evolving along with the size of programs being written -- and have not yet caught up.

    There is also a tendency in software developers and the companies that hire them to try to add value by stretching the limits of what the earlier people have done. Windows is a prime example of this -- continuing to evolve and incorporate pieces of Browsers, Email, etc. The amazing thing is that crashes in this chaotic environment don't happen more often.

    Finally, part of the answer is that stuff from the past (legacy stuff like 'C', Unix and the Windows API) rarely gets thrown away, instead it gets built upon. It would be expensive to throw it away, so people try to fix the warts as they find them. This approach is good, as it lets us continue to re-use solutions that worked. But it has the side effect of preserving some of the more crash-prone aspects of code ('C' string overflows, not checking Unix system calls, etc.)

  449. What makes them so reliable? by oliverthered · · Score: 1

    The mainframe where I work gets reloaded every week, and often has peformance problems or downtime.

    --
    thank God the internet isn't a human right.
  450. If the OS is to blame - Try QNX, Linux by TW+Burger · · Score: 1

    QNX is stable, so is Linux and in defense of Microsoft (a company that has caused more medical and psychiatric grief to more programmers and users than any other force in the universe) Windows is getting better and my Win2000 Pro system has not crashed in months (although it is funky at times).

    Crashes are ore often caused by applications than the operating system. My advice is to complain loudly and often.

  451. Re:We've got a lot of techniques in the gaming wor by Minna+Kirai · · Score: 1

    Your use of "gaming world" is somewhat inaccurate. You're talking about console and arcade hardware, which is the majority of games, but far from all.

    Games running on desktop PCs still crash often, and players don't mind much.

    The most important thing though is robust software design.

    No, the most important thing is limited system variation. The real reason your GameCube stuff doesn't crash badly is because you have exactly one piece of software that will run on exactly one kind of hardware.

    In our games, we all code exception handlers for the software, so that a single errant NULL pointer doesn't bring the whole thing down with a

    Don't think that PC software authors don't use exception handlers. It's because multitasking PCs are more flexible and allow users to attempt tasks that aren't necessarily within the capabilties of the system. Console games have only one target platform, so there's no need to allow tasks whose success is uncertain.

  452. but thats wrong by a5cii · · Score: 0

    Of course, there's no need to mention Microsoft's inability to create a stable system.

    I dont think the author has ever used windows XP or 2003

    In my experience AMD computers running windows are more stable than ones powered by Intel

    My Windows XP Box
    Original Install Date: 01/04/2003, 19:05:37
    System Up Time: 53 Days, 1 Hours, 29 Minutes, 50 Seconds
    System Manufacturer: www.Over16oK.com
    System Model: VT8371
    System type: X86-based PC
    Processor(s): 1 Processor(s) Installed.
    [01]: x86 Family 6 Model 6 Stepping 2 AuthenticAMD ~1533 Mhz

    Microsoft is making better operating systems just slowly very slowly

  453. Windows is not built for stability by Anonymous Coward · · Score: 0

    Microsoft windows is built as a desktop and meant to be rebooted daily to clean out bugs and memory leaks. Microsoft spends it's development time for quick flashy solutions rarely worried about longivity or standards. After all, they want to sell you a new one every year or two. This is what the consumer has accepted. And almost anyone can install it to at least a point of insecurity but functional level. Makes a great single user desktop.

    Linux/UNIX on the other hand is much more stable as the open source is peer reviewed and the standards are much better thought out. The longivity and code openess allows for bugs to be patched. But knowning Linux/UNIX takes more brain power to learn and be proficient, which is why many people don't use it as much. But that is changing, more and more embedded systems, desktops and servers are now using Linux/UNIX as it is stable and reliable when configured correctly. This is a fact, you run UNIX because your serious about being a server, lower TCO and need the stability.

    The reason for the difference is the kernel. UNIX, even though it was more than 10 years earlier in design uses protected memory. This means a running process finds it much more difficult to interfere woth other processes. Microsoft Windows still uses an archaic message passing as the primary mode of communications. Message passing predates the UNIX design.

    I personally know a Linux machine, under load as a DNS/Proxy approaching 1000 days of uptime. The company likes this as they spend so very little time maintaining it and the users never call. Most support staff don't even know where it is. Quite a few Solaris and HP-UX machines approaching a year. The Solaris machines would be more but they are patched once per year. 95% of the Solaris machines have never unexpectedly crashed!!!

    So it depends what you want. Microsoft will eventually adopt Linux. But until then your choices are limited.

    What really surprises me, when I look at how much effort NT/2000 shops go through just to keep their servers running, why they don't just load Linux on them. That in itself would be serious ROI and TCO reduction. Might help the IT image some. But I suspect far too many CIOs own MSFT stock.

  454. Why his Zaurus crashed.... by theLOUDroom · · Score: 1

    There are many reason why computers crash, but I think I can at least shed some light on his Zaurus problem.

    There is a bug in all versions of the Zaurus ROM. If you reboot the Zaurus twice in a row without suspending it in between it will crash and the only way to get it running again is to perform a hard reset. The fix is availible here. Once I installed this fix, I've never had any more problems with lost data on my Z.

    --
    Life is too short to proofread.
  455. Sorry by TheOnlyCoolTim · · Score: 1

    I had a less than bracket there but Slashdot removed it.

    Tim

    --
    Omnia vestra castrorum habetur nobis.
  456. Re:Software crashes because it is open, not closed by gurps_npc · · Score: 1
    TitanBL, you really need to get your self a dictionary.
    Yes I was referring to an embedded system, and NO my reasoning is not invalid.

    My reasoing is perfect and everything I said is true.

    You however do not seem to understand the simple fact that the words "open" and "closed" have multiple meanings. Instead of realizing I was discussing the right to place software on the machine, you thought I was using "open" in regards to Open Source. I never said Source, because I was NOT DISCUSSING Open Source. I was refering to Open SYSTEMS (like Windows) as opposed to Closed Systems, (like most embeded systems)

    Notice how I said you need a restricted system INSTEAD of Windows. As in Windows is OPEN, NOT RESTRICTED. Your clear prejudices prevented you from reading what I wrote, so instead just skimmed it. Try again. This time read what I said, instead of assuming you are so smart you can guess what I mean. I will try to re-phase the argument here with smaller words.

    To prevent system crashes, you must use a simple system (with less abilities) and not add anything to it that was not desigend to be added. This is called a CLOSED SYSTEM - even though the software could be an OPEN SOURCE or a closed source. This is often used in Embeded systems, but is also used for mission critical Server systems as well.

    --
    excitingthingstodo.blogspot.com
  457. liability, training, capitalism by lpq · · Score: 2, Interesting

    As someone said before -- no product liability -- you have to pay money just to report a bug ...

    Training of Software Engineers. With point and click interfaces you have people with an average reading ability of a 5th grader writing code. Even hinting that someone wasn't a good writer of code was considered "unprofessional" at some workplaces (i.e. -- you are not a 'team player').

    Capitalism -- it's not cost effective to fix bugs until a customer finds them.
    Even in code for Secure OS's under Common Criteria CAPP/LSPP, vendors aren't required to fix bugs that are not discovered by the independant evaluator or the customer. So even if the product manager knows of bugs in the OS that is intended for 'high security' government projects, there is no law saying he has to list them or fix them (unless they are found by a 3rd party or the customer). Spending time fixing bugs that are NOT found by the customer is not only not cost-effective, it is considered not working on "assigned priorities" and can be grounds for lower reviews.

    This isn't pessimism -- it's reality. Quality doesn't pay when you can sell customers faulty products then charge the customers to fix the faulty product you sold them in the first place -- one might argue that it pays to have more bugs in the code -- you can charge more for service contracts and rack up more incidents that you then charge the customer, per incident, to handle.

  458. More thoughts on hot button; ex: college class by lpq · · Score: 2, Interesting

    When I was in college in Computer Science (how many programmers today have a formal degree in Computers, vs. say, a liberal arts degree?), Sophmore year, University of Midwest - CS201 - required for Computer Science majors -- beginning assembly language in Compass (CDC assembler).

    The price of perfection is taught early -- an early lesson was when for a final project we were to work with 2-3 other people to make a final program. The deadline was approaching and our program still wasn't running. Turning it in late was a letter grade drop/day. Two of us felt we were close and didn't want to turn in a non-running program. The third wanted to turn it in. They also felt that they'd done their part and there were no problems in it.

    The third turned in the project with his name on it. My partner and I spent another day cleaning up his code to get it to work and turned it in. We got a a "C" on the project, with a downgrade for bad coding practice in his section of the code and being a day late. He got a "B" even though it didn't work. In the final grade both he and my partner got "D"s while I got a "C", which sorta sucked for my major -- but it turns out that 60% of the class got "D"s and "E"s. Made a big stink about the course material being too difficult and the teacher made a public 'booboo' comment "It was the same material he'd taught before, it was just an exceptionally dumb class." Major ire of parents.

    Anyone who got a "D" or "E" had it stricken from their academic record. It as the only "C" I got in my comp-sci curriculum (str8 A's in 300 level and above classes). But on that project, I learned that deadlines were more important than code quality.

    Spin forward 15 years -- at small startup before Xmas. Deadline for demo approaching and I and other team member had parties to go to that evening. He was programming a DSP chip (he was a PhD wizard), and I was handling the drivers on the 286 DOS box. I checked my code backwards and forwards and he swore it couldn't be his stuff. Finally, I displayed output he was sending and it was 'wrong'. Unfortunately, my party had been out of town and I'd already missed the deadline for getting there because it was emphasized to me how important the project was to complete before leaving. When the problem was discovered in his code -- guess what -- he could't stay to fix it (I didn't
    know anything about the DSP chip he was using) because, the VP told me, he was married and his wife was gonna leave him if he missed the party (I don't think he was serious, but maybe). I had no such excuse -- only a partner who went to the party alone.

    Again -- what do I learn? Personal relationships take presidence over
    product and code quality, so far we have code quality below deadlines and below personal relationships (though that has more disappeared in the modern
    world).

    more later...
    -l

  459. core problem: people people != computer people by lpq · · Score: 2, Interesting

    The core of the problem was delineated in the book "Weird Ideas That Work: 11 1/2 Practices for Promoting, Managing, and Sustaining Innovation". It it he makes the main point -- that those people who are most creative are the people who don't do things the "normal way". They are the 'loners' -- the 'slow adopters of company culture'. They aren't the team players and they are slow to be programmed with the company way of doing things. As a result, they see problems differently than those that have been trained in the "correct way" to do things.

    Those who spend time going to lunch, drinking beer together, palling around together -- they begin to think alike -- they develop synergy -- but they also develop a closed system. The ones who don't pal around come up with the completely off-the-wall ways of doing things because they haven't been indoctrinated into the 'normal way' of doing things. Quite often these ideas are shot down because of their eccentricity. But Steve Job's personal computer idea he presented to HP -- shot down by corportate culture was a brilliant success. He gives countless examples of the most brilliant people generally not being very good with "people skills".

    A correllary of this is that those who push for perfection far past the 'norm' are going to be unpopular outsiders -- they are the nit-pickers, the one's who aren't team players. Again, they might be the ones that would nit pick the code to perfection, given the chance, but the larger group says "enough" -- it's "good enough, it boots, let's ship it".

    In both instances the people most likely to increase quality in software are those that have the least political clout and are often least liked by their peers. Their peers often feel like the 'nitpicker' has a prideful, superiority complex -- overly prideful and sometimes go out of their way to sabotage work that might otherwise have turned the company around and saved millions.

    I specifically was involved in a group who had to choose between 2 vendors of Microsoft compatible software. I became the lone supporter of company B. I was adamantly opposed to "A" for reasons I coudn't articulate at the time -- my gut told me "A" was untrustworthy but I couldn't tell why. I was overruled and 4-5 months into the project "A" sued MS for non-cooperation effectively killing our project. It was too late to go with company "B" who's price had doubled now that they were the only game in town. It turns out "A" had been having trouble with MS all through the negotiations with us, but no one picked up on it. Reminding anyone of the decision made me decidedly unpopular. But it was precisely because I hadn't gone out and been wined and dined by "A" and hadn't formed a "Good 'ol boy" relationship with them that I could see something was amiss. It was precisely the fact that I wasn't a hobbnobber/ polical animal that I caught the 'off' vibes. Those who were "good team employees" went along with the majority decision and the 'friendly team "A" who came onsite to woo us. Its the same principle at work.

    Those who make the world work -- are also those most likely to compromise and most likely to compromise quality. It's because of their willingness to compromise that they are liked by many but it's the same compromise that resultes in compromised code -- both in terms of bugs and security.

    I sure as heck don't know the answer. Successful combinations are highlighted in the book mentioned above where one person knows the almost anti-personal nature of the 'idea' person, and handles the media and external interactions, but the it's rare to find groups that work well like that.

    It has often been said that the best software doesn't come out of committee but out of 1 or a few people -- while companies like to think that 9 women can have a baby in 1 month, it ends up more often that the 9 women argue over who

  460. Re:Software crashes because it is open, not closed by TitanBL · · Score: 1

    First, embedded systems are no longer thought of, or designed from the perspective of being, "closed". A very simple digital watch is the an example of a "closed" embedded system, being that it does not have to communicate with or rely on another device's logic/input to function (closed loop). On the other hand, the embedded systems found in cars/routers/switches/cellphones/servers etc. are not, and cannot be described as "closed systems" - they rely on input from other digital devices such as sensors or other embedded logic in order to function. By definition, there is NO communication/input in a closed system. Learn. Learn more.

    "In order to be flexible enough to do everythign a computer can do, computer languages have to be allowed to crash the computer. Otherwise you are severly limiting what they can do and slowing thigns down."

    Yes, as we have learned, if you want to create a system that is based on any type of varibles/input, it has to be open. You do not seem to understand that an embedded system is called "embedded" because the OS instructions are contained in the chip architecture. Instead writing code which uses a defined chip architecture (x86,PPC,Alpha), the code/logic is "embedded" in the chip. You can write software for imbedded devices - my cell phone runs java apps. There are many devices which utilize embedded linux, I have a webcam that runs its own apache webserver. So, no, embedded devices are not "severly" limited, and they most defiantly not slow! They instantly boot when turned on! Ha.

    "1) accept a restricted operating system that will never be able to compete with a commercial system like Windows."

    Your assumption of being restricted is wrong, check out Transmeta - and what does windows being "commercial" have to do with anything? How is an embedded system not commercial? Why can't a "non-commercial" system compete with a "commercial" system? Is my cellphone not commercial? Do you know the definition of commercial?

    "2) Never install a program that was not A) created by the same company/group that wrote your operating sytem, B) specifically designed for your particular computer, and C) designed to be used with and thoroughly tested against all the other software that is currently installed on your PC."

    How does something being created by "the same company/group" have anything to do with embedded systems, and/or system stability? (proprietary/opensorce) Not designed for my PC? I thought we were talking about embedded devices... What does your misinformed/erronous ideas about embedded devices have to do with a PC?

    Your argument is based on numerous false assumptions which makes it untrue, and your misuse of words and their definitions makes your reasoning/correlations invalid. Basically, you have no idea what you are talking about.

  461. Re:This is a mathematically proven un-solvable thi by benjamindees · · Score: 1
    You know, I was meta-modding this post and I just have to reply. This is the most utter horse-shit I have ever seen on Slashdot. I can't imagine how it got modded up.

    This is a mathematically proven un-solvable thing
    First off, with the math. I don't know what trade school you went to where they taught you that computers have 'infinite' states, but they don't. Even though there are millions of transistors, they can each be in only one of two states. It is nowhere near 'mathematically proven' that you cannot account for each one of them.

    you can never account for every situation
    If, by this statement, you mean situations whereby asteroids fall from the sky or the computer malfunctions in some way, then, yes... shit happens. No one expects a programmer to compensate for these things. Writing software that is 'perfect', however, is entirely possible irregardless of the imperfections of the computer (or OS) on which it runs.

    You can't write a finite-state machine that can detect or correct an infinite number of states.
    Again, with the math. There aren't an 'infinite number' of states. You can write a finite state machine that will check every bit of your code for logical errors. It is expensive and time consuming, so lazy programmers and fly-by-night companies don't do it.

    calculating the "best" route from...
    I think you've seen the problem with this one, so I won't harp on it. Suffice it to say that maybe you should find a 'CSci' major to explain it to you.

    Here it is, folks, the icing on the cake:
    As revolting as it may sound to the hacker-coders out there, great programmers, software engineering, business processes, ... synergy, a business-plan, manager-speak, and other bullshit are NOT key components of successful software...

    Great programmers are, preferably some who paid attention in algebra. The OSS movement is the proof of this, producing better software than any of that other crap ever has. Maybe you would know that if you had paid attention to their quality, bug-free code instead of subscribing to the Microsoft "Bugs are inevitable, we must add features at all cost" programming model.

    --
    "I assumed blithely that there were no elves out there in the darkness"
  462. Oh, jeez, no one's slammed you yet for... by Anonymous Coward · · Score: 0

    "factoring two large prime numbers falls into the same group"

    Um, I can factor any large prime
    number you care to supply in my
    head, quite easily. The factors
    will be the number one, and the
    large prime number under
    consideration!