Coding Blocks - StackOverflow AI Disagreements, Kotlin Coroutines and More
Episode Date: May 13, 2024Joe Zack was on a brief holiday so Allen and Michael took over the helm for an episode. What would a new episode be without a little something regarding AI, some more love for Kotlin, and a number of ...excellent tips throughout (as well as at the end of) the episode. Reviews News Atlanta Dev […]
Transcript
Discussion (0)
hi everybody i'm joe zach this is codenblocks and welcome to codenblocks with joe zach
it's totally believable
i'm michael allah or something like that wow
your your michael allah impersonation is uh questionable yeah not great yeah i'm not yeah
i can't do impersonations i'll have to call
my son down to do some of that so yeah this is episode 234 you know we are on itunes spotify
and all those things and we have a website www.cuttingblocks.net and we have a slack which
we always say at the end of the show we actually need to modify the
show notes because people have checked out by then you know i think when when when are we going
to get to the point to where websites are like a thing of the past are we there yet already maybe
because i mean it's been several decades now right I think they're here for a little while.
You think they got a little bit longer?
I think so.
But it's debatable because I can't tell you how many times I've gone to look for something
and all the top searches are some garbage where somebody's just put together some top 10 list
that they copied from somebody else's top 10 list.
So, you know.
Yeah.
Yeah. I don't know but anyway it just seems so like dated and cliche like hey we got a website come see our website
blah blah blah like right we're the only ones with a website in town come visit us at geocities
slash coding blocks that's right and if you can't get it there what was the other one angel fire
we have an angel fire or i was gonna say aol keyword coding blocks there we go there we go
like all of it just seems so i don't know just so dated we're gonna keep ours for a minute so
just in case you do want to find it there there's coding blocks that you can find all kinds of glorious things up there
all right who are you for real oh i thought i said i was joe zach yeah yeah i'm outlaw
is that not believable yeah i'm outlaw um all right well we always like to say thank you to
those who left a review so from itunes ivan kuchen i'm pretty sure we've seen
that name like three four times now doesn't i don't know how he managed to do it again
but thank you very much for taking the time it was awesome it was so good yeah and that that
was a funny one so there was a request made in that one, and we're going to bring a little something back. We'll call it out when we get there.
Okay.
And we have one other thing to share.
So we mentioned it last time.
We called it the Atlanta Code Camp.
They rebranded.
They are no longer Atlanta Code Camp.
They are now Atlanta DevCon.
So I wanted to at least update that and say that properly on the podcast and and their website
is atl devcon.com uh that's coming up september 7th and i don't know maybe we'll go to that
it's been a little while well now hold on now don't don't go get committing to anything too
soon now don't be too hasty hey you know i mean i don't know yeah i might do it you know you know
what's really sad is i i wanted to go there was a flink i think it was a flink or it was a it was
either a streaming conference or a flink conference that was happening out in san francisco ed i got
a notification i was like oh that would be that would be pretty cool and then i totally forgot
about it like 100 a couple weeks later i was like oh yeah i think it's done now oh i think
i remember that one because uh we were talking about that i think with some colleagues right
yeah yeah and it's just one of those things to where if i don't act on it like right when i see
it then it's gone right yeah that wasn't going to be a cheap one i i didn't even bother to um
entertain that idea though because i was like yeah that's you know the cost to get out there
that's where it is right to stay yeah so so you had the flight you had the hotel even though we
were going to get a pretty sweet deal on the tickets but yeah you're still in it for probably a grand for you know two days so yeah
i mean that's just a generic problem though for any conference that's not in your backyard for
sure or within driving distance well that's what i meant yeah yeah driving yeah for sure
i mean even hotels i wouldn't mind i wouldn't mind driving a few hours to a hotel and staying
somewhere but the flights across to the west coast dropping 500 bucks on that and then a
rental or Ubering and all.
Yeah.
It just gets really expensive.
Wait,
would it only be $500 for a flight?
Yeah,
probably.
I mean,
that's what I've paid the last few times.
Oh yeah.
For a round trip flight.
Okay.
Yeah.
That's better than I would have guessed,
but okay.
Yeah.
Now in fairness, I haven't done it in a few years either.
So maybe my numbers are off nowadays.
I think your numbers might be off.
Okay.
You know what?
Now I'm curious.
Like, was this to San Fran?
Yeah.
San Francisco should have been.
All right.
So, and you were, and you were looking for like a month out.
Oh yeah.
Is that fair?
A month out.
All right.
All right. So let's say round trip we're
gonna uh say june 13th ish that's roughly far enough away from here and let's say that works
you stayed for three day or two days wait actually i'll tell you what i'll say 17 i'll say 17 to the
20th so check it out no way would I ever take this flight.
But right now, they had the default date for Sunday, June 23rd,
flying out there and staying a week.
And the flight on Frontier, which, again,
I would never take that flight that long on Frontier.
It's $158 nonstop.
Okay.
That ain't bad.
Now, a more realistic one that they
have down here is a united one that's 411 so that's not bad so delta it was like 560
yeah it's not terrible basic seat you know yeah yeah no upgrades but that's only for the uh
that's that that's to get there then you still got to pick your flight coming back.
So on the date that I have, Delta's actually 439 round trip.
Well, no, this is the thing that I hate about the way Delta does their,
okay, welcome to codingblocks.travel.
Because I hate the way Delta does this, where like,
you'll see a ticket and they'll say, you know, five 60 round trip.
And you're like, okay, yeah, I like that.
And then it's like, oh, well that's the, that's this leg of the flight.
Now you got to pick your next flight and then you're like, oh, now you've like essentially doubled it or whatever.
So yeah, for sure.
You know, the interesting thing though is for anybody that does the coast to coast thing you should absolutely upgrade to the premium seat not necessarily full-on business class but man that extra leg room
is is glorious when you're going that far so anyways all right so yeah 500 bucks isn't out
of the realm right like we're still there oh i guess it did keep it that time oh i was mistaken yeah i got i got 558 round trip
but i had to pick two of the worst seats
ever you're in the butt of the plane all the way at the back
and that and that's how that's the only reason because it was like literally basic
yeah but hey you at least get to check a bag with them or no you can you can put a bag in
the overhead for free if you go frontier like that 158 climbs real fast if you got to do
anything like if you actually need to breathe on the flight it'll cost you extra bring your
own oxygen bottle yeah for sure it's like space balls crack the can of air
that one caught me for a minute i was like wait where are we going with
this oh you don't remember that one well because i was i'm just for some reason i don't know why
and i know this had nothing to do with anything you were saying but i was just thinking of that
teleporter where they like that the president goes through and they put his head on backwards
and he's like why didn't you tell me i was this big right you know so yeah that's amazing it's in that same section of the
movie yeah anyways all right so got some interesting topics here went and looked up some
things and here's one that sort of caught me off guard so did you know that stack overflow was
partnering with open ai i think that was something that they had announced when last year. Wait. So OpenAI,
ChatGPT became a thing in November of 22. So 23 was when it blew up. And yeah, in the beginning,
somewhere in like the middle-ish of 23, Stack Overflow said they were going to do something
so that their answers could be powered
by chat gpt or something but that was as far as i knew about it okay i didn't follow up with it or
anything like that but i did vaguely hear something to answer your question the same and you know
what's funny i mean on this topic i think we've even mentioned it on this episode a little bit
stack overflow was like the place that we always went for stuff, right? And it was always hit or miss, like whether or not people were answering things.
What's this was?
Well, so that's what I was going to say.
I think a lot of people have turned to ChatGPT as their first, you know, actionable thing.
Like, hey, I have this question.
I have this problem.
I want to answer it.
I'm going to ask ChatGPT rather than go looking in Stack Overflow and finding a bunch of things that I got to sift through anyways.
I don't know.
I mean, okay, this is where you're going with this,
but we've talked about the answers to chat GBT are dated.
So it really totally depends on what you're looking for.
Like, you know, case in point here lately,
I've been doing some Strimsy stuff and we talked about this where like anything that's fast moving,
like a library or something, or in this case, uh, you know, a Kafka operator for Kubernetes,
useless, they're constantly iterating out new versions. Yep. You know, chat GPT just doesn't
really have a good, you know, wealth of information for that.
So I don't know.
I still think there's value in places like Stack Overflow.
Yeah, I would agree.
So you're 100% correct on like if you're doing something like an awk or a bash type script, then maybe chat GPT will get you exactly what you need.
If it's anything that's, that's
quickly moving your, your host. But I will say one thing that's really nice that I don't know
people sell well enough with the AI stuff is the fact that you can have an ongoing conversation
with it, right? Like, you know, like when you do a Google search or a Stack Overflow search and you don't find what you're looking for, you can't refine it.
You have to rethink how you're asking for the information, right?
With ChatGPT, you can sort of mold what you're going after, right?
Like, well, could you add this to it?
And then it might come up with something useful.
Sure.
So anyways, here was the interesting thing. So Stack Overflow has partnered with OpenAI.
There are people like that. I will have an article linked in, in this that is pretty interesting.
Stack Overflow is banning users like a large chunk of users who are rebelling against the OpenAI partnership.
So in gist, what this article says is people are not liking the fact that their answers are being
used to train data in a prompt that if somebody asks a question, then that answer is probably
going to come up in the future, right? Because my guess is when they train the stack overflow stuff, any answers that's been
marked as the answer, right? Like this is the solution. That's probably going to float very high
in that language model to where that'll be the answer that comes back. But there's going to be
no credit given, right? Like, so if you outlaw, if you went in and answered like a hundred questions and yours
were the top ones that floated up to all of them, when somebody goes and uses the chat prompt,
it's just going to spit out your answer. You're going to be given no credit for the time that
you spent, you know, putting the effort into doing all that and people are mad about it. And so like this one dude
went in there and apparently I don't really mess with this enough. So I didn't, I didn't realize
this, but if you, if you put an answer into stack overflow and it gets marked as the answer,
you can no longer delete it. Like they won't let you delete, um, the delete the true answer.
So what this dude did is he went in there and modified all his top answers
to be a protest against this open AI partnership.
And so Stack Overflow basically banned him
from the platform for seven days.
And I don't know if anything else happened past that,
but basically anybody that's going in and trying
to wreck the answers that were on there, they're like, no, you can't do that. This is our content.
You know, we've allowed you to use our website to, to create this content, to share this content,
but it's ours. Right. And so, and so they're, they're just kicking people off the platform,
even, even if they have the answers there. So I don't know. I'm curious what your thoughts are on this.
Not good.
Because, and here's, so, okay.
This is more of like a general thing where like, it's, whether it be any kind of social media platform, which Stack Overflow is just another type,
it's another form of a social media platform in my opinion.
Agreed.
But, you know, you put it out there.
Like, why are you expecting anything in return?
It's out there, right?
You know, and it's kind of coming from a, it's kind of coming from a point of greed that you're saying, well,
I don't want an AI, you know,
to be able to use my answer to help you out. Right.
You know,
I want you to know that I very specifically gave that answer so that you can,
you know, give me a that you can, you know,
give me a dopamine hit by, you know,
upvoting my answer so that, you know,
I get more credit or whatever.
And instead of like just the more altruistic reason of like, Hey,
I just wanted to help the world out. And like, I put this out there.
So I don't know, like,
am I going to support somebody who's going to change
their answers to a protest vote? Like, no, not really. Like whatever. I mean, you know,
accept it, move on. Like we're, we're now, we now live in a world where everything is being hoovered up by uh you know whether it be google for search indexing or uh
open ai for indexing for uh the purposes of a chat uh generative chat conversation like who cares man
like it that's the world we live in now. Let's just accept it. Yeah.
It's interesting.
Like, yeah, I'm sorry.
No, go ahead.
Well, where that gets like super, uh, you know, that my, my stance on that can seem
applicable for this specific, very specific use case of like, you know, helping out technical with technical answers, right.
Versus, uh, you know, authors who are writing books and then you ask like, okay, Hey, write me a,
write me a novel in the voice of Stephen King, you know, cause then it's like, okay, now,
now I see it is totally different, But yeah, I don't know.
I don't know.
I think it's such a complex issue.
Right.
It's a super fine line, right? I guess the reason why I take the issue with it when it comes to technical things is, you know, I didn't write the library.
I'm just answering our question about using it.
Right? and write the library i'm just answering a question about using it right so like that's that's a specific case like what if it was some sort of algorithm right like it had no library
it was just using a language to come up with some sort of algorithm to get something accomplished
right like for say like that i mean is that the type of answer that's on stack overflow though?
There are plenty.
There's plenty.
I mean,
there's obviously plenty of things like how to use this library, but then there's plenty of things that like,
Hey,
how do I do an asynchronous call that does this,
this,
this,
right?
Yeah.
And that's in my library to make the asynchronous call.
Good.
No,
it could be just language,
right?
Like even so later in the show,
I've got something about Kotlin co-routines, right?
Like that's an async thing.
That's not a library.
That's an actual language.
Okay, it's a Kotlin library, Kotlin language.
It's a library in the Kotlin language.
It's a language construct there.
Yeah, I mean, I guess we're splitting hairs on that.
Yeah, but my point is, is like we didn't author that.
So if you ask me how to do something in C Sharp or Java or Kotlin or whatever. Like, why, why should I get
all, you know, you know, frustrated that, you know, this thing that I didn't write, but yet I
help you answer a question. I answered a question for you, which helped you. Why should I get upset
that if that answer got used somewhere else that I see different than if I am the author of something and now, you know, something original, like in the case of the Stephen King book, for example.
And I'm going to use, you know, you're going to use that to create something new.
But in my quote voice.
Right.
Yeah. Now, of course that you know somebody's going
to answer the case of like what about technical books then what if you're the guy who wrote the
technical book it's your voice that explained how to use blah blah i don't know or or even a blog
article right like because i mean heck both of us have written blog articles on our website that are antiquated.
But those take hours, right?
Like to sit down, come up with the idea, then actually write out the code that works and post it.
I mean, it's hours worth of work.
So I don't know.
Yeah, but you.
So this is where I'm still I don't know that I'm fully getting my frustration across with this though,
because,
because in the case of Stephen King and that with that example,
like he's not going on stack overflow and like,
here's,
here's my new book.
Right.
It part three,
right?
Like he's not throwing that out there as an answer.
Now,
you know if somebody makes a pdf out of his book and then makes that available on something like that's already kind
of shady to begin with and then if something uh you know hoovers that up and you know now has his
voice to be able to write something else like it started from a shady place to begin with right versus yeah you could spend a
lot of time crafting a well uh worded answer on stack overflow but at the end of the day
you absolutely a thousand percent know that you're putting that onto something that you don't own
that you're helping to build a brand that isn't yours, right? It's so, yeah, I don't know.
Yeah, no, I mean, it's a totally fair thing that you're saying.
And I think that's something that people have to realize.
So Stack Overflow has in their policy that whatever you put up there, they own.
It's clear and nobody looks at their policy,
right? Everybody just goes to their site and uses it. And we've talked about using Stack Overflow
code in the past and about how that's dangerous because of the license that comes along with it.
So there's a whole lot of things that people just don't understand.
Okay. Now here's where the issue could come from though right because it is an
attribution license yep and now it's not going to be attributed to anybody except uh opening so now
now you got me on this guy's side because you did put that answer out there knowing that it was an
attribution answer yep and that's actually that license that's one of the things that they said
in the article is there's been arguments that hey Hey, what if, what if the answer that came
out of chat GBT or open AI or whatever product they're doing here, the stack overflow AI,
what if it were to provide attribution? And they actually made the argument that
they probably wouldn't want to do that because then it'd kind of show how the sausage was made
behind the scenes. Right? So it's, it's interesting. interesting like there there are definitely technical problems and and moral
and those type of issues that are going to just continue to come right with generative ai like
well not even just generative ai i wouldn't even refer to it as just generative ai i think that like
you know within the next decade or two society like we're going to have to come to grips in terms with like, you know,
things related to AI period, like not just generative, but like, yeah,
I don't care if it's a robot, a self-driving car. I mean, cause there's,
you know, Tesla has been working on self-driving car efforts for a long time.
Right. And they, and they've had as a goal uh you know for a long time
there was a goal of actually having like uh the equivalent of like an uber or taxi service that
was you know tesla i think they gave up on that just recently though or something am i remembering
that wrong but um and i think that that's part of the the the tunnel that they were working on in Vegas as well, too, like in Las Vegas.
You remember that?
I think the whole part of that was to have –
I thought it was LA.
It might have been Vegas.
No, I'm pretty sure it's Vegas where they're doing like a whole tunnel system where it's only Teslas.
But I believe it's all supposed to be self-driven Tes Tesla's to take you from place to place or whatnot.
Interesting.
But yes, now you got me, though, on this guy's side.
So well done there.
Wouldn't even try.
With the caveat of specific to Stack Overflow,
it is an attribution license.
Then I'm like, okay, if that, if the AI answer responded
with the attribution, then I'd be fine. Right. Well, that's one of the interesting things that
a lot of people didn't even realize. And it's one of the things that upset my wife about Facebook
back in the day is they put in a policy that's like, Hey, anything you put up here, we own,
right? Like if you post a picture of your kid and we decide we want to use it in an advertisement and you know, whatever it's,
it's our image to do what we want with. And, and so it's like outlaw said, you have to treat all
of these things just like their social networks. And basically anything you put up there,
they're just giving you a place to put it, but it's theirs once it's there, right? Like they're paying for the servers, they're paying for the service and they're giving you a place to put it but it's theirs once it's there right like they're
paying for the servers they're paying for the service and they're giving you the ability to
use it so i just put a link in the notes for you of the uh las vegas um what was it called the loop
the vegas loop yep it goes i think it's from the airport to the Las Vegas convention center.
I believe that's very cool.
Or maybe it's more than just that.
It doesn't look like the airport is on the loop at all.
So maybe I'm wrong.
They have resorts world state.
It goes through a bunch of different things,
but yeah,
that's,
that's pretty neat.
I don't know why I thought LA anyways.
All right.
So here's another cool thing that I just came across.
So I was kind of looking through Reddit and, and there were some interesting things that
I saw on Reddit too.
Like, uh, the, the slash our programming, which we've talked about before on the show,
they have a new policy for what you can post up there.
And they've basically kicked out a bunch of stuff, right?
Like if anybody tries to post a top 10 list, it's gone. If, if anybody tries to do like super amateur articles, like,
you know, what's a for loop, it's gone. Uh, I forget there were, there were a few other things.
So they're, they're kind of locking down on it because they want it to be more quality content.
Well, this is one of the things that came out of it. And I know outlaw will like this because he's sort of in love with Postgres.
There's this thing called green mask.
That is, I guess, a plug in for Postgres.
And what's cool is you're aware of PG dump and PG restore and that kind of stuff.
And it's basically MySQL has something similar to it where you can basically just dump the contents of your database to a file that you can then move and restore somewhere else,
right? Or keep it as a backup, whatever you want to do. Well, what this does that is very cool
is it actually allows you to obfuscate the data. So, a matter of fact they have on this link that i put there
i could have sworn there was a use case here it's at the bottom scroll down
well technically in the middle green mask is ideal for various scenarios including backup and
restoration or anonymization transformation transformation and data masking.
Yeah.
So one of the cool things that you can do is let's say that you have a
production database as has,
you know,
Postgres running and you want to anonymize and have that data available for
like a QA environment.
So instead of dumping that data out raw and then sticking it over here,
you can actually dump it out, masking data, obfuscating data, whatever, and then restore
it into another environment. So you have the same shape of data, but now all your sensitive
information is completely gone. That was immediately the thing that came to mind when
I started reading like the first couple sentences about this. So for anybody who hasn't had a need to do this, or maybe you're new to, you know, like,
you know, first year and you're in your new job or something out of school or whatever, or
you just never had come across this kind of thing. There's, there's this one problem that will all,
that will, that will hinder you throughout your career
where you want to build something and you think you've got it good enough,
but at some point you need, quote, realistic data, right?
And it becomes problematic about how do you get, quote, realistic data. And, you know, back in the day,
you know, pre-Edward Snowden, right? Like we just connect to the production database,
get what you need, you know, whatever. Right. But, you know, we live in a much more secure
world now. Right. So nobody, you know, wants any copies of that data around in places where it shouldn't be.
And there's all kinds of PII-type concerns.
There's even controls in place.
Companies have controls in place to make sure that data isn't copied around,
that people don't have data that they don't need, things of that nature.
And it's even further, right?
Now, like GDPR.
Yeah, so Europe has definitely stricter standards on it. But, um, you know, so, so, so my point with all that though, is that, you know, in the year 2024, it's now gotten much more complicated about, Hey, production has exactly
the data that I, I would love to have, like, you know, 10,000 rows of that would be amazing if I
could use for my development purposes or, you know, whatever number of rows you need in your traditional database.
But you always have this, this problem of like trying to convince your boss,
like, Hey, I promise it will be anonymized.
I won't get anything real. No, no PII will come in. I just, I,
we need to be able to, we need to,
we need a million of those rows
so that we can do some testing or whatever. Right. So, yeah. So that's where this is really
cool, right? You can dump that thing out anonymized and when you go to restore it somewhere, that's
what you'll get, right? Like it's not going to be anything good, anything that anybody in theory
should be able to reverse engineer or anything.
And that's, that's amazing stuff right there.
So I thought this was pretty cool.
I mean, I could, I could definitely think of reasons to do it.
They even brought up a use case that was, was similar to sort of masking or hashing the data somehow so that you can back it up in a, into a state that if somebody grabbed it,
they wouldn't be able to use it. Right. Or, or wouldn't have anything useful. And then that way
you're not storing the stuff sort of insecurely as a backup file. So this is, this is pretty neat
little utility. Uh, and, and to take what outlaw was saying, even a step further, right? Like if,
if you're ever having to do this thing where you need real data, right?
Like you've written this application, is it going to work with what we have in production?
You know, I want to test it.
We've even talked about generating fake data.
And the problem that you always have with that is you sort of generate pristine fake
data, right?
Because you know, you know what you're targeting, you know what you're trying to do. And so you don't see the problems until you get to production,
right? And that's, that's always a super big downside. And then that's just talking about
what's in the data. If you're doing something that might deal with security or shopping patterns or
things like that, you maybe want just different shapes of data
or trends of data that are hard to generate
without faking exactly what you want, right?
I was going to say, if you're trying to do anything around
any kind of data mining or exploration or like,
well, I guess mining would be the wrong word for it,
but exploration, like any kind of statistics that you want to look at it,
like generated data is going that you want to look at it like you know generated
data is going to be worthless to you yeah and completely useless so this is this sounds like
a really cool tool i will have a link in the show notes to this and again it's called green mask io
the postgres sql plugin all right go ahead no okay so this next one i don't know if we've even talked about
it on this show i know we've talked about our love of cotland and how it's very c-sharp-esque
and and jet brains really did a killer job with it well one of the things that i again i don't
know if we've talked about are called co-routines in Kotlin. Have we not talked about it on here?
I don't recall it.
If you don't recall it, then we haven't talked about it.
You'd have been like episode 103, about 20 minutes in.
I'm going to have like, people are going to have like the wrong idea of me.
Wait, you're the encyclopedia guy, right?
No, they really won't.
So, here's the cool thing about co-read co-routines is they allow you to do thread-like operations in kotlin without managing threads they're faster and they're easier to manage
so when you mentioned this the other day,
I thought for sure that you were talking about a flink flink functions and
that you just weren't calling it correct.
Oh really?
Yeah.
I like,
cause cause what,
what is it in flink?
It's like the,
the coprocessor,
the key coprocessor functions.
Yeah.
That's what I thought you were talking about. And I'm like, Oh, I think that's what he's talking about. He's just, you know,, the key coprocessor functions. Yeah. That's what I thought you
were talking about. And I'm like, Oh, I think that's what he's talking about. He's just,
you know, use the wrong term or something like, or maybe he didn't want to type all that. And
he's just like, you know, covert heat. No. So, so it's interesting you say that and that you
thought that that's what I was mixing it up with. So I'm actually using it in Flink on a rich async function. So here's, here's the story. Like when you create threads
in, in a Java application or probably just about any application, but Java, for sure,
you have a finite number of threads that you can use and creating threads are expensive and joining
threads back and getting rid of them is also expensive. They take up time, processing power, all that kind of stuff. Kotlin makes it a little bit better. So I think behind
the scenes, it's been a while since I've read the entire guide and all that kind of stuff,
but behind the scenes, they do leverage threads, but they're basically doing lightweight processes inside these things.
And so there's an example they actually give on one of their pages in their documentation
where they're like, here, we're going to show you just how fast and how much better these
co-routines work.
And they were doing something as simple as like spinning up like from zero to 10,000,
some number of processes. And they did one with threads and
then they did one with co-routines. The one with threads does a out of memory problem on most
systems. And the one in co-routines finishes in like no time flat. And it's because they're super
lightweight processes that they're managing behind the scenes for you. Now here's some, so I mentioned that I was using this with Flink.
So we've talked about Flink on here. We really need to do a deep dive on it. Heck, the three of
us bought a book that we could read, go into it. And we just haven't sat down and put the notes
together. Cause it's going to be pretty deep stuff. It's going to be like designing data
intensive. Oh, it's going to be so good. But it's like designing data intensive
applications. Like it's, it's going to be an effort. Anyways, the gist of it,
Flink apps are for streaming data, quote unquote, streaming data. And we're not talking about
streaming video. It's for fast incoming data, processing it quickly and passing along through a pipeline,
right? Well, there's an interesting thing that happens. If you think about every record that's
coming in into a processing thing, you know, assuming you have the data to enrich that,
right? Like let's, let's say that I get in outlaws email address and then I want to associate that with his name.
Right. Mike Outlaw, Michael Outlaw.
When it comes through, assuming I have that data, I can just join that, quote unquote, in the stream.
And then it comes out the other side with it in there.
Well, what if you need to look up information from some sort of API or a database that can be problematic because the
whole point of a streaming application is things need to happen super fast, right? Like you don't
want blocking processes. So imagine if you've got a thousand records a second coming in, which is
not a lot by flink standards, you have a thousand records coming in a second. If you have to do a
thousand lookups to get names, each one of those is going to take time. Let's say it's half a
second. So now you have a thousand times half a second. That's going to eat up a bunch. And now
you're backlogged right now. Everything's coming in, trickling in slowly. Well, I needed the ability
to do an API lookup for some things and I wanted it to happen asynchronously, right?
So if you're from the JavaScript world, then you're looking at like promises.
You know, if you're doing something in a thread in Java, you could do that.
So coroutines were a perfect fit because what you can do is you can basically define aroutine. I think scope is what they call it.
And essentially you can make that request. It'll happen in the background. So it unblocks that
main thread that it came in on. It runs that thing in the background. And when it's done with
the request, it'll basically call back to whatever it is that you wanted to do afterwards. And so in this flink process, Hey, I get a thousand records
and I make the async calls. It's not blocking anything. Everything can still flow. And as soon
as it gets the results and adds those things in, then it can pass it along. Right? So it doesn't
stop anything else from happening. So I ended up using it there. And what's really cool. I mean,
it's so deep. I mean,
I think I see you looking at it right now, outlaw. Yeah. I'm reading the documentation.
Yeah. So the guide, the guides decent, the basics will get you a lot further, but what is so cool
is they have like predefined scopes. Uh, the one that I ended up using was IO. I think it was an IO scope.
And it's made specifically for if you're doing something like reading from an API or reading
from a database or something like that. They have other ones that are like process scopes
that you're going to be doing some background processing on. So they've already got some
predefined things and you can actually define your own scopes. But what's really cool about the whole thing is you can go from a, a blocking scope. If you've
never, man, this is going to go a little bit deep and I know I'm talking a lot. Uh, if,
if you're doing something like a UI application and I'm not talking about web, I'm talking more
like desktop type applications, people that have done it a lot, they don't even think about it anymore. But let's say that you
decide to go write your own desktop application right now. One of the first things you're going
to run into if you have any amount of processing is you're going to realize that you're blocking
your UI thread, right? So the things that you have interacting with the UI, let's say that you,
you have something where somebody can enter something into the UI and then they hit this
process button and it takes 10 seconds for it to finish what it needs to do. If you're not running
that thing on a background thread, the Java way, then you're blocking that UI. It'll actually lock
up, you know, in windows when you see the little spini it'll actually lock up you know in windows when
you see the little spinny or on mac os where you get the the volleyball not the volleyball the
beach ball um that's what's happening right like that thing cannot do anything else these co-routines
allow you without creating threads to basically just send this thing off to another process that
it manages for you behind the scenes and it can return from it in a very simple way. It's almost like writing async methods
in C sharp or in JavaScript. So super duper powerful stuff, really fast, pretty easy to work
with. Okay. But answer this for me. All right. Every single example they give,
they do a delay statement first.
Okay.
And I want to be sure that that's just their lazy way of saying like,
hey, pretend we did something that actually took a while here.
That's exactly what it is.
So the delay is nothing more than an async thing.
So like they have this delay 1000 L here that's delay one second it's delaying a thousand we have been
clicking through like the examples on all the pages not just like a single page but all of the
pages and they're all doing a delay of some time in the in the amount of delay varies and i'm like
well that's lame how am i going to know how long it would take yeah it's complete garbage and that's actually so actually i found one where it says pretend we do something
useful here yeah by and large the kotlin documentation is pretty amazing i did find
this stuff lacking a little bit and it was it was a little hard to wrap your head around without
putting some code to to use to see how it worked because i ran into the same thing you did i was like delay delay delay delay i was like okay but what i don't
understand though is so you mentioned the the co-routines as um like for like io co-routine
or something like that kind of implying that like hey there's this like built-in you know grouping
of co-routines that you could do or something like, where's that? Where, what,
what am I missing in this documentation to get me here? I think it's on this page right here. I'm going to paste it into our show notes and we will have that in there as well.
I believe it's on here and it's called the context.
Co-routine context and dispatchers. Yeah. to say was it here maybe it's not here so
again with the delays yeah i saw this page yeah maybe ah doggone it again like their documentation
i don't think it's actually this page maybe it's channels i can can't remember now. Anyways, I'll have to find it and we'll get
it in the show notes for you. But yeah, so again, it's not necessarily that there's anything super
special about how they're doing it. They just sort of have some default ones for you to choose from
and you can build your own scopes and maybe they're called channels, um, to do this stuff.
I don't think it's a channel. No, it's not a channel.
Yeah. I'll have to find it, but yeah, super, super cool stuff and really powerful. But
while I say it's sort of simpler to deal with than threads on the flip side,
it can also get really deep. Like you can do, you can really get really get um covered up in the details here
i swear there was something that we talked about um in recent years around something was a lighter
weight thread and why it was faster and that's what this reminds me of and i can't remember for the life of
me what that was um oh oh um i don't it may not have been in context with this i i believe we
talked about what uh cloudflare did that was asynchronous workers that are yes yes that are not docker right
like they're not full-on that's what it was they were lightweight worker look who's got the good
memory how about that i i only remember that because i thought it was super cool at the time
and i just never you know jumped into Yeah. It was the workers versus threads.
That's what this reminds me of. Yeah, it is similar to that.
So yeah, this, this seriously is some cool and it's, it's deeper than, than a lot of other
things, but man, it's, it's a really powerful thing in kotlin that allows you to do some async programming
without a ton of mental overhead once you get some of it going did we let's say
is the cloud flare thing still a thing i just put a worker to it in the in the notes i wonder if
they're still pushing it uh if we I could have sworn we talked about that,
but maybe we didn't put it in the notes
because I don't see any reference to it.
Huh.
But yeah, it's still a thing.
That's cool.
All right.
Build serverless applications and deploy instantly across the globe.
Perceptional performance and reliability, blah, blah, blah.
Available on all phones but this makes it seem
I mean that makes it seem like
workers were their
word for
like serverless
and I could have sworn that
the conversation was something else but whatever
I can't remember it at the moment.
Yeah, I don't want to say it was like serverless.
I think it was their alternative to something like Docker, right?
To running full-blown containers.
Well, I'm reading the documentation for it.
For Cloudflare workers provide a serverless execution environment that allows you to create new applications
or augment existing ones without configuring or maintaining infrastructure. it is very fact that they say provides a serverless
execution even very much like lambdas and whatnot yeah because even the first like build serverless
applications and deploy blah blah blah blah and you're like okay this is serverless but i could
have sworn that there was another thing that was more targeted to threads and whatever but yeah oh well memory's
the first thing to go you know what that that brings up one thing and we're not going to go
into this too deep here because like i said we we really want to do some episodes on flink but
you know my my initial thought whenever we started looking at flink was why wouldn't we use something
like a serverless function right like if you're in gcp why wouldn't we use something like a serverless function, right? Like if you're in GCP,
why wouldn't you use cloud functions? Or if you're an AWS,
why wouldn't you use lambdas? And can you think of any reasons?
Well, but I think that I thought that the point of those,
those you're not supposed to like have any kind of external dependencies,
right? No state. And that's what I was going to say.
That's really what it boils down to. Flink is all about, you know, have any kind of external dependencies right no state and that's what i'm gonna say that's
really what it boils down to flink is all about you know state on the different uh task managers
yep because i mean the whole reason why you can kind of compare them is because you're gonna have
tons of message right like you're gonna have a message bus of some sort right whether it's a kafka topic or
a pub sub or something like that and all of those sort of operate on it right like serverless
functions typically operate on that flink does but the biggest difference is flink is all about
managing that state and making useful data available as it moves i mean flint kind of reminded me of how this is the way like okay this is i'm gonna
say something stupid prepare yourself here we go but like you know how things are deterministic
in kafka right like how something gets to a particular how a piece of data gets to a specific
broker right and into a specific topic partition, right?
So if you can conceptualize that now, imagine you're like, okay, well,
what if instead of just having a place where I store the data,
I also acted on the data. And, and that's how, like, in my mind,
I conceptualize how Flink can decide,
like how we can parallelize the work because it's kind of like
the same type of concept of like oh I'm going to deterministically decide you're going to go over
there to that that worker and instead of him just storing that data he's going to like act on it
right Kafka is your storage for that and Flink is is your, is your actor, but they're both doing the same kind of like things,
you know,
the same kind of partitioning of data.
Yeah.
I was going to refer to it as like a decision tree of like,
which one do you get to work on?
You know,
kind of thing,
but yeah.
Yeah.
It's,
it's all very cool.
I mean,
again,
we,
we want to do some episodes on it because it's,
it's pretty amazing type stuff
and that that ends that ends our uh new segment of michael says something dumb
no i don't want that though i was i was waiting for something really good
tough crowd all right so i i'm i'm done with people asking for one star reviews cause we actually got one. So,
so now,
you know,
we got it.
We did last episode.
Oh yeah.
Yeah.
Yeah.
So now in all seriousness,
right.
Yeah.
We,
we got it.
So in all seriousness,
we really do appreciate the people,
you know,
Ivan Kooch is writing us 20 reviews,
but if,
if you do like seriously, just want to, you know, reciprocatech is writing us 20 reviews, but if, if you do like seriously,
just want to,
you know,
reciprocate and send us a smile.
That is our review.
No,
is that not where you were going with that?
Did I get it wrong?
I think,
I think you said the stupid thing.
I think that's,
I think that's where you go.
That segment's done.
Oh man.
So yeah,
please.
We even have a link up there at coding blockscks.net slash review and i don't think
we have a link to spotify in there so if you're already on spotify you know feel free to do
something up there but yes thank you thank you for those that have taken the time and thank you
in advance for the future ones that we look forward to reading okay
so is it time for boomer hour not yet not yet oh we have we had a request
for some dad jokes okay hit me it's so i got this one from chat gpt i kind of cheated here
okay um so do you know why programmers prefer dark mode
um so they can't see the bugs. Not far off.
That's not bad.
Not a bad attempt because the light attracts the bugs.
Oh, okay.
Okay.
Not bad.
There's an optimistic and pessimistic view,
and I guess I was taking the pessimistic view.
Yeah.
It's still pretty good.
That was a good attempt there.
All right, so I do have a little bit for for
boomer hour or boomer minutes or whatever we want to call this section here um so this is
i just say that i don't like the fact that like us having boomer hour is plausible like
no no one yet no one yet in the listening audience has come to our defense and said, no, there's no way these guys could qualify for Boomer Hour.
That's not a thing.
I think enough people have been along for the ride for the past decade that they kind of know it could happen.
They're like, yeah, I've seen your picture.
Yeah, I know.
It counts.
Oh, man.
So, dude, this one actually really bugs me
so my mom was driving home from work the other day and she got rear-ended from some dude that
wasn't paying attention and you know hit her pretty hard in the back of her car and and i'm
looking at it and i'm like man that, that's by today's standards, right?
By today's standards, I'm like, that's easily four or $5,000 worth of damage, you know,
crack bumper.
You could tell that like some of the panels had shifted and all that.
Well, here's my frustration.
And this is, I don't know a good solution to it, but I just, I'm going to vent about
it for a second.
So comes out and the damage was greater than the value of her car, perfectly good running car that
she had no plans of replacing or anything. And it's totaled now. Right. And so the insurance
company was like, all right, well, we're going to give you a check for X amount, which is, you know, blue book plus some amount,
which by today's standards, again, I don't know if you've looked at the used car market or the
new car market, you can't buy anything that runs for anything less than about $10,000 without 150
or 180,000 miles on it and 15 years old or whatever. And, and I got really frustrated
because it's like, man, you take somebody that's just doing the right thing. They're driving.
They're not, they're not on their cell phones driving. They're, they're just driving. They get
rear ended. And all of a sudden now they got to come out of pocket thousands of dollars just to get back into a running car.
And it's like, I mean, I know, I know it's not the insurance company's fault.
I know that, that, you know, you can't necessarily adjust.
I mean, I won't throw out numbers here, but I remember outlaw when you were shopping for a car for your kid, right?
Like when, when he was getting his first car. And I remember you had a budget that budget wouldn't fly today, right? Like it wouldn't even be in the ballpark of flying today.
And I was super aggravated. Cause I'm like,
the argument that the insurance companies make are, well, that's the blue book value of your car.
And I'm like, okay, that's fair, right? Like, so you have a car, let's say that has 150,000
miles on it that you've maintained for 150,000 miles. So you know how it runs,
you know, that you've taken care of it. You go buy another car that has 150,000 miles on it.
Did they maintain it the same? Like that's not so. So my frustration is you can be doing everything
right. And all of a sudden you're on the hook for something that you should have never had to deal
with. And now you're out a lot of money for, it really bugs me. It like really, really frustrates
me. And I'm not one of those guys. It's like, Hey, you should sue or anything like that. But, but I looked at it and I'm like, man,
that,
that is really some garbage,
right?
So irritated.
So,
so,
um,
a couple of thoughts.
One,
I believe you also are a frequent reader of Jalopnik,
right?
I used to be,
I haven't read it in a while i'm assuming
i'm pronouncing that correctly jalopnik yeah yeah i always wonder every time i say it but i'm like
whatever so well i still it still shows up in my feed and there was a recent article and i'm going
to read you the headline are you ready for this i was probably gonna make me mad again. Fisker Ocean totaled over $910 door ding after insurer admits it can't find parts.
Are you serious?
Yes, I've done serious.
I was going to put the article in here and like it just like I kind of chuckled when I saw the headline.
But that can't be real.
And Nope, it's totally real.
They, they were like, no, we can't get it.
So we're just going to total it.
Hold up a second.
Did they give them back?
This will be interesting.
So for anybody that, man, this is, this is actually kind of cool.
I can't wait to hear your answer to this.
Cause I'm not going to read the article yet.
So Fisker, if you don't know F know fisker they made one of the coolest looking cars ever
made oh my god it was like the fisker karma seriously even to this day in my opinion is one
of the best looking cars ever made they had all kinds of problems with that company and they didn't
have the funding they still have all kinds of problems all kinds of problems well they went
bankrupt the first time and disappeared for they're on their way again yeah so they just came back and made this suv called
the fisker ocean that has been uh lukewarm reviewed by several in the industry and by all
accounts it's a decent looking ride however everybody that said that they got one is like
man this thing was not ready for prime time right like there was too many software bugs glitches it's a decent looking ride. However, everybody that said that they got one is like, man, this
thing was not ready for prime time, right? Like there was too many software bugs, glitches,
whatever. Well, these things are brand new. They haven't been out a year and the company's looking
like it's going bankrupt again. And so now you have a bunch of people that have these cars that
are worth half of what they paid for them just a few months ago. And they may not even have a support
for them here in the near future, depending on what happens with them.
So here's my question to you, knowing that these cars are now valued at half of what people were
paying for them brand new. If they totaled this thing, did they give them near the full retail
price of it? So I don't them near the full retail price of it?
So I don't know what the full retail price was on it,
but the article says that the insurance company cut her a check for 53,000.
No,
that's probably,
that might've been close,
but good Lord for a door ding.
Really?
Yep.
They, they,
the door was open and somebody hit the corner of it.
And so that, that was like, you know, part of the rub. And so, yeah.
Holy smokes, dude. Yeah. Yeah. That's the world we live in. So,
so that's one thought. But then, uh, another thought that I've,
I was that came to mind as you were telling the story about trying to like
find a car is, you know recently while getting my car washed and talking with some people around there
one of the guys that was there talking he was talking about like the luck that he's had
with going to auction sites like specifically tow auctions like where a car was towed and then and then after some
period of time no one ever came and reclaimed the car and you know so they eventually get auctioned
off after a period of time i can't imagine what the situation is where you would do that where
you like your car gets towed and you're like yeah i'm paying
the hundred bucks yeah it's not worth it but yeah so he in you know he was telling stories about
like some of the great deals that he got and i'm like huh my you know when the time comes i wonder
maybe i'll give that a look i don't know i mean seriously look dude it can't be it's got to be
better than just trying to go
find cars on the used market. I'll give you an example. Honda Civic, a Honda Civic, the base,
the base model that you can get right now, $24,000. An LX model has nothing just, you know,
it is, it is what it is. A 2016 Honda Civic with a hundred000 plus miles on it are going for like $18,000.
So a car that is eight years old with 100,000 miles on it has only gone down $6,000 because
of the craze that happened during COVID where used cars shot up.
And keep in mind, the prices have actually gone down, right?
Like there was a point where these
used cars cost more than the cars brand new on the lot because you couldn't get a car new off the lot
so you know it's gotten a little bit better but still again my frustration is why why do the
people who are just doing the right thing get punished right you know i mean i know of a couple people
that went ahead and just bought the new car because it was like so close in price to the
use they're like yeah why bother for sure i mean it's it's uh it's a frustrating situation oh yeah
so i mean you know you say that like i was having a conversation this weekend with a friend similar to that and um
and the case was i mean like my daily driver is decades old like if you got i love my car
i love my car it's if you saw if you saw it you you might be surprised if you if i told you how
old it is because i do try to you you know, do my part to keep it maintained
and everything.
And I think I've done, you know, a decent job of that over the, over the years.
Yeah.
And, but, you know, I still am very, very, very happy with it.
So I have no, no desire to, uh, to replace it.
But yeah, if I got, you know know it wouldn't take much i mean that fisker you know we we get a door
ding and we're totaled like it really wouldn't take much yeah and with the amount of people
driving around on their cell phones not paying attention to the road it's not it's not uh too
far to to stretch your imagination to think that it would happen at some point, even two miles from your house. Right? Like it's, it's absolutely ridiculous.
And so, yeah, I mean, how mad would you be with your, like when,
when outlaw says that he takes care of it, he really does.
The car is meticulous. It looks beautiful. If,
if somebody just ran into you, it wouldn't even take much.
If they cracked your bumper, that car would be done. And, and if you claim it, here's, here's the sad and the, the really irritating part about
the whole thing.
If you didn't claim it on insurance, you can keep driving around.
You can go to the paint shop and get them to fix your bumper and life would be good.
If you call up, uh, the, the cops and come out and file a, uh, an accident report. And then they actually do,
um, the insurance looks into it or whatever. And they put a quote on it and it's above
the value of your car. They will salvage it. And at that point you're done. Right. So it's, uh,
I don't know. I mean, you can drive a car on a salvage title. You can, you can, um, you can't
get a loan on them usually uh but if
your car is paid off it doesn't matter once once the car has has a salvage title period that salvage
title stays with it for life forever and then it greatly reduces the value of the car which
you know on on like your 2016 honda example maybe not as big a deal but if it's on like you know a classic car
yep you know from you know several many many more decades ago then you know that's that sort of
thing starts to matter more yeah so it's it's crazy man like so just you know that that was
part one of boomer hour and then part two and this actually isn't much of we're only a part two of boomer all right yeah this actually isn't much of running a part two of Boomer Hour.
All right.
Yeah.
This actually isn't much of a complaint,
but it was something.
Codingbox.v8.
Okay.
Right.
So this was interesting.
And I wanted to share this because we have these road caster pros that we
record on.
Right.
And,
and there are some crazy good features on it.
And one of the reasons why I went to it is because it has a noise gate built in.
Right. Like a lot of people that have podcast shops set up or whatever, you know, they'll have a separate noise gate that they control with, you know, all kinds of knobs and stuff.
And then they'll have their the recording thing and mic preamps and all that.
Well, this has it all built in. Well, the to get the noise gate to work properly, you actually have spent some
time and go through some steps and sort of understand your room and all this kind of stuff.
Well, I set mine up years ago and I mean, it's seriously been a couple of years and I'd found
a YouTube video where the guy described like every step of it. And I was like, Oh, that's really
cool. And I'd mentioned it to outlaw. And he, and recently, you know, some months ago, he's like, Hey, didn't you have some sort of reference
for that? I was like, yeah, Hey, let me go find it. And I was like, man, I don't know if I can.
He's like, well, go to your YouTube history and then just search for it. And I was like,
I'll be doggone. So I did it. And sure enough, it like it popped right up, right? Like there it was.
I was like, well, well, here it is, dude. dude that's pretty crazy and i guess i knew that it had a history but i didn't realize that it had like a
history that's where we're going with it well well the crazy part is like i i tell my kids all the
time and i know i'm aware of it like everything you do is building
up a digital footprint of you right and mine looks whack right like mine's crazy like for whatever
reason i look at all kinds of random stuff like i mean outlaw told us about the off-roading thing
that that he fell in love with the guy that would go uh get cars that got stuck off road and that
kind of stuff right i I don't know why,
but I started watching some people that were fixing scratches on cars recently.
I don't have a scratch on my car,
but it was just kind of interesting.
And I was like,
Oh,
that's cool.
And then somebody was doing dent pulling and then,
you know,
somebody was pouring,
uh,
you know,
whatever,
like it's just random crap everywhere.
And I was like,
dude,
what is my history? Like, what does my history
look like? And what does it even say about me that I've got like massive amounts of ADHD
and no focus? I don't know. Maybe your YouTube ads are telling you something,
dude. My YouTube ads are so random, but here was the interesting thing. If you go to youtube.com and you go to
your history, like over on the left-hand side, if you're on a browser, not, not on your phone,
that's going to be a different interface. But if you look at history on the left, you can actually
manage what shows up in your history. So over on the right, if you click that, there is a manage
all history option and you can actually turn things.
You can turn them off.
You can turn off the saving of it, which I don't think I want to do because I actually find it useful to go back and find things.
But you can also have it auto delete things.
So, you know, if you weren't aware of that, it's there.
It's pretty cool.
On iPhone, you can go to click on your profile and then then on your profile, you'll see your name or whatever,
if you want to switch accounts.
And then history and playlist.
And if you go view all on your history, there's the three dots,
which why couldn't they just do a normal ellipse?
But it's the three vertical dots, like a traffic light,
except all white dots.
All gray.
And then you have the manage all history option there.
Okay, cool.
Yeah, so if you weren't aware of that, you have options.
Again, mine's all kinds of crazy.
I watched a video of somebody trying to reduce the noise in their car
by ripping out all their interior and their and their upholstery and everything and putting down like sound dampening stuff and i was
like i mean i'm never gonna do that not much not much it was funny it reduced it like three
decibels which isn't a ton but yeah i mean i don't know why did i watch that i don't play it i'll do
it but it was just interesting
i'm with you like i love to watch that there's so many like car modification ones that i'll watch
that i'm like i'm never gonna buy that vehicle or do that to my car but i want to see how this
turns out exactly and especially when somebody takes a scientific approach to it, to where like this dude, man, I, he spent multiple days doing this, but like, he's like, all right, I'm going to take a baseline recording with a decibel meter going down the road with it.
He did that.
Then he ripped everything out of it, then drove down the road and basically just 10 can and took it.
And like every step of the way, he'd go and take another recording.
I was like no man
that's that is so much work there's a i don't know have you heard of uh dip your car no so there's
there's a youtube channel dip your car and he he's taken like i won't call it necessarily quite
scientific but definitely like side by sides like remember all the like vanta
blacks and and all that kind of stuff that would come out so i mean there have been there's a
variety of like the the blackest black paint that you could possibly that like has zero uh reflection
to it and he's done like comparisons of that and it's crazy if you ever see a car actually drive
down the road like honestly it has to be it i i don't it can't if it is legal i honestly don't
understand how it could be safe to own a car that is painted that color like one i think vantablack is like one of them but whatever like
the super dark shades that won't reflect any light because when you see it driving down the road
it literally just looks like it looks like you're looking at it looks like life has become
two-dimensional and you just you just cut out a portion of the picture that's what it that's the
only way to describe it yeah there's literally a void there you're like huh wasn't that weird
oh man but yeah he there was one i was looking at last night where he was comparing different
like mirror finish like chrome finish paints that shouldn't be legal yeah which one's supposed to be like the most you know mirror
like um yeah they're all they're all super cool there's crazy things you can do to your car so
now you know another cool channel yeah there's another channel that's gonna eat up my history
thanks yeah you're welcome all right okay so now back into i guess some some real things so
this i guess might sort of even be a tip of the week,
even though it's not.
So then it's not a tip of the week.
It's not.
It's sort of not a tip of the week.
Yeah, I didn't put it in the tip of the week
because I want to talk about it up here.
So it isn't a tip of the week.
This is just when you look or when you're working in a technology,
I think one of the most helpful things you can search for
are things you didn't know about blah. And so I was like, you know what? Kubernetes is so deep,
right? Like it is the deepest of waters. It's like, it's like when we've, we've talked about
in the past, like, you know, interview somebody, Hey, what would you rate yourself on a zero from, from zero to 10 on SQL server? And somebody says 10, I'm like, really?
Like, seriously? Like, if you tell me you're attending Kubernetes, I'm gonna be like,
really? So this one, I was like, Hey, I mean, dude, even though I feel like I'm functionally
capable in it, I know there's so much I don't
know. Yeah. Well, I found this article called a hundred things you didn't know about Kubernetes
part one. And the very first thing I was like, I didn't know this. Um, so they have set default
resources and limits with limit range. Never heard of it, but that's pretty cool. I don't even know exactly how it works.
They have defaults and default requests. So it's a little bit different than a regular limit,
but it's actually, it's a kind and it's a Kubernetes type type called limit range and so you can do things that way never seen it before
pretty cool um list all kubernetes object types cube cuddle api dash resources okay pretty neat
i mean i'm not going to go through all 100 but like just the first few i'm like oh i learned
something here like this is. This is pretty neat.
Well, I mean, I knew that some of those, like that limit range,
I didn't know that it was a limit range it was done,
but I knew that the concept of being able to specify defaults
for the requests and limits was a thing.
Because we use it in our daily.
We use it, yeah.
Behind the scenes, didn't know ever
i never knew how it was implemented right that's what i'm getting at yeah so yeah i mean there's
there's just all kinds of cool stuff in here so i guess you know check out this article it'll be in
the show notes but also if you think that you're a whiz at javascript or you're a whiz at JavaScript or you're a whiz at whatever, you know,
Google things I didn't know about JavaScript or things you didn't know about JavaScript.
And you'll be surprised the kind of the nuggets and gems that you'll find in
that kind of thing.
All right.
And the last times have we,
uh,
base 64 encoded and there's a modify secret.
Oh man.
Sorry.
You were saying that.
All right.
So the last one,
and I,
I didn't,
you'll have to forgive me if we've talked about this cause I can't remember.
I know we've talked about a eyes and IDEs like specifically,
I know Joe Zach was paying for Copilot and and we've talked
about the fact that we've used some of the the Google one that integrates with various IDEs
but here's my question I guess first have you used much of it and second do you feel like it
actually makes you more productive that built into the IDE either built in or some sort of integration like
technically like the google one duet or i think they renamed it recently i don't remember what
they renamed it but um it's sort of it's a plug-in to the ide more or less the only the only
integrated one that i've used is only just recently because I noticed that Google Chat has a summarization feature where it will just automatically summarize a conversation for you.
But otherwise, no, I haven't bothered with any of the integrated ones.
Okay.
And I've heard, I've seen demos of it.
I've heard people talk about it and
I'm just like, yeah, all right, cool. So I'll give, I'll give my impression then of, of my use
of them. And I'll also give some, you know, secondhand information from others that have
used them. So like I have a friend that that's used co-pilot
quite a bit and when he first started using he was like i was absolutely amazing i think even jay-z's
sort of in the same camp he'll have to chime in on it when he gets back next episode i'm right here
i'll talk about it right now here we go kick him in the shin um I'm pretty fast. But basically, when they first started using it, like everybody's like sort of in awe by it, right?
Because as you're coding a file specifically, if you're within a file, you start coding functions and things like the next one that you do, depending on how you name it, will actually try and fill it in for you, right?
Like it, it'll think that, hey, this, I believe this is the code
that you're trying to write just by the name, right? And as you start writing more, it'll even
suggest more code. And it does seem extremely helpful and productive at first. And it can save
you time depending on how complex or how simple it is. The thing that you're working on.
However,
I've heard from several people that,
you know,
I ended up turning it off because while I thought it was making more productive,
they ended up spending more time going back and refining and modifying and,
and,
and chipping away at things.
And you have to be very aware.
And it's almost like the best way I can describe it
is almost like going over somebody else's PR, right? You have to be so locked in to not miss
certain details or to catch all the finer details that, that it can actually cause you as much,
if not more mental overload than just writing the code yourself in some
situations. And I've even found that myself, like it's kind of amazing when it spits out a,
a 30 line function for you, but then you're going back through it with like a fine tooth comb and
be like, okay, did it, did it do really what I wanted it to do? So it's a catch 22. I think
it's somewhat makes you more productive. And on the flip side, it also takes away from your productivity.
I think until we can get to the point to where these eyes aren't like years
behind,
you know,
so,
so they are able to keep up with changes.
I just,
I,
I, it's not it's kind of akin to the file new experience right right right
and so i'm like you know that that's just how i i kind of treat it in the same kind of vein
like you know so in fairness it can help you but you know co-pilot's not years old, right? So it can actually be trained on your repos and your code.
So if you have a solution that's open, right?
Yeah, but the things that you care about are not necessarily just your code.
It's usually libraries that you're interacting with or frameworks or technologies that you're interacting with and those can iterate faster than that and keep up that ai model and that's what i'm referring to
yeah that's fair yeah it's it's interesting man like and i'm torn on it like i'm going to continue
using it and i have definitely found situations where it did like just amazing jobs at it sort of predicting
what it thought I wanted based off like what I named my function or whatever.
Right.
But there've been other times where it's like, man, that really would have messed me up here
if I hadn't caught, you know, this line.
And I don't know, it's getting, it's getting better, but I still don't think we've arrived
in.
And I've actually heard that from several other people. And I've even seen people post on X that same type thing,
where it's like, yeah, you know, I finally just turned it off.
I mean, I fully expect that it's going to get to the point where I will want to use it.
I just haven't seen anything that's gotten me too excited.
Yeah, I hear you.
For me, it's more of a curiosity type thing at this point
yeah i guess the difference is that you and jay-z have been curious enough to
like experiment with it and i'm like i'll wait yeah i'm like it's not there yet whatever you're
not wrong all right so now it's time for my favorite portion of the show oh it's the resources we
like section so we'll have plenty no well there's gonna be a lot of links in this episode
yeah we got a few links yeah there's gonna be some few i by the way uh going back to the the
blackest black paint car i put a link specific to that one oh nice yeah when you see the car
driving around you're like
your eyes your brain doesn't know how to interpret it because you're like
they just cut out the picture from from from reality that's weird uh that's awesome
all right it's the tip of the week. Got it.
He got it.
He beat me.
All right.
So the first one, and this is because I didn't have a good like coding tip this week, but an excellent resource is the Docker blog.
So if you've never been there, just docker.com slash blog.
And they've got all kinds of cool stuff.
Like their most recent article is creating
ai enhanced document management with the gen ai stack okay pretty cool the one after that i think
is actually really important for people to be aware of because they've just recently started
trying to clean up the docker repos out there because apparently there's all kinds of malicious
garbage which we've known for a long time that there probably was just, you know, nobody paying attention.
Um,
but Docker and J frog partnered a further secure Docker hub and remove
millions of imageless repos with malicious links.
So there's a lot of cool stuff in here.
You know,
go check that out.
That means they're going to remove all my repos.
You account for some of them do you all right so the next ones then these go back to my boomer hour thing i'm not going to revisit boomer hour but
i was doing a ton of of car research because you know now i needed to help my mom out
and there's a few sites that if you're not aware of them are really good. So true Delta is one of them.
They help rate cars by reliability and that kind of stuff.
Like you can go look and,
and it'll tell you how reliable a thing is.
And it's based off data that they've gotten over the years or whatever.
And that's pretty cool.
So car complaints.com is another one that I like a lot.
And this didn't come from necessarily researching for my mom for another car.
I found out about this site when I had a Dodge Ram or it wasn't a Dodge Ram.
It was a Ram 1500 that I loved.
And it started having this ticking sound, which anybody that's familiar with cars a
lot may know or have
heard of the Hemi tick, which will really tick you off when you find out about it, which is
basically the, the oil, uh, oh man, the oil pump doesn't shoot oil up onto the, the cam far enough.
And so it doesn't lubricate the lifters. And if you leave a, a Hemi engine idling for a long time, you know,
over years, it will, it will start getting what's called this Hemi tick. Well, at any rate,
if you go in here, you can click on Ram and you go to 1500 and I had a 2014 model and you can see
there, there's tons, tons of problems with it. And if you click on it, you'll see that there are
lots of, uh, engine problems and transmission problems. And if you click on it, you'll see that there are lots of engine problems and transmission problems.
And if you click on that, you'll see where people talk about, you know, ticking sounds and all this other kind of garbage.
So this is actually a really good site.
Not only do they get information from people that submit them, they're also getting data from the NHTSA, which is like a governmental national highway traffic safety
associate or traffic safety something. Yeah. So when they report this stuff, it goes into a
database and they pull that from there. So you could actually sort of see like what kind of
problems your models of cars and stuff have. Now, obviously the problem is if you're going to buy a
brand new car, there's not going to be any data out there. Right. But if you're looking for something that's two or three years old, you will start to see data out there and you make some decisions on that.
So administration, not association.
Very nice.
Which, by the way, like that's such a weird name for a government agency.
Like it it sounds grammatically wrong.
National Highway Traffic Safety Administration. I don don't know there's something about it it bugs me every time well it's too much it's too much
anyways there's a lot of syllables in there for sure all right so hey with the pump with the
ticking the hemi tick could you have upgraded the oil pump like had you known in advance
like let's say you bought let's say you put a brand
new engine in it would upgrading that oil pump then have solved that problem yes uh and so
side tangent here the the answer is yes like if you went bought a brand new ram which by the way
from what i understand when i was researching this this problem exists on on hemis between 2009 all the way up until i think now so let's say that you went out and bought
a ram and you got it today it had 50 000 miles on it you could go take it and put on a hellcat
oil pump and it has a higher output um oil flow on it and it will lubricate the lifters while it's sitting
still. It's totally fine. And you know, that would save your engine that that would actually
make your engine run forever with probably no issues. So yeah, you totally could.
So why is it only a problem while that, while you're sitting still then? Is it just because maybe it does pump the oil up high enough as you're moving because it's force?
Yes, when you're accelerating or you're holding down the gas, it's actually increasing the oil pressure,
which shoots the oil up high enough to lubricate the lifter.
Otherwise, it's just missing them, which basically dries them out, makes the brub. And then,
and then they miss fire on the pistons when they're going. At any rate, the whole thing
made me mad because basically they told me, Oh, well, the real solution here is you can either
have the top half of your engine rebuilt for like $6,500, or you can have your whole engine replaced
for like 11,000. I was like, no, dude, dude i don't think you understand i'm not doing either of those things because now i'm mad about it when do we start our um
our our car show uh podcast by the way dude i could totally i gotta find this for you though
there was um yeah okay i just found it i couldn't help but watch this video it was this is another
one of those YouTube rabbit holes.
Like YouTube definitely thinks like, yeah, I work on cars for a living, but I don't.
But it was what actually happens to your car when you overfill with motor oil.
Oh, that's a good one.
So they cut out a portion of the side of the motor and put a plexiglass cover over it.
And then built a new oil pan out of a plexiglass or some kind of transparency.
So you can see what's going on.
So that you can see what's happening.
And they're like, okay, let's see if we, you know, the here's the correct amount of oil and how's this working and you see everything
moving like this engine i don't know ironically did not have the problem of your hemi because
you could actually see the oil going all the way up to the top and everything and you could
because i cut it in half man yeah so yeah well no no it's a full-size motor it no no they they only cut out like one side of the
of one of the walls of the it's the bottom of the motor so that you could see the the cams moving
right right but um and he's like okay let's let's double the amount of oil in it okay let's triple
the amount of let's four times five times i mean they got it was a crazy amount
of oil that they ended up putting in that motor and things things remained fine for a longer than
you would expect amount of time it was shocking how long it it continued it like it was shocking
how long it continued to not be a problem and i I guess is where I'm going. I can't wait to watch
that. I know what I'm doing after the podcast episode tonight. Watching YouTube. Right. Yeah.
Lots of YouTube. All right. So the last one that is car related that I'll put up here is,
you know, a lot of people go to autotrader.com or cars.com or whatever. Well, there's a website
when I was actually shopping for a new vehicle for myself a year or two ago, it's called car edge.com. And the only reason I want to recommend this,
I found them on YouTube a long time ago, you know, randomly. And what they do, that's kind of nice
is they have a car search to where you can go look for cars. It'll tell you how many days the car's
been on the lot. It'll give you other additional meta information that you don't necessarily get on other websites.
And so it's really useful if you're going in and negotiating and all that kind of stuff.
Now, at the time that I did this, I think it was like a hundred bucks to buy a membership
for three months so that you could see even more data about this stuff. And I, and I did it at the
time because it was also right as we were coming out of, out of COVID and, you know, prices were still
crazy. And so it was a good way to find out, you know, Hey, how much does a dealer have on invoice
on something? And what, what do you, can you realistically hope to negotiate to and all that
kind of stuff? So at any rate, it's free. You don't have to pay the a hundred dollars and they still have a pretty decent little search and it's, it's a nice little
tool to use. All right. And then my last tip in this, this one was near and dear to my heart
because, um, doing, doing some work around my house, I needed some cut lists on some things. And if you've never
done any woodworking or you've never like done a deck or anything, which you'll realize real quick,
like outlaw and I both made desks at one point. Right. And one of the interesting things is,
you know, that you're going to have to cut certain rail sizes and, you know, desktop size and all
that kind of stuff. Well, you could just go out and buy every piece of wood, the length that you
need and, and you're fine. Right. But you're going to spend a lot of money and you're gonna spend a
lot of time trying to do it. Well, if you know the size of the wood that you need in certain spots,
right? Like you say, well, I need a four foot long thing that's three inches tall, right?
And I need four of those.
And then I need a desktop that's an eight foot
by three foot or something like that, right?
Like what this will allow you to do
is this will allow you to put in those things that you need
and then you can tell it what type of sheet lumber
or whatever that you're going to buy.
And it will actually make the cut list for
you on that lumber and tell you how many sheets you need. Right? So after you've put everything
in, it might be like, okay, well, you're going to need two, four by eight sheets. And here's what
you're going to cut out of each one of them. And so this website is called opti cutter.com. And
the reason I even found it is because when I was thinking about it, I was like, man, I don't want
to buy four sheets of plywood and then have to take two about it, I was like, man, I don't want to buy four sheets of plywood and have to take two back if I don't need them or whatever.
And I also don't want to just butcher the pieces of plywood not knowing exactly how to lay it out well.
And I didn't want to spend much time doing it.
So I was thinking about writing an application to do it.
Well, one exists.
And it's really cool so if you find yourself doing home projects or you like
doing woodworking or anything like that this is a free tool out there that you can use that is
super cool and it will even draw the pictures on the plywood of where you'd make your cuts
and how to do it that's cool would you say you were going to build again so actually i could
have used this for my desk well i didn't well i'm redoing my back deck
and so we were doing like a picture frame around it and all kinds of stuff and so it was like oh
man this is gonna get really complicated really fast so yeah it worked out perfect for it or i
think it did pretty cool pretty cool yep uh all right well it's time for my tips of the week there we go all right so
have you ever ran into this like docker chicken and egg problem where
let's say let's say that you, you have a,
first of all,
you need to put yourself in a situation to where you can only install from
trusted repos that are like within your company's control.
So you're not,
we're not talking about public stuff.
So don't even come at me with like,
Oh,
just do an app,
get update and then app,
get install. And you know, everything's cool, man. Or, you know, APK ad, no cash. God, life is easy,
man. What are you talking about? Don't even come at me with that. So, so in this scenario,
what I'm describing is this like chicken and egg problem where you want to use a trusted repo within your control
and you're trying to do something with Docker,
but you don't yet have the base image that you want to build on
doesn't have some things yet that will allow you to trust that repo.
Because for one, you're going to need the key from that repo, right?
And, you know, if you, you know, you shouldn't,
you're not supposed to use APK add anyways anymore.
But for example, like, you know, you would get errors about GNU PG
would need to be installed or, you know, GNU PG2 or whatever, right?
Like that would have to be installed or you know canoe pg2 or whatever right like that would have to be
installed before you could even use it but uh the way i solved this kind of chicken and egg problem
is there's two two little hacky ways that i thought like i'll just share and you know maybe
uh it'll someone will find meaningful maybe not but the that, well, you could do a multi-stage Docker file where in the first stage of the Docker file, maybe you're using another image that does have the tools that you need that you can then in your later in your subsequent stage do a copy from right yep yep so
so like you know if you needed like maybe you don't have curl or wget and you're like well i
can't even download the key but i have this other image that does have uh curl or wget so i could
use it to download the key and then do a copy from that first stage
and now my second stage has the key right um there's that way or you can copy the
the binaries directly right you could even do something like that um you you could but
then you get into like well you need to make sure that they're the same architecture and things like
that kind of issues right yeah so i didn't want to have to deal with that so i was just in my
specific example i was just like oh i'll just grab this ascii file and from this other one and copy
it over here okay yep yep but what i also found too was like, there are times where the key that you want, like you, you might be able to download the key, but all you have is to use a tool like gpg de-armor or whatever but you don't have
any of the new pg tools installed right so how can you do it right well you can manually de-armor
the key so basically like when you get that pgb pg pgp public key right you notice how like at the top
it'll have like a begin key block and then at the end it'll say end key block and then there'll be
like this gibberish block in the middle well that gibberish block in the middle is the is the meat
that's the thing you want so you know you could just you know echo that file out
grep out you know you know do a grep minus v for example to get rid of that uh public key block
at the top and bottom and then there's also going to be a checksum after that that center block
that you want to get but that that checksum is going to start with an equal sign,
so you could do another grep where, you know, grep minus v,
where you're just saying like, hey, where the beginning of the line starts
with equal signs, get rid of it, right?
The point is, is like, use whatever tool you want.
I don't care.
The point is, you get that center block,
and then you could say base64 decode that thing,
which maybe you're streaming it in from standard input by the time you get it to base64.
And now you can have a binary key that you manually de-armored
without any of the other tools installed.
Interesting.
As long as you know the steps or the algorithm to get there.
Yeah.
So I could have sworn that I had an article for this,
and I was trying to find it, and I couldn't.
And the best that I could find was a Stack Overflow answer
that is the opposite of what i'm trying to describe so instead it's like
hey how do i ascii armor my key without i create it pgp and without installing gpg so now you can
like you know reverse engineer and be like oh okay well if that's how you could you know ascii armor
it then de-armoring it would be the exact opposite right pretty cool um so yeah so so
i'll include that link in there but yeah it works it's so cool because then you know um yeah you you
you didn't have to you you solved your chicken and egg problem without having to uh now of course in
that example it did require that you were had curl or wget in order to
get the file but that's where you know again you could use a multi-stage docker file to where a
previous stage could download that ascii file for you and then you could de-armor it some other way
you know in another layer if you wanted to. Now, here's another, here's
another trick though. If, if you are not, okay. So in, in like a Debian or Ubuntu world where
you're going to add in these repos, right. You would want to say, you know like normally you'd say like deb and then the url
to the source and then you know like whatever the version and um repo that you want right so
like deb some url focal main or buster or bullseye main whatever you know
but if you're going to get if it's going to be from a trusted repo,
then you would want to put in brackets between Deb and the URL, you know,
square brackets signed by, and then your key. Right.
But if you did, if you weren't going to do that,
then your key name matters, right? And if you use curl or wget to download that key,
and now you're like, okay, let me do this manually de-armoring or whatever,
what do you say the key file name as so that it matches the server side?
Right? Riverside, right?
So I didn't know this, but I learned that both WGIT and curl have options for this.
So WGIT by the default, by the way, the default is if you were to say W, if you were to say like WGIT, uh, url.com slash path, then whatever the last path part is that's what it would name
the thing as right so that that's the default but with wget if you say dash dash content disposition
then it'll instruct wget to say hey let the server tell me what the file name should be.
And I will use that
because in the header response coming back from the server,
there will be a content disposition header
that is the file name equal blah.
Okay.
And so the server is telling you
like what the original name is.
I don't understand in my,
in my mind,
why that isn't the default operation for curl and W get agreed.
Yeah.
Why wouldn't it be for curl?
It's two switches that you have to use dash J capital J capital O,
where the J is for,
and you'll understand why it's a J remote header name.
It's so clear.
So clear.
And the capital O is for remote name,
but also so clear.
I know I can't make this up,
but,
but both of those will instruct curl to save the file as whatever the server name is, right?
So now, then after that, there's all kinds of cool gymnastics that you can do to get the last file.
You could do an ls-rt to reverse sort by time, pipe that to a head minus one or something like that,
you know, to get the last one or something, you know, whatever your mileage may vary.
You have other shell tricks that you could do.
But the point is you could get the, you know, you could,
you could script this thing out to where you never know what the file name is.
And using WGit or curl, you save it as whatever the matching file name is and then you uh you know
use that file name elsewhere yeah i think we talked about this for a minute when you were
going through it and i also didn't know that the names of those files had to match like i don't
remember ever running across that but you definitely had some problems yeah yeah it's fun fun times but yeah so that's how i
guess so cool all right i'll talk to you later man man okay i guess yeah see i broke you okay
there's gotta be something i still haven't got by the box
he said he said something like weeks ago i didn't go there okay uh yeah all right
bye