June 8th, 2022 × #javascript#webdev#podcast
Syntax Live at Reactathon
Wes Bos and Scott Tolinski host a live podcast episode from Reactathon, featuring debates, old code, syntax errors, JS or NAS, and audience Q&A.
- Podcast sponsored by Century, FreshBooks, PaymentsHub
- Hasty Treat podcast on Mondays
- New Supper Club podcast releasing
- Live podcast overview
- Debate on putting imports at top of files
- Debate on enforcing semicolons
- Debate on usefulness of for loops
- Debate on adding types to JavaScript
- Ad for Sentry error tracking
- Debate on using platform primitives vs transpiling
- Debate on usefulness of TypeScript
- Kicking It Old School segment
- PaymentsHub sponsor ad
- Syntax Error segment
- JS or NAS audience participation
- FreshBooks sponsor ad
- Audience Q&A
Transcript
Announcer
You're listening to Syntax, X, the podcast with the tastiest web development treats out there. Strap yourself in and get ready. Here is Scott Talinski and Wes Boss.
Scott Tolinski
This episode is is sponsored by 3 amazing companies. We're talking about Century, FreshBooks, and Payments hub. We'll be talking about all of those throughout the course of the show. So thank you to our sponsors for sponsoring. Alright. How's everybody doing?
Podcast sponsored by Century, FreshBooks, PaymentsHub
Wes Bos
Enjoying it. Yeah? Awesome. Thanks so much for coming out. This is super exciting.
Wes Bos
We have a podcast called Syntax, And, we do 2 plus 3. We're gonna talk about that in a second. On Mondays, we have a podcast called The Hasty Treat. It's kinda focused on JavaScript, HTML, CSS, Node, soft skills, everything, web development. So hasty treat on a Monday, we do, like, a 20 minute episode, something nice and short.
Hasty Treat podcast on Mondays
Scott Tolinski
On Wednesdays, we do a tasty treat, which is our longer breakdowns into all sorts of topics, really. We, it's super educational, but also a lot of
Wes Bos
fun. And, just now, you're gonna know that we are releasing a 3rd weekly episode called The Supper Club.
New Supper Club podcast releasing
Wes Bos
Woo. Yeah. It's gonna be all interviews with people. We don't do a ton of interviews, and, some people are much smarter than us. So, we thought we'd bring on some some people, so Buckle up for that.
Wes Bos
We we didn't see earlier, but does anyone actually listen to the podcast here, Cuddle People? Okay. Good. That was much better than Yeah. Because we were standing behind that thing, and It was just like, hey. Listen. And it's just like so oh. Oh, boy.
Scott Tolinski
You can find me at s talinski on Twitter and everywhere and at level up tutorials.
Wes Bos
Sorry. They did anyone else get beer as part of their presentation? I don't think so.
Wes Bos
It's pretty sweet. My name is West Boss. I'm from Canada.
Wes Bos
That's why I say JavaScript funny. Woah. Hey. Canadians.
Wes Bos
Canadians.
Wes Bos
Yes. Canadians make the best developers. I'm I'm at Wes Boss on Twitter, Mostly Instagram as well.
Wes Bos
Today is a live podcast, and the plan for today is,
Live podcast overview
Scott Tolinski
Well, the, first thing we're gonna be doing is we're gonna warm you up with some JavaScript hot take hot take tweets.
Wes Bos
Then, we're gonna a new section that we've never done so far Kicking it old school. We're gonna go back to who's been a developer for over 10 years here?
Scott Tolinski
Oh, wow. Okay. Yeah. Buckle up. Yeah. Buckle up for that one. Then we're gonna do syntax error where Wes and I have sneakily put in some syntax errors into some code, and we're going to try to stump each other With where those syntax errors live, so that'll be a lot of fun.
Wes Bos
Then we have a very popular segment called JS or NAS. We're gonna talk about, is it a JavaScript library or something completely different, like a carbon fiber road bike or,
Scott Tolinski
And you'll be able to vote. So we'll have everyone voting in the audience. Y'all got phones? We're gonna try yeah. Y'all got phones. We're gonna try to trick you on, Some fun JS libraries.
Wes Bos
And then we're gonna wrap it up with q and a. So if you have any questions about literally anything, life, love, JavaScript barbecue. Barbecue, breakdancing.
Wes Bos
Yeah. We will answer it confidently if even if we don't even know what we're doing. That's how it goes. Yeah. The URL for today, if you have your phone, we have a q and a coming up. Feel free to drop your q's and a's, anytime@pigeonhole.atforward/sick QR code. How you know QR codes have been around for, like, what, like, 12 years, and everyone always thought they're dumb. Pandemic. Like, like, the unsung hero Yeah. Of the pandemic was the QR code, So I'm pretty stoked about that.
Wes Bos
Alright. We're gonna start off with some hot take tweets.
Wes Bos
I asked people on Twitter, like, we all love to trash talk all day on Twitter. Right? Look. What is your unpopular opinion, or what's your hot take in in web development and JavaScript in general? So we're gonna go through them all, and attempt to answer them all.
Wes Bos
So first one we have here is NAN was a mistake.
Wes Bos
Any operation that yields, Nan, should simply throw an error. And this one this one had me go, I didn't even I never even thought about that. It's true. Like Nan. Yeah. Because, like, if you get to Nan, something went wrong.
Wes Bos
You know? It's not Nanon. Like, maybe you should've checked if it was a number first. Right? Yeah. Maybe. That's kinda interesting. Not sure how to think about that, but
Scott Tolinski
hot take? Hot take.
Scott Tolinski
Next 1 is putting all the imports at the top of each file makes code Extra harder to read, navigate, and refactor.
Debate on putting imports at top of files
Scott Tolinski
It just adds to jumping around in the file to see what, see what something is or where it's used. And, actually, I collapse all mine anyways. I, do a region collapse on there. So Interesting. Yeah. I don't like them.
Wes Bos
I I like it. I don't like it. Because so here, I was refactoring a whole bunch of common JS, and I was just putting my requires right before I needed them In, like and not always, but in in some of my files. And then it's like, no. You can't do that anymore. So how many of you think you would like to put imports anywhere that you want? Anywhere. You, Bologna. Just anywhere. Yeah. Oh, it's a hot take for, hot take for a reason, folks.
Scott Tolinski
Semicolons should not be optional. No. I went I don't I don't use semicolons. Who needs semicolons? I'm
Wes Bos
I I'm wondering if this guy thinks Semicolons should not be there at all. Like, the option should be don't have them or entirely.
Wes Bos
I'm gonna go I'm gonna go I agree.
Wes Bos
You should enforce them. Enforce them not being here. People that don't use semicolons, I sleep at night. I don't use them. I sleep fine.
Debate on enforcing semicolons
Wes Bos
Can't do it. No.
Wes Bos
The next one, for loops are not needed.
Wes Bos
Okay. Let's get the audience. Let what do you think about this? Oh. Technically.
Wes Bos
I so I followed up to the suite. I'm like, you mean, like, the 4, I plus plus one. Right? And he's like, no. Like, all of them. Like, 4 of, 4 in, 4 regular ass, For, and I was like, no. Because, like, a for loop is like, you ever try to sink away inside of a map or for each? Sucks. It sucks. I know you can do the reduce thing where you return a promise of the next one and, like, no way to live your life. No. You should not be doing that. 4 you can't break early from a a 4 each. 4 loops, I love 4 loops. I don't think they're used often enough. People are too Too hardcore about making everything an array method.
Debate on usefulness of for loops
Wes Bos
What did they?
Scott Tolinski
I take. Yeah. I'm I'm fired up. I don't I don't use them that much, but I use them enough where it's like, yeah. Okay. You know? I don't I don't need them, but they're there, and I can use them if I want. You don't need them. I don't need them to be there. Needs for loops?
Wes Bos
Alright. Let's go hang out after. Yeah.
Scott Tolinski
Alright. Next one.
Scott Tolinski
People that are excited about for static typing in native JS weren't there for Or just forgot or blacked out ES 4 Harmony and its chaos.
Wes Bos
Yeah. There was a lot of, I mean, ES 5 took what? Like, Yeah. We should explain for the folks that weren't around for that. It took, like I don't know. How many years did it take to get e ES 5 out the door or What or so many it was a huge deal when it came in. Cancel it at some point. So I I think that our standards process is better. Like, we've seen We've seen a lot more come out the door, so I I disagree. I think if we if we're getting static typing in JavaScript, it'll go a bit smoother. I like that. Microsoft will just do it for us. Yep. Who thinks we should get types in JavaScript?
Scott Tolinski
Wow.
Wes Bos
Yeah. Yeah. Who doesn't think we should get types in JavaScript? Okay. Get Out.
Scott Tolinski
You're done.
Scott Tolinski
This episode is sponsored today by Sentry at Sentry dot I o. Sentry is the perfect place to see All of the errors and exceptions and all sorts of things on your site, but mostly it's a tool for understanding what your users are experiencing on your site at any given time because this gives you tools to see what kind of bugs are happening, which pages are slow, what's Going on. Where are the issues on your site? And you can attach them quickly to issues, assign them to users, make sure these things get done, fixed, improved pun or any of that stuff. And Century is one of those tools that works with everything you know and love and has been around for a long time. We love Century over here, and I We've been using it for a very long time as, long before we did this podcast, I've been a big fan of Sentry. So we what we want you to do is head on over to century@s entry.i0.
Debate on adding types to JavaScript
Scott Tolinski
Use the coupon code tasty treat, all lowercase and all one word. And What you're gonna do is you're gonna get 2 months for free of Century's amazing services. So go ahead and give them a try, plug it in with your app, and then Just be amazed as as you get to find out about the bugs that happen on your site happen before your users email you saying there was something wrong. Thank you to Century for a sponsor. A good website webshate? Webshate. That's what you make. Right? Webshate.
Scott Tolinski
That's what I make. Shadesights
Ad for Sentry error tracking
Wes Bos
.net. Hit me up. A good website should function without JavaScript. Forms should work without JS, and accessibility should not be broken when JS does not Load.
Wes Bos
Interesting thought, Scott. Not that hard of a take. Not that hard of a take. But I do like JavaScript. I primarily like JavaScript. I I think every day. I think the form thing, Absolutely.
Wes Bos
Because, like like, form like, we looked at it in Ken's talk yesterday. Like, forms are already built into the browser And into the server. You know? Like, we got it already. You know? And, like, you can you can step in there. Fine. You don't have the animations or, know? No. But, like, you can now. Yeah. You can you can use, like, most of that and then just add a little sprinkle Yeah. Of of whatnot. But I don't know. I don't know. I think, like, I think the I think that JavaScript is a pillar of of the the web. Yeah. Turning it off, you're gonna have a bad time. Bad time in 2022. Yeah.
Scott Tolinski
Classes were a mistake.
Wes Bos
I got I got no problem with classes. I don't use them, but I gotta gotta open it up. Yeah. And I don't it's like classes didn't add anything to language. Right? It just was Sugar. It's just sugar. Yeah. I like sugar. Yeah. Thank you. I I don't really use them all that much, but yeah. Not not We're we're laughing because we coulda we coulda filled this whole talk with Brian Larew, Tweek. Here? He's, here tomorrow. Yeah. I've been saying this for years, but I think the best way to build an app is to stay as close to the platform primitives That's possible and not transpiling. I remember Brian was very outspoken when Baoil came, and he's like, no. We're just doing ES 5 until until you can support it. Folks bias to ESM or folks should bias ESM web components, progressive enhancement, tightest shifting.
Debate on using platform primitives vs transpiling
Wes Bos
I kind of agree. I don't think I'm gonna ever, like, totally Let go of my build step. Yeah. But, like, that's why we're pushing for for, like, standards and platform primitives is maybe one day we won't. I like my magic. If we can get types in JavaScript. Yeah. I like a little bit of magic. Little bit of magic. Yeah. Mister Svelte over here. Yeah.
Scott Tolinski
Yeah.
Scott Tolinski
TypeScript is overrated and overhyped. No.
Debate on usefulness of TypeScript
Scott Tolinski
No. Oh. Oh, what?
Wes Bos
Next one. Some claps go ahead. Hold on. We got we got too many of these. Let's let's go through here a couple more.
Wes Bos
I'm sorry. Alright. Let's move on to next section.
Wes Bos
Kicking it oh, we'll go back to that. We could talk about hot takes all day long. Yeah. We can talk about it. Long. Kicking it old school. Alright. This is the section of the show Where we are gonna ask you folks to come up. We are gonna show you some code from the last 10 to 15 years, and you're gonna have to guess What does this code do? What's it do? What does it do? And if you I got stickers.
Wes Bos
I got I'll give you a free course. Scott probably give you a free course. Whatever you want. Maybe some of those we can just make up guests. Free Hasoor for 10 years.
Kicking It Old School segment
Wes Bos
I'm joking. I'm joking. That's not a that's not real Unless they want to.
Wes Bos
So folks who want to try to win at this game, please line up over here. Come on down.
Wes Bos
Don't be shy. Don't be shy.
Scott Tolinski
Yeah. There we go. Alright.
Scott Tolinski
Okay. So we have a hot mic here.
Scott Tolinski
Test. Test. Hot mic. Yes. You are first.
Scott Tolinski
Okay. What does this line of code do? Specifically,
Wes Bos
the
Guest 4
The first and last lines where Yeah. That's the Jquery. Not the middle line. The fade and suffix button. Yeah. Calls the interior code with Jquery as the context. I mean, it's an I it's like an immediately invoked function. Right? So you're calling, you're calling you're passing jQuery in to be consumed From the function itself and only in the function itself.
Wes Bos
Pretty close. But why do we do this?
Guest 4
So that you can modify jQuery and then Have, like, some kind of, like, attack on it, I guess, or, like so that jQuery is, like, specific to the context that you're calling the function in? I I think that's pretty close. So That's the Yeah. They're really
Scott Tolinski
hand, actually. Yeah. Is yes.
Wes Bos
Back in the day, we had the dollar sign Would be, uh-oh, cops coming.
Wes Bos
They heard that tights meant, hot take. Yeah. I've seen that, At the border border patrol show. They're coming to get the Canadian.
Wes Bos
The reason we did this is because there was multiple libraries Popcorn. That had the global dollar sign variable in jQuery days. Other libraries use the dollar sign. So by passing in the jQuery object, It would then, rename itself as an argument to dollar sign, and then you could use it freely inside of that function without worrying about Some other library that use the dollar sign, so it's no longer a global variable.
Scott Tolinski
Let's get some stickers out here. Yeah.
Scott Tolinski
Oh, it's
Wes Bos
The forgot the first semicolon.
Scott Tolinski
In front of the f e. In front of the f e. Oh, that's
Wes Bos
Wow. That's so that's a joke for people that use semicolons. They used to put the semicolon instead of in front of the iffy because they don't use semicolons. Bizarre way to live your life again.
Scott Tolinski
Alright. What does this code do? That's a good question. What's the purpose of it?
Guest 5
Maybe this is one of those futuristic, APIs that we heard about in the talk.
Wes Bos
It's Zoom 1 for everybody listening on audio.
Guest 5
Zoom 1. I don't know. Maybe they maybe they added this in 2020, like, from the Zoom company. No. Okay. That's good. This is from, what, 10, 15 years ago.
Wes Bos
I don't know. I'm lost. Alright, folks.
Wes Bos
What is it?
Scott Tolinski
Anybody know? Enforces
Wes Bos
layout.
Wes Bos
NIEED. Wow.
Wes Bos
Mister Moo Tools himself.
Wes Bos
What? That's coming.
Wes Bos
You need to under oh, because yeah. That's the next one, k. Next one. Next one. Lana.
Scott Tolinski
Why did we need
Wes Bos
the PNG fix? Why did we need PNG fix?
Guest 6
I'm a be honest.
Guest 6
15 years ago, I was, like, 10. So
Scott Tolinski
but I have seen this before
Guest 6
Working on working on IE, compatibility for stuff in, like, 2017.
Wes Bos
So Wow.
Guest 6
But I would just don't remember. It's Probably, like, it's I see filter, so it probably has to do with transparencies.
Scott Tolinski
Oh. Nailed it. Yes. So this was to y'all go clap. Yeah. That's how Good deduction.
Wes Bos
Today's youth.
Wes Bos
Yeah.
Wes Bos
So this, the PNG fix was a little library you could add, and IE 6 did not support transparent PNGs.
Wes Bos
So they had a white background.
Wes Bos
So by adding a 1 pixel by 1 pixel blank GIF And applying this bizarre set of, postcode and pasted it. I don't understand how it worked, but it it made transparent PNGs have a transparent background in IE 6.
Wes Bos
Alright. On up.
Scott Tolinski
Nicholas, what does this code do? Oh, jeez.
Guest 7
Alright. Alright. Let's see.
Wes Bos
Swap image. Yeah. This is probably the hardest one. Sorry, Nicholas.
Guest 7
Looks like it's affecting, the source object of the or the source for the image. Yeah. We got an array.
Wes Bos
The name of this one was also very a very popular function name you would see on ViewSource a lot. I'll make a I'll make a guess. Yes. But I'm I'm I'm guessing this is wrong. Is this something having to do with maybe, like, lazy loading and having a preview image before and then changing to a different image after? Don't think we we thought too much about lazy loading then. Yeah. It's not, actually. It doesn't lazy load, but you pretty much have it. Yep. So this was the code that was generated by, stands for macromedia.
Wes Bos
This was the code generated from Dreamweaver Oh, wow. That Before we had hover states in CSS, if you had a button you wanted to change the background on, You literally had to change the source object of an image Yeah. Or the source of a background image. And what that would do is it would it would take a sec. Do you remember the load? And it would have to, like, download, and then you would get the background of that button. And then as you hovered it, it would go pretty pretty wild times. Yeah. Wild times. Yeah.
Wes Bos
Alright.
Scott Tolinski
What is the name of this technique,
Wes Bos
and what's the purpose of this? Do you have any idea? Don't give him a sticker yet, Scott, what was this? I'm just hanging out. I got a another Scott. Sick. Oh, it's up, Scott. Yeah. Loading Oh, mic. Scott. Mike.
Wes Bos
Give him the mic. Oh, the mic?
Scott Tolinski
I thought it was, like, somebody named Mike. No. Wait. Where's Mike? His name's Scott.
Guest 8
Alright. So we're we're we're selecting a list item in the header. The important part is the background
Wes Bos
anchor And the background images and the background anchoring of these 2 selectors.
Wes Bos
Why are we doing it this way?
Guest 8
Alright. The so it's a GIF background.
Wes Bos
GIF. I mean, the guy just died, and on his deathbed Yeah. Yeah. He's a really good Yeah. Okay. I'll give him that.
Guest 8
And that's in the right?
Scott Tolinski
On the left,
Guest 9
We've got it. The same
Guest 8
thing with petting. I've I'm not sure.
Wes Bos
What's this called, folks?
Scott Tolinski
Anyone got the name?
Wes Bos
Did we stump the entire audience?
Scott Tolinski
Sliding doors. Who's that? Sliding doors.
Wes Bos
Yes.
Wes Bos
So sliding doors was before we had background gradients and bat and, rounded corners, you if you wanted to have a button or a link And you wanted for that to, extend much wider, then you would put you would make a very, Very, very long longer than you could possibly ever need button off for the right hand side, and then you would anchor that on the right, And then you would get, like, the end cap of that button and stick it on the right hand or the left hand side, and it would overlap. That's why, like, the the anchor link that was inside of the list item, And that would be called Sliding Doors. So if you had a short link dog, it would be a very small button. If you had a very long dog. Button, it would, it would extend to it. And at a certain point, if you had too long of a button, you'd run out of out of background image because you couldn't repeat it, Yeah. Because it was anchored. Yep.
Scott Tolinski
Man, the things we did before, border radius or drop shadows. Alright. So this one
Wes Bos
is why are we doing the 2nd line? Var that equals this.
Wes Bos
And I should say this is not, like, old. Like, we still do this.
Wes Bos
Sometimes.
Scott Tolinski
Man, I this this is gonna be hard, but,
Guest 10
That's not my real voice, Oh, my brother. Oh, I was gonna say that's a good voice. Oh, yeah. My brother my brother wanted me to use it. He's gonna watch this live stream. I love
Scott Tolinski
I got a hold of it. It is too hard to maintain that that deep voice. You know what I'm saying?
Wes Bos
Yeah. But, that's good. We should get him to do the intro.
Guest 10
So this, What is it doing? I started in 2016, so this should be familiar.
Guest 10
We're not in arrow functions time yet.
Wes Bos
You're you're hot. You're you're getting warmer. Yeah. Yeah. Yeah. You're you're pretty close there with arrow practice. Yeah? Arrow functions? Okay. It's be we wanna make
Guest 10
oh, shoot. There's a confusing that again.
Guest 10
This and that, I remember.
Guest 10
I'm a give a general answer. It's it's to maintain the right this context.
Scott Tolinski
Nailed it.
Scott Tolinski
Exactly.
Scott Tolinski
Nice.
Wes Bos
So, when you create a new function, the this context is rebound to that function. So what do you use now to get away from this? An arrow. An arrow function. Good. Love it.
Wes Bos
Alright. Well, we need more people.
Scott Tolinski
How how How many more we got left so we can 1, 2,
Wes Bos
3. 3.
Wes Bos
3. Alright. 3 more people real quick. Come on down. These ones are easy. Yeah. Alright. Yeah. Yeah. Yeah.
Wes Bos
What do these 3 selectors do? Underscore padding, Star padding and padding 10 p x forward slash 9.
Scott Tolinski
This this is a cruel one. Yes?
Guest 9
Well, the first one is obvious.
Wes Bos
Yeah. 1st one's obvious. Just padding t 10 p x. I
Guest 9
I'm not sure about the second one. I think the third one is for IE.
Guest 9
Yep.
Guest 9
And the last 1, I think, only new browsers will know how to parse. Pretty close. So it's,
Wes Bos
The underscore is IE 6 star, and there's actually a whole list of, like, 10 of them, is, IE 6 and 7, And then the forward slash 9 is 6, 7, and 8. So if you had to, you would likely put different Values in here because it didn't look the same on the same browsers, and you needed to tweak it a little bit here or there. So
Scott Tolinski
hopefully those days. When in doubt, you could probably just answer IE for most of Yeah. Yeah. I think that's fair.
Wes Bos
Oh, this one Yeah.
Wes Bos
Is this one is very tricky. I apologize. I I have asked for this one.
Wes Bos
What does this statement test for?
Scott Tolinski
Regex is a bad time. Yes. Regex is a bad time. Word function dot test,
Wes Bos
array dot sort, empty array dot sort.
Wes Bos
No. No.
Wes Bos
That would be a a very sane guess.
Wes Bos
This one's particularly Should I say it? Does anyone know?
Guest 4
See if sort is yet. If you have sort in the browser. If you have sort in the browser. No.
Wes Bos
It's testing for opera, the browser opera.
Wes Bos
Really?
Scott Tolinski
Yes. It's What? Oh, you're gonna Prentice, you can have that. Who figured that out?
Wes Bos
Who figured that out? And the funny thing is that opera back in the day Had an entire style sheet and JavaScript file that would fix popular websites.
Wes Bos
So people would say, my bank website's broken On Opera. This is before Opera used the engine same as Chrome, and it would they would just fix websites. They would just, like, monkey patch all these websites
Scott Tolinski
Alright, John.
Wes Bos
This is the last one. Why is there a bang inside in front of this function? And this is coming from the original Twitter Bootstrap.
Guest 9
Mhmm. Mhmm.
Guest 9
That one, I have no No idea. I'm sorry. Anyone know?
Wes Bos
Nope. No. It's apparently another way to do an IFFY. Instead of the parentheses, you can just put a bang in front of it, and you can run it again. I wish I had no idea. Yeah. I I
Scott Tolinski
bootstrap.
Scott Tolinski
Beautiful. Thanks, Everybody, thank you. Yeah.
PaymentsHub sponsor ad
Scott Tolinski
Here you go.
Wes Bos
I have tons more stickers. I just can't leave them around, so come hit me up. I'll give you more. Let's talk about one of our sponsors, PaymentsHub.
Wes Bos
They are an easy to use API and SDK that allow developers to create ecommerce websites, Develop in person point of sale applications and launch a fully featured omnichannel payment solutions. They have an API rich product Landscape for partners that are interested in programmatic merchant onboarding and accessing payment transactions through API. So if you're building of course, if you're building, you're accepting money. But if you're building an app that needs other people to accept money or you need to be able to onboard users and and they have to submit their Own banking information. You need to onboard them. All of that stuff. That that sounds pretty complicated. And that payment that's what Payments Hub does. They give you the APIs to do all of that, and it's pretty awesome.
Wes Bos
You wanna check it out at, developer.
Wes Bos
Paymentshub.com Forward slash Syntax and you can see the integration payment processing APIs. They can onboard you in as little as 90 minutes.
Wes Bos
It's pretty sweet. I went through all of their documentation myself. I even sent them, this is funny thing that happens with sponsors. I send them, Like, I I I feel like I know our audience pretty well. So I was like, hey, you should update your your, one of their documentation didn't have fetch in that. I was like, you should show a fetch example. I know our listeners would love that because We talk about that all the time. So it's pretty good SDK. You gotta check it out. Developer.paymentshub.comforward/ syntax. Thank you, Payments Hub, for sponsoring.
Syntax Error segment
Wes Bos
Next section is syntax error. We show each other code with no syntax highlighting, and the other person must figure out what's wrong with it. We were cruel to you, and now we are cruel to each other. Alright.
Scott Tolinski
Wes, what is wrong with this code? This is, this is TypeScript, in case you're wondering.
Scott Tolinski
What's wrong with this code?
Wes Bos
There's 2 no.
Wes Bos
The f's, that's you can do 8 f's because of,
Scott Tolinski
So anyone wondering, you can do 8 f's there because Transparency. Yeah. Transparency and hex. Okay. It's a good little red herring. You
Wes Bos
didn't Initialize your last 2 variables.
Scott Tolinski
No. If I did, no. Those are just Mhmm. No. Those are just declaring the type.
Wes Bos
Let's size and number.
Wes Bos
Who who sees it?
Scott Tolinski
I had to turn syntax highlighting off on this one. I think so. Yes. The Syntax Hiling would have revealed.
Scott Tolinski
Alright. Tell me. Alright. Well, the error is on line number 8.
Scott Tolinski
What's wrong with line number 8? Oh, float is not a type. Yeah.
Wes Bos
Ah.
Scott Tolinski
Alright, Scott. This is itty bitty. No. I'm sorry about that. Okay. I tried to make it a bit harder. Export default. The first thing I'm looking for is, misspelled words, which I'm I'm not particularly
Wes Bos
No. That's not the case in this one. Oh, my gosh.
Scott Tolinski
K. Waiting.
Scott Tolinski
Callback is a callback. It's just being executed.
Scott Tolinski
Objects, status code, headers.
Wes Bos
This is from a Netlify serverless function. Okay.
Wes Bos
Which I don't think that Alright. At all. The,
Scott Tolinski
yeah, the error is on the very last line of the code.
Scott Tolinski
It is a a curly, And we need a, wait. Yeah. We need a we need a parenthesis. Nailed it. Wow.
Wes Bos
Very good. Impressive. Yeah. Thank you, sir.
Wes Bos
Alright. For West. Alright.
Scott Tolinski
This one is is, is Gosh. God, these are too hard. I'm sorry. This one's actually really not hard. The iframe ref Just do line by line. You'll find it. Return. Don't worry. You didn't put a semicolon there. That's Where did I not put a semicolon?
Wes Bos
Everywhere.
Wes Bos
Where? If I.
Wes Bos
Got it. L.hidden eagle.
Wes Bos
You put the arrow inside of the quote of destroy. No. That's that's a string. Oh, yeah. You're right. That's just a console log. Okay. I would I think he used this fancy font with the arrows.
Wes Bos
L that parent node l that parent node dot There's 1 extra curly bracket.
Wes Bos
Oh, don't if the no. No. No. There's not. There's not. I was gonna say there's even curly bracket highlighting on this one.
Wes Bos
Oh, these are this is too hard. Alright.
Scott Tolinski
The the error is on line number 8 once again.
Wes Bos
Okay.
Wes Bos
Oh, there's no car.
Wes Bos
I was skipping over the console log.
Wes Bos
It was because I was like, oh, like, I just when I'm debugging,
Scott Tolinski
I'll skip the console log because it's, like, probably not that. It's the console log. I got it. Alright. So this one I gave you highlighting because it's so tricky. Yeah. You Folks. Well, okay. So some background here. I was gonna go somewhat easy on this. Maybe we should've And Wes was like, I got one that's pretty cruel. And I was like, Okay then. Let's, let's work on this. This is TypeScript.
Scott Tolinski
TypeScript.
Scott Tolinski
I mean, You're doing stuff you probably shouldn't be doing. Right. So you're saying that title is a string of my first post as the type? No. No. You're not. That's the that's your Destructuring. Structuring a default value of
Wes Bos
Man. Okay. God. In the oh oh, the nuts that we can do this Stupid. In in JavaScript. Like, you're like, oh, like, why is the syntax like this? Because people do this. This is stupid. Yeah. I know. It's just not right. Just
Scott Tolinski
not right.
Scott Tolinski
Alright.
Scott Tolinski
So
Wes Bos
Who sees it? You 2, 3, 3 p No. Very good typescriptors.
Scott Tolinski
Very good TypeScriptures. This one's tough to see. Yeah. Should we ask to ask the audience? Alright. Who's got this one? Yeah.
Guest 5
Okay. So the type has to go before the assignment.
Wes Bos
Nailed it. So the, the type right here, It needs to go before the fallback assignment of the structured data.
Wes Bos
That's the key. Okay. Well, like, why would you not just make the type outside that function? Alright. We are going to do audience participation now. You don't To come up this time, you open up your phone. Go to pigeonhole.atforward/sick, and we are going to
Scott Tolinski
J S Or NAES.
Scott Tolinski
So the general premise of this is that we will give you, we'll give you the name of a JavaScript Script library that exists on NPM, or, we'll give you the name of something. Yes. And you have to determine if it's a JavaScript library that exists on NPM. Yeah. Or something else. Else. Or both.
Wes Bos
This is Awesome. Shout out to Pigeonhole. They give it to us for free every time we do it. This is an awesome app that's all built on WebSockets. It's amazing.
Wes Bos
Okay. One zero nine. And everybody live streaming at home, you can you can play along as well. Is, so bcrypt, Is it an offline first crypto wallet built in Python,
Scott Tolinski
or is it a password hashing library for Node
JS or NAS audience participation
Wes Bos
Or both or both.
Scott Tolinski
Alright. And we have get those votes in. Alright. Just about everyone is in.
Scott Tolinski
There's more votes than participants.
Wes Bos
Okay. Well, let's let's We'll just do it from here. How many did you get? Okay. So
Scott Tolinski
8.4% said it's an offline first crypto wallet.
Scott Tolinski
68% of you got this correct. It is a password hashing library for Node. Js.
Scott Tolinski
Okay. Next one.
Wes Bos
Oh, oh, core or right here. We're gonna say reveal.
Scott Tolinski
Oh, reveal.
Scott Tolinski
Voting heads and elbows.
Wes Bos
I have it yeah. 69% said Said it was a password Hassling library from Node. Js. Good job. Good job. Alright. Next one.
Scott Tolinski
Cherry Box. Is this an HTML Canvas utility library
Wes Bos
or a cherry store in Traverse City, Michigan, or both.
Wes Bos
There it there we go. And now it's now we're working. Down. 61 votes. There we go.
Scott Tolinski
Alright. Reveal that sucker. Alright. The answer's coming. Get it in.
Wes Bos
Oh.
Wes Bos
14%.
Scott Tolinski
Oh, I knew it wasn't right. It is an HTML canvas. You still live. Yeah. I think there's a lot of cherry stores in Traverse City, but I don't know if Cherry Box is one of them.
Wes Bos
Tokens.com.
Wes Bos
It is a Web 3 focused
Scott Tolinski
Crypto investment platform, and online auth and permissions control SaaS, or both? Or both. Oh, you can see I'm streaming it live. Yeah. Let's look at this. Yeah. Oh, yeah. You can see them coming in.
Scott Tolinski
Alright.
Scott Tolinski
Let's reveal.
Wes Bos
Oh.
Wes Bos
Only 99 percent of you knew it was a Web 3 focused crypto so we Actually, fooled everyone. Doesn't that sound like a like a Auth0 competitor or something like that? You know? Oh, yeah. I'm using tokens.com.
Wes Bos
Like, sick. You know? It's not
Scott Tolinski
alright. Next one is pachycephalosaurus.
Scott Tolinski
Is this a dinosaur that head butts
Wes Bos
or a package to patch other packages or both? Oh, I'm impressed at this one. Yeah. Me too. Folks, Get those votes in. Some smart folks in this, audience here.
Scott Tolinski
It's getting good. This one's gonna be really close.
Scott Tolinski
Alright. I'm gonna reveal. Get those answers in.
Wes Bos
Correct. It's just a dinosaur that head butts things. It's got a big old Tony played on that, though. Isn't that a good name for a package that would, like, monkey patch? Like, you know, you have, like, a node package. You're like, oh, damn. Like, You have to open the node modules and, like, just edit the code. Smithsonian. Yeah. Better get on there. But, like, if it was you know how, like, Rack Hillman is built by the NFL? Yeah. Wouldn't it funny if it was, like, built by the Smithsonian or, like, a dinosaur museum? Dinosaur museum. So can anyone work at a dinosaur museum? None. None. Wow. That's surprising. Wow. Yeah. None. I would've thought at least 3. Alright.
Scott Tolinski
Next one is Remux.
Wes Bos
Is it a React package to integrate mux videos,
Scott Tolinski
a term for migrating a video container without re encoding the quality,
Wes Bos
or both.
Wes Bos
We can see the numbers streaming in as you're getting it wrong.
Scott Tolinski
Alright. Get those votes in.
Scott Tolinski
Alright.
Scott Tolinski
Reveal time.
Wes Bos
Yeah.
Wes Bos
That's a term for re encoding video. 65% of you knew the term for re encoding. That seems like it could be a library. That was a that was one where I just made it up. Was like, Remax, that's gotta be a package. Yeah. It's not. I don't think so. They're combining words. There you go.
Scott Tolinski
Alright. Next one, Figgy Pudding.
Scott Tolinski
Is this a JS library for managing and composing cascading options objects
Wes Bos
or an actual dense moist Cake
Scott Tolinski
or both.
Scott Tolinski
Everybody loves Figgy Pudding. I mean, I I don't has anybody seen Figgy Pudding? Who's seen Figgy Pudding? I've never even seen one. Know it from the song. What's Figgy Pudding? Well, it's in that song. What song? That Christmas song. Bring out some Figgy Pudding. Oh, yeah.
Wes Bos
I know. I've never seen a Figgy Pudding. What do we got here? It's Bo.
Wes Bos
27%.
Wes Bos
Didn't know it was Bo.
Wes Bos
What about it? For a library.
Scott Tolinski
That's a great name. And why do you cascading
Wes Bos
Amazing. It actually had, like, a 1000000 downloads too. I'd never heard of this thing. Yeah. Amazing that, like, we're professionals, And this is the name of stuff that we're we're using to, like like, we we're running banks.
Scott Tolinski
And, like, this is the stuff Oh, Reese. Hold on. I just need to install Figgy Pudding, and you'll be right on that.
Wes Bos
Squamish.
Wes Bos
Is it a small town logging town in British Columbia, Canada?
Scott Tolinski
And Nginx package for adding h t t 3 pre h t t p three compression
Wes Bos
or both.
Scott Tolinski
That's a lot of words to say. Alright. This is really fun to see the I love seeing them stream. Stream in? Stream in. Yeah. Sockets, man. Alrighty.
Scott Tolinski
Gonna reveal,
Wes Bos
it's just a small block. 50% of you, it is a small I'm not sure how small it is, but it's in a town in British Columbia. Think you can assume if there's Canadian towns in this small. Is squamish.
Scott Tolinski
Alright. Hajime, Is this a full service, self hosted GraphQL database backed by Redis
Wes Bos
or a short winged swan Or both?
Scott Tolinski
Hajime.
Wes Bos
Oh, man. This one's Oh. People are unsure. People are unsure. Yes, ma'am. We should people to change their votes.
Wes Bos
There's an option, though. Oh, that's an option? Yeah. Because then you could see it, like, go up and down. Okay. Reveal time. Reveal. What do we got? That's Just A Swan. That's Just A Swan.
Wes Bos
Although that that's a great name It's a great name. For a a package. You got a logo built in. Yeah.
Wes Bos
It's true. Short winged swan.
Wes Bos
Last 1 we have here, Treeact. Is it a vanilla DOM rerendering engine for existing content heavily inspired by React? Is it a hashtag
Scott Tolinski
for the controversial straight cut logging operation in Ontario or both? Get those votes in.
Scott Tolinski
Get those votes in.
Scott Tolinski
Reveal time. See it.
Wes Bos
Boom.
Wes Bos
43% of you got it right. It is a vanilla DOM rerendering engine for existing content heavily inspired by React. Yes. It is, and it is not.
Wes Bos
That is not a hashtag for controversial straight cut logging operation in Toronto.
Wes Bos
26 23.6% of you.
Wes Bos
Let's talk about one of our sponsors, FreshBooks.
FreshBooks sponsor ad
Wes Bos
FreshBooks is the cloud accounting solution for your small business. You're gonna get paid faster. You're gonna spend less time doing, doing your books. They are the easy to use accounting and bookkeeping software that you need to check out.
Wes Bos
Go to freshbooks.comforward/syntax, and that's gonna give you a 30 day, unrestricted free trial. You don't even need a credit card to sign up. Thank you, FreshBooks, for sponsoring.
Wes Bos
Alright. Is that it? That's it. Alright. Let's move on to the next section.
Audience Q&A
Wes Bos
Q and a. If you've got q's no. You gotta you gotta display the q's to me, Scott. Whoops. If you got a question for us, feel free to come line up.
Wes Bos
You want our thoughts on anything, or, you want us to try to explain something
Guest 5
Podcast. Questions about the questions about how Canada is. How long you should smoke your meats. Yeah. Smoking meats. So, Wes, You said you, are very much in favor of 4 loops Yeah. Versus using, like, array methods. I I heavily use array methods, but there's sometimes where People make array methods harder than they have to be or a 4 loop would save your bit. But sorry. Go ahead. So my brother just Start as a junior engineer. Yeah. And he went through your JavaScript 30 course. Yeah. And he was using dot 4 h for everything. Yeah. And I had to explain him explain to him about, like, How it doesn't work with a a weight and Yes. Or
Wes Bos
and so yeah. Then I heard you comment about, oh, yeah. Poor loops, and I'm like, wait. Am I just saying the wrong stuff all the time? Yeah. So I will reach for a for each or a map or whatever, by default when it's an array. But when it comes time to doing a sync away or, having to modify a variable or an object that is outside of the loop or or anything like That, then I I'm I'm a big fan of for loops. I I'm not like, oh, for loops for for life. I love everything, but, I think people say, no. For loops are bad. You know? Use use array methods. They're considered harmful. They're considered harmful. You know? Like, I saw a talk on it, So thank you. Alright. We got a question here.
Wes Bos
What web tech do you think is overhyped right now, And which is underhyped? Oh.
Wes Bos
Oh. Interesting.
Wes Bos
Over. Alright. That's a that's a jerk thing to say. Yeah. Because, like, people work hard on this stuff, and what I've learned in my career is that there are so many different use cases for something. And when I don't like something, it's probably because I don't understand Why somebody needs something or, like, somebody clearly has a problem, and they say this is how I would like to solve it or within our company. So,
Scott Tolinski
I agree. Yeah. Yeah. I don't that's kind of a non answer. Which one's underhyped? So we can talk about that. I I like, here's a library that not a pop a lot of people know about is, Mercurius is a Graph QL Node. Js library, like an alternative to Apollo or something like that. It's, done by Matteo, who does all sorts of Node. Js stuff, and it's Awesome. It rules. It has data loader built in. It has caching built in. Yeah. It works with Redis really well. It's Fantastic, and it works actually with Cogent really well too.
Scott Tolinski
So, yeah. Beautiful. We're curious. Underhyped. Underhyped.
Wes Bos
Can we get a live break dancing performance?
Scott Tolinski
May I well, I got a microphone on here, and I'm gonna I'm gonna ruin the microphone.
Wes Bos
So no, I guess.
Wes Bos
Do it. Do a little
Scott Tolinski
Woah. Woah.
Wes Bos
Folks at home, the glasses This went flying. Woo.
Scott Tolinski
Wow. No really way. I can't believe you did that. And That's unreal.
Scott Tolinski
I was trying to think, what can I do without ruining the microphone?
Wes Bos
I could do that too, But nobody asked me.
Wes Bos
Would you rather have to switch to Dvorak or have to use a MacBook butterfly keyboard? Oh, that's the one where the crumb gets underneath, and it's you throw it out. You know what I did? I switched I switched my phone to Dvorak
Scott Tolinski
And Not My Computer, and that was a terrible outcome. Yeah.
Wes Bos
I would I would love to switch to a different keyboard layout at some point, But, like, I just don't got the time for that. Ain't got the time. Yeah. So maybe at one point, I'll, I'll do it. So what would I rather do? I I would rather use the MacBook butterfly keyboard. And you just don't eat nature valleys around it, and you're good. Yeah. No nature valley. That's a good rule overall. Yeah. Can you name all 13 provinces and territories in Canada? Scott, can you name them all? The northeast territories?
Scott Tolinski
Northwest Territories? Is that it? Northwest Territories. Northwest Territories. Okay. Nunavut.
Wes Bos
Ontario. Yukon. No. Let's let's do it in order. Otherwise, we're There's a order? Yeah. Well, you gotta go left to right.
Wes Bos
Like, BC.
Wes Bos
Anybody from BC? Yeah. Oh.
Scott Tolinski
Quebec.
Wes Bos
No. Totally.
Wes Bos
BC, Alberta, Manitoba.
Wes Bos
Skipped 1. I skipped 1? Oh, Saskatchewan. My wife is from Saskatchewan.
Wes Bos
Oh my gosh. Yeah.
Wes Bos
Ontario, Quebec, Newfoundland.
Wes Bos
Oh my gosh. I don't know all the provinces. Can you name all the 50 states? I got all the territories, though. Can I name on it? Maybe. Sure. Nova Scotia, PEI.
Wes Bos
What am what am I missing? Yukon. You no. I said Yukon. Brunswick. New Brunswick. Oh, yeah. Yeah. Yeah. That's for me on the movie right now. New Brunswick. Yeah. Good. Good. Good. Alright. Next 1.
Wes Bos
Favorite Syntax FM episode. What's your favorite one to do?
Scott Tolinski
My favorite episode? I don't know. I liked,
Wes Bos
I liked the how to learn things fast one that I had planned a lot. That was a good one. I I really like the fundamentals episodes that we've done, TypeScript fundamentals, CSS fundamentals, JavaScript fundamentals. Those are, like, good, like, go back to listen to those. Then we had the Wordle guy on Oh, yeah. And, like, he emailed us, which was really, really funny.
Scott Tolinski
And yeah. And we were muting mortal on Yeah. We he couldn't get he couldn't reach us because we'd both had Wordle muted on Twitter.
Wes Bos
That was a cool one. Yeah. Lot these ones are really fun in person.
Wes Bos
Lots of good ones. Some of the upcoming, like, interview ones are are really good. You get some really good insights from from folks. And and we also just talk shop about, like, Keyboards and phones and and whatnot. So it's good stuff.
Scott Tolinski
Ryan asked, how did you first meet, and what was your 1st collab? Wes and I met doing a, mastermind group Yeah. With a a handful of people that we were just talking, basically, ripping apart each other's
Wes Bos
Businesses. And I think one of the sessions we had was make Scott cry about his landing page. Yeah. Because we would meet, like, once every 2 weeks And just be like, hey. Like, what are you doing for email and, like, landing pages and, like, what about, like, streaming bandwidth and random stuff? Because we both make tutorials, and we were with Joel from Egghead, and, it was good. And then, like, when we like, we kinda, like, ran that out after a year and a half, and then we're like I was like, hey, Scott. Like, We should do a podcast. And, actually, how I met is that Scott released a course Oh, yeah. Called React for Beginners Yes. I did. On YouTube, which is the name of a course that I already had. And I I emailed him. I was like like, hey, mean guy. I was like, who are you? What are you doing? Like, can you not do that? Yeah. And he's like, oh, sorry sorry, man. And, like, that was really cool because he could have been a jerk. I gotta watch my language here. Yep.
Wes Bos
And, he could have been a jerk, and then we would never have started Syntax. So Life lesson. Don't be a jerk. Don't be a jerk. Don't be a jerk.
Scott Tolinski
Yeah.
Wes Bos
Fitter what's your favorite Trader Joe's snack? Mochi mochi bits. They're, like, crunchy Is that a mochi? Short winged swan?
Scott Tolinski
No. It's not a short wing. It's rice. They're like little rice bits, and they're crunchy, and they're super salty. Mhmm. And honestly, I'm I'm a little salty because they didn't have them right before I left. That's like my airplane snack, and my wife went to Trader Joe's. She's like, no mochi beds.
Wes Bos
My favorite we don't have Trader Joe's in Canada, so we just get the, the peanut butter cups when we go and, like, hot sauces and and stuff like that. So not a whole lot. Oh my gosh. There's Thousands of questions. Do I have stickers? Yes.
Wes Bos
Would you hire an American or a European developer? European. You guys don't use metric, and it drives you crazy. Oh, man. It was 85 degrees the other day. What does that mean? You were just up here. Plus, it's like, it's a hot 20 degrees out here. I'm like, what are you talking about? Yeah. No. Can't Can't do it. Use the metric system.
Wes Bos
Yeah.
Wes Bos
Probably you probably don't use semicolons either, do you?
Scott Tolinski
I don't.
Scott Tolinski
Yes. I don't.
Wes Bos
What do we got? Let's see here.
Wes Bos
Brisket or pork, what's your take? Pork.
Scott Tolinski
Brisket. Really? Pigs are really smart. Pigs are smart. They're very smart. So oh.
Wes Bos
Oh, so it's like a it's deeper than just taste. It's deeper than taste. Yes.
Wes Bos
And cows aren't smart? You ever seen a happy cow? You ever seen that? Where these farmers put these, like, big brushes on a on a spinner, And the cows just go, like Hold on. Let me see. I don't go Happy cows.
Scott Tolinski
Isn't there, like, a cheese company called Happy Cow? Cows make cheese. Yeah.
Wes Bos
And so, like, they have these things, and the cows just freaking love it. They're like, oh, itches.
Wes Bos
So that makes him smart. Yeah. That makes the cow smart. What cow what kinda smart thing doesn't look a good itch? Okay. Yeah. Oh my gosh. So if like, after today, go home. YouTube, Cows that love itches or something like that. I'm not gonna do that. It's great.
Wes Bos
What the Flexbox? Thank you. Words.
Wes Bos
Thank you.
Wes Bos
Why will RN never be as fast as native apps? Ask the folks that were just talking about React Native. I don't know a whole bunch about it. Oh, somebody's asked about BigInt. Let's see. What would you approach validating a product idea For building a small SaaS applications, talk to people. Talk to people. Yeah. You gotta you gotta see what people are struggling with. That's That's the big thing. Right? You gotta figure out what people are frustrated with, and then just put something out and see if you get traction with it. That's kinda what I did with my videos at the first 1st get go is I just put a couple blog posts out there, a couple smaller videos, and eventually, one of them's gonna land. And that's the one that you gotta sort of take it and run with. You you you can figure it out from there.
Scott Tolinski
Yeah. And, typically, if you're having, like, problems and you're solving problems that you are having, You know, maybe other people are having those problems too, and that's a good place to start. Last question here. Henri.
Scott Tolinski
Henri.
Guest 9
What are 2 podcasters listening to podcast wise.
Wes Bos
Oh, Scott likes sick pics of podcast, like, every podcast.
Wes Bos
Yeah.
Scott Tolinski
What are we listening to? I listen to, like, 18 hockey podcasts, so, I don't know why so many. They all say the same thing over and over again. I've been I've been really liking the Steve o podcast. Oh, Steve o. Yeah. Which yeah. The from Jackass.
Wes Bos
Yeah. And so he has a van With, all the recording gear in it. And he drives around and meets people, and he just, like, interviews, like, a lot of these old, like, skater types and, I have some really cool stories.
Wes Bos
Good, and he's always kinda dishing on some stuff that they you know, risky stuff. Yeah. Yeah. Like, he asked questions like, oh, I can't believe he asked that. So The Steve O podcast. I think it's called the Steve O Wild Ride. I've been super into that one lately. Yeah.
Wes Bos
But that is it. I think we're out of time here. Should we wrap this up? Oh, wow. I did. I did. Yeah. That's it. We just did it. Yeah. Wow. Thank you, everybody, for tuning in. That was awesome.
Wes Bos
I got lots of Stickers later. Come say hi, and I'll give you a pack.
Scott Tolinski
Thank you. Yeah.
Scott Tolinski
Head on over to Syntax dot f m for a full archive of all of our shows.
Scott Tolinski
And don't forget to subscribe in your podcast player Or drop a review if you like this show.