Whiskey Web and Whatnot

A whiskey fueled fireside chat with your favorite web developers.

Listen/Watch

62: Javascript Games, WTF JS, and a Visit to Phoenix


Show Notes

It’s not a normal day at the office. Robbie and his family are in Phoenix and the Whiskey Web and Whatnot hosts got together to play a losing game of golf and sip margaritas followed by whiskey.

In this episode, Chuck and Robbie guess whether things are Javascript packages or grocery items in a game called “Is it a JS package?”, test their knowledge of tricky Javascript syntax from WTF JS, and talk about Robbie’s experience visiting Chuck in Phoenix.

Key Takeaways

  • [00:57] - A whiskey review - Joseph Magnus Bourbon.
  • [04:20] - Chuck and Robbie play a game called “Is it a JS package?”
  • [17:37] - Chuck and Robbie play WTF JS.
  • [23:58] - Chuck and Robbie whatnot about their golf game and Arizona.

Quotes

[19:57] - “There is a site called JSFuck, and it basically shows you a bunch of examples of how to program things out using three characters.” ~ Chuck Carpenter

[20:24] - “Not many programmers know about labels in JavaScript. They are kind of interesting.” ~ Chuck Carpenter

Links

Connect with our hosts

Subscribe and stay in touch

Top-Tier, Full-Stack Software Consultants

This show is brought to you by Ship Shape. Ship Shape’s software consultants solve complex software and app development problems with top-tier coding expertise, superior service, and speed. In a sea of choices, our senior-level development crew rises above the rest by delivering the best solutions for fintech, cybersecurity, and other fast-growing industries. Check us out at shipshape.io.

--- Send in a voice message: https://podcasters.spotify.com/pod/show/whiskey-web-and-whatnot/message

Transcript

Robbie Wagner: [00:10] What's going on, everybody? Welcome to Whiskey Web and Whatnot live edition from Phoenix, Arizona, in the conference room, where the current temperature is 73.7.

Chuck Carpenter: [00:22] The point seven matters because if you were just like point one or point two, you'd probably be chilly.

Robbie Wagner: [00:28] Yeah. I'm point four degrees too warm right now, but that's okay.

Chuck Carpenter: [00:33] Yeah. We can dial it in.

Robbie Wagner: [00:34] Yeah. If you didn't know, I'm Robbie, and that's Chuck.

Chuck Carpenter: [00:38] If this is your first episode, I'm going to apologize upfront.

Robbie Wagner: [00:41] Yeah. We are out of time for this episode. It's going to be short. And we had.

Chuck Carpenter: [00:45] Thanks for listening.

Robbie Wagner: [00:47] We had a couple of margaritas beforehand, so you know it goes where it goes.

Chuck Carpenter: [00:51] Yeah. Turns out doing this in person ill-advised.

Robbie Wagner: [00:55] Yeah, that's okay. Let's start with the whiskey. So we make sure we get that in.

Chuck Carpenter: [00:59] Perfect. That's what most people care about. Joseph Magnus. It is triple-cask finished. It is 100 proof, so it's essentially bottled and bond batch number 218, bottle 176. They won't tell us about the mash bill. Apparently, it's very secret. Thank you, Joseph. But it is finished in sherry and Cognac casts. Cognac.

Robbie Wagner: [01:21] Cognac.

Chuck Carpenter: [01:22] Cognac. Cognac.

Robbie Wagner: [01:24] So yeah, cognac.

Chuck Carpenter: [01:25] Cognac. That's what I said. When Kentucky, we call it cognac. I don't even know why you use that stuff. I think it's French.

Robbie Wagner: [01:32] That's what Hennessy is, right?

Chuck Carpenter: [01:34] Yeah.

Robbie Wagner: [01:35] See, I know a thing.

Chuck Carpenter: [01:38] Pour that one. Has a sweet smell to it. I definitely get the whole.

Robbie Wagner: [01:44] Do I fill this cup?

Chuck Carpenter: [01:49] If it happens to be the video clip, you should. It's a large water glass because we can't afford two whiskey glasses.

Robbie Wagner: [01:56] Not in the same location.

Chuck Carpenter: [01:57] No, it's very difficult. So getting some sweetness.

Robbie Wagner: [02:02] Yeah. It smells like strawberry. Maybe that's the water I had in it before.

Chuck Carpenter: [02:09] It should be very accurate tasting. It's pretty mild.

Robbie Wagner: [02:14] No, I think it does taste a little bit like strawberry. Like the tiniest amount.

Chuck Carpenter: [02:18] I don't know.

Robbie Wagner: [02:19] You don't get any of that.

Chuck Carpenter: [02:21] I feel like it's a stretch if I say yes now, so I'm not sure. But I do get a little bit of fruitiness, maybe more like a strawberry jam. Kind of.

Robbie Wagner: [02:29] Yeah.

Chuck Carpenter: [02:29] Some sweet, something like that. Yeah. Okay. I could dig that.

Robbie Wagner: [02:32] Yeah.

Chuck Carpenter: [02:32] I'll get on that. I also feel like a little I don't know why I always default to, like, more bittery rinds, but like a lemon rind a little bit. Not lemon. Sorry. Lime rind.

Robbie Wagner: [02:45] You think that's the margarita left from lunch?

Chuck Carpenter: [02:50] Could be that. It has a little bit of, like, syrupiness in the middle, and then the finish is a little weird, though. I'm getting a leathery kind of finish, almost like a young. It's supposed to be a twelve year, maybe.

Robbie Wagner: [03:01] Supposedly.

Chuck Carpenter: [03:02] It doesn't feel like a twelve year in that sense.

Robbie Wagner: [03:05] Yeah.

Chuck Carpenter: [03:05] The finish does feel young, Yeah.

Robbie Wagner: [03:06] But also, yeah. It has a little bit of pepper. Like not black pepper, maybe like a white pepper, or it's like not that peppery. A little different than just grinding black pepper, but something similar.

Chuck Carpenter: [03:20] I think our palates are becoming more sophisticated. Sophisticated, yeah. Have another, Mr. Carpenter.

Robbie Wagner: [03:26] We'll be able to pronounce cognac here soon, so yeah.

Chuck Carpenter: [03:32] Interesting. I think it's interesting. Not bad. I don't know if I love it. I wouldn't say I dislike it. It's okay. Actually, I think this could do with maybe a couple of drops of water or even an ice cube.

Robbie Wagner: [03:42] Yeah, I think this has a lot of potential.

Chuck Carpenter: [03:45] Yeah.

Robbie Wagner: [03:45] I don't know what the correct amount of water or ice might be, but I'm tasting a lot of things that I think are on the right track to where I'm going to say this is a 6.5.

Chuck Carpenter: [03:56] Nice. Oh, nice. I was vacillating in the five to six range. So, like above average, but not amazing, has potential. Like, maybe if I tried it again, it opens up a little bit, or in one of these other ways, it might bump up for me. But me, I'm more I'm going to go five five. Since we're going to do these taps.

Robbie Wagner: [04:13] Well, just even at six.

Chuck Carpenter: [04:15] Six.

Chuck Carpenter: [04:15] Yeah, six. We can agree on six.

Robbie Wagner: [04:18] Cool.

Chuck Carpenter: [04:19] All right.

Robbie Wagner: [04:20] So we have some very scientific and technical topics for today. If I can find my notes here. Let's see. So we're playing a game today called is it a JS package? And if so, what does it do? And we're basically using lots of grocery items here. The first one is avocado. Okay, let's take a guess. Is it a JavaScript package?

Chuck Carpenter: [04:45] Yes.

Robbie Wagner: [04:45] I'm going to say yes.

Chuck Carpenter: [04:46] Avocado is so. So are we just looking on Npm.org?

Robbie Wagner: [04:50] Yeah. Don't look yet, though. Like, decide what it does.

Chuck Carpenter: [04:53] Okay. Right. Makes bread delicious. Let's see here.

Robbie Wagner: [04:58] Yes, it's probably like a companion package to, like, Toast JS to do something. So you get avocado toast. That's my guess.

Chuck Carpenter: [05:06] Yeah, that's clever. Depends on how old it is, but let's see. Yeah. Okay, let's check. Wait, I'm checking. We don't want your keyboard types.

Robbie Wagner: [05:15] Okay.

Chuck Carpenter: [05:15] What if you can't spell Avocado? Oh, okay. So there's a few, there's a vector.

Robbie Wagner: [05:22] Is there one that's dot JS, though? Like, do Avocado.js just in Google, see what it gives you.

Chuck Carpenter: [05:29] Yeah, it's the same thing. Okay. It's not really dot JS, though, unfortunately, but it is a command line tool that optimizes Android XML files. That sounds terrible for us. Oh, wait, here we go. There is an Avocado. JS It's a 2020 package, too, which I feel like is a little more in line programming JavaScript in a selfish environment. That's another one I came across. This one has no description.

Robbie Wagner: [05:55] I don't know, enough time on that one.

Chuck Carpenter: [05:56] Yeah, sorry.

Robbie Wagner: [05:58] Interesting.

Chuck Carpenter: [05:58] It wasn't good enough for us.

Robbie Wagner: [06:00] All right, the next Pepper.

Chuck Carpenter: [06:03] Yeah, I mean, that's generic enough. That's got to be a package.

Robbie Wagner: [06:07] I'll say yes too.

Chuck Carpenter: [06:07] You can go, like, spicy peppers or pepper grinds and all that stuff. So it's some sort of seasoning or whatever to something else. So what would it be to?

Robbie Wagner: [06:19] I would say it's going to be like a very small React type of thing. Like pepper in a little reactivity into your.

Chuck Carpenter: [06:28] You're like Pepper UI library or some component library, something like that?

Robbie Wagner: [06:31] Yeah, small bits that you can pepper into your code. That's what I'm guessing.

Chuck Carpenter: [06:35] Yeah. Pepper JS. Pepper applications as native client. Wait a minute. Okay. Pepper is a JavaScript library that enables the compilation of native pepper applications into JavaScript using Emscripten. Never heard of most of these things, but Emscripten but it allows you to use Pepper components and compile them to JavaScript, so. All right.

Robbie Wagner: [07:03] Interesting.

Chuck Carpenter: [07:04] Somebody.

Robbie Wagner: [07:06] These hasn't been that fun yet.

Chuck Carpenter: [07:08] Sorry that you were expecting so much more.

Robbie Wagner: [07:10] Yeah. How about bread?

Chuck Carpenter: [07:13] Yeah. Is there a sandwich library or something like that?

Robbie Wagner: [07:16] Well, that's later in the list here. We'll see if sandwich is one.

Chuck Carpenter: [07:19] If not, we should create sandwich.

Robbie Wagner: [07:22] They will use bread and Ham JS to make an application.

Chuck Carpenter: [07:27] Ham JS. Almost sounds like ham jam or something.

Robbie Wagner: [07:31] Yeah, I don't know. Yeah, I actually already saw the bread one.

Chuck Carpenter: [07:35] So you're a cheater.

Robbie Wagner: [07:36] Well, that was the first one I looked up when I was starting writing these. What do you think it does? Or did you look it up?

Chuck Carpenter: [07:44] Right? It's too late. Help developers who want to include animations or some interaction. How does canvas become bread?

Robbie Wagner: [07:53] I don't know.

Chuck Carpenter: [07:54] Yeah.

Robbie Wagner: [07:55] All right, let's just keep going through these. Butter.

Chuck Carpenter: [07:57] Yes, because I just saw a thing. A quick start guide of bread butter. You know, bread and butter. Like, what's your bread and butter? Javascript.

Robbie Wagner: [08:03] Okay, so they actually made it two together.

Chuck Carpenter: [08:06] All right.

Robbie Wagner: [08:06] Did you see what it does?

Chuck Carpenter: [08:08] I'll Google it now.

Robbie Wagner: [08:08] Well, now I'm going to say no, actually. I don't know. I don't know what butter does.

Chuck Carpenter: [08:14] Makes things delicious.

Robbie Wagner: [08:15] Yes.

Chuck Carpenter: [08:16] First of all, smooth momentum scrolling effects.

Robbie Wagner: [08:19] Smooth like butter.

Chuck Carpenter: [08:20] I like that.

Robbie Wagner: [08:21] There you go. There you go.

Chuck Carpenter: [08:22] This is the best one so far.

Robbie Wagner: [08:23] Yeah. Bread animations with smooth scrolling butter. That's actually really good. I like that.

Chuck Carpenter: [08:29] Take a canvas, define a filter for which pixels get sorted and which don't. Now that wasn't very sexy, but smooth like butter animations. That.

Robbie Wagner: [08:37] All right.

Chuck Carpenter: [08:38] That tracks for me.

Robbie Wagner: [08:39] Cool. All right. Scone.js. It probably is something that like goes with CoffeeScript, would be my guess. If it exists.

Chuck Carpenter: [08:47] Yeah, I was about to say that because I feel like scones have kind of gone out of favor these days. And so if there's a scone library, it's older. It's like a jQuery plugin or something.

Robbie Wagner: [08:57] Yeah.

Chuck Carpenter: [08:58] Okay.

Robbie Wagner: [08:58] jQuery plugin for CoffeeScript.

Chuck Carpenter: [09:00] Yeah, let's see. Scone JS common examples. That's not good. Scone package. Health analysis. Okay. Makes developing note apps that use CoffeeScript and Stylus easier. Stylus, I forgot about that. In merging Coffee and Stylus commands.

Robbie Wagner: [09:16] When Stylus was cool, scones were cool too.

Chuck Carpenter: [09:18] Yeah.

Robbie Wagner: [09:19] It's been a little while.

Chuck Carpenter: [09:20] Bad rap, but.

Robbie Wagner: [09:22] They're tasty, depending on the flavor. All right. Soup JS.

Chuck Carpenter: [09:28] Yeah, but again, I feel like it's an older thing. Like, I don't know, you know, like something about organizing your JS, so it's not like alphabet soup or something. I don't know. That's what I think.

Robbie Wagner: [09:41] I got nothing on what it might do. Let's see if it's a thing.

Chuck Carpenter: [09:46] Open source call flutter using Twilio. That's not cool. Oh, here's from 2016. Stream-based state management for React built on RxJS. Okay, it's from like six years ago.

Robbie Wagner: [09:59] But it would not have been whatever thought of. If it's, I guess it's like pouring soup, stream-based.

Chuck Carpenter: [10:05] Beautiful Soup in Python. See, that's kind of what, okay, web parser in JavaScript like Beautiful Soup in Python. Somebody's like asking about a thing. I feel like that package from forever ago is what was making me think about. So far, all these are things.

Robbie Wagner: [10:17] Yeah, I think they all will be because they're all pretty generic.

Chuck Carpenter: [10:20] Yeah.

Robbie Wagner: [10:20] Alright, Burrito JS.

Chuck Carpenter: [10:24] 100%. Yeah.

Robbie Wagner: [10:24] It will be. I'm hoping that it's like wrap your components in some sort of interactivity layer or thing that combines everything. Like it's wrapping in a tortilla. That's what I'm hoping.

Robbie Wagner: [10:38] Takes Tortilla JS.

Robbie Wagner: [10:39] Yeah, tortilla JS, and refried beans JS.

Chuck Carpenter: [10:45] Hold on here. Okay. Burrito makes it easy to do crazy stuff with JavaScript AST super useful. If you want to roll your own stack.

Robbie Wagner: [10:53] Roll your own. There we go.

Chuck Carpenter: [10:56] Yeah. So somebody's done a thing there. That's neato burrito JavaScript promises and async-await. It's a little bit of an older one too, but yeah. Okay. Clever. Kind of better, right?

Chuck Carpenter: [11:08] Yeah, four more Ham JS.

Chuck Carpenter: [11:11] I mean, yeah.

Robbie Wagner: [11:14] But will it be about Ham or H-A-M?

Chuck Carpenter: [11:18] Can I use? Right, yeah, that's true. Like the acronym or the deli meat. I'm going to go with the deli meat.

Robbie Wagner: [11:25] I'm going to go with the acronym.

Chuck Carpenter: [11:26] If it is the acronym, that is, like, how are you going to go h-a-m in your code?

Robbie Wagner: [11:31] I don't know.

Chuck Carpenter: [11:32] I mean, for some people, that would be tabs versus spaces or no. Semicolons.

Robbie Wagner: [11:37] Maybe it like tree shakes really hard.

Chuck Carpenter: [11:41] Hard as a yeah. So you don't think that can you use ham JS and pineapple JS on your pizza?

Robbie Wagner: [11:47] OOH on pizza JS, I don't know. I think pizza JS is for MySQL. Dumb idea.

Chuck Carpenter: [11:54] From 2013. Ham is another alt JS language similar to CoffeeScript. Ham is different that it's written as a PEG. I don't know what that means, but somebody was really smart ten years ago, I guess.

Robbie Wagner: [12:08] Ham script.

Chuck Carpenter: [12:09] Ham script. Coffee Script. It doesn't have the same kind of.

Robbie Wagner: [12:12] Like no, like the play on Java and coffee.

Chuck Carpenter: [12:16] Yeah. Right. Ham sounds straightforward. What if I go capital H-A-M?

Robbie Wagner: [12:23] Is a Google search going to be case-sensitive? Probably not, no.

Chuck Carpenter: [12:27] But it's okay.

Robbie Wagner: [12:28] All right. Steak JS. Allows you to make rare, really good code interactions. I don't know.

Chuck Carpenter: [12:40] You're reaching. Yeah like.

Robbie Wagner: [12:44] Or it makes your app well done.

Chuck Carpenter: [12:46] Right. But that's still not really saying what it does. Like what it's, steak. Steak is the meat to your app. Potatoes. And maybe it's like some sort of state management thing. I feel like we keep defaulting to that.

Robbie Wagner: [13:01] I'm going to say a testing library.

Chuck Carpenter: [13:03] Okay. Put a stake in the ground. S-T-EA-K.

Robbie Wagner: [13:05] Yeah, A-K.

Chuck Carpenter: [13:09] Well, first of all, I keep coming up with, like, J's stakes and subs and stuff like that. So it turns out this one's a little tougher.

Robbie Wagner: [13:15] But did you steake.js?

Chuck Carpenter: [13:17] I did, and that's not. Okay, so there's steakes in it. Yeah, somebody tried in 2015 to create a repo about it, but it does nothing. This might be the one that's available.

Robbie Wagner: [13:30] Oh, not a package.

Chuck Carpenter: [13:31] Yeah. I can look in NPM just to make sure. Steak Machine.

Robbie Wagner: [13:37] Steak JS just says steaks the knit.

Chuck Carpenter: [13:41] Steak machine is a simple state machine who like their states medium rare.

Robbie Wagner: [13:46] There you go.

Chuck Carpenter: [13:47] That's about it.

Robbie Wagner: [13:49] All right.

Chuck Carpenter: [13:49] You like it?

Robbie Wagner: [13:50] So basically, there's no steak JS.

Chuck Carpenter: [13:53] Yeah, I'd say it's up for grabbed if anybody is going down that path.

Robbie Wagner:[13:58] Yeah. All right, what do we got next? Sandwich JS. That's definitely one.

Chuck Carpenter: [14:05] That's definitely one. I mean, you can use so many other libraries to make your sandwich still qualifies. Wait, here's the thing. This is my controversial hot take around these things. If I use hot dog JS and bun JS, I mean, is it a sandwich or not? I say yes.

Robbie Wagner: [14:23] I say no.

Chuck Carpenter: [14:24] What, do you just put it on bread instead of a bun? I'll have context around that later.

Robbie Wagner: [14:29] Yeah, no, I think okay, we can go back to it, but yeah, let's do Sandwich JS, I think. I think yes. I think it's, let's see. What will it do? I don't know.

Chuck Carpenter: [14:40] Not much since 2012. Apparently, the NPM package is an Iterator generator for getting ordered combinations of items, which is no longer needed because you have sets or borders. Right?

Robbie Wagner: [14:55] Okay.

Chuck Carpenter: [14:56] It was published ten years ago.

Robbie Wagner: [14:58] Yeah, that was disappointing. All right, last one. Beef JS.

Chuck Carpenter: [15:04] Versus like Steak JS, Beef JS. I'm going to always say yes. Especially anything that's like four letters.

Robbie Wagner: [15:11] Oh, true.

Chuck Carpenter: [15:13] Somebody's going to just jump on that and then the meaty bits of your code. But what does it do? It's like.

Robbie Wagner: [15:19] I think it's going to be for adding event handlers.

Chuck Carpenter: [15:25] Yeah. Okay. I'm going to say it's a math library for note. The Browser Exploitation Framework project. Beefproject.com was the first thing that came up. And then Beefproject/beef is short for the browser exploitation framework. So it's just an acronym for them. It's a pen-testing tool. Okay, well, that makes a little more sense. It's at least logical. There's nobody, like, doing a play on beef so far. Where is it? That's what I want to know. Where is the beef? You wouldn't get that joke in 80s.

Robbie Wagner: [15:59] It's what's for dinner?

Chuck Carpenter: [16:00] Oh, yeah, there's that. But there was like the old ladies in the, I think it was a Wendy's commercial, and they'd be like, where's the beef?

Robbie Wagner: [16:08] I remember. I mean, I probably wasn't around for the original, but I remember that being a thing.

Chuck Carpenter: [16:13] Right. Okay. There you go. That's really all it was, so.

Robbie Wagner: [16:16] All right, so that was not as exciting as I thought it could have been.

Chuck Carpenter: [16:20] I enjoyed it. I'm sorry that your tolerance for humor is much higher or something. So you sent me another random JavaScript thing in it. Oh, yeah. What the f? JavaScript wtf JS?

Robbie Wagner: [16:35] Wtf, JS?

Chuck Carpenter: [16:36] Yeah, that's a GitHub repo.

Robbie Wagner: [16:40] It's Denys Dove. I don't know what this person's name is.

Chuck Carpenter: [16:48] Dovhan. Denys Dovhan. If you go to his profile, it's almost like live coding. I never thought I would be good at that either, but Dnys and then last name Dovhan. Oh, it's from Ukraine.

Robbie Wagner: [17:02] Yeah.

Chuck Carpenter: [17:03] Respect. Best of luck, buddy.

Robbie Wagner: [17:05] Yeah. So, yeah, this is some weird stuff, and not all of it is really that weird, but we're going to just try to look at random ones to see if the other person knows the answer.

Chuck Carpenter: [17:16] I'm going to ask you in Italiano because it is translated into a number of languages.

Robbie Wagner: [17:20] Well, then I definitely won't know the answer.

Chuck Carpenter: [17:23] Beepidy bopity boop.

Robbie Wagner: [17:24] Yeah. Spaghetti.

Chuck Carpenter: [17:29] Pasta. Yeah. All Italian words.

Robbie Wagner: [17:30] Cacio e pepe.

Chuck Carpenter: [17:33] Cacio e pepe. Pizza. You gotta get the T in there.

Robbie Wagner: [17:36] Z-z as in.

Chuck Carpenter: [17:37] T pizza.

Robbie Wagner: [17:39] So anyway, do you want to ask me an actual one?

Chuck Carpenter: [17:42] Yeah, I should pick a random one, hopefully that you didn't see. Okay, let's see here. So yeah, how am I supposed to ask this as a question?

Robbie Wagner: [17:52] I don't know. Like if it's a thing that evaluates to a thing. Like, see if I know what it evaluates to.

Chuck Carpenter: [17:57] Hurray, equity is a monster. It's kind of true, though. Yeah, because it's like truthy to truth. Especially like a bunch of these are double equals and not triple equals. So obviously, your comparison operator is different.

Robbie Wagner: [18:11] You want me to ask you one? You got one?

Chuck Carpenter: [18:13] Sure. I don't know.

Robbie Wagner: [18:15] Let's see.

Chuck Carpenter: [18:17] I'm just answering in my head. It doesn't help if you don't pass any arguments into the number constructor. What is the value?

Robbie Wagner: [18:24] You get zero.

Chuck Carpenter: [18:30] And then if you pass an undefined, you get not a number. Kind of weird, right?

Robbie Wagner: [18:36] That's weird.

Robbie Wagner: [18:36] Yeah. I would have thought anything passed in would be like anything falsely would have given me zero. So I would have thought. So there you go. Let's see. I thought this would be a good one. Well, I'll ask it either way. It's asking, is this multiple inheritances? And it says new class f, extends, parentheses, string, comma array.

Chuck Carpenter: [19:01] Okay.

Robbie Wagner: [19:02] So it's like extends and then parentheses and two things. Is that multiple inheritance?

Chuck Carpenter: [19:08] No.

Robbie Wagner: [19:09] Yeah, it says no because the grouping in the parentheses always returns the last argument. So it's only extending that one thing.

Chuck Carpenter: [19:19] Got you.

Robbie Wagner: [19:20] Just kind of a weird thing.

Chuck Carpenter: [19:22] It is a weird thing. I can't say that I actually knew the answer. I just was making my best guess. I wasn't sure like the last thing.

Robbie Wagner: [19:30] Well, you can't extend two things.

Chuck Carpenter: [19:32] Yeah, exactly.

Robbie Wagner: [19:33] So you would have to have one class that extends another and then a third class that extends the second one to merge them all. Let's see.

Chuck Carpenter: [19:43] What are you doing?

Robbie Wagner: [19:44] Going back to table contents. You should ask me one, but I'm trying to find another one.

Chuck Carpenter: [19:50] Yeah, and it's interesting stuff. So I suggest to the listeners to come and check out this review because there's some funny things it kind of reminds me of. So there's a site called JSFuck, and basically, as you show you a bunch of examples of how to program things out using like three characters, and you can enter in normal functions, and it will turn it into this JSFuck thing. So it's a pretty interesting thing. I'm like, must be too far down or something. These are the questions dots and spreading. I mean kind of know this is an old thing. Not many programmers know about labels in JavaScript. They are kind of interesting.

Robbie Wagner: [20:33] I know nothing about labels in JavaScript. What is the question?

Chuck Carpenter: [20:37] I mean, it's not really a question, I guess, because the labeled statement is used with break or continue statements.

Robbie Wagner: [20:44] Yeah. And like a switch statement where you call it, like what the case name.

Chuck Carpenter: [20:48] Is actually like into a key value where the value is an object. And then in there, though, you're putting rate statements which that's weird.

Robbie Wagner: [21:02] Weird, I'm not familiar with that.

Chuck Carpenter: [21:04]So it's like the example is the value is an object, and then you console log, and it shows the first, and then you do break the name, the label, so that's the key as the label, and you say break this thing, and then it wants to show the next console log.

Robbie Wagner: [21:20] Okay, interesting.

Chuck Carpenter: [21:21] A little peculiar, but you know, it's a thing or ask me something. I guess if you find questions.

Chuck Carpenter: [21:29] Yeah. I have two to ask you here. It's the same question, but. Empty just quotes. Okay. Right dot split quotes. What do you get?

Chuck Carpenter: [21:42] I guess you would just get an empty array.

Robbie Wagner: [21:46] So then if you do empty quotes, dot split empty quotes again but with a space in the empty quotes.

Chuck Carpenter: [21:54] Oh, what do you get? I think you'll get a null in your array.

Robbie Wagner: [21:59] You get apparently an array with just two quotes in it, like an empty string in the array, which is a weird that's very weird. I don't understand how that happens.

Chuck Carpenter: [22:08] Yeah, because how do you find one? You're essentially saying split by space, and there aren't any. Yeah, so that's why I thought maybe null, but yeah, that's very weird.

Robbie Wagner: [22:18] Yeah, let's see, it says this is expected behavior. Its responsibility is to divide the input string every time a separator occurs in that input. When you pass an empty string, it'll never find a separator and thus return that string. So I guess the same would be true if the string were hot dog. He said split on empty string and would just return hot dog. Yeah, I guess I guess, is what they're saying.

Chuck Carpenter: [22:42] Yeah. Interesting. Can arrow functions be a constructor?

Robbie Wagner: [22:48] I'm going to say no, because of this context would get messed up.

Chuck Carpenter: [22:52] Boom. There you go. Yeah, because it's all already unfair there. So that's what makes them appealing. Especially for your components. Arrow function components. Would you love those?

Robbie Wagner: [23:03] Nope. Okay. So it says if you declare a class which extends null, so class, like foo, extends null.

Chuck Carpenter: [23:14] Okay.

Robbie Wagner: [23:15] And then you try to do new foo, like instantiating the class and then do instance of null, what do you get?

Chuck Carpenter: [23:27] That's a tricky one. That's good.

Robbie Wagner: [23:31] It's actually now that I'm reading more about it, it seems like that's been fixed, but it used to be. It would give you an error that says function is not a function.

Chuck Carpenter: [23:42] Oh, yeah. I never would have no. I never would have done that.

Robbie Wagner: [23:45] But they say it's been fixed now, so there shouldn't be a problem with it. So never mind. I didn't read further down.

Chuck Carpenter: [23:52] There's a bunch of math ones in here. You know, I liked the dot JS exercise, and this one is feeling less sexy to me.

Robbie Wagner: [24:01] We can stop and go to whatnot because we don't have a ton of time left here.

Chuck Carpenter: [24:04] I suppose that's true. Anyway, I do still recommend folks check it out. There's some interesting little peculiarities of the language there that even people who have been doing it a while aren't necessarily aware of. An alert from hell. Literally from hell, yeah. So it's just like weird.

Robbie Wagner: [24:26] Hell.js.

Chuck Carpenter: [24:28] It's like an array with numbers six six six in it. And then some other arrays with some crazy string things going on. And then that gets functioned out to six six six. And then it just alerts. So it's basically the right characters to do an alert of six six six.

Robbie Wagner: [24:49] Okay.

Chuck Carpenter: [24:49] Yeah. Alert from hell.

Robbie Wagner: [24:51] That doesn't seem all that crazy.

Chuck Carpenter: [24:53] It's kind of funny.

Robbie Wagner: [24:55] All right, so golfing, we did that.

Chuck Carpenter: [25:01] Not the ones that I've enjoyed in the past. Well, I wanted to play foot golf for quite some time. Still hasn't come to fruition. I've played this golf many times. Enjoyed that. That's an easy one. You carry a cooler of beer around, throw some Frisbees out with chains. Yeah, what's not to like?

Robbie Wagner: [25:18] Do they have courses for that, though?

Chuck Carpenter: [25:20] All over? Yes.

Robbie Wagner: [25:21] Actually, I thought it was just like a few things with chains.

Chuck Carpenter: [25:23] Oh, no, they have like full long courses, like 18 holes.

Robbie Wagner: [25:25] 18. Oh, wow. Okay.

Chuck Carpenter: [25:27] Nine and 18-hole courses. We have a few of them here. I played a lot in Kentucky, like throwing through the woods and cross creeks and crap like that. But yeah, there's a bunch here, oftentimes around bodies of water for whatever reason. They're like, how do we get some free Frisbees?

Robbie Wagner: [25:44] I was going to say, so you lose your Frisbee. You have to buy more.

Chuck Carpenter: [25:46] There you go. They're all in collusion, but yeah. So here we go. Robbie and I yesterday tried real golf, and I mean, it's not as frustrating as I expected it to make me feel. I don't like not being good at sports, so this is just a problem in general, but I accepted that that's what we're going into. Like, this isn't going to be great, and I'm going to lose 34 balls, and I think I lost 33, so it's already under power for my own performance.

Robbie Wagner: [26:15] You couldn't have lost more than 18. Did you use more than one per?

Chuck Carpenter: [26:19] I'm not literally counting.

Robbie Wagner: [26:20] No, I know.

Chuck Carpenter: [26:20] Don't take any of these things into true consideration.

Robbie Wagner: [26:23] But we probably each lost probably, like, twelve to 15 balls. I would say there were probably a few times where I was like, oh, this is an anomaly. I didn't lose a ball on this hole.

Chuck Carpenter: [26:33] Yeah, exactly. And then, of course, I jumped in and out kind of at my whim, especially after, I'd say, the first nine.

Robbie Wagner: [26:39] Yeah.

Chuck Carpenter: [26:39] I'm going to maybe not always drive. I'm always going to putt.

Robbie Wagner: [26:43] Yeah. I decided I was going to always drive regardless of losing balls, so I was, like, probably at least 15 of the 18. I would hit it, and it would go way off to one side. I would lose it. But there were a few where I did pretty well.

Chuck Carpenter: [27:00] Yeah, that's true. I can see that. I think it outperforms me on the golf course, and that's okay. I can live with that.

Robbie Wagner: [27:08] Our putt game was very equal, though.

Chuck Carpenter: [27:09] Yeah, I did get the one putt-in-one.

Robbie Wagner: [27:12] That's true.

Chuck Carpenter: [27:13] And I got, like, two drives that went kind of straight, but I never got to finish a whole hole. And you obviously did. That wouldn't be obvious to anyone else. But.

Robbie Wagner: [27:23] Yeah, I had several where it took me probably ten to 15 strokes from the beginning to get there, but I was determined that I'm going to make that. It was fun. I think there was a lot of pressure because there were people behind us, so I didn't feel comfy about taking my time and figuring it out. And then there was, like, no alcohol. Everyone I talked to was like, oh, you got a golf. It's just an excuse to drink all day and hang out. And there was no alcohol. Really?

Chuck Carpenter: [27:54] Yeah, we got twice in 18 holes. You kind of lose your gusto for it after a little while, too. Oh, we went through twelve holes before the first the first time.

Robbie Wagner: [28:04] Yeah.

Chuck Carpenter: [28:05] And then the second time, you're like, what? Kind of at the end? I guess I'll have one.

Robbie Wagner: [28:08] Yeah. Yeah, I think you need them all at the beginning. So then the Rest of the experience is really fun.

Chuck Carpenter: [28:15] They're trying to curtail your frustrations. At that point, you're sort of like, okay.

Robbie Wagner: [28:19] Yeah. But all in all, I think it was pretty enjoyable. It was a very long day. I think if I had my choice, I'd just do nine holes or make sure that you can break for lunch at nine holes and come back to the other nine, something like that but.

Chuck Carpenter: [28:34] That would be a nice experience because I think it's so early that it kind of helps to have that break in a little food.

Robbie Wagner: [28:42] Yeah.

Chuck Carpenter: [28:42] And now I'm ready to do this again for a bit. I could have taken a break at nine and got in the sauna, had a little lunch, and then come back. I might have been like this.

Robbie Wagner: [28:51] Come out getting holes-in-one on everyone.

Chuck Carpenter: [28:53] Crushing it. Get a massage. Yeah, I don't know that it was interesting. And then, of course, we're here in beautiful Phoenix, Arizona, so it's nice.

Robbie Wagner: [29:04] Also known as another planet.

Chuck Carpenter: [29:07] It's the desert planet of Tatooine.

Robbie Wagner: [29:10] Yeah, a little bit. Yeah. I mean, I guess everything you see in movies that is like not an East Coast landscape is somewhere on Earth. And this is one of those places where they probably filmed some things.

Chuck Carpenter: [29:23] Yeah, especially down in Tucson and stuff. They used to do spaghetti westerns down there, old Tucson studios. So there's a number of things filmed out there, even not that far from here. What was that movie with, like, George Clooney, Marky Mark, and Ice Cube? And they were, like, in Afghanistan during Desert Storm.

Robbie Wagner: [29:41] I think. I don't know. But just from that cast, I want to watch it.

Chuck Carpenter: [29:43] Oh, yeah. Most films, like 45 minutes from here, like, towards Tucson, a place called Casagrand, a good chunk of that. And so replicating Afghanistan in the desert there, or no, Desert Storm wasn't in Afghanistan. I'm inflating my wars. So that would have been in some deserts. Kuwait and Iraq. Anyway, filmed here. There's a bunch of desert stuff filmed here.

Robbie Wagner: [30:09] Yeah, I can imagine. But, yeah, it's been nice. We didn't really know what to expect and then got off the plane, and Katelynn was like, oh, yeah, this is definitely another planet. It's like so different.

Chuck Carpenter: [30:22] Right.

Robbie Wagner: [30:22] A lot of traffic, though, and a lot of people and just sprawling city, which is also different than I thought it would be. But I guess there's plenty of desert land to spread into.

Chuck Carpenter: [30:32] Yeah, exactly. Decent amount of that. So, like one-third of the state, give or take, is more desert landscape. The other bits, you go up quite a bit, elevation six, seven thousand feet. And then you have seasons and a lot of pine trees, things like that. So the nice part is that you get a little too hot, go up north, cool off some.

Robbie Wagner: [30:50] Yeah. Although it's actually a nice weather dynamic because it is kind of chilly and, like, actually fall and winter like at times. But then you can eat lunch outside.

Chuck Carpenter: [31:00] Like get warm, as you learned today.

Robbie Wagner: [31:03] Yeah. So it's pretty nice. Would recommend.

Chuck Carpenter: [31:07] Would recommend. Okay, fair enough. I'm glad to know you're not unwilling to ever return.

Robbie Wagner: [31:12] Yeah, I mean, we've got to go back to the steakhouse from last night again because that was really good.

Chuck Carpenter: [31:18] Yeah, steaks all over the country. Robbie, I'm just telling you, that was pretty good.

Robbie Wagner: [31:23] That is true. Yeah. What else have we got?

Chuck Carpenter: [31:26] Oh, I know. I was going to circle back around for something.

Robbie Wagner: [31:29] Yeah, what was it?

Chuck Carpenter: [31:30] Whatnotish thing, and what was it? It was one of these things you were asking about. And then I have. Bread JS.

Robbie Wagner: [31:38] I don't know.

Chuck Carpenter: [31:39] Read up JS.

Robbie Wagner: [31:40] You got to take notes on everything.

Chuck Carpenter: [31:42] You can't drink whiskey and just pretend. Oh, was it something about Scones not being in favor anymore? Burritos, I'm looking at all these things that we talked about.

Robbie Wagner: [31:56] Oh, God.

Chuck Carpenter: [31:57] These are the thing. As you age, that memory really goes. I mean, at some point, yes, for a lot of people. But I'm not sure that I'm in that zone yet.

Robbie Wagner: [32:05] No, I think a lot of it is just that everyone has too much technology, and it's an instant world. So our brains have become mush.

Chuck Carpenter: [32:14] They're not exercised for memorization because we have a computer to find us the information.

Robbie Wagner: [32:18] Yeah, I used to be able to focus on things, and like, what's the word? Absorb information, learn things, like listen to a lecture and learn something from it. And then now it's like, I'm going to start listening to a thing, even if it's interesting, within like a minute or two, I'm going to be like, I don't know what I'm listening to anymore. I'm thinking about something else. Like, let me pull out my phone and see what it's got on it. So that makes it very hard to anything you think of just goes right out of your brain.

Chuck Carpenter: [32:46] So that's probably why I don't remember any trivia after 2002. By the time you start to get some kind of smartphone and access to computers.

Robbie Wagner: [32:55] Yeah, I think it was a little later because there was like that line of some people had smartphones or like you had the ones that were kind of smart and you could pay for the Internet around that time was kind of the sweet spot. Even when I got my first iPhone, it was a 3GS at that point. It was new and different, but I wasn't on it all the time. Because you're used to like you, just use it to text people back. Like, what is the iPhone do that's different? I don't know. But Apple made it, so it's cool. But then, yeah, you just got to this point where it's like everything is like notifications everywhere, and got to respond to them.

Chuck Carpenter: [33:28] Right. We got the watches. We're just like, we're so accessible. That's why people get upset if they don't get a text back in 15 minutes or something. Like, well, I know you saw it. Yeah. Six ways to see it.

Robbie Wagner: [33:39] Yeah. Speaking of notifications, we just got one from Nick asking if he's in the right meeting for happy hour. So I think we're going to have to cut this short and go to happy hour, unfortunately. But it's not that short.

Chuck Carpenter: [33:50] It seems like probably more than enough for most people.

Robbie Wagner: [33:52] Yeah, for the quality of content we baked into this one, this is enough. So thanks, everyone, for listening. Please give us some ratings and reviews. Do that five-star if you made it this far and still somehow like this. We'll catch you next time. We've got some guests coming on that will be pretty cool. Some people from Supabase and I forget who else. We'll see you then.

Chuck Carpenter: [34:16] Thanks for listening to Whiskey Web and whatnot. This podcast is brought to you Ship Shape, and produced by Podcast Royale. If you like this episode, consider sharing it with a friend or two and Leave us a rating and maybe a review. As long as it's good.

Robbie Wagner: [34:31] You can subscribe to future episodes on Apple, Spotify, or wherever you get your podcasts. For more info about Ship Shape and this show, check out our website at shipshape.io.