- 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
"Some scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe."
Frank Zappa
Admin
Ouch, this one really hurts... I would feel so f*cked up inside if I knew my manager was keeping something like this at bay. I wouldn't even (neccessarily) want the credits for such a fix, but simply knowing that it could be so much better would bug me...
Admin
Oh, come on, this is par for the course.
Everyone knows you have to release version 1 with some slow down loops and disk space hogging temp files, so that when version 2 comes to market you can say it is faster and smaller despite all the new bloat. Oh and let's not forget "our most secure version yet" meaning it only needs 97 critical patches after installation.
The only place you (usually) can't get away with this is open source.
Admin
They should have done the upgrade secretly. A hit-and-run-and-mdash upgrade.
Admin
I have a comment, but I can't put it here because it is confidential.
Admin
Political battle over, basically IT, in the military... Don't they have more important things to focus on?
Admin
Grown up people scuffling like small children ruin big companies and even countries. Yuck!
Admin
The real WTF was passing in the parameters by value. Just put a "const" or "var" in the declaration so the parameters are passed by address and the run time would really go down.
Even better, there should be no need to compare strings at all in this kind of app. It's quit likely the values could be simple enumerated constants.
Admin
Idiots. They should have hit Ctrl+C to make it finish faster.
Admin
Also, they were wasting their breath, as the whole project was never upgraded and as a result was cut.
So all of their confidential bickering just wasn't worth it I guess.
Also, isn't posting this article a violation of confidentiality?
Admin
If this were in the private sphere I probably couldn't care less, but as a military subcontractor, they were indirectly pissing away tax money. Normally I would say ‘Well you get what you deserve, I guess.’ but in this case the People got it while the manager deserved it and that stings. But of course, more errors were made, like for example the bic-muncher who was confronted with a project over budget and never stopped and asked why that was. Or the programmer for that matter. Confidential my ass, he knew his manager was flushing money down the toilet on the public purse, so he is morally responsible as well.
Admin
This sitaution happened to me once, working for a small private company. I couldn't force it through, so I left --- I knew that if the boss was willing to screw the customer, he could easily do it to the employees as well.
Admin
Isn't this only a project manager? Where I work project managers are in a different department and are, in no way, higher up the totem pole.
As a coder we complete tasks based on the requirements gathered by the PM or BA. Hell half the crap (most often the most fun stuff) never makes it to prod.
Admin
If you read this comment I'm gonna have to kill you.
Admin
Even if it is, he whole thing got scrapped, so big deal :)
captcha : ...nah, i'm kidding.
Admin
That's just sad. How do you get rid of managers like that?
Admin
You only get away with it in open source because virtually no product ever makes it to version 1
Admin
Can you see it. (needs a question mark instead of period.) Several other typos, some already mentioned. Anybody at least proof it ?
Admin
Wait 25 years for massive cultural change, I guess
Admin
pouring over the code eh? I don't want to know what he was pouring over the code... well, with code like that, hopefully it was molten lead or boiling oil or something equally unpleasant.
Seriously though, what the fuck? the code AND the management are the WTF here, I guess that's par for the course in military-industrial complex stuff.
Also, Alex/others: Can you guys just IP ban the idiots spamming the inane comments at the start of every thread? This is getting ridiculous.
Admin
Admin
Yes! How old are those people, twelve? Eight? Come on, grow up and act like adults.
Admin
The real WTF is the 'hero' not knowing what declaring a 'var' parameter does.
Admin
Massive cultural change takes longer than that. 25 years can cause death or retirement, though.
Admin
Erm, I didn't say 25 +consecutive+ years, did I?</backpedal>
You know what I mean, though. 25 years ago, disagreeing with management was a lot less doable than it is now. In this position, today, in my role, I'd simply make the change, and that would be that. No meeting first to discuss it, I'd just be tasked with "speed this up, will ya?" and get a pat on the back when I was done.
Admin
I agree that 'confidential' was probably getting thrown around here more than necessary; however, 'Confidential' is an actual DoD Security Classification level. As much as the situation sucks, if those meetings really were confidential, divulging could cost him not only his job, but also his security clearance, rendering him unable to get a job elsewhere in the defense/military contracting industry.
Admin
Why didn't they just press CTRL+C, so it finished faster?
Admin
The worst part is ... this is a story that got out. How many other WTF code is sucking the life out of unsuspecting engineers?
Admin
I work for a huge American IT company, which I shall not name here. At least here in this small European country, we can do pretty much whatever the fuck we want.
I'm not even a software developer, but having quite a bit of experience in that field, I've come up with some applications that really, really help us in our day-to-day work.
Nice.
Admin
You can divulge as much as you like as long as it's not specific. I have had psychiatrists tell me about patients their all the time. Because they're not saying who it is there's no problem.
Admin
I thought pascal supports arrays with arbitrary lengths:
Or is that a "new" feature of pascal that wasn't available at the time? Isn't there any call-by-reference semantic in old pascal?
Admin
Not one of them was an Irish girl.
Admin
Agreed, i have yet to see one that is funny and not generic. Take funny snippet or general punchline from story, replace noun with comment and post.
Admin
I cry "complete fiction"! I don't believe that this story ever happenned. Really now, "Five years later, when it came time for budget cuts, the entire Electrical Capabilities project — military personnel and all — was cut for good. Apparently, the auditors weren't too thrilled that engineers just sat around all day, waiting for some program to run." A government project cancelled because it resulted in government employees wasting time? Come on, now. Has any project in the entire history of the U.S. government ever been cancelled because it was discovered that government employees were sitting around doing nothing? I don't believe it. I worked as a government contractor for 15 years, and I only saw two things that ever got a project manager in trouble: 1. Failing to fill out all the correct forms; and 2. Failing to spend your entire budget before the end of the fiscal year.
Admin
The DoD has a fraud, waste, and abuse hotline. The developer could've called this number and reported the problem to them and gotten it fixed. Best of all, you get full whistle blower protection when you do this (and can even earn a bounty on the money you save the government). He would've been stuck dealing with a pissed off project manager after this, but with the whistle blower protection he would have been relatively sure not to suffer any real consequences.
Admin
Admin
Admin
Close.
Presuming that the Project Manager had the authority to elevate this discussion to that of Classified Confidential and then did so, anyone with proper clearance could be told this information at any time without fear of losing his job or clearance, since they would have the requisite security clearance. Officially Classifying the meeting does not make the information confidential between only the two of them.
My guess is that, by Classifying the meeting as Confidential, the PM wanted to keep the bug fix information out of the hands of the Contractor -- the only ones authorized to implement this fix due to the contract -- who might not have that level of clearance, so he could use that info as political leverage. This classification would not keep the PM's colleagues and superiors from this information.
Or more likely, the PM wanted to keep the meeting confidential between the two of them, rather than officially designating it Classified Confidential which would have opened the information up to many more people.
In fact, if this location were that secure, it's likely the receptionist has Confidential clearance.
I would have kept mum as asked until the first missed deadline and then returned to the PM and tried to convince him to get the contractor to fix the bug. From there, depending on the organization, I would have elevated it to his boss.
Admin
oh, yeah. Forgot about FWA....
Admin
Paragraph fail.
Admin
There are two ISO Pascal standards. Standard Pascal is essentially Wirth's definition. ISO Extended Pascal supports arbitrary length strings.
Almost no Pascal on the market follows ISO Extended Pascal. They have non-standard ways to do everything.
As pointed out before, VAR parameters are Standard Pascal's way to provide call-by-reference semantics.
procedure noCopy(VAR myString:char[256]);
Admin
Close.
You need more than the appropriate security clearance; you also must "need-to-know". I have a Secret clearance, but that doesn't mean I get to see anything classified as Secret or lower; only those things that I need to know about. While the argument could be made that the primary contractor certainly needed to know, the problem is that the person requesting the information doesn't get to decide if they need to know. Thus, the Project Manager could have decided that nobody outside the two of them needed to know that information.
Admin
Holy crap long time no see.
Admin
You mean like preventing any constant string from being passed in?
Are pointers a Turbo Pascal thing? If they existed in whatever Pascal they were programming in, that's probably what should have been used.
Admin
Admin
You're not taking The Singularity into account, obviously.
Admin
The smart thing to do would be release the 256-byte fix right away, then shave away another bit of resolution each year. He could milk years of upgrades out of it by going to 128, then 64, 32, 16, 8. All the while the customer is happy because it's getting faster.
Admin
Also if he truly felt that strongly about it the correct approach is not to force it through. You either lodge a formal complaint (and since this is the government there's plenty of red tape to do that) or quit.
Admin
Goddamnitsomuch.
I daily thank TheDailyWTF for showing me how lucky I am not to work at a place like one of those it covers. I'm unemployed. But it could still be worse.
Admin
The WTF I see is that you could do a string[256]. That was non-standard in the Pascals I messed with.
Background: Pascal strings consisted of a length byte followed by that many characters. So a string[255] took 256 bytes. A string[256] would need a two-byte length and take 258 bytes. Most Pascals didn't support two-byte lengths.
In the good old (sarcasm, people) Mac OS <=9, 255-byte-max strings were the standard string type used almost everywhere in the API, and were typedef'd as "Str255". So long as you worked with Str255s, you never had to worry about a buffer overrun; even random data could never indicate a string longer than 255 bytes. And strlen() was an O(1) operation.
IIRC, Pascal's enums were weird. You couldn't assign values to them and converting to/from ints was painful and illegible (store it, take address-of, typecast pointer, dereference).Additionally, you'd have to define all the enums in one place. On a lot of large projects, that's not practical.
Methinks someone is betting on the statute of limitations having expired. That or the project in question has been declassified. That's not the sad part. The sad part is that it probably wasn't that manager's idea. This is a typical defense contractor strategy, and probably originated at the executive levels. So getting rid of the manager would accomplish nothing.Those of you who say you hate seeing tax dollars wasted like this... I hope you don't look at your taxes as something to be "gamed," because it's the same thing.
As for why there was no "var" used... I don't think Pascal had "const var", which would let you guarantee that the string compare did not alter its inputs, so they may not have been allowed to pass them as "var" parameters. Also, I don't remember if you could pass a constant string as a 'var" parameter; I think you couldn't.
Don't forget the chance at an all-expenses-paid vacation to Fort Leavenworth.