Python Bytes - #431 Nerd Gas

Episode Date: May 5, 2025

Topics covered in this episode: pirel: Python release cycle in your terminal FastAPI Cloud Python's new t-strings Extras Joke Watch on YouTube About the show Sponsored by NordLayer: pythonbytes....fm/nordlayer Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: pirel: Python release cycle in your terminal pirel check shows release information about your active Python interpreter. If the active version is end-of-life, the program exits with code 1. If no active Python interpreter is found, the program exits with code 2. pirel list lists all Python releases in a table. Your active Python interpreter is highlighted. A picture is worth many words Brian #2: FastAPI Cloud Sebastián Ramírez, creator of FastAPI, announced today the formation of a new Company, FastAPI Cloud. Here’s the announcement blog post: FastAPI Cloud - By The Same Team Behind FastAPI There’s a wait list to try it out. Promises to turns deployment into fastapi login; fastapi deploy Side note: announcement includes quote from Daft Punk: Build Harder, Better, Faster, Stronger I just included this in a talk I’m gave last week (and will again next week), where I modify this to “Build Easier, Better, Faster, Stronger” Sebastian and I are both fans of the rocket emoji. BTW, we first covered FastAPI on episode 123 in 2019 Brian #3: Python's new t-strings Dave Peck, one of the authors of PEP 750, which will go into Python 3.14 We covered t-strings in ep 428 In article t-strings security benefits over f-strings How to work with t-strings A Pig Latin example Also, I think I have always done this wrong Is it the first consonant to the end? or the first consonant cluster? So… Brian → Rianbay? or Ianbray? BTW, this is an example of nerdgassing What’s next once t-strings ship? On thing that’s next (in Python 3.15, maybe, is using t-strings in shlex and subprocess) PEP 787 – Safer subprocess usage using t-strings deferred to 3.15 Michael #4: zev A simple CLI tool to help you remember terminal commands. Examples: # Find running processes zev 'show all running python processes' # File operations zev 'find all .py files modified in the last 24 hours' # System information zev 'show disk usage for current directory' # Network commands zev 'check if google.com is reachable' # Git operations zev 'show uncommitted changes in git' Again, picture worth many words: Extras Brian: Holy Grail turns 50 nerdgassing Michael: Transcripts are a bit better now. Zen is better now Joke: Can my friend come in?

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is episode 431 recorded May 5th, 2025. And I am Brian Ocken. I am Michael Kennedy. And this episode is sponsored by NordLayer. Listen to their spot later in the show. And if you'd like to connect with us, you can or suggest topics. Please feel free to send us an email or head on over to either Mastodon
Starting point is 00:00:26 or BlueSky and the links to both of us and the show are in the show notes. And you can join this episode live or join it live usually Mondays at 10 but sometimes other times. But head on over to PythonBytes.fm slash live to sign up and see the schedule for the next one. But also you can, that's on YouTube, so you can watch them later if you'd like. And I'd also like to encourage people to sign up for the newsletter. We send out a weekly email with all the links
Starting point is 00:00:56 from the show plus background information. It's a lot of fun, so check that out. Also, I think it'd be cool to have a cool first topic, Michael, what you got? This was a nice, easy one, easy to adopt, easy to appreciate, I think. So you and I, we spend a lot of time talking about, here's the new things for this, and here's the new thing for Python, and here's the new features, the next version, and test the alpha, test the beta. And we also talk about when they go out of support, but I don't know how you feel I
Starting point is 00:01:29 Often that that sneaks up on me. I mean the fact that three eight is out of support seems wrong Yeah, but it is you know what I mean? Yeah, and so you might be sitting at your terminal just going what's that status again? And so I present to you Pyro P I R E L And what it is is it's the release cycle of Python at your fingertips. Oh, cool. Yeah, so there's a little graphic here, I suppose. I can open up the image full size, perhaps. And you just type whatever, doesn't matter how you have Python active, if it's the system one, or if it's a virtual environment one, you can write PyRel check, and it'll give you a nice
Starting point is 00:02:06 summary of what's going on here. You can say you're using Python 313 which is actively maintained and it will be this good for this long you can say pyro list it'll give you a list of all of the last ten or so versions when they came and when they went so it's it's pretty cool I mean that's more or less what it does, but it tells you that you can get, you know, go get a new Python version if yours is getting older. And the status as well, is it still getting feature updates?
Starting point is 00:02:34 Is it in bug fix level? Is it security fixes? Or is it YOLO? I just can't be bothered out of. Anyway, that's what this is. What do you think? I think that's pretty fun. Yeah, also neat.
Starting point is 00:02:47 Yeah, and it uses the rocket emoji, which will make a reappearance, right? Yeah, I do like the rocket emoji. Indeed. So there's a little bit else you can do with it, though it does not particularly interest me as a tool, nonetheless. You can also type Pyro guess and it will do
Starting point is 00:03:07 things like give you various trivia about the the release history of Python. So for example it might ask when was Python 3.11 released or who is a release manager for 3.6 and it gives you a multi-choice select and you can pick and it'll tell if you're right or wrong. So if you like Python release history and seeing the details you can do that. But I you if you're right or wrong. So if you like Python release history and Seeing the details you can do that, but I think the pyro list and the pyro check is pretty cool Yeah, I like it neat. Yeah, that's it. All right Well, um, I don't want to cover something that we've covered before kind of Back to the back to the future back to we're gonna go back in time. This is episode
Starting point is 00:03:46 123 which when was that? That was like in May 26, 2019, we recorded it, and it came out on the 29th. Right, and we had no idea. Things were different back then, 2019. 2019, different world. But one of the things that started in that was when we announced, well, we didn't announce it, but we covered it on the show way back in 2019, the introduction to Fast API.
Starting point is 00:04:12 So we talked about it. This new cool web framework called Fast API. Well, Fast API has been growing and it's now the number one web framework, not just across Python, but across everything. So it's been an incredible thing to watch, some great work out there. Well today, Sebastian Ramirez, the dude that created FastAPI in the first place,
Starting point is 00:04:34 he announced that he is forming FastAPI Labs, a new company, and that they are, the FastAPI Labs is a new company and they're building FastAPI Cloud is a new company and they're building a FastAPI Cloud. So we're gonna take a look at what does this mean? It kind of means that you just get to build your fast, if you do this, the promise is you build a FastAPI application and you can just deploy it with
Starting point is 00:04:59 FastAPI deploy, just a single line. And then they'll host it on their, like a sub domain of the fastapi cloud.dev. So kind of interesting. I'm intrigued. So I've definitely joined the wait list. There is an announcement blog post by the same team behind FastAPI.
Starting point is 00:05:21 So this is kind of an incredible, he's built FastAPI up and it's not just Sebastian now, there's other people working on it. It's built on top of Pydantic and a couple of cool things that I can't remember. But the team is, the blog post talks about the problems of deploying to the cloud. Now there is documentation on the FastAPI,
Starting point is 00:05:46 and we've often commented that the FastAPI documentation is excellent. They've done a great job with documentation, but it is not trivial to really deploy anything anymore, aside from maybe a static site. But you have to get concerned with a lot of stuff, especially if you start growing with security. And so they are looking at that security bit. So it's so far, it looks
Starting point is 00:06:13 like Patrick Armino, Alejandro Sanchez, Sophie VanLangen, sorry, and Sebastian, and probably more. I'm not sure if that's part of the team or if that's just, anyway, they might be, I don't know how many people are in the company right now, but he's promising to keep FastAPI open source and to also, interesting in this is that he doesn't want to have vendor lock-in, so whatever processes they build up,
Starting point is 00:06:47 it won't make it so that you're stuck with FastAPI without having, with their hosting. So essentially this is hosting for FastAPI. So kind of neat. Yeah, congratulations, Sebastian and crew. That's awesome. Yeah. It is a hassle to deploy things.
Starting point is 00:07:02 And presumably these folks know the best way to host FastAPI. FastAPI might be tuned for the infrastructure that they choose over time. I'll have to look more into this, like, how do you host a database and things like that. But presumably, you can do things like use a CNAME for your app at fastapicloud.com and get your own domain name and all that sort of stuff. But very interesting.
Starting point is 00:07:27 Yeah, it is. Also, interestingly, that was the first thing I thought is like, well, I probably don't want to use their domain. But for an API endpoint, for some internal tools and stuff, I might not care. So I think some people- That's a good point. Yeah, you would care a whole lot less if it's just an API and it's not like your landing page or whatever. Yeah. Yeah. Anyway, cool stuff. Absolutely. Well, what else is cool, Brian? What? Nord layer. Let me tell everyone about our sponsor and Nord layer here. So Nord layer is actually a pretty neat product. And this episode of Python Bites is brought to you by Nord layer. So it's a toggle ready network
Starting point is 00:08:10 security platform for modern businesses and combines VPNs like you would expect of course from the parent company Nord. However, it's also access control, threat protection, visibility into what's happening in case you spot some sort of malware. All of those in one easy use platform. There's no hardware, no complex setup, just secure connections and full control in less than 10 minutes.
Starting point is 00:08:34 So it's easy to start with quick deployment, step-by-step onboarding 24 seven support. It's easy to combine. It says it works with existing setups in all major platforms and Nordlator is easy to scale. Just add users, features, servers in a few clicks. SSO and provisioning included. If you want zero trust network access, you got it.
Starting point is 00:08:56 It provides those network zero trust solutions. It adds threat protection to keep malware, ransomware, and phishing from reaching your endpoints, including servers. How cool is that? Increases your threat intelligence to spot threats before they escalate and helps businesses achieve HIPAA compliance and stuff. So if you're responsible for security of your software or data science team, you should definitely give NordLayer a look.
Starting point is 00:09:20 As Python bites listeners, you get an exclusive offer of up to 22% off Nord layer yearly plans plus 10% off the top with a coupon and that coupon is Python Bytes dash 10. If you visit the link in your show notes, you'll there's a landing page and it gives you the code right there. So Python Bytes dash 10, try Nord layer risk free with their 14 day money back guarantee. Visit pythonbytes.fm slash Nord layer to get started Link is in your podcast player show nuts. Thank you to Nord layer for supporting the show. All right Next we you know going back in time a little less in time
Starting point is 00:09:58 This is just a couple episodes ago in episode 428 And we covered t-strings. So t-strings are gonna come in 3.14 in the Pi release. So there is one of the authors, Dave Beck, or Dave Peck, sorry, Dave, wrote an article about the Python's new T strings. And I'm kind of excited about it because when we talked about it on the show, I was, I'm excited about them,
Starting point is 00:10:23 but I also, they're like template strings, but how are they different than F-strings? When would I use one over the other? And I got all these answers in this blog post. So he talks about what's the big idea of T-strings, and interestingly enough, we've loved F-strings so much that they're used inappropriately. And I didn't really realize that there's security problems.
Starting point is 00:10:49 So there's like comments on using f-strings to take user data, user input, and fill in like maybe a SQL statement. Don't do that. You wanna clean your user input first. But so people have been using it and or possibly to use it to generate a web page. So you've got a possibility of somebody inserting cross cross site scripting or other bad things that you don't expect by just sticking sticking user data into HTML. So misusing F strings is one of the reasons why T strings
Starting point is 00:11:28 were kind of a cool thing. So the template strings are a generalization of F strings and they keep things separate. So F strings actually create a string, but T strings don't create, when you create a T string, you don't get a T string, you get a, or a string, you get a template object. And this't get a t-string you get a or a string you get a template object and this template object has these two separate things you've got
Starting point is 00:11:58 it's got a i'm going to scroll down it's got a a strings section and a values and so it keeps it's a they're both tuples of of things of what's inside of it. And you can iterate through them. There's all sorts of cool stuff you can do with templates, these template strings. But this is a nice, really good walkthrough of kind of what's inside and why they're different than F strings. They're very different now. But talking about there's inside, there's a, what's the value? There's a interpolations are a thing that's in there. So you might have, it might be a string, it might be other, it might be something else.
Starting point is 00:12:32 And the interpolations have all the pieces in place. And you can even dive really deep into it and have things like what's the, what the value of the variable that you passed in, the expression name, the conversion, the format specifier, even if you've got format specifiers on it. And this is all sorts of nitty gritty detail, but the gist I'm taking away is they're just really kept separate.
Starting point is 00:12:58 So you've got like the template and the things you're passing into the template as completely separate things. Why is that great? Well, one of the great things about that is, is you can, like in the example of SQL or HTML, you can take the user data and check all of that and run things over it.
Starting point is 00:13:17 So you can, if you've got user data and you expected a string, but you expected people to not be nefarious about it, you can do like a safe HTML or something, and you expected a string, but you expected people to not be nefarious about it. You can do like a safe HTML or something, convert like the brackets into something else, strip out SQL statements so that they're not, it's not a, you know, escape things, escaping things and making them cleaner. One fun example in this, I love this, a fun example is how to create Pig Latin using template strings.
Starting point is 00:13:48 And so there's like this Pig Latin converter that takes a template and returns a string. So you're able to have like a hello world and then you run Pig Latin on the template and it converts the template into, we've got these converter functions, you can convert into actual string. And I kind of, okay, I got it. I went down a rabbit hole on this because this example says to convert, I kind of forgot the rules of Pig Latin because it's been a while since I've been a kid. But it says essentially, if the first character is a vowel, if the words in the word, the first character is a vowel, then you append yay on the end. But if it's not a
Starting point is 00:14:31 vowel, you take the rest of the word and take the first character and put it at the end and say a. And I don't think that's correct or I think it might be correct but I forgot the rules. So I looked it up and Big Latin sorry about this, but Big Latin it says that it's not just the first constant, but it's the first constant cluster So I don't think this is the correct implementation So well, as I said when that fits on one screen, yeah, so Brian would translate into Ian Bray, not Ryan Bay. You know, anyway, OK, the diversion.
Starting point is 00:15:09 But anyway, so there's some some great ideas for when when when we finally have T strings and we ship Python 3.14, we can do things like possibly he's having everything more safer, more flexible. One of the things that's coming up possibly is, oh, where'd it go? 787, so there's a proposal for safer sub-process usage with like Schlex and Subpros, which I love Schlex, but you could use, if those could be implemented
Starting point is 00:15:43 with T-strings, they'd be a lot safer. So there are some, some security vulnerabilities in these things. So it could simplify the implementation. Right. You don't want to ampersand, ampersand do other things as part of your command, right? Yeah. So, so this, and then, so having a lot of things that to take user input and create other things, having them use T-strings might,
Starting point is 00:16:05 and having like some quick safe conversions, instead of having to convert user data ahead of time, you can just grab the user data and stick it in a template string and then later in your pipeline, clean up the user data. Those are pretty cool things. So there's also some attribute things you can, there's other ways you can, since they're separate, all the way until you do the conversion, you can do like some cool attribute things that he covers in the article too. So anyway.
Starting point is 00:16:32 Yeah, looks like a great article. Thanks, Dave. I'm gonna have Paul Everett on TalkPython, not this week, next week, to talk about T-strings. So. Perfect. Yeah, we're gonna be diving into it some more. Yeah, should be fun. Nice. Indeed. Let's go back to the terminal and this one I think is also
Starting point is 00:16:51 pretty interesting especially if you're learning the terminal or you're just like how do I do that again? Zev. Have you heard of Zev? No. It's a simple CLI tool that helps you remember terminal commands. So if you're sitting here and you're like, you know, I don't really know what I'm doing with this stuff. I can type zev and it says, what do you wanna do? It says, show all files in this directory with human readable sizes.
Starting point is 00:17:15 And it says, okay, great. Here are a couple of things you could do. And it gives you a select list like ls-lh or I think it was find is one of the options. But basically it gives you a bunch of options to do those types of things. And off it goes. Pretty cool, right?
Starting point is 00:17:30 Yeah. Yeah. So this project runs on top of LLM APIs like OpenAI, Google Gemini or local Olamma. So basically it sends that command over and then it looks at all the responses. But it probably does a bunch of work to format it for you. But more importantly it puts it right there in your terminal where you can just select the answer and hit enter. You don't have to go to chat, copy it, move it back over,
Starting point is 00:17:56 run it. You know like that sort of round tripping. Yeah okay. Yeah so suggestions that you might use are like show all running Python processes, find all Python files modified in the last 24 hours, show disk usage for the current directory, check if google.com is reachable, et cetera, et cetera. So yeah, pretty neat. Does say everything's generated by LLMs, so careful. Because you know how it goes, right?
Starting point is 00:18:26 It could be delete all files like this in this directory, and in this directory part, it gets forgotten. RM-RF star, OK. Slash star. Slash star. Anyway, super simple, but you set up an LLM provider. I recently wrote a really cool program that I'm, program, utility, simple tool, that I use that I'm thinking of making public somehow,
Starting point is 00:18:50 but I also don't need another thing to babysit. But basically, if you're in a Git repository, you can just hit a command and it will look at all the new files, the changed files, and then correlate that with the local LLM, coding-based LLM, and says, create me a Git summary of everything. Like the header and then actually a detailed summary
Starting point is 00:19:10 and what happened if you forgot all the things you did. A little bit like this, but that's not out yet. But this is cool. I like to look at this. What did I do on Friday to run on Monday? Yeah, exactly. You could totally do it. And it says, and here it improves it in this way.
Starting point is 00:19:23 Oh, gosh, I did improve it in that way. Look at the show. Aren't I smart? Exactly. You could totally do it. And it says, and here it improves it in this way. You're like, oh, gosh, I did improve it that way. Look at the show. Aren't I smart? And before we carry on, looping back to your topic, the T-strings, Henry Schreiner writes, I've been wondering if this could be supported in the logging module.
Starting point is 00:19:39 Since it's an actual type, it could be detected. That would be cool, right? Maybe have a slightly different output with more information about the parts of be detected. Yeah. That would be cool, right? Maybe have a slightly different output with more information about the parts of the string. Yeah. Indeed. All right. Well, we're back to extras.
Starting point is 00:19:53 I really should have put up. So one of the things I didn't cover about the t-strings. We'll get to my extra first or second. But in the t T string article, there is a link to a whole bunch of examples of other non-silly examples of T strings. We did, he just pig Latin in the article, but there's a bunch of others too. And one of them is a treatment of logging with T strings.
Starting point is 00:20:20 So check that out. My extra really is, I kind of went, speaking of rabbit holes, found out Monty Python and the Holy Grail turns 50 this year. So 50 years ago, Monty Python. I can't believe that. Bring out the Holy Hand grenade. But what are the comments in here? I'm linking to an Ars Technica article. the comments in here, which is, this is, I'm linking to an Ars Technica article. And I learned a new word today because they were, it says they were, MoneyPython and the Holy Grail were nerd gassing before it was cool. So they were talking about nerd gassing and
Starting point is 00:20:57 one of the wonderful discussions in the movie is of using coconuts There because they're supposedly riding horses. They don't have yet. Yeah, there's just some guy banging coconuts and Somebody stops and says like where did you get the coconuts? Oh, we found them No, you couldn't have found them because like they're not native to England. They're tropical So great discussion about coconuts and apparently that is nerdgassing. I didn't know the term. So I looked that up. Nerdgassing was coined in 2008 by John Scalzi, a sci-fi author and blogger. And nerdgassing is the venting nerd, venting, the venting that nerds emit when some often minor detail of a book or movie or TV show, comic book, et cetera, either conflicts with canon or hand waves through some suspect science.
Starting point is 00:21:56 And so I was totally nerd gassing in the, in one of our topics when I went off on what the correct rules for Pig Latin are. Yes, you were. And I do the same thing when people mess up that quote from Captain Picard about may the force be with you. Okay, so let's go on to the next... Nice.
Starting point is 00:22:19 Please write us and tell me that that's wrong. All right, this is it for your extras? Yeah. I would like to also point out for those as a follow-up who don't know because Python, the community has done a poor job of this. All the logos for Python are snakes, but the name Python came from Monty Python,
Starting point is 00:22:35 which is why it's relevant on this show. Yes. Yes. And that's why we have wheels, because they're wheels of cheese, because they used to- And the cheese shop for PyPI and all, yeah. The yeah the cheese kit I mean if you haven't seen the cheese kit from money python you have to go watch the cheese kit because it's yeah that the
Starting point is 00:22:52 rabbit part is my favorite by far okay here's a quote there's not the joke this is actually a real thing so it has a picture of Firefox and it says you either die a hero or you live long enough to see yourself become a villain and underneath it it shows the preferences in Firefox for website advertising, allow websites to perform privacy, preserving ad management or measurement. This helps the site understand how their ads perform, et cetera, et cetera. Like this is built into Firefox now.
Starting point is 00:23:21 And there was like some terms and use changes about how the stuff you get you submit in Firefox is now being used and being shared and so on and whoa right Firefox was like one of the last bastions of privacy like real privacy the antithesis of Chrome which is you know tracking and correlating and reselling everything yeah so both you Brian and me, we care about these things. And for example, Brian use Vivaldi. I use Vivaldi quite a bit. But I also started using Zen, Zen browser.
Starting point is 00:23:57 That's what's actually on the screen right now. And I love Zen browser because of it's such a clean, nice little layout. And it's based on Firefox as well. So when this stuff got announced 10 months ago, or whenever it was, it was over on the Zen browser GitHub repo, there was like, so what is Zen gonna do about this?
Starting point is 00:24:15 And at the time there wasn't a lot of clarity, but now Zen 1.2.1 is out and it's got some features. One of the things that it says, if you go read the full release notes, da da da da da da, it's got some features. One of the things that it says, if you go read the full release notes, da da da da da da, it's got some new features, but in response to recent privacy concerns, bracket about Firefox, we've significantly strengthened Zen's privacy measures.
Starting point is 00:24:37 Previously, we only disassembled telemetry, but other things were being done. Now Firefox telemetry has been completely stripped out of this. Basically they've much like Vivaldi de-Google-ifies Chrome, Zen has had to go to the step of actually de-mozilla-fying? I don't know, whatever what is the term here? Extracting evil. Extracting the in-poopification of... Yeah. and I don't necessarily blame Firefox
Starting point is 00:25:09 they are in a tough spot they've squandered their position quite badly for quite a long time such that if the ruling against Google goes through they lose 90% of their revenue overnight that's a problem but they're also doing good things like starting to create like docs alternatives that we've covered before. But you know, yes things things must be people must be resold and ads must be put upon people and that's the way it seems to be. I don't know. I don't agree with it but that's how it is. Anyway I'm happy to see Zen browser do this. Yeah there's all there's also a ton of cool well there are a handful at least of cool
Starting point is 00:25:45 PyTest plugins that I use that started in Mozilla. So, there's lots of great people that have worked there over the years. And I'm sure still do, a lot of people do. And I suspect not all of them are super psyched about turning on all the ad stuff, right? Just like I'm sure there's people that still work at Google that don't think they should have removed
Starting point is 00:26:06 Don't Be Evil from their tagline, but. Yeah, but those people are evil. Okay, let's keep going. Just kidding, just kidding. Please don't email me. Yeah, email him. It's Michael at. Testandcode.com, okay.
Starting point is 00:26:23 Next, or you go to jail. No, such a fun episode with the that we did last week Yeah, but but I pulled up this episode not because I care about that But I've changed the way that transcripts work so previously we had you know transcripts are every word spoken for 30 minutes or however long the show is and I thought well that should go on its own page you can go and check it out but I would like you to be able to come to the page and hit command F and Let you know what we said about I don't know AI or Pork bun will just pick the sponsor because it doesn't show up too many times
Starting point is 00:26:56 but now the transcripts show up on the main page just as a Section farther down Okay, if you like, but it lets you click on the time link anywhere and play it back as you go. So if you find something in the transcript and you're like, I just want to hear it, you just click right there and boom, off it goes. Put tons of effort into making these transcripts accurate
Starting point is 00:27:18 and good. They're not perfect, please again, don't email me. Say there is a imperfection I have discovered, you were wrong. But we make a lot of effort to say things like PyPI are spelled correctly and other words are correct in here so that when you search for them, they show up. It also powers our search engine that you can just search
Starting point is 00:27:36 and even add to your browser that we talked about before. But transcripts are slightly better and the pages are slightly more useful. So visit the website. Yeah, and that helps us track every part of your life because we know we don't do that. We need just one cookie to get it started. No, just kidding, we have no cookies.
Starting point is 00:27:56 OK, that's it for my extras. Joke? Yeah. This is a re-envisioning of an old joke. I think it's pretty good. There's this person running a china shop and there's a big sign that says China shop and then above it my code base and there's a character here holding a Giant angry looking bull by a nose ring and the person holding it says mind my friend comes with comes in with me and the bull is labeled cursor.
Starting point is 00:28:26 Welcome to the era of AI, huh? I'll just add that one feature. Sure, we only need 27 changes. You don't mind if we do, do we? Interesting. That's funny. So why is this a flashback? This joke actually comes from, this
Starting point is 00:28:38 is the original one from when George W. Bush was president in the US, and the China shop was not code-based, the China shop was social security. Okay. Yeah, something like that. That's, I don't know, somewhere down here in this thread, people talk about stuff, I don't know. Anyway, I think it's a pretty appropriate joke,
Starting point is 00:28:55 it's pretty good. Yeah, yeah, it's funny. Good, good, good fun. Yeah, indeed, indeed. All right, well that's what I had for our joke. Not absolutely hilarious, but amusing, I think. If you want hilarious, you got to go back to 430, episode 430 last week. Yeah.
Starting point is 00:29:11 Yeah. Yeah. And if you haven't listened to that, you have to watch that video because it's excellent. That's right. That's right. Or you go to jail. Or you go to jail. Please.
Starting point is 00:29:19 Listen to it or you go to jail. So, well, once again, wonderful episode. Thanks everybody for listening and we'll see everybody next week.

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