if they let Tom cook, everybody on earth would be wealthy enough to be able to afford 28,000 tons of coal and get it delivered by Amazon on the same day
nah Tom would've bought real coal and made his own power plant, thus generating extra electricity for him and for the world, making him the first trillionaire.
Plot Twist. This all happened as we were closing in on christmas. It was all part of Brad's plan, Brad is never wrong. Brad actually sold the coal to Santa at an exorbitant price due to the demand. Brad can do no wrong.
Thank you! I immediately had that "there is an xmas joke in there!" thought just reading the title. Thirty seconds in, I was not even listening to this hilarious situation or enjoying Primes's hilarious commentary. I have been working on myself a lot and can proudly say I shut down that voice and forced myself to just enjoy the damn video! My version would have used waaay more words to make a much less funny joke. Well done!
@@vetox2915 Ohnoo, I'll make sure to let my little sister know. She's pregnant and is expecting my first nephew in March. They going to call him Aiden 😱
It removes risk. The example I learned is from currency: Suppose you run Harley Davidson's Russia branch. You have to pay your employees in dollars and you have to produce a budget before the year. However, you don't know the price of rubles for the year. What do you do? Traders/banks will charge you a fee to give you a fixed rate for the year. This mechanism of trading that uncertainty for a fee is the Non-degenerate side of futures markets. This is the true economic value of such a market, something Bitcoin has struggled with finding.
4:55 Futures shifts the risk to traders because the farmer can lock in the price. They promise to deliver the 20 tons of pork bellies in April and get $34k.
10 місяців тому+20
The first member of the Dream Team was JDSL Tom, the second member of the Dream Team is clearly coal Brad. And I’m hopping the next member of the Dream team will be brilliant Paula. Which is another DailyWTF classic, and also a really short article.
You were the one that added that mute and subtitle on trailers future?! That is awesome, I'm so happy that it exists. The only downside is that it has English subtitles for shows that don't have those subtitles when watching the series in my country
eeeh, personally I prefer 0/1, it ignores the "Does it want capital or lowercase" issue with True/false. A bit annoying and unclear at first, but if you know what you're working with it does the job. It's a lot harder to forget 0/1 than exact case sensitivity.
… wow. I’m always like, let me go there and code in the muted sound feature at Netflix… every time I turn the tv on and get blasted with sound I die a little inside… But now that you mention it, it’s not a dev decision, it’s a business decision…
XSD has xs:boolean type which they didn't use. Even if they used any other binary typed messaging as Protocol Buffers, this mentality would still use string "1" or "Y" for boolean. Technology can't solve mindest issues.
I watch trailers so infrequently. In fact, they only play at my house if I fall asleep in front of the TV or .. can't find the remote. I hope that whatever metrics are justifying the "people like the sound!" take in to account inaction or those who can't figure out how to turn it off.
Oh I absolutely hate the autoplay feature with the volume on. Absolutely loath it. The first thing I do when Netflix loads is scroll down until it shuts up. But I don't blame you for that at all. That's all on us for wanting shit we hate.
Farmers and miners are afraid the price will go down in 6 months. Power plants and food processors are afraid the price will go up in 6 months. Because they are both afraid of what could happen they agree to what there 6 months price will be now using a contract. Traders just kind of interjected themselves in the process.
Grain elevators also have to decide how long to store the stuff. If there is going to be a shortage in 3.5 months, it's best to stock up and wait until then to sell. But they don't want to take the risk. They just charge a fee for storage, and let the stupid traders buy it now and take the liability.
This is why I wrote a parsing method to handle "True", "False", "Yes", "No", "T", "F", "Y", "N", "1", and "0" as possible boolean values. I think you could even put in the N-word and it would come out as false. Because it starts with "N". Better safe than sorry. lol
You should throw an exception if the input is malformed (i.e. it doesn't match an enum of two values ("true", "false"). That's the only true way of not fucking up.
@@streettrialsandstuff Unfortunately, that's not an option for our program on all inputs because some are optional, and throwing an exception there would cause valid user data to be rejected for optional data. Lots of customer calls to get the code to that state, and a rewrite was rejected due to cost. So here we are.
I'm not sure which is worse, the API programmers setting the default value of physically deliver to true when the whole point of exchanges is to mostly not deliver commodities OR the client side programmers casually generating a bool from a text comparison of the single positive case as if no edge cases might exist.
The article focuses on Brad, but the idiot who defaults the value to "1" is the real culprit here. If the value is not 1 or 0, just throw an effing error man.
This sounds very much like a (possible urban legend) regarding a coal deal done by Enron London which (unknown to the trader) was physical delivery and the deal confirmation specified delivery at Canary Wharf (the London office address).
Ho boy great video! The article was great and I genuinely enjoyed the little rant about loud trailers! I hate it so much partially because I know it works
Regarding the volume: it was often quicker to quickly triple tap to start & pause the video than try to figure out how to mute netflix during the time of that antifeature.
How can an API that is used to trade millions of dollars not have strictly typed requests or at least some validation to return 400 if it receives an unexpected value
That's why you have XSDs; putting a 1 in a field expecting an xs:boolean would cause pages of obtuse errorr messages (but error messages, that's the point). (or indeed "true" in an int field with bounds 0 and 1)
Interesting, why no XSD for the XML instances... Then again some reason when i use to text xml/xsd early 2000-2003, thought i remember booleans could be [true|false|0|1], all four values. Double checking the W3C RFCs today, boolean today may only be "true" or "false" that's all, well except if it nullable...
There are so many old words like 'scowled'. It reminds me of a Charles Dickens novel... Aaand we have a new contestant on the futures market: Brad's Coal.
The volume thing: if enough people have voiced complaints, make strategy #8 (silent trailer with subtitles) an option in user settings. A/B testing is all well and good but you probably don't need to be as aggressive in marketing to repeat customers. The testing helped in selecting the best performing *default* but it should be easy enough to let returning customers customize their experience. Especially so if the engagement rates were anywhere near comparable.
Also I really doubt it is actually better. Maybe they evaluated their tests too naively. Because I have absolutely had moments of panic pressing some button to turn it off. Turns out the first thing that comes to mind is to start the movie/series and then immediatly pause it. Because whatever you do in the menu, something will always be playing. So if their testing is stupid they would see that people tend to select movies with unmuted trailers quicker. If their testing was smart I conjecture that it would detect that those people actually pause that shit immediatly and don't even play it.
@@anonymousanon4822 Probably they do the same as UA-cam and others: measure how much time the user spends on the platform. Distracting trailer with sound probably helps pull in people that want some dumb entertainment, and that's it.
People use futures as price insurance. Say you were a corn farmer. You can wait until corn prices are high, short corn futures get the money up front and then harvest the needed corn to fulfill the contracts so then no matter what happens to the price of corn in the meantime you already got paid the price you shorted the contracts for.
7:52 "True" such as in python is so antiquated , how many programming languages waste human lifetimes worth of time by acting like aliases or disambiguation are concepts too hard to deal with in favor of pedantry that it must be "True" and not true or 1.
Interestingly (to me anyway) I did some work on an industry xml schema for commodity energy trading - gas, coal, electricity - but OTC Forwards / over the counter rather than exchange traded Futures. Anyway.. why are they adding non-schema, non-DDL defined xml? Am item of type xsd:boolean can (only) have (case-sensitive) values true, false, 0 or 1 Anything else will fail validation. Even if this is time-critical (it's not) and you decide that you can't afford to lose that couple of milliseconds validating in production the first time you test the damn thing you will catch it.
It feels like if traders were really taking on risk, then they'd sometimes have to buy something they couldn't actually shift, if all the trades are always backed by a real sale, then they're just skimming off the top right? Whose buying from the trader instead of straight from the supplier? Is it a buying in bulk thing?
It's literally the worst possible way to check it, but I guess they checked if it was "true", and if it was /then/ they responded to API that something wasn't right and rejected the trade ack
I wonder if there is a XML schema which enforces certain plausibilities like types (e.g. string, Boolean, number, etc) and value ranges? Dunno how good the API is documented. Seems like an unnecessary error.
@@hrmny_ And he's right, because people have no standards. The developer has the least power in that decision compared to users and management. What's he gonna do, quit?
I assume the tests for muted or unmuted trailers was testing for clicks by users. I think something like that working to get people to click on a show and people actually preferring that feature are different things. For example clickbait also works but people still don't like it at all.
Tom would've never accidentally bought 28,000 tons of coal. He's a genius.
Yeah he wrote MySpace instead.
The exchange’s backend was probably written in JDSL
I respect Tom a lot
if they let Tom cook, everybody on earth would be wealthy enough to be able to afford 28,000 tons of coal and get it delivered by Amazon on the same day
nah Tom would've bought real coal and made his own power plant, thus generating extra electricity for him and for the world, making him the first trillionaire.
Plot Twist.
This all happened as we were closing in on christmas. It was all part of Brad's plan, Brad is never wrong. Brad actually sold the coal to Santa at an exorbitant price due to the demand.
Brad can do no wrong.
Thank you! I immediately had that "there is an xmas joke in there!" thought just reading the title. Thirty seconds in, I was not even listening to this hilarious situation or enjoying Primes's hilarious commentary. I have been working on myself a lot and can proudly say I shut down that voice and forced myself to just enjoy the damn video!
My version would have used waaay more words to make a much less funny joke. Well done!
Lesson: Don't be so big of A hole that people assumes you can store 28,000 tons of goods in that pit.
SOAP APIs are definitely one of the web technologies of all time
He can power a small city for a couple of years.
I burn 3~5 tons of coal living on a countryside. depending on the amount of wood.
Would you buy from some guy called Brad though?
@@BboyKeny I think Brad is one of the names I would trust. More so than like an Aiden
@@vetox2915 Ohnoo, I'll make sure to let my little sister know. She's pregnant and is expecting my first nephew in March. They going to call him Aiden 😱
That's so 2000 and late @@BboyKeny
@@Fooney1 I think that's when normal names were still normal. Now people are called after the weather, like Rain and Snow.
The CPU overhead of processing XML to begin with is making the power grid burn an additional 61 million metric tons of coal annually.
I mean... 28k tons doesn't exactly translate to 28m pounds but you do you...
American mind moment
Americans and their imperial measurements
It's in the same catastrophy level.
It's just a comma
Towards the end, the article stated the right conversion: 56M pounds
It removes risk. The example I learned is from currency: Suppose you run Harley Davidson's Russia branch. You have to pay your employees in dollars and you have to produce a budget before the year. However, you don't know the price of rubles for the year. What do you do? Traders/banks will charge you a fee to give you a fixed rate for the year. This mechanism of trading that uncertainty for a fee is the Non-degenerate side of futures markets. This is the true economic value of such a market, something Bitcoin has struggled with finding.
4:55 Futures shifts the risk to traders because the farmer can lock in the price. They promise to deliver the 20 tons of pork bellies in April and get $34k.
The first member of the Dream Team was JDSL Tom, the second member of the Dream Team is clearly coal Brad. And I’m hopping the next member of the Dream team will be brilliant Paula. Which is another DailyWTF classic, and also a really short article.
Brillant!
You were the one that added that mute and subtitle on trailers future?! That is awesome, I'm so happy that it exists. The only downside is that it has English subtitles for shows that don't have those subtitles when watching the series in my country
Haha, I love how the author keeps reassuring us with safeguard after safeguard, even though we know none of them managed to prevent the shipment
If only they wrote that in JDSL instead of XML... Tom would have watched that!
I was using xml for loading all the assets for a little game I was making and learned quickly that xml booleans suck.
Why
Poor documentation and bad encoding enforcements lead to messy parsing. Prime mentions that with 1s, 0s, empty strings and capitalization
All data formats that store non-strings as strings suck.
I prefer KDL. It's like XML but with 99% less syntax overhead, so it's easy to read, write and parse.
eeeh, personally I prefer 0/1, it ignores the "Does it want capital or lowercase" issue with True/false. A bit annoying and unclear at first, but if you know what you're working with it does the job. It's a lot harder to forget 0/1 than exact case sensitivity.
… wow. I’m always like, let me go there and code in the muted sound feature at Netflix… every time I turn the tv on and get blasted with sound I die a little inside…
But now that you mention it, it’s not a dev decision, it’s a business decision…
Prime isn’t a businessman, he’s a business man.
@@Kane0123 Let me handle my business, damn
"Don't send emails when you're upset." So I should never send emails?
XSD has xs:boolean type which they didn't use. Even if they used any other binary typed messaging as Protocol Buffers, this mentality would still use string "1" or "Y" for boolean. Technology can't solve mindest issues.
I watch trailers so infrequently. In fact, they only play at my house if I fall asleep in front of the TV or .. can't find the remote. I hope that whatever metrics are justifying the "people like the sound!" take in to account inaction or those who can't figure out how to turn it off.
Great work editors! also brad is a genius.
I guarantee you Netflix did NOT test whether users wanted to have the ability to turn autoplay on or off!
Oh I absolutely hate the autoplay feature with the volume on. Absolutely loath it. The first thing I do when Netflix loads is scroll down until it shuts up. But I don't blame you for that at all. That's all on us for wanting shit we hate.
Farmers and miners are afraid the price will go down in 6 months.
Power plants and food processors are afraid the price will go up in 6 months.
Because they are both afraid of what could happen they agree to what there 6 months price will be now using a contract.
Traders just kind of interjected themselves in the process.
Grain elevators also have to decide how long to store the stuff. If there is going to be a shortage in 3.5 months, it's best to stock up and wait until then to sell. But they don't want to take the risk. They just charge a fee for storage, and let the stupid traders buy it now and take the liability.
This is why I wrote a parsing method to handle "True", "False", "Yes", "No", "T", "F", "Y", "N", "1", and "0" as possible boolean values. I think you could even put in the N-word and it would come out as false. Because it starts with "N". Better safe than sorry. lol
Hey look at this German XML I got you
You should throw an exception if the input is malformed (i.e. it doesn't match an enum of two values ("true", "false"). That's the only true way of not fucking up.
@@streettrialsandstuff Unfortunately, that's not an option for our program on all inputs because some are optional, and throwing an exception there would cause valid user data to be rejected for optional data. Lots of customer calls to get the code to that state, and a rewrite was rejected due to cost. So here we are.
@@nychold so the enum of valid values is just ("true", "false", null) or whatever value represents absence of data.
I'm not sure which is worse, the API programmers setting the default value of physically deliver to true when the whole point of exchanges is to mostly not deliver commodities OR the client side programmers casually generating a bool from a text comparison of the single positive case as if no edge cases might exist.
That may not have been the default, and string that is not "0" may have been true.
The article focuses on Brad, but the idiot who defaults the value to "1" is the real culprit here. If the value is not 1 or 0, just throw an effing error man.
This sounds very much like a (possible urban legend) regarding a coal deal done by Enron London which (unknown to the trader) was physical delivery and the deal confirmation specified delivery at Canary Wharf (the London office address).
That definitely sounds like something that would happen at Enron.
I worked with some commodities traders and boy Brad reminds me of that group a lot.
If anything, this is a great example of why having a decent interpersonal relationship at work is important lol
Brad is a genius
That's why type checking with DTD exists.
And wrong XSD and WSDL (can you feel my pain?)
Ho boy great video! The article was great and I genuinely enjoyed the little rant about loud trailers! I hate it so much partially because I know it works
Regarding the volume: it was often quicker to quickly triple tap to start & pause the video than try to figure out how to mute netflix during the time of that antifeature.
Could be worse, imagine he would have traded in livestock or something perishable.
Imagine he would have traded manure.
Yes, that's traded too, as fertilizer.
How can an API that is used to trade millions of dollars not have strictly typed requests or at least some validation to return 400 if it receives an unexpected value
People have no other choice than to use the API so why improve it?
Same reason almost everything produced by Microsoft is a pile of hot garbage.
@@SaHaRaSquadvscode is pretty good tho
The picture of the barges at the beginning of the article is the Ohio River going through downtown Pittsburgh.
That's why you have XSDs; putting a 1 in a field expecting an xs:boolean would cause pages of obtuse errorr messages (but error messages, that's the point). (or indeed "true" in an int field with bounds 0 and 1)
Didn't know it was XML issue with truthiness, but I remember when this happened and it hit the news. He got the coal he really wanted to trade in.
I read there's a great technique for turning coal into diamonds
happens when have big kahuna burgers as a nutritional breakfast, also, brad, to this day, says "what?"
I love how easy it is to trigger Prime with autoplay mention.
Interesting, why no XSD for the XML instances... Then again some reason when i use to text xml/xsd early 2000-2003, thought i remember booleans could be [true|false|0|1], all four values. Double checking the W3C RFCs today, boolean today may only be "true" or "false" that's all, well except if it nullable...
Btw, haven't you noticed the flickering "Skip intro" or "Skip summary" button bug that's been there permanently for years? In netflix?
There are so many old words like 'scowled'. It reminds me of a Charles Dickens novel...
Aaand we have a new contestant on the futures market: Brad's Coal.
The volume thing: if enough people have voiced complaints, make strategy #8 (silent trailer with subtitles) an option in user settings.
A/B testing is all well and good but you probably don't need to be as aggressive in marketing to repeat customers. The testing helped in selecting the best performing *default* but it should be easy enough to let returning customers customize their experience. Especially so if the engagement rates were anywhere near comparable.
Also I really doubt it is actually better. Maybe they evaluated their tests too naively. Because I have absolutely had moments of panic pressing some button to turn it off. Turns out the first thing that comes to mind is to start the movie/series and then immediatly pause it. Because whatever you do in the menu, something will always be playing. So if their testing is stupid they would see that people tend to select movies with unmuted trailers quicker. If their testing was smart I conjecture that it would detect that those people actually pause that shit immediatly and don't even play it.
you can turn off auto play in Netflix settings
@@anonymousanon4822 Probably they do the same as UA-cam and others: measure how much time the user spends on the platform. Distracting trailer with sound probably helps pull in people that want some dumb entertainment, and that's it.
People use futures as price insurance. Say you were a corn farmer. You can wait until corn prices are high, short corn futures get the money up front and then harvest the needed corn to fulfill the contracts so then no matter what happens to the price of corn in the meantime you already got paid the price you shorted the contracts for.
an entire chat of programmers baffled by the imperial system of measurements. mmmm, ahhhh
i am terrible with my own countries units... metric just works
Brad got coal for Christmas LMAO
Wow, that story is so old, some people in that stream weren't even born yet when it happened.
61,729,433 lbs of karma delivered right to Brad's office! 🤣
Where did you get that number from? it said 50 something mil pounds
@@AEONIC_MUSICVideo title.
@Linuxdirk oh well in the video it said 57mil so idk where they hot the title number from
Fun fact: the US doesn’t allow onions futures because a guy cornered the market once
7:52 "True" such as in python is so antiquated , how many programming languages waste human lifetimes worth of time by acting like aliases or disambiguation are concepts too hard to deal with in favor of pedantry that it must be "True" and not true or 1.
I mean, Brad was right all along… someone else fucked up.
Chat really goes like "Grandpa tell us that one about trailer with volume"
15:03 Next season on "I Think You Should Leave"....
Story begins at 6:20, according to creator himself
justice for number 8
It will be a coal day in h..l before Brad can live that one out...
Does AExecor actually exist? This story has been around since 2009 but I cant find anything about the company.
I wouldn't be surprised if the company name was changed.
@@nikkiofthevalley well surely there would be some trace of them online before the name change.
Interestingly (to me anyway) I did some work on an industry xml schema for commodity energy trading - gas, coal, electricity - but OTC Forwards / over the counter rather than exchange traded Futures.
Anyway.. why are they adding non-schema, non-DDL defined xml?
Am item of type xsd:boolean can (only) have (case-sensitive) values true, false, 0 or 1
Anything else will fail validation.
Even if this is time-critical (it's not) and you decide that you can't afford to lose that couple of milliseconds validating in production the first time you test the damn thing you will catch it.
I have the volume off when I watch Netflix lol don't remember watching a trailer with volume on by default in a long time
this is classical new spin on universe old story, read this in one way or another million times
Lesson: No matter how great you think of yourself, always keep in mind, that anybody can spot a mistake of yours.
ah yes
pounds
the world-compatible easy maths mass unit
Don't trade futures. With options, you just end up buying stocks. With futures, you end up buying unimaginable amounts of goods when it goes wrong.
It feels like if traders were really taking on risk, then they'd sometimes have to buy something they couldn't actually shift, if all the trades are always backed by a real sale, then they're just skimming off the top right? Whose buying from the trader instead of straight from the supplier? Is it a buying in bulk thing?
With a Pirate Software raid midway through the article read.
I won't probably be alone here when I start chanting "More DailyWTF articles!!!" 😅
Fantastic Story, I've run into "Brads" in my life-time, luckily few and far between, this story is great schadenfreude.
It would be about 7.000 trucks in Europe with a truck hauling 40 tons of load.
i love story time with Primeagen!!
I guess their office will stay cozy warm for the next century or so
Never, ever compare strings unless you have to. Parse them to a type and compare the types if possible.
When buying 'futures' turns to 'next-day delivery' 😂
He must have pissed off Santa
I don't get it, the sequence going 3, 2, 1, infinity.
Surely the expected result of normal front end JavaScript is 3, 2, 1, NaN?
In python, it's very easy to get a working for-loop actually.
Wait why is that test case checking against "true", shouldn't it be "false"?
It's literally the worst possible way to check it, but I guess they checked if it was "true", and if it was /then/ they responded to API that something wasn't right and rejected the trade ack
28 thousand tons. Might that be a case why XSD exist?
The volume thing is SO true. I did that. I am not proud. I am sorry I'm Brad 😂
I wonder if there is a XML schema which enforces certain plausibilities like types (e.g. string, Boolean, number, etc) and value ranges? Dunno how good the API is documented. Seems like an unnecessary error.
love prime basically defending himself shipping dark patterns in netflix
Muted video playback with subtitles instead of sound is not a dark pattern. Or at least not nearly as bad.
@@SaHaRaSquad yeah but that wasn't shipped and he blames people clicking on the video with sound on
@@hrmny_ And he's right, because people have no standards. The developer has the least power in that decision compared to users and management. What's he gonna do, quit?
Jesus, the fact that it didn't error on invalid input
Brad got his trade delivered :D
I assume the tests for muted or unmuted trailers was testing for clicks by users. I think something like that working to get people to click on a show and people actually preferring that feature are different things. For example clickbait also works but people still don't like it at all.
it frelling fails CLOSED? that is def a whoops
That door was off-by-one error 💵
Tom is a genius!
Bro what?
Brad is such a coal guy.
Brad, be like Tom!
Now you're literally making story time vids 😂
Cyberpunk we deserved.
Prime posts that much coal on twitter daily
POV: You're here because you just ordered a thousand litres of milk
"False" == true
May I introduce you to the world of XSD..
Actually, no, Ignore me.. Just REJECT XML all together.. You will be happier if you do.
I just noticed you got the Rick's voice. (Rick and Morty)
what is a lbs?
As a rustation this story made me tell my type saftey I love them.
also brad is a genious?
Prime not emphasizing the _italics_ bugs me sooo much...