Jack_Herrington:
welcome to react roundup. I am your host jack herrington This week and with me are my esteemed co-panelists, Paige Neateringhouse
Paige_Niedringhaus:
Hey everybody.
Jack_Herrington:
and TJ VanTol.
Tj_Vantoll:
Hey everyone.
Jack_Herrington:
All right. Very cool. So before we get into this week's episode, I'd once again like to invite everybody to jump on to the Discord server and jump into our Discord channel. It's linked to in the show notes. And yeah, just ask us any questions you want or have any comments about what we talk about. Ham and pineapple pizza lately. So,
Paige_Niedringhaus:
The great
Jack_Herrington:
you know,
Paige_Niedringhaus:
debate.
Jack_Herrington:
things like, yeah, that's not even a bad I'm in. I'm in. I'm sold. You
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
sold me on it. All right. So, yeah, join in the fun. OK, so this week we do not have a guest, but we are going to be talking about the I would say is a big word ancillary skills associated with web development. And it will just kind of throw in. our thoughts on these things and I'll kick us off that I think a really important thing for react devs to learn outside of just react is really get into CSS. I've seen a lot
Paige_Niedringhaus:
Mm.
Jack_Herrington:
of folks get, you know, try to use the components too much and they don't learn like what's underneath them. Like things like learn flexbox layout grid layout, learn all the different ways you can do layout in CSS. That's for sure.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Learn animations because I think people jump right right into things like re-motion when you when all you want to do is like a fade. You
Paige_Niedringhaus:
I'm
Jack_Herrington:
know,
Paige_Niedringhaus:
sorry.
Jack_Herrington:
there is there's decent CSS animations out there, oftentimes built into the, you know, CSS frameworks that have no name like Tailwind.
Paige_Niedringhaus:
Hehehe
Jack_Herrington:
And then also media queries, things like, you
Paige_Niedringhaus:
Yes.
Jack_Herrington:
know, just make sure that you understand. Like how to just do a native media query, because the framework is basically doing all of that for you. And if it doesn't do that for you, then there's no reason to go and bring in a whole bunch of stuff. You just use some basic CSS. So just
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
understanding those kinds of things.
Tj_Vantoll:
is another basic, how about just display block versus inline
Jack_Herrington:
Oh
Tj_Vantoll:
versus
Jack_Herrington:
my gosh
Tj_Vantoll:
inline
Jack_Herrington:
yes.
Tj_Vantoll:
block? Just like,
Paige_Niedringhaus:
Yes.
Tj_Vantoll:
it's amazing how often that comes up and how
Jack_Herrington:
Mm-hmm.
Tj_Vantoll:
lots of times beginners just don't even understand the concept of what those are even doing
Jack_Herrington:
Yeah.
Tj_Vantoll:
as well.
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
Kinda
Paige_Niedringhaus:
yeah, I mean,
Jack_Herrington:
related
Paige_Niedringhaus:
it's
Jack_Herrington:
to Flexbox.
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
it's great when you can take. a component library like Bootstrap or Ant Design or Chakra or any of those libraries and kind of use it as a starting point. But I can guarantee you at least, at the very least, you're going to want to change the colors to
Jack_Herrington:
Hehehe
Paige_Niedringhaus:
match whatever your site's colors are, your brand color if you're working for a company. And most likely your designers are not going to want to do whatever the defaults are for those components. you know, drop downs and text boxes and whatever, you're almost guaranteed that margins and padding and text link colors and all these buttons will be different than what is available out of the box. So knowing how to style those and change what they look like, if not build them from scratch, is, I would say, critical to anybody who wants to be a front-end developer.
Jack_Herrington:
Totally. And if you're using like a CSS preprocessor, like SAS
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
or LESS or whatever,
Paige_Niedringhaus:
Yep.
Jack_Herrington:
like when you jump onto the project and you're starting to say, oh, I'm going to do front end of this project and you see that, just spend a little bit of time learning it, learning all the little commands because they have things baked into most of those frameworks like lighten, darken, all that kind of stuff so that you can make relative colors, you know,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
and then when you have like your base color set. And then you have a bunch of, oh, well, this needs to be darker contrast. So instead of literally hard coding the hex value, you actually, oh, no, that's that value, but darkened. And
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
then when you can change it in one place, and boom, and they all do this.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
And I think even to take a step further back, my, probably my biggest CSS tip is for people to just, just take CSS seriously. I think
Jack_Herrington:
Mm,
Paige_Niedringhaus:
Ha ha ha!
Jack_Herrington:
yes.
Tj_Vantoll:
lots of times JavaScript developers will just look at JavaScript as the real code and CSS is something that you kind of have to throw together. And just once it looks good, great, but don't they don't think about why what's happening is actually happening. They don't treat it as actual code that needs to be reviewed and cleaned up and whatnot.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
And just in general, I feel like if you take it seriously, you'll start to learn some of the underlines of how it works. You'll get less frustrated with it over time. You'll just be more capable at what you do.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Yeah, a big sign that you can get whipsawed around by CSS is if you get a lot of bugs on your code about responsive like, oh, this
Paige_Niedringhaus:
Yes.
Jack_Herrington:
works great on desktop. But I'm on phone. It looks terrible. And you're like, I don't know. I just took the stuff that the designer gave me the CSS and I just smushed it in there. I don't know how it works. Don't
Paige_Niedringhaus:
Hehehehe
Jack_Herrington:
blame me. Like, you don't want to be that person. You know, you want to be the person who's like, okay, or upfront does it right.
Paige_Niedringhaus:
Hehehe So another thing that I would throw in as something that you should know that is not necessarily React or JavaScript focused is how to write automated tests. Because this is one of those things that a lot of people are resistant to testing, but as we get further along in web development, it just becomes more and more of a requirement. You have to be able to write unit tests, end-to-end tests, one one of those many of those some combination of them, and being able to figure out how to set up a testing framework and then actually use it and test the things that you want to is pretty much a requirement today like I was saying. So get familiar even if it is just writing a few tests with how to go about selecting a framework, how to set it up in an existing what kind of syntax it needs because it's probably going to be something that you will either need to provide as part of your build process in a company or it'll be one of your steps in your build pipeline. So you know just just get familiar with it. It's it's gonna only help you.
Jack_Herrington:
It's going to save your butt. Exactly.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
The question I'm sure we could talk all day about which EDE, you know, what is Cypress
Paige_Niedringhaus:
Mm.
Jack_Herrington:
or whatever, you know, which EDE framework to use. But I guess my question is for you, what, how do you, what, how much do you EDE and how much do you unit test?
Paige_Niedringhaus:
So I've, I follow the testing pyramid, which is, has been established, I think, by multiple people at this point, but it's basically end-to-end tests are the, the things that I write the fewest of, but they're the most comprehensive tests because they are supposed to go from the time that a user starts using your application to the time that they're done and it, and all the things that they could do in between. But typically there's only a few of those because
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
they take the longest to run.
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
And then unit and integration
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
tests kind of
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
are the things that I write a lot more
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
of, but they cover a lot more of the
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
edge cases that you would see for
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
particular interactions
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
between various components.
Jack_Herrington:
I'm sorry, I'm sorry.
Paige_Niedringhaus:
So that's where you would test things like, does this error occur when, you know, when I pass in a bad value? Does this error message get triggered? Or when I render this component, are all of these buttons visible or things like that? So very much the big, heavy, expensive tests of end-to-end, I write the fewest of, and then the integration tests which run quickly and are headless and need a lot less in the way of setup, I tend to write the most of.
Jack_Herrington:
Mm-hmm. How about
Tj_Vantoll:
And
Jack_Herrington:
you,
Tj_Vantoll:
I
Jack_Herrington:
TJ?
Tj_Vantoll:
think too with any of those sorts of setups the more you can automate the better because You want to put yourself in a situation where writing tests is convenient so that you actually do it Versus if it's a painful process, you're gonna be less likely to do it ship without your tests and and whatnot So any automation you can add is is definitely a plus
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Yeah, I think the trick is you don't want to get to the point of like 100% coverage though, because then, you know, your application becomes so stiff that it's
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
really hard to make even minor changes and have it still work. And the other caveat I put in is... Kind of don't use the snapshotting. I know it's super easy, but like
Paige_Niedringhaus:
Oh
Jack_Herrington:
to
Paige_Niedringhaus:
yeah.
Jack_Herrington:
snapshot, you know, some dialogue or something and you snapshot the text in the dialogue and then your boss is like, hey, we want to change, you know, an and to an, you know, a whatever. And like, the next thing you know, you're like breaking unit tests on
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
and and they're like, no, this is not good. And you can't break the build on that. That's crazy.
Tj_Vantoll:
I feel like knowing what to test and what to not test is very much an art that
Jack_Herrington:
Mm-hmm.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
there's definitely good stuff you can read on it, but some of it is just, you have to experience, like you have to write flaky tests to identify flaky tests.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Yeah.
Tj_Vantoll:
Because Jack, clearly you've written that test before. Like I can
Jack_Herrington:
Oh,
Tj_Vantoll:
tell
Jack_Herrington:
yeah, oh, yeah.
Tj_Vantoll:
that
Jack_Herrington:
Oh, yeah in
Tj_Vantoll:
was
Jack_Herrington:
the
Tj_Vantoll:
not
Jack_Herrington:
beginning.
Tj_Vantoll:
a hypothetical
Jack_Herrington:
I was like,
Paige_Niedringhaus:
That was
Tj_Vantoll:
story.
Paige_Niedringhaus:
experience.
Jack_Herrington:
I'm lazy. I'm lazy as hell. It's like, oh, yeah snapshot That sounds great. Let's do that like
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
I don't know, you know, but then
Tj_Vantoll:
Yep.
Jack_Herrington:
you know, really you realize it like Yes, now your codes at 100% unit test coverage, but like always anyway when these tests break it has tells me nothing It literally like
Tj_Vantoll:
Yep.
Jack_Herrington:
this test broke. OK, well, why did it break? Well, since the test is basically test snapshot and you're like, well, oh, so yeah, you should really just go in and make sure that like instead of using the snapshot, go in and test the specific things that you
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
really care about. Like, did this data value get computed and put on there, you know, in some place? You know.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Like, did you calculate the total of the cart or whatever it is? You know, that that's the test. Like all
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
of the little like did the CSS values, like the munging CSS class names equal? No. Right. Who cares?
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Right. You know, there's a difference. There's a whole different thing for like E to E tests that do visual comparisons, which is like a whole weird area.
Paige_Niedringhaus:
Yeah, that's still, that whole visual regression testing
Jack_Herrington:
Mmmph.
Paige_Niedringhaus:
stuff is something I've never gotten into. It seems useful and I've definitely seen where it could have been helpful when stuff has gotten really, really wrong looking, but it's also something that I don't really want to get into.
Jack_Herrington:
I'd love to have a guest on sometimes that really knows that and could like walk us
Paige_Niedringhaus:
Mm.
Jack_Herrington:
all through it. Like, hey, here's
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
how to do this in a way that is not nuts.
Paige_Niedringhaus:
Hahaha
Tj_Vantoll:
Well, speaking of knots, I can
Jack_Herrington:
Hahaha!
Tj_Vantoll:
transition to my, to my, the first one that came to mind for me, which is DNS, because
Paige_Niedringhaus:
Mmm.
Jack_Herrington:
Oh!
Tj_Vantoll:
I, I feel like that's a topic that as a React developer, you don't have to know. every day, but knowing some background of how it works. And I could even expand that to like DNS and just HTTP in general,
Jack_Herrington:
Mm-hmm.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
that like the basics of how that works, how requests work, how different things like a records work is not something that's going to come up necessarily day to day, but having some background on there is super handy. Like
Paige_Niedringhaus:
Yep.
Tj_Vantoll:
if you need to spin up something quick, having the idea of how that works, how that works with hosting providers can be. just a handy little skill to have.
Jack_Herrington:
That
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
used to be a classic interview question. How does that, when the user hits your link, your URL,
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
give me every step to the server and back. And
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
down to the DNS stuff.
Tj_Vantoll:
It can come in handy like when you're trying, even when you're trying to debug a problem and you want to know what layer the problem is happening at just knowing
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
the basics of how requests flow around the internet. And I don't think anybody that is a front end developer needs to know this stuff like in and out because you can go all in and fully DevOps and
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
you can go deep.
Paige_Niedringhaus:
that's what it was. It's DevOps right there.
Jack_Herrington:
Mm-hmm.
Tj_Vantoll:
You can go deep with this stuff. And I think if you're, if you're the type of person that wants to do react, wants to do front end, that's probably a little bit overkill, but just knowing how to set up a basic site on a host, like with some really, really simple a records and how that site gets accessed, um, can just come in handy. Yeah.
Paige_Niedringhaus:
Mm-hmm. If you don't want to deploy everything on Netlify, where you have to think about none of that. Ha ha ha.
Tj_Vantoll:
You still have to think about some of it if you're setting up a custom domain on Netlify.
Paige_Niedringhaus:
That's true.
Tj_Vantoll:
So
Jack_Herrington:
Mm-hmm. Yeah.
Tj_Vantoll:
if you haven't already started a bad habit, start buying up some domain names and then
Jack_Herrington:
Ha ha ha
Tj_Vantoll:
just figure out how to get
Paige_Niedringhaus:
Yep.
Tj_Vantoll:
a hosting server to point at them. It's like a rite of passage for every web developer.
Paige_Niedringhaus:
It is, and I still hold my breath every time I change those things and hope
Jack_Herrington:
Mmm.
Paige_Niedringhaus:
that it works correctly.
Jack_Herrington:
And this is when you get like all those little $10 hosting, you know, or DNS bills or whatever. Or, you know,
Paige_Niedringhaus:
Yup.
Jack_Herrington:
at the end of the year, you get like a $300 domain name renewal thing. You're like, all right. Yeah, fantastic. But those are the bad decisions I made coming back to get me.
Tj_Vantoll:
Yeah, I registered my kids' names as domain, like.com domain names years ago.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
And it seemed like a cool idea at the time, but
Jack_Herrington:
Ha
Tj_Vantoll:
I've
Jack_Herrington:
ha
Tj_Vantoll:
never
Jack_Herrington:
ha
Tj_Vantoll:
really
Jack_Herrington:
ha ha!
Tj_Vantoll:
done anything with them. And I still pay the bill every year when it comes
Jack_Herrington:
Yeah, yeah,
Tj_Vantoll:
in.
Jack_Herrington:
yeah.
Tj_Vantoll:
And
Jack_Herrington:
Mm
Paige_Niedringhaus:
Oh
Tj_Vantoll:
I'm
Paige_Niedringhaus:
yeah.
Jack_Herrington:
hmm.
Tj_Vantoll:
starting to really question why I even did this at all.
Paige_Niedringhaus:
I'm sorry.
Jack_Herrington:
Don't feel bad, I pay my daughter is like six dollar a month, like Minecraft host thing
Tj_Vantoll:
Oh yeah,
Jack_Herrington:
from
Tj_Vantoll:
I pay
Jack_Herrington:
years
Tj_Vantoll:
that too.
Jack_Herrington:
ago, and I don't think she's used it in like six months. So and whenever I whenever I say, hey, can we get rid of this? No, no, no, no, no. Like
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
Yep.
Jack_Herrington:
you you are and use
Paige_Niedringhaus:
Yep.
Jack_Herrington:
this in once. But so back on the DevOps thing, I would say, yeah, definitely knows some, at least some serverless. Like have deployed stumbling in the serverless model, but also understand, also spend a little bit of time understanding like Docker. Because I think Docker is still
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
super vibrant out there. And in
Paige_Niedringhaus:
Yes.
Jack_Herrington:
fact, actually, I think like Docker just came out with something in the CI CD space. What is it called? Dagger?
Paige_Niedringhaus:
Hmm
Jack_Herrington:
Which is basically, oh yeah, it's really cool. It's actually like, well, you know how like every CI CD is different? Like GitHub CI CD is one thing and then
Paige_Niedringhaus:
Yep.
Jack_Herrington:
GitLab CI CD is something else.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Yeah, Dagger is basically trying to unify that. Like you have a CI CD, you can run it locally, you
Paige_Niedringhaus:
Mmm.
Jack_Herrington:
know. Whoa. And then you, you know, then then you put the dagger configuration up on whatever host dagger, I guess. And
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
there you go. Now you're in. And so you can actually test your CI CD without having like the the whole host. Oh, my God. The check in list of like, now I'm trying this value. Now I'm trying that value and like
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
fail, fail, fail, fail, fail, you know, like and finally
Paige_Niedringhaus:
Hehehehe.
Jack_Herrington:
get the green light. You're like, yes. And they
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
get.
Tj_Vantoll:
I think I just saw a conference talk on some work Visual Studio Code is doing to try to make Docker, because they have really good Docker
Jack_Herrington:
Mmm.
Tj_Vantoll:
integration now,
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
and they're doing more to try to make it simple so that you can set up a repository with just like little configs. and then VS Code will take care of everything else, like setting up your whole environment. It's based off Docker, so that's what they're using under the hood, but they're trying to make the whole part, the part of setting it up, like the whole Docker container specification, which is a little bit of an ugly mess. They're trying to help clean that up a little bit. So it's getting easier and easier to set up that sort of stuff, and it's becoming approachable for people like us even to dip our toes into it.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
interesting. Yeah, I mean, I love Docker
Tj_Vantoll:
Thanks for watching!
Paige_Niedringhaus:
when it works. Setting up Docker containers is not fun, and it's not something that I'm very good at. But when somebody else has done it for me and it just
Tj_Vantoll:
Exactly.
Paige_Niedringhaus:
works, it's fantastic.
Jack_Herrington:
Yeah, when you got on get onto a project and they've got like a Docker development set up so you don't actually have
Paige_Niedringhaus:
Mm.
Jack_Herrington:
to do all of the you know the DB install and blah blah blah blah blah it's like okay just hit Docker and there you go you're
Paige_Niedringhaus:
Yep.
Jack_Herrington:
good it's really nice
Tj_Vantoll:
The last thing, just before we move on to the next one, so I've said DNS and HTTP, but I think along with that, I would also include caching, which was part of HTTP,
Jack_Herrington:
OHHHHH
Paige_Niedringhaus:
Yes.
Tj_Vantoll:
which can get a little bit hairy, but if you really know how those HTTP headers work, it can get you out of a lot of confusing bugs that you're almost guaranteed to run into, like why is my CDN holding onto this? Why am I still seeing the old value? it's pretty much a certainty you'll hit that at some point in your career. So just knowing the basics of how some of those cache headers work and how to use the browser tools to read them can,
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
can be super valuable as well.
Jack_Herrington:
I'm gonna pull up TJ. TJ, what is a CDN?
Tj_Vantoll:
Yeah, content delivery network, right?
Jack_Herrington:
Distribution
Paige_Niedringhaus:
Yep.
Tj_Vantoll:
Yeah.
Jack_Herrington:
or delivery, whichever
Tj_Vantoll:
Distribute,
Jack_Herrington:
one, yeah.
Tj_Vantoll:
yeah, I get tied up. But basically it's like somebody else's server that's CDNs are specifically designed to distribute static assets, or at least they usually are. So it's
Jack_Herrington:
Yeah.
Tj_Vantoll:
oftentimes a place where you host your HTML, your JavaScript, your CSS on a server that's carefully constructed to deliver those things super fast.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
And normally those types of sites put cache headers that last a very long time. Like part of the whole reason that we're using them is you want users to get stuff fast. So usually you wanna cache those values and they have some way of busting the cache by like changing a version number in the URL or something.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
But things do go wrong with those processes,
Paige_Niedringhaus:
Hehehehe
Tj_Vantoll:
even if you're using tools like that. And so knowing a little bit about how all that works or at least like, I can't remember the syntax myself, but I've dealt with it enough that I know like the things to Google and the things to kind of look for, which honestly, for a lot of what we're talking about this entire episode, that's really the depth of understanding we're kind of talking about is a
Jack_Herrington:
Mm-hmm. Oh, yeah.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
lot of this stuff you don't have to like have memorized. If you put me in an interview question right now and ask me like all the HTTP headers and what they do, I couldn't do it. But
Paige_Niedringhaus:
now.
Tj_Vantoll:
I could like find around Google like no roughly where to look in the dev tools to kind of poke around at it. And I think that's kind of the depth of understanding. probably is worth striving for.
Jack_Herrington:
Page and
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
I were talking about this before the show and I was like, Oh my gosh, the really good engineers I've worked with in the past always have a notebook. I got actually a physical notebook or some sort of way or an or virtual notebook where they, when they research something like this, they just keep notes on it because you know, you forget, right? Oh, I'm going to look into cash, you know, the, you know, whatever cash values for HTTP and you know, I'm going to come to this understanding of it, but Like later on, you're going, oh, do I need to relearn all that? Well, at least, you know, you've got this thing you can go to. So I strongly recommend doing that. Not that I do that all myself all the time.
Tj_Vantoll:
Or you could make YouTube videos on it.
Jack_Herrington:
Ha ha ha
Tj_Vantoll:
I mean, that also works too. Or write blog posts, right? Like
Paige_Niedringhaus:
Right.
Tj_Vantoll:
it's amazing how much, I have quite literally referenced blog posts I've written years ago because it was
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
something I ran into, completely forgot the details and looked it back up. So
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
whatever medium that works best for you, paper pencil
Jack_Herrington:
Inc. Including
Tj_Vantoll:
or something virtual.
Jack_Herrington:
medium.
Tj_Vantoll:
Yeah,
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
Hehehehe
Tj_Vantoll:
exactly.
Jack_Herrington:
But that's a great idea. Oh, my gosh. That's like, yeah, we've talked so many times on these episodes about how, you know, get your name out there, get some blog posts.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
It's a brilliant idea.
Paige_Niedringhaus:
I
Tj_Vantoll:
I've
Paige_Niedringhaus:
mean,
Tj_Vantoll:
seen
Paige_Niedringhaus:
that's
Tj_Vantoll:
some
Paige_Niedringhaus:
where
Tj_Vantoll:
people.
Paige_Niedringhaus:
I... Well, that's where I get a lot of my best blog posts that I write about is just stuff that I've had to learn at work. And then I'll just take a quick note of it in a word document that I keep on my phone of like new blogs to write in the future at some point. That's all it is.
Tj_Vantoll:
And if you don't want to turn something into a full, like a complete blog post, there's other places you can put them for just quick notes. I've used a Gist, G-I-S-T
Jack_Herrington:
Mm-hmm. Yeah.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
for quick little things because those are searchable in the future
Paige_Niedringhaus:
Yep.
Tj_Vantoll:
and you can make them public. So if you put out a little tip and you're like, hey, I think other people could benefit from this, you can make it public. Other people might find it and use it too. And if you want it to be private, then you can all of it, you know, there's a simple button, so.
Paige_Niedringhaus:
Mm-hmm. And I've seen seeing a lot of code pens lately when I search
Jack_Herrington:
Mmm.
Paige_Niedringhaus:
for like very
Tj_Vantoll:
Oh, that's
Paige_Niedringhaus:
specific
Tj_Vantoll:
another good idea.
Paige_Niedringhaus:
things it seems like a lot of people are making really nice little example code pens of stuff that seems like it or stuff that probably is covered in documentation somewhere But also you want to take it that one step further to do, you know XYZ that's slightly different and that's been quite helpful just being able to fiddle around in those and test things out and try them. So good on you people who are actually putting up those examples.
Tj_Vantoll:
Yeah
Jack_Herrington:
And good on you people to do that and also put those on their resumes because man there's nothing I like more
Paige_Niedringhaus:
Mmm.
Jack_Herrington:
in a resume than like some code I can click on and go to and just see I don't want to go to your get up I don't want to go and I will go to your get up but I'm not going to go and clone your repo but code
Paige_Niedringhaus:
now.
Jack_Herrington:
sandbox. Boy, you know, that's it runs. It runs right there.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
You know, you want to show me some cool stuff? Show me some cool stuff.
Paige_Niedringhaus:
Mm-hmm,
Jack_Herrington:
I'm like.
Paige_Niedringhaus:
or it doesn't and that tells
Jack_Herrington:
Or doesn't.
Paige_Niedringhaus:
me all I need to know
Jack_Herrington:
Well,
Paige_Niedringhaus:
as well
Jack_Herrington:
that's the thing. I mean, a lot of these things rot, right? Like,
Paige_Niedringhaus:
They do
Jack_Herrington:
you know, yeah, oh my gosh, especially the bleeding edge stuff.
Paige_Niedringhaus:
yeah that's the worst though i've been in in the svelte documentation a good bit
Jack_Herrington:
Hehehehe
Paige_Niedringhaus:
lately and there's there's tons of it which is great i'm really happy that svelte is so thorough but there are a few things that have broken so you look at the console of the svelte demo and it's like i can't find this thing and you're like well crap how do i find it if this svelte demo doesn't know how to do it either
Jack_Herrington:
Yeah, exactly.
Paige_Niedringhaus:
Ha ha.
Jack_Herrington:
Most felt page. Are you on the list for the next one or shall I dump it?
Paige_Niedringhaus:
Um, go ahead and jump in, Jack.
Jack_Herrington:
Okay, all right. So I would say the next one I would look into is API styles. So there's GraphQL,
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
Mmm.
Jack_Herrington:
there's REST. I mean,
Paige_Niedringhaus:
Yup.
Jack_Herrington:
in some ways there's gRPC and TRB. Well, TRBC is its own thing and then gRPC, you know, and then, so, I guess WebSockets as well. Um, you know, just, I have seen, like, I get a lot of questions from Beginning developers and sometimes the frameworks, particularly next, can kind of hide the fact that there is this differentiation between the server and the client.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
And those aren't, you know, the same thing. And they'll get into this notion of like, well, there's no like, you know, the state is automatically synchronized. It's like, no, that's not how that works. You're not a desktop app. You know, you're on a client server app. And so understanding the different protocols. You know rest the different flavors of rest graph QL. I think is again fantastic. And then if you want something in between those two like TRPC, if you're in a in a TypeScript is great. Although you don't need to use TypeScript. It just creates a rest API so you can still use that stuff. But if you're on TypeScript, it's just better. And then if you're in a world of. See any media and gaming, you know, you definitely get some GRPC as well, device control. So there's kind
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
of a little sub genre there. But if you guys are going to learn to for sure learn rest and GraphQL.
Tj_Vantoll:
Yeah,
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
and I feel like even at bigger organizations, it's pretty common for front end people to get involved with the API design, because oftentimes
Jack_Herrington:
Hmm.
Tj_Vantoll:
the front end will know how the data is actually going to be used. And
Paige_Niedringhaus:
Right.
Tj_Vantoll:
so
Jack_Herrington:
Yeah.
Tj_Vantoll:
it's important to have some constructive feedback in terms of how you want the data to come back, how you want to send the data. So if you know the basics of how the back end is structured ideally, or how APIs can be best reused, it can be
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
very, very useful.
Paige_Niedringhaus:
Well, and if nothing else, being able to understand how to set up a server in JavaScript, like a Node.js server of some sort is going to very likely be beneficial to you because yes, there is Next.js, which kind of does it for you, but pretty much any other front end framework that you pick up, whether it's React or, um, Svelte or something else, you're going to need to fetch data from an API. And the, the tried and true method of that is through a Node.js server with Express or Happy or one of the many
Jack_Herrington:
Hehehehe.
Paige_Niedringhaus:
backend frameworks running on it. But knowing up how to set up those routes and actually connect to that API in a safe fashion where you're hiding keys and secrets and things that should not be sent on the client side or visible to clients, uh, is really important. and I'm going to be back in a minute. Bye!
Jack_Herrington:
Yeah, and also I guess that kind of gets you into the world of monorepos, because oftentimes
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
in when you have that, when you have it like you've got your next app or your create react app or whatever you spell it up, you know, and they're talking to an API, but that API isn't part of that project. Then you have it in the same repo, right? But in a different directory and different project, and then understanding all the mechanics of like, okay, so if I want to just run it. then making sure that both the projects get compiled and both the projects get run. They're on different ports, and so that they can
Paige_Niedringhaus:
There
Jack_Herrington:
connect
Paige_Niedringhaus:
are no
Jack_Herrington:
with
Paige_Niedringhaus:
Coors
Jack_Herrington:
each other.
Paige_Niedringhaus:
issues.
Jack_Herrington:
And no core issues, exactly, even on localhost.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Yeah, definitely.
Paige_Niedringhaus:
Well, and that kind of ties into another one, which is not only knowing how to at least interact and kind of find your way around back end applications or pieces of an application, but also to know how to interact with databases. And it could
Jack_Herrington:
Mm-hmm.
Paige_Niedringhaus:
be NoSQL databases. So it could be MongoDB, which seems to be everybody's favorite if you're a JavaScript developer, or it could be SQL databases. So MySQL, Postgres, you know, the list goes on. There's a million of them at this point, but just knowing how to connect to them, set them up, write queries for them. use an ORM if you want to, which will basically write your queries for you. Those are all things that you're probably going to need to do at some point or another, or at least want to know how to do when faced with something like that.
Jack_Herrington:
Certainly and knowing which types to use, like when you want to use a relational database, when you want to use a document object database, you know, what the advantages and disadvantages are of each. You know, there's no one true winner. That's why we still have both, you know, Mongo and Firestore. And then on the other hand, we have Oracle and all that.
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
It's definitely handy. I have to admit to being like, I try to avoid databases like the plague. That's one
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
career decision. It's one of the reasons I went into front end development
Paige_Niedringhaus:
I'm sorry.
Tj_Vantoll:
is my brief forays with databases were not fun times, but I have
Paige_Niedringhaus:
Yep.
Tj_Vantoll:
to admit that knowing, knowing the basics of how to throw together an SQL query or whatever, it's going to come in handy. Even for debugging, I'm looking into a front end issue. It's like, crap, is this my problem or is the data underlying data bad? I might have to go into the database, run a quick where clause, get back things and compare it to what I'm seeing to kind
Jack_Herrington:
Mm-hmm.
Tj_Vantoll:
of differentiate. So having those skills, even if you don't know the in-depth bits of how a database works, I have to admit is kind of handy to have.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
It kind of I guess TJ that kind of goes along with they were talking about like on the HTTP side like understanding the entire chain from, you know, your up on the UI all the way through either the rest of the graph QL. Actually back to the database or back to the some microservice or whatever and being able to like put in a probe each one of those levels like hey is that number right you know coming out of the microservice or okay because it's not it's not right on the UI. So it's got to
Paige_Niedringhaus:
Right.
Jack_Herrington:
be somewhere
Tj_Vantoll:
Yep,
Jack_Herrington:
in between
Tj_Vantoll:
exactly.
Jack_Herrington:
those three and being being able to poke in there and debug is kind of like you know being able to fix your car it's like it
Paige_Niedringhaus:
Bye!
Jack_Herrington:
is a smart blogs is it run out of gas
Paige_Niedringhaus:
Is it the battery
Jack_Herrington:
you know there's
Paige_Niedringhaus:
right?
Jack_Herrington:
a battery
Tj_Vantoll:
Oh yeah, is, was
Jack_Herrington:
you
Tj_Vantoll:
this
Jack_Herrington:
know.
Tj_Vantoll:
something I could, yeah, is this something I can fix myself
Paige_Niedringhaus:
Hehehe
Tj_Vantoll:
or like,
Jack_Herrington:
Where did my
Tj_Vantoll:
or,
Jack_Herrington:
dad take it to the shop?
Tj_Vantoll:
or in which shop do I take it to? Right?
Jack_Herrington:
Right.
Tj_Vantoll:
Like
Paige_Niedringhaus:
Right.
Tj_Vantoll:
that's the other thing too,
Jack_Herrington:
Yeah, yeah,
Tj_Vantoll:
cause
Jack_Herrington:
yeah.
Tj_Vantoll:
I got to figure out if I know this is a database issue, well, maybe I have like
Jack_Herrington:
Right.
Tj_Vantoll:
database people at my company or whatever. Right. Versus
Jack_Herrington:
Yeah.
Tj_Vantoll:
I don't
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
want to annoy them if it's not that problem and
Jack_Herrington:
Sure.
Tj_Vantoll:
whatnot.
Jack_Herrington:
Which Slack channel do I put this in? Because I mean,
Paige_Niedringhaus:
I'm afraid.
Jack_Herrington:
you don't
Tj_Vantoll:
Yes.
Jack_Herrington:
want to get the microservices guys going, Yeah, it looks fine to me. Looks good on my
Tj_Vantoll:
That's
Jack_Herrington:
machine.
Tj_Vantoll:
the, yeah, that's like the 2020, 2020s version of that
Jack_Herrington:
HAHAHAHAHAHA
Tj_Vantoll:
phrase.
Jack_Herrington:
right? Which slide channel? Or if you're unlucky, which teams channel? Oh my
Tj_Vantoll:
but then
Jack_Herrington:
god...
Paige_Niedringhaus:
Oh,
Jack_Herrington:
Mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
Paige_Niedringhaus:
our Discord.
Tj_Vantoll:
but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but but Discord if you're lucky.
Paige_Niedringhaus:
Hehehe
Tj_Vantoll:
So I can take the next one and that
Jack_Herrington:
Sure.
Tj_Vantoll:
is Git or just
Jack_Herrington:
OOOOOOOH
Tj_Vantoll:
source control.
Paige_Niedringhaus:
Yes.
Tj_Vantoll:
Maybe you're
Jack_Herrington:
GOD!
Tj_Vantoll:
using something else.
Jack_Herrington:
YES!
Paige_Niedringhaus:
Yes.
Jack_Herrington:
Oh my god, yes!
Tj_Vantoll:
I, I feel like that's another one that a lot of us have a love hate relationship with, but
Paige_Niedringhaus:
Yep.
Tj_Vantoll:
Git is sort of, it's a tool that you almost use basically every day as a developer, you probably should be using every day if, if you're not and
Jack_Herrington:
Yeah.
Tj_Vantoll:
It's once again, like you can almost have an entire career on Git because you can get in the weeds at some point, but
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
knowing how to do things that are like one step beyond the basics, like how to do rebases, for example, uh, how to undo your work, how to like cherry pick, how to move things around branches, having a basic understanding of what's going on under the hood can be super valuable. You learn how to like save off your work, how to keep other people in touch of what you're doing, like how to collaborate most effectively, how to keep things from getting like in the way, how to, knowing how to integrate changes, like deal with merge conflicts,
Jack_Herrington:
Hmm.
Paige_Niedringhaus:
Yes.
Tj_Vantoll:
coming up with a workflow you're comfortable with and that's consistent at your company. Like all of those things, I feel like are, are super important and valuable. And it's another one of those two that like, It's probably worth investing. This, this will kind of flow in with what we talked about with CSS, but it's worth understanding what's actually happening versus like, Oh, Hey, this worked. Let me just move on with my day. But like knowing, like if something didn't work, right, like trying to figure out why it didn't and learn what you need to do in the workflows, you, because those sort of understanding those sorts of things will come in beneficial. If you do truly like grok, how these processes work and don't it just accept like, well, the right thing happens, so let me just move on with my life and get back to the next year issue or whatever.
Jack_Herrington:
You know, it's weird, though, because I like I've done the actual like I'm going to spend a week figuring out get thing in my life before. And then just 100 percent. Well, not 100 percent, but like 95 percent lost all of that knowledge. And it's
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
just
Tj_Vantoll:
Yeah.
Jack_Herrington:
so tough. Like some
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
it's very. very environment specific. Like, you know, some work environments have been in really push git. Like they, you know, there's lots of branches and there's whole conversations about branching strategy and
Paige_Niedringhaus:
and naming
Jack_Herrington:
merging
Paige_Niedringhaus:
and
Jack_Herrington:
and naming
Paige_Niedringhaus:
mm-hmm.
Jack_Herrington:
and, you know, all of that. And then other
Paige_Niedringhaus:
Yep.
Jack_Herrington:
companies are just kind of like, everybody's just in the main, let's go. And, you know, it's
Tj_Vantoll:
Heheheheh
Jack_Herrington:
like, whatever. Yeah. But you're
Paige_Niedringhaus:
Push
Jack_Herrington:
a
Paige_Niedringhaus:
to production!
Jack_Herrington:
push to prod. Woo. Yeah. Let's go.
Tj_Vantoll:
I mean, I think like with any of these tips, like you wanna be learning stuff that you either are A interested in or B have a need at work. Like
Jack_Herrington:
Oh yeah.
Tj_Vantoll:
that's the stuff that's gonna stick because
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
you don't wanna like, I wouldn't recommend going to the Git documentation and looking all the commands and just like reading
Paige_Niedringhaus:
Ugh.
Tj_Vantoll:
through them sequentially. You'll hate yourself within like, but by the time you get 10% down the list, but. It's more that if your company has a process like, oh, hey, we rebase, we do interactive rebases before we merge, right? Like, well, if that's part of your work process, then it's probably worth knowing how that works and how to do those really, really well and understanding the process. But
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
I wouldn't go out learning Git commands just to do it. Like make sure you have some reason for going down that path.
Paige_Niedringhaus:
Yeah, I know about a handful of git commands off the top of my head, and they're the ones that I use every day. Like, I don't rebase very
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
often, so I always have to go look that up. I don't reset heads very often, so I have to go look up that syntax. I don't change repo origins very frequently, so all that stuff that you do once in a while, maybe it's good to write down a note about it, so future you can thank past
Jack_Herrington:
Haha,
Paige_Niedringhaus:
you for learning it again.
Jack_Herrington:
yeah
Paige_Niedringhaus:
But,
Tj_Vantoll:
Yeah,
Paige_Niedringhaus:
yeah,
Tj_Vantoll:
but
Paige_Niedringhaus:
there's only a handful.
Tj_Vantoll:
I'll point out though, like you knew what to say there, right? Like you knew what to Google,
Paige_Niedringhaus:
Yes.
Tj_Vantoll:
you knew what to look up and that's really like the key to all of what we're talking about, because I don't know half of that stuff either, right? I don't know who has that in-depth of a memory that they're remembering the specifics,
Paige_Niedringhaus:
Hehehehe
Tj_Vantoll:
but if you've done it before and you like either have notes or you just have some bit of a memory of what, where to go and what to do,
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
it can be extremely valuable.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
And another one that kind of is along the same lines, TJ, is learning a little bit about the command line, because you're probably
Tj_Vantoll:
Oh, yeah,
Paige_Niedringhaus:
going to be
Tj_Vantoll:
yeah,
Paige_Niedringhaus:
in
Tj_Vantoll:
yeah.
Paige_Niedringhaus:
terminals. And I took one, I actually had the opportunity at my last company to take like a week long command line in depth. tutoring thing where it was a whole classroom full of us just learning all about bash and shell scripts and all that good stuff
Jack_Herrington:
That's
Paige_Niedringhaus:
and it
Jack_Herrington:
awesome.
Paige_Niedringhaus:
was it was super helpful and then i went back to my regular team and forgot probably 75 percent of it even though i'd taken great notes which i can refer back to
Tj_Vantoll:
Hehehe
Jack_Herrington:
Nice.
Paige_Niedringhaus:
but honestly knowing how or knowing where to look to go to write shell scripts or do things along the command line in the future is beneficial. Knowing how to copy things, how to print out what's in a file, how to move a file or make a folder, those are good things to know how to do. Because VS Code is great, but you got to start with something for VS Code to open up before you can get to that.
Tj_Vantoll:
It's also amazing what you can automate with those sorts of scripts as well. Cause the, I've had to do this a couple of different times. Like if you know the syntax for like actual bash scripting, it's incredibly
Paige_Niedringhaus:
Mm-hmm.
Tj_Vantoll:
powerful, but it's also like a syntactical nightmare.
Jack_Herrington:
Oh, it's-
Tj_Vantoll:
Like
Paige_Niedringhaus:
Yes.
Tj_Vantoll:
you,
Jack_Herrington:
it's line noise. It's line- it's- it's- ugh.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
it's chaos, but there are some tools that allow you, like if you just know how to run, like write a node script, and there are tools in node that lets you just, execute arbitrary shell commands. So you could do that and automate some processes that would take a long time to do manually. I've done that sort of before where I need to move some files around or I needed to do some image processing on a set of images that I was working with. And I found a little script that would do what I wanted that kept me from having to manually touch each image. And
Paige_Niedringhaus:
Hmm.
Tj_Vantoll:
I just like wrote a loop that's like brought in each file and like ran that command line thing and ran it on the thousand images or whatever that saved me from having to just like, honestly, it would save me just the monotony more than anything. I probably spent more time reading the stupid script and it would have
Paige_Niedringhaus:
Oh yeah.
Tj_Vantoll:
taken me to change all the images,
Jack_Herrington:
No,
Tj_Vantoll:
but at least I
Jack_Herrington:
no,
Tj_Vantoll:
didn't
Jack_Herrington:
no,
Tj_Vantoll:
have
Jack_Herrington:
no,
Tj_Vantoll:
to.
Jack_Herrington:
not a thousand. No, no, no, there's definitely like there's these cutoffs of like, you know,
Paige_Niedringhaus:
Right.
Jack_Herrington:
10 files,
Tj_Vantoll:
Yep.
Jack_Herrington:
I'll do it by hand. 100 files.
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
Thousand files. No,
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
we're doing a script.
Tj_Vantoll:
Like, well, it was working on Pokemon image files. So I know for a
Jack_Herrington:
Ah,
Tj_Vantoll:
fact it was around 800 at the
Jack_Herrington:
808.
Tj_Vantoll:
time.
Jack_Herrington:
Exactly. Yeah.
Paige_Niedringhaus:
Ugh.
Tj_Vantoll:
Yeah, so.
Jack_Herrington:
I think I know exactly that Pokemon DB by the way, and it's grown. My daughter tells
Tj_Vantoll:
yet.
Jack_Herrington:
me that there's many new expansion packs to be had.
Paige_Niedringhaus:
Is it the API that everybody likes to use for demos and stuff?
Jack_Herrington:
If it's the same one as like 800 and something, my my my copy is 808 because there's all you do like some of the characters have like special special names like Nidoran with a little male symbol on it or something. And I just scrape those out because I'm like, I don't want to deal with that. I don't want to deal with you. You deviate encoding stuff. Whatever. Bye. You know, bye. Nidoran. I don't care.
Tj_Vantoll:
There is an API, there are
Jack_Herrington:
Yes.
Tj_Vantoll:
GitHub repos that have, that people have graciously put out like a lot of work to put images of all of these together. And I found one of these image, cause I wanted to get into the stupid domain names. I have a domain name that I use. I've registered for doing this.
Jack_Herrington:
Oh my god.
Tj_Vantoll:
But anyways, I have all these images, but I needed them to work slightly differently. And I can't even remember that this was several years ago. So I can't even remember the exact problem. But I was like, oh, these images are so close to what I need, but I just need to tweak them this little bit. And so I ended up writing a script to do it. And yeah, maybe save time, maybe didn't, but in any case, I learned something new.
Paige_Niedringhaus:
Right, it was fun.
Tj_Vantoll:
Yes.
Jack_Herrington:
If memory serves that that API is awful, by the way, it's like the worst of rest. It's
Paige_Niedringhaus:
It
Jack_Herrington:
like,
Paige_Niedringhaus:
could
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
be.
Jack_Herrington:
yeah, because like in order to get like, like if you search my name, then you get a response back that just has the ID and then the name and then you have to make subsequent. And you're like, well, yeah, but I want to show like the hit points or whatever. And you're like, no, no, no. You've got to make like a request for every one of those to get the hit points. And so, no, it's like the worst. It's like it just
Paige_Niedringhaus:
Ugh.
Jack_Herrington:
rested
Tj_Vantoll:
Let's,
Jack_Herrington:
its most evil and terrible.
Tj_Vantoll:
we'll see because you know API design, you
Jack_Herrington:
Right?
Tj_Vantoll:
got, there you go.
Paige_Niedringhaus:
Yeah,
Tj_Vantoll:
Like this whole episode is coming around.
Paige_Niedringhaus:
could
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
build the better one
Jack_Herrington:
Right.
Tj_Vantoll:
Yeah, well, that's
Jack_Herrington:
Yes.
Paige_Niedringhaus:
and
Tj_Vantoll:
why
Paige_Niedringhaus:
make it GraphQL.
Tj_Vantoll:
I, I'm not.
Jack_Herrington:
That's what that's what he did with his shell script is like right. Better ones.
Paige_Niedringhaus:
Exactly.
Tj_Vantoll:
Yeah, that's why I ditched that. I'm not using the API itself, but I am using the underlying images which were provided because the images themselves are great.
Jack_Herrington:
Oh, yeah. And then they make for awesome, like thumbnails and stuff like,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
you know, look at this,
Tj_Vantoll:
Yep.
Jack_Herrington:
you know.
Paige_Niedringhaus:
Yeah, I like the movie database API for the same reason. It's like I pull out
Tj_Vantoll:
Yeah.
Paige_Niedringhaus:
all the
Jack_Herrington:
Yes.
Paige_Niedringhaus:
movie poster images. It's great for demo apps, looks great.
Jack_Herrington:
Oh, yeah, that's true. That's that has been in the Pokemon for sure, actually. Yeah. So I will say for those of you at home playing the home game, if you're on Windows, use the Windows subsystem for Linux
Paige_Niedringhaus:
Yes.
Jack_Herrington:
and then you get access to like all the good shell scripting stuff. And, you know, because you don't want to automate. I mean, I know that there are folks that do like PowerShell automation on Windows. I was like, yo, I mean, this is nasty. I mean, I, I, okay, fine. I'm sure if PowerShell fans are going to enjoy it. That's the thing. That's where he's all the way around. Jump in the discord channel. Tell me I'm terrible. Tell us saying that that PowerShell scripting is terrible.
Paige_Niedringhaus:
that
Jack_Herrington:
There
Paige_Niedringhaus:
Windows
Jack_Herrington:
you go. Yeah,
Paige_Niedringhaus:
is just terrible for development in general.
Jack_Herrington:
I will. I will go
Tj_Vantoll:
Oh,
Jack_Herrington:
that far.
Tj_Vantoll:
now
Jack_Herrington:
Yeah.
Tj_Vantoll:
the adnone page, that... and there's the line.
Jack_Herrington:
There it is. Yeah, I'm with Paige actually, but but that's fine. Yeah, I'll
Tj_Vantoll:
No,
Jack_Herrington:
join
Tj_Vantoll:
Windows
Jack_Herrington:
Paige on the
Tj_Vantoll:
is not
Jack_Herrington:
other
Tj_Vantoll:
that
Jack_Herrington:
side.
Tj_Vantoll:
bad, but the Linux subsystem makes it a lot
Jack_Herrington:
Oh, yes, that's
Tj_Vantoll:
easier
Jack_Herrington:
true.
Tj_Vantoll:
to work with.
Jack_Herrington:
Yeah, for sure. For sure, for sure. Would you have any more or do we want to do picks? Because this has been great. I mean, I could riff on this for hours. Hmm? No more?
Tj_Vantoll:
Going once, going
Jack_Herrington:
Going twice?
Tj_Vantoll:
twice.
Paige_Niedringhaus:
twice.
Jack_Herrington:
All right. Well, I think that brings us around to picks time. So let's see. So let's start with TJ this week.
Tj_Vantoll:
Sure, so I'm gonna pick, I'm gonna keep a running theme going, but I'm gonna pick There's Only Murders in the Building, season
Jack_Herrington:
Oh.
Tj_Vantoll:
two,
Paige_Niedringhaus:
I'm sorry.
Tj_Vantoll:
which by the time this comes out, you'll be able to binge the whole season two. I made the grave mistake of starting the show when nine out of ten episodes were released,
Jack_Herrington:
Dun dun dun!
Paige_Niedringhaus:
Oh TJ.
Tj_Vantoll:
which was just a tragic mistake that I, but I binged... I binge the whole thing and then I went to like, you know, of course the one before episode ends at a cliffhanger. So then I
Jack_Herrington:
Of
Tj_Vantoll:
go
Jack_Herrington:
course!
Tj_Vantoll:
to like hit the next button and then it slowly dawns on me that that's not a next button for the last episode. And then I look and it's like, oh, it's not coming out until next Tuesday. And I'm just, I don't know, I'm devastated, especially for a show like that, right? Because the whole thing is it's just like a somewhat silly comical murder mystery, but it builds on mysteries and intrigue and but by the time you're listening to this it'll all be available so season
Paige_Niedringhaus:
Thanks
Tj_Vantoll:
2
Paige_Niedringhaus:
for watching!
Tj_Vantoll:
is was equally as good as season 1 so I recommend it
Paige_Niedringhaus:
Nice.
Jack_Herrington:
Awesome. Okay, page.
Paige_Niedringhaus:
My pick this week is gonna be a show as well. It's a show that's been over for ages and ages But we've been my husband and I recently have been getting into the Star Trek
Jack_Herrington:
Hmm
Paige_Niedringhaus:
Theme of things so we've been watching we watched Star Trek Next Generation, which was the first two seasons were rough, but John
Jack_Herrington:
Oh,
Paige_Niedringhaus:
Yeah
Jack_Herrington:
until William Riker gets his beard, nothing is good. Nothing is good. It's just
Paige_Niedringhaus:
Patrick
Jack_Herrington:
a terrible
Paige_Niedringhaus:
Stewart
Jack_Herrington:
show.
Paige_Niedringhaus:
is great though, love Sir
Jack_Herrington:
Oh, yeah,
Paige_Niedringhaus:
Patrick
Jack_Herrington:
that's true.
Paige_Niedringhaus:
Stewart.
Jack_Herrington:
Absolutely.
Paige_Niedringhaus:
But we've been watching now Star Trek Deep Space Nine, which is,
Jack_Herrington:
Oh, that's good.
Paige_Niedringhaus:
yeah, it spun off of I think Next Generation and there were a couple of crossover episodes, so we've been into that recently and it is much better from the beginning and it's kind of fun because there's a lot more aliens who are just part of the regular cast and it's been good. So if
Jack_Herrington:
Have
Paige_Niedringhaus:
you're
Jack_Herrington:
you seen it before?
Paige_Niedringhaus:
looking, sorry.
Jack_Herrington:
Is this your second? Have you seen it before? Is this your second time around or is this your first
Paige_Niedringhaus:
no,
Jack_Herrington:
time
Paige_Niedringhaus:
this
Jack_Herrington:
around?
Paige_Niedringhaus:
is the first time watching it all. it's on paramount plus, so if anybody wants to just binge it, it's all there for the watching in, you know, in letterbox form 480 or 720 or whatever
Jack_Herrington:
Right,
Paige_Niedringhaus:
they were filming
Jack_Herrington:
right,
Paige_Niedringhaus:
in,
Jack_Herrington:
right, yeah.
Paige_Niedringhaus:
but it holds up quite well, I
Jack_Herrington:
It
Paige_Niedringhaus:
will
Jack_Herrington:
does.
Paige_Niedringhaus:
say. the the cgi is not the best, but they just made a lot of the stuff themselves, you know, for the sets and everything, so it they did a pretty good job for what they had to work with at the time.
Jack_Herrington:
So...
Tj_Vantoll:
I've still never done the Star Trek, so
Jack_Herrington:
Really?
Tj_Vantoll:
I'm, yeah, nothing
Jack_Herrington:
Wow.
Tj_Vantoll:
other than the occasional, like some of the newer movies I've seen, but that's about it.
Paige_Niedringhaus:
Yeah.
Tj_Vantoll:
Never
Jack_Herrington:
Wow.
Tj_Vantoll:
the old shows though.
Jack_Herrington:
Interesting. Okay. So yeah, I love DS9. It's like my, honestly, my favorite of all of them. Except for I guess the newest one, the strange new worlds, maybe is like almost as
Paige_Niedringhaus:
Mm.
Jack_Herrington:
good.
Paige_Niedringhaus:
I heard Picard was also good. No.
Jack_Herrington:
I hated Picard so
Paige_Niedringhaus:
Oh,
Jack_Herrington:
bad.
Paige_Niedringhaus:
no.
Jack_Herrington:
It's so bad. But back to the S9 for a second. So later on, it gets very serial like later in the series. And that's when it starts getting really, really good.
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
But there's this one episode and it's like between Cisco and his son. And you'll you'll see it when it starts like they build this like solar sailor together and you will be crying your eyes out at the end of that show. It was kill kill you. I mean, I cry every time I watch it and I love it. But I cry so hard every time I see it. Have you seen it yet?
Paige_Niedringhaus:
Yes, actually we
Jack_Herrington:
Oh.
Paige_Niedringhaus:
just watched that one the other day a couple days ago.
Jack_Herrington:
Doesn't that just oh my God. Oh
Paige_Niedringhaus:
Yeah,
Jack_Herrington:
yeah.
Paige_Niedringhaus:
it really gets you
Jack_Herrington:
It really does.
Paige_Niedringhaus:
all the feels.
Jack_Herrington:
Oh everyone everyone. OK. I'm kind of bummed you didn't do a cooking recommendation because your oil recommendation from last week was so good and thank you so much for that. I totally rocked my recommendation. I guess I'll fall on a trend here. My recommendation for this week is a movie on Netflix called Day Shift. It has See, Jamie Foxx, Snoop Dogg,
Paige_Niedringhaus:
Yep.
Jack_Herrington:
and it's a vampire horror comedy. But I'm a huge fight movie fan, like like martial arts fan. Like it's
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
not the violence that gets me. It's the it's this the sheer acrobatics of it. And and and watching it is like, whoa. Like
Paige_Niedringhaus:
Yeah.
Jack_Herrington:
the wire work and all that. And when it's done really well, it's done really well. And this movie is that I mean, this movie is kind of like a combination of like John Wick and like the raid is very weird, kind of like Malaysian movie called The Raid from years ago, where like just just awesome fighting. If you just want to like see, I think there's like YouTube like best of moments in the raid and the fights are just insane. But like I've never seen anything like this, like this, like a combination of John Wick plus parkour. fighting
Paige_Niedringhaus:
Hahaha
Jack_Herrington:
styles and it is so nuts. And then it's kind of good. I mean, from a comedy, it's also got some good comedy moments and things like that. But anyway, yeah, my daughter and I just fired it up. Like we were just like we literally hit the button like you'd never hit on Netflix, which is like the play something play anything button
Paige_Niedringhaus:
Oh yeah.
Tj_Vantoll:
Heheheheh
Jack_Herrington:
because I'm doing the dishes. I'm like, OK, we just need some on the TV plays something. And it came up and we were just like instantly glued and like done. Oh, crap. But it was fun. It's just a fun Saturday afternoon movie. Snoop Dogg nails it. Snoop Dogg is actually better than I've ever seen him before. So yeah, that's a really good one.
Paige_Niedringhaus:
Nice.
Jack_Herrington:
All right. Well, this has been super fun. I think it's been super helpful. Certainly things that I have, for sure, boy, you know, gear up on myself. So,
Paige_Niedringhaus:
Mm-hmm.
Jack_Herrington:
wow. Thank you, guys. It's been an awesome episode.
Tj_Vantoll:
Yeah, it's a lot of fun.
Jack_Herrington:
Yeah.
Paige_Niedringhaus:
Absolutely.
Jack_Herrington:
All right. See you next week.
Paige_Niedringhaus:
See ya.
Tj_Vantoll:
Bye everybody.