Coding Blocks - Our Favorite Developer Tools of 2020
Episode Date: January 4, 2021We start off the year discussing our favorite developer tools of 2020, as Joe starts his traditions early, Allen is sly about his résumé updates, and Michael lives to stream....
Transcript
Discussion (0)
You're listening to Coding Blocks, episode 149.
Subscribe to us on iTunes, Spotify, Stitcher, Audible, wherever you get your favorite podcasts
from, and leave us a review if you can.
And yeah, it'd be great.
We'd appreciate it.
And go to the website, codingblocks.net.
We have all sorts of stuff, including show notes, examples, discussion events, and more.
And we have feedback, questions, and
rants that you can send to comments
at codingblocks.net.
And you can follow us on Twitter
at CodingBlocks or head to
www.codingblocks.net and find
all our social links there at the top of the page.
With that, I'm the guy who forgot to mute
his cell phone. I'm Alan Underwood.
I didn't say anything about it, Joe Zach.
I was going to, though.
I so badly wanted to make a reference to amateur Alan or, hey, you can reach us on Alan's cell phone apparently during the show.
And I'm the harsh critic Michael Outlaw.
This episode is sponsored by Datadog, a cloud-scale monitoring and analytics platform for end-to-end visibility into the performance of your entire containerized environment.
All right.
A little bit of news to start with.
And first, we like to say thank you for all the reviews.
Really appreciate this time. Big thanks go to Lars Ankeel, O-X-A-C-E, which is awesome.
I think that's a memory address because it's all hex.
Yeah, that's right.
It's either Ace and Deadby for the only ones I know.
Tbetcha33, ShinyCloud times two.
Now, I got to give a special shout out to the Shrike
for two reasons
one I know this is a reference
to one of my favorite all time
horror slash sci-fi novels
Hyperion and I saw this
person on Twitter recently I knew
instantly what their name and picture
was a reference to so that made me really happy to see
and so thank you for the review
also thank you for the recommendation on the book I'm listening to right now on audible called necroscope
which has been really cool and i had totally not heard about it and uh it's also got like a kind of
like a funny horror thing going on which i very much approve of so thank you hey i want to clarify
there that uh the shiny cloud times two it wasn't Shiny Cloud times two.
It was just Shiny Cloud, but we got two reviews from Shiny Cloud, both in iTunes.
I didn't understand how that happened, but yeah, so maybe they clicked submit twice and iTunes accepted it. Or I don't know if they like, it wasn't clear to me in,
um,
you know,
the way that we get to see the aggregated list of,
uh,
reviews,
like if it was legitimate that they submitted it to like in multiple
countries,
for example,
although it said the same country,
Australia for both of them.
But either way,
I wanted to like give credit,
like,
Hey,
we got both of them.
Thank you. Cool. them. Thank you.
Awesome.
I'll just keep blabbing.
I am going
to be blabbing and
doing an excellent presentation at
the San Diego Elastic Meetup on
January 19, 2021.
It's going to be really cool talking about
doing a development flow.
We're going to be talking about some of the tools that we're going to talk about in this episode too.
Scaffold.
And we'll talk about Scaffold more, sure.
We might all have this on the list.
I don't know.
We'll see.
But that's going to be a good talk.
And you should sign up for it totally free and streaming.
You're kind of hinting at what the topic is.
Yeah.
I guess we haven't said it, right?
Yeah.
No.
No.
No.
Don't say it.
Don't say it now.
You have to wait.
Also,
January 21th to the 24th
we have the Game Jam
coming up.
That's right.
We've narrowed down the list of
potential themes to 12
at the time of this recording and it's going to be getting narrowed
all the way down to 1
by the 21st. So it's
really exciting. Also, free, awesome,
learn something really great. You should go
sign up right now and make a game
because what's better than that?
Hey, and
we actually have a decent number of signups
so you won't be alone. Come join
us, right? We'd love to get it up over
100 people that are wanting to do
this.
So I believe the three of us are actually taking time off work to do this.
So,
you know,
come have some fun.
Yep.
Maybe we make something cool.
Who knows?
Maybe not,
but it'd be worth a shot.
Or maybe we get authentication to work for a billion concurrent users.
Yes.
All right.
So this next bit of news, I'm not going to go too deep on it.
I'm just going to say the six key.
And I'm going to leave it like that because our survey is going to dive
into this a little bit deeper.
But I want to bring it up here because I do have a slew of keyboard reviews that are coming out
here pretty soon. So I'm actually working on doing the reviews. And for those that are not
a member of our YouTube channel, you can go to youtube.com slash coding blocks and, you know,
sign up for it there, you know, just subscribe to it or whatever. But the, the first three that I
have on tap two of them, I've basically used for a decent amount of time and I'm ready to
do.
One is the Kinesis Advantage 2,
which is nutso in its design.
The other one that I've got that was sent to me from Zergotech that I've been
messing with for the past few weeks.
And then the next one is the one that Michael has been waiting on somewhat
patiently on the Moon few weeks. And then the next one is the one that Michael has been waiting on somewhat patiently on the moon lander. So I've got three pretty incredible keyboards that I'm going to be
doing reviews on. So, you know, go, go subscribe to the YouTube channel if you're at all interested
in that kind of stuff. And then we'll get back to the six key in a little while. Yeah. You,
you gave the wrong URL though. The, the more popular way of getting to our YouTube channel
would be to go to
codingblocks.net slash YouTube. You can flip-flop them. Either one you want. They both work. That's
the more popular way. Yeah. Yes. They both work. All right. So who wants to give the topic
introduction? That'll be Jay-Z, I think. No, wait, did I come up with it? I came up with it.
Yeah, that was your idea. Yeah. All right. So we haven't done this in a while.
Like we used to do this every year, kind of like we do our shopping spree, right?
Like we always do our shopping spree in November and we used to do a, hey, what are the tools
that we use this year that we really like or love or whatever, right?
And the thing is, we typically throw these in our tips of the week or whatever.
And I thought that it would just be nice to kind of have an episode that was dedicated to, Hey, with the stuff that we've done
this year, what are the tools that stood out to us? It doesn't matter if it's been a part of a
previous tip or not just, Hey, let's, let's talk about the things that we really love to use and
why we like to use them. So that's what this episode is. Right? And we didn't, at least for the rules of this one, it wasn't like, hey, then we'll jump in and be like, yes, that, you know,
I plus one that or whatever.
So that's kind of the vein of this.
And you know,
we'll just see how it gets,
how we get through this one.
Hey,
just real quick.
When do you think the last time we did this was,
I'm going to go 2017,
2017.
I'm going to say 2013,
2013,
2013 is when we started.
Right.
That tradition we had.
Give us a minute.
I didn't go over.
I didn't go over.
He's good at that.
He is.
You definitely did not.
No.
2015.
Oh, man.
Episode 37 was the last time we did the favorite tools.
Okay.
So this is good.
I think the reason we stopped doing them,
and you guys can tell me,
but it was because sometimes it's like,
well, you kind of use the same tools all the time, right?
And it's not like you have a bunch of brand new tools.
But I don't know.
I figured over, like, I just thought it was a couple years.
You know, you pick up one or two over a couple years,
and I think it's worth trying to talk about these. I still like all mine. I stand thought it was a couple years. You pick up one or two over a couple years, and I think it's worth trying to talk about these.
I still like all mine.
I stand by it.
Years from 2015?
Well, it's funny to see Notepad++ and Sublime are not around here.
Oh, are they?
See, that's what I'm saying.
Things have changed.
When's the last time you opened up Sublime?
For real.
Oh, gosh, yeah.
And Notepad++. Does any one of us, do we even install it anymore?
Am I the only one that still uses Sublime?
Okay.
Dude, I can't think of it.
Do you?
I like it.
It's just, I like it better.
Visual Studio Code has replaced almost every text editor I've ever used.
Yeah, yeah. Yeah. I still use it, not heavily, but it's more like a cache of notes.
Visual Studio Code does the same thing where you can open it and create a file without actually saving it, and it'll cache it somewhere.
But Sublime is kind of like my note taker still.
Okay.
So it's your stickies.
It's your homemade stickies.
Yeah, kind of.
Yeah.
Okay.
And it's funny.
We jumped right into the episode without actually even starting the episode.
Okay.
Okay.
We'll start the episode in three, two, one.
So this was on my list. We won't start the episode. So this was on my list.
We won't start the episode.
VS Code's on my list. I know, that's what I'm saying.
Like, we totally hijacked one of his things,
which is fine.
So Joe, you go ahead and start
us off with the one that you have at the top of your list,
because I assume this is the very first one for
a reason. Oh, no, not really.
I was wrong. Alright, so
yeah, I was just getting food and thinking
about what my tools were going to be inside like i made an acronym and k it started with k uh but
yeah so canines i mentioned before if you are working with kubernetes you owe it to yourself
to check it out it's a command line tool so uh it is a tool that runs on the pan line it is also user interface so uh it's kind of
like this weird hybrid between like a a traditional command line tool where you type command command
command like kubectl and uh you know traditional kind of ui or ide that lets you kind of browse
uh so it's a little bit like vim say what it's a a terminal UI is what you're trying to say.
Terminal UI.
Yep.
And so you can install it on Linux.
So if you've got a server that you shell into to get to your computerized environment or whatever, it works fine there.
But the things that I really like about it are that it's really great with multi-cluster and multi-namespaces.
If you do a lot of hopping around like I do, it makes it super fast.
And it also does a lot of caching in the background.
So it's constantly pulling things like pods and services and also custom resources, all pulling in the background.
So when you swap between environments, it's lightning fast, and it's really easy to filter.
And once you get the hang of how to pop around, it's just really great.
It's got really nice tools built in, like X-Ray, Popeye, Popeye and pulses for like linting a little bit of monitoring.
And I just love it.
Hey, and I'll pile on here.
So this is a plus one for me because this is one of the ones like in all honesty, Joe, how much time do you spend with me on this?
Like maybe five minutes.
Oh, yeah.
On canines.
Yeah.
Yeah.
Showing me like he was like, yo like yo dude because i was in there typing in
the cube cuddle do this do whatever right and in the time that i'm doing this i think he was over
there breaking a sweat he's like dude have you tried canines and i was like i don't even know
what you're talking about so he took like five minutes and just did a blast go through of it and
i was sold immediately and i know that we've talked about this on a previous episode and why Mike doesn't necessarily love it, but I will say for 90% of what I want to do, canines is all I need.
And it's so good. And I think the reason why I like it so much is because it is a terminal UI,
it's just keystrokes. Hey, you want to go to this one? You hit this key.
You want to go to a shell?
You hit S.
You don't have to go right click on something.
You don't have to click on anything.
You just navigate with your arrows and hit some keys on the keyboard.
And you can do, like I said, 90% of what you want pretty easily within a few keystrokes.
And to me, that's just a huge time saver.
I feel like I could win a race against the fastest typist if they're only
doing cube cuddle and i'm doing canines and we just have like someone like shouting commands like
go check out this pods now go go look at the logs now scale this up scale this down like
i will win hands down and this is the only race in my life that i will i'm ever capable of winning
and you want to know the part there is one specific thing that seals the deal for me
and it's the fact that you can do a vim type search on it you just hit the the forward slash
and you search and it narrows down all the pods of the name so whatever it is that you're currently
looking at if you want to filter it down it's so easy to do. Even with kubectl autocomplete type stuff, it still doesn't even come close to as good as what this is with its filtering.
And that's what does it.
That's what does it for me.
Although, what you have on line 51 there in our notes is the one thorn in its side yep you can't script it so uh anything
that you want to do uh you i mean you can run the app and like have it automatically go to a
different namespace or context or you can kind of like pass some flags to get to basic areas
but you can't do things like set up a script that will scale this pod up changes config map scale
you know you can't like script commands you can with kubectl but i will say i think a lot
of people kind of have this conception like kubectl is kubernetes somehow and it's not it
communicates with the the kubernetes api right it's like you could with like a you know a api or
you know a rest interface or whatever there's multiple different ways to communicate with the
kubernetes api and kubectl is one of those ways. But it's not like some auto built-in whatever.
So canines isn't some weird abstraction layer.
It just talks to Kubernetes API, just like kubectl does.
With probably the most popular use cases in mind, right?
And that's where kubectl is, you know, you need to do anything.
You can go to it, right?
Canines is, hey hey what are you doing most
of the time and yeah you know there's there's only one thing i don't know how to do in canines
i haven't figured out too that's basically filtered by label uh and now there's things
yeah i guess you're right like there's things that you can do like um you can kind of say like
hey get all the pods with this label and then only output the name.
And that's useful for like scripting and whatnot.
And you can't do that in K9C.
You would basically just go describe it.
You can go view it, but it's just not useful for you can't pipe it to something.
Right.
So, yeah, I'm a huge fan of this.
Outlaws over there kind of like, eh.
I'll race you.
I mean, I don't want to bash on it, you know, any more than I have in the past, which I felt like I've, you know, probably already too much.
Because I don't mean to.
Like, it is a cool tool.
I do.
I like it not as much as you guys. Like my thing is consistent even with like going far back.
Like we've had conversations related to other tools, like even to like get tools.
And it was like, no, I would rather know the underlying tools from the command line.
And that way, no matter what system I go into,
I don't have to have some dependency of like,
oh, hey, let me install this other thing.
And 99% of the Kubernetes environments, you're going to have a kubectl command
more so than canines, right?
So I'd rather be, you know life is short and you know brain brain cells are
limited so if i'm going to uh you know focus on mastering one command line tool i'd rather just
pick the one that's available on every platform that yeah so i pick coop So I pick KubeKuddle.
Well,
I also,
I'll tell you,
so I joined the canine slack today just cause I like it that much.
And I wanted to stay up on what they're doing.
I thought it might be fun to try and contribute there.
Actually in 2021, they're going to be releasing a canines alpha,
uh,
which is just a kind of a clever name for basically a subscription,
uh,
model.
So you'll be able to pay like 10 bucks a month or whatever and get the pro
version.
And then the current version is out there.
Now it's going to stay free,
open source,
whatever.
So I consider it basically done as is like,
they'll be bug fixes or whatever.
I'm sure.
But there's going to be like a pro version of this branching off.
I'm on board,
man.
I'm like,
I'm like getting ready to like email the guy,
my credit card,
like give it to me right now.
Here's a picture of the front and back of my credit card.
Just give me the things.
I'll go ahead and pay you for the months I've been using it
and also the months I wish I had it.
Just let me give you some money.
All right, so what you got next?
Oh, you want to buy one?
What are we doing?
I mean, I don't know.
Outlaw, you got one?
Because I know yours aren't on here.
No, they are.
I just assumed that we were going to go in like some kind of an order.
So fine.
Here's where – here's one of the things that we've talked about before that I liked about canines,
and that was that it opened my eyes to Popeye.
And, you know, because it does, like Joe said, canines does make, you know, expose some things
and makes it, you know, really easy. Like you mentioned x-ray and pulses as well. But, uh, Popeye just sounds like, you know, such a, uh, a great tool that we should use all
the time, right? Like it just quickly and easily identify, you know, any, uh, like issues or,
or what may become like future issues in your Kubernetes cluster. Right. And, you know, it'll
detect misconfigurations and help to ensure that you're sticking with best practices
and what's not to like about that?
All of the YAML required to set
up your cluster is, I mean, you can try to do all your best, but
like Popeye just gives you such a great visual way of knowing, like,
it's basically like a linter for your Kubernetes cluster.
One thing I've been confused about with Popeye is that canines kind of blurs the line between Popeye and X-Ray.
And it kind of cross-links between them.
I don't know where one begins and the other ends.
I don't know if one's built on top of the other.
But you can go into Popeye's and drill into X-Ray.
I think you can go from X-Ray back out to Popeye's.
So I don't know who actually gathers the data or if they're using some common kernel.
I haven't even seen X-Ray.
Maybe I'm not seeing what you're talking about.
But if you click on that link that I have there for Popeye, it's popeyecli.io,
and you can scroll down towards the bottom of that page, and they show you screenshots, examples.
And this is in line with the things that I've seen through canines.
Okay.
Yeah, the visualizations that they're showing. Except the difference is that here in the Popeye's CLI screenshots that they're showing, it's showing you everything all at one time.
So like cluster-wide, node, pods, services, et cetera, right?
Whereas in canines, like if you're drilled into just the pods, then you're seeing just the pods.
Yeah.
You're seeing Popeye's inspection of the pods.
This is the first time I've actually seen the UI.
It is really nice.
Again, it's a terminal UI, and they did a really nice job on it.
Yep, Popeye.
There you go.
Would you call that a terminal UI? I mean that's just the c the cli output of it all through the cli yeah oh yeah it may not be the ui it's the
cli it's all done in your command line um but it all looks really nice now i mean my my experience
with poppy has all been through canines.
Okay.
And in canines, you could, like, drill into a specific part.
So, you know, maybe the Popeye CLI by itself is more terminal UI-ish.
Cool.
I don't know.
Yeah, I've always just done it through canines.
But real quick, who can do the best Popeye impersonation?
Not me.
KKK. Oh, Out me. KKKKK.
Oh, Outlaw.
Outlaw wins.
I didn't know we were going to do it at the same time, though.
All right, you got to do it again.
No.
You're going to make a big deal about it and embarrass me.
No.
Just kidding.
Maybe I'll do it.
Ah, KKKKK.
No, that was horrible.
No, you win.
No. That wasn't terrible.
No, that was pretty good No, you win. No, I went terrible. No, that's pretty good.
All right.
All right.
So I guess it's over.
Forget it.
Right, right.
We're done.
So I guess on to my first one, which is really kind of cheating because it's really like
all the JetBrains tools.
Like they're just so good.
And if you're not a member of our newsletter,
we monthly give them away.
And I'm sure the people that already have jet brains is like,
Hey,
quit sending me the emails on jet brains,
but whatever.
Like,
here's the thing.
Like if you join the newsletter,
we truly just give away stuff on it.
More or less.
That's basically all we've ever done.
Um,
but in all honesty,
I've been using a lot of jetBrains tools this past year, right?
IntelliJ for Java and Kotlin, PyCharm for my Python, because I'm now a Python mastermind.
Uh, DataGrip is a, is a really good cross, um, database tool.
Like you could support so many different databases, relational object oriented,
whatever. Right. And cross platform and cross platform.
You can run it on windows, Mac, Linux, whatever. Right. Like it's,
and that's true of all of the IntelliJ tools because they're all written in
Java. Right.
So basically if you have a Java runtime in whatever OS you're working in, you can run these tools.
And I mean, even at some point, I was doing Ruby, I think, earlier in the year.
So RubyMine, I think, is one of theirs as well.
Just while coming from a Visual Studio background, like the key bindings and stuff really mess with your head.
But once you get past that and you learn their environments and all that,
they are so good. Like I had mentioned in the past,
one of the things I loved about PyCharm is I hate installing, you know,
a version of Python in my iOS because it ultimately conflicts with another version that something else needs.
Like it's the same garbage that we deal with all the time as developers.
So I could just put it in a Docker container.
And PyCharm is smart enough to say, oh, you want, oh,
just we'll hook up to whatever Docker container image that you have on your
system and you can use that as your development environment.
And so, like, in all honesty,
basically if IntelliJ makes a tool to develop in,
you mean JetBrains or JetBrains?
I said IntelliJ.
If JetBrains makes a tool to develop in,
it's probably worth a hundred bucks.
Like,
I mean,
most of their tools are in that ballpark.
I think IntelliJ pro edition is a little bit more expensive.
I want to say it's 200,
250,
something like that. But
if you find yourself in the world where you're going to need two or three of these things like I have
recently, just buy their all-in license, which is, I don't remember,
I think Outlaw, you might know the price of that thing. $650.
$650. For business. For organizations, yes.
Yeah, for personal, I think it's like $450.
$250 for individual.
That's it?
For all?
If you do the yearly billing for the all products packets, $250.
And I was going to say, too, like you were saying $100, that's true for individuals then like you know they might be in that you know a lot of their
products might be in that hundred dollar range but not for organization you know not for yeah
they bump it up a little bit but go ahead i was gonna say data grip is really great for two for
connecting any database sql server um or mongo or postgres or whatever coincidentally i had data
grip down on uh my list of favorite tools.
And I mean, my reasons for it was like, it doesn't matter what your database is.
DataGrip can query it.
You can connect to it.
But also one of my favorite things about it, and this is a silly, stupid thing about it,
but it has syntax formatting like built into it.
Right. Right.
Right.
So you could just select off,
format it and then boom.
And then that way,
the thing that I love about it is just like it allows for consistency among all
of your SQL within,
you know,
through all your team.
If everybody's using that now,
you might not like the formatting decisions that,
um,
jet brains have made in it,
but I believe you can customize that.
If I recall, you can go in and you can set your own formatting styles. Yeah, templates. But
yeah, I just use the built-in one, but I just love the fact that you can have that kind of
consistency there. Yeah. And you know, another thing I love about it, and this is also just a stupid little thing, but you know how like in a SQL server or SQL
server management studio, like if you want the output of, of a grid, you have a few different
ways you could do it. You can either highlight the whole thing, control, see it, and then plop
it in somewhere, or you can have it, save it to a particular file type or whatever.
Well, in, in data grip, they give you all kinds of options right there on top of the grid.
You can say export it to CSV, to HTML, to whatever, right?
So if you're trying to present that data to somebody else
and you just want them to be able to pop it up in a browser,
you can say, hey, export it to HTML, and they can see it.
So there's just a ton of little features that are buried all in the app that are amazing. And we've recommended this tool to several people just personally in
Slack or whatever. And I don't think I've ever had anybody come back and say anything other than
dude, this is awesome, right? Like, thank you for recommending this because the amount of time
you'll spend trying to find a free alternative to it for whatever database system you're working on, typically will,
you would have been way better off just spending the extra money on it,
going and getting it and being productive.
So my only one complaint though,
that I wish that if somebody from jet brains is listening is,
you know how,
like if you compare it to a SQL Management Studio and you execute multiple queries, like all your results are just right there and you can just scroll that single pane to see all of them.
And in JetBrains, it's not like that.
They create multiple tabs, right?
Yeah, and it's just kind of a hassle because it's like, oh, man, I want to see these two.
I ran these two queries at the same time because I want to see the data at the same time.
And now I can't because they're in different tabs.
And yeah, both data sets are available, but not at the same time.
I can't see them at the same time.
And that was the whole reason why I ran them at the same time.
Well, you probably put in a request.
Hey, you want to hear all the engines that it supports?
Data grip supports. All right. Hey, you want to hear all the engines that it supports? Yes.
DataGrip supports.
All right.
Postgres, SQL, MySQL, Oracle Database, SQL Server, Azure, Amazon, Redshift, SQLite, DB2, H2, Sybase.
This one I don't think I've heard of.
Exasol.
Am I saying that one right?
Exasol.
E-X-A-S-O-L is how it's spelled.
Apache Derby, MariaDB, HyperSQL, Snowflake, Cassandra, ClickHouse, Greenplum, Apache Hive, Vertica, and MongoDB.
That's awesome.
I mean – Yeah, it's really cool.
Yeah.
So, DataGrip has to make the list.
There's just no way it can't.
It does so much.
One tool.
That was the part that was so hard for me is I started looking and I was like, man, JetBrains really just makes amazing tools all the way across the board.
Like I've heard of people using, and I've never used it, but Rider for C Sharp.
Oh, yeah.
There are lots of people that work on max that love
writing c-sharp code everybody who's ever written c-sharp code love c-sharp code oh yeah
so you know if you're going to change over to mac os you still want to write that same beautiful code
like there are a lot of people that swear by rider they're like yeah i'm just i don't want
to use anything else so so yeah man i'm all on board on the, on the jet brains train here.
And I shared this tip too, that I love about, um, for data grip and, uh, I'm like
pretty confident that you can do this in the other, uh, you know, like ID idea based, um,
editor. So like IntelliJ or pie charm or whatever.
Um,
but it's super helpful to,
I think in data grip or super applicable in data grip,
which is like, you can color code,
uh,
settings.
So,
so basically you can like select a server and,
and color code it.
So you could have like all your production ones,
assuming you even have access to your production database servers, which we should have a talk after this podcast if you do.
But you could like color code those to be red.
And then like local development boxes, you could color code to be green.
And then whenever you open a query console to one of those, the tab will match that color so that you could instantly tell, you know,
color code like, oh yeah, be careful on this tab because this one's red.
Two other things I got to mention about JetBrains and IntelliJ.
So JetBrains specifically.
So one thing Swix, our old buddy Swix asked on Twitter recently is basically like,
hey, you know, I got a license of WebStorm.
I'm trying to understand like why I would use this instead of VS Code, you know, hey, I got a license of WebStorm. I'm trying to understand why I would use this instead of
VS Code because I already know I love
VS Code. And my response was
that VS Code is awesome.
I just recommended it. I love VS Code.
It's really great. If you're going to get started
with any language, you're going to get VS Code
and you're going to go and you're going to find the plugins,
you're going to install them, you're going to configure them,
you're going to set up how you want. You're going to set up your IDE
how you want. You're going to set up terminals over here and get the windows and panes and stuff that makes sense
for you to work in. So in short, VS Code
is cool and you set up your plugins
and it's great. And JetBrains products are great
and if you want to install some other plugins or go looking for them
fine, you can can but everything is
is there for you especially in java if you aren't using intellij with with java i just don't
understand why you would do that to yourself uh because it's just so so nice and so pleasant
because you love eclipse what's not to love about eclipse sorry clips you know what though i think
for me i maybe this will help clarify it for other people.
Like why use something like WebStorm versus Visual Studio Code or DataGrip versus Visual Studio Code?
If you've ever used tools, right, like a pair of vice grips, you could use those for so many things.
But they're not the ideal tool, right? Like if
you had a ratchet and some sockets, like that's going to work much better on a bolt than what a
pair of vice scripts will. They'll get the job done. And that's how Visual Studio Code feels
to me. Visual Studio Code has been built as such a generic tool, text editor slash IDE sort of, that you can cram a lot of features into it,
but it doesn't feel purpose built for any particular thing, right? So like you go into
DataGrip and you have your database explorer on the left, and then you can drill into tables and
all that kind of stuff. Visual Studio Code, even if you were to get a database, like there's a SQL server
plugin for it, and it is just not well integrated. Like you have to know certain keystrokes to
connect to a server and you have to know certain things to do. Like it's just not set up for the
purpose of, hey, this is going to be your database tool, right? And that's, it's kind of the jack of
all trades, master of some. Like if you're a JavaScript's, it's kind of the jack of all trades master of some, like if
you're a JavaScript developer, it's probably really good for it. There are some other things
that it's really good for, but you get into something like WebStorm and they have things
built specifically tailored towards making your life easier as a web developer. And I think that's
really, that's the big difference, right? At least to me is, yeah, you can do the job of both, but one of them just feels right. You know, it is made to make your life easy for this
particular path. Oh yeah. I mean, you can get VS code, you can install a plugin for Mongo. You can
install a plugin for Postgres and you can install a plugin for SQL server. They're all going to be
way different. The shortcuts that you use, if they even set up shortcuts for those plugins,
cause they hardly ever do are going to be way different.
It's just not consistent.
And, you know, you've got the Docker plugin.
But with IntelliJ, it's just all right there.
It's all laid out exactly how you kind of want it.
And it just makes sense.
And it's nice to have experience for you across your tools and plugins and also with your teammates.
So if you go look at someone else's IntelliJ, you know they have the same functionality with Docker or with Mongo.
You know how to use their setup too.
So if you're screen sharing or something, it's easy to be able to do that.
Whereas if everyone's using different plugins for how they like their braces
or the code or how they like to run their terminals or whatever,
and this person's using ZShell, this other person's using a standalone terminal,
this person's using the terminal built into VS Code,
it's just inconsistent and makes things a little bit harder yeah oh and there was one thing i had
to mention um to the the jet brains academy uh that's not really the thing i forget what it is
what it's actually called but um they have like a this ability to kind of set up like um almost
like course projects or test projects where you can uh jeez, I'm going to have to –
Yeah, our buddy Ryan actually did one.
Yeah.
Yeah, no, it's JetBrains Academy, right?
So Academy is built on it, but there's something else –
jeez.
It's basically – it's like a platform that you can use
to kind of create projects so
like for example if you want to teach someone about like apache beam is what we're looking at
like you want to teach someone apache beam which is like a you know an apache open source project
that's like complicated and kind of hard to start to get into well there's a plugin where you
basically create these kind of courses and so you give someone like a project and they're able to in
the ide go work through that project, create code, run it.
It's going to run some tests to tell them what they're correct before they move on to like the next module.
And so you can find that JetBrains has a whole bunch of these courses available.
And then JetBrains Academy takes it a whole nother level.
JetBrains Academy actually is a pay service where you can learn Python and learn Java or Kotlin in the IDE.
And it's the same kind of thing where it's like,
hey, here's a project like Tic-Tac-Toe.
Go do Tic-Tac-Toe, and they'll walk you through creating Tic-Tac-Toe
in a really granular and modular way.
And so the first part would be like, okay, hey, create the board.
And then you'll actually have a little description in your IDE,
and you'll have some code, so you'll do the code.
And once it passes all the tests, then you can go on to the next session.
So you'll build up these projects.
And it's a great way of learning by doing that I don't think you can do outside of an IDE.
It's hard to do outside of an IDE.
Is it called edutools?
That sounds like it.
Maybe.
Yeah.
To set it up, I think it is, if I remember right.
It's been a while since I did the Stepit courses.
Yep. Yeah, it is. That is it is, if I remember right. It's been a while since I did the Stepit courses. Yep.
Yeah, it is.
That is it.
And EduTools.
So the Gembranes Academy makes a lot of use out of EduTools,
but you can also just make your own courses.
Very cool.
And find other people's courses that they make on the Marketplace,
which are free.
I've only seen free ones.
Maybe they're paid ones too.
I don't know.
But, yeah, I could talk about Gemmings a lot, and I do a lot
right?
alright, so it's your turn for the next one there
oh, me?
yeah, you
something else that I love to talk about
is scaffold, in fact I'm doing a talk about it
and this is the thing I alluded to at the beginning of the show
on the 19th, talking about scaffold
because scaffold, to me delivers on promise uh and the bait and switch that
docker compose gave me because the thing i liked about docker compose is that it gave you a one
liner you could use to spin up an architecture which is so powerful for complicated environments
because you could say run this thing it's going to go out download and set up and run everything
you need you can make changes and like kind of rerun it but the problem is that you
couldn't then go take it and deploy it it was like okay you've got this great docker compose
that's fantastic for dev experience uh but then you gotta throw it away and then figure out how
to deploy it with kubernetes or something else there's was like totally detached. Well, Scaffold says, hey, tell you what, set up a file just like you did with Docker Compose.
You'll run a one-liner.
It'll spin up your development environment.
Any changes you make will automatically kick off a rebuild of those images.
We'll set a port forwarding to you, which is important for Kubernetes if you're working locally with Kubernetes. And what it means practically is that you can develop locally with Kubernetes in a very
easy one-liner type of way.
And then you could take that and use it to build and use it to deploy.
And so you've got a single platform that will take you from a great developer experience
all the way to production with no major shifts and paradigms along the way.
I love it.
And it's free, open source,
great tool from Google.
I plus one this one.
Oh yeah, I forgot profiles too.
So if you want to have modular,
like an example I like to give
or be given in the talk here
is like, let's say you're setting up
Elasticsearch environment
and sometimes you want to work
with dataset A.
And so you want to load dataset A and so you can set up a profile and say this is my data set a profile and
i'm going to set up a something that will go ahead and start loading data start streaming data
and sometimes i don't want any data maybe i don't care about the data or maybe i want to spin up
uh mongo this time sometimes maybe i don't or maybe i only want to spin up various pieces of
my architecture i can set different profiles that only want to spin up various pieces of my architecture.
I can set different profiles that either add or remove or modify pieces of my architecture.
So it can save me resources,
which is really slick.
So I knew that,
uh,
Jay-Z was going to say scaffold or,
or one of you was going to say scaffold.
I knew scaffold would come up because it is awesome.
Um,
and,
and we've talked about it in the
past. We've recommended it in the past and the three of us stand by all of that. However, I did
want to include an alternative, which is customized with a K and it's built in to like kubectl. You can use kubectl to create your customized environments.
And the reason why I included it, because I was a little unclear,
or a little, I don't know, not sure about,
I wasn't sure if I wanted to include it or not.
But since I knew somebody was going to bring up Scaffold,
I thought, well, we should bring up customized as an alternative.
And there's a, you know,
one of the streams that Jay-Z and I did recently you know,
it was brought up, it was mentioned to us like, Hey,
you should try customizing.
Then Jay-Z and I will go off in this wild tangent for the next two hours
learning all about customize.
And thanks Zach Browning.
Yeah.
Thanks.
And, uh, so I'll, I'll include a link to that, um, uh, to that, to that stream.
You can watch it on YouTube, but, uh, the coolest thing though, that I really liked
about it though.
And, and this is where it's you know
the benefit of it versus scaffold comes in is that with customize it is bonkers simple to see
what's the difference between one environment to the next right so like Joe mentioned the profiles
that you can create in in scaffold but, but you know, you kind of have
to like take a minute to be like, okay, wait a minute. Uh, what's in the default. Okay. And then
if I use this one, what else am I going to add or remove to it? Okay. Well, wait, am I, I'm adding
that. I, that wasn't already in the base profile. Like you gotta like, it takes you a minute to
reason about it. Right. Totally possible, you know, but that single scaffold file can get a little unwieldy.
Right.
And with customize, uh, the thing that I absolutely loved about it where the customizations that
you make with it, uh, and that, and that's what they're called, which would make sense.
Um, you would have a customizations.yaml file
and it's only describing the deltas and it literally points back to here's the base profile
to use. You use this for the base and here's the deltas that I want to change on top of that.
And it makes it so ridiculously easy and simple to see like what's different about this one. And that's the
thing that I loved about it. And so I felt that it needed a mention in here. And now, you know,
here's the one, the one side though, cause I will play devil's advocate to my own, my own pick.
And that is that technically in your, in your Kubernetes environment, which you could do, all of the customizations, or let me say this differently, all of the deltas that you're setting up that Customize allows you to do, you could technically do with different values files for your Helm charts, assuming you're using Helm, right?
You could have like a values.prod.yaml,
values.local.yaml, right?
Like however you want to set yours up, right?
You could technically do that,
but I still think that there's some,
like if you've never seen it, there's something to be said
for the way Customize sets it up
that I still think is a little bit more elegant
in terms of being
able to see the differences from one environment or quote profile to another
that,
you know,
compared to scaffold or other thoughts.
I haven't spent any time in this at all,
but it's something I will definitely look into.
Yeah, that's really great.
And I think, like you said, Al, it's really
great for, like, if you have, like, a dev and a stage
and a prod environment and you want to know exactly
what's, you know, what it's like between them,
like, it's hard to
see in Helm because you can kind of wind
and they're so flexible that it just turns
to spaghetti. So there's something really nice about
just having those, like, firm lines.
Yeah.
Cool.
That's it for me for Kubernetes, by the way.
So I'm not going to say Kubernetes for the rest of the podcast.
I mean, it's funny.
You will notice a theme with a lot
of the things that the three of us
use. A lot
of it revolves around containers, right?
Or containerization of applications
because we've... Not only because we've loved it for the past, because I think, Outlaw, you said that our first episode on Docker was episode 80 or something?
We did.
Docker for developers was episode 80.
Yeah.
Back in April of 2018.
So almost three years ago, right?
So we've been using this stuff for a while, but I mean, the more that we've used it, the more we've bought into it wholeheartedly.
And it just so happens that we've kind of been forced.
It's been forced down us anyways from the Kubernetes standpoint.
And we kind of love it.
I think it's just like that's's the state of the world though. Like, like, like, I think,
I think we're just reflecting, you know, a lot of the development world in general.
Well, you know, it's funny if we remember right back then, I think one of the big questions,
at least at the time was, okay, so Docker's cool and all, and these container things that
everybody's talking about, they're neat and all, but are they production ready? Right. That was, that was sort of the, the whole thing back then
was like, but are you really going to run your production code on this? And the answer now is,
well, Google bid Dota for a while. Now it's like, oh, you're not doing that. Why not?
Like you can, you can use your resources so much better why wouldn't you go this route so you know everything's fully shifted from the i don't know to wait you're crazy you know you
should be doing this um all right so my next one this one's a little bit off the wall uh but one
of our other friends bobby had mentioned this to me and he's the one who got me on board with this
one and it's oh my zsh so z shell i think is it
the default in mac now i think it is now yeah it is now so z shell by itself is i mean it's a shell
whatever but oh my zsh is actually really cool and and the reason is is because it does the
things the outlaw hates which is simplifies understanding and knowing all the underlying commands.
Okay, wait a minute.
I take issue with the way you describe that.
It does not, sir.
So in fairness, I completely agree with Outlaw on these things, right?
Like if you don't know Git, learn the Git commands.
Learn why you do them so that you understand,
and if you need to go to another environment, you can do it.
However, in your day-to-day stuff, like the typical git flow for me, right, is something along the lines of, you know, check status, then, you know, pull latest, then commit, whatever, right?
Like there's five or six steps that you do 50 times a day if you're productive.
I do it like two times a day.
So what's cool about,
Oh,
my ZSH is they have all these plugins like tons and tons of plugins.
And really what they are are shortcuts for being able to do things.
So if you get like their get plugin,
one of the things that's really cool about it is they have these aliases you can do.
So get branch, like get checkout branch is, is one that's always kind of interesting, right? Like
you do a get checkout dash B and then whatever, right? So they have, uh, there's a shortcut on
here somewhere, but I I'll go with an easier one. If you want to force delete a branch, if you do get
branch dash dash delete, and then, you know, ABC, if it was your branch name, it'll be like, Hey,
I don't know that this thing's fully merged. I'm not sure that you really want to delete it.
You're like, okay, I should have done dash capital D. And so typically you'll type in get
branch dash capital D and then your branch name, delete it. Well, oh, my ZSH makes it a
whole lot easier because you can say GB capital D and then just type in your branch name and it's
gone, right? So it saves you keystrokes. And so the upside is you have all these shortcuts for
doing things that usually you type it a bunch for, so you can save a little bit of time on your
tendons and your fingers.
The downside is if it's not in an environment that you are going to go use, you're probably
going to forget those commands.
But let's be real.
In today's world, none of us are going anywhere.
So we're all working on our own keyboards at home.
So take advantage of the savings and use something like this. Okay, so let me describe this thing
from a non-Fanboy point of view then. Because you've heard
Alan's Fanboy
description of this thing, and I'm going to keep it real.
So basically
the quote plug that they're that they're creating is um
you know not to take anything away from it but basically it falls into like one of two things
is what the plugins are going to provide either it's going to provide some aliases for your,
your environment.
So if you're,
you know,
an Ubuntu user or a Mac user,
like you might be familiar with like setting up an alias to,
uh,
you know,
like,
like we've talked about aliasing kubectl as K in the past.
Right.
So,
uh,
you know,
this is going to,
these plugins that oh my Z shell provides, uh, you know, this is going to, these plugins that Oh My Z Shell provides,
uh, you know, it's going to set up a ton of aliases for you. And then the other type of
thing that it may or may not set up, depending on what the plugin is, are functions. So, uh,
if you want to do like maybe, maybe a common thing that you need to do and I don't know why
but maybe like your scripting needs you know are your scripting needs and so you need to like
oftentimes run a script that can return the username of the current git user right and so get user. Right. And so in, instead of trying to like, uh, get config list and then, you know,
grep out that username and, and whatever, there's a, a function called like get underscore current
underscore user underscore name, right. That, that the, the get plugin provides for you.
So those are the two basic groups of things. You're either going to get aliases or functions.
Now to Alan's joke about like, you know, this goes back to my consistency with like canines,
right?
Where like, I prefer to like, just know the commands.
And then that way it doesn't matter.
Like I could, I, you know, if a friend like, Hey, can you help me out on my computer?
I can be like, yeah, sure.
And I'm still comfortable with, I remember how to do the thing. Right. Cause you like, you learn that command and going back to my, like, you know,
life is short and, you know, brain cells are finite. Like I don't want to take the time to learn all of these new aliases. And that that's the thing is like, if you want to take the time
to learn all the aliases then by all means like you could
you could be a rock star with it on your computer and you know away you go yeah it's i mean when we
call them aliases the thing that's that's a little bit misleading about i mean i guess it is the same
thing as a linux alias but it almost feels like a shell script, right?
Like a lot of these aliases are basically really quick, you know, short aliases that you're passing parameters into.
So it feels more like you're calling a shell script when you're doing these as opposed to just an alias.
But I think in Linux, it's really the same thing. It's literally, these plugins are literally calling the alias command for you
to set up your environment with all of the aliases.
So, you know, it really is the same thing as just doing an alias yourself.
Yeah, but I mean, like, here's an example of one that's really crazy,
is if you want to Git log with a pretty graph and it's got all these parameters and garbage that nobody's ever going to remember, let's be honest.
There's one right here.
The alias is GLOL, which everybody can remember that.
That's amazing.
So GLOL.
What is that, like Git log one line?
What is that doing?
It's Git log something. something no but here's the thing
git log dash dash graph space dash dash pretty equal percent cred percent age percent c reset
dash percent c you get the point like nobody is ever going to remember that so now you have a
useful thing that you might actually use the git log graphs for because you don't have to go Google every single time you want to use this, right? So that's where Oh My ZSA shines. And by
the way, that plugin link that I have there, there's hundreds of these plugins, right? So
what can get, and this is where I will caution, right? If you have one or a few plugins that you might want to use that's cool right otherwise you're
going to get clamped crammed full of aliases that are probably going to end up conflicting at some
point in time or whatever if you started installing 20 of these things so you know pick and choose
what you want and what you really spend your time in if you want to go this route but i i definitely
like the idea of shortening the number of keystrokes.
I have to remember.
Probably the better thing to do would be like if you were going to use it as like the GLOL.
Maybe there's some that you want, but I don't know that I would try to learn all of the aliases.
Agreed. Agreed. Most of them don't know that I would try to learn all of the aliases.
Agreed.
Agreed.
Most of them don't matter.
Maybe.
I don't know. But like the one for kubectl, there's KETI, like K-E-T-I.
So if you wanted to kubectl exec into an interactive terminal, then to a, you know, to a pod,
you could use Keddie,
right?
I just push S.
Yeah.
That's how you shell.
Sure.
Yeah.
Oh,
and I'll give you one more reason why all my ZSH is really good is if you get
tired of dealing with themes based on the shell that you've got,
right?
Like if you're in,
in Mac OS,
they've got a handful of themes.
Oh, my ZSH has a lot. If you're in Mac OS, they've got a handful of themes.
Oh My ZSH has a lot.
Like a lot, a lot.
So if you can't be comfortable with one of them that you have in your current shell, chances are you can find one that's pretty close to what you want in the Oh My ZSH theme library.
So they've got a lot of good ones.
So, you know, the plugins, the themes, those are really what you come for.
Well, okay.
I'm glad you said that last sentence because I was really going to say, like, if you really want to talk about Oh My ZSH, like, the themes are really what you should care about.
Like, forget all those plugins.
Forget all that nonsense.
And they're really good the themes the themes especially like the things that you can see in git uh where it's like oh hey you're plus your
local branch is plus one uh commit you know from the to the remote but you're minus 73 to that
remote right like that kind of functionality that you could just see directly there on,
uh,
on that,
that command line,
you know,
as part of your,
like,
uh,
what do you call it?
The,
the,
your prompt,
right?
That,
that's the part that's killer about it.
It's really nice.
And so what he's talking about is additional information you get for having
the plugins or the themes or whatever that you wouldn't have gotten in just a
normal bash type environment.
So yeah, there's a lot of cool little features in it.
So, yeah, good stuff.
Who's next?
Oh, it's Jay-Z next again.
Is it?
It is.
I'm running out.
Okay, so.
Well, how about.
Go ahead.
Well, I was going to say, like, what if we take a break?
Pause for station identification.
All right.
We can do that.
Station, station.
Today's episode of Coding Blocks is sponsored by Datadog,
the unified monitoring platform for real-time observability
and detailed insights into Docker performance.
Enhance visibility into container orchestration
with a live container view
and easily detect clusters
that are consuming excess resources
using an auto-generated container map.
Out of the box,
Datadog collects critical metrics
from each Docker container
so you can get immediate visibility
into aggregated and disaggregated
service level traffic.
And as I like to do, I was just browsing around the Datadog website because it's really inspiring.
And so you can browse by products.
You can see really cool visualizations, recommendations for like network monitoring and how they set
up what they have available for like serverless products.
You can look by industry, which is also really cool.
You can look at like recommendations for gaming or healthcare use cases, DevOps, of course. I'm only hitting like 0% of what's available here. There's so much available on the website. It's got a whole section on it and the visualizations that are available for it. So, I mean, if you want to know if things are working or they're about to stop working, then Datadog is a fantastic way to do it.
And the website is just amazing.
You got to check it out.
Yeah.
I don't know if you guys have ever run into this, but like when it comes to monitoring, like for Docker and, you know and any of your containers or Kubernetes,
did you know that Datadog is for real?
They are the de facto source.
They are the how-to.
You want to know how to do something?
Datadog knows how to monitor it.
Because I don't know about you guys.
You want to figure out, hey, how do I monitor this thing in Kubernetes, for example, right?
How do I monitor this container?
Datadog's written a blog article or three about it.
I'm reading this O'Reilly book called Kubernetes Best Practices.
I kid you not.
There were several references to Datadog as being like one of the, like, this is how it was done.
This is how it was formed. Here's one of the original, like, you know, best practices for
how to do the monitoring. So they know what they're doing when they, when it comes to
monitoring containers. And, you know, like Joe mentioned, they have a whole slew of blog,
blog articles for Kubernetes, for
Docker, whatever your technology choice is.
If you're not already, you need to try Datadog today.
Start by signing up for a free 14-day trial and receive a Datadog t-shirt after creating
just one dashboard.
Visit datadoghq.com slash coding box to get started. Again, that's datadoghq.com
slash coding box to get started with your trial of Datadog and find out just why they are the
experts at monitoring. All right. So it's that time of the show where we again ask, if you haven't
already and you're feeling like you're in a giving mood, I mean, it's the new year. Why not? You know, if you have a chance, go up and leave us a review.
We have a link on codingblocks.net slash review where we might have some useful links there that
may be misleading at this point. But but if you really want to put a smile on our face,
you know, reach out to us with a review and, you know, say thanks or, you know, just leave,
leave some, some good vibes out there. We really do appreciate it. We read them.
Obviously we, we mentioned them on the show all the time. So, uh, we appreciate the time and,
and appreciate you guys listening. All right. Well, with that, we will head into my favorite portion of the show.
Survey says. All right. So a few episodes back, we asked,
how often should you update your resume? And your choices were, once a year, any longer than that,
and I'll forget everything. Or, as often as I remember, might as well do it while it's on my
mind. Or, right before I start the job search, no point in wasting time otherwise. Or lastly,
wait, you make it sound like I'm supposed to be updating that thing.
We also asked, how often do you update your resume?
And your choices there were, once a year, you're any longer than that, and I'll forget everything.
Or, as often as I remember, might as well do it while it's on my mind.
Wait, these sound the same.
Right before I start the job search.
No point wasting my time otherwise.
Or lastly, wait, you make it sound like I'm supposed to be updating that thing.
All right.
So this is what?
Episode 149.
So Alan, thanks to T-Tucks, I think it was T-Tucko.
T-Tucko.
Yeah.
Thanks to his fantastic scheme here, it would be your turn to go first.
So how often should you update and how often do you update your resume?
I think the should I'm going to go with as often as I remember that that's the
should, and we'll go with 35%.
And how often do you update?
I'm going to say right for the job search.
I'm going to go 65%.
Okay.
All right.
A little mild there, a little mild there a little mild there uh i'm gonna say that should uh whatever
alan said but 50 percent uh i couldn't find what episode was the survey on was it 41 46
oh you try to go find the numbers no it was like episode uh 320 yeah 20 i literally i just
couldn't remember the the option it was.
But whatever the one was like, yeah, I do it pretty often.
You should do it pretty often at 50%.
And for right before the job search, I'm going to put that squarely at 90%.
Yeah, that's probably much closer.
I hate it that you're going to beat me on that one.
Wait, so you're picking the same ones as I am then?
Yeah, just higher percentages
because uh i live bold go big or go home yeah okay you're gonna boldly go where alan went yep
i get the fire sauce is talking about you know about it. Okay. Well, uh,
okay.
So then for how often should you update your resume?
The number one answer was right before I start the job search.
No point wasting my time.
Otherwise really 43% of the vote.
Right?
Wow.
Okay. Yeah. That felt wrong. I agree. All right. Wow. Okay.
Yeah, that felt wrong.
I agree.
Like for the should?
Yeah.
Yeah, that felt wrong.
You got LinkedIn, right?
You already have all the information available.
I have thoughts on this, but we'll wait until the survey until we get the results here.
Okay.
So we both lost that one.
Okay.
How often do you update your resume?
Right before I start the job search.
No point wasting my time otherwise.
62%. Oh, we both did.
We both overblew it.
Wow.
What was second?
Second was a tie between as often as I remember and wait, you make it sound like I'm supposed to.
All right.
So I have a thought on this should and take it or leave it.
And I'm not implying anything on me personally for this, but I think you should put it in there as as frequently as you possibly can for one reason.
Don't put everything in there, right?
So I'll give an example.
Let's say LinkedIn.
LinkedIn is a great example that Joe just said.
Let's say that you're working on Visual Basic 6, but you also happen to be working on something
that you're excited about, like, I don't know, Elasticsearch, right?
You might want to go put Elasticsearch up on LinkedIn as one of the things you're doing in your resume area or whatever.
Maybe leave out the VB6 unless you want it.
Like, if that's what you love, then sure, put it up there. But my thinking is this.
The best time to ever get a job is when you already have one. Right.
And again, I'm not saying anything on me personally.
I'm personally happy with what I'm doing and where I'm doing.
But let's be honest.
Like, if you really dig elastic search,
for example,
right,
put it up there,
have it in your resume.
And then if people are looking for something that is going to require a lot
of elastic search,
and that's where your heart is,
you might be presented with an opportunity that you wouldn't have gotten
otherwise.
Right?
So keeping it up to date is good for that. Another thing that is
really good about keeping it up to date frequently is if you do that, then it doesn't set up red
flags from anybody that's in your LinkedIn that works with you at your organization and says,
oh, Outlaw just updated his resume for the first time in two and a half years.
Oh, that's dirty.
What's up
you know what i mean that's some dirty reasoning there alan hey man look i'm just uh here's how
you update it on the sly right and that's the problem like i i no lie in the past i remember
at one point i had updated my linkedin and somebody, yo, you're getting ready to leave. And I was like, huh?
But, and of course I was, but you know, it was, it's, it seriously is a double-edged
sword.
So if you make sure you're constantly keeping it fresh, then you're not sending off warning
bells anywhere.
And at the same time, if somebody does have an amazing opportunity that might be the exact thing
that would keep a smile on your face for the next two or three or four or
five years,
you could be missing out by doing it.
So that should one,
like I totally do not understand right before the job search.
I don't get it.
Yeah.
Yeah.
Yeah.
I agree.
I'm just going to export LinkedIn.
There's got to be a way to do it.
Is there a tool to export LinkedIn as resume?
There probably is.
I thought LinkedIn already provided a way to where you could just save it, save your profile out as a PDF or something.
Yep, you can absolutely save it as a PDF.
That's it, man.
That's it.
That's how I'm doing it from now on.
Yeah, man.
So, you know, some of those HR systems are like, okay, now you got to upload it.
Oh, we didn't get anything.
Now you got to fill it all in.
Right, right.
But yeah, man, LinkedIn is actually a really great tool for that kind of stuff.
I mean, you will likely get harassed by a bunch of, you know, headhunters trying to get you to join companies.
But man, update those skills there. Get people to, to, uh, what do they call it? When,
when, you know, uh, one of you guys basically says, yeah, yeah,
he knows JavaScript. I thought they got rid of the endorsing. Oh,
the endorsement. That's what it was. Is it gone? Oh, okay. Yeah. Yeah.
Yeah. I think they got rid of that. Now it's like like you can select some skills that you want to show up or something,
but I don't remember how it works anymore.
Interesting.
Okay.
But, yeah, man, keep those things up to date.
Do it.
You know, not every day, but put that stuff in there.
And so I just went and exported his resume,
and I was immediately not happy with how they arranged it and what things they emphasize i kind of put like certifications
up higher than i would have wanted but it does look like you can do a uh you can create a resume
from profiles they have like profiles built in and you can go kind of search for them and whatever
and so you can kind of customize it so that's pretty cool so it's still a good way of keeping
your data in resume in linked LinkedIn and then generating a resume from
that. So that seems like the best way to keep it up to date. Cool.
I like it. Hey, I'm going to go ahead and apply for some jobs
now while we're at it. No, I'm just kidding.
All right. So, yeah.
So no words on the how often do you, though?
No, that's totally legit.
Yeah.
You ever notice how, like, interview questions, though, like, there was a period of time where, like, interview questions were, like, really silly, like, mind thinkers, you know?
You remember that?
Yeah.
So let me ask you guys this.
What's the difference between a hippo and a Zippo?
Oh man. I've heard this one before.
You ready? One is really heavy and the other is a little lighter.
See, I threw
in a dad joke and you weren't even prepared
for it. How do you like that?
That was good.
That one was from Mike RG, of course.
Of course.
As soon as you have hippo in a sentence,
that's all I can think about. I forgot
about the other part. I'm just like, hippo.
How about for today's survey, we ask.
Now, remember, because Alan kind of gave you a hint, right, before when he mentioned the six key.
So which hand do you type the six key with?
And your choices are the left, because duh, it's closer or the right,
probably because of my ergo keyboard. This, this one hits really close to home right now.
I got to say, I have a little bit of PTSD from this whole six key arrangement thing. I'm not
even kidding. Yeah. I mean,
when Alan asked the question,
I was just like,
what?
That's not even you with this,
your left hand.
Like that's how you do it,
man.
I'm seriously curious what people say when they come back with this.
Cause I think I told you guys,
like I did some Googling and apparently it's not a fixed thing.
Some people learn with their left hand.
Some people learn with their left hand. Some people learn with their right hand.
And a lot of these ergo keys have decided that they're going to force that decision down your throat.
And I don't like it.
So I got to say, so we talked about this a little bit earlier.
And I realized that I don't type properly, even though I thought I did.
I keep my ring finger on the A key.
So I basically don't use my pinkies pinkies
for any typing of letters but i gotta know how do you control a and control c and all that stuff
like what how do you do that pinky man pinky so how do you control a you do control with the pinky
well in that case you're moving your hand so yeah i control i control a with my
pinky on the right control or left control in my ring on the a i move my fingers around like
i probably shouldn't i probably should probably press the control with my right hand in the a
crossover that's advanced technique there no no, no, no. With the right-hand control. I should probably hit the right-hand control. Yeah, there's a right-hand control button.
No, nobody uses that.
I agree.
No.
But I do it wrong.
I actually do pinky middle finger for the A.
Pinky middle finger for the A?
I think.
Man, now I don't even know.
I think it's pinky middle.
Wow, that's weird.
Well, at least on this keyboard.
So that's the problem, right?
Like I am now in keyboard.
Oh, yeah.
You don't even know what you would do on a normal keyboard anymore.
Yeah.
So the keys on this Zergotech are much bigger.
So I'll give you an example.
We know what's to the left of you guys' A key.
It's the caps lock, right?
Mm-hmm.
You want to take a stab at what's to the left of my A key?
Function keys.
No.
You, Josiah?
Escape?
The backspace button. Oh, hell no.
That's a disaster.
How did you do that?
But he's not wrong.
So,
so I'm telling you,
like I'm truly,
my brain has gone through some,
some,
some serious stretching over the past month and a half with these keyboards.
Right.
But,
but yeah,
maybe on a regular keyboard,
my,
my ring finger would have been the a,
but when I do,
when I do like,
okay,
so are you guys with me in the,
anytime you're in visual studio or visual studio code,
you're always control S and like,
I know I hit that.
Like if I type five letters,
I'm like control S five more letters,
control S.
I'm always saving my documents like a ridiculous amount of times.
That is always my pinky and my index finger on the S. So I don't know why I shift my fingers so much when I do
that stuff, but that's what I do. I mean, I shift my hand too for that. So like I said, I probably
should technically be using the right hand control and using my pinky using the right hand control and, you know,
using my pinky for the right hand control and then using the,
uh,
you know,
for the S it would probably be the ring finger,
but I shift it,
but I don't use the index.
I use the middle finger.
Yeah.
I think we're both off a finger and how we do that.
So yeah,
but yes,
all of this came down to more or less my sculpt.
Ergo, Yes, all of this came down to more or less my sculpt ergo. The six is on the left hand on both the Kinesis Advantage 2 and this Zergotech.
The six is on the right hand.
And I can't tell you how many times I've mistyped numbers on these keyboards and how many times I've about lost my mind because the keys are not in the spots. And it's honestly, because
those number keys are the least amount of my typing, I get them wrong every time because I
just don't exercise those muscles enough and it drives me crazy. But I'm super curious though,
because Joe, you're saying you have your pointer finger on your left hand on like a normal, like 104 keyboard layout.
You would have it on the D.
Yep.
So, I mean, you know that those nubs are on that F key for a reason, right?
Like, did you look at that and you're like, huh, manufacturing defect.
I mean, I guess when I learned typing back in the day.
So back in the day, fun tidbit about this is how old I am, right?
My middle school had a business class that I signed up for.
And all it was was teaching typing
on typewriters because that's what business people did they tasked it's like here we're
gonna spend a year teaching you data entry congratulations and seriously all it was was
like here here's like it's like type this up type that up like oh here's the white out
don't get it at the teacher's desk you know what's great about this is when you
said hey you know those dubs are out there for a reason joe's like like look down at the keyboard
yeah like wait really like man i play guitar i can't feel those dubs
you know what's great though he's jettisoned his pinkies like they're dead to him yeah he
doesn't use them yeah i barely use them for
guitar either i'm terrible about it i always knew that was a bad habit of mine i used to even put
rubber bands on to try and make make it so i didn't like just have them flinging off into
space while i was trying to use them what you put rubber bands on your pinkies yeah it's this
common like people will do that like you put a rubber band so i keep your finger from like like if you're picking or something like
from flying off like you're holding a teacup i also do by the way if i'm drinking water or tea
whatever like pinkies up i i just flies out i purposely try to use my pinky when i play
oh i purposely try to but it's impossible impossible because it's flung off into outer space.
I mean, I will
say, okay, so as
specific to guitar,
if I'm playing scales or whatever,
I will try to
stay in the habit of using
my pinky there. And there'll be certain songs
for parts of the song where I'll use it,
but I have heard
that they'll say,
for some parts, you want to use your, quote,
strong finger.
So if I need to do a vibrato,
I wouldn't use a pinky finger for that.
No, because you can't control it as well.
Well, I mean, it's just, yeah.
I would feel like i'd have more
control with you know another finger you know what's so awesome about this this all came from
which side of the keyboard is the secret because i was like what do you mean there's no way i could
get that with my right hand it'd be impossible i mean when alan originally asked this question
like i immediately went in i i i can't I had a third hand, I would take a picture.
But I immediately reached with both index fingers at the same time to the six key.
And the stretch that my right hand has to do to reach that on a normal keyboard layout, not an ergo keyboard layout, then I'm like, there's no way.
But now, do I ever use my right hand to type that six?
Sure.
I'm sure that there are times where I completely don't even care
and hit every number with whatever.
Who cares?
It doesn't matter.
But, yeah, no, you should.
It hurts my soul, man.
Like, I'm unhappy that people have decided to move it to the right side of the keyboard.
Like, I feel like it's against all human will that anybody decided to do this.
It really bothers me you know not to harp on the ergo keyboards too much longer but you know one
thing that's weird about it though is that like a common thing on the ergo keyboard layouts is they
ditch the numpad which we've discussed i'm fine with that decision on a laptop but you know for
a desktop i'm i kind of prefer to have. I like to have it because for any kind of like – it doesn't have to necessarily be like quote accounting type stuff.
But it could be like any kind of account reconciliation that you're doing or whatever like – or like just spreadsheet stuff.
Like I kind of – I like to have that as an available as you know,
I need to have that there.
And it's a shame that they all ditch that.
Well,
I can tell you why.
And I,
and I've actually seen it come up multiple times and it's one of the reasons why the sculptor goes so popular is because when they get rid of that part of
the keyboard,
your mouse is closer.
So you're not moving your arm as much to get to your mouse to and from your key so
it's a much minimum a more minimalistic motion than the others and that's why they do it now
whether or not you like it or not you know again i guess you could go with another split keyboard
that has that thing on the side but that is the reason that they do it i think that's going to be
um i started to say it was gonna be the biggest challenge I was going to have with the moon lander. Um, and then I remembered, whoa,
wait a minute. Uh, no, it will not be the biggest challenge. Um, using that keyboard is a challenge
and hopefully I've got to try and get that video together where, uh, I did a, uh, like a hot take
for outlaw on just using that thing the first time.
And it's a,
it's pretty comical.
So we're going to hope to get that video up here pretty soon.
It was extremely comical.
I can't wait to see what people think of that.
Uh,
it was,
it was like sad.
Joe,
you should see,
you should have seen my words per minute,
how pathetic they were with,
with that moon lander. because it's an awesome keyboard.
But it will take me some time to get acclimated to it, no doubt about it.
Yeah.
Yeah.
So.
I want to see this.
Yeah.
So how about this?
If a cowboy is happy, does that make him a Jolly Rancher?
Yes.
Biker G.
It was.
Hey, how'd you guess?
That's so good.
All right.
So I think we were continuing on with Joe's next pick.
Oh, yeah, yeah, yeah.
So I wasn't going to say the K word again.
Now, my next favorite tool is one I mentioned before and talked about quite a bit,
and it's been quite controversial.
I mentioned I still have to explain myself
from time to time on the notion
of Jamstack
and compile time rendering
but Netafly has only gotten
better as far as I can tell
it's still an amazing service to use
for publishing websites and so
it's still absolutely totally free
they'll build your static
site now they have limited the number of builds you can do a month.
You have like a certain number of build minutes.
But unless you're going just crazy, checking in all the time, doing huge builds, you're not going to hit that.
So yeah, it's still the same thing.
It's a service that will build your static site.
It'll run like your Go static site generator or ruby or node based static site
generator it will publish your files so it'll set up with the website it will um give you a check
box for https has a lot of really nice options for like shadowing and just like all the kind of
modern stuff you expect for like uh like modern javascript apps so you can have like pretty urls
and stuff like that and it's all just like dead simple.
Like you give them their,
your get repository and it's just done somehow.
It's fantastic tool for building a website.
Like if you need to build a resume site or just,
just do something fun and publish it so people can see it.
Then I think it's the best,
best choice by far.
And if you want to step it up a notch,
say you want to do some backend stuff, then they have a really easy path to do that.
You can sign up and pay, I think it's like $15 maybe for the basic plan.
And they give you support for easy auth.
So you can have users, authentication, and also easy serverless integration.
So you get some number of build minutes,
and of course you can go and spend as much money as you want.
I'm sure they'll be fine with that.
But they also handed it off with the serverless components.
So it's just really easy, like, I mean, dead simple
to set up a really nice website with serverless backend.
It's going to be really cheap.
I mean, it's just like a fantastic way
to build a website.
You always say, someone asks you,
how do I build a website right now?
The answer would just always be, it depends.
Now, I really do feel like the answer
is Netlify unless
I can't.
This is just the
default way I think about websites now.
If I'm going to build a web application, this is what I'm aiming for unless there's some strong, hard reason why I need to do something that deviates from that.
I like it.
So free, basically, unless you need to support some sort of back end that you need to host yourself.
Yep.
And if you want to go your own way, you want to do your own serverless components or you want to do a traditional kind of API
server, like whatever, that's fine. It's just on
you to kind of manage the authentication and all
that stuff, the OAuth, like all that stuff,
which is not exactly fun or sexy, but
there's nothing stopping you from just
doing your own thing and just using them for the front end.
But I'm just lazy, and I
like other people that set up
that stuff and do a better job than I would.
Very nice.
Jamstack.
Jamstack.
That's been a minute.
All right.
Cool.
So then I guess my next one.
No, wait.
No, it's not my turn.
It's Mike's turn.
It can't be my turn.
All right.
I don't mind.
I'm done.
Done.
I am not going to be done for a minute.
So I don't know that we've ever talked about this one, but the Jira stopwatch, I just felt like it should have earned a place a long time ago if we have never mentioned it.
I don't recall if we have never mentioned it. I don't recall if we have, but it's basically a
tool. You can go find the source for it on GitHub, but you can go to jira stopwatch.com
and find screenshots about it and all that. And it'll navigate you over to GitHub to get
the latest version. But basically if you are a JIRA user, then you can set it up to off to your JIRA
server. And it can pull in all your epics, all your tickets, you can, you know, as you're as
you're typing in a ticket, it'll tell you, you know, the, uh, the, the title of the ticket and whatnot.
And then you can just click a little button, a little play button to start tracking time
for that ticket.
And then when you're ready, when you're done, there's another button to go in, uh, publish
that time to that ticket.
And if your organization, if you keep track of your time spent on the tickets, then this
is a super helpful way.
And you can have, you can load up like, you know, I don't, I don't even know if there is a limit on
the number of, uh, line tickets that you could have in there. Um, but you can, you could load
up a bunch of different tickets in there. And then that way, if you need to bounce back and
forth between tickets, you could just hit pause on one, play on another.
Or if your organization, for some reason, I don't know why this would be a thing, but if you are allowed to log time to concurrent tickets, then you can do that as well. You can have it set up to where as soon as your machine is locked, then it'll automatically pause the tickets, the ticket time for you.
And when you unlock the machine, it can resume for you.
So just a great little easy way to keep track of all your time and submit your time for your tickets.
Is that embarrassing though?
That we have to, that we live in though? That we have to?
That we live in a world where we have to?
I know for me, it's like sometimes I'll spend forever
and then the commit will be like two lines.
I'll be like, oh, geez.
I see that I logged
seven hours on this thing.
I got over being embarrassed by that stuff
years ago. That's the developer
life, right?
Okay, that's Alan's response.
My response is, yes, totally.
I totally get it, but I still do it anyways.
Yeah.
Because the problem is –
It's about the ticking clock that just makes me feel like it's just watching me.
Sorrowed's eye.
Yeah. But the problem is that it makes it easy for me to be able to say,
okay, here's an example of what I mean.
Let's say that I have a simple one- or two-liner thing that I want to do,
and the writing of that is obviously short, right?
That didn't take a lot of time.
But sometimes the testing of it't take a lot of time, but sometimes the testing of it,
it can take ridiculous amounts of time. Right. And I think that it's important to be able to like
go back to, to, to have that evidence and be able to like, go back to your manager and say like,
look, this thing really wasn't a big deal, but it took this amount of time. And here's the reason
why it took the time. And it might be like,
like I gave the,
like I just said,
the example of testing,
but I mean,
we've joked in the past with like,
take an EXTJS,
for example,
where we have spent,
you know,
hours,
maybe even days like debugging an issue where you find it's an issue in the
framework.
And,
and like literally the change is like add a comma here.
Right.
Or,
or something ridiculous like that.
Right.
And,
and I think it's important that like,
regardless of the amount of size of the change for that,
for that fix or that feature or whatever,
you know, to, to, to have the amount of time and be able to like, for that fix or that feature or whatever, you know, to,
to,
to have the amount of time and be able to like,
you know,
show that like,
Hey,
yeah,
it took a long time,
but here's the reason why.
And to have it logged.
So I think it's important to have like a,
you know,
I,
I like to have a more accurate logging of the time,
you know,
even if it is,
even if I am embarrassed by the amount of time I spent on something.
Hey, and I'll also plus one, this one too. It is a great tool,
but one thing worth mentioning is this is a windows only thing.
I believe it's an MSI installer. So yeah.
Yeah, it is windows only, but Hey, source is up on GitHub.
You could easily port that if you wanted to, you know,
fork that repo and make a uh an ubuntu version or
a mac version i feel like there's gonna be a kotlin version in the future here all right so i guess uh
jay-z ran out of so i'm not gonna belabor this one much at all but i think it's a nice alternative
to the canines tool that was mentioned earlier so j Jay-Z and I are squarely in the K9s world
because I like the keyboard interaction with it, right?
I like to go fast.
Right. I want to go fast.
So there are others with the people that we work with
that much prefer this other tool called Lens
that is another Kubernetes
UI, except this is more like an IDE. It sort of reminds me of Visual Studio Code. It allows you
to navigate the Kubernetes world inside an actual IDE. And it's done really well. The few times that
I've used it, I can say that it's good, but it's a lot more mouse moving and it's a lot more finding menus and expanding trees and all that kind of stuff.
Right.
As opposed to canines where you're just hitting enter as you want to drill into things.
So, you know, if you were more comfortable in the GUI world and you want to be able to navigate quickly your Kubernetes clusters and all that kind of stuff, then this is a really great tool.
Cool. Cool. All right. You want to go next? Yeah, sure. I mean, this one, uh,
I can't believe that nobody else said this one. So I felt like this one deserved to mention
in the year of 2020, how can you not mention zoom here, here with the insane user base that, or, you know, growth that they had this year.
You know, the three of us, we have been longtime Zoom users for years now. And in fact,
I think we even introduced our previous company to it, our previous organization, we introduced them to zoom and they ended up, uh, um, you know,
getting, getting the company set up on it. Um, but I mean,
we've been using it like, so behind the scenes, you know, so that, you know,
for this, this podcast,
we use zoom and have for many, many, many years now.
So you all know zoom, you know, you've heard about it, whatever.
But we've also have had the privilege of using just about every other platform there is for
video calls and whatnot. So name it, Skype and Teams and Slack and Google Hangouts, WebEx.
Who am I leaving out?
I'm leaving out something.
I feel like, oh, like go to my meeting and go to my PC user.
Yeah, that's the last thing.
Go to my meeting or yeah, whatever.
Go to meeting.
Go to meeting.
I will say that hands down, Zoom is the best video calling software out there for screen sharing.
Because there are some of those where you can't even, you can see the other person's screen, but you can't actually read it.
And when you're trying to like, you know, pair program remotely, you know, and if you're doing it through your video calls, that matters.
The other person should be able to read what you're trying to share.
So, yeah, Zoom.
It matters a lot.
A little bit.
Yeah, no question.
I can't believe that none of us called it out either.
Good on you for Yeah. Remember that one? Cause yeah, it's probably,
it's probably the tool outside of our coding environment that we use the most.
Right.
Well,
well not zoom for our business,
but,
but video calling and sharing type stuff,
right?
Like it is hyper important even this year.
Yeah.
Even prior to,
to pandemic though,
we were all,
the three of us were heavy, heavy, heavy video calling users.
Yep.
And it is definitely a fantastic tool.
And let's not forget, they got slammed at the beginning of the pandemic for having security and privacy issues, and they addressed them fast.
They came out firing and made sure that they got all that stuff taken care of.
And it's one of the reasons why none of us could ever join our calls anymore.
So it's all good.
Yeah, I mean, there's some statistics out there.
I can't find it right now, but they've had just amazing growth.
You mentioned them responding to security flaws and things like that that were found in the beginning of the pandemic, which, okay, great that they did.
But the fact that they were even able to handle the bandwidth, it's just phenomenal.
It's been nuts.
We've never noticed the drop-off. Talk about being prepared. Oh, it's just nuts. Phenomenal. Like they, we've never noticed being prepared.
Yeah.
It's,
it's been amazing.
All right.
So I'm going to flip my last two here because,
um,
my other one's going to lead into the tip of the week.
So the next one I have is actually another two for,
instead of,
you know,
separating them out because I think they kind of go hand in hand,
at least in the way that we've seen them. Prometheus and Grafana. So, I mean, we just
wrapped up not too long ago, a series on DevOps stuff, right? And being able to monitor and quick
feedback cycles and all that kind of stuff. And I think that we're sort of unanimous in saying here
that having tools like Prometheus, especially if you're in a Kubernetes world, and a tool like
Grafana that can expose metrics that Prometheus gives you is just absolutely amazing.
What's awesome is when somebody has been working with applications
that they'd never really had the insights into, like they've never had the ability to monitor
things and they've never gotten the metrics out of it. When you introduce that kind of stuff,
people go, how did I ever live without this? Right. And the fact that there are tools like this available that are free,
that people and companies spend time improving and making it so that everybody can benefit from is absolutely amazing. So Prometheus, I'm going to read you what it is just in case you've never
heard of it. Prometheus is an open source systems monitoring and alerting toolkit originally built by SoundCloud. So basically it gathers metrics, right?
And it's a time series database more or less that you can query.
They have their own query language called PromQL,
and it allows you to query into the data that is generated,
the metrics that your applications give.
And there are very standard ways of providing metrics to Prometheus,
which the reason why the three of us have been messing with it is because it's
sort of because of the way Kubernetes is set up and the way that it handles
its logging and its metrics gathering.
It's such an easy plugin for Prometheus and it's part of the CNCF,
the cloud native compute foundation, I think is what it is.
Yeah, I think so.
Because it's
almost always bundled in Kubernetes
clusters because it exposes all
the metrics that you can then take
and query to find out information
about how your apps are doing, how your
pods are doing, and everything else.
And then Grafana,
what is it?
Grafana is an open source visualization and analytics software. It allows you to query, visualize, alert on, and explore metrics no matter
where they are stored. In plain English, it provides you with tools to turn your time series
database data, Prometheus, into beautiful graphs and visualizations. So really it's the graphing and it also has alerts
built in. The thing that I like about Grafana for alerts over Prometheus is the fact that you can
pull from different data sources, more data sources, right? So now you have one place that
you can use to do your alerts and that kind of stuff. But, but those two tools hand in hand,
I think are just absolutely
amazing for for the investment that you get in them so i have a question about uh grafana i've
been wondering about so i've been working on like uh just a little home project here for i want to
make like um a cool dashboard just to kind of have like in my office so it shows like maybe my steps
for the day and the cutting box downloads and, I don't know, just whatever.
Like, whatever I can figure out how to throw in there.
I just thought it would be cool.
And my first thought was to go with Grafana because it just seems, like, really great.
It supports multiple data sources.
So if I wanted to use a spreadsheet or if I wanted to use Kubernetes or I wanted to use a lot of search, whatever, I can pull from all that.
However, it seems like Grafana is really geared toward, like, recent data.
And I just don't think it would be exciting for a lot of my data sources it doesn't change like every two seconds
and it really seems like grafana is like tailored to like real time so i didn't know if there was
like another more general kind of uh dashboarding type system that i could use that might be more
appropriate for like data that doesn't really change and pie charts and like other kinds of data.
Then that's not so like focused on recency.
Well,
with Grafana,
you can set your intervals,
right?
Yeah,
you can,
but just see,
it's like,
it kind of scares me.
It's like,
if it's tuned for like every five seconds or whatever,
then like,
am I kind of abusing it?
If I'm trying to do stuff that like shows on like a yearly horizon or
whatever.
Yeah.
That's what I was about to say.
It's like,
even though you could have those,
uh,
tune those intervals,
like it's really meant to be like,
Hey,
here's the last seven days.
Yeah.
It's not,
I don't know.
Here's the last year's worth.
Yeah.
That's a good question.
I'd actually have to look into that.
I'm not sure.
Yeah.
So I don't know if you,
Hey,
if you have a comment,
uh,
that'd be great.
Cause you're, you're almost talking about like trending type things, right?
Like you really want to see when things are changing as opposed to what the last, you know, hey, what's the heartbeat of this thing?
Yeah.
Maybe I want to show my retirement savings or something, you know, which would be something cool to see over 10 years.
You know, I don't know.
But I don't know if that makes sense to have all.
Here's my way of putting Joe on the spot because where we left off with our streaming, I don't know if you guys know, I'm now a Twitch streamer.
And I'm like full on into it. That's all I do.
I live and breathe by the Twitch stream. And, you know, Joe, where we left off with our series
was that we were going to add some logging
and monitoring metrics to our environment
that we were building up in Kubernetes there.
And so, you know, maybe if we were to, like, get back to that,
I don't know, maybe we would, like, be able to answer that question.
Maybe this weekend. I'm down. I'm down.
Yeah, I mean, I was, like was kind of doing the same thing there.
I wanted to get a little experience with it, so I started using it.
It just kind of felt a little awkward.
But, yeah, I don't know.
Maybe that should be the default.
It does look like there are other dodgeboarding tools out there.
I see Mosaic.
Or not Mosaic, Tableau.
You start running into some serious cash with Tableau if you go down that road.
Well, there's a free tier.
Yeah, there is, but it looks like it's public.
Yeah, I don't know.
It seems like Grafana, I mean, just by the very definition,
they want you to be able to visualize metrics off your time series databases.
And if you're talking about something that's time
series based then there should be a way to maybe even make it to where the intervals are more
calculated for you you know what i mean like you've seen graphs that adjust the axes based
off the data that you have i have to imagine there's a way to be able to query that stuff
in a way that makes sense to show on Grafana.
You're talking about where the zero is the scale of the – sometimes that can be so frustrating though.
It totally can.
Grafana especially can – you can see a visualization in there and you'll see a graph that jumps really high.
You're like, oh my god, what just happened?
And then you'll notice that the scale has been changed to where you're looking at like a fraction of a fraction of a fraction it's like
right oh yeah really like if you zoom out then that thing is like pretty flat so who cares oh
dude yeah we've talked about that before right like you can make charts tell tales that are so
misleading because it looks like something jumped but it okay you got one extra thing but it looks
like it doubled well yeah it did double but you got one extra thing, but it looks like it doubled.
Well, yeah, it did double, but you got one extra.
It wasn't a big deal.
Right.
I want other stuff too.
I want to have a dashboard that shows the weather
and also my next meeting that's coming up and also whatever, like my calendar.
So I don't know if it's appropriate or not, but whatever.
Sounds like you want a phone and you want some widgets on your screen of your phone.
That's true.
Yeah.
I think you, yeah.
It's jz.js.
That's the, uh.
Yeah, there you go.
I want a phone, but like on my wall.
There you go.
That's called an iPad.
Yeah.
Yeah.
Okay.
Really?
But I want it in the console and I just want it scrolling green all the time in case anyone walks into the camera. It looks like I'm a hacker. Oh, now you've gone past. Yeah. Okay. Really? But I want it in the console and I just want it scrolling green all the time in case anyone
walks into the camera.
It looks like I'm a hacker.
Oh, now you've gone past.
Yeah.
Now we got nothing.
All right.
Well, uh, how about for my next one?
I wanted to bring up some of my favorite, um, visual studio plugins.
And we've talked about some of these before.
Um, maybe probably all of these likely, but at least, uh, at least a couple of these I thought we've mentioned before,
but so first I have up is the bracket pair colorizer, which, um, if you've never used it,
what it'll do is it'll allow you to, uh, well, I mean, as the name will say, it'll colorize the brackets. So
like inside of one inside of your method, maybe the brackets are purple and then you have like a,
some other control flow, like an if statement and those brackets are those curly braces, I'll say
are blue. Right. But it, but it's really more than just that because it'll also like underline the
method and all of the codes that apply all of the code that applies to it with
the same color as whatever the,
the bracket or curly brace was for it does that for,
um,
that same kind of logic applies to arrays.
It applies to function,
uh, uh, parameters, you know, so a function parameter list.
It's just a super easy way of seeing like all of the things that belong together, which, you know, let's face it, if you separate out your JSON or your YAML or whatever, like, you know, it could be spread apart a little bit, right? So it might be a little bit,
might be hard to follow some of that stuff.
So even if you are trying to follow, like,
you know, an Uncle Bob's clean code
and only have, like, you know,
more than three lines of code per your method, right?
There are times where you might not be able to adhere to that.
Never heard of this getting installed
as soon as it opened up code again.
Oh, really?
Oh, man, I could have sworn I talked about this one.
It is totally awesome.
I hope you – I can't wait to hear what you think about it because I really do like it.
Another one I know we had to talk about this one is called get lens. And this one is basically, um, just a super
nice way of like, while you're in your file, or let me talk about my favorite use of it first,
while you're in the file, any one, wherever your cursor is, it's immediately showing you in like a subdued text, uh, like a
grayed out, you know, kind of text who last changed that line and when and what the commit was.
Right now that's my, my one favorite feature about it, but there's so much more that it does
that I don't even care to use. Cause you know, of course, command line. But, but yeah, so like you could go
in and diff files, you can see like the revisions, you know, what, what, what was changed, you know,
on the file when and, you know, things like that. So it's got all your like normal get tools. But I
just like that one thing where I can like immediately see like, hey, wait a minute,
did I, it was me that changed that line.
Right.
And like, you know, it's just immediately right there.
Um, do you guys use that one?
Yes.
That's a must have.
And, and what were your, your favorite features about it?
I like seeing the, like, if I'm on a current line who last changed it, last
change, like that's, That's my big one.
But there were things in here that I didn't even realize happened.
There's also the hover overs that happen.
The hovers are nice.
I don't really take advantage of that, but yeah, you could hover over the line too,
and it'll show you the message that changed it.
Usually, I don't know that I keep the mouse there. I usually have
the mouse out of the way. So I guess that's why I don't like, you know, take advantage of that
that much. I'll tell you what, that I didn't even know existed, but I will be using next.
If you click on that link that you had there, right under features, there's one called revision
navigation, where you can click forward
and backward to go through the revisions of it so you can actually quickly see the diffs on it
i've i didn't even know that existed yeah so that that'll be something i'll try out next go around
yeah my favorite is uh right click view history and then you can basically do just that like kind
of walk through it like that and sometimes i like just seeing the files that are listed,
like that you've changed because everyone saw it.
I'll be like, wait, I changed that file.
Click on it and, you know, maybe it's something interesting.
Maybe, oh yeah, I did.
That's right.
Or, you know, whatever.
But it's kind of nice to see that information all the time.
Yeah.
It's got a truckload of functionality and I,
I don't even scratch the surface of it with the use case that I mentioned as my
favorite.
Um, yeah. So yeah, it's definitely like, don't even scratch the surface of it with the use case that I mentioned as my favorite. Yeah.
So yeah,
it's definitely like anytime I'm setting up a new environment,
it's like a bracket pair colorizer and get lens.
I don't even know if I would say that like one of those is always first and
the other one's always second.
Like it's probably a toss up between like though,
but those two are definitely like two of the first plugins
I install every time. Then another favorite of mine is rainbow CSV. And I don't know if you've
ever used this one, but if you ever have a truckload of data to look at, then this is a must have. Because let's say that you have a CSV, you know, just a
comma delimited list of data, and you want to look at it, it will colorize the fields. So that
regardless of where, because they're comma delimited, right? So they're not going to like
necessarily all be uniformly, not every line Isn't going to be uniformly formatted,
right?
To where one field is directly below the next.
And with rainbow CSV,
you can easily see all the fields that are in the same position because it'll
colorize them all together.
And you know,
when you're looking at a bunch of data,
like that is by itself,
uh,
worth its weight in gold.
Now, I didn't even realize it until I was putting the show notes together and saw that it actually has SQL-like queries that you can run on it on the CSVs.
I didn't even realize it had that.
I just used it for the colorization
that's really cool yeah rbql it says interesting yeah there's this one so yeah there's my awesome
this is my giant tip of the week episode uh and there's some of mine. I like it.
Colorizer is my favorite.
I love it.
So I didn't,
didn't know about it.
So,
uh,
how about this then Alan?
Cause you said yours was going to lead into the tip of the week,
right?
So you have one more left.
So what if,
what if we just press pause on that and I go ahead and do my last one and then we just go straight in the tip of the week?
Let's do it.
So my last favorite tool here, and I know we've talked about this one in the past before,
and I believe Alan is the one that turned us all on to this, and that is Commander,
which is hands down the best terminal for Windows.
And I dare you to argue with me, fight me, you will lose.
It is the best one.
It literally like every shell ever in this one thing, you can have them all tabbed across.
You can split them in so you can see them at the same time. So, um, you know, I've definitely had
situations where like maybe, uh, I don't know, I want to like do a, a, a kubectl logs, you know,
minus F in one, but I want to like exact and see some other stuff in another window, but I want to
see those at the same time, but I want it to be one self-contained window. And with a commander,
you can easily do that. You could have like multiple, uh, you know, terminals, right. Or,
you know, multiple shells right there, you know, that you could access all in the same time in the same window. Or like I said, if you wanted them to be just different tabs, you could do that too.
Um, I can't say enough about, Oh, the other thing that's important to note though about this is cause this is
building on top of a Connie Mew, if I remember correctly.
But the big thing here is that with commander is it's self contained.
Like literally you extract the,
the zip and wherever you put that, that's all that's needed to run. It's not like trying to
magically put anything in your registry or, you know, some DLLs somewhere in some, you know,
program files directory or whatever. It's just like literally it's right there. So you could put
it on a thumb drive. And then if you, you know, if you, if you were like a sysadmin that was
walking around from machine to machine, you literally have your console of choice with all of your profiles set up to walk around with you like on that thumb drive.
Yeah, it is still – you were talking about things that you install every time that you set up a new thing.
If I have Windows, this goes on it. about things that you install every time that you set up a new thing this if i have windows this
goes on it i don't even care if it's a personal computer that i'm not really doing anything else
and i will not touch a regular command line if i could avoid it i will say it is the best for sure
hands down however i don't use it that much anymore i just use the terminal and vs code
what i like about that is like i usually have a couple vs codes open that just kind of like
live in certain folders that are associated with certain repositories
that are just there all the time and so I
like to just kind of like
have my shell there that's kind of
associated with that project and so whenever I do
like say some git stuff like it's
always in the same terminal as the VS
code folder that I have opened and I have the
plugin that colors it so I've like
got the green code for this project and the blue
code for this project and the blue code for this project
and the red code for this project,
and they all have their respective terminals.
So it's just nice to keep them together.
Yeah, that makes sense.
You know, that reminds me,
the one thing I do hate about Commander
is if you do PowerShell in it,
the colors are always whack.
It drives me crazy.
Well, I mean, do you not change your theme for it? Uh, I think I have, it still never looks
quite like PowerShell does, which always bugs me. Well, I was going to say that like to, to Joe's
point, like I absolutely do that same thing. I use the terminals that are in VS code. It's like
the, you know, here's the purpose built terminal, you know, for terminal for this particular project or whatever.
But I don't, like in my kubectl example, kubectl logs example, I wouldn't want to try to follow the logs inside of a Visual Studio Code terminal window
only because usually I leave leave it, it's like default small size, you know? So it's good. And like, I like it. So it,
I think it's good enough in that size to be able to like, Hey,
I want to get commit some code and, you know, move on.
But like if I need to see a bunch of things at one time, then I,
then that's when I want to have a dedicated, uh,
you know, terminal for that.
Yeah, that makes sense. All right. So onto my last one, and this one is,
this is fairly new in my tool set and I bring it up here for a couple of reasons. I'll get into it.
So I built my own homegrown NAS, right? I know we've talked about it in the past.
But when I did this, I went down the research hole of days.
I think I came out unshaven.
He wouldn't do that.
Right?
Disoriented, confused, frustrated.
At the end of all of it, I found the OS for this NAS called Unraid.
And honestly, it is done so well. So there's tons of different ones
out there. There's Open Media Vault, there's FreeNAS, there's some other ones. Long story
short, this is one of the only ones that you pay for. And the primary reason I went with this one is because things like free NAS,
the performance is super high, but you basically have to pair hard drives. If you want to increase
the space on your NAS, you got to buy two of the same drive. That gets really expensive when you're
trying to grow your network storage, right? Open Media Vault, super popular if you want to Jack with Linux all the time, right?
Like there's some things I don't mind playing with, but when we're talking about backups
for my family photos and things, I just want something that works.
You know what I'm saying?
So, and I know Outlaw is a fan of Drobos. And one of the reasons you would buy something like a Drobo or an off-the-shelf NAS is so you just don't have to worry about the OS or anything, right?
Like you just want to be able to save files on it and never have to think about it again.
So, this is where the Unraid thing comes in for me.
So, first off, they allow you to do all kinds of crazy things. But in short,
you have a parity drive or two if you want to do two, but you have a parity drive. And then every
other drive that you add to the system, as long as it's the same size or smaller than that parity
drive, you can basically add up to, I think, 32 or maybe 29 hard drives in there. So I went with 14 terabyte drive. So right now I have three 14
terabyte drives in there, which basically gives me one parody drive. That's 14 terabytes. Can't
count that as storage space. Right. But then my other two, the usable space off of it is basically
26 terabytes. So in three drives, I have 26 terabytes that are basically recoverable backed
up type thing, right?
Like if one of the drives fails, whether it's a parody drive or a data drive, it can rebuild
that data for me.
Big deal, right?
So that's all cool.
And that was the basic reason why I went with it.
And again, it's paid for.
It's not crazy expensive.
I think you can, you can get up to six drives.
I want to say for like 60 bucks60. It's not that expensive.
You can do 12 drives for like $90.
And I did the unlimited drives because I'm going to chain 50 of them off there at some point.
But it was like $130.
So basically the same cost as a Windows license.
Now, why am I talking about this on a developer thing?
So there's two reasons. One, I already mentioned that Google is going to start taking away their, their storage tier where you had unlimited photos
and all that kind of stuff, right? I think I've mentioned that in one of the previous episodes
in June or July of this coming year of 2021, or that I think that's the year that we're in now
when this released. So 2021 in about six months, your photo storage is no longer free, right?
It goes against your quota.
So I needed something to where I could back these things up locally.
And maybe even instead of ever going up to the cloud, it goes to my personal NAS, right?
So that's a big one.
But then here's the developer side of me.
That is so cool.
So we love Docker.
We love apps.
We love being able to tinker with stuff.
This is where Unraid pushed me over the top.
So they have this thing called apps built in.
And guys, all it is, is you can install apps that are sort of handpicked by the community for Unraid.
That is just Docker containers running. So basically anything that you kind of want to run, you can run any Docker container
out there that exists that runs on Linux. You can run on this thing because they have full-on
Docker support. If you do one of the community-supported ones,
and when I say community-supported,
they sort of have a plugin that allows you to just browse the Docker apps.
You can basically say, hey, I want to run one of these,
and here's one of them that I like.
Minio, or Min.io, if you've ever heard of it, it's really cool.
So a lot of you are probably familiar with AWS S3 or Azure blob storage or anything like that.
What many men IO or men, I don't even know how you say it.
But what this thing does is it allows you to do blob storage on your own NAS. So if you wanted a place to where you could just upload files into your own buckets, because
it's the same type thinking as both S3, Azure blob storage, Google cloud storage, all that kind of
stuff, you create a bucket and you just drop data in there. It's just blobs, right? And so what's
cool about this is you could do it for putting things in there that you want, but you could also
do it for programming type things because men IO is actually one of the biggest on-prem type blob
storage applications out there in the wild. So this is a plugin. You literally go click, um,
on the app, say install, it asks you a few questions like where you want to map it to, which one of your NAS shares you want to map it to. And boom, you now have this bucket storage
that you could do. Super cool as a developer that as somebody that wants to develop something for
like cloud storage type applications. Another one, maybe, maybe you don't like putting your
stuff out on GitHub or GitLab or any public repos,
right? Maybe you want to keep it local because you are just paranoid. Like I guess the three,
at least two of us tend to be, um, maybe you want to have that stuff down local.
They have multiple Git images that are already prepared for the MRAID community. One is GitLab,
another one's called GitT. And basically you can run these containers and you
can basically host your own get.
So that's pretty cool.
So you can write your code,
commit locally to your NAS and life is great,
right?
Like it's not up in the cloud unless you want it to be.
Um,
there are other ones like plex.
I mean, a lot of people that get a NAS, a lot of times they'll put their movies on there and do plex there's another one called next
cloud um but there is also one other one that i really like uh and i have to go find it i think
it was called cloudberry or something like that cloudberry backup so what's cool is let's say
that you have things on your NAS that you do want
to back up to the cloud just to be triple sure, right? You've already got the parody. You've
already got your other drive. So you're kind of safe there. But let's say that you do want to
push it up to S3 or something like that. You can have this thing set up to look at a particular
folder or a particular share you want and back it up to S3 or Azure Cloud
Storage or wherever. So all of these features are super awesome. And again, this unraid setup for
the NAS as well as all the plugins that there are. So as a matter of fact, Prometheus is there,
Grafana is there. They have all kinds of cool stuff so from a developer
I love it but also just from
a place to be able to store my things
efficiently, cost efficiently
and to not have to worry about it
sold
yeah I just I like
how nice it looks
I kind of like thinking about running your own
NAS I'm used to like
oh god I'm going to be having to sign up for irc and i'm going to be connecting to bbs's
to figure out like no this actually looks really nice professional and just good it's easy and that
that was kind of the thing right like i mean you've done it too like you go to set up a web
server like if you're ever doing it for the first time in Linux, there's a lot of stuff to
know, a lot of ways to do things wrong. Right. So I wanted something that I didn't have to go piece
together. Like you said, go into 20 forums and said, uh, how, how do I do this? Right. Like,
yeah, I want the easy button for things that, that I don't want to have to worry about.
Right. This isn't a toy. I don't want to mess up storing 10 years of family photos right and
then them disappear oh yeah for sure but then the app support is just killer man yeah and you can
go take a look at the apps right now you don't have to sign up for anything there's 940 of them
isn't it crazy crazy yeah and and some some really really good, yeah, that's my other one.
Like I said, it wasn't the most developer-centric one,
but I think a lot of times just having the backup and all that kind of stuff,
it's nice to know there's options out there instead of going and spending,
you know, $600 on a Drobo and then still having to buy the drives to put in it.
Yeah.
Why is it so expensive?
Dude, it shouldn't be now i will say i will say it
i went a little bit crazy with it so i have sass drives and sata drives and all kinds of stuff so
i have server hardware there and so it was fun it was a little bit of a challenge but it's beautiful
it's absolutely gorgeous i think i'm gonna do a video on it um but that's that's gonna take me a
little bit of time because i have probably hours worth of videos.
I was putting that thing together.
Yeah, time is a tough part.
I don't mind paying a little bit of a premium with Mac stuff, Apple stuff.
I'm not one to complain because maybe it's maybe 10% too much, but the stuff you get is really great.
The Drobo stuff, I know you're a fan of Drobo.
It always seems to me like Drobo like twice as expensive as it should be so i always
had a hard time with it because like it looks really nice i don't mind paying extra for nice
i don't want to pay like two or three times the price extra i think my biggest thing was
you pay the premium and then you're still stuck with the number of drives that that thing
will take whereas this thing like literally if you want to chain a bunch of breakout boxes together
you can put 28 drives like you could seriously have an entire storage facility wherever you
wanted you're not you're not just limited to whatever's in that one box. So I would say, okay, so my point, my thing is, like, if I were going to build a NAS today, then, yeah, I like this option.
The thing, you know, I mean, we're saying, like, oh, I was a fan of the drobos at the time when i when i got the first one the thing that i liked about it was
that uh if you wanted a easy solution to be able to put any size drives together just to just mix
any size set of drives then it was pretty much the only game in town at the time and that was
the thing is like i didn't want to have to care.
You know, if I have like, you know, hey, here's a one terabyte drive.
Here's a two terabyte drive.
You know, here's a 500.
Like, I just wanted to like mix them all up together and give me whatever size I can get and good enough.
And that's what I wanted.
Plus, you know, that would mean in the future when I want to upgrade, then all I got to do is just like plop out the smallest drive and put in a larger one and boom, I can just keep building that, that up as I go.
And that's the thing that, you know, they, Drobo refers to it as beyond raid.
That was the thing that I liked about it. And so at the time, like I was willing to pay
a little bit extra to have that not caring because what, what Alan started off with about the pairing
the drives, like that's assuming that you're going to like do mirrored pairs. If you're going to do
a traditional, uh, raid five or raid six type RAID 6 type array, then traditionally all of those drives needed to match.
So in Alan's example, he's using three, which it sounds like you're doing a RAID 5.
No, there's no RAID.
It's the equivalent of a RAID 5 with what you've got.
Because you said, if I recall, you said you had three 14 terabyte drives.
One of them is the parity drives and the other two are the data, which is the equivalent of a RAID 5 setup, right?
But they don't have to be the same size drive.
They don't have to be.
I could have done a one terabyte, a four terabyte, and a 14 if I wanted.
Yeah, and it ends up being like whatever the smaller drive is, is like that's going to kind of dictate some of that size.
Your biggest has to be the parity in terms of on RAID. Yeah. drive is, is like, that's going to kind of dictate, uh, you know, some of that size, you know, uh,
your biggest has to be the parody in terms of on raid. Yeah. But, but the point is, is like,
if you were to go with the old, the old school setups though, then all of those drives had to
match. And that's where it would be a hassle because if you wanted to, you know, back when
I was looking at that, if, if I wanted to buy like five drives, they were you wanted to, you know, back when I was looking at that, if I wanted to buy
like five drives, they were all the same, like that could be costly, right? And, you know, I mean,
even right now, I'm going through a process of upgrading my drives. Because, you know,
took advantage of some of the sales that were available over the holidays, right? And,
you know, I'm not upgrading all of the drives, I'm just upgrading some of them, you know, I'm not upgrading all of the drives and just upgrading some of them, you know, and that's the thing that like if you were going to have whatever your solution is for, you know, a home now, it's like I think that it's important that it allows for you to just add in any size drive, you know, at your, you know, any number of any size whenever you're you that you can just slowly grow it over time
instead of it being like a big cumbersome thing like, oh, I got to buy like 10 new drives,
all the same size, and they should probably be the same manufacturer or whatever.
I don't want to have to deal with all that kind of crap.
Yeah.
It was definitely one of those decisions where, like I said, it was a research hole, but a lot of the options required
beefy hardware. And I was like, man, I don't really want to be running an i7 with 64 gigs
of RAM just to store some files. Like that's ridiculous. Right. Um, which the ZFS file system
usually is a little bit hungrier and you got to do like, there's so many things that you have to learn about if you ever decide to
embark on this.
But that's,
again,
that's why I kind of landed this route and the developer friendly fun stuff
that you could do on top of it was like,
Oh,
that's just icing on the cake.
Right.
So,
yeah,
I would say too,
though,
that like,
you know,
I've kind of gotten to the point now where like,
um, I, too, though, that like, you know, I've kind of gotten to the point now where like, um, I, I, I, there's some things where I'm like, you know what? If there's like a cheap, easy or, you know, way to just like use some kind of cloud service for it too, then like just offload that stuff, man.
Like I'm not, I'm not trying to like back up my whole digital life in
my house because I mean, I don't even want to like, uh, you, you, you mentioned photos,
Google photos as being like one of the reasons to, to do this. But you know, my meal, I thought
was like, you know, that Amazon has a service where you could pay a flat fee and then just get unlimited photo storage there.
And I'm like, yeah, you know, that way all my photos aren't in my house.
So God forbid if there was a fire here, right?
Like I don't, I still don't want to lose those.
Yeah, it's true.
I mean, that's one of the things I've thought about.
Man, I'm so torn on all that stuff.
It's almost like with the Amazon stuff.
I know that they do a lot of machine learning against all that.
And I just don't love the idea of somebody like Amazon having it.
I don't love the idea of Google having all my photos either, truth be told.
But, yeah, I think what my ultimate goal will be with these is I'll probably have these down.
And then I'll probably find some way to compress and upload to something like glacier storage and Amazon. Right.
So that is dirt cheap.
It's a disaster recovery type thing if I ever actually need it. Right. So.
Yeah. I mean, even I've been going through over the holidays, uh,
just backing up our stuff, uh, to one drive. Yeah.
I've been going through a whole backup of
using OneDrive for that just because it's easy. So some of those cloud services
are
I would say no one service for everything.
You could find a mixture of stuff.
The Amazon photo one,
I think is good enough since it's like unlimited photo storage and, you know,
a mixture of like the things that you want easy access to,
then I'll like one drive for that. Um, and you know,
I can get it like cross platform, you know, as I need it. So yeah.
One that's worth mentioning though,
if anybody is looking to back
up things to the cloud, I know we talked about S3 and Azure and OneDrive and all that kind of stuff.
OneDrive you get free if you have a subscription to Office and all that. Backblaze. I want to say
Backblaze's storage is like half the price of S3, something like that. So if you need a place to
actually put things and have a good cost effective
solution for backing up files,
backblaze is a really good place.
And they're the ones that do all the tests on hard drives over time and tell
you about the failure rates of the Western digitals,
the C gates,
all that kind of stuff.
Well now Google has a lot of that same data too,
that they,
that they released related to it.
But yeah,
I mean I think I would say that consider your use case.
Right.
You know, like if you're just going to – if it's something you're going to throw up to the cloud and you're never going to like – you know, it'll be a rare day before you ever touch it again, then sure, maybe a glacier is good enough. But if you look at some of the glacier
Retrieval costs? Well, no, no, no.
Retrieval time frames. It can actually be days before you
get it. The time starts. Yeah.
Yeah. So you have to consider. And that's why I considered
backing up some of our stuff to glacier because I'm like, eh, what's the chance I'm going to need this thing?
But then I was like, well, I'm already paying for OneDrive and it's a lot easier.
And if I want it, it's not – I don't – because if I want it, I'm going to want it then.
I'm not going to want it like three days from now.
I want it now.
Put it in a request.
That was the problem with Glacier. It was just going to be like, three days from now. I want it now. Put it in a request. That was the problem with Glaciers.
It was just going to be like, forget it.
Right.
Cool.
Alright, so with
that, we have already headed
into Alan's favorite portion of the
show. It's the tip of the week
that we already started.
It's Joe's turn.
Yep.
Alright, and my tip of the started. So it's Joe's turn. Yep. All right.
And my tip of the week.
So like episode a long time ago,
we talked about basically kind of deliver practice
and kind of how to build up developer skills
and difference between knowledge and skills.
So I just want to kind of bring that up again.
And one thing that I noticed recently is like
I kind of had a knowledge gap when it came to Python like where i had um some skills like i knew how to program
and i was learning python and i was getting really frustrated because there's things i didn't know
how to do in python and i wasn't doing things in a pythonic way i was just like treating it like
another language i was doing my four loops while loops and just kind of doing some dumb things and
it's because i had kind of an imbalance where i was like i was able to accomplish things easily without knowing very much and it's just a bad
position to be in because like it was falling back to the bad patterns because i i hadn't taken a
more formal approach to learning and so it just kind of reminded me that um you got to kind of
balance and you hear you hear a lot about the other direction where like people are new to
programming and so they go off and they spend like two years doing courses and watching youtube videos but never do a single side project and then
they get a job or get into interview and they realize they don't really know how to start
something new and so i just want to kind of mention that um you know that it's important
to kind of balance those things and so uh it's kind of good to bring that up every once in a while. And MicroG just happened to mention to me these two really good websites for challenging projects that every programmer should try.
And then the second one is more challenging projects.
And it really is challenging.
These are not missions to be taken lightly.
For example, the first challenging
project for programmers to try is writing a text editor which uh you know seems pretty daunting to
me but like when you think about it if you've been programming for a little while you know
everything you need to do in order to make that happen but it's going to take some work to actually
go through and do that uh second one space Space Invaders. Sounds pretty fun. You have to deal with
graphics there.
Third one is writing a compiler.
These are not, you know, these are
the kinds of things that would probably take you
weeks, maybe months to really
get through, even if you're an experienced programmer.
And it just goes on
from there. But it's also, it's
something that's kind of cool. So maybe if you scroll
through these posts, you'll see something that kind of strikes your fancy that maybe you want to do but um i do think
that uh you know a lot of times i've heard people say like oh i want to start a project but i don't
know what to start for like you can just google like programmer ideas start it like side projects
and you'll find tons of stuff like this and these are particularly interesting uh and hard and maybe you want that
but if not if you just give it a go you can find something else that might be more your speed so
give it a go all right so i guess it's my turn yeah i was i was looking at the page sorry about
that pause there so following up with the unraid thing. So one of
the interesting things here is you might want your NAS to be completely hidden, right? Like if it was
just a regular NAS, you probably don't want it exposed to the outside world, unless you have
a need for something like a self-hosted Dropbox per se, right? You know, maybe, maybe you want
somebody to be able to upload files to your
system, because, you know, that's where you're going to do things. Well, most of us are probably
with ISPs that give you dynamic IP addresses, right? So, you know, once a week, once a month,
your IP address changes, because the ISP can change it whenever they want, you know, they
could do it whenever your router reboots, they can do it whenever they do something,
switch, doesn't matter, right? So one of the problems with this is if you ever have a domain
like codingblocks.net, right, behind the scenes, you have to set it up to point to a specific IP
address. And that's usually with whatever the hosting provider is. And most of these domain
registrars won't let you point to a dynamic IP address. There are ways around it using a service
like no IP or something like that, but it's a little bit more involved. That said, what if you
don't want to set up a domain name, but you still want to be able to do something like host your own Dropbox
or host your own NextCloud or something like that, right? You can. There were some people,
kind of like us three, that were just curious about what it would be like to set up this dynamic
IP type service. And they created a service called DuckDNS. So if you go to DuckDNS.org, basically what you can do is you can sign up for your own subdomain.
And whatever it'll be, it'll be something.DuckDNS.org, right?
So we could say, hey, CodingBlockServer.DuckDNS.org,
and you basically put something on your internal system that will constantly contact DuckDNS to let them know what your current IP address is from your internet.
And so codingblockserver.duckdns.org would always have the latest IP address.
So if anybody ever tried to hit it, you could route it to your home NAS to whatever system
you wanted to do. So if you want a free way to have your dynamic IP address linked to a domain
name that you can use, this is a way to do it. And these guys created it. It's free. It was
literally just something that they're like, huh, I wonder how we do this. And they said, you know
what? I think other people would like it.
And now it is super duper popular.
And they've got security built into it.
They use tokens.
It looks sort of like Oath-y.
So, yeah, definitely check that out if it's something that interests you.
So this is like there used to be something like this on the – I remember like the Netgear routers used to have this. They still have it. They still have it. So that's what I use.
I use the Netgear stuff, which it used to be mynetgear.com, right?
So if you bought an Orbi or a Nighthawk or something like that,
you could get dynamic DNS.
It's actually built into the router firmware and you could, you know,
put, like I said, you could do coding block server.mynetgear.com, right?
Well, what's
interesting is apparently they either handed it over or it got bought by no ip so no ip.org is
actually the service that provides it now but it's the same type situation right but that assumed
that you bought a netgear router that you were using their firmware there's no such requirement
here this is a totally free service that you can use with any piece of hardware out there and, and use it to route to your home.
If you want it to, can we, for a moment, just talk about like what a bad idea it would be to
put your NAS on a, uh, publicly available. Yeah. So you don't want to advocate against that.
So here's, what's really cool. And this. And this is one of the things that's nice.
So with the Unraid setup, you can actually – they have software, you know, a Docker container set up.
It's called Swag that is basically a reverse proxy so that if you want to point a domain –
so let's say, for instance, if you had like a Dropbox clone, you could say Dropbox dot,
um,
duck DNS.org,
assuming that wasn't taken,
but of course it is.
You could have that route to your,
um,
Dropbox container,
your Dropbox like container on your NAS,
right?
If you said that you had something like men IO,
the one that I was telling you about with the blob storage, you could have MinIO.DuckDNS.org.
And that, when it hits, would route to that container.
So it's never actually hitting your main NAS.
Now, again, there's always a security concern of anything hitting anything on a box that has your other stuff.
But you can route these things to those containers
and that's where they go.
They're not actually hitting the main.
That container is still on your network though.
The containers on your network.
It's just like anything that you're doing here
would be like running a server
on any computer in your network, right?
That's, so that's the risk of doing that kind of thing.
But it is cool if you do want to, if you have the need to
serve something from your home and it doesn't have to be unraid, right? Like I mentioned this
DuckDNS thing just to tie into that with the containers. But if you just wanted to set up a
simple website to test out on an old laptop you had laying around, you could DuckDNS it, point
it into your network
and route it to that laptop
and it'll serve off the webpages, right?
Up to you to make sure you've secured that stuff.
So just know,
anytime you let incoming traffic into your network,
there's things that you should be making sure you do.
So we're going to say that this is a tip of the week of something you can do.
You should totally not just do it.
With a strong advocate that you probably shouldn't do this.
Unless you know what you're doing and you're willing to take whatever the risks are.
Yes, totally.
But this is a way to have your IP address always or a domain that will always point into your network if you want it to.
I could totally jump out of a perfectly good moving airplane too.
I've done it.
But I better know what I'm doing.
I recommend it.
I thought, you know, based off of just that, because I saw you had the DuckDNS in here,
I assumed that this was going to be some kind of privacy DNS thing.
Because you've heard about Quad9, maybe?
No.
Is this like the Quad8s from Google?
Okay, so
8.8.8.8
was something that Google set up
more than a decade ago. And 8.8.4.4
was the
secondary version of that.
Right. And it was Google's like free DNS thing, but, um, it was just meant to be like a faster,
you know, distributed DNS. And then that way you could like bypass your ISP so that your ISP
doesn't know what you're doing because there is some, uh, you know, just based on the metadata
around DNS queries, right? Like your, your ISP can kind of like learn things about you, right? you're doing because there is some uh you know just based on the metadata around dns queries
right like your your isp can kind of like learn things about you right they know what you're
doing and which now by going through google they know what you're doing also and so that was that
was the the caveat to that but also too like uh you know i mean it wasn't it wasn't like restricting anything. So IBM owns the 9.network.
So they set up a DNS server that's called Quad9, 9.9.9.9.
And they're purposely blocking malware-infected websites.
So they're keeping a list of things that are known to be bad.
And if you try to do a DNS query to any of that,
it's just not going to work.
I haven't tried to do a query to see what it would come back with.
And then more recently, Cloudflare set up one to help.
Because Cloudflare, if anybody to help, uh, you know, cause Cloudflare, if you, you know, anybody who's paid attention in the web space, I'm sure has heard about Cloudflare and all of
their, the great things that they're doing to try, like speed things up and whatnot. You know,
they're like a big CDN or, or one of the things that they offer, or maybe first got known for
was their CDN caching offering. But, uh, you know, they have the 1.1.1.1, but, um,
I was looking into that. And if I'm understanding that right, they actually have like,
there's other versions of one dot of their DNS or setting where like, or service where, uh, you
know, if you want parental controls to be added in, then you could do malware plus
parental controls or adult
content blocking. You could go
to 1.1.1.3
for the DNS.
That's pretty cool. I'd never heard of this one.
Yeah.
But Cloudflare also has one
that includes the malware only
as well that's 1.1.1.2.
There's a lot of numbers to keep track of but i thought that's where you were going with with it when i saw just the name duck dns
uh so we didn't even talk about solar winds oh you shouldn't go there now but yeah that's uh
that's a pretty big deal yeah uh so for my tip of the week, this one was given to us from Morali, which if you've been on the Slack, then I'm sure you've seen him in there. And he's been mentioned on the show multiple times with...
He's the one who told me about SolarWinds initially.
Oh, he told you about the recent hack. Like you didn't hear.
I hadn't heard about it until he's like,
Hey,
I'm sure you guys can talk about,
uh,
yeah.
Solar winds.
I had to Google it.
How'd you not hear about it?
Okay.
We'll get to that another time.
Um,
uh,
at any rate.
So MIT has this, uh,
offering called the missing semester of CS education.
And it's basically like,
um,
stuff that isn't going to be taught as part of a computer science,
uh,
curriculum.
So there's things like the shell and shell tools and scripting and data
wrangling and editors and command line environment and using get and
debugging and then security and cryptography.
So there's a lot of great topics on here.
And you can see like previous years,
you know, versions of the class.
But I'll include several links to it for both the,
there's a list of 11 lectures on YouTube
that you could watch.
And, you know, I mean, they're all like lecture length, uh, you know, less than an hour, like, well,
one of them's an hour and a half, but, um, it's on get, so I mean, it,
it should be, um, no, but yeah.
So I thought that was pretty cool offering. So, you know,
fill in the blanks for that, that computer science education.
Very nice with the things that they're not going to teach you in school.
Which I feel like that's a lot.
That's been like a running theme with a lot of things that we've talked about over the
years.
You know?
Yep.
So, all right.
Well, with that, we hope you enjoyed this.
Stay tuned for more information.
Don't forget about the Coding Blocks game.
Jam, jam, jam, jam, jamuary.
Coming right up.
Subscribe to us on iTunes, Spotify, Stitcher, wherever you like to find your podcasts.
And, hey, leave us a review if you haven't already.
We would greatly appreciate it.
You can find a helpful link at codingblocks.net
slash review. And hey, if there's some other place that you'd like to leave your podcast
reviews, let us know and we can add it there so that there's more than just the one useful
link there.
True that. And while you're up there, make sure you check out our amazing show notes,
our examples, our discussions, and more. And make sure you send your feedback, questions, and rants to our Slack channel at codyblocks.net slash slack if you're not a member.
And make sure to follow us on Twitter at CodingBlocks.
We have yet to receive any warnings from Twitter about misinformation, so I guess we're doing okay.
Still don't have that checkbox, though.
Still unverified.
No information is
good information, I guess.
So maybe we're just not on Twitter's
radar. But with your help,
if you go follow us, maybe we'll
get those numbers up there and
I don't know, maybe overtake Taylor
Schweppes or whoever is number one right now.
And you can do that at
KillingBlocks.net. We have a bunch of social links at the
top of the page.