Coding Blocks - StackOverflow AI Disagreements, Kotlin Coroutines and More

Episode Date: May 13, 2024

Joe 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)
Starting point is 00:00:00 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
Starting point is 00:00:45 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.
Starting point is 00:01:22 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
Starting point is 00:02:05 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.
Starting point is 00:02:49 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
Starting point is 00:03:19 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
Starting point is 00:04:05 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.
Starting point is 00:04:49 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.
Starting point is 00:04:57 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.
Starting point is 00:05:07 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.
Starting point is 00:05:17 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
Starting point is 00:05:34 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.
Starting point is 00:06:04 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.
Starting point is 00:06:39 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
Starting point is 00:07:18 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
Starting point is 00:08:01 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,
Starting point is 00:08:49 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?
Starting point is 00:09:28 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,
Starting point is 00:09:52 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.
Starting point is 00:10:28 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?
Starting point is 00:11:15 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
Starting point is 00:11:56 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
Starting point is 00:12:45 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,
Starting point is 00:13:23 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,
Starting point is 00:14:06 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.
Starting point is 00:14:38 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.
Starting point is 00:15:01 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.
Starting point is 00:15:47 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.
Starting point is 00:16:28 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.
Starting point is 00:17:07 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.
Starting point is 00:17:17 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.
Starting point is 00:17:27 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
Starting point is 00:17:46 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
Starting point is 00:18:32 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,
Starting point is 00:19:06 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?
Starting point is 00:19:21 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.
Starting point is 00:20:09 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
Starting point is 00:20:45 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
Starting point is 00:21:27 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
Starting point is 00:22:13 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.
Starting point is 00:22:45 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
Starting point is 00:23:14 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
Starting point is 00:23:59 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,
Starting point is 00:24:20 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,
Starting point is 00:24:37 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.
Starting point is 00:25:14 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.
Starting point is 00:26:07 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
Starting point is 00:26:36 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,
Starting point is 00:27:28 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?
Starting point is 00:28:15 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,
Starting point is 00:29:04 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.
Starting point is 00:29:32 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.
Starting point is 00:30:17 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?
Starting point is 00:30:51 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
Starting point is 00:31:28 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?
Starting point is 00:32:03 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,
Starting point is 00:32:37 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,
Starting point is 00:32:47 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.
Starting point is 00:33:46 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.
Starting point is 00:34:30 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
Starting point is 00:35:13 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
Starting point is 00:36:00 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.
Starting point is 00:36:49 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.
Starting point is 00:37:30 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
Starting point is 00:38:22 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
Starting point is 00:39:06 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.
Starting point is 00:39:54 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
Starting point is 00:40:30 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.
Starting point is 00:41:21 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
Starting point is 00:42:13 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
Starting point is 00:43:20 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
Starting point is 00:44:07 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
Starting point is 00:44:26 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.
Starting point is 00:44:49 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
Starting point is 00:45:27 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,
Starting point is 00:46:02 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
Starting point is 00:46:48 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
Starting point is 00:47:27 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?
Starting point is 00:47:55 You know, kind of thing, but yeah. Yeah. It's, it's all very cool. I mean, again,
Starting point is 00:48:01 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,
Starting point is 00:48:27 we got it. We did last episode. Oh yeah. Yeah. Yeah. So now in all seriousness, right. Yeah.
Starting point is 00:48:35 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,
Starting point is 00:48:45 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,
Starting point is 00:48:54 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
Starting point is 00:49:06 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.
Starting point is 00:49:46 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.
Starting point is 00:50:00 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.
Starting point is 00:50:40 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,
Starting point is 00:51:10 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,
Starting point is 00:51:45 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.
Starting point is 00:52:44 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
Starting point is 00:53:27 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,
Starting point is 00:53:51 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
Starting point is 00:54:06 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.
Starting point is 00:54:48 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.
Starting point is 00:55:03 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
Starting point is 00:55:45 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?
Starting point is 00:56:28 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.
Starting point is 00:56:41 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
Starting point is 00:57:18 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
Starting point is 00:58:05 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
Starting point is 00:58:51 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
Starting point is 00:59:46 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
Starting point is 01:00:19 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.
Starting point is 01:00:55 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
Starting point is 01:01:37 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.
Starting point is 01:02:09 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,
Starting point is 01:02:21 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
Starting point is 01:03:01 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
Starting point is 01:03:52 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,
Starting point is 01:04:13 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.
Starting point is 01:04:21 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
Starting point is 01:04:56 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,
Starting point is 01:05:28 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.
Starting point is 01:05:49 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
Starting point is 01:06:25 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
Starting point is 01:07:14 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
Starting point is 01:08:14 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
Starting point is 01:09:01 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.
Starting point is 01:09:16 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
Starting point is 01:10:05 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.
Starting point is 01:11:07 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
Starting point is 01:11:30 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,
Starting point is 01:12:00 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,
Starting point is 01:12:14 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
Starting point is 01:13:01 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
Starting point is 01:13:46 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.
Starting point is 01:14:45 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.
Starting point is 01:15:03 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.
Starting point is 01:15:46 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
Starting point is 01:16:13 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.
Starting point is 01:17:10 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.
Starting point is 01:17:38 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
Starting point is 01:18:17 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.
Starting point is 01:18:47 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.
Starting point is 01:19:26 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
Starting point is 01:19:54 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.
Starting point is 01:20:24 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,
Starting point is 01:21:06 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
Starting point is 01:21:52 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
Starting point is 01:22:32 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
Starting point is 01:23:29 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
Starting point is 01:24:15 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.
Starting point is 01:24:59 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
Starting point is 01:25:48 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,
Starting point is 01:26:36 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
Starting point is 01:27:23 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,
Starting point is 01:28:19 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?
Starting point is 01:28:51 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
Starting point is 01:29:20 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
Starting point is 01:29:50 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,
Starting point is 01:30:46 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,
Starting point is 01:31:03 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?
Starting point is 01:31:47 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
Starting point is 01:32:49 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
Starting point is 01:33:36 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
Starting point is 01:35:03 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,
Starting point is 01:35:26 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.
Starting point is 01:35:56 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
Starting point is 01:36:46 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,
Starting point is 01:37:48 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.
Starting point is 01:38:40 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.
Starting point is 01:39:22 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,
Starting point is 01:39:43 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,
Starting point is 01:40:00 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
Starting point is 01:40:48 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

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.