Live data from Hacker News

Everything Breaks, All the Time.

jeff-vogel.blogspot.com

11–16 of 16 posts

Re: Everything Breaks, All the Time.

#11
post #9

This guy is wrong, plain and simple. Unforeseeable bit-copying errors caused by cosmic rays and similar circumstances, which do exist, probably account for less than a one out of every billion actual bugs/crashes experienced out there. When a bit is toggled by a cosmic ray in memory, if it hits program memory, it will with a significant frequency crash your program. Most bugs you experience daily (Word or your favori…

His point makes a lot more sense in the context it was originally intended. He's not making a point about programming or debugging in general; he's specifically discussing tech support as a one-man indie game shop. In particular, it's all about the cost-benefit tradeoff. In his words (taken from the first post in the series - http://jeff-vogel.blogspot.com/2011/06/seven-tips-for-giving...):

But at the same time, as a small developer, you have very little time to spare for support. Time spent getting the game working for one person is time not spent making a new game for everyone. You will need to develop a sense of when the time lost helping a person is not worth it, either because you won't be able to solve their problem or because they will not able to implement the fix you provide.

...

Remember: It's only worth the time to do tech support if you have the chance to, in a reasonable amount of time, fix a problem and make a loyal customer. If you realize that, at the end of the road, you aren't going to end with a happy person and a working product, end the conversation as quickly and pleasantly as possible.

In that context, I think his approach is very rational. If you pushed him, he'd probably agree that more often than not the issue is in his code (even if it's just a question of inadequate error handling). However, if the problem is only seen by a single user and will be a significant investment to try and fix, then it's simply not worth the time when he could be working on a new game, a port, or even a different problem that has been seen by multiple users.

Re: Everything Breaks, All the Time.

#12
Read Jim Gray's Why do computers stop and what can be done about it? (http://www.hpl.hp.com/techreports/tandem/TR-85.7.pdf)

Excerpts:

"In the measured period, one out of 132 software faults was a Bohrbug, the rest were Heisenbugs."

"[retry] routines had a 76% success rate in continuing system execution."

Cosmic rays or race conditions, transient bugs are common.

Re: Everything Breaks, All the Time.

#13
post #5

I dont get this, its so often a bug, and so many people dont report bugs, this strategy of telling people to reboot or reinstall or redownload just perpetuates these voodoo-style fixes. Im not saying fix everything always immediately, but dont write people off as victims of cosmic rays just because you can't repro in 30 seconds or dont see the bug where youd expect in the code.

He didn't say "cosmic rays" anywhere in the article.

voodoo-style fixes

They're not voodoo, they're sledgehammer to smash a nut fixes. A reboot reinitializes every part of your system into a mostly-known-good state. If you knew what, you could say "restart this service" or "reinitialise this driver like that", but a reboot gets all of it.

If you actually stabbed a doll with a pin and your program started working, that would be ... scary.

Re: Everything Breaks, All the Time.

#14
There are two completely different conclusions that I would draw from his facts:

1) Most bugs are in code. But it might not be your code. Your code layers itself on top of many other layers of code that are outside of your control. Learning to deal with that will make a difference in your work.

2) Know how everything works. I am always hocked at people who claim to be web developers who don't even understand how an HTTP request/response works, much less what your browser does with the results. It is one of my interview questions for tech folk - I ask them to explain to me exactly what happens on the server when a browser sends it a request. Few people can give much detail here. Most can only give a generic explanation of the actions taken, if that.

Re: Everything Breaks, All the Time.

#15
post #5

I dont get this, its so often a bug, and so many people dont report bugs, this strategy of telling people to reboot or reinstall or redownload just perpetuates these voodoo-style fixes. Im not saying fix everything always immediately, but dont write people off as victims of cosmic rays just because you can't repro in 30 seconds or dont see the bug where youd expect in the code.

He didn't say "cosmic rays" anywhere in the article. voodoo-style fixes They're not voodoo, they're sledgehammer to smash a nut fixes. A reboot reinitializes every part of your system into a mostly-known-good state. If you knew what, you could say "restart this service" or "reinitialise this driver like that", but a reboot gets all of it. If you actually stabbed a doll with a pin and your program started working, tha…

His actual criteria for taking the time to find a bug is reasonable, but I take issue with the assertion that its not a bug in code he wrote most of the time.

Re: Everything Breaks, All the Time.

#16
post #4

My biz partner has a GPS system from garmin. He lives in the central time zone, but works in the eastern time zone. Any time we use the GPS it will always add an hour to our trip when we are in EST. Programmers aren't perfect. Practice makes permanents.

Ha! And my sister went to Egypt and looked up the gps distance to home (Iowa): 8000 miles. Off by 50%. Why? The programmer was doing cartesian distance instead of great-circle. So yes, if she drilled a tunnel through the Earth's core, it was only 8000 miles. :)

No, 8000 miles sounds about right for the great-circle distance on the surface from Iowa to Egypt.

First, the diameter of the Earth is not quite 8000 miles, but 7926. So if anything says more than 7926 (plus maybe the height of a mountain or whatever), it's not calculating a straight line in Cartesian 3d space.

Second, that distance of 7926 miles would be from a point to its antipode. Iowa is not antipodal to Egypt, not even close. The antipode of Iowa is in the Indian Ocean and hundreds of miles from any land. The straight-line distance from Iowa to Egypt through the Earth's sphere would be more like 6000 miles.

Post reply on HN