Speaker 1: Hey, welcome back to another episode of JavaScript Jabber. This week,
Speaker 1: I'm your panel Charles Maxwood, and we've got a special
Speaker 1: guest this week.
Speaker 2: We have Kelvin. I don't even have it in front
Speaker 2: of me anymore. Where to go? Oh, Marashione. I hope
Speaker 2: I got close.
Speaker 3: Close enough?
Speaker 1: So do you want to introduce yourself? Let people know
Speaker 1: who you are and why you're famous and all that
Speaker 1: good stuff.
Speaker 3: Famous? Not yet? Thank you, Chiles.
Speaker 4: Hey everyone, my name is Calvin. I am a Fusta
Speaker 4: Javascar developer. I'm also the lead maintainer for an NBC
Speaker 4: framework for cat sales. I do a couple of teaching,
Speaker 4: anus work, built the bone stack.
Speaker 3: And some more that things.
Speaker 4: So yeah, I love JavaScript. I like to beat everything
Speaker 4: JavaScript because that's here.
Speaker 2: Awesome.
Speaker 1: We should have you back definitely to talk about sales.
Speaker 1: But we brought you to talk about inertia jas two
Speaker 1: or two point zero. So do you want to just
Speaker 1: give us kind of a quick overview of what inertia
Speaker 1: jas is for those that are familiar with it or
Speaker 1: haven't used it.
Speaker 3: Yeah, for sure. So it's at the basic level, it's.
Speaker 4: A paradigm sort of like a concept of building food
Speaker 4: stack applications, single page applications that don't necessarily need you
Speaker 4: to do the separate APIs like back end, and then
Speaker 4: your your UI can be in React views belt. So
Speaker 4: it gives you this ability to have both your back
Speaker 4: end and your front and in one code base and
Speaker 4: just take out that layer of having to do vetch
Speaker 4: core because your back end can return your UIs component
Speaker 4: as pages and also saying that the props that they
Speaker 4: need when it sends down the page. So it came
Speaker 4: out from the Lava world. It's what love Cloud is
Speaker 4: being built on now, which is the new rithing cloud things.
Speaker 4: I don't know if you've done that. So a bunch
Speaker 4: of people use it, Phantom analytics use it. I also
Speaker 4: use it for salescast dot Com and hackfish. So it
Speaker 4: just simplified. If you like MVC stuff and you want
Speaker 4: to keep your SPA, but you don't want to maintain
Speaker 4: two different projects and have like a back end separate
Speaker 4: and a frontag separate, and so it's a nottnity to
Speaker 4: things like next years. If you like traditional server sight
Speaker 4: applications but you still want an SPA.
Speaker 2: Gotcha.
Speaker 1: So I'm curious because you know, I saw the information
Speaker 1: about the Nursia JAS two dot zero. I'll admit I
Speaker 1: kind of looked at it. I haven't done a whole
Speaker 1: lot with it. What's new in too that? What and
Speaker 1: why did we need it to that?
Speaker 4: Yeah, it's a couple of things new. First of all,
Speaker 4: the first version was kind of making synchronous style of
Speaker 4: so if you make a like a page request and
Speaker 4: you want to make another one, it's going to cancel
Speaker 4: like the old one.
Speaker 3: So it wasn't a synchronous at all.
Speaker 4: It was really synchrolar, just like the way the pages
Speaker 4: work in a browser, right, like anytime you make a
Speaker 4: new request, GET is going to cancel out the old one.
Speaker 4: So but with two point zero from the ground up
Speaker 4: is built to be a synchronous which opened the door
Speaker 4: to like more goodies to come into the tech, meaning
Speaker 4: that we could do things like partial reload and make
Speaker 4: that to be a synchronous. We could do things like
Speaker 4: deferred props and a bunch of other things like prefetching
Speaker 4: pulling for example. So two point zero the biggest changes
Speaker 4: is a synple notes now, so that means all requests
Speaker 4: a simple just like what you get in something like
Speaker 4: next years or any other thing.
Speaker 3: But now you have more things that you could use
Speaker 3: it for.
Speaker 4: Because so let's use my app for example that I'm
Speaker 4: doing hackfish with, and an invoice app. It has an
Speaker 4: editor that lets you edit your invoice like and give
Speaker 4: you this notion like faiel to edit.
Speaker 3: Right. So in one point, soo inertia.
Speaker 4: If I make a change and I want to partially
Speaker 4: submit those like saving drafts, right, it's going to make
Speaker 4: a request like a Synchlen request.
Speaker 3: So if I make a new change to cancel out
Speaker 3: the old change, I was supposed to go to.
Speaker 4: The server and make that update. But with two part
Speaker 4: now everything's going to be a sync, so it could
Speaker 4: do that. Partial updates is synchronously.
Speaker 1: So when you're saying a partial update, you're talking about
Speaker 1: where you only update part of the page.
Speaker 3: Yes, so yes, exactly.
Speaker 4: So when you like, so if you have let's say
Speaker 4: you have on a page, you have users, and then
Speaker 4: you have let's say companies, let's just use that. Right,
Speaker 4: So if I want to update or like want to
Speaker 4: change the UI or filtered by users, but I don't
Speaker 4: need to touch the companies, right, I could say, when
Speaker 4: I make this updates, I want you to send back
Speaker 4: only the user. I don't send back the users and
Speaker 4: the companies. So that is partial updates right in inertia.
Speaker 4: So before it was all going to be synchronous. So
Speaker 4: anything that if you make, if you tie a new thing,
Speaker 4: and I was already finding an older synchronous request, it's
Speaker 4: going to concern out the old one to send a
Speaker 4: new one. But now it's all these things, so they
Speaker 4: could all have multiple requests. It's a big deal because
Speaker 4: it changes how it works, and I could talk about
Speaker 4: things like the like the defect props and every other
Speaker 4: thing that this new system brings to.
Speaker 1: Two po right, I'm just trying to get my head
Speaker 1: around when you so when you're saying partial updates, you're
Speaker 1: talking about data.
Speaker 2: You're not talking about UI.
Speaker 4: Then, yeah, so the because the page will come with
Speaker 4: the data. So if you partially update the data, of
Speaker 4: course it's going to like change what page you're going
Speaker 4: to see, right or the you yeah, like what is
Speaker 4: on the UI?
Speaker 3: Yeah, because every page comes with the data as prop.
Speaker 1: Okay, I guess the other question I have then is
Speaker 1: let's say that you and I are both looking at
Speaker 1: the same data on machines. That does it then give
Speaker 1: you a way to push those updates like from my
Speaker 1: machine to your machine or.
Speaker 3: No, that's more real time. I don't think so.
Speaker 4: It's mostly because you're just going to be for just
Speaker 4: my copy of it, all.
Speaker 1: Right, okay, yeah, but but it does do call to
Speaker 1: the back end and tells the back end, Hey, there's
Speaker 1: new data here.
Speaker 3: Yeah. So that's when you make like a classic like.
Speaker 4: Create an update, it's going to change and of course
Speaker 4: if you're looking at the page that was changed, the
Speaker 4: next time you visit the page, of course you're going
Speaker 4: to see the new data, even if you're not like
Speaker 4: so it's just classic.
Speaker 2: Yeah, I gotcha. So does this change the way you
Speaker 2: build things with inertia?
Speaker 3: Oh yes, it does. It doesn't.
Speaker 4: It just gives you more good is because the way
Speaker 4: INITIAL work, it's adapted based for both the back end
Speaker 4: and the front end. So they are they are adapters
Speaker 4: for Love for Whales, Phoenix. I also built the one
Speaker 4: for sales, which is what the boys that uses. So
Speaker 4: these changes need you and the for your So so
Speaker 4: now you have to conform to the new things that
Speaker 4: is in the core of Initial. So you add some
Speaker 4: new method there like change house, some setting back end work.
Speaker 3: But for the.
Speaker 4: View and the other fronted them from a adapters, you
Speaker 4: don't have to touch anything, so it's just me I
Speaker 4: myself as a as a maintainer, they have to change
Speaker 4: all that stuff.
Speaker 3: But with the two point zero you could do things.
Speaker 4: So so now that it's all a synchronous you could
Speaker 4: do things like if you finish scrolling really easily. In fact,
Speaker 4: they are components that are baked into two point two
Speaker 4: that lets you do so, like the when visible component.
Speaker 4: So if you're scrolling, I want to load new data,
Speaker 4: so it's just gonna make sure that you don't just
Speaker 4: load every data wants the page mount for example, so
Speaker 4: you could do things like one scrolling joins the classic
Speaker 4: infinite scrowthing, and because it comes in the core of inertia,
Speaker 4: it's pretty easy to do that. So you could do
Speaker 4: things like that and deferred prop. So let's say you
Speaker 4: have like an admin dashboard and you show the starts
Speaker 4: at the top.
Speaker 2: Mm hmm.
Speaker 4: So instead of you showing the starts at the top
Speaker 4: and also fetched the maybe recent users that will only
Speaker 4: be seeing when user scroll, you could defer like those
Speaker 4: props like okay, send all of the stats and then
Speaker 4: incrementally send down everything else.
Speaker 1: So this would be used, like you said, for like
Speaker 1: an admin dashboard or or something else where it's it's
Speaker 1: essentially you don't want it to do all of the
Speaker 1: work and take forever to load the page, and so
Speaker 1: you can you can say, hey, look, I've got this
Speaker 1: page with this structure, and then the deferred props are
Speaker 1: essentially the data, so it can go back and i
Speaker 1: can say, okay, the page is loaded, and now I'm
Speaker 1: ready to populate this section of the page. So I've
Speaker 1: deferred getting those props and filling in the blanks essentially.
Speaker 3: Exactly exactly, so it's now more.
Speaker 4: I think these features really make it like a good
Speaker 4: contender for things like next years for example, right like,
Speaker 4: because I've seen folks like in one Point Tho, I've
Speaker 4: seen folks preferred the boy stack because of how stimpoint
Speaker 4: is and how because the cool thing about this old
Speaker 4: thing that it brings for you that you get the
Speaker 4: old truce of an MBC framework to handle your back end,
Speaker 4: your authorization and your ROM. And then then the bridge
Speaker 4: which is initia, so we just got a better bridge.
Speaker 4: The back end that keep getting better, the front that
Speaker 4: keep getting better than the bridge now gives you this
Speaker 4: amazing experience in DX prefetching, deferred props and infinite screwl
Speaker 4: pulling as well. Like it's easy to like pull for
Speaker 4: new data if you want to. So if you don't
Speaker 4: want to do website get stuff and you want to pull,
Speaker 4: like it's it is possible. It's come big teams, so
Speaker 4: you could do things like trouttling or don't pull when that.
Speaker 3: That type is is inactive and all that stuff.
Speaker 4: It comes backed into the frame of the the.
Speaker 3: Tech right now. So it's really really good.
Speaker 4: It's just going to make it easier to build really
Speaker 4: nice experiences with the tech.
Speaker 2: That makes sense.
Speaker 1: Is it sending the data back as fully formed HTML
Speaker 1: or is it just Jason and you're relying on whatever
Speaker 1: you're doing on the front end to populate the data
Speaker 1: or how does that work?
Speaker 4: Yeah, so it's it's leverage the fact that you could
Speaker 4: swap out components in real time for every.
Speaker 3: Like view, veiled and the rest.
Speaker 4: Right, So what happens is that today's like you have
Speaker 4: like an app door jas that you would do a
Speaker 4: like a create initial app for views vert or react
Speaker 4: and then you'll be like, okay, look for the pages
Speaker 4: and maybe jazz slash pages right, So you give it
Speaker 4: the page name and you would know that.
Speaker 3: Okay. So once the back end.
Speaker 4: Say look for a page that there is user for example,
Speaker 4: it's to use that to find the user the jas
Speaker 4: and then swap the page okay, and also send the
Speaker 4: props into datum page page. So it has a DSL
Speaker 4: that would be like the name of the page, the props,
Speaker 4: the you are well, and every other.
Speaker 3: Data that you would need.
Speaker 4: So it's swap it as you click, it's gonna intercept
Speaker 4: does click, then it will make an SHL to get
Speaker 4: the page.
Speaker 3: So you say all spo like right.
Speaker 1: So most of the work I do is server rendered,
Speaker 1: and so I'm I'm pretty accustomed to making the call
Speaker 1: to the back end and getting HTML back and saying
Speaker 1: drop this in where I tell you to. But what
Speaker 1: you're saying is, since you're using a front end library
Speaker 1: like React or view or celt or something, it already knows, hey,
Speaker 1: I've got a component, and this component has these behaviors
Speaker 1: and this data behind it. And so effectively what you
Speaker 1: do is when you click, it says okay, take this component.
Speaker 1: You're gonna put it here, or maybe it's a collection
Speaker 1: of components or something like that, and you're going to
Speaker 1: go get the data, and the data is the props,
Speaker 1: and you're going to load those and you're gonna you're
Speaker 1: basically going to hydrate your your components with the data
Speaker 1: so that then it knows, Okay, now I've got fully
Speaker 1: formed functional things that I can put onto my page.
Speaker 3: Yeah, exactly, so do the cool thing.
Speaker 4: It's so if you're doing something like a classic SPA,
Speaker 4: like when you want to see let's see cost this
Speaker 4: for example, right, if you visit the page, the pitche
Speaker 4: would load, right, but now you have to make another
Speaker 4: call with the spiner right to see like to get
Speaker 4: to the data. But in this way, everything is sevi
Speaker 4: aside centric, so the page will always.
Speaker 3: Load with the data.
Speaker 4: So there's no need for like a spinner so it
Speaker 4: costs with the Yeah, but it's an SPA, so there's
Speaker 4: no need for the spin out. There's no need to
Speaker 4: have states in like what redogs or all those other stuff,
Speaker 4: because your state is in the database, so everything always
Speaker 4: come I know like that.
Speaker 2: Yeah, that's cool.
Speaker 1: So let's say because I can kind of see two
Speaker 1: scenarios here. So one scenario is, hey, I've got my
Speaker 1: React app or my next JS app or you know
Speaker 1: view or whatever. Right, and I've been using inertia JS
Speaker 1: one dot zero for a while.
Speaker 2: This sounds great, let's upgrade it. What do I have
Speaker 2: to do upgrade it?
Speaker 4: So it depends on what you're using already, So if
Speaker 4: you use it, so IF for the most part, is
Speaker 4: very popular in the Lava ecosystem. So all you have
Speaker 4: to do is update both the back end adapter, which
Speaker 4: we go be inertial level, and then the front end
Speaker 4: re I is View or React.
Speaker 3: I think that's all you need to do.
Speaker 4: It doesn't have a lot of breaking changes for like
Speaker 4: a major like this doesn't have a lot I said,
Speaker 4: you're using a couple of things that you do so
Speaker 4: but as soon as you do those change, your app
Speaker 4: is a sync now. So everything is a sync by Deffault,
Speaker 4: so it will just work. But you could now tap
Speaker 4: into using things like the prefetching, which is really cool.
Speaker 3: So this one, like I think next year is already
Speaker 3: have it.
Speaker 4: And I think like like if you've a building on
Speaker 4: the web for like a while, you know how to
Speaker 4: prefetch the but does not come with the stuff, So
Speaker 4: you could be like, okay, if you over on something,
Speaker 4: prefetch that page or if it mounts load these other
Speaker 4: pages of domestically that I think that you're going to visit.
Speaker 3: So it now comes.
Speaker 4: So it's more giving you more add ons, so you
Speaker 4: don't really have to change much of your apps. So
Speaker 4: for me, I have to do a lot because I
Speaker 4: have to. I'm not updated my own adapter yet. But
Speaker 4: after that.
Speaker 3: Updates, users just have it for free because it would
Speaker 3: just walk.
Speaker 4: They just have to use the new things the way
Speaker 4: in visible components pulling if you have to pull for data.
Speaker 3: I know this stuff.
Speaker 2: Yeah, right, So.
Speaker 1: What you're saying is is if I update Inertia on
Speaker 1: the front end, right, they just say, okay, now I'm
Speaker 1: using Inertia too. That's that's all I have to do
Speaker 1: on the front end, and on the back end I
Speaker 1: update my adapter and then everything that I was doing
Speaker 1: with Inertia still works, right, some of it might be.
Speaker 2: Or things like that.
Speaker 1: It just opens the door so I can use some
Speaker 1: of these other features.
Speaker 4: Yeah, and it's like the best like major update ever
Speaker 4: with no breaking changes at all except like just a
Speaker 4: few things.
Speaker 3: And they're like this is like this is the dream.
Speaker 3: It's just so easy to update.
Speaker 1: Right, Yeah, I mean I've worked on some systems and yeah,
Speaker 1: you get that major verse version update and it's like, okay,
Speaker 1: it was all this stuff that depends on all of
Speaker 1: these features out of version last version, right, and so
Speaker 1: now when I do the upgrade, I either have to
Speaker 1: find some way of like running both versions or you know,
Speaker 1: jumping through a bunch of goops.
Speaker 2: And so this is this is pretty refreshing, right.
Speaker 4: Yes, it is like it's a it's a joy. It's
Speaker 4: a joy like everything this just work, and you just
Speaker 4: have to know that you're not usaying like.
Speaker 3: You would have.
Speaker 4: You probably would notice the change as much because it's
Speaker 4: just you just work and just think. So it's more
Speaker 4: like it's more like an architectural change down actual like
Speaker 4: things you would take notice off.
Speaker 1: Right, So I want to kind of back into some
Speaker 1: of these other features.
Speaker 2: You know, we've talked a bit about async.
Speaker 1: Is there any concern about because because you can have
Speaker 1: multiple requests and now, is there any learned about those
Speaker 1: coming in in the wrong order or anything like that
Speaker 1: where maybe you get a race condition or something like
Speaker 1: that where you can get unexpected results, or does the
Speaker 1: nur shol handle all that for you.
Speaker 4: Yeah, I think so, Like it's why you have to
Speaker 4: update the adapters.
Speaker 3: Already, like take it.
Speaker 4: So it's more like you most likely would't have to
Speaker 4: run into any of those issues. But the adapters have
Speaker 4: have also made sure that all the race conditions, which
Speaker 4: I don't think it's even possible because things it's all
Speaker 4: a sync, right, so if I'm loading this part of
Speaker 4: the page and the parties, so it doesn't really matter,
Speaker 4: but I'm pretty sure it's all taking care of. That's
Speaker 4: how we have to update those adapters. Okay, so what
Speaker 4: with the cod versions.
Speaker 1: And then you mentioned the pulling, So do I just
Speaker 1: tell it how frequently the check or how how long
Speaker 1: I wanted to pull for.
Speaker 4: Or yeah, so it comes with the front end comes
Speaker 4: with them. So for view we have the composable. For React,
Speaker 4: there's also the hook, the useful hook, so you could
Speaker 4: just drop it in there and be like useful then
Speaker 4: pull every twenty second, and you could put like some
Speaker 4: callbacks like on start unfinished, like to just you know,
Speaker 4: and you could also stop it if you want to,
Speaker 4: so like it's not like forever, and you could you
Speaker 4: could throttle it, you know, like so that yeah, so
Speaker 4: that you don't just so if I'm not on the page.
Speaker 3: It's no need for you to finish data, right, So
Speaker 3: you could also trottle it for that. Yeah.
Speaker 2: Right, So.
Speaker 1: And then you mentioned I'm looking at this article. I
Speaker 1: I guess I could post it to the comments, but
Speaker 1: they mentioned and the when visible and that was where
Speaker 1: you were talking about things like infinite scrolling.
Speaker 2: Yeah, so this comes on, Now do the work.
Speaker 1: But I could also see this as kind of a
Speaker 1: performance hack where you know, I have a dashboard, but
Speaker 1: some of the graphs or something are below the fold,
Speaker 1: and so it's like, Okay, you scrolled up far enough
Speaker 1: to where you might want to see this, and so
Speaker 1: now I'm gonna load that in. But before I didn't
Speaker 1: do that work because I.
Speaker 2: Didn't even know if you're gonna look.
Speaker 3: At it exactly.
Speaker 4: So yeah, it's more good for you actually, and you know,
Speaker 4: like all your it's just gonna be good for web vitals.
Speaker 4: They're gonna love you for it, and of course you'll
Speaker 4: your users are gonna love it too, because not every
Speaker 4: part of the page it gets seen or have equal attention.
Speaker 4: So you could just be like when visible, do stuff.
Speaker 4: If not visible, then that work's never done. And that
Speaker 4: page was loaded and us gets what it wanted to
Speaker 4: do done really quick.
Speaker 1: Right, Yeah, yeah, I think I think you covered everything
Speaker 1: that I was able to find on this. So I
Speaker 1: guess the next questions are, you know, kind of more
Speaker 1: in general with just building web applications and best practices.
Speaker 1: So one of the things that I like to do
Speaker 1: with a lot of my applications is make sure that
Speaker 1: it's fully tested. And so how do I go about
Speaker 1: making sure that I have good tests on these kinds
Speaker 1: of requests?
Speaker 3: Yeah, for sure. So the.
Speaker 4: So the cool thing about intia is it's based on
Speaker 4: really stable texts. So for every of these platforms for
Speaker 4: l for reals, they weighs you test your app so
Speaker 4: the same test up right here. So yeah, so you
Speaker 4: could test okay, is the pitch sending back the data
Speaker 4: you need and every other thing. It just like makes
Speaker 4: in a classic endpoint tests right like to see if
Speaker 4: you're getting the Jason but because it sends down Jason down.
Speaker 3: The wire, so you could do that. And also you
Speaker 3: could test.
Speaker 4: Your components the same way you could test with anything
Speaker 4: like jests or whatever I use for tests.
Speaker 3: And now you could also do it to eat test.
Speaker 4: I like it to eat test and these days they
Speaker 4: are faster, so you could test like the entire flow
Speaker 4: of everything from like the click from everything. So it's
Speaker 4: it doesn't change much from how you beat software. It
Speaker 4: just makes it a little bit more simple and make
Speaker 4: it more tight and cohesive.
Speaker 1: Yeah, yeah, that makes sense. That's another thing that I
Speaker 1: was going to ask about. Is it sounds like you
Speaker 1: mentioned that and then you mentioned it too, right that
Speaker 1: it makes your code more concise, maybe a little easier
Speaker 1: to read, a little easier to understand. If you've been
Speaker 1: writing code for long enough, you realize that you're writing
Speaker 1: code for other programmers, right, so that they can maintain it.
Speaker 1: You're not writing it necessary early for the computer.
Speaker 2: Right.
Speaker 1: The computer gets whatever it gets from whatever JavaScript, virtual machine,
Speaker 1: or whatever else you're running. So yeah, I mean, in
Speaker 1: what ways have you found this cleans up your code?
Speaker 3: A lot of ways?
Speaker 4: So I did this series of talk which is like
Speaker 4: shipless JavaScript, because I feel like the best way to
Speaker 4: not have bugs is to write less code. So in
Speaker 4: a like in a classic style of SPA and API,
Speaker 4: you are maintaining two codebase, especially when you're doing JavaScript everywhere.
Speaker 3: So what's the point of the JavaScript everywhere where you've
Speaker 3: gotta have.
Speaker 4: To ctiment into different code bases, and these apps they
Speaker 4: don't really talk to each other, but it's still all JavaScript.
Speaker 3: Why so when you take out first of all, you take.
Speaker 4: That because the routing is done in the back end.
Speaker 4: You have one wrapting system like one route file. So
Speaker 4: classically you have both your PI routes, your pr end
Speaker 4: points and then your your SPA routes which would be
Speaker 4: like react raptor or just anyhow you're routed, right, and
Speaker 4: then you got to do state management, which is state
Speaker 4: my code.
Speaker 3: I still like, I was so grateful for.
Speaker 4: Not having to write them anymore for like two three
Speaker 4: years now because it's just a nightmare, like the different patterns,
Speaker 4: and like you just more code, more box right, So
Speaker 4: that just makes it simple because you know your page
Speaker 4: come with the data and you don't always have to
Speaker 4: fetch all the data. You could be like send me
Speaker 4: this page again if I click, now, give me just
Speaker 4: this portion of the data. So you see, you have
Speaker 4: this fine grade control and you get it for free.
Speaker 4: And then don't get me started with the flash of
Speaker 4: authenticated content that happens when you have these two separate apps,
Speaker 4: because like now the page makes so if I click
Speaker 4: on a page to view and I'm logging, I get
Speaker 4: to see the flash of signing sign up, then I
Speaker 4: see my alvata. Why because because it's going to take
Speaker 4: a while to talk to the back end, but now
Speaker 4: the back end is sending the entire state, so we know.
Speaker 3: You're logging, so you never see that flash.
Speaker 4: So there's lots of benefit for both the UX and
Speaker 4: the DX, and you get to understand your app flow
Speaker 4: because most times, especially when you're a smart team, I
Speaker 4: don't only see the need like they need to have
Speaker 4: two separate apps if you're a small team, and even
Speaker 4: if you're a big team, because the back end guys
Speaker 4: who just do some Jason and throw it over the wire,
Speaker 4: then the front of the guys you just have to martional it.
Speaker 4: But now everybody's working on the same code base, we
Speaker 4: understand how the application work from so and when dev's
Speaker 4: know the like from top to like, everything they know
Speaker 4: about the app is holistic, they get to build more apps.
Speaker 4: That makes more sense because I've seen apps that I
Speaker 4: build really weird because the teams that don't talk to
Speaker 4: you show because someone is just send it. I'm just
Speaker 4: I don't care whether you need those Jason at all.
Speaker 4: But in instead of you could be like, okay, I
Speaker 4: just need the email of the user, and I myself,
Speaker 4: as a fronted person, can go put, Okay, just select
Speaker 4: the email. That's all I need for this page and
Speaker 4: I can get it instead of like the the API
Speaker 4: person to send down all the all the things of
Speaker 4: the of the user. Then you just get to speak
Speaker 4: the email. And even if you're just picking that I'm
Speaker 4: showing to the user, you're still sending that down the wire.
Speaker 4: And so that's the extra cost. But this is no
Speaker 4: longer the issue because you can just find going to
Speaker 4: be like, this are the data I need. So it's
Speaker 4: good for data and it's good for like DX and
Speaker 4: everything else. So I love it.
Speaker 1: Yeah, it sounds a little bit like when you're talking
Speaker 1: about just getting the data you need. It sounds like
Speaker 1: the way that a lot of people talk about graph QL.
Speaker 3: So yeah, sounds like that, but it's not like that.
Speaker 3: But it's not like that at all.
Speaker 4: It's it's not it's back end driven sp Yeah, unlike
Speaker 4: graph KI. You gotta do like okay, like as this said,
Speaker 4: then the the for the guy cannot make the all
Speaker 4: the queries, but you make everything in the back end
Speaker 4: and then send.
Speaker 3: Out what you need to the users in the back end. Yeah.
Speaker 2: Yeah, I'm just trying to think of how that how
Speaker 2: that would work. So mm hm.
Speaker 1: So you constructure query and you say give me this
Speaker 1: data back and with inertia it sounds like more you're
Speaker 1: saying I need this u I, and then your back
Speaker 1: end is intelligent enough to say this u I only
Speaker 1: needs this data and so that's why it sends it up.
Speaker 3: Mmm. Kind of.
Speaker 4: But you're still thinking separately, right, But you own the
Speaker 4: entire app is full stack now, so you know what
Speaker 4: that page need. You could make the the query to
Speaker 4: get just the data you need for that page, send
Speaker 4: it down yourself. So it's one app. It's one app, right, Yeah,
Speaker 4: I could. I don't know if you could share. I
Speaker 4: could definitely show you a couple of code if you
Speaker 4: want to see.
Speaker 1: Yeah, we tend to not do that on this show,
Speaker 1: just because a lot of people listen audio only. Okay,
Speaker 1: yeah cool, But yeah, I think I'm kind of getting
Speaker 1: the idea and maybe I just need to.
Speaker 2: Go play with it some more.
Speaker 3: Yeah you should.
Speaker 1: Yeah, So one other question, Yeah, I mean you keep
Speaker 1: mentioning that other back ends use it too, so it's
Speaker 1: not just you know, no JS or JavaScript back ends.
Speaker 1: People who listen to the show know that I primarily
Speaker 1: work with Ruby on rails. Steve Edwards, who's also a
Speaker 1: host on the show, primarily does view and Laravel and
Speaker 1: so yeah, so it's it sounds like, yeah, there's kind
Speaker 1: of a cohesive approach to this where yeah, you're blurring
Speaker 1: the line a bit more between your front end and
Speaker 1: your back end.
Speaker 3: Yeah.
Speaker 4: Yes, it's exactly like that's it just makes it is.
Speaker 4: It's a bet SPS, but you don't have to do
Speaker 4: like an apler. It's all just wondering and you get
Speaker 4: to live with your back end things, your your off
Speaker 4: your data access, it's all donated back end.
Speaker 1: Yeah, so in that case, and this also reminds me
Speaker 1: a little bit of graph QL in the sense that
Speaker 1: on the front end, right, you basically just build the
Speaker 1: queries and then on the back end you have what
Speaker 1: are they called they have uh, the classes essentially that
Speaker 1: go and fetch the data and deliver it to whatever
Speaker 1: orchestrates your graphic q A query. Yeah, so it sounds
Speaker 1: like this is a little bit more involved where maybe
Speaker 1: I'm writing code on my back end specifically designed to
Speaker 1: work with inertia. Right, So I put the adaptor in
Speaker 1: and then I'm I'm working in kind of an inertia
Speaker 1: way from my view layer as far as the back
Speaker 1: end goes is is that accurate at all?
Speaker 2: Or yeah?
Speaker 3: It is. So it's not restricting you.
Speaker 4: So you could send down inertial pages, You could send
Speaker 4: out classic set aside pages in the same map. You
Speaker 4: could also do fetch calls from your front end in
Speaker 4: the same app.
Speaker 3: So there's no restriction.
Speaker 4: It's like, if you call it, it sends down like
Speaker 4: the pages. If not, you could do your your IGIs
Speaker 4: if a node or your yeah be for reels and
Speaker 4: it's to work.
Speaker 1: Yeah, right, that makes sense. So yeah, so where inertia
Speaker 1: is gonna call it? I'm working in the inertial world.
Speaker 1: But yeah, obviously it wouldn't keep me from just doing
Speaker 1: things the other way.
Speaker 2: I was.
Speaker 1: I was also going to ask about how it compares
Speaker 1: to something like HTMX, but it sounds like you've kind
Speaker 1: of answered that because HTMX it it just sends back HTML.
Speaker 2: Where yeah, yeah, this.
Speaker 1: Is designed specifically to work with inertia, and so it
Speaker 1: feels like one cohesive application.
Speaker 3: Yes, it does, it does, it really does.
Speaker 4: And you could visit a couple of apps that use
Speaker 4: a walk like that and just like how the feel
Speaker 4: at how it works. So one is lack cast dot com.
Speaker 4: They use inertia. Oh okay, yeah, come use phantom.
Speaker 3: The dashboard also uses inertia. Use that should be their website. Yeah,
Speaker 3: was using.
Speaker 4: If you just click around you can see how it
Speaker 4: be is like an SPA, but so if you check,
Speaker 4: if you check what's being sent back, it's more like name.
Speaker 4: We should be like the component name than props all
Speaker 4: in Jason form.
Speaker 3: And then it knows how to render dose.
Speaker 2: Yeah, oh very cool. Yeah we'll have I'll have to
Speaker 2: check those out as well.
Speaker 1: So I guess the other question, and this is always
Speaker 1: the biggie when I talk to people about using some
Speaker 1: of the library, is how does it affect performance?
Speaker 3: And like app?
Speaker 1: Yeah performance, Yeah, you mentioned core web vitals for example,
Speaker 1: but you know, just in general.
Speaker 4: I don't think it does, because you wouldn't even so
Speaker 4: in terms of like I said, it's an alternative to
Speaker 4: using things like noxts next the kids, Uh huh, there's no,
Speaker 4: there's no downside on that. I fact, I think you
Speaker 4: even get more bang for your back, like if you
Speaker 4: use it because on like the other stuff that I'm
Speaker 4: more concerned with building like an SPA and then you
Speaker 4: get to talk to the A P I and then
Speaker 4: those artificial way time with the with the spinners and all.
Speaker 4: With this, you don't get all that, so it's more
Speaker 4: direct and you get because what makes up really slow
Speaker 4: most time is the data access. Right, so there's like
Speaker 4: since you have fine grain control on what you need.
Speaker 4: I don't think I think it's like an up, like
Speaker 4: a one up for it in terms of like the
Speaker 4: other alternatives out there, So there's no really much hit
Speaker 4: and performance at all. Like I've been using it for
Speaker 4: two plus years now and I used next before.
Speaker 3: There is it's it's.
Speaker 4: More better for my DX and also all better of
Speaker 4: my UX because everything is really snappy and all I
Speaker 4: have to do is like of course I'm not saying
Speaker 4: that every role in my database to the user.
Speaker 3: So that's the only way. So if you if you
Speaker 3: if you build the mpc AUP.
Speaker 4: You already know how to work like make good queries already,
Speaker 4: so it's not like it's just it's just not like
Speaker 4: I said, non issue on that one, so it's all
Speaker 4: pretty snappy.
Speaker 2: Okay.
Speaker 1: Yeah, so if somebody wanted to get started with inertia,
Speaker 1: how would they do that?
Speaker 3: Yeah?
Speaker 4: So if you do full start JavaScript, I think the
Speaker 4: best way you could just do MPX create sales, which
Speaker 4: will like scaffle like a full stag appeture with the
Speaker 4: sales on the back end, and then you could pick
Speaker 4: view reactors velt. If you do any order languages on
Speaker 4: the back end, you have to use the adapter and
Speaker 4: the guide wish. The dogs also have a lot onto
Speaker 4: lavel rails and the rights it also like have dogs
Speaker 4: on that or how to set it up?
Speaker 3: Yeah?
Speaker 1: Right, what if I'm doing no JS on the back end,
Speaker 1: but I'm not using sales, so maybe I have it
Speaker 1: built on something?
Speaker 3: Yeah, I think, yeah, for sure.
Speaker 4: The Adonis also have an adapter to, so most of
Speaker 4: those framework they have adapters, so you could just use
Speaker 4: but if you use it even I think sports also
Speaker 4: has an adapter to as well, so you could. It's
Speaker 4: all it's yeah, it's all adaptive. Is that you could
Speaker 4: really buildle on really quickly if you want, so, if
Speaker 4: you really need the benefit, you.
Speaker 2: Could very cool.
Speaker 1: Is there anything else that folks ought to know about
Speaker 1: inertia or inertia two have thirty using interertia.
Speaker 4: Yeah, so I think it's it speaks to how good
Speaker 4: the tech is when major apps like they want to mention,
Speaker 4: like like like an analytics platform like use Phantom uses inertia.
Speaker 4: And also the new the Other Cloud is built with
Speaker 4: Inertia and React. So I think you could give it
Speaker 4: a try because if you if you if you don't
Speaker 4: like the startup school of things losing things like next
Speaker 4: I just like, and you prefer NBC, and you want
Speaker 4: like a robust, stable back end thing for your stuff,
Speaker 4: because I've seen people they build lovelpi and then they
Speaker 4: build the next year's SPA or something.
Speaker 3: Yeah, but or because of the whole hassle.
Speaker 4: Of okay, they don't really like don't want something stable
Speaker 4: for the back end, but it's okay to just bridge
Speaker 4: it right and just have everything one and just work
Speaker 4: with it.
Speaker 3: So you could do.
Speaker 4: Because what you really want in X most times I
Speaker 4: find is React. Yeah, like that's what you really want,
Speaker 4: like the.
Speaker 3: Gxs and stuff.
Speaker 4: So if you want that, what you want to robot again,
Speaker 4: you could just check out building apps with inertia.
Speaker 3: It's really simple to get started.
Speaker 1: Mm hmm, that's cool. So tell us a little bit
Speaker 1: about you. I'm kind of curious. So you said you
Speaker 1: have a Nigerian last name. Do you live in Nigeria
Speaker 1: or you from somewhere else or.
Speaker 3: Yes, I do.
Speaker 4: I live in Nigeria. I have been I've been here
Speaker 4: all my life physically.
Speaker 2: Yeah, that's that's super cool. I've never been.
Speaker 3: There, but oh you should, Yeah, you should. You should
Speaker 3: try come over.
Speaker 4: It's really it's really like a cool place to you know,
Speaker 4: to vacation at or just like have a toll.
Speaker 3: Yeah. So we'll be doing the sales cone for this
Speaker 3: year June.
Speaker 4: So I'm gonn't have like a couple of people come
Speaker 4: out out the like from from other places in Africa
Speaker 4: and elsewhere to just come and have like a web
Speaker 4: death conference.
Speaker 2: So its be fun cool and you're doing that Nigeria.
Speaker 3: Yeah, Nigeria.
Speaker 1: Oh, very cool. I'd love to figure out how to
Speaker 1: get out there anyway. So what's the death community like
Speaker 1: out there?
Speaker 4: Yeah, it's pretty vibrant, like we have, like we have
Speaker 4: an open source community here, like a lot of people
Speaker 4: are big on open source, a lot of developers like
Speaker 4: you know, so it's been really really good for like
Speaker 4: for years now.
Speaker 3: So they have a lot of.
Speaker 4: Death roils too here. So I don't know if you
Speaker 4: know shak a Ui mh you know it? Yeah, so
Speaker 4: like that's made by a Nigerian as well, and yeah,
Speaker 4: and a couple of other ops that I know.
Speaker 3: Tastfully, it's really cool, very cool.
Speaker 1: Yeah, I ran into Shakra you I can't can't remember.
Speaker 1: Somebody recommended it for something I remember checking it out.
Speaker 3: Yeah, that's cool, awesome.
Speaker 1: Well, if people want to check out sales or sales comp,
Speaker 1: where do they find that then? Also yeah, any content
Speaker 1: you have on inertia, Yeah.
Speaker 4: So sales comp dot com slash Africa would would take
Speaker 4: you to the page. I'm gonna be open up the
Speaker 4: CFP and sales for ticket like next week and my
Speaker 4: work on it on inertia, I have free articles posts
Speaker 4: and also videos, so I teach full Starck web there
Speaker 4: on salescass dot com. So we also have like screen
Speaker 4: cast and I'm working like on a course which I'm
Speaker 4: going to rese like the first chapter this this week
Speaker 4: on next week, which is the build fifty products in
Speaker 4: fifty days, because I like how easy the stack is
Speaker 4: to be stuff so I want to show up to
Speaker 4: be like real sass app looking like most like just
Speaker 4: built fifty of them, like from top to like.
Speaker 3: Everything you need for like an app, the billing.
Speaker 4: Teams, everything for different apps are going to be two
Speaker 4: for each chapter of the course of building a new.
Speaker 3: Stuff. With the borrowing stack, it's gonna be fun.
Speaker 2: So yeah, very cool. Only that's fifty apps in fifty days.
Speaker 4: Yes, I so I could like so I call it
Speaker 4: code name Project fifty because why.
Speaker 2: Not, that's awesome. I might borrow them.
Speaker 1: I love the idea of doing fifty apps the days.
Speaker 1: So yeah, I have a couple of questions on that,
Speaker 1: just just to dive in.
Speaker 2: One of them is, so are you using a lot
Speaker 2: of the same stuff over and over?
Speaker 1: Right, So a lot of your authentication will look the
Speaker 1: same and a lot of the other kind you call
Speaker 1: the boring stack. So I'm assuming you're a lot of
Speaker 1: stable boring you know, Hey, look we use the same
Speaker 1: tail and components or however you put it together.
Speaker 4: And exactly so I feel it's just so, it's it's
Speaker 4: what things like like the diver templates I've enjoyed over
Speaker 4: the years. Where so so I joke that if you
Speaker 4: do like a new Java script, full stack stuff you
Speaker 4: get like a counter where you get to click, but
Speaker 4: in some order from what you get like authentication and everything.
Speaker 4: So those part of your apps, they are most generally stable.
Speaker 4: So if you have something that could just take Q
Speaker 4: sixty percent the way they you focus on your business logic,
Speaker 4: I think you're gonna move faster. So I just want
Speaker 4: to show this with real world because it shure, don't tell,
Speaker 4: So you see for yourself how productivity is to like
Speaker 4: use something that is boring because I just focus on
Speaker 4: the core of your app and ship to your users
Speaker 4: really quickly. And if it's boring, it's less headache when
Speaker 4: you have to debox stuff because it's predictable.
Speaker 2: Yeah, yeah, that's cool.
Speaker 1: I kind of want to do see if I can
Speaker 1: do that for Rails, and I've wanting to do for
Speaker 1: a while, put together effectively that same kind of thing
Speaker 1: where it's like I need authentication, so I run the
Speaker 1: authentication generator, I need payments, I run the payments generator.
Speaker 1: Right like that, there are a dozen things that I
Speaker 1: just do the same way every time, and so yeah,
Speaker 1: then it's okay, now I want something something podcast right
Speaker 1: because I'm very much in the podcast community, right something
Speaker 1: something podcast utility that does this thing right, and so
Speaker 1: then I can I can throw that together in a day.
Speaker 2: Yeah, no, big deal exactly. I love it. I love
Speaker 2: it well people.
Speaker 1: Yeah, all right, Well, if you don't have anything else
Speaker 1: to throw out there for us, we'll have you come
Speaker 1: back and talk about sales, because I'd love to.
Speaker 2: Dive into that. But in the meantime, we do picks
Speaker 2: at the end of the show.
Speaker 1: I'm not sure how familiar you are with with that,
Speaker 1: so I'll go ahead and go first.
Speaker 2: Okay, so picks.
Speaker 1: Or just shout outs about whatever, and I usually do
Speaker 1: a board game pick.
Speaker 2: I'm trying to remember.
Speaker 1: The name I always the board game is actually a
Speaker 1: card game that I'm gonna pick is called The Gang.
Speaker 1: And yeah, so if you've played I've mentioned the game before,
Speaker 1: which is is you have numbered cards and you're trying
Speaker 1: to put them out in order with certain rules right
Speaker 1: as far as what you can place on the piles.
Speaker 1: The Gang is like Cooperative and Texas Hold Them. So
Speaker 1: if you've played Texas Hold Them before, it's it's a
Speaker 1: form of poker for those.
Speaker 2: That you know.
Speaker 1: I don't want to assume anybody knows anything. But if
Speaker 1: you've played poker before, you've played Texas, hold them, right.
Speaker 1: You get two cards. This is typically the game that
Speaker 1: you see people playing in the movies, right, if they're
Speaker 1: playing poker.
Speaker 3: That's usually text.
Speaker 1: Hold them and they flip three cards for the river, right,
Speaker 1: and then they and then they flip another card in
Speaker 1: another card right. And so what you do is you
Speaker 1: you get your two cards and you look at them,
Speaker 1: and then there are tokens out. There's one token per player,
Speaker 1: and so that you know there's one with one star,
Speaker 1: one with two stars. We were playing three players, so
Speaker 1: one with three stars, right. If you have four players,
Speaker 1: then there's gonna be another one four stars.
Speaker 2: Right.
Speaker 1: So the person, if you think you have got the
Speaker 1: best hand at that moment, then you grab the three star, right.
Speaker 1: And so typically if you have a face card, right,
Speaker 1: you're gonna grab that. Or if you have a pair,
Speaker 1: if you start with a pair, then you may grab
Speaker 1: that three right. And then maybe somebody else is going
Speaker 1: I have an ace, and so they may take the
Speaker 1: three from you, right, and you just take it back,
Speaker 1: and you can continue to steal the tokens from other
Speaker 1: players until everybody has a token.
Speaker 2: In front of them, and they're pretty comfortable with what
Speaker 2: they have.
Speaker 1: And then what you do is you flip the river, right,
Speaker 1: so you flip those three cards and you do it again, right.
Speaker 1: So maybe the pair I started with that I was
Speaker 1: fighting over the three star token. I had a pair
Speaker 1: of threes, right, And when we flip the cards, now
Speaker 1: somebody is more aggressively trying to take the three because
Speaker 1: there's an ace and a out there, and so I'm
Speaker 1: going to assume that they have a pair of ases
Speaker 1: or a pair of kings, and so their hand now
Speaker 1: beats my hand, if that makes sense, and so I
Speaker 1: may go for the two or the one, right, and
Speaker 1: then you flip another card and it's a three. Now
Speaker 1: I have a three of a kind, and so I'm
Speaker 1: going to be taking that three and trying to say, no,
Speaker 1: I have the best hand because my three of a
Speaker 1: kind beats your pair of ases, right, But.
Speaker 2: I don't know what everybody else has.
Speaker 1: And so what you're trying to do is you're trying
Speaker 1: to win three hands as a team, right, with everybody
Speaker 1: having the right token at the end of the round,
Speaker 1: before you lose three hands, right, And so if you're
Speaker 1: wrong if somebody has a better hand than you and
Speaker 1: you have a higher token than them, right, then you
Speaker 1: lost anyway, So anyway, it was really fun. We got
Speaker 1: to the point where we were playing around in like
Speaker 1: ten minutes, right, We would get through a game in
Speaker 1: twenty minutes, half hour.
Speaker 2: It was really really fun. Like sometimes it was hard.
Speaker 1: Right, So I had have like an eight and a six,
Speaker 1: and somebody else that I was playing with they had
Speaker 1: a ten and a six, and the six came out
Speaker 1: in the river, right, So we both have a pair
Speaker 1: of sixes, which means that the other card that we
Speaker 1: have is the one that determines whether or not we win, right,
Speaker 1: and so then it's down to okay, yeah, you know
Speaker 1: we picked it wrong because we had two cards that
Speaker 1: were close to each other. But anyway, it was really
Speaker 1: really fun, really enjoyed it. Board game geek waits it
Speaker 1: at one point sixty four. I would also imagine that
Speaker 1: if we had more than three players playing, it would
Speaker 1: be harder because now you're trying to figure out where
Speaker 1: you fit in among more hands. My buddy who bought
Speaker 1: the game, he's learning it so he can teach it
Speaker 1: at SaltCON here in Utah.
Speaker 2: It's Big Board Game Convention.
Speaker 1: He's helping them teach the popular games or the hot games.
Speaker 1: He said that the guy that he learned it from,
Speaker 1: he and his wife play at two player, and they
Speaker 1: each play with three hands, and so that I would
Speaker 1: imagine might get a little more complicated as well, because
Speaker 1: now you have to keep track of which of my
Speaker 1: hands is winning at the time, along with trying to
Speaker 1: keep track of what the three hands of the other
Speaker 1: person is right. So with six hands, I would guess
Speaker 1: that's gonna get tricky.
Speaker 2: But anyway, it was fun. I really enjoyed it, So
Speaker 2: I'm gonna pick that. Yeah, So then other picks.
Speaker 1: I am launching JavaScript Geniuses right now. If you sign
Speaker 1: up before Valentine's Day, which is this we have one
Speaker 1: hundred and eight people watching. If you go to JavaScript
Speaker 1: geniuses dot com and you sign up. If you sign
Speaker 1: up before Valentine's Day, then you get the meetups and
Speaker 1: the videos and everything else for JavaScript developers.
Speaker 2: Incidentally, if you do Ruby, I'm doing Ruby Geniuses too,
Speaker 2: and it's the same format.
Speaker 1: We're going to have a meetup every week, you'll get
Speaker 1: to come to the book club, you'll get videos from
Speaker 1: me every week. Right at least one, probably two right,
Speaker 1: where it's hey, here's how you do a thing in JavaScript,
Speaker 1: kind of like rails casts used to do, or it
Speaker 1: sounds like Kelvin does it with sales casts. Right, Mine's
Speaker 1: more generally JavaScript. It'll probably have if there any frameworks
Speaker 1: in is probably going to be mostly React. But yeah,
Speaker 1: so I'm putting that together. But if you sign up
Speaker 1: before Valentine's Day, I'm also doing a one hour coaching session,
Speaker 1: which I usually charge two hundred and fifty dollars four
Speaker 1: and I'm also throwing in six months of text of
Speaker 1: voice coaching, which is essentially if you've used you can
Speaker 1: use like WhatsApp. That's probably what I'm gonna use WhatsApp.
Speaker 1: But you can send me a voice message on WhatsApp
Speaker 1: and I'll respond to you on the voice message. So it's, hey,
Speaker 1: I'm stuck trying to figure out this performance problem on
Speaker 1: my app, and this is what I've tried.
Speaker 2: And then I may get back to you and say
Speaker 2: have you tried this, this, and this.
Speaker 1: You may get an answer for me off the top
Speaker 1: of my head, or you may get an answer for
Speaker 1: me because I bugged Dan Shapir and said, what would
Speaker 1: you do here, right, because I know people who can
Speaker 1: help me answer the questions if I can't.
Speaker 2: Right, similar with the Ruby.
Speaker 1: So anyway, if you want to sign up JavaScript Geniuses
Speaker 1: dot com, I have monthly, yearly in lifetime and you
Speaker 1: can go sign up over there, and like I said,
Speaker 1: you get the coaching for six months and you get
Speaker 1: the one coaching session. So if you're trying to find
Speaker 1: a job or you feel like you're stuck in your career,
Speaker 1: that this is a really good opportunity for something like that.
Speaker 1: So anyway, those those are my picks. I also, I'm
Speaker 1: gonna throw out a movie pic. So I finally got
Speaker 1: around to watching Dune Part two.
Speaker 2: It was good. I liked it.
Speaker 1: The book's still better, sorry, but I enjoyed it. So anyway, Calvin,
Speaker 1: what are your picks?
Speaker 3: Yeah, it was like, you have some nice pick and
Speaker 3: I like the name Drivascal Geniuses. So my pick just
Speaker 3: a game I.
Speaker 4: Want to learn. I've been putting it off a while
Speaker 4: to learn it. So the only board in my coinity
Speaker 4: plays chess, but I want to let go because I
Speaker 4: was told it to the next harder strategy game and
Speaker 4: it's kind of different from the mindset of playing chess,
Speaker 4: we get to like capture pieces and stuff.
Speaker 3: We go, it's more like having control of territories.
Speaker 4: Yeah, so it's to be fun like yeah, so the
Speaker 4: first time I saw it, it was just all white and.
Speaker 3: Black pebbles and it was just confusing.
Speaker 4: But I'm going to get a board and I'm going
Speaker 4: to try to learn it because I like those sort
Speaker 4: of games. So those just like like the other games
Speaker 4: I will be playing.
Speaker 2: Yeah, then you just go are definitely fun.
Speaker 1: And the mechanics are reasonably simple, but the strategy.
Speaker 3: Is just.
Speaker 2: That.
Speaker 1: That's why I love them, right, Yes, it's like okay,
Speaker 1: and there's always somebody better than me that you know,
Speaker 1: after they soundly trounce me, then it's okay, what what
Speaker 1: did I do wrong?
Speaker 2: Right? How can I do that? I just love it.
Speaker 4: Yeah, it's really good. It's just good for the strategy,
Speaker 4: like that's why I love it, and it's it's fun
Speaker 4: and into for my pick. It's let's see. So mostly
Speaker 4: just so scarce to come like take the free videos
Speaker 4: because I want more people to do pull that Java script.
Speaker 4: It's like the old vision that one, because I think
Speaker 4: it's the one advantage we're not really leveraging a lot
Speaker 4: rightan dowgive was like a.
Speaker 3: Great gift of geoscript everywhere.
Speaker 4: But still people still want to go to rails or
Speaker 4: love of to do back and why what are we
Speaker 4: getting wrong or what is it education? So I'm solving
Speaker 4: the educational part, also doing open source parts to make
Speaker 4: it easy to viud full stack apps which are watched great,
Speaker 4: because I think it's an unfair advantage that we should
Speaker 4: level so more.
Speaker 3: Mm hmmm.
Speaker 4: So yeah, movie pick. I saw Marco Polo so on Netflix.
Speaker 4: I've I've always kipped it because I thought I might
Speaker 4: not like it, but it was really good. I liked
Speaker 4: the series Marco Polo so even though I think there's
Speaker 4: one more season that has to come, like maybe like
Speaker 4: season three or so, it's really good. But my my
Speaker 4: favorite series of all time has always been Suits, but
Speaker 4: Marco Polo was good.
Speaker 2: Yes, my wife I started watching. We have trouble getting
Speaker 2: into it.
Speaker 1: I'm just wondering if the first season is a little
Speaker 1: bit harder to get into it.
Speaker 4: It was good for me, like all true, like every season. Yeah,
Speaker 4: I guess it's preference.
Speaker 2: Yeah.
Speaker 1: Then the the series that we're watching on Netflix right
Speaker 1: now is The Night Agent.
Speaker 3: And oh, Yeah, didn't work for me. Yeah, yeah, that
Speaker 3: one did work for me.
Speaker 4: I don't know why, Like I felt it was too
Speaker 4: I like espionage and spy movies, but I couldn't get
Speaker 4: on that one. It just felt too the script was
Speaker 4: too too predictable, and I wanted a little bit of
Speaker 4: a mystery like with Blacklists. Yeah, I guess I was
Speaker 4: compa I wanted too much.
Speaker 1: Yeah, no, I I can definitely see where you're So
Speaker 1: the first season I felt like had enough, uh you know,
Speaker 1: it had enough novelty to it, you know, because yeah,
Speaker 1: they was somewhat formulae, but I thought it had some
Speaker 1: novelty to it. The second season, I mean, we've only
Speaker 1: watched two or three episodes, and yeah, I'm I'm worried
Speaker 1: that they're because they have they've leaned a lot into
Speaker 1: a lot of things that generally have and then most
Speaker 1: of the other spy thrillers. So we'll see, we'll see
Speaker 1: how it goes. But yeah, the first season we enjoyed
Speaker 1: for just how Yeah, there were some parts that we
Speaker 1: were different. Blacklist was definitely there was a there was
Speaker 1: a twist or an angle on every episode, and.
Speaker 2: That made it fun to watch.
Speaker 1: It's like yeah, well, and some of it, you know it,
Speaker 1: some of it followed some of the same, you know,
Speaker 1: predictable patterns.
Speaker 2: But then there was always that thing.
Speaker 1: At the end where it was like, and you just
Speaker 1: made Readington crapped on more money or gave more power
Speaker 1: or right, right, so you did this good thing and
Speaker 1: took this criminal off the street, but it turned out
Speaker 1: that there was this other angle on it, and so
Speaker 1: you're watching it every time it went Okay, what's the
Speaker 1: angle here?
Speaker 3: Yeah?
Speaker 4: Yeah, the speaking of that one movie that was really
Speaker 4: good too, I think you might like it if you
Speaker 4: like political thrillers.
Speaker 1: To The Diplomat, if you said it, yeah, we've watched
Speaker 1: The Diplomat.
Speaker 3: I think it's good.
Speaker 2: Yeah, that one's been really good. How do I how
Speaker 2: do I put this one?
Speaker 1: So a lot of the things that happen in it, right,
Speaker 1: you talked about things being somewhat formulaic, A lot of
Speaker 1: that stuff, right, as far as like the spy and
Speaker 1: cloak and dagger stuff, right, Yeah, you kind of follow
Speaker 1: along with that and go, yeah, this is this is
Speaker 1: kind of a spy thriller.
Speaker 2: But the difference is is that she's the ambassador and
Speaker 2: her husband's this wild card and and you know, you
Speaker 2: you keep going.
Speaker 1: He's totally on her side, and then in the next
Speaker 1: breath he's like, he's totally destructive to this, right, And
Speaker 1: so it's the characters that make the difference there, because
Speaker 1: the circumstances just are you know, it really keeps you guessing.
Speaker 2: And so, yeah, it was good.
Speaker 3: It's it was fun and like you always have these.
Speaker 4: Comic on that tune to it, so it's like, see
Speaker 4: us of what you could laugh at, like some of
Speaker 4: the things she's doing, yeah.
Speaker 2: Well, and and some of that too. Is so typically when.
Speaker 1: You see the spy thrillers and stuff like this, the
Speaker 1: motivations are usually more or less the same.
Speaker 2: And with her, she's not right.
Speaker 1: It's like I yeah, yeah, they come out from in
Speaker 1: the diplomat with I don't want to give it too
Speaker 1: much away, but they come out pretty early in the
Speaker 1: diplomat that she's essentially up to become the vice president.
Speaker 2: Right.
Speaker 1: They're looking to push the vice president out and they're
Speaker 1: thinking about pulling her in as the VP, and and
Speaker 1: she doesn't why, she doesn't know if she wants it,
Speaker 1: and so so she doesn't because she just wants to
Speaker 1: be herself and do things the way she's always done them,
Speaker 1: and so and then there's some there character development things
Speaker 1: like that that you know anyway, that that's the fun
Speaker 1: part of that.
Speaker 2: What are you saying?
Speaker 4: Have you seen all the all the episodes? I don't
Speaker 4: want to spoil it for you in anyway.
Speaker 1: Yeah, I've seen them all, but I don't want to
Speaker 1: spoil I don't want to spoil it for anybody else.
Speaker 3: I can't you all go say it's nice, it's a
Speaker 3: nice watch.
Speaker 2: Yeah, it gets it gets deeper and deeper.
Speaker 3: Into this mess anyway. Your husband he's crazy, Yeah, he.
Speaker 1: Is, he's he's But the thing is is he's doing
Speaker 1: what he thinks is best for her. There are times
Speaker 1: where you're thinking he's also doing what's best for him.
Speaker 1: But yeah, but it makes it really interesting because the
Speaker 1: themes that motivate him and the reasons he makes.
Speaker 2: His decisions are completely different from her.
Speaker 1: And so yeah, so you're like, he does stuff and
Speaker 1: you're like that was really sneaky, and.
Speaker 2: Oh that hurt because you're rooting for her anyway.
Speaker 3: Yeah, it's good stuff.
Speaker 1: Yeah anyway, all right, Well, if people want to connect
Speaker 1: with you, where's the best place to do that?
Speaker 4: Yeah, X I think where I'm at most of the time. Yeah,
Speaker 4: Dominos Calvin, Dominos on Calvin. Yeah, thank you, that's why
Speaker 4: we do it. Yeah, So could mention me on anything
Speaker 4: and I'll answer when I'm online.
Speaker 2: Actually, all right, good deal. We'll go ahead and wrap
Speaker 2: it up here. Thanks for coming.
Speaker 3: Thank you so much. I love that.
Speaker 1: Yeah, all right, folks, we're gonna wrap it up here
Speaker 1: until next time.
Speaker 2: Max out