- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Admin
It's worth looking up 'Vijay' in Google images as well. I can picture the guy now.
Admin
Admin
It's a bastardisation of an acronym (I can't exactly remember what for, but it's something like Young Upwardly-mobile Professional)
Basically it refers to people who have more dollars than sense and like to show off what they consider to be their immense wealth
Admin
What a peculiar thing to say, sounds to me like: a) The test shouldn't be written by anyone who understands how the program works 'under the hood' b) The testing shouldn't be done by anyone who doesn't understand the intricacies of the program They sound a little opposing to me....
That said, I'm a big fan of seperate teams of testers, who understand an application, but not necessarily how those applications work. They can then test expected functionality, with no bias for or against corner cases (other than obvious ones like value=0). I think the original author of the code has some responsibility to do fairly basic testing, however I would imagine for most programmers personal pride means that they've tested it enough to be absolutely certain that it works (and then get upset when the testers identify that it doesn't)
Admin
Oh, and I missed a bit of your point (sorry)
I think Automated testing can (when used properly, and made by competent testers) be a very valuable regression testing and/or load testing tool.
Admin
A proof is essentially a construct that turns assumptions into a conclusion using reasoning steps. If the conclusion is proven wrong by reality, that means one of two things:
Admin
I'm curious, is it possible to prove things like finishing within a certain execution time or working within the numerical limits of the hardware?
Admin
Every steel mill I've been to has holes in the roof from some major WTF incident. That even includes one rod rolling mini-mill that was less than six months old with a roof height as high as about a third of the length of the entire rolling line.
Admin
Is assembly language on given equipment, sure.
Addendum (2009-12-17 21:05): I mean "in", not "is".
Admin
It is of course also possible that it was first spotted in the wild and only picked up during simulation when the latter was put through the specific scenario that triggered it - we don't know how comprehensively the simulation was put through its paces - but that would make for two bugs: the real-world one and the lacuna in the testing regime.
Admin
Admin
Actually, I'd be very amused if it were that, or user error, or his patch never actually got applied, etc.
Admin
The problem with the patch is that it didn't fix the problem.
The problem with the proof is probably related to the fact that he "solved" their software the same afternoon that he started with the company. (He was shown around the office in the morning, given a bug-fix, and brought his proof in the afternoon). That's not really enough time to develop a formal proof of a piece of software.
Admin
Here is a function of one argument, in assembly. Can you prove that it halts in finite time for any positive input less than 1 billion without trying them all?
Admin
Didn't I hear this steel mill thing before? I only got past the introductory paragraph, but hey, I grew up on slashdot.
Admin
Vijay must have been an HGTTG disciple.
"...though it cannot hope to be useful or informative on all matters, it does make the reassuring claim that where it is inaccurate, it is at least definitively inaccurate. In cases of major discrepancy it was always reality that's got it wrong."
--Douglas Adams (RIP)
Admin
That's not a function of one argument, it's a function of two arguments.
Admin
Such is the way of Republicans.
Admin
Admin
All these people who consider that unit testing is of limited use are probably the same ones who have never actually worked on a system with full and comprehensive modular testing strategy. Don't worry, their loss, all the less competition in the universe for quality software.
Admin
Ah... Same MAC addresses. I know a bit about this. I knew a company that produced serialized PROMS that had MAC addresses for a network card vendor. They network card vendor contracted out the assembly, and specified that the PROM be single sourced (from my friend). The contract assembly house in an attempt to cheapen the build decided on their own to make the part themselves, and having a "sample" they just peeled up the label and saw a PROM and copied the data. All of the network cards would EASILY pass unit test, but out in the wild, they would fail miserably. The network card vendor came over to my friends PROM programming facility with one of the assemblies yelling up a storm, and my friend noted that "that isn't my label on the PROM, they look like this" (producing a proper one). The next action the guy did was definitely not a WTF moment, as he picked up the phone and issued an immediate STOP WORK/You're fired notice to the contract assembly house. My friend said it was a sight to see. The guy was OBVIOUSLY mad but not at him (thankfully for my friend!).
Admin
"From now on i am going to remove all my unit tests and replace them with comments detailing the proof of how the system is sure to work correctly!"
Well, it doesn't work if you just do it in the comments, of course, but if you've got a good statically typed language with a reasonably powerful type system (such as Haskell, OCaml or ML) you can construct reasonable proofs that certain types of errors can't occur, and then the compiler checks that proof and refuses to compile the program if it can't verify it.
Moving from Ruby to Haskell so I could do this reduced my testing burden considerably. I'm very pleased.
It is, of course important to understand the limits of this technique. My compiler doesn't have a verified proof, so it might validate things that are not valid. But testing has similar limitations.
Admin
Really? So, if someone is incompentent enough to not be able do his/her job, you don't fire him/her? And instead just make that person someone else's problem?
Admin
Damn them clever u-na-versety types, always provin' stuff that don't needs provin', just more elbow grease. Good thing Robert put that fella' in his place.
Admin
But just so that you can't say I didn't answer your question: The tests are correct if the conditions you're testing for are covered by them. My perception of reality is correct if it agrees with the measurements done by other people, ideally if a causality can be estabilished. Of course, other people could also be delusional. The point is that, if everyone is delusional in the same way, then the delusion is reality, since reality is what we perceive. Of course if that is the case, you don't call that delusion. Delusion is the domain of minorities. I can't prove that I am not a brain in a jar talking to electrodes. That's why I don't try to. That's how science works. It doesn't talk about things that are not measurable.
Admin
Admin
You should of put it in production, after Vijay sent an email to everyone indicating that he had fixed it and if anyone had questions/issues to get with him! It's the only way to chop the head of Vijay!
Admin
There is a psychological condition called 'Cognitive dissonance' which is clearly in place here. Unfortunately this is often experienced by programmers. Even more unfortunately, the smarter the person in question is (often self-implicitely 'proved/n' by the level of (completed) education), the more likely it is that the reasoning will become something like: "I'm smart, so even if I do something really stupid, I can't get it wrong"...
Admin
Oh, so a douchebag/guido?
Admin
Oh dear. I'm so totally fed up with this little gem of wisdom.
When someone quotes it to me after a WTF, it usually turns out that
cowboy mode was applied instead of any theory at all
the wrong theory was applied
the correct theory was applied incorrectly, e.g. due to insufficient understanding of the theory
I have yet to meet the case where the theory was insufficiently advanced to solve the problem - in which case you should work on the theory before you try a solution.
The above adage is just a poor attempt at being witty after having botched it, usually by people with an attitude of "Theory? We're doing real work here!" As if computers in a university and computers in an office were somehow different. The first people to make a magnetic drum memory, for example, weren't cowboys but professors, and without them the fabled garage companies wouldn't have happened, period.
Admin
You win the dum-dum prize. The inventor of magnetic drum memory was an engineer and businessman: http://en.wikipedia.org/wiki/Gustav_Tauschek
Many inventions come from industry and goverment research, not professors. See "Bell Labs". If theory were sufficient, why have theorectical and experimental physisists? Surely there is no need to test all these wonderful theories. In fact, theory only comes after making careful observations, not before.
Admin
If your software bug destroys the plant, then you'll lose millions in production opportunities.
Admin
This is why Prolog still needs to be taught. It shows that bad premises lead to bad conclusions. Also, failed Prolog proofs can lead to infinite recursion, which smacks the point home!
Admin
Admin
It's much smarter to try and prove yourself wrong
Admin
Ah yes, Bell Labs, home of Brian Kernighan (PhD, Princeton), Dennis Ritchie (PhD, Harvard), Ken Thompson (MS, UCB), Bjarne Stroustrup (PhD, Cambridge). Jes' plain folks using their gawd given common sense.
[This is not intended to dispute frits' point, BTW, but the original article's gratuitous PhD bashing]
Admin
I think we went our separate ways much earlier: when I read ‘Vijay left Robert's ... the actual fix.’ I pictured him explaining to Robert what he had done. Then Robert's reply seems to confer his agreement. But you're right, that may be a false assumption, and Robert's reply may have been simple sarcasm. In which case I would want to work there even less, for obvious reasons.
Admin
The best comeback I ever heard to a guy working on his Masters in Comp. Sci. while complaining that the manager of the project had no degree at all was from the manager: "You needed someone to show you how to do this stuff?"
Admin
There is no way in known universe for 150 tons of iron, molten or otherwise, to cost "millions".
Other than that, good story..
Admin
Admin
I am fairly confident that something like this *can* be proved, as long as every part of the system is deterministic, but I imagine the proof for something like this would be at least a few thousand pages long, unless the system is highly decoupled and you are allowed to assume perfect inputs into the component which you are working on, in which case it may only be dozens or hundreds of pages.
A fun exercise at school, but completely valueless in the real world.
edit: jesus fucking christ, is there ANY logic as to whether the comment submission adds new lines to your post?? sometimes it does and sometimes it doesn't.
Admin
As long as the code is reviewed (including the tests) -- I think you're okay having the same person write the tests. If the test does something weird like inline asm to poke values in a certain place in memory, then you raise a defect.
Admin
Did he get paid at least?
Admin
Did he get paid at least?
Admin
Paper disproves Spock.
Admin
tantrum fail
Admin
On one hand, I absolutely love how infallible mathematics is. On the other, I love how the Universe will occasionally say "Up yours!" and do something you never expected. I've always been torn between thinking Mathematically and thinking Scientifically. Of course in this case, I've had so much code blow up in my face I wouldn't dare put mission critical code into place without testing it first.
Admin
I don't need a whole function to satisfy the OP's request; all I need to do is show that any one assembly instruction can be proven to be processed in a given time. Take a hypothetical instruction that requires x clock cycles and divide x by the speed of the processor. Voila! Proof.
There are CompSci classes that test on this.
Admin
I've met this guy. He was proud that using XP he never had to touch the mouse, at the cost of a little productivity of course, but style points count big in coding, right? Mouses are so 1989.