Coding Blocks - ChatGPT and the Future of Everything

Episode Date: March 6, 2023

There’s this thing called ChatGPT you may have heard of. Is it the end for all software developers? Have we reached the epitome of mankind? Also, should you write your own or find a FOSS solution? T...hat and much more as Allen gets redemption, Joe has a beautiful monologue, and Outlaw debates a monitor that […]

Transcript
Discussion (0)
Starting point is 00:00:00 All right. Well, it's time to record. Everybody hit the record button, right? We're doing this. Episode 205. Did I tell you? Give me a second. Okay. All right. I'll wait. I don't know if it's on or off. I'm just going to hit it twice and see. That's the way to do it. I thought you should go for an odd number, right? Wouldn't that work out better? Okay, I'll do it again.
Starting point is 00:00:19 Yeah, do it three times. All right. Hitting it now. That's so awesome. All right, well, you know, this would just be Alan and I then. I think we lost Joe. So you're listening to Coding Blocks. You can subscribe to us. You can find it if you, in case somebody, like, passed you, you know, hey, go check this site out, you know, or, you know, share the link or whatever.
Starting point is 00:00:44 Subscribe to us on Spotify, iTunes, Stitcher, wherever you'd like to find your podcasts. You can visit us at codingblocks.net where you can find our show notes, examples, discussion. You can see rants or comments. Sometimes there's a contest there. So, you know, whatever. Yep. And you can always send your feedback, questions, and rants to our email at comments at codingblocks.net. And you can follow us on the Twitters at Coding Blocks.
Starting point is 00:01:11 Oh, man. He's doing it for real. He's doing it. At any rate, what Joe was trying to say was that for really if you had any rants,, hit them up at Joe on Slack. And if you're not already on our Slack channel, you can find some invites there at codingbox.net slash Slack, where you can complain to Joe about his audio problems tonight. Yeah, also, one more review is great. Yeah, I'm back.
Starting point is 00:01:42 I had to hit it again. I don't get it. Sometimes it's 17 times the charm. With that, I'm Joe Zeck. I had to hit it again. I don't get it. Sometimes it's 17 times the charm. With that, I'm Joe Zeck. I'm Mike Wattlaw. And I'm Alan Underwood. What are we talking about? Water. Cooling.
Starting point is 00:01:57 Yes, cooling water and anything that didn't require reading this evening, I believe. Busy schedules. Yeah, sometimes life just gets in the way, doesn't it? It really does. Or is it life just gets in the way, doesn't it? It really does. Or is it work that got in the way this time? I think everything. Do we consider coding box work or is coding box life?
Starting point is 00:02:15 Because if coding box is life, then work got in the way of coding boxes works in life, got in the way. Hmm. Interesting. Sometimes you just don't want to read. Yeah. I don't know what it is. You just don't want to.
Starting point is 00:02:24 Yeah. Okay. All right. Well, uh, we would like to, you know, give thanks to those that left us a review last time.
Starting point is 00:02:31 So, uh, we had a few come in from iTunes. Um, so from iTunes, thank you to Mal, the warlock. Uh,
Starting point is 00:02:45 I'm going to try this one. Abdullah. Nafis. Would you say that's pretty good? Alan, I'm going to trust you, but Joe's already saying yes, but I'm going to trust you better on that one.
Starting point is 00:02:57 Did you think I got that one? Right? You said Abdullah Nafis. Yeah. Yeah. I think that's pretty good. Okay. Thank you.
Starting point is 00:03:03 If we, if I got it wrong then blame alan please uh that's fine you can find him on slack at joe that's right and uh lastly uh barnabas thank you all for the reviews hey barnabas you know why that that got truncated oh did i not did i did i mess up no i don't think i got it right at any rate regardless thank you all i don't know if you guys had a chance to read those if uh you guys read those reviews but they were really good um i really did appreciate reading them so some good stories there excellent hey uh i'm gonna go game coming up helping out a little bit uh i've seen the t-shirts know what they're gonna look like they're super cool if
Starting point is 00:03:50 you come to the event and uh you uh sign up and uh come to the registration table in the morning you'll get a shirt and also free lunch uh it's a pretty great event um i think we're looking at like 50 60 speakers uh tons of sessions 10 tracks and it's all free in central florida so if you're in the area, go to orlandocodecamp.com and register because by the time this episode drops, it's right around the corner on Saturday, March 25th. What do I win for signing up? Sorry.
Starting point is 00:04:14 Oh, the prizes are great. You've been to a Code Camp before, right? There's all sorts of stuff. If you stay to the end, there's giveaways, bingo cards, probably get some AirPods, there'll probably be some drones around. There's usually really great prizes. You're saying a lot of probabilities. I asked, what do I win?
Starting point is 00:04:29 Not do I probably win. What do I win? T-shirt and lunch. And education. And education. Also, coffee and donuts in the morning. Yeah, donuts. You should have led with the donuts.
Starting point is 00:04:40 Right. Are you talking at this one, Jay-Z? No. You're helping. I'm just hanging out. I'm just there out i'm just there you know looking for shin kicks stress-free yeah well i don't know i'm helping out with the planning and stuff okay yeah that's not stress-free there's some stuff there's a lot of
Starting point is 00:04:55 stuff to do with conferences maybe one day we should do episode on uh planning conferences there really are a whole lot earth event planning yeah yeah so. Yeah. So anyway, what are we doing today? We're talking about a couple different topics. So we're just doing water cooler. We're just kind of talking about news and happenings around the world. And one thing that's been, I don't know, it feels almost like left out of left field in the last couple months to me. You know, it's been going on for a while. But, you know, if you asked me like two years ago if I saw this coming, I coming over just laughed in your face but uh chat gbt is kind of taking over the world the people
Starting point is 00:05:29 are using it in all sorts of different ways they're um you know and i say chat gbt but that's just one of many contenders and people doing cool stuff with the image generation with um audio with uh it's like there's been like kind of a ai slash machine learning like renaissance lately um all based around products kind of like this and chat gpt is kind of the poster child of that of this current generation so i thought it'd be kind of interesting to talk about um what your thoughts and kind of experiences have been with chat gpt either personally or people you know and what are your thoughts on it well for start you were saying like it not having how did you word it about like like the recent months or whatever about it coming up?
Starting point is 00:06:09 It only launched in November. So that's why it's just been like a recent explosion of. That's crazy. It exploded massively and not just in tech scenes. I mean, everywhere. Everyone's talking about it. Oh, I hear about it on podcasts of all varieties, right? Yeah, teachers.
Starting point is 00:06:29 Yeah, everyone. Yeah, I haven't used it. I wanted to. And then when it had me wanting to sign up at some point, I was like, man, I don't want to do this. And then I went back to it later to do it. And the sign-up form was broken. And I was like, all right, I give. Like, the world doesn't want me to use it.
Starting point is 00:06:46 But it sounds pretty sick, right? I've heard examples of so many different things that it does. So code is one, obviously. Somebody's like, hey, I want a script to do this. And it'll spit it out, and it's usually pretty good. I heard one where somebody was retiring from work and their boss was like, hey, I want a farewell letter to an employee
Starting point is 00:07:12 and then listed off that employee's traits. It wrote like this beautiful letter, like this goodbye letter for them. They're like, I only tweaked a few things and it was perfect, right? And it's like, holy smokes, man. Well, I think there's a lot of dirty use cases for it right so like uh in the not i'm not gonna throw anybody under the bus but let's just say like in the golden box slack community some unknown characters shared some stories about like uh one of one of the members
Starting point is 00:07:42 of the community mentioned that, you know, it was that time of year where you, you'd have to do like self reviews. So they had chat GPT, write the reviews for them. Oh, that's awesome. Another,
Starting point is 00:07:55 another, another someone from the community mentioned that they were using it to write back replies to HR requests for justify why you need this expense, things like that. That's beautiful. I had a buddy do what you call an introduction letter for a resume for a job they were applying to. It came out fantastic.
Starting point is 00:08:19 Really? So there's also been major concerns over kids or kids' students cheating, right? Like, hey, write me an essay. And it spits it out. Yep. Well, it has the bar exam, so it can practice law. It has the medical exam, so it can practice medicine. You know, it's funny.
Starting point is 00:08:42 It's not just the students cheating on uh on uh homework i've heard about teachers generating tests and say like give me uh 50 questions on the civil war for high school students i mean why wouldn't you right like yeah it almost seems counterproductive and in a waste of time if it can do that good of a job then why why would you right yeah i even know someone that used it as their secret santa they were like hey generate me out a secret santa gift who would do that i don't know like who would do that it's great it's cool that you like you can say things that uh just totally fantastical things that like don't even make sense like uh i'm to spider surfing on uh creativity waves
Starting point is 00:09:26 of uh science and like somehow it's going to do it and it's going to be weird it's probably going to be cool i i i was prodding you though jay-z you were supposed to like take that segue to like talk about yeah i did a secret using uh dolly 2 which which actually – so Chad GPT – so Dolly 2 is just for generating images. It's really great. It's got a great user interface. It's really cool. You can have it generate an image and you can kind of take it and refine it and kind of grow it in different ways and erase parts and have it redo it. Chad GPT has a lot of that built in, so you can kind of generate it too.
Starting point is 00:10:00 But Chad GPT also has this kind of like this notion of a session. I don't know how much of you all played around with it. But it's, you know, you search something in Google, like a recipe or whatever. One and done. You know, it's going to find you the recipe. Here's results for that query you typed. You just type in another query. There's no knowledge about what it searched before. Not so with ChatGPT.
Starting point is 00:10:20 It knows what you searched before, and so you can use it to refine. You can say, hey hey give me a recipe for uh chicken and ketchup and it'll come up with a recipe it'll just make one up and you can be like oh yeah but uh i don't have uh worcester sauce and it'll go and roll refine it from there you can see like hey add some cocoa puffs and it'll somehow figure out how to add some cocoa puffs in there but the point is that it's stateful and that's got some really interesting implications. And if I were Google on the search team, I'd be kind of scared in a way or I'd be trying to figure out how to kind of integrate
Starting point is 00:10:56 that sort of thing. So I think it's going to change how people interact with computers in an interesting way. You know, we were talking about the LastPass debacle that happened at the end of last year. And I don't know if you guys listened to the episodes of Security Now. But if you didn't, they were interesting. But Steve Gibson was going over some of the issues with the learnings as they would come out, you know, in real time. So it was spread across multiple episodes, you know, like new information would become available. But one of the, during one of the episodes though, they were talking about how you can in the developer tools,
Starting point is 00:11:34 uh, you know, like in Chrome developer tools, for example, there's some JavaScript that you can inject and you could actually see your vault, uh, data in, you know, from last pass after it's been decrypted on your client side, which is to be expected, right? Like your client side obviously knows it, right? So it makes sense that you could, you know, in the developer console do that, right? And during the course of the conversation, he had put out a request to the listeners, he was like, yeah, you know, what would be really great is that like, depending on what the item, when the item was last, when it was created, when it was last used, things like that in your vault, some of those things in your vault might be different than others in regards to, I forget the exact specifics, but let's, let's just,
Starting point is 00:12:23 I don't remember what it was specifically, but pretend that like if it was, you know, if each one had its own iteration count or, you know, they were encrypted differently or something like that. I don't remember exactly what it was, but, you know, there was some difference that they were looking for in thing. At any rate, so Steve gives them, put out this request to the listeners, like, you know, hey, I don't have the time to do it, but I would love if somebody would go through and, you know, write some utility that could tell us which of the things in your vault are most insecure compared to the other ones, right? Like which ones are the ones that you need to be concerned with the most. And so a lot of listeners had like immediately replied back
Starting point is 00:13:01 with all kinds of great, cool little solutions and everything. But he said the one that caught his attention as the most impressive one was a user submitted one in PowerShell and it was a UI version in PowerShell, which he was like, already that was kind of super cool that like from a PowerShell script, somebody wrote this very powerful UI from, you know UI as a command line thing, like here you do this and boom, right? But the beauty of it was the guy who wrote it, the listener who wrote it did not know PowerShell. He went to chat GPT and said, write me a PowerShell script that can interpret the LastPass vault JSON, and bloop, you know, got this UI.
Starting point is 00:13:49 And I don't remember, like, all the details of the conversation, but he said that, for the most part, what ChatGPT created was correct. There were some, like, little bits with the UI where, like, some elements were, like, overlapping. like overlapping you know like maybe a button was overlapping some bit of text or whatever or that that they were able to like manually clean up themselves and there were some little things with related to the schema of uh the last pass vault that you know chat gpt didn't know that part so they like tweaked that but they said for the most part what chat gpt generated was used as is and he said that was the most impressive part in his of all the submissions that he got for here's how to read the vault data that was his favorite one that's unreal
Starting point is 00:14:38 yeah actually i just pasted a um a sample in the window uh our chat, I asked ChatGPT how I could download a YouTube video with PowerShell. And it mentioned something we mentioned on the show, YouTube DL. And it wrote a little PowerShell script around it to download videos. And it actually mentions the copyright issues and like the legality.
Starting point is 00:14:58 So, you know, we talked about last time a little bit. And so just for fun, I was like, okay, well, how about something a little bit harder that I can't just use a package for? So just now i did uh can you and i said thank you can you write me a program in kotlin to download all the board game names from boardgamegeek.com with a two second delay per batch done and it's great it's does the sleep it's got comments in there and the the coolest part is uh at the end after the program it actually does a little thing saying uh hey this program starts by defining the base URL.
Starting point is 00:15:28 It kind of explains the code that it generated in addition to the actual code. That's so unreal. It's insane. The code that it generates, every time I've seen code that ChatGP generates, it definitely looks like college student or first year developer type of code where like there's a comment for every line because i'm like no senior developer is going to write a single comment let alone all of those yeah like like chad gpt write it as a senior developer would write it yeah there'd be no explanation like here it is hey i going to ask it to you as a senior. Yeah.
Starting point is 00:16:08 Write me some senior level code. I wonder if you'll get a bunch of factories and you know what it's going to be. If you ask for senior level code, it's going to be in a huge font because we're going to be like, Oh, you're old. So, so you have,
Starting point is 00:16:23 you have a question here. Is it the begin the beginning or the end? So I think that's a really interesting question. What did it do? Did it write better code? The code is shorter and it dropped the comments. Are you serious? I told you.
Starting point is 00:16:43 Oh God, I called it. Was it a bigger font it should have been it's actually got more functions too rather than two functions the first time it's got smaller functions i called it it's so crazy well to your question uh alan i i think it's neither like this is just a change right like this is we're going to find out that eventually this will be it's it's not like it's not like the end of a career it's just like wool or a career path or anything like that like it'll just be like another tool that we can use like one of the things that i heard um oh shoot where was it they were talking about it recently on some show i don't remember where what what show it was now it they were talking about it recently on some show i don't remember where
Starting point is 00:17:25 what what show it was now but they were talking about like the difference of uh of chat gpt for like lawyers right because like i mentioned it passing the bar exam and lawyers using is like it's not that it's the end of the legal field it'll just be like now lawyers who use chat GPT will continue on versus lawyers who don't will fade away kind of thing. Like that'll be the difference, right? Yeah, I sort of concur. I don't, I don't see doom and gloom in this. I see it as a fantastic way to bootstrap something like what Jay-Z just did, right? You know, write me something like this. I think it would be, I mean, maybe things get there at some point to where you have an internal application that has all kinds of things in it. And you're like,
Starting point is 00:18:14 Hey, write me a function for my application that does this. And it knows how to investigate the code and know your schemas and your databases and all that kind of stuff. It can do it, but that's a whole nother level of crazy at that point, right? Like, I don't know. I think it's a tool just like anything else. And it's one that could be super duper useful. Yeah, I think it opens doors. And those doors are going to let people who otherwise couldn't break in, get in.
Starting point is 00:18:40 And it's going to let people go further than they would be able to. So I definitely think as a developer, you should give it a shot and see what you can do with it. Because I think it's going to become another tool in our belt. And it's a great time. And there's a lot of interesting stuff and interesting projects that people are doing with it. And we'll talk about the API pricing here in a sec. It's basically the next evolution of like an IntelliSense or a file new experience. Like you do a file new, like for solution, for example,
Starting point is 00:19:06 like all the things that like a visual studio will stub out for you for whatever you're given application type is that you're trying to create. Right. Like how's this, how's this any different than that necessarily. Right. Agreed. It's just,
Starting point is 00:19:20 this is a little bit more dynamic in that now you can more freely talk to it as like how you want, what you want the output to be, you know, Star Trek is coming true. So, Hey, but this is where things get interesting because the next question that Jay-Z
Starting point is 00:19:36 has here is what's your work AI policy, like using these things, because I think you have to read some of the fine print about what it's doing. Cause we talked about this with stack overflow in the past, like you probably didn't know it, but on a lot of the stack overflow stuff, there's almost like a copy left type thing in place. If I remember right. If you have attribution and link back to the post. Yeah. Give attribution. And if you don't do that, then you're basically in violation of, of the terms of use and all that kind of stuff. So using this, you have to, you actually have to know what the, the legal ramifications are. If you're putting this in
Starting point is 00:20:16 your production code at a company that you work for, or even your own code that you're writing to, to write some application to put out there and you sell whatever. Right. So there are implications. Yeah. How do you know where the code that it just gave you, you know, came from?
Starting point is 00:20:31 And it could be like, we saw, we talked to this with a GitHub co-pilot. It could be word for word copying that from like a, you know, severely licensed product somewhere that you've never heard of and you don't know about. And you just happened to drop it in there word for word.
Starting point is 00:20:44 And now you're in violation of license and you didn't know it. and you just happen to drop it in there word for word, and now you're in violation of the license and you didn't know it. And so if your company doesn't have a policy on it now, it may be something that we see coming soon. I know a lot of big companies already have no AI policies, and I think we're going to see more of that. And maybe we'll see some other things coming out that we haven't predicted yet. That would be interesting. So I'm curious to know if you're out there, drop a comment,
Starting point is 00:21:04 if there have been any sort of restrictions or talks at your workplace about what you can and can't do with ai i mean when there was a you know this is now a three month old thing on reddit but it was talking about chat gpt when you asked it to it output gpl licensed code without its license and it was a one-for-one copy of Quake 3 Arena's code. And that's straight up in violation, right? If you don't have that GPL license with it, that's already a violation. And then if you copy it, then you're technically in copy left land,
Starting point is 00:21:36 meaning you have to open source your code. I mean, so the question is more like, let's not even refer to it as like a licensing kind of thing or like a GPO kind of thing. If you just think of it in terms of plagiarism, because like going back to the legal thing or, you know, because maybe you're like doing contracts or whatever, like, you know, or the school or the students homework or whatnot, you know, I, then it's like, well, okay, we're really like, how, how, how do we have to like rethink plagiarism then? Like if you get a robot to do this thing, but its input was the internet and it was like, it was available on the internet. Like the,
Starting point is 00:22:19 those are questions for other people that will figure out, you know, I'm, I'm definitely not going to be the guy to solve that, but. Totally. But you know, what else is interesting about this? And we're not going to go into the political side of it, but there have been tests where they've seen that there's definitely bias. Right. So I think I think one of the examples was somebody asked ChatGPT, you know, what are the good things that Biden's done? And it spit out a list. Right. And then somebody else had asked, know, what are the good things that Biden's done? And it spit out a list, right? And then somebody else had asked, Hey, what are the good things that Trump had done? And it said, Hey, I'm not going to answer that because it's controversial. And so, and so it's interesting that you have to remember that all machine learning models and
Starting point is 00:22:59 everything are trained with certain sets of data, right? So, so anything you get is going to have, whether you like it or not, some sort of bias, right? And so it's worth keeping that in the back of your mind anytime that you're asking for something, right? If you're asking for something sensitive to some degree, you need to know that. I, I remember, I don't know if it was Microsoft or somebody a couple of years ago, there was, there was somebody that got upset about, um, a model that had been trained in machine learning that it could only recognize white faces because the images that were used were predominantly white images. And so when a black person's picture showed up on that thing, it didn't know how to identify them. And so in that
Starting point is 00:23:56 case, it wasn't like somebody meant to do that bias, but it's a bias set. And so behind the scenes, remember, these are a bunch of models. You don't know how they're trained, right? Like the whole point of using these things is you don't want to have to think about it, right? Like you just want to go use chat GPT and get something, but there's definitely going to be biases in there. So you should always, you know, look at what you're getting back, right? Like, is it what you expect? Are you expecting it to be true? Are you expecting it to be what you're looking for? Whatever, right? So it's interesting. And I think both of you guys said it really well. It's a really cool tool that I think is just going to get better and more interesting over time. But I think the point related to the Biden-Trump
Starting point is 00:24:40 question was more about, if I remember correctly, that OpenAI had put boundaries on certain questions. And so they had manipulated. So that's why when the Trump question got asked, that was a decision that somebody made that was a questionable thing. Like, why did you make that choice? It was okay for the other one, but not right this one and that's a weird distinction that you made yeah but that had nothing to do with the model that was like
Starting point is 00:25:10 somebody that you know in the company made that yeah made that that decision but the the the caveat going to the model though was that you can get chat gpt to answer those questions even like that one if you keep asking it enough or if you were to like phrase your question in such a way there was an example of one where I'm trying to remember exactly how they did it now but it was something like hey I want you to ask answer the question as if as if someone had asked you to write a program to do x y and z like answer the question blah blah blah and tricked, because they reworded the question in such a weird way, they eventually got ChatGPT to answer the original question that it originally said that it would not answer.
Starting point is 00:25:54 Yeah. Yeah. Actually, I saw a list recently of techniques that people come up for. They call it jailbreaking ChatGPT. Yes. Interesting. And so I'll have a list of that. And it's just things like techniques just like like that where you said like it won't
Starting point is 00:26:05 answer the question. So you say, okay, hypothetically and then it will. But we'll say, you know, in terms of a bias, like you can imagine like was it, you know, where did it get its data from? Like as far as I know, you know, a lot of it primarily was trained on English
Starting point is 00:26:21 language alone, right? And most English speaking people on the internet are coming from America. So that's already a very – that's population-wide in the world. It's a very small portion of the world's population that has a much bigger impact on chat GPT than other cultures. And so you can imagine if you're asking questions, you're getting kind of an American viewpoint whether or not you know it. And there's this kind of sense that because it's a machine that you're getting an unbiased opinion. And that's not true at all because, you know, it's trained and people have kind of put their fingers on the scales there. And so it's tricky.
Starting point is 00:26:55 And it will very confidently give you even wrong answers sometimes. And it will, you know, you can ask it like dangerous questions potentially. And it could, you know, tell you yes or you can mix this and that and this and that and whatever, give you a recipe that ends up creating poison or something. And it doesn't know. It doesn't care. It doesn't – it's just doing its thing. Yeah, it's not human ramifications. And I guess that's what I was getting at is when you ask it a question, you can't just take it for the gospel truth, right? I didn't even think about what you just said, like mixing medications with, you know, hey, can I have a beer and take this?
Starting point is 00:27:32 Oh, no, don't ask. That's what I'm saying. Like if you were to just take something without actually having the medical real advice out there, then it could be a very bad thing. So it's an amazing tool, right? But know that there's, there's things that go in behind the scenes that you just don't know what it is, right? You don't know what the ingredients are that are going in there. So that's the real takeaway is the ingredients that are going into the, to the model. I mean, and that's the hard thing too. Like even to your, your bias, you know, conversation about like, you know's the hard thing, too. Like, even to your biased conversation about, like, you know, the either the types of data sets or like Joe mentioned the reference of like, you know, if it's like, I mean, we've already seen this like rise
Starting point is 00:28:26 in the importance of like data science and data exploration, right? Like that's why those careers are paid extremely well. Right. And I don't think that we're, we're not near the end of that. No. You know, we're not, we're not going to see that decline yet. Uh, you know, it's not like the Flash developer pour one out for them.
Starting point is 00:28:51 It's the rise of cloud computing that's enabled all this. If we're being completely realistic, the fact that you can do things so cheaply, which I think we're about to bridge this conversation here in a second, you couldn't have done that on a four 86 back in the day, right? You couldn't do it on your, you know, you couldn't do it on your,
Starting point is 00:29:10 on your rising nine with, you know, a gig of course, or whatever, like you couldn't have bootstrapped this company in your garage the way like Bill Gates did, or, you know,
Starting point is 00:29:21 like whatever companies did back in the day with like a single personal computer. My three 86 was rocking, man. Rocking. 486 DX2. I was going to say one more thing before we talk about pricing, which is people already speculate that most of the content on the internet is written by bots already. Just stuff like regurgitating, reposting, fake reviews, fake tweets, blog posts, whatever. What happens when these things start feeding themselves?
Starting point is 00:29:46 Oh, my God. So, Ted Gpt starts taking in his own, you know, things that's generated, not knowing it, and starts using that for new input data. So, it's kind of like you have to make a decision. Do we just say, like, 2022 is the last year that we take in training data, and that we're just going to put a pin on training new data? Or do we open up the possibility of training ais on ai generated data that's really interesting man that's actually a really really cool takeaway from that and one of
Starting point is 00:30:13 outlaw's favorite statements that you say is you know you have to eat your own dog food do you really want ai eating its own dog food i don't know yeah it's not believing itself yeah i think i would assume though that you're going to end up with like models that are they're i mean obviously they're gonna be garbage i don't know you can't know yeah i don't know i mean it's a super interesting thought but it's kind of of like, like honestly, if you think about it though, like the three of us experienced that exact same kind of problem though, where like, you know,
Starting point is 00:30:50 we had a system that would generate, uh, data for demo purposes, but you know, you couldn't use that same data to like create a model off of it because it was like, well, then you're going gonna get extremely predictable
Starting point is 00:31:06 results that are gonna like you know it's always gonna produce the exact same curve every time when you look at it so you can't you can't you can't use that like so i don't know yeah how do you get the random whack um crazy stuff that you experience in a real production environment go wait i want that you know where where i thought you. You go, wait, I want that. Where I thought you might be going with this though, Jay-Z, because I had this thought earlier in the week, was that I think now, if it hasn't already happened,
Starting point is 00:31:43 then A, I would be shocked if this hasn't already been happening. It has to have already been happening since ChatGPT came out. But I think the quality of phishing emails and scam emails, I think the quality of those are going to become extremely high, high, high quality to where you're not really going to be able to tell that like, that's not like the, the importance of hovering over a link and checking the sender and things like that. And like, is it signed? Like those types of things are going to become so much more critical because you know, it's not going to just be emails about like, you know, Hey, I'm a prince from this other place and I'm going to send you $5 million. Like from the body of the text alone, it's, I think I say, I expect
Starting point is 00:32:31 that it won't become obvious that from the body of the text alone, that it's not, um, I think it's going to become, you know, you're not going to tell the difference between it and it, you know, a phishing email and one that came from somebody that you work with. Yeah. You know, I said, um, that was the last,
Starting point is 00:32:49 uh, tangent, but like we're less story related to this, but I got one more, I got to say, which is like your question of like, when are humans going to start abusing this? Uh,
Starting point is 00:32:58 Clark's world, a famous sci-fi magazine has been around for years that would take in user submissions and republish, you know, a selection of them. They'd have real people read those stories and decide which ones to publish. And that's just something for years that would take user submissions and publish a selection of them. They'd have real people read those stories and decide which ones to publish. That's something that all magazines
Starting point is 00:33:09 or a lot of magazines and newspapers and websites have done. You can submit articles or whatever in the pay form. Well, Clark's World and others now have started shutting down their submission process because scam influencers have gone on YouTube and Instagram
Starting point is 00:33:25 and whatever and said, hey, here's a great way to make money with Chatsheep.t. Have it generate stories for you submitted to these magazines. And if you generate 3,000 stories in a day and send them all out, even if 1% of them get accepted by these magazines, you're going to make some real money. People started doing that. These magazines, these publications started getting flooded with all this stuff. Some of it was pretty good. Some of it was real humans. Most of it was garbage that people were just trying to get some money with. And so they had to shut these websites and these publications and these submission forms down
Starting point is 00:33:59 because they couldn't handle all the traffic. And that stinks. Didn't the same kind of thing happen to like a dev two or medium or something? Am I remembering that wrong? Like it might not be one of those exactly, but I thought there was a similar thing that happened to, to like not a, not a print publication,
Starting point is 00:34:15 but a, but a, a slight, was it stack? No, stack overflow wasn't the one I was thinking of. Well, they no longer accept chat GPT answers.
Starting point is 00:34:24 Oh, wow. Yeah. Stack Overflow wasn't the one I was thinking of. Well, they no longer accept chat GPT answers. Oh, wow. How do they tell that the answer came from chat GPT? I don't know. I'm looking it up. That's really interesting. Probably where the, no? Chat GPT could return it back to your app and your app could post it.
Starting point is 00:34:42 Because chat GPT got the answer from Stack Overflow. Yeah. ChatGPT. So, Stack Overflow banned ChatGPT in December, which was a month after it came out. Right. So, that's how quickly people were already, like, turning towards, you know, abusing this stuff. They said a lot of the answers they were giving were just flat out wrong. But, yeah, how do they detect that or not i did hear that one story about the student who wrote that like uh some sort of anti-chat gbt app that could like detect chat gbt but you can imagine like you know there's going to be an arms war there i was like ai's
Starting point is 00:35:15 gonna get better they're gonna get better detections we're gonna get better it's like video game um hack cheating like that's if you've ever listened to dark net diaries which i think outlaw was the one who turned us on to that way way way back in the day but like i didn't realize how big of an industry that was people that make hacks for video games that then quickly get patched by the developers and then get hacked again and patched that and and people sell these hacks for hundreds of dollars on this black market or whatever. And that's kind of what you're talking about, right? It will constantly be a back and forth. They'll find a way around it.
Starting point is 00:35:51 It's almost like marketing. You guys remember all the stuff that browsers try to do now to block marketing garbage that's tracking you? Those people have a lot of money and a lot of desire to make sure that they can track you. So they come up with new ways to get around things, right? Like it's just going to be a back and forth forever. That's crazy.
Starting point is 00:36:12 All right. So finally we'll move on to like the third point in our notes here, which is that, um, part of the reason they're kind of come bring this up today is that open AI, AI, which is the company behind chat GPT and Dolly and a few other things
Starting point is 00:36:24 whisper, which is a text behind ChatGPT and Dolly and a few other things, Whisper, which is text-to-speech, they just announced a whopping 90% price reduction on their API calls. And this has been interesting. So a lot of these tech companies like Uber, Facebook, Amazon, whatever, they run at a net negative profit for years and years and years. They just burn money in the hopes that they're going to scale quickly enough in order to make that up at some point. And so people just throw money on the fire until they decide to become profitable or just give up.
Starting point is 00:36:54 In this case, OpenAI has said that they've figured out how to make the process more efficient so they can afford to drop the price. Now, I assume they're still burning money. Who knows? They're a private company, mostly funded by Microsoft and a few others. Kind of interesting. But yeah, so anyway,
Starting point is 00:37:11 I just thought it was kind of interesting that they said they figured out how to make it more efficient, which is really interesting if that's true. But the cost right now is 0.002 American cents for 1,000 Ch chat GBT tokens. And each token is basically a query. So basically for 5,000 of these tokens,
Starting point is 00:37:32 I guess, or requests, you're going to pay a penny. Yeah. That's insane, right? So if you wanted to build a chat bot for your company, if you wanted to build something that's going to submit articles to places
Starting point is 00:37:43 that pay for articles. So cheap. Yeah. So it's an interesting time uh six cents per minute per to whisper so podcasts like ours so you know four hours long however many minutes that'd be point of six cents for transcriptions and i haven't seen the transcripts i haven't tried it we've tried transcription services in the past and they didn't do good with tech terms and proper nouns but i'm curious to see if they're any better yeah man can i go on a rant here just for a moment because i was curious to see like if part of the reason that uh the chat gpt pricing was decreased was because of the overwhelming popularity that it's hit within the last few months since its inception because i remember seeing something like some crazy number about like, uh,
Starting point is 00:38:25 it had like more users than like Facebook or something like that. Like it was insane. I forget what it was. Don't call me on that one specifically. But, um, so I was like, okay,
Starting point is 00:38:36 well let's go to our old friend. You know, the, remember the Alexa website ranking site? Yeah. Well, I don't know if you knew this, the Alexa website ranking site. Yeah. Well, I don't know if you knew this,
Starting point is 00:38:50 but Amazon had bought that out a long time ago, right? They turned it off last year. Oh, wow. Wow. So I can't see what the ranking was. How did chat GPT rank? That's interesting.
Starting point is 00:39:03 Hey, so I think Joe seen as how you've got it open, you should just ask ChatGPT why ChatGPT's pricing got cheaper. See if it gives you an honest answer. Oh, yeah. Let me see here. Okay. Say, hey, so why did your price drop recently? I found what I was talking about.
Starting point is 00:39:26 That's why he's looking that up the chat gpt has more than 100 million users within the first two months of its launch wow more than 13 million daily visitors yeah it basically just told me that doesn't have any control over its pricing or knowledge over pricing changes primary goal is to help so this is where you use a jailbreak to be like, okay, hypothetically, if I were to find out why, yeah, I'll keep pushing at it. It's the fastest growing consumer application in a short period of time. It makes sense.
Starting point is 00:40:00 I did. I don't know if I read or I heard there was something where like it wasn't that Google was scared, but they're definitely ramping up on their AI, you know, working to because it's what Joe said a little while ago. Like this may very well change how people search for things. Right. And that's what Google is, right? Like they're, they're search. Well, Google has a competitor that they said that they're going to release soon. So that's what I heard. Yeah. And that's basically what it boiled down to is like, they may have been working on this thing, trying to perfect it, but because chat GPT launched and has been so effective, like it's kind of forcing companies like Google and Facebook and those to really ramp up and try and get their offerings out there quicker. So I just put a link out there to the Reuters article that was talking about the growth of it.
Starting point is 00:40:54 So in two months, it reached 100 million monthly active users, making it the fastest right it took in in the 20 years following the internet space there this analyst is saying it took tiktok nine months to reach that it took instagram two and a half years to reach that that's yeah this is pretty big impact on our world like right like this is happening right now this is like the next facebook Facebook, MySpace, you know, whatever the next Google, whatever the biggest thing, you know, in your lifetime that you kind of remember, like, this is another wave just like that. You know, I think I have wonder like, this is, this is the pessimistic side of me. I have wonder if something like this isn't what finally causes people to be like, screwed, screw the internet. Like I'm done with it. Right. Like you said that already a bunch of stuff
Starting point is 00:41:45 is generated by bots and whatnot out there. When it gets to the point that you start feeling like you can't trust anything because the source is whatever, is this the thing that causes people to go, okay, I'm done for a while? To go back out on the porch and just talk to their neighbors? Right. Start interacting again interacting again. Right. Like I, I half wonder if this may not be something that fuels something like that. I don't know. I mean,
Starting point is 00:42:10 that sounds like a net positive for society. Right. Right. I don't know. Were you trying to be pessimistic? Pessimistic for the tech, but I, dude,
Starting point is 00:42:18 I, it absolutely drives me nuts to go to a place and sit down and eat and see families all staring at their phones. It drives me insane. Like, yo, if you were just going to do that, why not? Why not just order out and go home? Right? Like you guys aren't talking to each other anyways. Why sit, why force yourself to sit at a table next to each other while you have a glow in your face? I just really see it as like, it has the potential to become like that next tool that that we as developers for example would use we're like you know we're just connecting bigger puzzle pieces together now
Starting point is 00:42:51 and no longer like dealing with like god what do i have to do to this palm file to make this thing work you know right hey chad gpt fix my palm file exactly but i mean seriously like think about like all the dumb little things like that that you struggle on that have nothing to do with even the problem that you're trying to solve. Right. So like it's going to free from like a cognitive kind of like mental load, like freeing of of what's going on in our heads. Right. Like we don't have to worry about. I mean, think about how like software development has evolved over the years, right? Like, and what a big deal it was when languages like Java and C
Starting point is 00:43:30 sharp hit the market. It was like, Hey, guess what? There's now these great languages out there where they're like, quote, memory safe. Like you don't have to worry about the memory management. It's being done for you. Right. And like, you know, C developers were like, well, you ain't taking C out of my cold dead hands. Right. And I, you know, you're like, whatever, you know, C developers are like, well, you ain't taking C out of my cold, dead hands. Right. And, you know, you're like, whatever, you know, but hey, if you want to use these other languages, they're there. Right. And that's where I feel like chat GPT is like that. You know, it's going to be like the next thing where it's like, hey, I don't have to worry about the minutia of these little things. I can focus on the bigger problem that I'm trying to solve.
Starting point is 00:44:03 And that's what I think is exciting. Agreed. Some people are going to figure out how to use it really well. By the way, when I asked it to speculate, it actually did nothing too interesting there, but it's like, you know,
Starting point is 00:44:14 I can't talk about it, but one possible explanation would be that figure out and make it more efficient or people dump more money and they figure out how to subsidize it. And so we can make it more cheap for more people, but I'm just guessing. That's awesome so i i have to first i have to share a little behind the scenes stuff here so we are i don't remember when we hit record but i think it was like four minutes in so we're 45 minutes into the show and just just for some stats because i think you guys like stats right like everybody likes everybody likes stats. I know Outlaw likes stats.
Starting point is 00:44:45 That was seven bullet points that we just talked about for 45 minutes. This is on par with like any book we would discuss. I don't know what. I thought it was absolutely fantastic. I mean, this is actually a really cool topic. But that was funny. I'm going to change the name of the show to coding big blocks because I had another thought and I completely lost it. Um, so whatever, we'll move on from
Starting point is 00:45:12 that one. Um, all right, so cool. So I've got, I've got what should not be a controversial topic at all, but I'm sure it will be for many, many, many, many people who hear this next thing. Hit me. All right. So, many, many, many people who hear this next thing. Hit me. All right. So somebody comes to you and they say, yo, we need to get some logging in our application, right? What do you do? Do you write your own logging implementation? No. Or do you go find one out there that already does it?
Starting point is 00:45:45 But hold on, hold on. You say no, you say no. But I mean, all it's doing is writing out some stuff, right? I mean, the Linux Foundation, like you're picking on logging as an example, and the Linux Foundation would explicitly state like that one as an example of like, you know, if you're trying to write secure code, you want to use trusted packages that are widely used and available that have been, you know, uh, scrutinized and,
Starting point is 00:46:12 and whatnot that are being maintained. Don't write your own because you're going to likely make mistakes that these other things have already learned from and aren't doing. Totally, totally. But, but how hard can it be right like if i'm saying you know made it to this point in the function and all that's doing is writing out to a file on disk or something like why not just i mean you're gonna open a file and write something to it like why why why go download some massive log for j or or sarah log or whatever it is when you could just be like yo file, file open, write this thing. I mean, I know we're picking on logging as like the example and that's not really,
Starting point is 00:46:48 so we don't want to get caught on that one use case. But, but the, the point is, is that the advantage to using the overall, the, the, the, the free open source one. And, and I'm assuming like we're talking about one that is a widely adopted type of package not like hey my cousin's brother's dog owner's uh son-in-law wrote this uh nifty little thing that has like zero downloads like i mean we're talking about like a widely you know adopted thing you know the advantage like i said is that those had been scrutinized. Sometimes you've had security, you know, scrutinized from even like a security engineering point of view where like people really try to poke holes at it and see like, hey, did they do the right things here and there? Like, you know, are inputs being sanitized correctly? Is cryptography
Starting point is 00:47:39 good? You know, whatever the case might be for that particular open source package. So that's the reason why is because of the vetting that might be happening on those larger, uh, you know, scale open source projects versus if you try to roll your own, you're likely going to re introduce all the same mistakes that that other one probably did. Uh, you know, that learned from it years ago, maybe even a decade ago or whatever. You introduced too much risk to yourself to take that on. Yeah, I think Alan's playing devil's advocate. You know, you kind of picked on something that sounds easy where you can imagine someone saying, you know what? I could just print F, like throw it off the screen or let me just do it to a database because it's easy.
Starting point is 00:48:24 I don't need to spend hours configuring log4j because you will by the way anyone who's messed that stuff like you will spend a surprising amount of time messing with those configurations so say like well let me just do this and then if i need to write to database fine oh now i'm having problems with the buffering sometimes logs aren't getting written before the application crashes i'm not actually getting my logs okay oh now my buffer got exceeded and some of the problem happened because my exception was too big and now i'm messing with that and now you're having to becoming an expert in logging rather than your actual application and yeah at first it sounded like it was dumb to spend that time you know wrestling with these configs when you know exactly what you need to do but the thing is more often than not uh you don't realize that
Starting point is 00:49:03 you're spending more time rewriting that stuff yourself and you're introducing problems just like I said with things that you haven't thought about yet and things you're going to have to wrestle with later and later you know if somebody comes in and like buys your company for example says oh we're moving everything to Splunk everything needs to be consolidated logging we can't be shelling into applications to look at their files anymore now you've got extra work to do and so you're doing all this because you didn't want to spend an hour learning how log4j configuration files you know worked and now you're spending hours and hours and hours and so that stinks and who knows what kind of vulnerabilities you've built in not
Starting point is 00:49:33 even realizing because you thought of something cool you could do that would let you change the logging level at uh at runtime and you don't you didn't realize that some bot figured it out and is now setting trace on every request and you're, you're doing something crazy. And so I think that's the real question. But I mean, you kind of also illustrated my point though. Like you started off by saying like, Oh, you think it's as easy as like, you know, I'll just print F and write this out. But print F has a security vulnerability for buffer overflow. So like that's proven my point. Like,, yeah. And to go back to it. So I kind of rolled into the example without actually throwing the question
Starting point is 00:50:09 out there. So the real question is, do you roll your own code or do you go after an open source alternative? Right. And I have FOSS in there, which is free open source. Um, but,
Starting point is 00:50:19 but it's, but it's, yeah, so it's free open source software. Now you're going to leave that off the end. So, so both of what they said is exactly the issue, right?
Starting point is 00:50:31 Like, so they talked about vulnerabilities and all that kind of stuff, but it even goes deeper, right? Like what you have to think about, and it's always a fine line, but when you're writing software, what is your core business
Starting point is 00:50:46 thing that you're doing? Right? Like what is it, what is it that you're trying to make? That's going to make you money or, or make the customer happy or whatever. Chances are it's not logging, right? Unless you're writing a logging project. And, and so like what Joe said is at some point, Oh, you need to go to Splunk. Well, it's even worse than that, right? Like when you first do it, you just start dumping, you know, hey, I'm going to log my thing. And then they're like, oh, man, there's too many logs hitting the database now. Oh, well, I guess I need to put in levels. You didn't think about that initially.
Starting point is 00:51:15 Okay, all right. So now I have trace and error and all that kind of stuff. All right, cool. Oh, now we need it in a different format, right? Because before we were just putting a text string in somewhere, but now we kind of need to know when it happened and we need to know where it came from. So, oh, now you need to have some formatting, right? And it always needs to put a timestamp.
Starting point is 00:51:34 So like this stuff just grows out of control. And, and that's what drives me insane. Like when, when you sit down to make the decision of, I'm going to roll my own something, whatever it is, versus I'm going to use an open source alternative that is popular to, to outlaws point, and this can't be like stressed enough. Don't go get uncle Bobby's code that he's been working on the weekends and nobody's using right if you're looking at something like again going back to the logging thing log for jay sarah log these ones that are used by millions of people right millions of products look at what all it
Starting point is 00:52:17 does for you it is going to be a pain in the butt to set up but your core fundamental thing that you're building shouldn't be dealing with logging every day. You should be able to put a line in says log this and you don't have to think about it, right? Like that's, you shouldn't be writing logging software if that's not what you're selling. I mean, this is again, you know, I can't stress enough. We're, we're picking on logging as the, as the thing, but it could be like anything, like do you write your own database versus just using one that's available? But this is actually a perfect segue from the chat GPT conversation because really it's the same thing. When I was describing we get to solve bigger problems, right? So your point is literally focus on what's the
Starting point is 00:53:03 bigger problem. The bigger problem is your business's core business, the problem that your business is trying to solve. Where are you adding value, right? And that is not in the case of the, like the logging thing. So, you know, now, now going back to the chat GPT, chat GPT is just making it easier to be like, now you can focus on whatever, you know, just by asking the bot like, Hey, write this thing out that includes logging and blah, blah, blah, blah.
Starting point is 00:53:30 You know? So, I mean, they're, they are coincidentally like unexpectedly, these two conversations relate quite well in my mind. Yeah. It's, it's always hard because I mean, especially logging is easy to pick on because every application out there needs it to some level, right? And if you're not logging in your application, you probably should. So that's an easy one. I mean, you wouldn't write. OK, let's take logging out of the equation. You would not go.
Starting point is 00:54:00 Here's things that you would not go out and do. You would not go out and handwrite code to validate certificates. Correct. You would not handwrite code to, to implement any kind of cryptography. Shouldn't. You would not go out and handwrite a code to parse things like XML or HTML. Right.
Starting point is 00:54:20 You, you use libraries for all of these things. Right. Would you write your own JSON? No, no. Like any kind of, any kind of,
Starting point is 00:54:29 any kind of interpreter, you wouldn't go out and write your own interpreter for anything, which, you know, because we're developers, we're immediately going to go into like an interpreter as a programming interpreter, but really it could be an image. Like an interpreter
Starting point is 00:54:46 could be something as simple as a font. Right. I mean, another one I'll throw out there, and this one's even crazier. Like if you're moving data around from place to place, it's real tempting to be like, well, I can make a connection to this and I can make a connection to that and I'm good. But, and it seems easy until something goes wrong. And then you're like, well, I can make a connection to this and I can make a connection to that and I'm good. But, and it seems easy until something goes wrong. And then you're like, well, did it copy that? Did it do this? Like there's all these things that come in. So when you start looking at like even distributed systems, especially the, the open source alternatives out there, there's probably been thousands of man hours looked at this stuff to make sure that things work and that they can recover well and all that kind of stuff. So it's, again, it's a trade-off, right? Like,
Starting point is 00:55:31 do you learn this product? I'll give, I'll give a real good example. And this is a real life example. There's a, there's, I think we've talked about it on the show before. I know we have HashiCorp Vault, right? It's a thing where you can put, it can generate certificates, you can store secrets in there. You can do all kinds of things. And one thing that they've done that you probably wouldn't even think about but is awesome is they audit everything. So if you go create something, it audits it. If you go access it, it audits it.
Starting point is 00:55:59 It does it in a standardized way to where you have that. And they've constantly got security experts looking at all this stuff, right? You look like you want to say something. Well, I want to be clear that the use of the term audit in this regard is like an audit trail. Trail, yes. That you're referring to. Because where I thought you were going is
Starting point is 00:56:17 depending on the project, like some of the larger cryptography or security kind of related things, like some of the larger like cryptography or, or you know, like security kind of related things like an Opus, a open SSL or something like that, you know, there have been audits performed by security minded developer experts that have gone through the code looking for vulnerabilities and have passed
Starting point is 00:56:41 judgment on the code. And in this case it's both, right? So there have been audits of vault and vault also does keep audit trails of things that happen. But my point here is HashiCorp vault can be an absolute beast to set up, right? And to make it operational, which is similar to a lot of things, right? Like there's a difference between setting up Postgres or SQL server to do your stuff. There's a completely different ball game to make
Starting point is 00:57:10 it operational to where you don't, you know, you've got backups happening and all this kind of stuff, right? Like it, it takes some expertise to do that. Not anymore. You just ask chat GPT. Here's the YAML for it, you know, helm install, boom, done. But I guess here's the yaml here's the yaml for it you know helm install boom done but i guess here's my point right like everybody looks at it and they're like man it's going to take me two weeks to set this thing up right and to make it operational and then we're also going to have to have people look at it so i'm just going to write my own thing that stores these passwords you know hashed or whatever over here. And the problem with that approach is eventually it starts growing. And then people start saying, Hey, where's the audit trail? Oh,
Starting point is 00:57:52 well, we didn't build that in because that's not what we needed to do at the time. And, and, and that's, that's my big thing that I want to point out here. I'm not saying that you never roll your own, right? But I'm also saying that you have to be realistic with how much time you plan on spending in any particular thing. Is it better to learn sort of an accepted standard out there versus writing your own that is no standard and having to support your own, right? Like it's a big question. And there's a lot of people that feel strongly on one side versus the other, right? Like some people are like, I hate open source software.
Starting point is 00:58:32 I don't want to use it. And if I'm not paying for a commercial license, then I don't want to touch it. But I've had commercial companies that we've worked with that their support's just as bad as open source to some degree. So it's like, eh. Well, another valuable point here though, that hasn't been discussed is that with some of these tools, right? Not only is like trying to implement a HashiCorp vault,
Starting point is 00:58:57 not your core business, unless it is, in which case that's different. But, you know, if you use HashiCorp Vault, then you're doing declarative work to use it versus if you go out and try to recreate your own, now it's an imperative version of that code. And declarative is a heck of a lot easier to maintain than imperative. It is. And, but devil's advocate,
Starting point is 00:59:27 update, updating, maintaining, upgrading, like every bit of declarative is going to be easier, but you can also with declarative shoot yourself in the foot, right? There are some things that you can do and you didn't realize that you did
Starting point is 00:59:40 something in a particular way. You can do the same thing with imperative though. So like that same problem on either side of the equation. Totally. I'm calling out the deltas, not the sames. Well, similarities. Well, I'm not saying these we can call the same. It's not exactly the same, right?
Starting point is 00:59:56 Because the only reason I say is if you're imperatively doing things and you're kind of putting the steps in place that you think should exist, you can kind of mess yourself over in declarative things when you don't realize that something that you did is doing something bad, right? Like you're somehow sending passwords over the internet that you didn't know about, right? The whole thing that we were just describing was that if you do it imperatively, you can not do something that you didn't know you needed to do and therefore shoot yourself in the foot and like, oh, now you're open up to this vulnerability. So like either, either way have that same problem.
Starting point is 01:00:37 Yeah. I'm just saying that like, so, so if we, if we did, if we ignore that because it's the same problem on either side, just implement it in a different way, then like the pros and cons of one versus the other that are different on the declarative side. It's easier to maintain. It's easier to upgrade. There was a, which one of the books was it that we talked about most recently where there is explicitly called out that, um, it, when it comes time to do an upgrade of an environment, if's if the code is declarative uh you know because then it's really configuration it's it's a heck of a lot easier to move from one system to the next than it is if you wrote that thing imperatively yeah for sure and i think it was talking about sequel at the time in the example of the book i don't remember which book it is yeah because
Starting point is 01:01:20 ultimately you're saying what you want and it's up to the language to kind of figure it out whatever the interpreter. But I will say anyone who's worked with Terraform has been bitten by Terraform. Terraform keeps track of the state so it knows the things that it's done. So if you go and make manual changes behind its back, it gets confused and bad things happen and weird things happen. And I will say I'm totally on board with declarative being the way to go for just about anything, anywhere you can. It's probably the right decision.
Starting point is 01:01:49 But debugging it or trying to figure out what went wrong really is often really rough because you just have the it's like you're just staring at this picture of what you want things to be like and you know it's not that way and you're trying to figure out the various things that it did but that's all hidden from you like how it actually got to the state it's in is is obscured so you're trying to look at logs you're trying to figure stuff out and helm does the same kind of stuff like sometimes it just behaves in ways you don't expect when you start kind of tweaking stuff um behind the scenes and yeah it just gets kind of weird but you know i'm still on board like declarative is the way to go i think it was the devops handbook maybe that that was talking about it does that sound right to you guys i thought it was google i thought it was the google sre yeah
Starting point is 01:02:20 oh maybe it was the sre yeah but hey, big surprise that DevOps engineers are, you know, big surprise that YAML engineers are saying that YAML is the way to go. Yeah, totally. Is YAML engineer a thing? I think it has to be at this point. I mean, I hope so. Otherwise, I'm in trouble. Can I add that to my resume?
Starting point is 01:02:42 All right. Well, I guess I should probably jump in here before joe does is that fair yeah probably okay so if you haven't already left us a review we would greatly appreciate it like i said you know we called out some that had left us from reviews before and we greatly appreciate reading those uh you know some of them are really heartfelt too. There were some good ones in there, even of the three that we mentioned earlier where one of the people who wrote in was talking about how they felt kind of stagnant in wherever their career was going at that time. And that listening to the show kind of revived some new – a breath of fresh air into it and everything. And yeah, we really do greatly appreciate reading those.
Starting point is 01:03:28 So if you haven't already, you can find some helpful links at www.codingblocks.net slash review. Okay. I'll make it really easy for you. Oh gosh. I just asked, I just asked that GPT to write a really heartfelt five-star review for
Starting point is 01:03:48 the Coding Blocks podcast. And I won't read the whole thing because it's very long. I'll paste it, but it says, if you're looking for a podcast that's most informative and entertaining, look no further than the Coding Blocks podcast host, Joe, Alan, and Michael are all experienced software developers. Are you serious?
Starting point is 01:04:04 That's awesome. I mean, they clearly know what's up. Yeah, clearly. All right, so there you have it. Chad GPT knows what's up. So there's no reason not to write us one now, sort of. Yeah. It would be fun.
Starting point is 01:04:17 If you've never messed around, remember, we didn't mention it. They give you $5 worth of credits for free to use in your first three months. And as I've said, $5 is like a babillion requests so get in there have some fun maybe generate some reviews you know drop it in just see hey you could even write a little program post the review for you or ask chat gpt to do it right yeah we should be up there and paid for three things yeah all right well uh i guess with, we'll head into my favorite portion of the show, survey sets. All right. So what episode is this?
Starting point is 01:04:54 205. 205. So, Alan, you are first, according to Tateco's trademark rules of engagement. I don't think it matters. It matters. Oh, well, okay. For me. I know where you're going with that. I know where you're going with that.
Starting point is 01:05:05 I see where you're going with that now. I do have a caveat to add to this episode. Because of the winning streak, I'm going to give Joe a 25-point lead. No, you should give me a handicap of 25 points. Yeah, you're handicapped, all right? You're down 25 points already. I'm just kidding. 25 points. Yeah, you're handicapped, all right? You're down 25 points already. Man. I'm just kidding.
Starting point is 01:05:28 It hurts. I won't do that to you. It's so painful. That's kind of hilarious. Okay, so let's see here. first up is how long is an quote unbearable commute? One hour, one hour. All right.
Starting point is 01:05:57 Jay-Z unbearable. I'm going to say two hours, two hours. All right. Your threshold for pain is way. I just haven't done it in years. So, you know, right. All right. Your threshold for pain is way higher than mine. I just haven't done it in years, so, you know. Right.
Starting point is 01:06:09 All right. Survey says. All right. Well, the number one answer on the board. One hour? Is one hour. Yeah. Oh, nice.
Starting point is 01:06:22 Okay. Two hours is the number two answer, and it's only one point less so mr pessimistic gets 41 points oh look at that wow that is a strong lead that is holy cow okay now joe two hours is on the board okay technically oh no two people said it it's the fifth answer on the board for five points wow yeah baby 30 minutes was the number two answer at 26 45 third for 15 uh respondents 20 was number the fourth answer for. And one and a half hours was the last one for only two points. All right. Well, I'm going to step it up. There you go. Insurmountable leads are hell if I lose.
Starting point is 01:07:21 Oh my God, that would be kind of hilarious. Joe, name something you always have to keep plugged in oh hold on i'm still telling you always have to keep plugged in are you asking chad gpt let's see how it does are we going to add gpc to write the show notes for us from now on. Yeah, hey. Oh, God, that is evil. ChadGBT, write me a good podcast show topic. It did terrible, by the way. I'm not using any of these answers. I'm going to tell it to regenerate.
Starting point is 01:07:55 Anyway, I'm going to yell at it. No, I'm not going to do that. I'm nice to my AIs. Okay, so something you always have to keep plugged in. You know, this is stupid but i really want to say toaster i don't know why but and you certainly don't have to always keep it plugged in i think tv is a better answer but i'm going with toaster anyway okay interesting see i'm i'm struggling with this one because all the things that have to be plugged in like you just
Starting point is 01:08:22 assume that they have to be plugged in. So I'm going to think people are thinking something like a phone maybe. So I'm going to say phone. Okay. All right. Number one answer on the board was TV. Was it for real? When you said that, Joe, I was like, oh my.
Starting point is 01:08:46 Joe. Oh my. Dang it. How many did we miss out on? 33 points. Wow. That would be good. Yeah, that would have been good.
Starting point is 01:08:56 It would have been. Would have been. Toaster's not on there, is it? Number two answer is for 25 points phone that was what the chat gpt said i'm like i'm like lois literally unplugged all the time it's because you got a new one toaster sadly did not make the list and in fact i do not keep my toaster plugged in. Yeah, I don't either. That's really funny.
Starting point is 01:09:33 Computer was number three for 24 points. Okay. Lamp was the fourth answer for 11. Good answer. I expected Alan might come up with this one. Headphones for two. Or actually even Jay-Z. Either one of you. Because Jay-Zz you're especially like
Starting point is 01:09:45 uh particular about your wires so two responses for headphones computer mouse is the last answer tied at two all right we got one more question if i mess this up i'm not playing this game again. Allen is leading with a 61-point lead. Allen, if you screw this up, this is literally the Falcons in the fourth quarter of the Super Bowl. I think it's four guesses. I think it's four guesses. God, what year was that? It was like three years ago or something like that? It was painful years ago.
Starting point is 01:10:24 Whatever. So as is tradition, you get your choice of the question. So here's, here's your choices for the final question. Name something that breaks down. Name a place where people have to use coins or name a downside of biking to work.
Starting point is 01:10:43 Uh, I can't. The biking. Let's do the biking. The coins. I got that one. You want to go biking? Yeah, I'm going to do biking.
Starting point is 01:10:56 You get sweaty. Okay. Sweaty. Is it sweaty or sweaty? Sweaty. Is it sweaty or sweaty? Sweaty. Okay. This is reasons not to bike to work. Yep.
Starting point is 01:11:11 Cars. Yeah. You don't want to get run over. Well, name a downside. I want to, I want to correct. It wasn't, it wasn't reasons to not,
Starting point is 01:11:17 it was name a downside of biking to work. Yeah. Cars. Getting run over for sure. Okay. Getting, getting ran over. Okay.
Starting point is 01:11:30 Number one answer on the board. Schwanny! Takes longer for 28 points. Wow. Number two answer on the board. Tired for 25 points. Oh, come on, man. Dang. Well, I know you can't beat me, so I'm good.
Starting point is 01:11:47 Number three answer on the board. Stinky at work. That's it right there. 17 points. Sweaty, okay. Sweaty. I'm like, that's the same thing. Yeah, that's the same.
Starting point is 01:11:58 That's sweaty. Yeah, I mean, that's safe to count. Number four, answer more dangerous slash accidents. 10 points on the board for Mr. Jay Z. I beat him every round. That ain't,
Starting point is 01:12:15 that's never happened. I know what this feels like now. Answer on the board, harder to carry things. Uh, number six, they clearly haven't seen me in my biking shorts. Look silly. Lastly,
Starting point is 01:12:32 and this is the one where really you know that the bikers answered this one. Worry about bike. I've had my bike stolen from work before. It stank. Oh, for real? Yeah. Wow. That'sank. Oh, for real? Yeah. Wow.
Starting point is 01:12:46 That's brutal. They left the lock. Oh, that was nice. Thanks. Well, it is nice. I mean, those locks are expensive. Yeah. Well, I think it was cut.
Starting point is 01:12:58 No longer functioned. So, yeah. Yeah, I already told you the other questions that you left out. So, yep. I'm a winner. Finally. Yeah, it only took like 18 episodes. We got there. It's been a dry streak for sure.
Starting point is 01:13:11 My counting might be a little off, but I'm in the neighborhood. It's been bad. All right, cool. So, man. All right, we're going to burn through these last two that I've got real quick. So, typed versus untyped languages. Typed. Yeah. So, I heard Jay-Z say something the other day that was kind of funny to me. He was mad
Starting point is 01:13:35 about a particular untyped language. And I was curious, like, why? Why do you not like the untyped language that I will not name at this moment? So I'll tell you. So I think if you're working in a moderate, like more than five people, I think, maybe even more than four people, it's in your best interest to use a static language. Because you're going to find all sorts of problems that are going to be easier to deal with. You're going to find them early. And it's easier to do, like, large- scale refactoring on code that you didn't write. If you're doing a project that
Starting point is 01:14:07 is a small thing like a script or something that you don't plan on updating, you just need to do something one and done, I think that's a great spot for a language like Bash or Python or JavaScript or Ruby. If you're doing a small website for your
Starting point is 01:14:24 portfolio or something, I think a Ruby or Python is great. If you're doing a small website for your portfolio or something, I think a Ruby or Python is great. If you're doing something machine learning and you need a specific language like Python, great. If you're in a team of 20 people, oh my gosh, I wouldn't want to inflict that on anyone because it's hard to do stuff. The tooling is just not there
Starting point is 01:14:40 compared to static languages and strongly typed languages. And it's hard to do refactorings. It's hard to change stuff without knowing what know what you've broken and you can get around some of these things you know i've heard all the arguments before about if you've got great tests then you can do you know refactorings with confidence and stuff but that's all relying on people being disciplined so it's like it's it's all you know it's just hard the tool the tools just are inferior in my opinion for
Starting point is 01:15:05 for that and so then the question is well if you are doing a small one and done a small website a small script or something and you do want to just get it done fast and you aren't worried about maintaining it you know down the road or growing into something bigger then i think to me the obvious choice is javascript because one you have a transition path to typescript should you ever decide to grow it and you it's you know an easy something that you can kind of like layer in slowly so you've got a nice transition out of it wait hold up hold up for those that don't know why that even matters typescript basically adds strong typing on type of javascript on top of javascript so all right continue yeah and you can just change the file extension and start going from there because it's typescript is a superset of javascript so all right continue yeah and you can just change the file extension and start going from there because it's typescript is a superset of javascript so it's it's nice
Starting point is 01:15:50 you can change the types to any you can you know you've got a way out of it in a way into a saner way of working in case your project just takes off on you number two uh it's compatible with the web so it's really it's the de facto way of working with behaviors in browser. And yeah, there's ways you can get around stuff like Blazor or whatever, but it's far less popular and far less common. You're going to be swimming upstream if you're not doing JavaScript there. So to me, the obvious answer is JavaScript if you're doing any sort of dynamic language programming. And so my unpopular opinion, my coding unpopular opinion,
Starting point is 01:16:24 is languages like particularly Python and Ruby. They kind of have a very small place where I think of them, you know, for me personally as being useful in the world. I'm not dissing your language, your favorite language. I'm not, you know, I'm not saying there's anything wrong with it. It's not my preference, you know, and maybe there's things that you like about Python or Ruby or Pearl or, you know, some other dynamic language, other than JavaScript that, you know, makes it great for you. PHP is another example. You know, good for you. If you like it, it's working for you, you know, go for it. But if like a beginner was asking me about what language to choose for a project, like that would be my
Starting point is 01:17:02 answer. Be like, either go static if you are going to have people or if you want and done it, I would do JavaScript. All right. So I like that. I like that monologue outlaw. What's your take on this? I mean, it's hard to argue with,
Starting point is 01:17:19 you know, um, anything he said really like, I mean, there's a lot of sense to be said there. So I, but also I think that like, I'm probably just biased anyways to towards the,
Starting point is 01:17:32 uh, the typed, the strongly typed languages anyways. Um, Hey, to be clear, I don't know that we're saying strongly typed. I think both of you guys are also leaning towards compiled,
Starting point is 01:17:46 strongly typed languages, right? Because you're getting the compiler benefits up front. Yeah, okay. Yeah, go ahead. Sorry. Well, I mean, he went with TypeScript, though, so does that count as compiled? It's a transpiler, yeah. It is.
Starting point is 01:18:03 Okay. Yeah, so it basically interprets the stuff and then, and then converts things into JavaScript language. But yeah, my point is though, this is where I'm going is that like, I don't know that the three of us can honestly have this discussion because the three of us all come from the same kind of background versus if we were to pose this question to say a college student or
Starting point is 01:18:29 you know someone who's coming straight from like you know python is the thing that they grew up on kind of thing right that that's where they cut their teeth that person might come from a different perspective and i think like where you where you cut your teeth is going to largely you know dictate where what your answer is going to be here because you know for the three of us we all cut our teeth on uh strongly typed languages so yeah we're gonna all lean that way. Yeah. I just, you know, I'm definitely severely biased, biased.
Starting point is 01:19:08 And, you know, there's no doubt that Python has a big space in like machine learning and stuff. But to me, it's just like, it's kind of almost an objective answer. So, you know,
Starting point is 01:19:17 you can play me all you want and send the comments and rants to Joe at cutting blocks.net. I'll take them. It's just that to me objectively, like if, if I met a student in graduating college or high school whatever that's going into programming and said what language should i really buckle down and learn first i wouldn't say python because you
Starting point is 01:19:34 know it's got a smaller space in the world compared to javascript and it doesn't work as well in my opinion on bigger teams well i mean i i would say like the top three languages that would come to mind for that question would be j, Python, and JavaScript. Yeah. And I would pick two of those over the other. So it's funny. So I'll chime in. I actually did not start with strongly typed. So when I really started programming, like not in school, right. But like real program was cold fusion and it was not typed. You do whatever you wanted. And so it was basically a combination of cold fusion and JavaScript. So I lived in the, in the willy nilly,
Starting point is 01:20:10 do whatever you want world for a long time. Oh, me too. Actually. Yeah. But still in school, those were like, that's where you like started learning concepts.
Starting point is 01:20:20 And those were, they weren't teaching cold fusion. No, they weren't teaching cold fusion no they weren't teaching cold fusion but again i i mean we've talked about this before school you're learning things but you're not putting all the glue together right like i didn't really understand the whole purpose of polymorphism for a long time into my programming career because it was like okay so i gotta i gotta type the name the same way that doesn doesn't make any sense, right? So, like, I guess here's my take on it, and it's pretty interesting. So if somebody were to ask me, if a student were to ask me,
Starting point is 01:20:54 which language should you learn, I'd probably be in the Java, C Sharp, JavaScript world. I don't know that I would have gone Python, but that's a bias on the languages that I like, right? And it's not even Java. I'd probably say Kotlin, but Java is a bias on the languages that I like. Right. And it's not even Java. I'd probably say Kotlin, but Java is a bigger, a bigger pool to be swimming in. But I, I cannot disagree with either of what you guys say about with large teams and typing, saving your butt in a lot of situations. Right. But there is, and this is what I talked about before we even started the show. One of the things that drives me absolutely bonkers about type languages is
Starting point is 01:21:33 if I want to go just pull data from a new API, right? Like let's say that I want to pull from the Amazon product catalog. Like if I want to do this in a non-painful way in C sharp or Java, I've got to create a bunch of POJO classes, right? That can basically map those JSON or XML results that I get back into classes so that it can be marshaled into and out of those classes. And that drives me crazy when I just want to do something, right? Like I just want to get some results and start seeing what's there. I don't like creating a bunch of shell classes. If I go JavaScript or Python or Ruby or any of those, I can start getting that JSON and start working with it, right? Because it doesn't care.
Starting point is 01:22:18 It's like, hey, it's an object. Work with it, right? I can pull it into Python and JavaScript. And like Node.js, it's even easier because it knows all about objects. So you can do whatever you want, right? I can pull it into Python and JavaScript and like Node.js, it's even easier because it knows all about objects. So you can do whatever you want, right? Like it's built to work with that, that loosey goosey thing. But what Jay-Z and Outlaw both said is once you get past that POC stage and other people start using your application, not having these contracts in place really makes things nasty, right? Like you're setting yourself
Starting point is 01:22:46 up for all kinds of future problems with, you know, Hey, um, initially I had this thing set up to have first underscore name, right? But at some point I decided to change it to first name, um, one word. And if all you have are these loosey-goosey objects. Nobody knows that you broke that contract. And you don't find out until a really inopportune time. And so I can't disagree. I think if you're working on teams and you need to refactor stuff, I think typed languages have a lot of benefits that these untyped languages don't. And you can have a great career with whatever language you like. Totally.
Starting point is 01:23:26 Pick one and you can have a great life with it and love it and no one will ever accuse Java of being more fun to write in than Python or any other language probably. Right. But we're just talking about kind of like stepping back. The real answer is always it depends if someone asks you what language you should use. So we're saying from purely hypothetical, kind of erasing the specifics of a project like you know this would be our
Starting point is 01:23:47 recommendation and by the way the reason why i picked the three that i picked was about job pulls like totally oh yeah python javascript java those are going to be like three large job pulls so for for you know developer who's in school or coming out of school like that, that's where I was thinking of for that. But, you know, to your point, Alan, you know, like I, I'm always a fan of compile time errors over runtime errors. And so, you know, for using a language like a Python or a Pearl or JavaScript or whatever, you know, any of the untyped or the kind of like, you know, I think in the past we've kind of referred to them as like loosey-goosey type languages.
Starting point is 01:24:31 You know, those are great for like prototyping something real quick or quick proof of concept. But I think to Joe's point, though, there becomes an inflection point where when the thing becomes, maybe it's the size of the thing itself or the team, you know, or maybe it's the importance of how important does it become? There comes, there becomes a point where I would tend to favor the compile time, you know, the benefits that a strongly typed language is language would buy me in regards to like uh compile time and checking and things like that so but it's totally preference though based on like you know it is where where we cut our teeth i guarantee you if we ask somebody who who's fresh out of college that all they've ever done is like a python or uh a javascript or
Starting point is 01:25:23 whatever or a php they're going to like argue with us why they're and they're going to have points that i you know we'll be like yep those are those are great points like they'll have legit argue with that but when you work on big teams you start seeing some of the downsides right um i will say though the interesting one out of all of that to me is typescript because you can almost get the best of both worlds with it, right? Because it truly is just a subset of JavaScript or a super type over JavaScript. Almost. I don't even know what you call it. Um, it has all the JavaScripty bits, but you can force type stuff if you want. So you can live in both worlds in that.
Starting point is 01:26:02 So if I were going to go with one, I'd probably do that as well. Except then you'll just pass everything around as an any and then never care. That's what I'm saying. You could, you totally could. But I think that at least that one gives you a way to iterate, right? Like if you're trying to POC something
Starting point is 01:26:17 and you're getting some results from an API, you any it at that point, but then after you figure out what you want, then you start typing it and it's an easier way to iterate towards a good end state, I guess is kind of what I'm getting at with that. So I don't know. Interesting question. All right. And so this last one, I don't even know, probably not even a conversation thing. But if you don't know this, if you're doing things in a cloud, be it AWS, Azure, GCP, any of them, and you're spending a decent amount of money with them, I'm not talking about a couple hundred dollars, right? If your business is spending a decent amount of cash with them,
Starting point is 01:27:00 you should probably be looking to talk to one of their salespeople and negotiate rates. I can't give away specifics for anything because I don't know specifics on a lot of this stuff. But on all most of these sites, if you go to the pricing calculators, they'll already have prices for, you know, hey, if I if I just want to spend something up and use it, this is the price you'll pay versus if you'll guarantee that you'll use this thing for a year, this is the price you'll pay. Well, just know that there are other prices that they don't publish that if you talk to a salesperson and you can write up a contract and say, Hey, we'll do this much. You can get pretty significant discounts. So just know that if you didn't know that, um, it might be worth talking to, um, people who are working with that kind of stuff within your company to, to
Starting point is 01:27:51 maybe try and negotiate something. Yeah. I mean, a 30 minute conversation could save you a bucket of money, a lot of money. We've talked about this before too. Like it's so easy. Geico commercial 30 seconds or more. Um, we've talked about this before. It's real easy in the cloud to forget that you have things sitting out there, not actually doing anything, but you're paying for. So it can behoove you to,
Starting point is 01:28:18 to, uh, try and negotiate some good rates. So I'll keep this next one kind of short. Cause the chat GPT one went long, but, um, you ever just like,
Starting point is 01:28:34 I don't know, like if you would say need, but there's like a want, right? It's more want than need. Like I can't be the only one when it comes to like hardware type of things where it's like i don't know that i quote need it but what do i want that right it happens a lot i don't think joe's in that world yeah he's weird yeah he doesn't count joe upgrades when he absolutely needs to upgrade. And that's, that's about a move. I don't want to deal with any of this,
Starting point is 01:29:05 but, but where I find myself though is, so I have this 34 inch curved monitor. I kind of want a bigger one. So, so I was curious and I'm like, well, okay,
Starting point is 01:29:24 what's out there? Because the monitor that I have, this is an Alienware 34. And the reason why I picked this specific one was at the time, it was on a fantastic sale. I don't even remember what it was now. But it was a really good price for its size and everything specs at the time but also g-sync because i wanted a g-sync monitor for gaming purposes right what's the refresh rate on that thing it's like 240 right 120 right now i think this is a 120 because i
Starting point is 01:29:59 think this is before that all came out if i remember correctly okay um but still a pretty balling monitor yeah yeah yeah definitely but but the point is is that like if i were if i were going to replace it i would still want uh you know that kind of capability you know like i want i want the gaming capability like don't i don't want to take that away so you know just going to like a large scale kind of tv or something like that isn't going to cut it. Even though there are some G-Sync and FreeSync compatible TVs out there that you can get. But I was like, well, I wonder, like, I want to see if I could find like a large. And like, you know, if you're going to get large and you're going to be sitting in front of it, like I think curved becomes critical. Right. So I found this cool
Starting point is 01:30:51 resource. I'm going to put this out there for you. This is from Nvidia and you can find a G-Sync compatible monitors out there. And it, there's a whole different you know a whole bunch of criteria that you can you can filter down on like what size do you want resolution you want unfortunately where i think it's missing a feature is that you should be able to say like i want this size or larger or between this kind of size and instead it's like I picked this one in one very only very specific thing and I can't like multi-select the thing. So that's unfortunate. But so I'll throw that out there.
Starting point is 01:31:34 But I did find this one and I'm like, huh, it's like maybe if the price comes down a little bit further, I might get it. Because when this monitor came out, it was $1,800. It's down to just the lowly, low, low, low. On sale, 42% off. So, I mean, you can buy now while you can. $1,050. But it's a 38-inch curved LG.
Starting point is 01:32:03 And I'm like, I don't know, though, man. It's only like four more inches. And I'm like, I don't know though, man, it's only like, that's not much for more inches. Like, yeah, whatever. Like, I don't know.
Starting point is 01:32:10 I kind of wanted something a little bit more than that. But, but part of what, what I'm getting at though is like, I kind of want to like just rearrange on my, my desk though. And that's why I'm like thinking like, well,
Starting point is 01:32:22 right now I kind of have this like multi monitor set up, but do I just go with like one large monitor instead, like ditch the second. So as somebody who has a large monitor, just one, I don't know. Um, so I've got a 4k 43 inch and i don't know like what i'm on right now is a 34 inch curved and i think i like this better than my 4k 43 um i've mentioned it before talking about monitors if you get a 4k monitor i do not understand the point of buying one that is smaller than 40 inches because then you're doing um scaling and it's like well you're kind of losing the whole point of having that 4k monitor in my opinion right so if you're gonna go to the 4k route get 40 plus inches oh you mean like if you take that 4k monitor and you scale it to like 1080p type resolution so that you can read it yeah you know yeah because because if you get um i mean
Starting point is 01:33:25 there's several popular 28 inch 4k monitors out there and i mean you got a magnifying glass in front of it well the inverse is when you see somebody on their desktop or i'm sorry on their laptop and the laptop has a 4k monitor on it and you know but but the manufacturer didn't really intend that you would use it at that resolution so it does the scaling that you're talking about but instead you'll always find some developer that'll have it like set to run it whatever the uh native resolution is and they're like you know inches away from the screen every time they're like typing or something because everything's so tiny yeah it's it's ridiculous so um i don't know man like the multi-monitor thing i kind of missed that setup i liked it um and i will say too another thing another downside of having just one big
Starting point is 01:34:17 monitor with a ton of pixels is it's kind of hard for your laptops if that's what you're driving it off of to push all those pixels like it actually uh my macbook pro on a 4k monitor like it sweats it's not even doing much and the fans running right um so it's something to consider right like whatever you're hooking it up to um i'm also going to drop a link in in the description i've mentioned this site before. It's rtings.com. I looked at them. And they have their list of recommended gaming monitors and that kind of stuff too. And the one that they had
Starting point is 01:34:54 that was closest to this one was an Acer Predator. And I want to say it was like two grand. So, yeah. I mean, dude, it's tough. If you're wanting to go up from 34, usually the next biggest jump is in the 40s, right? I'm surprised that there's a 38. I'd have a hard time spending that kind of cheddar on four extra inches diagonal.
Starting point is 01:35:19 And don't go getting Joe excited about cheddar. Cheddar cheese. Now you're talking my language. That's right. We got some cheese dust. I don't care about mine. You're talking about cheddar. Cheddar cheese. Now you're talking my language. That's right. We got some cheese dust. I don't care about monitors. You're talking about cheddar, though. Hey, I'll have to find it.
Starting point is 01:35:30 I'll send it to you later because I don't want to bury us in the show here. But Linus from Linus Tech Tips, he did a review on a Samsung gaming monitor that he was like, oh man, I've arrived. Like I need nothing else. This is 16 by nine format. So it's not your, your ultra wide, but he said the colors pop the gaming on it's ridiculous. Like, and, and I want to say it's like, it's Samsung's versions of OLED. Right. Um, I think it's their QLED with whatever the thing is. But anyway, I'll find it and send it to you. I found the other monitor, and it was GamesRadar. I'm sorry, it wasn't ArtRatings.
Starting point is 01:36:16 It was GamesRadar that had the best G-Sync monitors, and it was the Acer Predator 38-inch, and it was the acer predator 38 inch uh and it's 1989 so you know good year um oh that wasn't the year that was the price it is curved but yeah that that's that's a lot here's your good one here take a look at that one so so yeah man that's tough as has been an owner of both the sizes is this the 49 inch samsung yeah it is it is dude curve that thing is ridiculous though yeah i mean if you're gonna do it it takes up the entire desktop but yeah do it man yeah i know but that's not a g-sync monitor though. Does it not have G-Sync? If I remember correctly, that Samsung Odyssey G9. No, it has G-Sync.
Starting point is 01:37:08 It says it does. Native support for FreeSync, variable refresh rate, and G-Sync. Do it, man. I think he's got it. He's buying it tomorrow. Hold on. Let's see. The price on Amazon is not terrible.
Starting point is 01:37:20 Not terrible. It is $1676. Wow. I mean, it ain't cheap, but that thing is beautiful. It is 1676. Wow. So, you know, I mean, Hey cheap, but that thing is beautiful. Um,
Starting point is 01:37:30 all right. Uh, Hey, so one last thing, man, this, this is not in the show notes. Seeing as how you're talking hardware. So I got the PS five VR to VR two.
Starting point is 01:37:40 It's legit. If you have a PS five and you've been yearning to try out some VR stuff, it's not cheap, but I can tell you that that PS five VR two, I think it was five 50 with a game bundled. So it's not cheap is as good, if not better than my $800 Vive Pro 2 headset without including the base stations and the controllers. So you're talking about a VR headset that costs $550 that comes with the controllers and all that stuff. You still have to have a PS5 versus the set, the setup on a computer that'll run you $1,400. And I think it's better. I think it might be better.
Starting point is 01:38:27 So, you know, for what it's worth, it's pretty cool. But isn't that kind of always the way it goes though? Like consoles, when they initially come out with what everything is, it'll be the best thing on the market for like that short period of time,
Starting point is 01:38:41 short lived period of time. And then eventually like, you know, they grow stagnant, but yet they're still the same thing at the same price usually it starts stagnant yeah nintendo really does okay nintendo is the exception to the rule but i mean you could remember like you know i remember back in the day like you know playstations would come out and people would buy buy them up not because they wanted them as a PlayStation, but because they wanted to like, you know. Watch Blu-rays.
Starting point is 01:39:08 Put Linux on it and use it as, you know, for other purposes, you know, whether it be for like a Blu-ray player or whatever, you know. Yeah. So here's what I'll tell you, though. On the VR, that wasn't the case with the VR1 that was on the PS four. And the reason is, is you had to have this camera in front of it. And then you had to have these funky controllers that had like little light balls on the end of them so that it could track you. And the tracking was kind of whack on it. So you'd be playing a game. All of a sudden your arm would be behind you or something in the game. And so it didn't track. Well, this one has inside out tracking on the headset and the amount that I played it,
Starting point is 01:39:46 it never had a hiccup. And so like they took a massive leap in this generation of it. And seriously, it's beautiful. It has OLED displays and everything. So like the blacks are truly black. You put on that headset, you feel like you're there. So, um, I don't know, maybe I'll do a full review at some point, but I'm impressed. I'm very impressed compared to the super expensive rig that I have on my PC. I can't stop looking at this Samsung 49. I'm sorry. I didn't mean to do that to you, but I know you want it. You know, the problem with this, just to backtrack a little bit on it, the real problem is let's say you buy this thing right no you're gonna buy it not me
Starting point is 01:40:25 we live in this world we live in this world of 2023 right where you know people are working from home you're on like calls of like zoom or webex or hangouts or whatever your your you know screen share or video conferencing thing is of choice and you're like hey let me share my screen real quick. And everybody is going to dread when you do. Cause I'm like, I can't see a stupid thing that you're sharing, man.
Starting point is 01:40:52 Like everything. That is true. Hey, but I have a solution, right? You remember that little portable 10 ADP monitor that I have, you have that plugged in too. And that is your share screen.
Starting point is 01:41:03 The whole point, the whole point of this thing was to have like to replace yeah i'm trying to help you you're making it worse man this thing is bad right here and it's 240 hertz one millisecond it is refresh it's it has like a four star rating though like everybody's gonna be mad about something like you can't buy something that expensive and not have some people who hate on it i mean that predator monitor it has a higher rating all right let me let me sort by most recent dude all the recent ones are really awesome yeah they were all created by chad gpt i don't trust those the the one knock on it that i'm seeing is this it doesn't have hdr
Starting point is 01:41:45 even the even the lg had better ratings than that that's that's the downside so just buy them all see which one you like best that's the way to do it all right well uh this weekend going broke with Michael. That'll be amazing. I'll have. So we'll have all the links to in the resources we like about the ways that you two can go broke with me. Yep. And with that, we'll head into Alan's favorite portion of the show.
Starting point is 01:42:19 It's the tip of the week. All right. Hey, we've talked about GQ on the show before. Do you remember the episode? I don't okay dang i should have i feel like you set me up yeah you know i know we have i think alan had the tip once uh probably but i here's so and uh i've used jq for uh for formatting mostly so i'll get some some format this and jason you know and it's uh all on one line and i would pipe it to jq and format it and it would even color code it and it's really nice to deal with it's a great utility use it all the time i knew we could do like little minor things you know so like you could say just select
Starting point is 01:43:01 this property or like get the items out of the array but i hadn't really thought about going any further to see what else i could do until recently and i realized that it is a full-on editor as well in fact it's Turing complete you can do things like set variables functions like map filter all sorts of stuff it's basically a full-on programming language that you can use to transform json so if you need to do some sort of mapping from one json format to another then you can do it in jq in fact you can even do it in like basically a one liner with a big block with semicolons and you know the whole thing or you can just kind of keep on piping it in individual steps which i found to be easier but i just thought it was super cool that it was starting complete and like a full-on program language that you can use for json manipulation which is just pretty pretty cool
Starting point is 01:43:47 um it's not my you know favorite tool to write a whole bunch of transformations yeah i don't want to write a whole application in it but for something quick and dirty that you want to grow a little bit uh then it's a great uh first step there so that was really cool i do have one more tip though uh i found a website interiorai.com this is a website that you can use uh where you can upload a picture of a space like a room and describe what you want it to be decorated like so if you go to this website interiorai.com i'm not going to upload a picture of my room right now but you can see sample pictures just right there in your face and they have some recommendations so you can say like uh easter uh it will decorate it for easter you can say i want to like middle mills minimalist warm colors and it'll do you can say beachy or um i don't know old world european log cabin style and it will like basically augment that photo that you
Starting point is 01:44:47 uploaded to kind of match the style that you've uh that you've described and it works for interior and exterior spaces and surprisingly cool actually so if you're someone like me that wants to exist in a cool space wants to have a cool office but have a very little taste uh it's really nice to be able to upload the picture and say I want it to look like Tron. It will do it and you just have to go find the items that you think kind of match
Starting point is 01:45:13 the picture that it gives you. That's it. If you look at the pictures that are samples, it's surprisingly good. This is very cool. Yeah, it's neat. You do have to provide your email to actually upload the picture but yeah mailinator yeah what episode was that well hey you know you could just do uh like if you do a sign in with apple you can hide your email with apple they make it pretty easy if you're already
Starting point is 01:45:45 in the apple eco space yeah that's pretty nice um also hey i threw another link in there alan lg makes a 49 inch curved monitor that competes with the samsung and it's only 1100 oh see there we go yeah also g Also G sync and free sync compatible, but it's, it, uh, has slightly better ratings than the Samsung, but,
Starting point is 01:46:12 uh, the refresh rate maxes out at one 44. So, you know, that's, that's enough. That's crap. That's just crap.
Starting point is 01:46:18 We can't have that garbage in our life. That's right. Um, all right. So for my tips of the week yeah you heard me i said it all right so um i don't know about you guys but i've known that you could do like sort was you know uh a command that you can use on the command line so you could like pipe some output to it and sort things. Right. But I never, it never dawned on me. Like, you know, usually I guess I'm just lazy or coincidence or lucky that,
Starting point is 01:46:53 you know, anytime I've ever thought to do it, the thing that I wanted to sort was always the first thing. And it was never like an additional column of data, you know? So in my case, what I wanted to do was I wanted to get the Docker images on my system. I wanted to grep just for certain ones. So I wanted to see them coming from a specific repository. So, you know, because they would have like a consistent naming pattern to it, but I wanted to sort them by their tag to know, you know, to, to see them that way. And that's the second column of data in like a Docker image LS type output, right? Well, sort has a dash K command and you can tell it which column to go after next. But the problem is it will also interpret the blanks. So like five blanks will
Starting point is 01:47:58 get sorted after one blank kind of thing, right? So you can include dash B on that command and it'll sort by the second column and exclude the white space, which did exactly what I wanted to do in my case to sort all of my Docker images by, uh, you know, their tag based on like this grep that I was doing to get in like specific repo thing.
Starting point is 01:48:24 Very nice. so i thought that was kind of helpful um then another one that i that i never dawned on maybe i don't know if you already knew this but in mac os okay so we all know about like the green ball like you could you can click the green ball and go full screen. Right. And you know, you can do the split screen and all that. Right. What I didn't know is if you have a, and I like just kind of dumb luck stumbled across this and, and it was like, Oh man, that's awesome. If you have a window, uh, let's say it's like, you know, an instance of Chrome or a terminal or whatever. But the point is, it's not full screen. And keep in mind, I'm on multiple desktops, right?
Starting point is 01:49:12 So I find myself often wanting to like, you know, maybe because of screen sharing or because like I want to have the presenter screen on the larger monitor, right? I find myself like moving things from one screen to the next, but I will often, you know, at times want something full screen on one of those, you know, especially on the smaller one, because it's the laptop's display. What I found was if you take that, when you go to the, like the, the, was it the three finger swipe up where it takes you to the, you can see all the different apps as well as the screen, the desktops that are open per. You can take a window that isn't full screen, drag it to either monitors list of screens at the top, and you can automatically create a new full screen out of that app. So when you're dragging it, so in my case, let's say, um, I have the laptop monitor as one monitor
Starting point is 01:50:15 and then the 34 inch as the primary monitor. Right. But I want the presenter, I like, let's say I'm on a call and you know, I'm, I'm like watching some kind of presentation or whatever. And I want that one on the larger monitor for like primary focus and whatnot and be able to like zoom in on what they're doing. But maybe I want to have like a, you know, an instance of Chrome or terminal on the laptop monitor, but because it's a smaller screen, I want all of the real estate from that monitor to be there. Then I can, I can drag it to the laptops set of screens and automatically create it in full screen, all in one motion. Whereas what I would use to do is drag it to the other screen first,
Starting point is 01:50:56 like just manually drag the window over and then click the green ball when it was on the monitor that I wanted. That was such a rookie move. I didn't even know it. So lastly, uh, have you ever wondered about your output from LS and like specifically, have you ever noticed that on like any kind of, let's say Unix like environment. And I was specifically on Mac OS at the time you do, but this same thing would hold true on like Ubuntu. You do a LS minus L, and you'll see like the attributes listed first, right? Then some digit and then some file size, uh, and then the file names and things like that. Right. But that, that,
Starting point is 01:51:46 that first, that, that second column where it's just some like digit, some number and you're like, I don't know what the heck that is or whatever. Yeah. Don't know. Well,
Starting point is 01:51:58 I found out the hard way what that, that thing is, is it being like a count of references to that file that are in use, right? And whether or not the file is supposed to be deleted or not. So the situation was that a coworker had hit me up and said, hey, I'm having this weird issue where I want to do, um, I want to change get branches, but get is failing. And it's telling me that it can't because these files haven't been committed
Starting point is 01:52:38 yet. And these changes, but I didn't want to make any changes to those files. So what I want to do is just reset the changes to that, you know, whether it be like a get reset or a get checkout, you know, there's numerous ways that you could do it right. One way or another, I want to restore the output of that file back to whatever it was so that I can pull latest, you know, branch and check out a different branch, things like that. Right. But I can't. And, and like the get specific error that was coming back, I forget
Starting point is 01:53:13 exactly, but every time you would try to do any of those like resets or checkouts commands on the file, uh, get would come back with an error saying that it couldn't, and it was never clear what was happening there. And what we noticed was that when you did an LS output on it, the file had that second column there. At minimum, you should have a one, right? Because the file exists. But in this case, it had a zero, meaning that it's supposed to be deleted. But because there was an open file handle on it, then it couldn't yet be removed from the disk. So it was still there and nothing else could be done about it. And what we discovered happened was like a security scanning type tool found the,
Starting point is 01:54:06 the files. And we're like, Nope, those are, those gotta be deleted. That's bad. And so it deleted it out from under, uh,
Starting point is 01:54:14 Ubuntu. And, but the, but I don't know, we never bothered to figure out like what thought it was in. Cause you can't actually like track down to see like what the, what has the open file handles. you go poking around through the proc directory but the point was is that you know if you run in sometimes you could run into these weird get
Starting point is 01:54:35 issues where like you can't reset your file and it might be because something weird like that happened and i now i know what that second column of data is from the LSL output. That's really cool. Yeah, that's really cool. I never knew. I didn't either. Cool. So mine is short.
Starting point is 01:54:55 And this is actually funny because this is me writing something in Python, which we just said you shouldn't do. It depends. Generally speaking, nothing else about the domain. which we just said you shouldn't do. Oh, it depends. Generally speaking, nothing else about the domain. Generally speaking, you shouldn't write in Python. That's what I heard Jay Z say.
Starting point is 01:55:13 That's what he said. If you're starting an ML company and you want to hire other ML devs, it's a great choice. You get Python. You'll be able to find people. You're going to have tools. You're going to have resources. Send your rants to
Starting point is 01:55:25 joe on slack that's right i deserve it i was totally messing around though like i'm actually doing exactly what we were talking about i was doing like a little poc thing um but so i wanted this like command line python script and man it's just like anything else you go to search for. All right, how do I do command line orgs? You find this one doc, this one article that's super popular, floats up at the top of Google. You do it and it sucks. And you're like, man, I'm really angry about this. And then I found this other one. It's like, oh, use arg parse, which is part of Python three. And it was beautiful. It gives you the output. Like if you did a get dash dash help, you get that kind of gorgeous output and you get these arguments with rich, um,
Starting point is 01:56:11 interactions and all that kind of stuff. So, um, I wanted to share this in case anybody else out there who's, who's starting with Python or trying to do something like this, take a, take a look at this thing. It was super easy to set up and gave me beautiful command line things to where I could either do a dash a or dash off or dash dash off, right? Like you could actually tell it, Hey, either one of these means the same thing. Um, and the way it works is gorgeous. After you put the arguments in there and you define all that stuff and it parses them, it parses it into an object where that name of that argument is what contains the value that was passed in. So super easy to use, real nice on the command line. So if somebody didn't pass in an argument they were supposed to, they'd get a friendly error saying, hey, this is required.
Starting point is 01:57:00 Or if they did a dash dash help, they got something real nice um and this is similar to something that um outlaw pointed out in c sharp years ago command line um so it's like python's version of it and really liked it so if you've never heard of it arg parse and we'll have a link yeah i'll find um let's see here here's a example for command line. I will throw into your note there. Excellent. Which does very similar thing, but is a.net specific,
Starting point is 01:57:35 which, you know, as soon as you started talking about this, I was thinking about like that one. The difference though, is that in the.net world, I think this might be specific. I don't think that the.NET
Starting point is 01:57:45 world would have this. Well, at least in that specific package, I don't think it has it. Because in Python, you could just have positional-based arguments. You can do that, too. So you don't have to do a dash, which personally, though, I hate positional-based arguments. I don't like them at all like it's it's kind of like hidden obscure knowledge that like oh the first thing is supposed to be like a file name and the second one is supposed to be like something else like i i much more prefer that you have the arguments you know named but i do super love libraries where you can either have an abbreviated version of the name or a more verbose spelled out version of the name of whatever that argument is. Because depending on what you're doing, like if I'm – do you guys do this?
Starting point is 01:58:38 If I'm doing it on the command line myself, I might prefer the abbreviated version, but if I'm going to commit it in the code, like as part of like a Docker run statement or something like that spelled out version. Yeah. So people can see it, know what's going on. I want it to be clear because, you know,
Starting point is 01:58:55 I don't assume that, you know, that command line, uh, utility as well as, you know, me or the next person, you know,
Starting point is 01:59:02 so totally. Yep. all right. Well, with that, subscribe to us on iTunes, Spotify, Stitcher, wherever you'd like to find your podcasts. Be sure to leave us a review if you haven't already. Chat GPT can go a long way to help you write a really good review there. You can find some helpful links. You know what?
Starting point is 01:59:20 Just ask Chat GPT where you can find the helpful links. Let's see what happens. That's right. Hey, by the way, that Chat GPT review said that we constantly have guests on the show. So it was kind of funny. Yeah. Confidently wrong sometimes. Yeah.
Starting point is 01:59:32 Confidently wrong. It was beautifully written though. So, Hey, while you're up there at coding blocks.net, make sure you do check out our show notes examples. You can also get involved in discussions and send your questions, feedbacks,
Starting point is 01:59:45 and rants to our Slack channel at coding blocks.net slash Slack. And you can join that Slack channel by hitting that link too. And make sure to follow us on Twitter. And if you're doing something cool, a side project, I don't know, starting a new job, something you're excited about,
Starting point is 01:59:58 something you're interested in, you want to learn, learn about or find resources from like actual human beings and not, you know, bots hit us up on Twitter at CodingBlocks. Just send us a message, tag us, do whatever, and we'll blast it out, retweet it, whatever we can do to help. And also
Starting point is 02:00:14 if you go to CodingBlocks.net, you can find all the sloshes links there at the top of the page. Yeah, you can hit me up on Slack and my handle would be MichaelGPT and we'll see what comes back. That's right. It's totally real. I wonder is it my priority to create a user
Starting point is 02:00:31 with that name? They will have by the time this drops. Yep, for sure.

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