Whiskey Web and Whatnot: Web Development, Neat

A whiskey fueled fireside chat with your favorite web developers.

136: Curling, Coding, and Deno with Kevin Whinnery

In this episode of 'Whiskey Web and Whatnot,' hosts RobbieTheWagner and Charles William Carpenter III are joined by Kevin Whinnery, a member of the Deno team. They discuss Kevin's work with JavaScript, his journey with Deno, and his previous experience at Twil...

Creators and Guests

RobbieTheWagner
Charles William Carpenter III
Kevin Whinnery

Show Notes

In this episode of 'Whiskey Web and Whatnot,' hosts RobbieTheWagner and Charles William Carpenter III are joined by Kevin Whinnery, a member of the Deno team. They discuss Kevin's work with JavaScript, his journey with Deno, and his previous experience at Twilio, including the creation of TwilioQuest.

The conversation also covers the hosts' and guest's passion for whiskey, with a tasting of Templeton Rye, exploring its unique flavors and aroma. Furthermore, Kevin talks about his involvement in curling, his perspective on key-value databases, and potential alternate career paths outside of technology.

The episode also delves into discussions on various developer tools, runtime options like Deno and Bun, and the competitive yet cooperative atmosphere within JavaScript and web development. Toward the end, Kevin shares insights into the upcoming Deno 2.0 launch and his personal interests outside of tech.

Key Takeaways

  • [00:35] Introducing Kevin Whinnery from the Deno Team
  • [01:46] Diving into the World of Whiskey: Templeton Rye Tasting
  • [06:56] Whiskey Rating Time: How Does Templeton Rye Stack Up?
  • [11:17] Tech Talk: TypeScript, Tailwind, Git, and More
  • [22:21] Exploring Deno: The Future of JavaScript Runtimes
  • [24:12] Navigating the Wild West of JavaScript Modules
  • [24:54] The Future of TypeScript and ECMAScript Modules
  • [25:29] Deno vs. Node: The Battle for JavaScript Runtime Supremacy
  • [27:36] The Ecosystem of Developer Tools and Frameworks
  • [36:54] Exploring Key Value Databases: Use Cases and Best Practices
  • [41:46] The Art of Content Creation and Teaching in Tech
  • [44:31] A Deep Dive into the World of Curling
  • [52:21] Alternate Career Paths and Final Thoughts

Links

Connect with our hosts

Subscribe and stay in touch

React Miami

We'll be at React Miami hitting the streets and getting answers from the people on hard hitting questions like "is Tailwind cool?". Will we see you there? If you haven't gotten tickets yet, you can go to ⁠https://www.reactmiami.com/⁠ and use code WhiskeyWebMiami for $50 off your ticket.


Whiskey Web and Whatnot Merch Enjoying the podcast and want us to make more? Help support us by picking up some of our fresh merch at https://whiskey.fund/⁠.

Episode Transcript

[00:00:00] Robbie: What’s going on everybody? Welcome to Whiskey Web and Whatnot. Your favorite podcast about curling with your hosts, RobbieTheWagner, and Charles William Carpenter III.

[00:00:16] Chuck: Yes and I placed third in the 2014 Olympics for curling. Oh, you did? Yes. Okay. So you were

[00:00:22] Robbie: out there sweeping? Yeah. Yeah, I kept it clean.

Keep the ice clean. That’s what they say. Someone else who keeps it clean, our guest today, Kevin Whinnery. What’s going on, Kevin?

[00:00:31] Kevin: Not too much, my friends. How are you doing? Thanks so much for having us. Doing well,

[00:00:33] Robbie: doing well, yeah. Thanks for being on. Can you please give the folks at home a few sentences about who you are and what you do?

[00:00:39] Kevin: Yeah, sure thing. So, I’m a part of the Deno team, and Deno is an open source JavaScript that was created by the original author of Node. js. It’s kind of about like, you know, Convention over configuration and kind of rolling a lot of the like most adopted technologies in the JavaScript ecosystem directly into the runtime.

So there’s like built in TypeScript and [00:01:00] stuff like that. And I’ve been doing dev rel and JavaScript development for kind of a while. I spent about a decade at a company called Twilio that has telephony API’s and Yeah, I did a lot of fun stuff there. I built TwilioQuest, which was a a web based technology, like, video game, like a desktop PC game that I built with, like, React and Phaser and stuff like that, so.

Cool. Yeah, I’ve been kind of bumming around the developer tool space for a while now and get to do it at Deno, which has been super fun.

[00:01:28] Robbie: Nice. Yeah. I’m already intrigued with the convention over configuration because that, that hits me in my, my soul for 12 years. So I

[00:01:39] Chuck: think you just made Robbie a Deno fan regardless.

[00:01:42] Robbie: Well, I haven’t tried it, but we will get into some details on it in a minute. So, what we can start with though, tell us about the whiskey. Do you need this, can you read this here?

[00:01:51] Chuck: I, I think so. This episode is brought to you by I Need Reading Glasses. Ineedreadingglasses. co. uk Yes, exactly. All those things.

Anyway, today [00:02:00] we’re having the Templeton Rye. It’s a six year rye that’s their regular expression, it is 95 percent rye and 5 percent barley, 91. 5 percent proof. Little dots, degrees. Yes, exactly.

[00:02:14] Robbie: Alcohol, yeah.

[00:02:16] Chuck: Let’s do it. It keeps happening. Alright. That sounds great. We’re gonna start with the guest here.

Yeah. Pass it down. Pass it down. Take one down. Pass it around. 95 percent of rye on the wall.

[00:02:29] Kevin: I’ve really only in

[00:02:31] Chuck: the last

[00:02:31] Kevin: couple of years kind of come around to whiskey. So I’m stoked to try a new one.

[00:02:36] Robbie: Yeah. I initially did everything wrong, and Chuck has been educating me about the correct way to do everything, so.

[00:02:43] Chuck: Side note, listener, because he’s the only one. I’ve been telling him the wrong stuff the whole time. We all laugh together. As a joke. It’s totally fine.

[00:02:49] Robbie: All the real people put ice in it, but I got him to take ice out. I got him to

[00:02:53] Chuck: take ice out. Crushed ice is actually

[00:02:56] Robbie: a superpower. Yeah. Anyway, I’ll ask.

Here we go. So we’ll start with the [00:03:00] smell. I like to put this in so we don’t spill it everywhere. You act like I’m clumsy.

[00:03:06] Chuck: Ooh. Okay. We’ve got some funk. Yeah. Bring, give us that funk. We want the funk.

[00:03:14] Robbie: It smells like a It does

[00:03:15] Chuck: have a mildew y kind of smell to it. Yeah, like

[00:03:17] Robbie: Like a grape candy that you like, you licked it and then you left it out in the elements for a year.

I don’t, I’m not lying.

[00:03:27] Kevin: You beat me to it. Yeah. The grape candy. You don’t smell grape candy. I a

[00:03:30] Chuck: hundred percent smell that. And I was like, what is that? And you, as soon as you started saying it, a great lifesaver. I don’t know about like sat out on a, you know, on a blacktop. Well, because of the funky, like mildewy.

Right, yeah, it got rained on for a little while and you picked it up and smelled

[00:03:44] Robbie: it and you were like,

[00:03:44] Chuck: Would I eat this? And then you still do. Yeah, sure.

[00:03:47] Robbie: No, I probably wouldn’t. I’m pretty into not eating after people or eating weird things. You know, the

[00:03:53] Chuck: things you put in your body, I’m surprised. Anyway, we can taste this.

[00:03:56] Kevin: Yeah, let’s give it a shot.[00:04:00]

[00:04:02] Chuck: I still got a little bit of that. Now I would almost like take it one step further and be like, Grape drink. You know, like instead of grape candy, I would go like Kool Aid grape drink. No, not Kool-Aid. Like you get the little jugs or whatever. Yeah. Tiny jugs that Oh, the little hugs. Little hugs. Yes.

[00:04:16] Robbie: Yeah.

[00:04:17] Chuck: Little hugs. Little hugs. This one has a little hug. It has that, the little barrel. Yeah. Yeah. And then that spice comes out and get the woodiness. I got a little nutmeg almost. Yeah, a little bitter, little nutmeg for

[00:04:29] Kevin: me. Nutmeg must be a thing like nutmeg finishes a lot of whiskey, like cocktails I’m discovering.

[00:04:33] Chuck: Oh, yes. Right.

[00:04:34] Kevin: Yeah.

[00:04:36] Robbie: It tastes a little bit of, like, cinnamony. Like, you took a little piece of Big Red and put it with your Lifesaver. Okay. Yeah. Yeah.

[00:04:45] Chuck: Yeah. I mean, not wrong. None of these answers are wrong. And that is what is so fun about this. Unless you say

[00:04:51] Robbie: smoked salmon. Wrong. I’m

[00:04:54] Kevin: not getting fish. No,

[00:04:55] Chuck: I’m not getting a fish mug.

I feel like if I smelled fish in my whiskey, I’m probably [00:05:00] just gonna go ahead and say, this one’s not good. I don’t think this is what they meant. Is it Norwegian? The rare

[00:05:08] Kevin: Norwegian whiskey. Yeah, yeah, who knows. They’re more of

[00:05:12] Chuck: like a clean spirits kind of country, I think. I’ve not been to Norway. I have been to, the Netherlands.

I’m trying to think. I was just trying to say where in that region have I been? Just the Netherlands, I think. Yeah.

[00:05:27] Kevin: Norway was amazing. I was in Larvik. Like, like there was a, like, Deno is a globally distributed company. So we get together, like, in a random city, like, three times a year.

[00:05:35] Robbie: Yes.

[00:05:36] Kevin: And we did it in Norway, like, just when I joined the company.

And we took a boat ride with this guy who is, like, It was just legendary, like, I think he just, like, drives people around in a boat and gives tours for fun. And he off the side of his boat just, like, dragged, like, a six pack of beer with him the entire time. Because, like, the fjord was so cold. Like, that was just how he preferred to drink, so.

Interesting.

[00:05:57] Chuck: I would also prefer that. Yeah,

[00:05:59] Kevin: it [00:06:00] seemed like the way to go. Yeah.

[00:06:01] Robbie: A fridge or a cooler is It’s way too easy. No, no, you, you go, you, okay,

[00:06:06] Chuck: you know, right, fancy Whole Foods boy, you go in there and you’re chilling your wine. They put it in water that’s chilled and moving.

[00:06:14] Robbie: Yeah. Okay.

[00:06:16] Chuck: So

[00:06:16] Robbie: this, this brings me back to it.

Yeah. There’s a weird thing about water and this is totally off topic, but it triggered my mind. Okay. If your water is hot. It makes ice quicker than cold water. Did you know that?

[00:06:27] Chuck: What’s really and and more clear?

[00:06:30] Robbie: Yeah. Yeah. So if you do those like big cube, ‘cause our fridge is hooked up to the hot water.

I was like, what dumbass did this ? And I was like, looking it up and they’re like, oh, actually it’s good for WI was like, okay, I stand corrected. Yes. So fun fact to listener

[00:06:44] Chuck: is that heat your water before freezing it. Yeah. Even if you’re doing ice trays. It actually, but I know it makes them more clear too.

[00:06:51] Robbie: Yes, yeah, that theoretically, but you gotta have water

[00:06:54] Chuck: heat them. Let’s

[00:06:55] Robbie: what’s enough talking about that. Let’s rate this whiskey Okay,

[00:06:57] Chuck: so our rating system as [00:07:00] engineers we like to start at zero zero indexing So it is technically until eight I guess it could be nine It was based on an octopi like character a long time ago

[00:07:10] Robbie: eight tentacles, but it could be zero

[00:07:12] Chuck: Yep, could be zero.

So, zero being horrible, you might as well just throw this away. Yeah, the octopus is gone. Four, middle of the road, not bad, not great for you. Eight, being like amazing, clear the shelves. Feel free to compare this in any way that you’d like. We, because we’ve had so many, will be like, we’ll compare this to other rise.

You could go whiskeys, you could go just adult beverages, all you want. I won’t put you on the spot first.

[00:07:36] Robbie: Okay. Okay.

[00:07:36] Chuck: Appreciate it. That’s, that’s the thing that we do for putting

[00:07:39] Robbie: me on the spot first for the fourth time in a row or is it you what, I’ll take it for you. Okay. You know.

[00:07:44] Chuck: Even, even, even though you’re not nice.

That’s fine. That’s fine. Alrighty. So, yeah, this is very tasty to me. This is oh, and price I take into consideration. I think this was around 50 bucks. And the bottle looks cool. And the bottle looks cool. This nice [00:08:00] presentation interesting flavors little hug there. Nothing crazy. I’m probably going to give it a five, five.

It’s a five. It feels like I’m leaning towards five. It’s not like it’s above average. It’s not incredible, but I definitely would say like, Oh, I see this on the shelf. I know this one’s pretty decent. We can go with this one. You know, you’re, you’re picking up a bottle with friends or, or whatever else. So I think for me, this is about a five, five.

[00:08:26] Kevin: Okay.

[00:08:27] Robbie: Is it me next or you tell me

[00:08:29] Chuck: Kevin? Yeah, you do you wanna go? I can, I can certainly wait in. Okay. So

[00:08:31] Kevin: I’m much more of a whiskey plebeian than you two, but the one that I like the most I is Sexton, which is an Irish whiskey.

[00:08:38] Robbie: Right.

[00:08:39] Kevin: And that one I do drink neat pretty frequently and I do like it quite a lot.

So that’s probably like my six. And so I would probably anchor this at around five or five and a half as well. So like, I probably do prefer the Sexton a little bit. But this is really nice. Drinks really smoothly.

[00:08:57] Robbie: Yeah, so, my favorite ryes, as everyone [00:09:00] who listens knows, Sagamore from Baltimore, good stuff.

This is nothing like that.

[00:09:06] Chuck: No, it’s very different.

[00:09:07] Robbie: So, with that in mind, I don’t really know what to do, because like, the rye that I would want to taste is not what this tastes like, but this is actually tasty. Yes. So, I’m kind of at an impasse. I’m gonna rate it in general, I think, without rye in mind.

And give it a 5. 9. 2. Because it’s good, but it does not really taste like a rye. Like, if it were a, if this were a bourbon or something else that I’m expecting other flavors from, it’s, it’s very good, but like, it’s not spicy enough to be a rye, in my opinion.

[00:09:45] Kevin: What led you to go to the second significant digit there?

Like in the

[00:09:48] Robbie: I just like to be as random as possible. Chuck, Chuck did like I don’t know what on the last 6. 92347 I don’t know, yeah.

[00:09:57] Chuck: It

[00:09:57] Robbie: could be like a pie rating.

[00:09:58] Chuck: Yeah, yeah, [00:10:00] yeah. I mean at a certain point it’s all kind of arbitrary anyway. My rating really doesn’t speak to your personal rating or anyone else’s per se.

Yeah, I mean I just feel like, oh this is better than average. Once you 6 to 7 range, I mean like, Anything that is pretty good is in that range. So it’s kind of arbitrary. Like if you just love something and you want to do that way more than great, you should call that an eight and kind of go with it. I would say that this, this is my little addendum to that is that this is a approachable, right?

It’s very tasty. It’s not high spice. Like a lot of rise can be like, if you go ahead, it’s going to punch you in the mouth a little bit. If you haven’t had many rise, like this one feels like A nice approachable ride, which is why I think you putting it in a different category actually speaks well to folks who might want to start to step their way there.

If you haven’t had a ride, maybe start here. Yeah, absolutely. Yep.

[00:10:54] Robbie: Yep. All right. So now to our Luke warm takes. [00:11:00] Yes. Yes. Okay. This is

[00:11:03] Chuck: shit that people argue about on Twitter. Sorry, Clark. Anyway.

[00:11:08] Robbie: What? Okay. Anyway, this is a family show. It’s a family show. They can’t hear us out there. Actually, they can, yes.

The people sitting right here can’t, so sorry, yes. Anyway, explicit types or inferred types for TypeScript?

[00:11:24] Kevin: In that, I’m a bit of a TypeScript curmudgeon in that, like, I liked my JavaScript just fine before it had types. Okay. So if we can infer types, that’s certainly my certainly my preference.

Again, because I grew up in the bad old days of writing self calling functions to create scope when none existed, so. Yes. As little typing and as little rules as possible is usually what I prefer.

[00:11:47] Robbie: Thanks. Okay, yeah, that makes sense. Nothing wrong with that. Yeah.

[00:11:52] Chuck: Okay. Now we’re gonna take you to the other direction.

I think I know this answer. Tailwood, no, Tailwind, or [00:12:00] Vanilla CSS. So,

[00:12:02] Kevin: Like a year ago, I would have told you vanilla CSS without question, but I decided, like, enough, like, people who I respect and who Want to be productive in their own lives are like tailwind is great. You’ll never go back. So I was like, okay, like, I’m just going to do it for, you know, several months and kind of like hold my nose and not, you know, try to freak out too much.

And once I kind of like grokked the Zen of it like utility class, I got, I can love tailwind now. So I actually am all about tailwind. Nice. In to be fair,

[00:12:33] Chuck: I saw your tweet where you said that. So, okay. So I was like, I know where this

[00:12:37] Robbie: is going to go. Yeah. Yeah. Get rebase or get merge.

[00:12:43] Kevin: Ooh. I mean, I tend to want to merge because I just find that workflow a little, a little easier to rock.

But so like most of the time when I have a choice, I will I will merge.

[00:12:58] Robbie: Okay. Yeah. Rebasing makes no [00:13:00] sense to be fair, but you don’t get that merge commit of like you merged this. That’s right.

[00:13:07] Kevin: It does feel a little dirty, but It kind of like, it makes sense to me because that is like an operation that I performed on the code base.

That’s true. That’s true. And like, that is an event that happened.

[00:13:18] Robbie: But if they would make an in between that I can merge but not have that, I would absolutely choose that.

[00:13:24] Kevin: That would be ideal. So if anybody’s, you know, with the power to change that. I don’t know who can

[00:13:28] Robbie: change that. Whoever’s writing the new Git and Rust, that’s the people that can change it.

Oh, that’s true. That’s a good idea. Right, yeah.

[00:13:34] Chuck: That’s definitely happening somewhere.

[00:13:35] Robbie: I’m sure someone’s working on it. Thanks. I don’t know if it’ll be popular, but we’ll see.

[00:13:39] Chuck: I’m going to give you the previous one. So sidebar on the left or right in VS Code?

[00:13:45] Kevin: Definitely on the left. I could see, the only way I could see, like, you preferring the right is if you came up in that NET world.

Because I think in Visual Studio, like, C Sharp projects by default have the sidebar on the right. So but I’ve always, you know, been sublime text, text [00:14:00] made VS Code from that tradition. And the sidebar is usually on the left.

[00:14:03] Robbie: Yeah. It’s, I feel like it’s rare to find someone that cares enough to move it.

Like if you found that config, you’re probably just deleting the sidebar and like searching for stuff.

[00:14:14] Kevin: Like, I don’t think you can drag and drop it over there. No, it’s in the setting and

[00:14:19] Robbie: the settings don’t let you find stuff unless you open the Jason file and like manually do it. Yeah. So yeah, it takes a lot

[00:14:26] Chuck: of work.

to change things, and I don’t care enough. Right. That’s really what it is. Because I’m searching

[00:14:31] Robbie: for every file. I have too many files to look at the sidebar and find it.

[00:14:34] Chuck: Yeah. So. I was just saying, I had the same path in text editors as you did. Like, I really didn’t go through, like, heavy IDEs. So it was like, sublime text for quite some time, really.

[00:14:45] Robbie: Yeah.

[00:14:46] Kevin: I mean, I started off, like, in Eclipse most of the time. Oh, yeah. Eclipse. of make the jump from enterprise to general. So you

[00:14:52] Chuck: didn’t do Dreamweaver? No.

[00:14:53] Kevin: I, I skipped Dreamweaver. I like, Dreamweaver is kind of already, kind of passé by the time I was coming

[00:14:58] Chuck: out. I came from like, [00:15:00] basically photography, and then getting into web tools through that.

So it was like, Adobe has a bolt on thing here. You go from Photoshop to that, and then look at your tables and how terrible this is. But, you know, at least they map together, and then, soon as I was out of that world. Yeah. Yeah.

[00:15:18] Kevin: Never figured out Vim really. Like I learned colon Q and that’s basically yeah, everyone learned how to quit it

[00:15:24] Chuck: after they accidentally opened it.

One point did know like some shortcuts for inserts and moving up and down in that. And that was pretty much it. And I was like, I’m only doing this in this time because I have to, for this reason.

[00:15:38] Robbie: And I

[00:15:38] Chuck: kind of never came back to it. I remember another time, like, a colleague broke his hand or something. So he basically had to learn how to work one hand.

He couldn’t mouse? Yeah, he couldn’t mouse. And so he, like, got really good at Vim, and I’d watch him, and I’d always be like, I’d love to do that. And then never did it. It’s impressive to watch. Yeah,

[00:15:55] Kevin: people who are good at Vim look like they are, like, Hacking the mainframe. [00:16:00]

[00:16:00] Chuck: That’s what hackers actually looked like.

And they’re like, Oh, this does happen. Okay.

[00:16:06] Robbie: Yeah. Yeah. I always use nano. I was like that one guy.

[00:16:09] Kevin: Yeah. I use nano. Like I have to like edit my, like Z, like my RC files. Like I’m usually a nano for that.

[00:16:15] Robbie: Yep. Yep. All right. Let’s see. Are you wanting me to ask this one? Is that what you were saying? I’m just saying I’m not.

That’s your choice. Was GraphQL a mistake?

[00:16:26] Kevin: I don’t think GraphQL was a mistake. I think it actually is reasonable in some contexts. Like I, I see especially like if there’s like a, I, I was looking at a product recently that lets you sort of like manage high volumes of logging data and putting like GraphQL interfaces on top of like large unstructured datasets makes a lot of, a lot of sense.

[00:16:51] Robbie: Yeah.

[00:16:53] Kevin: It just seems to be a lot of work to, like, get the tooling set up, and It’s, you, once you get it [00:17:00] set up, it’s pretty, it’s pretty nice. But also, like, I, I haven’t necessarily, like, tried it and then been so blown away that I’m like, oh, this is Very obviously better than a REST API, and I need to like, change everything that I know about HDP APIs.

So yeah, I think that they, like I’ve definitely seen use cases where they’ve been like, a pretty obviously good choice, but

[00:17:21] Robbie: Yeah, I think that’s fair. I, Mistake would be too strong, I would say. Yeah. At this point I’ve forgotten why people said it was a mistake, but it was a thing for a minute. Do you remember the reasons?

Well, people were starting to

[00:17:28] Chuck: latch on to well, first of all, Some people discovered JSON API and realized like, Which has been around forever. All of my reasons for picking this were actually already solved in JSON API. And, you know, the includes and like kind of customizing your payloads a little bit per page.

So it was really more of a client side issue of things. I think RefQL is a good tool. In like large microservice architectures, for example, where you can have a federated graph and then [00:18:00] like each service owns its own thing. I know a lot of another argument against GraphQL was around like, Oh yeah, well now friend and engineers can basically like.

Throttle your response times by including or discluding certain fields. Well, no, it’s not necessarily, if you don’t know, you don’t know the story of that resolver just because you add one field and maybe that resolver hits another service that is a crawler and it’s like crazy exponential without knowing you may, yeah, you made it super slow without knowing, but then like contract testing sort of solves that for you.

Right? Like as soon as the contract changes on either side, There’s a little warning thrown up and at least then you’ve done something to mitigate that. But like, yeah, that was another argument against it, which you know, potentially the same thing happens in Jason API when you decide to do an additional include

[00:18:51] Robbie: for a

[00:18:52] Chuck: separate table that is not performance.

[00:18:55] Robbie: Yep. Yeah. So I think the configurability is good in general. [00:19:00] Like sometimes API APIs are really heavy and you just want like one field. Yeah. Like that part, like scoping it down. Down is nice. Adding can get messy. Right,

[00:19:10] Chuck: right. Like, regular CRUD APIs are just like wild, wild west, right? Yeah. So. That is true.

[00:19:16] Kevin: But I feel like you probably need to have a reason to want a GraphQL API. I think so. Like, there’s some kind of use case for your clients where, like, it is actually important that they can control the size of the payload

[00:19:26] Chuck: and stuff like that. Otherwise, the REST

[00:19:27] Kevin: API is probably

[00:19:29] Chuck: a steal. It’s not a mistake.

It’s just not a panacea like everybody thought. Five years ago. I don’t think

[00:19:34] Kevin: it’s like a default choice. No,

[00:19:35] Chuck: no. Yeah, by any means. Yeah. All right Well, the final one is what do you think about nested ternaries? Nested

[00:19:43] Kevin: Ternary, so you have gone a little deep, like on my Twitter rants, I feel like, because the Nested Ternary is a, is a major pet peeve of mine.

This isn’t just a whiskey

[00:19:51] Chuck: podcast, just so you know. Yeah. So,

[00:19:52] Kevin: so, you have a serious research team behind this, like going into Yes, we spend literal minutes. Yeah. [00:20:00] Spend dozens of minutes before every episode.

[00:20:03] Chuck: I compensate myself well for it, so don’t worry. Yeah.

[00:20:06] Kevin: So, not a fan, but specifically in the context.

of like JSX, like if you have a large like tree of JSX that is all like being conditionally rendered by ternaries, which is kind of the pattern within a JSX, like that code is very difficult to read and to understand like under what conditions this little block of something is being rendered. So if you must have like nested ternaries, like don’t have like also then huge chunks of HTML in your JSX.

Yeah.

[00:20:34] Robbie: That makes sense. Yeah. I mean, JSX, I feel like could benefit from just having. Like a switch statement or a bunch of if statements, like they don’t make that easy, but you should just be able to like, it’s definitely this, it’s definitely this instead of like.

[00:20:48] Kevin: Yeah. You could imagine there being like a higher order component that handles Boolean logic or conditional like

[00:20:53] Robbie: every other framework has, maybe he did make this a

[00:20:57] Chuck: JSX problem and not a react.

Well, that’s true. Bear in mind, I did actually [00:21:00] kind of appreciate that. You said like, this is a thing you can do in any JSX. This isn’t a react thing. It’s a, because in

[00:21:06] Robbie: react class based you can, you don’t have that problem. Yeah. Are

[00:21:10] Kevin: you like a class based components? Yeah. Yes. Oh

[00:21:13] Robbie: yeah. Well, I’ve been using Ember and we’ll use Ember until it dies.

And like, so I don’t care about all this, like, Oh, we’re doing server components and the whatever. And then not relevant to me, but, but I do like to play devil’s advocate on the opposite side of everything. So

[00:21:29] Chuck: you did like next for a minute.

[00:21:31] Robbie: No, no. Okay. All right. I like, I like the next and remix and all these things add like sane defaults on top of react, because that was my big thing about react is like, okay, you install it.

And now you need to figure out the next 15 packages you want to install to do all the things you need for a framework. You’ve never written a thunk or a saga, so I don’t feel too bad for this one. No, I have. Oh, man. No, okay. This is a rabbit hole. And I won’t go all the way down it, but we used Ember Redux and did a [00:22:00] bunch of thunks bullshit.

And I was like, we’re using Ember, but the guy, like, Above me was like, no, we’re going to use a redux. And I was like, no, yeah, yeah, but yeah, well that’s a rant for another day. Okay. So let’s talk about something more modern. up to date here. Deno, what’s going on with Deno these days?

[00:22:23] Kevin: Sure. Yeah. So yeah, we actually just dropped the 1.

40 release, but yeah, basically the goal of Deno is to like kind of rectify some of the like configuration hell that’s kind of happening within the node JS ecosystem and sort of combine a lot of the tools that you’re going to need anyway, like your linter, your formatter, your testing, testing framework you know, TypeScript and JSX kind of being sort of standard language extensions things like that.

So we’re also working on the Deno 2. 0 launch, which is going to be happening here in a couple of months. And yeah, we have [00:23:00] some exciting stuff planned for that. It’s not a state secret, but we are working on a TypeScript first ECMAScript module first registry, which we hope will be You know, a little bit more efficient will automatically generate documentation, kind of like the rust crates, like ecosystem, you know, when you publish your crate, you have very nicely generated API reference actually within the registry website itself.

And yeah, it’s kind of solving some of the problems that we’ve had with like HTTP URL imports, which is one of the sort of novel features of Deno, which is. Like, you can include a TypeScript file, like, just from an arbitrary URL. And we kind of started down that path because that is like the webby way to do it.

Like, Deno is intended to be as browser like as possible. But, like, that leads to problems like, you know, duplicate dependencies or, like, your server goes down and, like, it happens at an inconvenient time during a build. So there are some, you know, advantages of a [00:24:00] centralized package manager that we think would benefit Demo.

So we’re working on that. But yeah, that’s it’s gonna be pretty exciting. Again, kind of launching towards the, you know, March April sort of time frame. Right. And yeah, lots of work to get that done.

[00:24:14] Robbie: Nice. Yeah. That sounds like a pretty big thing. Yeah. Yeah, I’ve had a lot of problems with, like You know, nothing, it’s the wild west and no one’s like shipping types the right way.

Or if they do, it’s like, Oh, well, you got to put this specific, like, what’s your module type. And what’s your stuff, all these like different, well, okay, this is kind of a separate rant, I guess, but like all the different types of JavaScript modules is a big problem of like the common JS and the AMD and everything.

And it’s like, Oh, well just put in what your type is and it’ll like, figure it out. And then like, we need to not do that and just ship like, ECMAScript modules and like have them be typescript by default and then like You’re good.

[00:24:53] Kevin: Yep.

[00:24:53] Robbie: Yeah.

[00:24:54] Kevin: That’s what we’re building. Yeah. Yeah. You know, TypeScript source code is what you ship to the registry.

[00:24:59] Robbie: Right. [00:25:00]

[00:25:00] Kevin: But we’ve managed to figure out a way to do it such that, like, you could actually import these modules in Node, like, through NPM as well.

[00:25:07] Robbie: Nice.

[00:25:08] Kevin: And yeah, like being able to just deal with TypeScript and just publish TypeScript we think will be a much more ergonomic way if like you’re writing your library in TypeScript anyway to not have to deal with all the shenanigans of like, kind of providing your types and sort of manually setting all that stuff up.

[00:25:25] Chuck: Yeah, first class citizen rather than bolt on kind of ideology. In terms of like a drop in replacement for Node, for example, like where are we at in that?

[00:25:34] Kevin: Yeah, so It’s kind of a, yeah, it’s a little rough because The philosophical stance that sort of Deno has taken is that the web platform is probably the thing that will persist forever.

Like it will be here long after all of us are done writing code and the server side JavaScript environment should mirror. You know, the web platform as much as possible, which is kind of why, you know, as part of like winter [00:26:00] CG, which is, you know, a working group trying to like standardize web API is like outside the browser.

Cloudflare is also a member and folks from Vercel and Netlify participate as well. And that sort of stands in opposition to some of the stuff that’s happening in node where like when node was initially created There weren’t a lot of web standards that could be applied to the problems that Node was trying to solve.

But that’s that’s different now. So we want to, again, make Deno the most web like programming environment possible. But that sometimes is at odds with, like, trying to support like how Tailwind, Deals with the node modules folder after installation, right? Like there’s a lot of like very specific things that library authors have done over the years that are very tightly coupled to like node modules and how NPM clients set up that directory.

So the but the actual answer is like, actually a lot of the NPM ecosystem does just work in [00:27:00] Deno. Like if you include it, there’s like a NPM specifiers, what it’s called in Deno. So you can just import a node packages and many of them work. Where a lot of the friction still exists is with like tool chains that have been built around like NPM and NPM workflows, and like the node modules directory and stuff like that.

So like, Vite actually works like pretty darn well in Deno these days, but like there’s a lot of tooling like in Next. js, which we haven’t gotten working yet. So that’s like kind of the big focus for the team that’s working on node compatibility. It’s like getting better at handling the tooling that exists in the node ecosystem.

[00:27:36] Chuck: I mean, but do you think that triangle companies are really going to last? I mean, I don’t know if they’re going to make it. I don’t know. Yeah,

[00:27:42] Kevin: it’s there. They’re pretty good at pretty good at making it easy to ship websites.

[00:27:46] Chuck: Right. Yeah. Web app. You love to hate them.

[00:27:49] Robbie: I think, yeah. Listen,

[00:27:50] Chuck: just because Guillermo screwed us over for free whiskey that he could clearly can afford.

I don’t know. I think he’s hurting for money for

[00:27:58] Kevin: like every developer tool [00:28:00] company that I’ve ever seen. Like I just, I I just expect to see his name now, like Yeah. And I know Ermo rush. Yeah. They’re, they’re,

[00:28:05] Chuck: they’re involved. They’re investing. They’re like, and I appreciate that and I appreciate, I, there’s a lot of things that I do appreciate that.

They’re working on, and folks they work with, and everything else, but fuck that guy.

Oh no, oh gosh. No, but yeah. We support

[00:28:24] Robbie: Vercel, we use it, it’s good. Yeah, I

[00:28:26] Chuck: was gonna say, we give them money, we use it. I’ve, I’ve been an XJS user all the way up till 14. I find 14 slightly challenging, but I think that, There’s definitely an application for it. I’ve always appreciated that they gave sane guardrails to react, right?

Like it wasn’t choose your own adventure anymore. And I think we’ll go down that path a little bit, talking about books and stuff that, that we’re into. But but you know, it’s been like a wide path that they have over time narrowed

[00:28:58] Robbie: and then

[00:28:58] Chuck: they’re, they’re now kind of [00:29:00] putting you in and not you specifically, but folks in their lane to take advantage of their, of their The framework is good and it does a lot of things, but the framework is really just.

Do this very easily so that you can have our suite of tools. We’re at web application hosting company.

[00:29:17] Robbie: But they’re realizing that that’s framework agnostic. Like they’re very integrated with Astro now. They’ve they’ve got Svelte obviously with Rich Harris. Like they’re doing stuff with that. Like they’re not just use next JS or like, no, no, the first thing is

[00:29:32] Chuck: free.

Of course. And then like you kind of get introduced and you bring all your friends. Yeah. Yeah. Yeah. So, I don’t know. I always thought that way. I’m a,

[00:29:41] Robbie: I’m a fan.

[00:29:43] Kevin: It’s, it’s very nice DX, you know, for especially when you’re just kind of getting started. But I feel like every framework that lives long enough, you know, becomes the villain eventually.

That’s true. Like, it just finds a point of complexity where, you know, you start to question how much value you’re getting. I’m not, not

[00:29:59] Chuck: a fan. [00:30:00] I just start to like, when you start to infiltrate every part of my life, my professional life in this point, like, I just start to get a little like, I’m uncomfortable about it.

[00:30:10] Robbie: Yeah, that’s true.

[00:30:11] Chuck: So, yeah, and they’re running a business, so it has nothing to do with my opinion. There are good alternatives

[00:30:17] Kevin: though. Like, like, like spell kits. Great. Astro is great. I don’t think like next is going to be sort of the only game in town.

[00:30:22] Chuck: Oh, no, definitely not. It’s felt kid is, is in the mothership.

So for now, Astro is not and love

[00:30:30] Robbie: Astro kind of get

[00:30:31] Chuck: sponsored, but they’re not like, you know, Fred doesn’t work. That’s true. So.

[00:30:36] Robbie: Oh, wait, Fred works at Vercel? No. Fred, can we still be friends if I

[00:30:43] Chuck: should talk your friends? Anyway, I was going somewhere with that. I think it’s to the next cute logo.

Which is like obviously, Deno, super cute.

[00:30:54] Kevin: What about

[00:30:55] Chuck: the other super cute, run time, everything, whatever’s going on there, bun. [00:31:00]

[00:31:00] Kevin: The, the little, the little Bao Bun, he’s pretty cute. He’s adorable.

[00:31:03] Robbie: Yeah, not gonna lie. How do you feel about

[00:31:04] Chuck: it?

[00:31:06] Kevin: I think it’s like, it’s good and sort of validates that like we’re at a moment where Node is no longer like just gonna be assumed to be the default runtime for us.

For sure. Right? Like we’re in a world where WorkerD exists, where Bun exists, where Deno exists, and I think like that’s a reality that like JavaScript developers are gonna kind of have to work through and figure out like. You know, what, what things actually work, what things are, you know real and what are not.

So I think it’s good. Like the additional competition is good. It’s going to make certainly makes everybody innovate a little bit with a little bit more urgency than yeah. Right. Yeah, for sure. Yeah, I think, I think it’s pretty cool. The I think, like, the choice of Zig is, like, interesting.

Interesting

[00:31:51] Robbie: is the word for it, yeah.

[00:31:52] Kevin: Just, I mean, like, obviously there’s lots of very cool technical aspects of it as a language. But choosing Zig means that, like, it’s a giant pain in the ass to get [00:32:00] Bun working on Windows, right?

[00:32:01] Robbie: Sure. Because,

[00:32:02] Kevin: like, Deno is written in Rust, like, that’s not a problem, right?

Rust works great on Windows. So, I think there’s, like But it’s one millisecond

[00:32:09] Robbie: slower, maybe.

[00:32:11] Kevin: That’s possible, that’s possible.

[00:32:13] Robbie: Yeah.

[00:32:14] Kevin: But, yeah, I mean, like, I That is actually something that’s been nice, like, writing Deno and Rust has, like, yes, it is fast, but the idea of but like, the fact that Deno is now, like, easily embeddable in any Rust thing actually ends up being a pretty useful

[00:32:28] Robbie: trick.

Yeah.

[00:32:29] Kevin: Cause it’s showing up, like, in like, Tauri, which is, like, a desktop web application frame, or a desktop application framework for Rust and in a couple, like, unexpected use cases here and there, so, I mean, I, I, I think, like, what Bun also kind of demonstrated. Is that there is a lot, there’s a lot of hunger to be able to like bring a lot of the node ecosystem, like to whatever this new or whatever other runtimes are going to exist.

Like I don’t know if WorkerD had like a node compatibility layer, you know, before [00:33:00] then, or if, I don’t know if it was influenced by that at all. But I think like that’s going to be something that, like, that’s why Deno has like three, four engineers any given week, like working on node compatibility is because that’s going to be important in the, in the future.

So, yeah. I do think like that’s, that’s been good. It has been like a active service that has been beneficial to everyone that’s building this next generation of runtimes is to say like the ecosystem is important and we need to like support that adequately because I think like that’s a big part of like what people are responding to.

[00:33:31] Robbie: Yeah. Yeah. I think that, and just like that they aren’t using anything logical to do all the things and they’re just like, we use this and like, it’s faster and it’s like, okay, well now everyone can be like, well, you could technically. Do it in that speed. So how do we make ours a little faster? And like, it is pushing everyone towards like, how do we be better?

Even though like stability is probably way lower on bun than the other offerings. It’s like. That does force people to take a look and be like, we could probably do [00:34:00] that a little differently.

[00:34:01] Kevin: Yeah. I mean, that’s, that’s part of the, you know, competitive pressure is like, if you know, this benchmark says this thing, like that is sort of a gauntlet thrown down of like, well, maybe we need to relook at how we, you know, how our HDP server works under the covers, which is certainly something we’ve done.

Also like benchmarks, you know, People know benchmarks are benchmarks, right? Like, it’s maybe not always, like, the be all end all of, like, you can probably design a benchmark. Yeah, you

[00:34:26] Robbie: skew them to be what you want, yeah. So, like they’re important,

[00:34:30] Kevin: but, like, certainly, you know would take with a grain of salt under the restrictive settings.

Yeah,

[00:34:35] Chuck: yeah. Yeah, that’s true. Certainly not calling Jared out specifically on that, because, you know Yeah, super smart guy. It’s in a lane, he’s done that. Other people Have done benchmarks. And again, you can throw,

[00:34:48] Kevin: no, no, no, no. Yeah, far from it. Yeah,

[00:34:50] Chuck: indeed. And again, like, you know, it, it’s only based on a subset of things that you decide are, are a benchmark and you could throw in one different thing and change that [00:35:00] and whatever else.

There’s no doubt that like, Dan was faster. Bon is faster than node, right? Like this is true. That is a hundred percent the case. I wonder, like, is it, is it an all or nothing when you kind of choose This, this path to like, could you bun as your package manager? Could you Denno as your runtime? Could you, could you start to gain that?

You might be able to

[00:35:24] Robbie: Deno. I don’t know if you can

[00:35:24] Chuck: Denno. Listen, I was valid. I wasn’t going to call you out, but what did Ryan call it when he announced it? Yeah, exactly. When Ron Bell

[00:35:34] Kevin: introduced Deno to the world, he did call it Deno for like the first however long. And my brain is

[00:35:39] Chuck: old and it got way in there and it just is a hard thing for me to switch.

That’s

[00:35:44] Kevin: completely understandable. That is a thing that exists in the world. And like with using multiple runtimes, I do think that’s entirely possible. Like, I think, like, Node the Node runtime itself is very unlikely to ever run on, like, [00:36:00] edge servers, you’re saying.

[00:36:00] Robbie: Right. Right.

[00:36:01] Kevin: So, like, there’s gonna be some use cases for which Node is just not an option.

Yeah. So, I, I think there’s certainly a world in which maybe you use multiple runtimes for different use cases in different scenarios.

[00:36:12] Chuck: I mean, it’s almost like the browser wars to a degree, right? Like, you know, now we’re going through runtime options and there’s a lot of pluses and minuses for each one.

Right. And, you know, sort of how do you play that along for your application, for what your needs are, who knows? Like, it could be this here, this here, this there.

[00:36:33] Kevin: Yeah,

[00:36:33] Robbie: that’s true.

[00:36:34] Kevin: Yep, it’s entirely possible. And I imagine there will be convergence much like in the browser, you know, market right now. It’s like, as like, these APIs become more standardized, like, Maybe we’ll converge around, like, web standards that are pretty universally adopted for server side JavaScript as well.

[00:36:49] Chuck: Yeah, which would be great, I think. That helps everyone.

[00:36:52] Kevin: Yep, agreed.

[00:36:54] Robbie: So I do want to go a little bit to a different topic now. So your talk here was about key value databases. [00:37:00] Yeah. Can you tell us a little bit about what those are and what you would use them for?

[00:37:04] Kevin: Yeah, sure. So the talk itself did kind of survey the landscape of key value databases, like different choices and when you might use one, the sort of canonical use cases for key value databases, which are exactly as they sound like.

Thank you. Take a little bucket of data and you stick it in a database associated with like one with a one to one mapping with a key and retrieve it in much the same way, kind of like local storage in the browser. And I those types of use cases tend to be good for like data that. associated one to one with some kind of easily identifiable key.

So like user preferences or a shopping cart or like API response caches is another one. Like you don’t want to make a super expensive, like open API request over and over again. Like caching those results can sometimes be useful depending on how expensive those operations are. So. Very [00:38:00] useful for those types of things.

Some key value databases you can use as like your primary application data store too. So like DynamoDB or FoundationDB, which is the, Database underneath that Deno KV, which is kind of baked into the Deno runtime. And then Redis being another option that’s pretty robust in terms of like the query set.

But generally like when you don’t want to use them is when consistency is very important. So like if you have. You know, financial transactions, HR records or database just naturally relational. You have users that have many photos and sometimes relational databases are just the proper way to model data.

But like you can get by with key value databases in a lot of ways by like, Using the key space creatively, so like you can create keys that kind of look like paths and rest API. Slash blog slash 2008 slash whatever. And by cleverly designing your [00:39:00] keys you can actually sort of query your key value database.

By knowing how your keys are structured and put multiple records. That way as well. So yeah, that’s kind of the short version. Yeah, they all kind of have different strengths and weaknesses. I’m I think like DynamoDB is really interesting because you can use it kind of like a document database or a key value store.

Yeah, I’ve never

[00:39:23] Chuck: seen that as a key value store. I’ve always seen that as a document database. So that use case is very interesting.

[00:39:29] Kevin: Yeah. Yeah. It has, it can very much operate in that mode. And you kind of choose like when you’re storing data, which of those two modes you want to, you want to use like the interface to it itself does feel like you’re doing your taxes, but like it is very it is very powerful as a, as a tool.

[00:39:45] Chuck: How much time you have to like put into, I read the books by, I think it was like Alex Dubois, like is the big DynamoDB guy. And he’s all about like plan your access patterns. And then move forward.

[00:39:57] Kevin: Yeah, that I think when you get really deep [00:40:00] is what is how like you need to approach data modeling. You do have to do a lot of more planning up front because like you don’t have ad hoc querying like you do in a SQL database or like a traditional document database.

So it does require being a little more clever and intentional about where that data is going or migrating in that direction eventually.

[00:40:17] Chuck: Yeah, because otherwise I’ve always used them for either caching solutions or state. Right. Like you want API estate. Great. That’s a good way to do it.

[00:40:27] Robbie: Yeah. Yeah. Like if you have relational data or any kind of schemas you want to enforce, I feel like you do that separately with your, whatever you want to use.

And then if you want to cache the response from that, like API request for that data, then you’re using like, this is like the in between

[00:40:44] Kevin: for that

[00:40:44] Robbie: is what we’re saying. Right. Or.

[00:40:46] Kevin: Yeah, kind of. It’s like the, One of the benefits of like a key value database is the actual data that you store like maps very closely to whatever your applications data model is because you can just throw kind of arbitrary object structures in there.[00:41:00]

So you do usually have to in your own software have a layer that does the schema validation and stuff like that. We have things like Zod and joy and like other, you know, schema, like JavaScript objects, schema libraries which are pretty sweet and have like really good TypeScript support. So it’s easy to emit types that you can use to like kind of use like, you know, types as data transfer objects essentially.

And then use those as the interface to the functions that actually talk to your database and stuff like that.

[00:41:27] Chuck: Okay. Well, there you go. There are some smart patterns right there. I was like, wait a minute. Yeah. You just saw me.

[00:41:34] Robbie: Okay.

[00:41:35] Kevin: Like, computer science professors would be proud, no doubt. They wouldn’t be proud

[00:41:39] Robbie: of me, but They would not, and are not proud of me.

Yeah.

[00:41:44] Chuck: Yeah. Alright, oh, alright. I wanted to talk a little bit about how you’ve created some courses on Pluralsight, and like, front end masters, and things of that nature, and just like, what was that experience like? Do you plan to do any more of that?

[00:41:57] Kevin: Yeah, it’s actually, it’s been a hot minute since [00:42:00] I’ve like, done any, you know, Larger scale courses, but Mark Gravansky, who runs Front End Masters, runs out of Minneapolis, and I’m from Minneapolis as well.

So, great guy it’s been, it was fun doing the course, like, I did a Node course many years ago now, but, like, I, I, like, taught how to use, like, Elastic Beanstalk, and, like, how do you, like, deploy Node in a, you know, production scenario there. I do love teaching. Like I kind of I’ve been in doing DevRel for about 15 years and a lot of time within that has been spent on like developer training, education.

I built like a certification program at one point. Yeah, so I, I love like classroom teaching. Especially like I do, I do enjoy content creation, but like, I think I like having a class of like 20 people in a room and like being able to equip that set of people even more when that is an option, so.

[00:42:54] Robbie: Yeah, it is easier to like, if people are having problems, you walk around and actually help them versus like if it’s [00:43:00] online, maybe they message you or you can’t really see what they’re doing. But yeah,

[00:43:03] Kevin: it’s certainly more scalable.

[00:43:05] Robbie: Yeah.

[00:43:06] Kevin: But it is fun to like, see the lightbulb go on and see when somebody finally gets what you’re trying to teach them.

So, but yeah, it’s certainly fun to do. Like the Pluralsight stuff, I think, like we syndicated some content with them. I think I, I worked on some Twilio stuff with them as well. way back in the day. But yeah, yeah, content. I think I don’t know if Clark talked about it this morning, but content creation is just everybody does it now.

Apparently, like, it’s just the way you communicate with delay. Right?

[00:43:33] Robbie: Yeah, I’m too old for all that.

[00:43:36] Chuck: It feels like everyone, but I think it’s just that, like, obviously, web development, software engineering, these things have like grown as a need. throughout the world for many companies and sort of like, there’s more of us now.

So yeah, a lot of people are creating content, but what is that? Like maybe 1%, 2 percent of like the overall [00:44:00] industry? Like,

[00:44:01] Robbie: yeah, it’s

[00:44:01] Chuck: probably lower, but there’s still

[00:44:02] Robbie: a lot of competition even at that percent. Yeah.

[00:44:05] Chuck: Yeah. Yeah. You’re still kind of fighting over a little bit of space, but I don’t know. What I want to know about is like, so if you take a heavy object,

[00:44:15] Robbie: like a, like a.

Pojo? That kind of object?

[00:44:19] Chuck: Not exactly. No, no. Like something with real weight. Like, actually, if I can feel it. Like something

[00:44:24] Robbie: that’s maybe Put

[00:44:26] Chuck: it in my arms,

[00:44:26] Robbie: made of stone or something. I don’t know how heavy they are. Are they stone? 10 pounds?

[00:44:29] Chuck: 20

[00:44:30] Kevin: pounds? So yeah, we’re getting to the point of talking about the curling stone, which I believe is 40 pounds.

40 pounds. Whoa, okay. It’s way heavier than I thought. I think it’s kind of

[00:44:40] Chuck: like stone or something. Yeah. It has like a plastic sliding mechanism. It looks

[00:44:44] Kevin: like So it is like pure stone. Okay. They’re like, Extremely expensive to like if you like break a wreck one like it’s actually kind of a big deal But but it’s a smooth stone.

That’s like concave underneath like it kind of looks like a con Contact lens. So there’s only like [00:45:00] an interesting ring of the stone that makes contact with the ice when you slide it so So folks at

[00:45:06] Chuck: home, we are talking about the Olympic sport called curling.

[00:45:11] Kevin: The weirdest sport on ice. And

[00:45:13] Chuck: we’re not talking to, and just so you know, wait, Kevin is not Canadian, right?

No, Minnesota, which is, I mean, close yeah. Okay, so.

[00:45:24] Robbie: He probably knows Westboss, so.

[00:45:26] Chuck: Yeah, they’re probably neighbors, they’re just like, you know, one passport away.

[00:45:30] Robbie: Yeah, yeah.

[00:45:32] Chuck: Yeah, so let’s talk about curling a bit. You see it on TV, you’re like, I want to try that, you have Curling lanes? What do they call that?

What is the field of play?

[00:45:41] Kevin: A curling sheet is what you’d call it. So, like, at a curling facility they’ll usually have There’s a facility? Like yeah, like two to six, like, sheets or maybe eight sheets at a very big room. Hmm. And Minnesota, in the bustling metropolis of Chaska, is the Chaska Curling Center, which is where a lot of, like, U.

S. [00:46:00] Olympians train. And, like, other teams, like the Filipino national team trains in Chaska, Minnesota. Oh, wow. Interesting.

[00:46:06] Chuck: Yes, because, like, on the islands of the Philippines, they don’t have a lot of ice. Yeah, it’s like the Jamaican bobsled team, a little bit. I think it’s more like the competition. I’m sure it’s hard, but

[00:46:17] Kevin: There’s like 20 people in the Philippines who are really good at curling, but probably a few more in the U.

S. and in Minnesota specifically. So, but yeah, but basically like I did watch curling like on TV and I was like that like 55 year old dude with like a dad bod is like out there competing for a gold medal. I’m like, I could do that. Like I was obviously wrong. It’s not as easy as it looks or as these things tend to be.

You know. But I just like it. Like, I just think it’s, it’s fun there. Once you I’m, I’m not good or consistent enough to like participate in the strategic part of the sport yet. But once you do get to the point where you can like drop your stone right where you want it [00:47:00] it is like, it is chess on ice is what they what the practitioners like to call it, like positioning your stones in such a way where like, you’re cutting off different shots or like forcing a team to, to like take a different path towards the target.

It’s it’s really fun. I’ve really enjoyed learning it.

[00:47:16] Robbie: So, is it advantageous to be first or se like Do you knock people out of the way? Like, do you want to be first or not? Like, you know,

[00:47:25] Kevin: it is considered advantageous to be, to go second, because you have the most information about like how to throw.

That’s called having the hammer. When you have the hammer, you are going second. Gotcha.

[00:47:35] Robbie: Okay.

[00:47:36] Kevin: So sometimes you will actually intentionally lose an end, which is like an inning in a curling towards the end of a match because you want to have the hammer going into the final round so that you can play defensively and set up guards in front of the target and stuff like that.

[00:47:52] Robbie: Okay. Interesting.

[00:47:53] Kevin: Yeah.

[00:47:55] Chuck: Yeah. So it’s, is it like, I [00:48:00] don’t even know. I don’t even know. I have like great context here. So you’re like, okay. Okay, so there’s more than one. It’s like playing, It’s like shuffleboard.

[00:48:06] Robbie: Yes! Right? But not really. Don’t you know if you’ve played boxing before? Yes.

[00:48:09] Kevin: Okay, yes. Because like, yeah, there’s eight stones that each team gets to throw.

And there’s in like, there’s different forms of it, but the most common one, there’s four players on a team and each player throws two stones. And you take turns, like, like each team goes one after the other. And yeah, you’re and then the last person to throw is called the skip. And they’re like the, sort of the manager.

They’re usually the best player on the team. And while the other players are throwing, they’re down by the target. Like where the stone should go, and like, telling the players that are sweeping, like, cause you have the little brooms that you take out as well, and they will, and they will yell, sweep, like, how hard, or like, when to start sweeping because sweeping, what it does is it melts the ice in front of the stone and it makes the stone go, like, If you just throw the [00:49:00] stone, it curves quite a bit when it goes down the ice.

But if you sweep the ice in front of it, it flattens out the curve and makes it go further. So the sweeping helps kind of control the arc of the stone when it’s going down the ice.

[00:49:12] Chuck: See? There’s so much to it that you wouldn’t realize. I’m interested in

[00:49:15] Robbie: the history of like, Did they start just throwing stones and they were like, wait, we could sweep and like, make these go better.

I don’t know. I’m not

[00:49:23] Kevin: exactly sure. You invented. Yeah. I think it’s like a Viking. It’s like a, it is like a Scandinavian peninsula. So

[00:49:31] Chuck: they should crush this, but apparently not.

[00:49:33] Kevin: I think like Canada is usually kind of near the top of the heap. Us does compete pretty frequently,

[00:49:39] Robbie: right? The U S team has been the same for like the past, every Olympics.

I feel like, yeah.

[00:49:45] Kevin: I mean, teams especially, like, they get good at working together, like, the skip of a team that’s been together for a long time knows exactly how hard everybody throws, and kind of, yeah, so like, a unit staying together for a long time is a, is an advantage. It’s

[00:49:58] Chuck: pretty advantageous. [00:50:00] Yeah, like, so breaking in might be tough.

Do they all live in Minnesota?

[00:50:05] Kevin: There many are. Like, we definitely have Olympians that are Minnesotans. They certainly come to train a lot. But, yeah, it’s I think, like, my Olympic hopes might be a little bit misplaced, but I definitely have, like,

[00:50:21] Robbie: I don’t know, I like learning

[00:50:22] Kevin: about anything.

Like, I’m kind of, like, going deep enough to understand, like, oh, I understand the nuances of like, what we are trying to accomplish here. And I

[00:50:31] Chuck: usually I love that it’s approachable, though, in the sense of like, Okay, I’m 46, like, my soccer dreams are over. But what else is? The long jump.

[00:50:39] Robbie: Probably not. Oh, wow.

Yeah. None of

[00:50:42] Chuck: those things were like, Too much body athleticism. This is more

[00:50:47] Robbie: like dedication and figuring out the like little bit. Yeah. Working on skill. Yeah. It’s more about

[00:50:53] Kevin: touch and you can curl forever. Like there’s, you know, folks that are in their eighties out there on the ice sometimes. So like, it’s, it’s [00:51:00] definitely, it’s work for life.

[00:51:01] Robbie: There’s hope for us. I mean, do I have to move

[00:51:06] Kevin: to Minnesota? There’s a Phoenix

[00:51:09] Chuck: curling

[00:51:09] Kevin: club. I’m sure there is. We’ll look it up now. Yes, we do. Oh yeah, I’m surprised how serious

[00:51:20] Chuck: the hockey is in Phoenix, to be honest. Like, you can go to these stores that are like, Mini Walmarts of hockey equipment.

[00:51:28] Robbie: Hmm. It’s because everyone’s so hot.

So they’re like give me something cold to be maybe

[00:51:34] Kevin: I think Bobby Hill on King of the Hill once said that Phoenix was a testament to man’s hubris Which is just and I think like hockey in Phoenix is kind of the emblem of that. Yeah, there’s no water I don’t remember

[00:51:49] Chuck: which hockey team they bought to make the Coyotes, but it was something like Montreal or some like serious and brought it to Phoenix and brought it to Phoenix.

It was [00:52:00] sort of like, it might’ve been like Winnipeg. Cause I think Montreal ended up being Canada Colorado. And then they just brought Montreal back. Eventually they were like, we can’t not have a team. We’re Canada. Like,

[00:52:12] Robbie: yeah, that’s true.

[00:52:14] Chuck: Anyway.

[00:52:15] Robbie: Yeah. We are getting close to the end, so. So, I actually graduated with a

[00:52:25] Kevin: political science degree.

Like, I was in computer science. And I had an internship at kind of an enterprise software company, sat in a cubicle for a summer and it was like, no way I’m never, never coming back. So I studied poli sci and I specifically like international relations and diplomacy. So I think there’s an alternate universe where, you know, I’m in the state department, foreign service somewhere and trying to you know, cut deals and make bad situations a little less bad.

So I, That could be, that could [00:53:00] be pretty cool. Yeah, other than that, though, I they’re like, there’s an organization in Minnesota called the International Institute that works with like refugees and like recent immigrants. And, and working with those communities is always pretty cool.

Cause they tend to be, they tend to be fighters. They, they came for a reason because they had a goal in mind. So it’s something in that space would be really fun to work on full time too. Yeah,

[00:53:23] Chuck: sure. Yeah, that sounds both like awesome things. You do a lot more cool, cool shit than I do.

[00:53:29] Kevin: I don’t know about that.

[00:53:32] Robbie: Yeah, so before we end, is there anything you want to plug or anything we missed talking about?

[00:53:36] Kevin: No, I think just like kind of mark your calendars towards the end of March, early April. We’ll have some fun stuff coming out with Deno 2. 0 and our TypeScript and ECMAScript registry. You know, our, we’re collabing up with our friends at CloudFlare on a little bit.

So lots of fun stuff to keep here. You know, keep on the radar later on in the quarter here.

[00:53:56] Chuck: Cool. Also, next Deno. Deno. Deno, yes. [00:54:00] We’re gonna get you there. Great. You’re probably not. It’s okay. In Tokyo. I want to go. Oh, oh. I saw there was, yeah, there was a

[00:54:07] Kevin: Deno Fest in Tokyo which the Tokyo Deno community is incredible.

And, who’s the maintainer of hno, which is like an express, like framework for Oh yeah, okay. Yeah, I heard about that. Yeah. Oh, yeah. Yeah. I love ho I use it all the time and, he was there and gave a talk. It was, it was fantastic. Tokyo is also like my new favorite city in the world. It’s

[00:54:29] Robbie: my number one destination.

We need a business expense reason to go to Tokyo. So help us out. Yeah.

[00:54:35] Kevin: Maybe we can figure, figure something out. We can

[00:54:38] Chuck: do, we can have Ryan on there.

[00:54:41] Kevin: But yeah, the condition is like, it has to have, the recording has to happen in Tokyo, but Ryan, Ryan loves Tokyo more than any of us. Like there was like a lunch meeting where we, you Discuss some stuff and he insisted that we go to 7 Eleven to like get like microwave food.

So we won’t have to twist his arm to get him to take it.

[00:54:58] Robbie: Cool. [00:55:00] All right. Thanks everyone for listening. If you liked it, please subscribe, leave us some ratings and reviews. We appreciate it. And we will catch you next time.