- 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
No; such organizations do not automatically equal quality. However, they can, if they choose, mandate that their members have a certain level of training.
Enough of that alters the balance of trained and untrained workers. Although, at that point, you still have to come up with solutions to address trained workers who do crap work out of laziness or malice.
Admin
That is not what is meant by bias. If you have lots of 5s in your dataset, they will all be rounded up. This introduces a statistical bias. Look it up. It can cause problems.
Admin
http://en.wikipedia.org/wiki/Rounding#Round_half_to_even
Admin
If you have "a lot of fives in your data" you've already got a bias. If your last significant digit is 5 for significantly more than 1 in 10 data items, your data is suspect. Probably someone's feeding you their income taxes.
Admin
If it's just a terminal application written in C, I don't see why porting it to Windows directly from the original source would be that hard. I can't imagine that a program that just crunches numbers relies too heavily on the OS's API rather than just the stuff available in the C Standard Library.
Admin
You should be right, but the new team was full of 'Windows is better' ferver, as well as 'we can write this by scratch' and 'Visual Basic is so cool'.
But of course, nothing is simple. The original was in Fortran, C, C++ and even a little pascal.
People here can criticize it all they want, but millions were made using the software.
Admin
While I dotn use Vista nor recommend it to anyone I know, it is by far a better OS than ME. I mean, you could be forced to install ME 15-20 times before it ended up NOT BSODing on the first boot. >.< I had a girlfriend with a stupid father that insisted that ME was the best thing since fire. The stupid fucker also tried to install a pirate version of ME over my very carefully configured and installed windows 2000 because the drivers for some fucking printer/scanner didnt work for 2000. At least he couldnt install them. I had made bloody fucking sure he couldnt since he had spent the better part of half a year to get every bloody spam and malware in existance installed on purpose, then blaming his kids, specifically my GF. Whom I am pretty sure he actually raped but noone dared tell me since I'd have killed the motherfucker. Instead he ended up being stabbed in the chest by her.
</rant>TLDR: Vista better than ME. Just not good.
Admin
Admin
You must remove the 0.0 -> 0 line (or add a 1.0 -> 1 line), otherwise it's cheating.
Admin
Give an honorary WTF award to several of the suggestions here.
In the NT days (mid 90s) computer resources were slim, very few emulators were around, and if you found one, it would probably run like a dog on your high-end 200MHz PII with 16MBs of RAM. Cygwin/MinGW was unheard-of, and even if it wasn't, the interface is going to be either curses, hard-coded XYZ which you need an emulator for, or X11, for which not many Windows implementations existed.
And for the record, the WTF in the story is managers selling this solution to their superiors as replacing the "legacy" application.
Admin
See the other responses above, but you are not understanding "bias" correctly and here's one way to see it. Take your data above, and compute the average before and after rounding.
Before: ( 0 + 0.1 + ... + 0.9 ) / 10 = 0.45 After: ( 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 ) / 10 = 0.50
You've increased the average by rounding. That is bias. That is bad. You've got to do something about it. How you remove it depends on the characteristics of the data you've got. If you have many different whole numbers, then the round-even approach works.
You're also incorrect about assuming that 0.5 necessarily represents a number as big or bigger than 0.5. You really need some specific knowledge about where the number came from to say for sure, but in general, if it came from the analog world, it involved a measurement. Thus, 0.5 normally represents the range (0.5-epsilon, 0.5+epsilon) where epsilon is half your resolution. You can make the case equally well for rounding either way.
Admin
Note adjustments required to round up or down:
0.0 -> 0 -> 0.0 0.1 -> 0 -> -0.1 0.2 -> 0 -> -0.2 0.3 -> 0 -> -0.3 0.4 -> 0 -> -0.4 0.5 -> 1 -> +0.5 0.6 -> 1 -> +0.4 0.7 -> 1 -> +0.3 0.8 -> 1 -> +0.2 0.9 -> 1 -> +0.1
Add them all and the total is +0.5. That means on average, using this algorithm, each rounding operation will introduce +0.5/10 or +0.05 bias. For that reason, 0.5 is rounded up or down +/- 0.5. This will correct the bias.
On another note, implementing banker's rounding correctly, like really correctly, is a major pain in the ass, so most people just ignore the bias and use int(x + 0.5). I won't tell if you don't tell.
Admin
Admin
Rounding up is a lot harder to calculate in binary
Admin
Admin
All the commenters assume that the original program was written in C or Fortran, but could it be that it was written in HP Basic -- pretty popular at the time -- and that therefore those engineers tried to port the application to VB?
Admin
Ditto. Sometimes people forget that a re-write does not have to be a all-or-nothing affair. Number crunching apps - specially those written by engineers (that are not software engineers), aren't amicable for rewrite.
Furthermore, many of those apps simply work well for what they are supposed to do. If it ain't broke, don't touch it. That's a good software engineering principle. Put a pretty face on them, and voila.
Now, we could even run the simulation software on an emulator (possibly local to the engineer) - pretty Windows face communicating with RPC with the simulator hosted in an emulator. Voila again, now you can get rid of the old HP-UX servers.
Then, when there is enough funds and enough software building know-how, and only when this setup doesn't work anymore for future needs, then you look into rewriting the hole thing.
ps... on a sad note, some of my work involves dealing with an abomination like the one the senior engineers attempted to build. Unfortunately, no one pulled the plug before the monster metastasized into existence.
Admin
I just realized that half of the rounding arguments in the comments are confising display values with storage values.
You would only want to round for display while storing the original number in a lot of cases. Look back at your own arguments and see if the person you are arguing with is arguing from the opposite point of view (for display as opposed to for calculation)
Admin
Admin
+1
Admin
Hey... I liked Windows ME. Worked like a charm on my machine.
Ducking for incoming missiles ;)
Admin
Considering this was a scientific number crunching program in the nineties I'd wager the actual number cruncher was coded in Fortran, so I would probably (given the original time span, not the emergency oh-shit-our-developers-fucked-up emergency deadline) have recompiled the Fortran program as a DLL and written a front-end in VB (tutorial is here: http://support.microsoft.com/kb/123841).
3: Syntax error 4: Syntax error 8: Block If without End If Also, everyone knows Val parses a string containing a number. No booleans, no dates, they're all 0. (And yes, VB has safe string parsing routines that raise errors when you feed them crap they can't handle. And CBool for parsing things containing a boolean.) Furthermore, some of your braces don't do what you think they do. At least understand a language before criticising it. I sincerely hope I'll never have to debug anything you wrote, regardless of the language.As for the rounding issue, I was reminded several times during the measurement and data analysis physics class to round to even to avoid quantification bias.
Admin
this reminds me of a story where someone had the bright idea of passing information from one workstation to another by inserting it into the WINDOWS SYSTEM REGISTRY!
Admin
oh, you missed the last line: "the only question was when management would retire the legacy code." in other words, their managers won't let them use the new system,they are forcing them to keep using the old system! THAT's the real WTF!