- 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
This is a really good WTF. I especially love the last line of the last paragraph:
-- Furry cows moo and decompress.
Admin
I've heard of this happening with oil futures, too.
Honestly, the whole thing sounds reasonable except the $0.20 on the $1 part. The coal spot market should've had buyers for that at less of a loss than that.
Admin
I don't know if this particular case actually happened, but I'm sure that it does happen occasionally. Why? The costs of the checks to make sure that it really never ever happens would be too high. These systems aren't just created out of the blue one day with a fixed set of rules; they evolve from the system that existed before, with a higher overall efficiency so that people have an incentive to do it the new way. The first commodities markets probably had essentially no checks. Then a few mis-deliveries happen, and people start to put some checks in. Levels of checking are added gradually until the frequency of mis-deliveries gets acceptably low, and there it stays.
Every level of checking is an inefficiency; add too many, and the process gets too expensive. But how do you know when you have the right level of checking? When these kind of mis-deliveries are rare, but do occasionally happen. If they actually never happen, then you're probably wasting too much time checking things; you should dial it back some until it starts happening once in a while. That way, you know you have just enough checking.
And this sounds plausible enough in this case - a software bug (as described) plus a misleading address (deliver barges of coal to Pier 3? No problem!) plus some arrogance ("But we can't take delivery of..." "Shut up and place the order, you imbecile!") equals 28,000 tons of coal delivered to your office building.
Admin
If this really happened, I would take that as a sign that there is such a thing as divine justice, for I know there are arrogant people like Brad that need a slice of humble pie to be forced down their throat by a cataclysm :)
Admin
I see what you did there.
Admin
You might want to look into that - at today's rates, a 30 year mortgage for $240,000 is $1189 per month. A 15 year mortgage is $1687.15. Both are using the current Well Fargo rates.
Now, what you say makes sense if the mortgage rate is higher. Once you get into the 15% bracket, for example (assuming a 15 year mortgage is .5% less), the monthly payments are 2086 and 2253 -- much closer to your argument. At 20%, the two payments start to get quite close.
But at today's rates? Not actually so much.
Admin
I see your point, but I believe that Brad actually sold the coal for more than 20%. It was just all these wharfing, unloading and whatever fees that made for such a big loss as a result. Then again, I am not in the trade myself....
Admin
Admin
Probably a bit late to the wooden table with this, but:
Notice anything off about that XML? If you said, "value should be 0 instead of False", then give yourself a pat on the back.
Wrong. XML is a contract between two parties, usually (but not always!) defined by a schema. Without having access to the schema/interface spec, you can't deduce anything at all about what data type or possible values <value> can take on. It could very well be True/False, or true/false, or 1/0, or even yes/no.
Aside from that, one of the best WTFs in a long time! One simple problem in the code results in hundreds of thousands of dollars lost and all the related bother of trying to shift the stuff. Priceless.
Admin
No. The system is highly optimized to make sure that the commodities are delivered only to the locations specified in the contract. For you to buy a coal contract and have the coal delivered at your home or office would be as likely as walking into a McDonalds, ordering a hamburger, and having the salespeople give you a live cow. The original story as posted is nonsense.
Admin
Admin
.gifs or it didn't happen... oh wait!
(p.s. this stuff doesn't always make the mainstream news, they're too busy reporting on who will be on the next season of their favorite reality show, at least my local paper is.)
Admin
there IS an Execor, they're in the middle of NJ though. no pier, no riverfront. I can only think that hopefully the names have been changed to protect the guilty.
Admin
Of course, unless you're 100% sure that the right of first sale applies to software in your country or you actually need 500 licenses for the Access Developer's Toolkit (which I imagine they didn't, given that they didn't have it already), that 500 copies would be worth a great deal less than $250,000 to the winner. And, for that matter, given the ease with which software is produced, I imagine the producers took a great deal less in actual losses.
Admin
Guys. All this talk about how unbelievable this story is - that's the point of any WTF, especially the good ones. These incidents aren't to impress you with clever writing, but to make you confused and shocked, they're situations that shouldn't really ever occur if people adhere to the correct procedures and practices. They're ironic, conceivably all true, that's the draw to this site. let it go. kthx
Admin
The real WTF is how many new people are visiting the site lately, and completely don't understand it. Comments are much more amusing when there isn't a mile long debate on the veracity of the story. You really haven't imagined yet another possibility as to why you won't find a real company by that name except that Alex mistakenly thought his story was all true? What?
Absolutely. Just look at the solution as it is, to DEFAULT to addresses that are simply assumed to be legitimate? I'd have to see the real software system to verify that but some net searches and fellow readers here suggest that's the case. Have you ever had something shipped to you which must be signed for, and after repeated attempts, they either hold it or ship it to the billing address instead? It's happened to me! I never changed my billing address when I moved to college campus, and so they sent my monthly meds to my parent's house instead, since that was my billing address. Sent the product there for each of the next six months too, auto-debiting my account the whole time, I had no idea, I just assumed my the dorm's mailroom was woefully inept... (i guess my parents were just very forgetful)
Admin
I like this word. It means "a shipment of some item which causes an exclamation of 'Oh SHIT' when it arrives."
Usage example: So last week I ordered a boatload of porn from Amazon and I accidentally clicked the 'gift wrap it and send to my mother-in-law' button. Man, was she ever pissed when she got that shitment.
Admin
Brad sounds like a real dick, treating people who work under him like that. I'm glad this happened to him.
Admin
For every senior exec that insists that THEY and ONLY THEY understand what is going on, well, you get it in the end! While others who listen to their subordinates and realizes the subs know what is up, will go much further. This mentality exists at every level of business, and causes financial ruin many times a year. And when someone says, "You sure that's what you want?", perk up your ears and listen to what they are asking! BTW! I got's $500,000 of rotting meat in the yard. Where ya all wants it? Anyone seed Billy Ray??
Admin
Yeah. You hit the nail right on the head. Hah!
Admin
Admin
Heh, Nice.
Admin
For want of an "0" the coal came, And bit the trader on his butt, Giving the jerk unwanted fame As his trade's perfect storm did cut. Computers like their "0"s and "1"s To give them reason to compute. Data put in them hits and runs According to programmed pursuit. To err is human, not machine. One day this human trader will Be unemployed, still cocky mean, Replaced by circuits sure and still.
Of the "1"s and "0"s of this trade, It was 1 big 0 that was laid.
Admin
A company I worked for many years ago sold an entire product (a specific sort of custom data service) that not only didn't exist, but the "life demo" they had at their booth at an industry convention was hooked to a PC under the table. Then everyone had to run around and actually write it.
Coincidentally, the owner of that company also dabbled in commodity trading. Due to an oversight on his part, he once came within hours of actually owning some insane amount of frozen orange juice. (this was before XML had even been invented, so he couldn't blame that) He sold the contract in the nick of time, but for a while he was very close to needing a really, really big freezer.
Admin
Its fake, viral, no trace of company or person except this story and a fake bio of brad no listings in company registry etc etc - check facts before rolling with this kind of thing
Admin
It's been anonymised!... sigh.
Admin
I love it that the trading exchange is WTFSE. I can only imagine what it stands for. What The F**k Senor, Eh?
Admin
Brad sounds like a douche who had it coming, and karma obliged.
Admin
Closest case I know was a guy was working at American Airlines ordering some aircraft from Boeing. What he failed to grasp was that boeing assembles aircraft from parts, and that one of the parts the customer must specify is the engine. Engines are expensive enough that Boeing won't pay for them, the customer has to buy those separately.
I would guess he really annoyed the boeing guys, so they arranged to deliver the aircraft with loaner engines then they pulled their engines off the wing and trucked them back to Seattle.
To get new engines, one has to get in a 18 month delivery schedule. Even spare engines are somewhat of a scavenger hunt, particularly for 12 aircraft.
They got some used engines after a month and they eventually got new aircraft, but lets say "I met him working as a computer programmer, at a university, not as a buyer at American Airlines Chicago".
Admin
I chortled and chuckles with giddy-like glee upon reading thine comment.
Hairy Krishna!!!!
Admin
Wow, he must have been REALLY naughty this year.
Admin
Is it still available? I need about half a ton. I have a minivan, I can pick up?
Admin
Y'know, that might explain how this story came to happen. If Brad irritated the wrong person within the system, I could see them making sure he actually does get PRECISELY what he asked for, even if it wasn't what he meant, knowing this is their only chance to render this sort of comeuppance upon him. ;-)
Admin
So the XML element stored a string "False" instead of 0. The other interface passes "1", but then this code (quoted from article): bool physicallyDeliver = (getNodeVal("PhysicallyDeliver").toLower() == "true");
...would assign True to physicallyDeliver ONLY if the string were some case variant of True; False, 0, and 1 would cause the boolean physicallyDeliver to be set to False.
This code should have made it physically impossible, not inevitable, for the delivery to slip through.
Admin
Dear Lord in Heaven! I feel for that guy. No one, no matter how big a jerk, deserves that kind of nightmare. I've made some mistakes as a business owner by thinking I was on top of situations when I wasn't, but something like that would ruin me... I'm guessing it pretty much ruined him, or came close.
Admin
Could have been worse. Could have been pork bellies.
Admin
Actually, there is no way to tell from this snippet what exactly they were doing.
We can assume from the story, however, that it was something like:
bool physicallyDeliver = (getNodeVal("PhysicallyDeliver").toLower() == "true"); if(physicallyDeliver){ throw some error; }
In this optimistic model, anything but the the word true would pass the test. Makes a good case for pessimism, right?
Admin
In case anyone cares, better code would have been:
switch(getNodeVal("PhysicallyDeliver").toLower()){ case "true": //handle true case break; case "false": //handle false case break; default: //throw appropriate error
}
Admin
OK, I think I know what the WTF part is but in "WTFSE" what does the SE mean? :)
Admin
"scrap metal shitment..."
Freudian slip? It sure made me laugh... :)
Admin
Is this a true story? Where can I authenticate it?
Admin
This story is a work of fiction.
Admin
This the first thing I thought when I got to that part, but I only have academic knowledge of XML, so I thought maybe the element <value> was some sort of special reserved-word-ish dealio that could only be binary. In all DTDs. Evah.
Now I'm back to thinking that what I thought I learned is actually what I learned. Or something. So thanks.
Admin
Eh, I don't think pessimism can solve anything...
Admin
Was there a schema to verify the XML against and did the programmers hand code the XML generator/parser? The company's application should have been machine generated against the schema and any transactions should have been rejected by trading partners for the violation of the PhysicallyDeliver value
Admin
Stock Exchange
But I think commodities are traded on markets that do not have stock in the name and end in E, EX, of X for exchange. Not a rule, just the pattern.
Admin
Is it poop?
Admin
OK, THAT comment was funny! Thanks for the laugh!
Admin
Ok smarty pants... what?
Admin
This story is a bunch of crap. I hope you die in a traffic accident.