Coding Blocks - Better Application Management with Custom Apps
Episode Date: July 10, 2023Last episode, it might have been said that you can become a senior engineer in just one short year. Our amazing slack community spoke up and had some thoughts on that as well…we revisit that, and wh...at does senior even mean?! Join us for that and much more as Allen plays more with ChatGPT, Michael […]
Transcript
Discussion (0)
You're listening to Coding Box, episode 213.
Take that, Alan.
That sounds like the script right there.
Done.
Yeah, it's done.
All right, so subscribe to us on iTunes, Stitchify.
Oh, snap.
Maybe not.
Just Spotify then and your favorite podcast apps.
You know, maybe we're there.
Maybe it's still running.
I don't know.
Leave us a review if you can.
Hey,
and be sure to send your feedbacks,
questions,
and rants to comments at coding blocks.net.
Hey,
follow us on Twitter at cutting blocks.
Also check out our Slack channel.
We always do this at the end.
We should do this at the beginning.
Cody blocks.net slash Slack.
Yep.
And send yourself an invite.
Also,
we got a website coming west on that.
That has been recently modified to update our social
links at the top of the page.
Look at that. And hey, I'm Joe Zach.
I'm Michael Outlaw.
And I'm Alan Underwood.
And I'm also reading from the script. Wait, there's a script?
Oh, no. How about that?
There's no script.
Hey, we got a review.
Hey, we do. Are we doing the script?
Oh. Wait, there's a script? Oh. Podcast news. Hey, we do. We're doing the script. Oh, Oh,
wait,
there's a script.
Oh,
there is that.
Yes.
All right.
So as Jay-Z said,
we have some podcast news and up first is outlaw reading the reviews.
Yep.
So thank you below seven for your,
your review.
And yeah,
I kind of hinted at it, but pour one out
for Stitcher.
So if you haven't already heard, if you're listening
to us through Stitcher, well, this is awkward.
Because
those days are numbered. I think it was like
August was when they were shutting
it down. Does that sound right?
I think that's what they said, yeah.
Yeah, I mean, it probably you know have a lot of impact on like you know technology type uh you
know software development type topics but you know more of a call out just in case if uh that is how
you're listening then you know hey yeah you probably want to set up another podcast app and
subscribe to all the things that you care about somewhere else yeah and and we had one other thing so outlaw had said something you remember the statement i never
now yeah you didn't say it so outlaw said something to the effect of you know you could
be working in the industry for 20 years and be a junior developer or you could be working in
the industry for a year be a senior developer and and there could be working in the industry for a year and be a senior developer.
And, and there were some people in, in our episode discussion channel in Slack that were like, yeah,
I don't know that I believe that about the year. And there were some valid points, right? Like
there could be people that have been developers for a year and they are the folks that go out
and absorb every, every bit of information
they can get right whether it's from books or online tutorial whatever but do they really have
the experience of a senior level developer after a year and probably more often than not the answer
is going to be no are there the rare rare rare people out there that you could probably be like, yeah, that person should be running the department after a year versus, you know, the ones that have a ton of good information, but they just don't have the practical hands on experience.
I think that was a fair call out.
I don't know what you guys think.
Yeah.
I mean, if someone's calling you a senior after just one year, it's inflation.
It's title inflation.
Basically, they're giving you a title, and you should be curious about whether they're doing that in lieu of the salary.
So sometimes that happens, especially in small companies.
Like, we can't pay you great, but we can give you whatever title you want.
So, yeah, I think people can be really great in a short amount of time.
It's just whether that compares to someone who's been doing it for 10 to 20
years,
you know,
we don't really have great ranks or titles or qualifications for this stuff.
So I would say no,
but the whole thing is kind of,
you know,
made up anyway.
So whatever.
So here's the question though,
to follow with that.
All right.
Yeah.
You go ahead and tell your part because maybe you'll answer my question
first.
Well,
okay.
So I, I definitely understand some of the comments you know in the slack where they were saying that you know they that that was the one like of the two things like yeah okay i get
why you could have a 20-year developer that's still junior but i i don't agree with the other
part and you know fair uh why why you might get hung up on that
part. You know, really the intent was that, that that developer might not have been there as long.
And, you know, I just said one year, but whatever. But in my mind though, the, the, the person I was
thinking of in my mind at the time would be like a Zuckerbergberg like i'm not saying that i wasn't thinking of it being
like a job title that you were getting you know because it was just more of like the mentality
like you know you're the go-getter type that's just like hammering it out getting it getting
the job done and it might blow up to be something huge right so but but you know fair point you know like so you know two years
that was actually you know it's funny as i was i was going to ask what would be
a good period of time before you'd look at somebody and be like you know they're ready they
they know the ups the downs the ins and the outs of everything. In my mind,
I'm thinking four or five years is probably not an unrealistic timeframe for
somebody to be looked at and be able to say, yeah, that he's,
he's a senior developer or she's a senior developer.
Yeah.
I think five years because you got to be around long enough to deal with some
of the mistakes you made.
Yeah.
Yeah, for sure.
I think that's important.
I don't agree. And the reason why I say that is because like the whole senior junior developer
thing, and this is kind of to the point that I was trying to get at, you know, or parts,
parts of what I was trying to get at last time is, but, uh, I think that it's more fluid right like during the course of your career
right if let's say let's say you were a software developer for 25 30 years at any one point in that
journey there's going to be a time where you might have been a software a senior and there's
going to be a time where you might have been a junior and that that that can ebb and flow, you know, depending on
like as technologies change and you're ramping up on something new. So, you know, like I, I, I don't,
I, I'm, I don't agree with it as a title because I, I definitely think that, you know, it comes
and goes depending on, you know, what, what you're working on. If I ripped your tech stack out from underneath you, right?
Like if all you knew was say SQL Server
and C Sharp and ASP.NET, something like that.
And I'm like, okay, welcome to the Java ecosystem.
You know, have at it, right?
Like you're going to, you have a lot of you
have the building blocks to be great right maybe maybe you do but but you understand i'm saying
that like see but i think that's what separates um somebody more junior from somebody more senior
you rip the tech stack out from, you know, I'm not trying
to inflate us or toot our own horns, but if you rip the tech stack out from underneath the three
of us, it'll take us a little bit of time, but we'll be able to speed decently quick because,
because we have that background of having worked with so many things over time that you kind of know what you're
looking for,
what you need,
you know what I mean?
Like,
so it's,
it's the ability to ramp up quickly,
I think is what makes somebody more.
And again,
I agree.
I don't like the title senior versus junior,
whatever,
but somebody that is a more advanced developer versus somebody that's more
green behind the ears, you know? Yeah. somebody that is a more advanced developer versus somebody that's more green
behind the ears,
you know?
Yeah.
Yeah.
I definitely agree with that.
Although,
um,
to be fair,
there's been lots of times when I thought I knew something pretty well and
then,
uh,
tripped down a pretty nasty hole.
So,
uh,
you know,
I don't know,
but yeah,
I think everyone does that.
So regardless of whether it's,
uh,
your tech stack,
you know,
and I do think,
uh,
there's also just,
you know, quick aside, like it's kind of dangerous to just have one tech stack for your entire career.
You know, it's it could work out, but you're you're putting your eggs in one basket.
But but also like, you know, going back to my original statement, though, you have computer science majors that are coming out of like a Harvard or an
MIT Stanford, a Georgia tech. Right. And you know,
maybe they're coming out with just a bachelor's.
Maybe some of those are coming out with like, you know,
a master's level or greater and they never, maybe never, you know,
stepped foot in the, you know, outside of a school setting,
but maybe just a tremendous
building block that they're focused on, depending on
the rigor of the school that they went to,
that type of person might ramp up to be
a senior rather quick.
It's possible. It's so possible.
It's possible.
How do you get,
well,
yeah,
yeah,
sure.
Well,
that,
this is actually why I wanted to bring this particular thing back into the
show though,
because I thought it was an interesting discussion,
right?
Like there are definitely people that,
I mean,
even,
even interns and
stuff where I was like, that person's going to be really good because they had the curious mind.
They asked the right questions. They, you know, you know what I mean? Like they didn't know all
the answers because they couldn't, cause they were new, but their, their mind worked in the way
that could get to answers, right?
They knew the questions to ask,
and they knew the things to look for to be able to push forward.
And I think that that person is going to get great success quicker
than people that just kind of get hand-fed things over time.
But I think part of it is also the resourcefulness of the person.
Because there are some people that will remain a junior developer their entire career because they'll just turn and ask whoever's sitting next to them,
Hey, how do you do blah, blah, blah, like, wait, how do I do this? And then go and figure out how to do it and like read up on how to do it.
I mean, those are different.
Different personalities.
Well, you know, it's funny about that.
I actually have a buddy.
His name, he listens to the podcast.
So I'm curious when he's going to actually hit me up after I say this.
So a guy named Momolu, he, back in the day, we were working on EXTJS.
And just like anybody that's ever worked with that library, you look at it and you go like, what?
What is this, right?
And I remember he asked me a question one day on how to do something because he was fairly new to it.
And I told him.
And I think later that day, he still hadn't done it and I was like dude I told you he was like no man I need to understand why this works like it does and I was like I get it
I'll walk away if you need anything just holler at me but I totally get it because that's kind
of like I think the three of us are that way right Right. And it's, it's good and bad to a certain degree. It's good that you want to know how everything works,
but it can slow you down because like, you just, you can't get past that hump until you
understand what they were trying to do. But on the flip side, you know, it's like, man, if I just,
if I just put the code in there and move on, then, then life would be good. But then the next time I
run up against it, then I'm going to have those same questions.
It's going to bother me, and I can't do it.
Yeah, you can definitely fall down a rabbit hole.
Yeah, for sure.
I remember a long time ago, I got asked to help an intern who was a PhD student.
So I walked over to the office, and I was showing him how to do CVN. No, sorry, I think it was CBS.
I was like, okay, you know, like, okay, here's how you can check your stuff.
And then looking at their stuff, like, hey, do you know what variables are?
Because you don't have to, like, have all this stuff hard-coded because none of this stuff is going to work. Like, you can't check this in, actually.
I'm sorry.
Let's schedule some time tomorrow.
Oh, man.
Yeah, there's nothing against the school.
There's nothing against even the person.
It's just, I don't know.
I think they probably left on their own too much or something.
I don't know.
Something wasn't right.
Yeah, I can show you.
Wait.
No, I can't.
Yeah, we can't do this.
I'm not going to be part of this.
That's amazing all right okay so yeah excellent conversation over on slack that bled over into the podcast so good stuff um all right so the next thing i've got in the next in the next section we
call uh prove michael wrong no this is not prove Michael wrong. This is good discussion topics, right? So, so this
though, this came up because I got to thinking about things and it really kind of drives me
crazy. So, um, so behind the scenes stuff, Jay-Z at one point had written a little app that was
sort of what I'm going to describe here, which was basically an app to help you understand if your real application is working
the way that you expected it to work. Right. And, and I got to thinking about this, there's going
to be people out there that, that argue against this because they're like, well, okay, so let's
just say you have a database, you have a middle tier, then you have some sort of distributed
microservice type thing. And then maybe you have another microservice, then you have some sort of distributed microservice type thing,
and then maybe you have another microservice, right? So you got four pieces of a system right
there that are all communicating and messages are going back and forth and all that kind of stuff.
When something goes wrong in one of those, you might have amazing tools for look at the logs
in that one area. And you might have amazing logs for the next area and the next.
But when you try to piece together what happened along the way,
you spend a lot of time trying to correlate logs or to, um,
did this happen after this or what was the time period in between these or
whatever,
right?
Like there's,
there's a whole slew of things and,
and situations you can come up with in your mind to, to make this happen. And so I wanted to ask you guys, what's your thought
on having little applications that you write homegrown apps that maybe leverage knowledge
that you have or leverage systems you have, whether it's logging systems or whatever,
to let you know if things are working the way they should
oh i love it y'all ever heard of jay-z cuddle
collection of it's basically my bin folder but i have a ton of scripts for little stuff that's
helpful and you would kind of think that like if you write scripts sometimes that maybe you're like
kind of forgetting about the details of the the applications that are kind of running underneath
you know the arguments stuff you're not as close to them. But I found for some reason, like,
practically speaking, like, it's almost like the opposite, where like, once I kind of write
something down into a script, like somehow I remember it. And the next time I have to do the
thing, I know I did this once, and I can go find it. And also, I don't know, there's something
about it that I think that it helps just to kind of do it in a script and work out the kinks once rather than kind of do it every time you need it.
So I like that.
And also, we read that SRE book.
And remember they have the chapter from Google about like kind of, I forget how they described it, but basically talking about their businesses if it was like an operating system and how they kind of would track all their servers and like a database and it was it was kind of eye-opening to me it's like well yo geez why am
i not doing this like why i have all this data in all these different places like i would never
like do this you know on my business domain like why am i allowing it to happen in my infrastructure
like why aren't i gathering this stuff up and making it easy making myself tools and like dashboards and stuff to make things easy but then you know also i'm tired and lazy so
whatever i do like the idea in theory well all right before before you go outlaw that's one
thing that's interesting uh what you just said about dashboards and stuff is like you can even
have dashboards in play for like each independent type thing,
right? Like, Hey, there's no 500s happening here. Everything's good on this microservice
and you know, everything looks good on the database, but something didn't happen. There's
not a message that made it between those two. And if you're just relying on the individual
tech stacks that you have running in different places, a lot of times pushing those things together in a dashboard isn't super easy.
Right.
So, all right, go ahead.
Well, I was just gonna say, like, I wasn't sure if the script thing, I kind of got hung up on that because I wasn't sure if that like really got to the core of what you were talking about but because the problem
I have with the script thing I write a
lot of script like Jay Z I have a
directory with a lot of scripts in it too
my problem is I'll forget
the scripts that I have in there and
then I'll be like wait how do I do
and then I like I guess
my I guess the memory thing trick that works
for Jay Z doesn't work like that for me and so I'll just
have like this you know bin directory of scripts forgotten.
Yeah, that's interesting.
I opened up the whole directory in code, and I just search it.
Oh, really? Do you really?
Yeah, well, he's got one that he checks into Git,
so he actually has them all named a particular way, right?
Yeah, I have things in Git repo too.
Yeah, so, you know, the scripts are actually good, right?
Like if you have something, you have some sort of script that you can write that will take a piece from part one, part two, part three, part four, and then give you like a checkbox at the end of it and be like, yeah, it's good.
That's awesome, right?
Like that can be helpful.
But I mean, like Jay-Z and I were working on something last week and I think between the two
of us, we spent, I don't know, two to three hours each trying to track something down. And it wasn't
because there weren't good tools for each individual piece. It was because trying to
tie the pieces together was like, oh man. And that's where this came up is like, I think
if you have a complex enough system, it's worth spending time to, whether it's shell scripts,
like when I say app, it's very loose, right? It could be a shell script. It could be a Node.js
script. It could be whatever you want. You could put a UI on it if you want, but something that will allow you to be like, no, it looks like there's a problem. And,
and maybe here's a link to the logs for that problem, right? Like something as simple as that,
like I know Jay-Z has scripts that will be like, Hey, depending on which, which environment you
want to look at, like you can give it an environment variable and it'll spit out all
the links to get to things like logs and graphs and all kinds of stuff, which is,
I mean, if you think about it is amazingly useful because how many times you end up going to your
bookmark thing, trying to, you know, browse down through all your bookmark folders to be like,
oh, okay, there's the, there's the chart page or whatever. So I don't know. I think it's,
I think it's incredibly useful. And I think it's worth spending developer time
on making those things to where you can easily track things down.
But then I guess,
do you take it to the next level?
So you have your,
you have your Jay-Z bin,
you have your MO bin.
Mo bin.
Mo bin.
Mo bin, mo problems. That's problems that's right yeah i mean ideally you
want other people to be able to use that stuff too and standardize it and get it kind of built
into a playbook and then you want to take that and roll that into some sort of you know that's
where i was going yeah totally and i think i think this goes back to the whole sre series that we did
where that's kind of what they do right right? Um, they, those developers,
they spend what a two week cycle, if I remember right, a two week cycle working on call to where
they do that. They take those scripts and they turn it into something that they can document as
well as, Hey, if you see this problem, go do this thing right here and you can see it. And I think like the way that we do on-call stuff doesn't necessarily lean,
it doesn't lend itself towards that type of thing,
which is why we each have our own bin directories with our own ways of doing things.
What almost makes me question like specific to the scripts thing in that scenario,
if maybe like, let's take this back back to you know our our daily life situation
right like should because okay the scripts that that jay-z just mentioned a minute ago i would
think like okay well let's just throw those in our standard repo like because we have like you know
here's the repo of code and like even in like a mono repo like a type environment with mono repo, you might have like a scripts directory and that,
but then it made me think like, Oh, well maybe, maybe we should have a different repo that would
have like, here's another repo that has all the helpful scripts. And if you just clone that and
put that in as part of your, your, your shaking your head. No, if you put that as part of your you're you're shaking your head no if you put that as part of your your uh your your
path right so that you could execute those things then you know whatever you're trying to debug
there's a here's a whole slew of tools you know at the ready that aren't necessarily in the main
repo but now this gets into like a whole debate of like mono repo or not mono or or not you know um context right um if they're in
separate repos then what's the context of the scripts from that one i don't know man like the
only thing i don't like about that particular setup is my guess is and and correct me if i'm
wrong both of you guys um like when you write scripts, it's very much what you're
thinking of at that time, right? And it might be a very small slice of things. So you haven't gone
out of your way to document things. You haven't gone out of your way to make it overly verbose
so that other people understand it, right? Like, you know what you're trying to do. And so you've
done it. And if you're going to take it to that next level to where you
wanted it to be shared you would most certainly name things better call the scripts better all
that kind of stuff so i think there's a layer of polish that would need to be added yeah i love
a lot of us all just have like hard-coded names and stuff and just not care about it next time i
go to run it i'll take a look at it before i do it yeah but but i think from from what i'm saying here though both of you kind of think that
these these are these are good things not having custom little applications or custom little
scripts or whatever to help you identify and fix problems in your environments makes sense.
Yeah.
Well,
it absolutely does.
But when we say the apps though,
like that makes me think like compile for some reason in my head,
I treat that differently.
And so I'll start thinking of like compiled type languages.
And in my mind, when I think of like examples where I've done that,
they've always been throw away.
Like I,
I create it and write it because I'm trying to test some one you know flow specifically
that you know is you know that i'll just throw away and that's assuming that i can't write it
instead as a unit test or an integration test so like in the compiled language type of scenarios
like i'll try to go that way.
And I say that, I mean, I know you could do unit tests, integration tests, and non-compiled,
but for some reason, that's where my head went when I saw apps.
I want everything in one spot.
I want an app.
I know it's really hard to get to, but Prometheus is fantastic, but that's not where I view my logs.
My log viewer, fantastic.
That's not where i view my logs my log viewer fantastic that's not where i view my dashboard if i you know other stuff uh wherever i view my logs like that's not where i uh you know
inspect my database whatever like i want all that stuff in one spot we can lock it down we can you
know like put a single sign on in front of it and do all sorts of interesting stuff at that point
um so i want that for everybody so you actually want a real app
i want a real app a real app like and what we're talking about is something you can log into
and see everything that's going on oh yeah you're a slice of your logs your graphs your whatever
right like or quick links to all those things so that so that you can get to them quickly
yeah like maybe there's stuff in the production database that is really good to know.
And sometimes it's like something you commonly query and it maybe involves a ticket
or escalating privileges or something to do that.
And it would be nice if everybody could do it.
It would be nice if you could do that and not worry about people doing the wrong thing
or doing the wrong database or doing something malicious that they shouldn't run.
You can just kind of have them all going through some similar interface.
If somebody needs something else added, you can talk about it,
evaluate it, and pop it in there for everybody.
But you could make the argument that that already exists today
if you're willing to use managed services for everything.
Because then if you did, then yours console your gcp console is exactly
what you were talking about where you could view everything and instead of like you know you want
to go look at the database it's like oh we'll go look at uh um i'll shoot big table or i'm sorry
big table uh you know or cloud sql you know whatever you know i'm saying like
but i think you're still separated though. Like if you
think about if you had cloud functions or something, you know, you had three of those
things running plus you had big table and, and whatever else, you're still going to multiple
spots to find that information. But the app then is the GCP console. It is, but they're not going
to get, I mean, most companies aren't going to give people prod level access to the GCP console,
right? Oh, you get prod level. You shouldn't be, you to give people prod level access to the GCP console, right? Oh, you want prod level.
You shouldn't have prod level access to the databases,
even if it was not in a cloud SQL or something like that.
So that problem didn't go away.
But that's why having that application, like what Jay-Z was saying,
to where it would define the type of things that you could actually see up there would be helpful.
Because now you're not having to worry about access level stuff to the castle, right?
Now you're just saying, hey, here's the view into what's going on there.
And it's in a very controlled manner.
But even if you had the keys to the GCP console, you're still going to multiple different places to look at the logs of what happened in function one to function two to function three to the database to
whatever, right? Like it's still not,
it's still not a fluid view of how things are going.
You still have to look at multiple different spots to see what, you know,
Hey, did this message get here? How long did it take? Et cetera. Right. Well, that's where like, I mean, kind of almost sounds like in the
description of what you just said, though, um, you want the, the transaction ID to, to flow
through from all the different app layers, right? So there's that one transaction ID that regardless
of technology, you can trace it, right? Yeah, that's part of it, right?
Like for sure, that's helpful.
But for instance, like let's say that that does flow through.
Why did it take 15 seconds to get past this layer, right?
And then if you could see that, hey, there was a spike of X number of messages, right?
So the transaction ID doesn't help there.
It's one of
those things that if you actually built an application to be able to view this stuff over
time, you'd be like, Oh, okay. We saw that this thing got hung up here because you know, it got
hit with 10,000 messages at a time. Let's put something in our application to show us, Hey,
what was the message rate at this time when this type thing happened, right? So it's one of those things, just like any application, that as you
see things happening over time, you just start adding those features and saying,
oh, okay, I know that we've had this problem in the past. Let's add this view here.
So that's kind of what I'm getting at.
Prometheus and Grafana don't scratch that itch.
They do individually, just not in one lens that you can look at.
And there's not a lot of stuff built into like making changes.
Like,
you know,
someone gets locked out or something,
or maybe you want to mix business domain type stuff in there.
And so if a customer is on a free trial,
or maybe then you're going to handle this,
you know,
situation where they're getting too much data differently than a customer
that's been with you for 10 years. And you want to be able to take action on that stuff
all on some admin screen. So yeah, I was about to say, you're kind of describing
like an admin portion of the same app then
to where you could log in and see like what's the current rate of
messages and whatnot. Okay, I get it. Yeah, what's going on? So I mean, to your point about
Prometheus and Grafana,
yeah, I think they're amazing.
Just like your log situation,
whether you're in Azure, GCP, or AWS,
is probably amazing.
It's just that you can't see them together.
And that's not amazing, right?
Because now you're spending time
going from one to the other
trying to correlate what happened here.
You know, what actually went on
that caused these problems? So. Well well you don't have to you don't
tell me on it i'm sold all right done no because like the yeah i've been trying to chase some
issues with flank lately and it's been uh a labor of love because on the one hand like i feel like
i've gotten some good deep dives into flank but also at
the same time i'm like what is going on in and you know you were talking about the the logs
and from everything there the problem that i have with you know dumping everything into
like whatever your logging platform is is that not all of the technologies play nicely
and even even if they even if you can't get the logs
there, maybe they're not interpreted correctly. So like, uh, errors are interpreted as info or
warnings or, you know, whatever, or maybe they didn't, uh, uh, you know, one given technology
didn't put it out in a Jason format. And so every line became its own line you know log entry um
so it's it's super tedious looking through those not in the big app example that you were describing
alan where there was like a whole bunch of technologies involved and you're trying to
trace this these flows of things in those scenarios going through something like a log explorer while sure it's i i wouldn't want to not have it right
it's not necessarily like the one-stop shop like okay this is it like i can know everything from
like let me comb through an hour's worth of logs. Oh my Lord. Look how
many logs there are. It's so true. Um, all right. Okay. So onto the next one that I had,
I was curious, this, this was right for the show, you know, seeing this out now I put in my,
my phone number and I have chat GPT access. Um, Yeah. I'm going to go ahead and use your phone number.
I just go to chat GPT and I'm like,
Hey,
tell me.
Oh,
that hurts.
It's probably so true.
Oh,
so one thing that I was curious about is like,
you know,
there's,
there's always developers that they want to rewrite things in certain
languages,
right?
Like for whatever reason,
whatever the hot topic is right now,
maybe it's Kotlin for us.
Maybe it's go for somebody.
Maybe it's rust for somebody else. Did you's Go for somebody. Maybe it's Rust for
somebody else. Did you get excited that he shops at Hot Topic there for a second, Jay-Z?
Oh, yeah. Go ahead. So I was curious and I went in and put in the search something like,
why should you use Go over Java or something like that, right. And, and I was curious because I'm decently familiar
with the things between them and I, and I wanted to see kind of what it said.
And, and after it gave me the answer to that, then I was like, okay, let me, let me ask one
that I'm way more familiar with. Right. Like why should I use Microsoft SQL server versus
Postgres SQL? And what was interesting is I think it did a pretty
good job. You know, like anytime you search for that thing online, you end up coming up with these
websites that are nothing more than bulleted lists between two different things that are
completely useless and drive me crazy. I hate, hate those websites, Um, but I thought this did an okay job, but I did want to call it out
because anybody that's using this to make their hardcore decisions on what they're going to do,
they're going to be left with some misinformation. Right. So like one of the things that, um,
that they said for SQL server is, used in windows-based environments and has strong
integration with other windows or Microsoft products so that's true but Microsoft SQL
server runs on Linux right like that's been a big thing for multiple versions now and in one of
their selling points for Postgres is it works better in mixed environments, right?
So if you have a Windows and a Linux and all that kind of stuff.
So it's little nuance things like that that I'm like.
But I think in that example, though, they're saying that, like, you're not going to have Excel running under Linux.
But you can have Excel running under Windows, and you can easily connect Excel to SQL Server.
So that's why that in the case of they're like saying
the better integration with other Microsoft technologies,
that's the way I interpret that.
But widely used in Windows-based environments,
but then...
It is more widely used there.
But known for it.
This is Postgres.
Doggone known for ability to run on various,
its ability to run on various platforms.
Okay.
Well,
you just gave a plus one to Postgres for the same thing that Microsoft SQL server can do.
You know what I mean?
Like it's, to Postgres for the same thing that Microsoft SQL Server can do. You know what I mean?
I only call this out because I think I mentioned it on the previous episode.
What I've found that I really like ChatGPT for is when I'm curious about a real answer to something and I don't want to get bombarded with a bunch of sites that are links to Amazon.
Right?
But even when you do that, do you have to...
It's just parroting something else that it took in.
It's not like ChatGPT came up with this from scratch.
It's not like you put some thought into it and it's like,
well, let me get to the core of what Alan's trying to ask me here.
Well, that's what's frustrating, right?
As you look at this, and I thought that most of its points were pretty good, but then I look at some of those, and that's a glaring one, right?
Like, if you think for some reason that, well, I'm running in a Linux environment, I can't run SQL Server, right?
Like, I need to go ahead and get Postgres.
And the only reason I bring this up is the three of us have worked on SQL Server and the three of us have worked on Postgres.
And hands down, no questions asked, the tooling for SQL Server is superior to the tooling that you can get for Postgres.
Now, it comes at a cost because Microsoft SQL Server isn't free, but their tools are probably about as good as they get in terms of database
technologies. I'm sure that some oracles are pretty good too, but, but I don't know that that
kind of bugged me. And I wanted to call it out. Like if you're using chat GPT to sort of make
your decisions for you, if you're asking for technology versus technology thing, they do come
up with some good points, right? Like when I did the go versus Java thing, cause I was curious,
I've actually seen people switch to go from Java for whatever reason. And they with some good points, right? Like when I did the go versus Java thing, because I was curious, I've actually seen people switch to go from Java for whatever reason.
And they had some good points, right? Like go was built for concurrency and to be highly fast. Like,
you know, it compiles down to machine level code. That's amazingly good stuff, right? Whereas Java
runs and JVMs and that kind of thing. So I don't know. It's,
it bugs me.
It excites me that the technology is there to be able to ask questions like
that,
but it bugs me that it is exactly what outlaw said.
And it's based off whatever it's digested.
And so it may not have a complete set of information.
And to be fair,
like that's the kind of answer you would get.
If you ask like a person,
you're like,
Hey,
so which one's better?
And you,
you ask like a Microsoft MVP, like, wait, what's the better Post ask like a microsoft avp like wait what's better postgres or single server did like the
rally off the great things about single server like it runs on all the platforms it's great
you know so i feel like it's a fair answer it is it is but it's the kind of answer that you'd
expect to get from a person just like you said yeah when i'm asking a machine i want it to be
like they're both good at this we're both good at this, and one's better at this than the other.
I'm curious to debate this tooling thing, though, because I assume you're referring to a SQL Server Management Studio, right?
Yeah, SSMS.
And you're throwing no love to a data grip, for example?
It's not that I'm throwing no love. First off data grip for example um it's not that i'm throwing no love first off shade maybe a little no no no um data grips good right data grip but i have a hate and love
relationship with data grip in general data grip is a memory pig like i've never ever used an ide that was so memory hungry as data grip i don't care what it
is intellij visual studio whatever like data crib is is a hog i wonder which version i'd be curious
to compare version numbers because there was there was a there was like the first quarter
version that came out this year because i I think they released some quarterly. If I remember right.
Probably.
Yeah.
That sounds right.
The version that came out at the beginning of this year was ridiculously
awful.
And I,
and I,
I put out a thread earlier about like,
Hey,
you know,
this thing eats up all your CPU.
Like it'll,
it'll chew through memory and CPU and just bring your machine to its
needs.
So when you say that dataGrip's a hog,
I'm wondering if like maybe that's part of...
I mean, I'm talking about three years worth of usage of it.
So I mean...
How about this?
If you were working on a Windows machine with SQL Server,
would you use DataGrip or SSMS?
SSMS, no question, all day long.
Do I already have a license for DataGrip?
And have I been using DataGrip for years
and that's the tool I already know and that's the hammer I'm going to use?
Then that's the hammer I'm going to use.
No way.
Sorry.
It's got so much stuff for other databases and other capabilities crawling up and down the sides of the screen.
But SSMS is just one thing and it does it super well.
So good at it.
And again, I'm not throwing shade at DataGrip.
Like JetBrains, We love your tool.
It's awesome. Um, but like, if you ever need to do any data transformation stuff, if you got to do
any of that, like the tooling in SSMS is just off the charts. Good. Like they've done such a good
job with it. And, and again, like it's, it's hard to argue for cost because, I mean, what?
DataGrip's probably $150 or $200.
I don't know off the top of my head.
But SSMS, you get it for free, right?
And I say for free, quote, unquote.
Somebody's paying for it.
Somebody's paying for it, right?
Like if you're running SQL Server in production somewhere,
that thing's being paid for.
But there's got to be a community
edition of of i would be surprised there's not i don't think so of data grip i think data grip is
one of the few that they don't have for individuals so individual yearly is a hundred dollars
they have versions for students, open source projects,
teachers, universities, startups, non-profits, user groups.
Yeah.
Or if you're using a competitor's tool, you can get discounts.
Yeah, you can get discounts, but you're paying.
But, I mean, all right.
So to be fair, though, and this goes back to what Jay-Z is saying,
if you're using SQL Server, you're using SSMS.
Why?
Because they made it 100% for it, and it's so good.
DataGrip, we've talked about it before, but it's been a while.
I'm just going to rattle off a few of the ones that they have support for
out of the box that you can use
postgres sql server sqlite sybase maria db cassandra apache hive cockroach db redis my
sql azure db2 elastic search mongo yeah i mean it's it's insane however
that's one of the things that bugs me is like when I go to ask something like chat GPT, because I was really excited.
I was like, man, I wonder what it's going to spit out when I do this.
And it's like Jay-Z said, it was kind of like a person type answer.
Like, you know, if you have if you have a lot of Microsoft products and you probably want to use SQL Server, that is such a lame answer.
Like that is that's hot garbage to me. You could use zero Microsoft products and still want to use SQL server
because it is a very good database server,
right?
Like,
and that's,
that's kind of what bugged me.
I still say though,
that in the hypothetical that I put out there,
you're going to use data grip because my hypothetical was you've got years
of usage.
You already have a license for data grip.
You've got years of experience using DataGrip.
That's the hammer you know.
So you're going to use that because we know that's how hammers work, right?
The hammer you know is the hammer you're going to use.
So in that hypothetical, I would think you would still stick with DataGrip
even though there might be some capabilities that SQL server does. Cause like I can think of two things that why I might pick a SQL server
management studio over data grip in this,
you know,
made up example world that we're talking about where we're using SQL server
again for this,
this scenario.
One would be,
you can easily,
uh,
I forget what the tool is called that that's built this part of it,
but you can easily like trace all the queries that are happening against the
database.
Right.
And that you can see those happen.
So you can like,
you know,
kind of inspect it and watch it and monitor it.
And that's SMS.
Yeah.
Yeah.
That's profiler.
Yeah.
The profiler.
Yeah.
Thank you.
Well,
it was such a complicated name um
microsoft to sql server profiler 2023 pro edition uh you know yeah so so
that would be one case where i could see like you would definitely want to pick it
but the one thing that super bugs me and that i do in this one aspect think that sql server wins out over
data grip when it comes to just a tool to use a query database is i hate how uh data grip will
put like if you run two or three statements right data grip will create a new tab for each query result
instead of one. And then what's weird in my mind is that then like, let's say I run three the first
time. So I get three different tabs of results. Okay, cool. Then I'm like, oh, let me just run
one query now. So it picks the tab, that first tab and is like, okay, I'm going to,
you know, replace the contents of that tab with the new query results.
But the other two tabs from the previous run are still there.
And I'm like, well, why didn't you get rid of those too?
Trash those.
That whole tabbing thing that DataGrip does with the results drives me bonkers.
But at the same time, the super cool thing about it is you can just export that result out right there.
But you can from SSMS, too.
Now, I will say DataGrips export options are better than SSMS.
Oh, for sure.
I'm saying from that tab result, though, you can do that.
Yeah.
Well, you can do it in the grid results in SSMS as well.
Copy and paste. I believe you can do it in the grid results in um ssms as well so you know copy and paste oh i think you can i believe you can do it i mean it's like there's like a no i'm saying like
data grip has like proper options like in that on the right yeah to like export it properly out
is like you know whatever delimit however you want to delimit it it's there but then there's also
that ability where i talked about it a few episodes back as
the tip of the week where you can compare two tabs to see like okay what's the difference between
these two results sweet that's actually really that's something that sql server management studio
doesn't have it doesn't but but again you know going back to the original thing and and i mean
debating tools all day long right like there's red gate, there's a whole reason red gate software exists for SQL server. Cause it, it augments what even SSMS does, but just that
whole thing of, if you're going to ask chat GPT something, realize it's exactly what outlaw said.
It's based off something that somebody has written and it's ingested and inspected or whatever. Right. So the answers you get are likely biased,
right?
And that's,
that's,
you know,
it's a good starting point,
but it shouldn't be where your decisions come from when you're doing things.
At least,
at least those are my thoughts.
Yeah.
Hey,
I got a topic.
So I'm sure I brought this up on the show before but
that's something i like to revisit every so often uh i used to work with a guy named jim who was
just awesome he was excellent i would bug him from help all the time uh everyone would bug me for
help all the time because he's awesome and he knew everything it was great but the problem was he
couldn't get a lot of work done because everyone was bugging him all the time and so we had a
couple uh you know talks about him what to do whatever and the solution ended up being what we called open gym
hours if you're in the in the u.s uh we used to at least my school had a thing called open gym
where like you could just do whatever you wanted in the gymnasium it was kind of like a physical
education thing in like school and so if you wanted to play basketball you could play basketball if
you wanted to go whatever you could do whatever you want and the idea was that like open gym would be you know from 9 a.m to 11
a.m and then if you uh had a question after that time just save it for tomorrow and that let him
get some work done which is great and it's still you get your questions uh answered and kind of
force people to get organized and you kind of get your stuff together and a lot of times you end up solving your problem before it got to 9 a.m again
which is nice and uh so you know the real question i want to ask is really um what your thoughts are
um you know on stuff like this and whether or not team productivity is more important
than a senior individual's productivity.
Go ahead.
Meaning?
Wow.
So I think if we're talking about what I think we're talking about, then I've struggled with this one myself because you're basically saying like should that senior engineer spend
more time answering questions thereby kind of elevating the rest of the team right like
the the old adage of like you know uh uh time a rising tide raises all ships right
but at the same time because he might spend more time
or she might spend more time answering questions,
then they might kind of slide off the go-to answer podium, right?
Mm-hmm.
I mean, I kind of feel, I kind of agree with it, you know, like, you know.
We'd agree with what?
Agree with what exactly?
About answering the questions, about spending time answering the questions and, like, you know, that, that person you're going to go to
for questions can like kind of flow, right? Like, you know, you know, maybe this year you
happen to be the person that everybody is like, oh yeah, go to Alan, for example, like
that he knows all about it, you know, but you know, as a result, like you kind of slide in that,
in that particular skill or that particular area, because, you know but you know as a result like you kind of slide in that in that particular
skill or that particular area because you know you're answering the questions from the past
while other people are developing them because you keep answering questions of the past
you're not keeping up with the new right and so eventually somebody's going to outpace you
right and and it doesn't have to be on all other technology it could be like on a thing
but i've seen alan run you're not gonna outpace him if alan wants to win alan's gonna win yeah
i'm gonna hurt myself to win i can't help it um no that's a good point though i i think that's
an excellent point and not one i'd ever really considered, but I think based off like the last,
the last sentence you had here,
does that mean there's like a sign and there's missing documentation or
something?
I do my level best.
Like there's,
you know,
the guys on this call on this,
on this podcast,
as well as some other people that we work with,
they are sort of the go-to people a lot.
And, and it's kind of unfair that, that we're all given like equal amounts of work we'll say,
right. And, and unfortunately it's not like they say, Oh, well you're going to get 80% of the calls,
but you still got to do all this work. So I think that some sort of notion
around open gym, quote unquote, hours is probably not terrible, right? Like, hey, you can bug this
person from nine to 11 today. Anything else, barring some sort of prod emergency or something,
put it together in an email or something and set some
time up tomorrow to talk to them, I think is good because I think it does two things. I think one,
it gives that person the ability to work a normal-ish day, right? And not have to work a
12-hour day. But two, I think it does enable people a chance to be like, Hey, wait a second.
This is the same question he's gotten, you know, or she's gotten 12 times over the past
two months.
Maybe we need to, um, spruce up our documentation on this and we need to have an FAQ or some
sort of playbook or something that people can go to, to where they can at least try
and, and self-help
themselves. And if they need some prodding along, guess what? We can set up a call and we can
enhance that documentation. Right? So I think it's a smell. If that person is getting all their time
taken away to help other people, there's a smell somewhere. Like I'm, I'm actually in a situation like that right now,
right? Like I'm, I'm kind of the person that is on the hook for all on-call stuff, whether I'm
on call or not for a particular slice of things, because I have the most intimate knowledge of it
and, and, and I've got to handle it. And to me, that's a smell, right? And, and I need to do
something to address that. And I need to help that forward. And I think that's the real answer. I think that it's a good idea, but it should be
pushing towards getting to where that's not the situation anymore, right? To where you don't need
two hours a day set aside for people to ask Jim questions. Yeah. I mean, I definitely do like the idea of uh you know hey if you wanted to come at me with
questions it has to be after 4 p.m right yep i love that idea i don't know how realistic it is
you know yeah you know it depends and this is where this is where like going back to your
original question jay-z where like i kind of feel guilty about like, okay, well maybe I should
just like answer the questions to help elevate the team.
Because if somebody has a question at nine o'clock in the morning, I really am
going to make them wait until four before they can ask me like, you know seemed that seems wrong right like i mean i'm all for
like you know hey have you tried what have you tried you know don't don't don't let me be your
first resource uh but also i i don't know i, it's hard though, right?
Because you want to be the good guy, like what you're saying, right?
Like I don't want to be the reason you're blocked all day.
But then when you look up and it's two or three o'clock in the afternoon
and you've been working for everybody else all day
and you haven't accomplished any of what you need to do,
it's a trade-off, right?
And it's a hard trade-off because then you're the one that's always like,
yeah, sorry I missed my deadline, but had x y and z you know to the fifth come up and it's it's
just hard yeah yeah it just seems like it's the other extreme though so on the one extreme is
like you didn't even bother to try you just immediately come to me with your questions
and on the opposite end of that pendulum is you can't come to me with your questions until this particular time of day and only for this
amount of time in that day will i answer questions and oh by the way there might be a queue that you
have to you know get in line for right so i mean that seems at the other end of the spectrum
right so like where's the happy where's
the happy medium there yeah so if it's a non-trivial question then it's probably going to
take at least 15 minutes for the person to for you to go out research do whatever as we know that
interruption a 15 minute interruption costs more than 15 minutes right because there's overhead
associated with it so you can kind of say like any non-trivial question is going to be at least a half hour delay so then you think about that way it's like well okay yeah i'm waiting six hours to
get my question answered and that stinks but if me and three other people didn't wait in line and
ask this person we're taking you know getting like an hour and a half or more of their time
delayed on stuff so you know it's a trade off.
I think you got to be judicial with however you do it, right? Like if it's something that's
impacting more than one person, sure. Right. If it's something that, Hey, you've got one ticket
to work on, but you got five other tickets you could potentially work with. Um, you know,
could you work on one of those? And we come back this later? If you're not willing to context switch, but you want to force me to context switch,
that's not quite right.
So I think there's always a happy medium somewhere, right?
Well, I think part of the smell here, though, is that in this original example,
Jim knew everything and no one else did.
Why was he the only one with the knowledge why was he the
one why was like that that already seems like a code smell or you know a team smell or whatever
right and you know even in our own situations like that could you know just be in our situations
could be examples of that right that like well why is it that jay-z is the person you always have to go to
for questions about this one particular portion of the app or whatnot you know so to your point
maybe it's not documented maybe maybe there maybe it should be better you know talked about in the
readme or something yeah yeah it's it's it very interesting. I would venture to say if one person is always the bottleneck for one thing, like why has nobody actually learned it over time too? Right? Like that's, that's another problem. Is it a, is it a sign of people being lazy? Yeah. Lazy on a team i mean that's human nature our human nature is to take the path of least resistance
so if you have somebody that knows something and they're and they're always answering the questions
and you know that they're going to answer your questions like people tend to get lazy and just
you know go to that person if i wait long enough they'll raise their hand so so you know maybe tell
that person like hey stop answering questions like you know be a jerk about it it's okay yeah i think there are a couple reasons that kind of led to it um like jim was
just amazing he was super smart new bunch of stuff what's funny is uh he was also uh kind of
the new guy so he wasn't the person who'd been there for 10 years and kind of built up this stuff
uh but rather um it was because he kind of came in was a new guy and had known some of the people
had worked with him before but came in he kind of got in, was a new guy, and had known some of the people who had worked with him before, but came in.
He kind of got to work on kind of like a pivot for the company.
And so he just happened to be the person who set up a new way of doing things and kind of brought in the new framework and set up the CI and, you know, did some of this stuff.
And so, you know, everyone started going to him because he was the one who set it up.
But then six months down the road, it's okay we need to we need to stop this i wonder though if the reality here
is uh you know that was junior developer jay-z's experience with jim and maybe jim was senior
engineer yeah and and so that was your perception of the of the time and had current jay-z been in
that same work environment i wonder if you would still view jim in the same light yeah yeah i
should call up and be like hey so what what was your perspective on uh that time i'd be like oh
you were driving me nuts j Open gym was just for you.
Everyone else is fine.
Wouldn't that hurt a little bit, though, if he found out?
If he was like, yeah, it's because you wouldn't leave me alone.
Right.
Yeah.
I don't know.
I mean, I believe it. I wouldn't take a lot of convincing.
I could totally see that being the case.
And so, yeah, I wouldn't be too surprised.
Maybe the reality is, uh,
he just thought that it sounded cool because,
you know,
he was aware,
you know,
familiar with like open gym from school and his name being Jim.
He was like,
Hey,
look at this pun.
I did.
This works.
I'm going to,
I'm gonna use it everywhere.
So,
um,
with that,
if you haven't already left us for review,
uh,
we greatly appreciate it.
You can't do it on stitcher though.
So don't even bother.
Um, is that, it's probably not even up by the time you're listening to this. Uh, we greatly appreciate it. You can't do it on Stitcher though. So don't even bother. Um,
is that,
it's probably not even up by the time you're listening to this.
Uh,
at any rate,
you know,
uh,
you know,
try it on serious though.
Serious XM.
Um,
yeah.
So if you haven't,
if yeah,
they do,
that's why I called it out.
If you haven't left us a review,
you can find some helpful links at coding blockscks.net slash review and with that this is jeopardy blocks because i couldn't come up with a better name
there we go pretty good so we're gonna we're gonna use the new rules this time so rather
than doing the dollar amounts last time it's just gonna be either you get it or you don't
binary like one
or zero you get whoever it says a race to three race best out of three yeah that's what i'm trying
to say all right uh let's see this is episode 213 so uh we're still using tetco's trademark engagement. Alan is first and your categories are this information or creatures great and small
or around the house or boogie or comedy Atlas, or lastly, All Things Aside, where each response contains A-L-L.
A-L-L.
Let's do that one.
Your dollar amounts are from $100 to $500 in $100 increments.
So pick one.
We'll do $300.
$300 All Things Aside.
Okay.
Remember, oh, last time I let you guys go easy on the not answering the
former question.
Yeah, what is it?
All right.
So what have we got here?
How do I get?
Okay.
Yeah.
Now it's working.
Shady Albuquerque, New Mexico, criminal lawyer.
Is that right?
Yeah.
Yeah.
Sal Goodman had his law office
in this type
of shopping center.
What is
a mall?
I'll take it.
It's close enough. What is
a mini mall or a strip mall?
Wow.
Yeah.
I'll give it to you.
All right.
So you have one.
Wow.
Jeez.
Okay. I'm going to pay attention.
So Jay-Z.
Huh?
Sorry.
So the categories are history quiz.
What happens in Vegas?
That paints a picture.
French words and phrases.
19th century novels or TV show theme songs.
And the prices are 200 to 1,000 in $200 increments.
All right, we're going to go with the $1,000.
Okay.
And, geez.
Let's go with a history quiz.
Okay.
What could go wrong?
So,
thousand,
thousand dollar question
for the history quiz.
A Paris airport
is named for this general
who led the Free French Forces
during World War II
and later served
as France's president.
Oh my gosh.
I didn't pick the French one.
Dang it.
World War II.
I cannot think of his name.
So it's probably not him anyway.
So I'm going to go with Napoleon.
Okay. No. Okay.
No.
No.
Alan?
Yeah, he was a little earlier.
Do I lose points if I say?
This is your chance to steal.
Oh, I guess I should have subtracted one from him.
I guess we didn't do a negative for him.
So in the form of a question
what is rochambeau
rock paper scissors
no did i get it the correct answer was charles de gaulle okay yeah that's the only airport i
know of in france so i don't i would I would have maybe gotten that one correct by default.
That was the airport question.
Can you tell me what the French words question was?
Just in case I know it and I'll be mad.
French words and phrases at the $1,000?
Oui.
This four-letter word comes before...
It's in French.
I can't read this.
This is going to be awful.
Like whoever's listening will be like,
of course this is the way he would say it.
This four-letter word comes
before
the attack
in a governmental
overthrow or before
the grace. It's a coup.
Yeah. Dang it.
Finishing blow.
Yeah. So I guess maybe you should have picked that one.
Oh, coup d'etat.
Yeah, d'etat.
Okay.
When it was left out like that, I didn't.
Yeah, okay.
Whatever.
It doesn't change anything.
I probably would have still messed it up anyways.
I can't.
I have trouble with English.
Like, how am I going to get French?
Okay.
So Alan is ahead by one.
So, it's – let me put these goose eggs in here.
I'm a negative dozen.
Well, I didn't do the negatives, so I could have, but I didn't.
All right.
So, Alan's ahead by one.
Wow.
So, I guess – because I said best out of three.
Technically, though, if I'm only giving you three chances,
it's just like high score, period,
because you could both miss this one
and still have Alan be the highest scorer.
But it was close because, you know, he only won by one.
Okay, so third round.
Alan, here we go.
Helpful internet acronyms,
world geography, celebrity cameos,
go into the dictionary. Each response ends with G O in that one mythology or, uh, well, this one,
how, how, I don't know how this will work. one was like called austin tins bar but this was like uh you know there was a celebrity there doing the bar let's go with the internet
one i'm gonna go the internet one all right so uh questions 300 300 so you want the lowest level
one yeah i want to win this okay um i gotta remember i gotta figure out how to read this one though
so h m u yo yo yo i am what has hit me really intrigued by your request to meet in the future
please contact again when ready what is hit me up is the correct answer yo yo yo the game
yeah i was i wasn't sure like which part they wanted me to like you know because i started to
say hit me up yo yo yo like i don't think that's how they want me to read that one okay can you
read the thousand ones or the thelevel one just so we know?
Let's do it.
Let's do the 1,000.
On the helpful internet acronyms?
Yes.
Yeah.
Do you want just the acronym?
So CMV.
I can read the sentence that goes along with it if you want.
Something may vary.
I believe one thing but am open to your perspective.
So now is your chance to explain to me my error.
CMV?
Yes.
Change my view?
Correct.
Oh, nice, dude.
I've never heard that one.
Hey, give us 800.
Sorry, we got to go down the category.
Let's do 800 or whatever the one down from the top one was.
Whatever you do, careful about how you write this one down.
Really?
Okay.
Here we go.
I-A-N-A-L.
Beep.
My skills do not reside in the courtroom,
yet I feel the need to tell you of the possibly criminal error of your ways.
I'm not a lawyer.
That is correct.
Oh, good job.
How is that going to be up there and then Charles DeGaulle?
I mean, come on.
I'll take my win.
Thank you.
Yep.
Yep.
There you go.
You're welcome.
Yeah.
There's your yearly dose of winnings.
All right.
So the very last thing that I had here that I was curious about when you guys, whatever it is,
I mean, it seems like every app, every website, everything out there now is like, Hey, do you
want to sign in with your Google account, your Facebook account, your picket account,
or do you want to use your email? Like if Apple's not a choice, I pretty much am like, yeah, I'll use my email.
And my thinking is when you use the OAuth 2 stuff, like the Google, the Facebook, the Twitter, the whatever, the whatever, whatever, they can request information about your account.
Granted, you have to allow it, but nobody ever reads any of that stuff. So,
so I've always just been like, you know what, I'll give my email account. And then the only
thing they have is my email. Like, what are you guys, what are you guys' thoughts when you sign
up for things? And if you were going to create your own app, would you go the OAuth two route and integrate the Googles,
the Facebooks,
the Twitters,
the whatever else like,
all right,
go.
So who's going to go first?
I'll go first.
So,
cause we're kind of coming at this from like a security kind of minded
perspective,
maybe like a person,
personal security kind of,
but,
but also like what there was,
there was two phase, two parts but also like what there was,
there was two phase, two parts to this question. So from, from the personal security kind of mindset point of view,
I will not sign in with a Google or a Facebook or any of that. I'm,
I don't want to,
I don't want those two things to be linked for you to know, even if it's,
even if it is a Google email account what you know i i wouldn't want to it'd be different to use the email address than
to use google as the authentication to your point about them being on there to do the request i
really am in love with the um sign in with Apple feature where you can hide your email
address and they'll just totally create a bogus one. And you know, for they will handle doing
the forwards for you. I use that where I can, but otherwise I will, uh, use that plus trick
with Gmail, which is easy. Like even from their side, it'd be trivial to
like write a regular expression to, you know, remove all those and be like, okay, we know what
is his email addresses. But at least from my, my perspective, I do that. But the part two of your
question as an app developer, absolutely. I would, I would add in that authentication because, you know, you're just trying to make it easier for people to sign up and use your application
or service or whatever it might be. And so whatever reduces that friction, that's obviously
what you would want to do. So for you, it's reducing friction, not so much, Hey, I want to
get as much information about this, this person as I can. Yeah, absolutely.
It would be all about getting a new customer, and I'm using that term, a new user.
That's an expensive thing, right?
They say it costs more to get a new one than to keep one, right?
So yeah, whatever you can do to reduce that friction
so that you can get that new user sign up, I'm all for it.
Yep.
Yeah, so similar opinions somewhat.
If I'm making something new, I don't want to store passwords anyway.
I don't want to deal with any of that stuff.
And this is a great way if I'm doing something new to to just integrate with something quickly even if it's like an auth
zero whatever let me check the boxes for the other ones that i want to use or the services uh you
know that's great for me as a developer it's great for my users and uh the other thing i don't like
about it is i uh am lazy sometimes and i just sign in with google for stuff i don't really care about
i don't create a new account and sometimes it's not even an option. And then invariably,
like six months later, two years later, they're like, hey, we see you're logging in with Google
still. You got to transition to a real account because we're getting away from that. And it
keeps happening, keeps happening, keeps happening where I the services that I signed up with,
you know, Google something, something quick has forced me to migrate to their
own system over time. And I think it kind of makes sense that they can have more information about
you, you know, like what Google or Facebook or wherever your Apple gives them is really limited
compared to what they can kind of keep about you. So I'm sure all the services that are doing that
are doing bad things and wonder for bad reasons. But you you know whatever i'm uh lazy and tired so they
could have it but i will say oh go ahead i mean but the apple sign-on it makes that part super
easy though too because you can even change your name they don't even have to know what your real
name is yeah and that's why they don't want you to do it that's why they're migrating you off that if they can yeah yeah but
yes apple's by far the best one um so here's a horror story uh real quick uh my brother-in-law
got his facebook password uh changed while i sleep and woke up in the morning and said hey
your password's been changed hey your phone number's been changed like separate emails
hey your i forget what else had been changed.
So basically somehow someone had gotten around double like two factor stuff and
had taken over his Facebook account.
He could not get it back.
Sorry,
everything totally locked out.
And this person is messaging their friends,
uh,
like things like,
uh,
community groups.
Like if you are in the Facebook group for your,
uh,
neighborhood,
you know, watch or something, uh, like things like, uh, community groups. Like if you are in the Facebook group for your neighborhood, you know, watch or something, uh, whoever took over his account is in there trying to scam people, trying to sell them, uh, diet pills is hitting on, uh, people in those
groups that live in their neighborhood. And so my sister is getting messages from people in their
neighborhood. Like, Hey, your husband is a pig.
They're messaging me gross stuff.
What the heck is going on in there?
Stop this.
And there's nothing they can do about it.
And there's no one to talk to.
There's no one to call on the phone.
There's nothing.
Also, anything that you may use with a Facebook login, it's just gone.
So can't do it.
You know, it's a customer service issue for each one of those.
And good luck figuring all that out. Yeah. And the person have access to all those services too right yeah i forgot about that
i totally forgot about that yep yeah so that stinks facebook's upset to that person they've
verified the identity so you know as far as all those services are are you know concerned
you know that's it.
So, pretty terrible.
And, oh yeah, when I'm making something, yeah, I mentioned
that already. Yeah, it's totally
easy.
Interesting.
They're not in that ballpark
though.
No, I mean, I'm just lazy
for stuff. So, it's a service
I care about but you know like
that's the same argument i used to make about password managers like well look this is just
a site i don't care about so let me use the same password you know this is clearly a long long time
ago and that's a bad strategy i know it's a bad strategy same with uh logging in with you know a
google i think that's a bad strategy i could lose my account tomorrow and i'd be you know sol and a
number of different things and i shouldn't let that happen.
I meant Alan though.
Like he isn't on board with this of using the OAuth for your applications.
So I'm very much, I'd say that I'm probably almost identical to your take on it.
Like I don't use it for my stuff personally.
I will the Apple thing because they will anonymize you,
which I like a lot.
I don't want companies just having access to whatever they want to get a hold
of with that.
But I also think about it sort of,
I haven't thought about it as deep as what Jay-Z was just saying where
somebody had their account stolen and everything got taken. That makes me want to kind of press pause on using that for
anything from there. But I'm on the same side. If I'm writing an application, I'm going to take
advantage of all the OAuth 2 things out there to try and get people, Hey, if you have a Google account, come on in, you got a Twitter account, come on in. Um, you know, like you said, easing, easing the ability
for people to sign up for your service or your application or whatever it is, this huge, like
you can't, you can't overstate that. So there's a couple of important takeaways there from this
one. If you're not using two-factor i mean how you
should you should be using two-factor for like everything that you can use two-factor for
but also another one since we're kind of like giving praise to apple with the
sign in with apple did you know you can go to apple id.apple.com sign in and you can see all of the places that you are you know are using
um you that you're signed in with apple and you can see what the email address is that they're
using that that uh you know that that other service is getting and just how obscurely crazy
it is like yeah that's amazing they would never be able to
you know associate that back to you and like i said you can you can uh change the the name that
they're even getting so um which you know to jay's these points probably reason why they don't want to
you to use that but yeah i actually haven't had any services that I'm aware of. Um,
try and try and convert me over to,
to their own,
but I could totally,
totally see.
Sure enough, they have app specific passwords.
Yeah.
Stupid stuff like Panera or like,
you know,
whatever,
like I would place,
you know,
food order or something with,
um,
it's happened several times now,
like recently in the last year.
Yeah. I think they want more information. That's interesting. So, all right. it's happened several times now like recently in the last year yeah
I think they want more information that's interesting
so
alright well let's head
into Alan's favorite portion of the show
it's the tip of the week
and I
have a tip for you so
you know I'm always checking out new stuff on Spotify
and just looking for different playlists or trying to search
for things to listen to
and I see for one offers teacher sorry stitcher uh so i'm talking specifically
about music in this case um and i've stumbled on a new playlist that i feel like i just cracked
into like a new chamber in my labyrinth of music listening to because it's all this stuff all these
bands i've never even heard of and they're like so they fit so nicely in with my tastes i was really surprised and the the playlist is called
doom gaze and it's specifically for uh you know a poorly named genre of music they call doom gaze
which is described as heavy and intense doom drones wrapped up in shoegaze layers and i thought if you're a kind of person who loves doom drone
or shoegaze then you're gonna love this and also and if you don't know what any of that is okay
boomer yeah i'm waiting for you to say it if you if you don't know uh what those are then
even better reason,
because it's something that's going to be probably pretty different
from the kind of stuff you listen to.
So I thought it was a really great playlist.
I usually only recommend instrumental, and a lot of this is not instrumental.
But I still like it, and I had a nice working session with it the other day,
and so I was like, yeah, I'm going to share this one.
So I'll have a link in the show notes.
Excellent.
Well, interesting that we both have a musical once then for the tip of the week.
So I know that Jay-Z and I both play instruments,
and there's other people in the Slack, in our Slack community that play as well.
So this is probably one of those things where like Jay-Z is going to tell me like,
oh, but that's illegal.
You can't like,
don't,
don't talk about like their licenses,
whatever.
I don't know that it is.
Um,
but, uh,
you know,
hopefully it's not.
And,
and you'll tell me this,
not,
but you can go to karaoke dash version.com.
And if you're trying to learn any particular song,
you can go on there and, um, you know, if they, assuming that they
have it by the particular artists that you want, you can find a karaoke version of that song where
like, it's, you know, not, uh, you know, like, like if it was a Metallica, for example, like,
it's not going to be James Hetfield's voice that you're going to hear. You'd hear somebody else
singing it. Right. But you can turn off all that. You can figure out like which which tracks do you want.
Right. So if there's like three guitar lines, you can say like, OK, well, I'm fine with the two rhythm, but take out the lead.
Right. And, you know, I want a click track added to it and I want an intro added to it and i do want to hear vocals and i specifically would prefer to
not hear like the lot the actual recording vocals because i kind of want that like uh
you know i want to hear something that doesn't sound like the recording so that it kind of
sounds different in my head so that when i'm playing it like i can focus more on like the
i don't know if that part makes sense you you get what i'm talking about with that jay-z
yeah that makes sense i hadn't thought about it that way but i like it so so the cool thing is
is that you can go in you can like i said you can pick which tracks you want to listen to but you
can also uh change the levels of of given tracks too if you wanted to so maybe you do want to hear
like a particular guitar line or bass line or whatever you happen to be working on but you want to you don't want it to be overpowering because you want
to play but just in case if you got lost or you know whatever you want to be able to have it in
you know uh you want some more snare in your headphones so uh you know yeah check it out
karaoke-version.com that's pretty cool yeah it's great all right so
i cheated um so micro g as he's always awesome and sending us all kinds of tips uh he sent me one
the other day that i haven't had a chance to check out but it looks pretty cool it's kadeck.com so
as in kafka deck and basically what this thing is, is supposed to be like a way
to be able to monitor and, and interact with Kafka in like a UI, which if you've lived in
the Kafka world at all, you'll know that they're very light kind of UI interactions, which is good,
but it can also be very tedious. So they have this product here.
Again, I have not had a chance to check it out, but they have free versions and paid versions.
And the free version gives you quite a bit. You have ability to obviously work with Apache Kafka.
You can only manage one cluster. It'll also interact with AWS Kinesis or Amazon Kinesis. You have the
ability to browse data. They only have one default data view on the free version, flow view, time
distribution view, whatever, but they've got a whole bunch of stuff here. So if you go to
kadek.com slash pricing and you scroll down towards the bottom, you'll see like this grid
of all the things that you get with the different versions.
And it looks pretty good.
So my thinking is,
especially if you're getting started with Kafka
and you want to be able to see how things are working
in a more visual way than just, you know,
running a bunch of shell commands,
which can be really frustrating.
This might be a great way to get introduced
into what's going on behind the
scenes on your kafka clusters i'm going to try this and i will report back next it's pretty
exciting right it is yeah like well because in my mind like i'm wondering like okay is this does
i already have grafana dashboards for kafka What does this do that's over and above what I can already do there?
So I could tell you, well, one thing is it looks like you can filter data live.
So you can go to the UI and be like, hey, I'm looking for a piece, you know, something that has this in the record.
Something that currently as users of Kafka that you have to run through shell scripts and whatnot,
right? Like we've talked about Kafka cuddle in the past, or I think we have, um, I think Jay-Z,
you shared it as a tip. Um, but right now you have to write like a Kafka cuddle consume topic
name, blah, blah, blah, blah, right? Wouldn't it be nice if you just go to UI and say, okay,
that's the, that's the topic I care about and filter by Alan.
Show me everything.
So that would be amazing.
So I think that's what this adds on top of what you're talking about, Outlaw.
Episode 198, by the way, Kafka Cuddle, tip of the week.
There you go.
Good Lord, man.
Yeah, I'm going to try it.
I'm curious.
So thanks again, Micro-G. As always, do we not have any dad jokes? I'm going to try it. I'm curious. So, yeah.
So, thanks again, Micah G.
As always, do we not have any dad jokes?
Well, I mean, we do, but I guess I'm falling short.
You are, man.
I'm sorry.
You can't have that happen.
Well, I will tell you.
I don't have a dad joke, but I will tell you. So, you know my my kids are trying to get um like we're trying
to get summertime jobs and everything before going off to school and um my youngest especially
was having some trouble so there was this one job that that i thought he was going to get it was um
a sales position at a door company and everything and then he came home and he was like really upset
and disappointed and everything because he ended up not getting the job and i was super surprised because it was an entry-level position
pretty good that's pretty good man thank you mike rg you saved my butt yeah i got uh one from
chad gpt here why don't uh software developers trust nature uh Because of all the bugs.
You got it.
Oh, look at me.
Good job.
All right.
All right.
Well, subscribe to us on iTunes.
And now I have to say Spotify correctly.
So Spotify and wherever you like to find your podcast,
leave us a review.
You can find some helpful links at codingblocks.net slash review.
Hey, while you're up there at codingblocks.net,
check out our show notes, examples, discussions, and more,
and send your feedback, questions, and rants
to our Slack channel at codingblocks.net slash Slack.
Yeah, and make sure to follow us on Twitter
at codingblocks.
Head over there to codingblocks.net
and find all our social links on the top of the page.
And hey, you can tag us over there.
You got a question, you got something funny you saw, you can find a good dad joke on the top of the page and hey uh you know you can tag us over there you got a question you got uh something funny you saw you find a good dad joke on there uh at
coming bucks bam bam hey but you know what's funny you guys saw like i know this is totally
random at the end of the show you saw that um musk had put out a tweet saying that um people's
ability to read posts was going to be limited to either 500 tweets or 1,000 tweets a day.
600?
Yeah.
So it was for an emergency purpose for right now.
So I don't know if that's going to stick forever.
But you can tag us.
And if we haven't looked at 1,000 other tweets or 600 other tweets, we'll do our best to get back to you.
Yeah.
We get 600 because our account is old enough, but new
accounts would be limited to $300.
Isn't that crazy?
Yeah. Good times.