I think the real problem is the speed JS changes... I learned it from the free PDF EleoquentJS.pdf and it's a bit older ... and today allmost nothing in there is usefull anymore. JS regularly throws whole principles over board. Making a JS App automantically comes with giant amounts of maintenance of the code... It's disgusting.
@@Silverflame1 Nope, historically the way to make objects was the crate a function that makes a hash, assigns fields to it and returns that hash. This workaround would behave just like a constructor in any other language. Later JS improved on it by adding more proper way of defining objects but to keep backwards compatibility you would still get the same hash as a result. function Bear() { var self = {}; self.rightPaw = "honey"; self.face="bee stings"; return self; } var daddyBear = Bear(); var mummyBera = Bear();
It's Friday night, I have a drink in my hand, the code in front of my eyes... And the bug in the JavaScript. This is all so amusingly true it made me cry while laughing.
"Now null is a reference to nothing, dont mix it up with undefined" 🤣🤣🤣🤣🤣 "That Zero and NaN and Infinity man, Just remember which can be signed" 🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣 "And you think your numbers are integers but your really in Floating Point Hell" 😂😂😂😂😂😂😂😂😂😂😂 this is too fucking good.
"nine o'clock on a Saturday" - you had me at that point. I remember an evening: I had a beer in my hand in the pub garden when my pager went off, please come into the office to fix a bug in someone else's code.
honestly, this is a brilliant rendition of the original song, and with the know how of javascript (full stack front ender oriented here) this touches some personal notes hehe
today is just tuesday our app is mainly written in go but we have a few javascript files my day was, unintentionally, about finding a bug all i wanted to do was get some benchmarks i was asked for the bug was in the javascript the solution was delete a single line
Can someone please explain "at the end of 1969"? I suppose it has something to do with `new Date(0)` being at the end of 1969 in US timezones, but I couldn't manage to get a falsy value out of it.
Maybe it's because `new Date(false)` is legal and returns epoch 🙂. It also rhimes nicely, fits the metrum and (to me) alludes to eternity (HGTTG) /and/ the 60s. I♥how F12 gives anyone instant access to JS's power and delicate beauty. ♥
If you try to get the boolean value of a date, it will basically do a cast to int and then to bool. Hence the Unix epoch being the only value that is false (all other dates parse to true).
@@ericduminil I'm not a js dev these days, but googling some and playing around here's the fuller explanation: Normally time comparisons are done by calling the .getTime() function, because otherwise js just compares the objects (almost always returning false). However if you use getTime() (including implicitely via a conversion that calls valueOf) it becomes a number, specifically 0 for the Unix epoch which will evaluate to false. Here's some code that demonstrates it: var postEpochDate = new Date(1975, 6, 23, 12, 30, 0, 0); var postEpochDateClone = new Date(1975, 6, 23, 12, 30, 0, 0); var preEpochDate = new Date(1965, 6, 23, 12, 30, 0, 0); var epochDateProbablyWrongTimezone = new Date(1970, 0, 0, 0, 0, 0, 0); var epochDate = new Date(0); var testDates = [preEpochDate, epochDateProbablyWrongTimezone, epochDate, postEpochDate]; console.log(postEpochDate == postEpochDateClone); console.log(postEpochDate.getTime() == postEpochDateClone.getTime()); for(let i = 0; i < testDates.length; i++){ console.log(testDates[i].toUTCString()); if(testDates[i].getTime()){ console.log("The above date evaluates to true."); } else{ console.log("FALSE!!!"); } }
Yes I have problems reproducing this myself. I think it's kind of funny and I wish I had a snippet to back that claim. But all my attempts failed so far 😢
shpagethi monster exist on the web its called JS compiler and the code it parses. JS source files are the shpagetti and it compiles non optimised to shpagetti as bad specification of the language itself.
I still never will understand how Java & Java Script became so standard the amount of people that complain abut it would make you think its not worth the hassle but yet people still use it 🤣🤣
>But we're sharing a string padding library, cuz it's better than writing our own Oh, *that* one time, that was a lot of fun to watch as an admin, so many websites suddenly unable to compile and deploy :'D
Singing about JavaScript but this song was written in C
lol!
And it's also sung in C.
Cast into an abyss?
That's genius!
Should've tuned it up to C#
"'cause everything else was built properly
but the front end's a pile of crap"
🤣🤣🤣 I relate to that on a deep, spiritual level.
Empty array casts to true so there is a bug in that song too
"and your objects are hashes,
but when your code crashes
you'll find they were functions as well"
man that was deep 😅
hahahahhahahahaha
I think the real problem is the speed JS changes...
I learned it from the free PDF EleoquentJS.pdf and it's a bit older ... and today allmost nothing in there is usefull anymore.
JS regularly throws whole principles over board.
Making a JS App automantically comes with giant amounts of maintenance of the code...
It's disgusting.
I thought that functions are objects in JavaScript (function objects) instead of the other way around.
@@Silverflame1 Nope, historically the way to make objects was the crate a function that makes a hash, assigns fields to it and returns that hash.
This workaround would behave just like a constructor in any other language.
Later JS improved on it by adding more proper way of defining objects but to keep backwards compatibility you would still get the same hash as a result.
function Bear() {
var self = {};
self.rightPaw = "honey";
self.face="bee stings";
return self;
}
var daddyBear = Bear();
var mummyBera = Bear();
There is someone who understands my pain.
@Tripulse Sure, if you pay my rent I won't hesitate for a moment and quit my job at the IT department at my university.
@Tripulse Some people don't have that luxury of choice...
@Tripulse good luck making dynamic content on the web without it :)
they removed / 'obsoleted'' literally all the other options.
@@LiEnby WebAssembly exists. It still requires a bit of JS, but most code can be written in pretty much any other language
@@laurinneff4304 i heard it cant interact with the DOM.
It's Friday night, I have a drink in my hand, the code in front of my eyes... And the bug in the JavaScript. This is all so amusingly true it made me cry while laughing.
This makes me afraid to be a real programmer.
@@TheRealCasadaro what ? And miss all these fun ?
The only solution is to code underwater so nobody sees you crying.
After a while of programming in javascript ive encountered every bug this song mentions lol
I really liked the string padding library reference :D
4:40 Just how weird JS is, the empty array casts to true.
The legends say that he’s still looking for that bug…
I must have been working from home too long if my wife gets all these references ...
My wife's boyfriend loves this song.
@@ryanhaney 😂
I cried listening, thanks
"Dynamic typing is an advantage, I can type less"
"On average, each line of code is written once, but read ten times"
Outstanding performance, great lyrics, 10/10 overall! Made my day! THANK YOU!
c++
It was an honor for me to be present at GOTO Amsterdam and hear this song live! It was AMAZING!
Heart touching lyrics haha, you made my day man 😄
i do front end coding and .... I like this song ! :D Cheers!
"Now null is a reference to nothing, dont mix it up with undefined" 🤣🤣🤣🤣🤣
"That Zero and NaN and Infinity man, Just remember which can be signed" 🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣
"And you think your numbers are integers but your really in Floating Point Hell" 😂😂😂😂😂😂😂😂😂😂😂
this is too fucking good.
TypeScript might be the equivalent of hiding under the covers so the monsters can’t see you, but it does help me sleep better at night.
When you write the js you are the monster. 😁😁😁🙏😂
"nine o'clock on a Saturday" - you had me at that point.
I remember an evening: I had a beer in my hand in the pub garden when my pager went off, please come into the office to fix a bug in someone else's code.
I simply love that there is a bug in song about bug! Art!
Bug fixing, the bane of my existence, and all summed up in one song. Great job.
"but we re sharing a string padding library".... man, please just stop, please. you are killing me =)) remember that old day though (well, not so old)
honestly, this is a brilliant rendition of the original song, and with the know how of javascript (full stack front ender oriented here) this touches some personal notes hehe
Full stack frontend? Isn't that just called frontend development?
@@NN-kf7qo full stack, front end 'oriented'
Hahaha, I love this song!
It narrates what happens in the real world in many cases!
Excellent job with the lyrics, btw!
Well, this is perfect :D
"nine on a saturday" wow, im surprised he got that, currently 21:47 here...
21:00 exactly for me right now. 😉
It's the beginning of 2021 and only 14 People DON'T have a bug in their JavaScript app
Excellent and very very funny. Thank you for posting
Good stuff man! It's been months since since I last touched web app project. These words hit home...
I wish you your well deserved glory!
Too real
I listened to this song being played in Discord VC, and it was fantastic
still relevant three years on!
fanstastic tech version of pianoman.
Dude, how have I not heard this before.
You really put your heart into this song!
dude, this shit is traumatic, I swear I started to zone out into the low whirring of helicopter blades on "which ones can be signed"
A masterpiece !!
Came here looking for closure, found all kinds of memory problems
today is just tuesday
our app is mainly written in go
but we have a few javascript files
my day was, unintentionally, about finding a bug
all i wanted to do was get some benchmarks i was asked for
the bug was in the javascript
the solution was delete a single line
Well done!
2:20 When you sang HELL... I felt it...
A great contender to eternal flame (aka God wrote in Lisp)!
Can someone please explain "at the end of 1969"? I suppose it has something to do with `new Date(0)` being at the end of 1969 in US timezones, but I couldn't manage to get a falsy value out of it.
Maybe it's because `new Date(false)` is legal and returns epoch 🙂. It also rhimes nicely, fits the metrum and (to me) alludes to eternity (HGTTG) /and/ the 60s.
I♥how F12 gives anyone instant access to JS's power and delicate beauty. ♥
If you try to get the boolean value of a date, it will basically do a cast to int and then to bool. Hence the Unix epoch being the only value that is false (all other dates parse to true).
@@traveller23ethanks. What would be the corresponding js code?
@@ericduminil I'm not a js dev these days, but googling some and playing around here's the fuller explanation: Normally time comparisons are done by calling the .getTime() function, because otherwise js just compares the objects (almost always returning false). However if you use getTime() (including implicitely via a conversion that calls valueOf) it becomes a number, specifically 0 for the Unix epoch which will evaluate to false. Here's some code that demonstrates it: var postEpochDate = new Date(1975, 6, 23, 12, 30, 0, 0);
var postEpochDateClone = new Date(1975, 6, 23, 12, 30, 0, 0);
var preEpochDate = new Date(1965, 6, 23, 12, 30, 0, 0);
var epochDateProbablyWrongTimezone = new Date(1970, 0, 0, 0, 0, 0, 0);
var epochDate = new Date(0);
var testDates = [preEpochDate, epochDateProbablyWrongTimezone, epochDate, postEpochDate];
console.log(postEpochDate == postEpochDateClone);
console.log(postEpochDate.getTime() == postEpochDateClone.getTime());
for(let i = 0; i < testDates.length; i++){
console.log(testDates[i].toUTCString());
if(testDates[i].getTime()){
console.log("The above date evaluates to true.");
}
else{
console.log("FALSE!!!");
}
}
Yes I have problems reproducing this myself. I think it's kind of funny and I wish I had a snippet to back that claim. But all my attempts failed so far 😢
Billy would be so proud of you
Beautiful!
undefined is not a function
oooh man I love you! hahahah this made my day!
Loved it. Hurrah for retirement.
My first thought seeing the title was "to the melody of 'Born in the USA'"...
Mine was "Life is a Battlefield"
That's why you write the front end in Python and the backend in C....
Just shared this to my students. 😎
Great work Dylan!
God bless your soul
Im in love
This is a masterpiece
It would be unfair if i said this ain't cool
You understood the pain ...
This is pure gold :)
You're a genius man!
Dylan had me doubt there a minute, but luckily Boolean(new Date(0)) is still true :-)
Boolean([]) is also true
[] == false returns true though :)
@@macarc985 But `new Date(0) == false` doesn't
Amazing!
shpagethi monster exist on the web its called JS compiler and the code it parses. JS source files are the shpagetti and it compiles non optimised to shpagetti as bad specification of the language itself.
te amo, es viernes, y hay un bug en mi JS!
What a legend
THIS IS AMAZING
Did you also play the mandolin and the piano?
I love this song man!
He only plays guitar.
@@Posimanand the harmonica
I still never will understand how Java & Java Script became so standard the amount of people that complain abut it would make you think its not worth the hassle but yet people still use it 🤣🤣
Remember that the only thing those languages have in common is the name!
Everyone uses Javascript because on the web it's the only choice.
I approved this code content
Very good my friend, well done!
Javascript broke my heart 💔
And mine
I feel offended, but then again I asked for it...
Anyone else here waiting for Archeage Servers??
Has anyone tabs for harmonica? 😄
I found it 😅
6 -6 6 -5 5 -5 4
4 -4 3 -4 3 4
-5 6 -6 6 -6 -5 5 -5 4
3 -5 5 -4 4
I feel you, man
Always gets me
JavaScript is bug by itself as a language and its standartisation.
feature in the JavaScript
The front end is ALWAYS a pile of crap ...
accurate in every aspect :)
But the front end's a pile of crap! LOL!
OMG you know my pain !
Now I just understand why my code won't run properly. Tutorial don't mentioned it -_-
Wow Wow Wow Just Awesome
I cried
I live in floating point hell
Love it..
My love to JavaScript is like NaN == NaN
pure gold
I'm here because I love Javascript and this song is my life :)
fascinating!
You poor man!!!!!
Daily life struggles 😭
Feel your pain. ;D
>But we're sharing a string padding library, cuz it's better than writing our own
Oh, *that* one time, that was a lot of fun to watch as an admin, so many websites suddenly unable to compile and deploy :'D
this is an american classic
This hits too close to home...... fuck.... the worst part is... I wrote the fking frontend... FUCK!
Hhahahahahah nice work! :))))
And then start typescript 😂
nice
Actually, `document.all` is also falsy!