Transcript #360: Happy Birthday!
Return to episode page view on github00:00 Hello and welcome to Python Bytes where we deliver Python news and headlines directly to your earbuds.
00:05 This is episode 360 recorded November 7th, 2023. I'm Michael Kennedy.
00:10 And I am Brian Okken.
00:11 This episode is brought to you by Scout APM. Once again, we'll tell you more about them later.
00:17 Thank you, Scout APM for sponsoring the show. Connect with us on Mastodon.
00:22 All three of our entities are on Fosstodon.org.
00:25 At mkennedy, at Brian Okken, and at Python Bytes. Want to be part of the live show?
00:30 It's open to everyone. We typically record on Tuesdays. More on that in just a second.
00:35 Tuesdays at 11 Pacific time. Pythonbytes.fm slash live. Click on the banner, the image there, and it'll take you over and get notified about when we're doing the live show or just find the one going right there. Speaking of that, next Tuesday, Brian, there will not be a Python Bytes.
00:51 Oh no.
00:52 I am going straight from a vacation directly to a conference. And somehow with all that mayhem, I think it's just, it's going to be too much to try to make it happen. So that'll give people a chance to catch up. If anyone's behind, they can catch up on all the things. Yeah. And if not, it'll give them more time to gather up ideas to send to us to say, you know, you all didn't cover it last week, which would be true. Even I can tell you that even now, no matter what it is. And thanks to them and say, you should check this out. We always appreciate when cool things we didn't quite know was out or out there that got sent in to us.
01:28 Yes.
01:29 Indeed. Happy birthday. Happy birthday, Brian.
01:31 Happy birthday.
01:32 Yes. Happy birthday. Look at this. I go to Python Bytes and I go to episodes. I go way to the end.
01:38 2016, November 7th.
01:41 Oh, nice.
01:43 Yeah. We are seven years old today.
01:46 Wow.
01:47 How awesome is that?
01:48 Yeah. We'd be like in second grade if we were a child.
01:51 I know. Working on our writing. We're doing basic arithmetic. No, this is really awesome. I mean, I don't know what my expectations were when we started the show. I thought it'd be a cool format. I thought people would enjoy it. But seven years together, that's a long time.
02:05 It doesn't seem like that long. This is just a blast. Yeah.
02:08 Yeah, it sure has.
02:09 Yeah.
02:10 So thank you to everyone for listening and encouraging us and so on. If you didn't, obviously, it would make a lot of sense to keep going, now would it?
02:17 No. No.
02:18 All right. Take it away.
02:20 Well, this is a story about coverage. So Python coverage, we're covering, trying to see if your test suite hits all of your code. So this story comes from a thread on Mastodon. So Pamela Fox, we've had her on, a great person. She just asked about coverage testing and covering stuff.
02:44 Apparently, with abstract base classes, there's a weird thing where the normal thing is to say if false. Now, whatever. That's not what this topic is about. But how do we, that's clearly never going to run within your code. So how do you tell coverage to not worry about that? She said, normally, this is a way to do it is you can add a pragma no cover to the code, but that adds it to the code and it's a bit ugly. So Hugo, I can't remember his last name, Hugo mentions Hugo VK on Mastodon said, said, Hey, look at the configuration docs, you can, you can hide it away in a cubic file. So I went and looked at that because I knew you could do that. But I was curious, what do you recommended? And he point it points right to this, this coverage RC example with a exclude also. Now this was a new thing to me. I hadn't, I didn't, I hadn't noticed this. Apparently it came out in February and I somehow missed it, but February of 2023. So it's not, hasn't been out forever. I've been using coverage for many years and it lists, there was a exclude lines, but it also, it like overrode other stuff. So the recommendation now is to use exclude also. And the example for her would have been, well, there's an example of if zero, you'd just say a false instead. But I often have like, if I've got like a, like some debug stuff at the bottom of the library, I might have an if name equals main just for the heck of it, just to run some test code or some debugging code. That's not really I don't, I'm not, I don't care if that's covered by my tests. So, and it's not going to be so excluding that is cool. So I'm using this in a bunch of projects now. So anyway, the exclude also going on the story, this is neat. And I said, Oh my God, the nice, the exclude also seems brilliant.
04:43 And apparently Hugo was pointing to that coverage doc, but didn't, didn't know about exclude also yet, even though that's what, that's how I learned it was from him. And so anyway, couple of the reminders of you don't, it, the exclude tells you what line, but it's really the top of a, like a, if block, like an if statement, it's gonna, it's gonna exclude the entire block that comes after it. That's how you do that. That's cool. And so Hugo went off and went ahead and just wrote a article saying, Hey, exclude also with coverage that pie is pretty cool.
05:18 And so he shows an example of how to use that. So we're linking to all of that. It's kind of just a fun story, how we all like lined up with that. So anyway, that's excellent. And again, happened on Mastodon. Everyone come join us. Yeah. All right. Great. Yeah. Very cool. Very cool. All right. On to the next one. And for me, this is a bit of a jet brains type of episode. I got a couple of topics on there, not sponsored by jet brains, just a fan things. I think you would like, this one is really unique. So Brian, have you heard of writer side? No, I bet you've heard of PyCharm. Yeah. I use it every day. Yeah. Same. And web storm. Yeah. Right. Web storm. And I use the full on IntelliJ to build the flutter stuff and Android studio. All these are like variations of basically the same foundational IDE core. And then they have, you know, focuses a bunch of plugins and other features built in, right. By charms about PyCharm. So writer side is something that's really new to me in terms of a concept. So I wanted to cover it. It's in early access right now. It's free. Eventually there'll be a free plus paid version, like PyCharm community, PyCharm pro and writer side says, right. Test, build, and publish the best tutorials, API documentation, API references. Basically it's an IDE for documentation. Ooh, cool. Huh? And then look at this test. You can even test your docs. Okay. That's cool. Okay. So the way it works is you come in and it says, I want a new project. You can go and, and create a new right side project.
06:50 And let me see if I can quick, get it to say what, Oh, I don't have it installed on this computer.
06:56 Anyway. So you get different kinds of supports markdown and it also has this cool, like semantic concept. So lean markdown is I just write, you know, bracket URL, name, parentheses, URL link. So on. But if you have a section like table of contents or some other section you want to put in multiple places, it has a way to import those. So you can write them in certain areas and make sure you pull them in. It has supports for diagrams. We'll attack a bunch of cool things, right. Even gives you like dropdowns out of like existing stuff in there. So super cool. A hundred plus on the fly inspections. I think this is cool. It has the, the whole docs as code pipeline. That's a word I've not heard or as a thing I've not heard, but yeah, pretty cool.
07:47 Does rest API docs generation, et cetera. What do you think? I think I want to try it out.
07:53 That's pretty cool. So here's the thing. If you use PyCharm, you can just go and install it as a plugin into PyCharm and you don't even have to have a separate ID. It just becomes a new feature and so on. Okay. I'll try to, I was just thirsty to go do that right now, but you should. Yeah.
08:09 So installs all of those different things. It's like I said, it it's free, free for now, even the premium features, but eventually the premium features will go pay it. I don't know what constitutes premium or not. Has Markdown and XML support. How do you build and publish your docs?
08:26 It lets you build your documentation locally, produces zip file and upload it to GitHub pages, AWS Netlify and other hosting services. If you're using a CI CD server, you can provide a builder script as a Docker container. Okay. That really is docs as code. So anyway, I think this is pretty interesting. It'll be cool to see where it goes. Yeah. Nice. Well, I'm currently using PyCharm for writing my blog. So, okay. Yeah. And yeah, it already had like some like Markdown preview support and it would launch Hugo before me. So yeah. Okay. It'll be fun to try this out.
09:02 Nice. Yeah. We both have our blogs on Hugo at what's the extension there.io. Go Hugo.io. Super, super good. I use Pypora for writing it online, which is a really nice Markdown editor. Super clean, but really, really good. So either, either of those work, but yeah. Yeah. Well, I think this documentation thing is cool. I can't use anything that doesn't allow Vim syntax. So.
09:25 I see you're partly broken. I'm partly broken. I can appreciate that. I can appreciate that.
09:32 All right. How about we take a moment and thank our sponsor and tell everyone about Scout APM. Yes, let's. Let's do it. So yeah. Thank you to them for supporting this episode.
09:43 They're supporting a good chunk of them. So please check them out because supporting them supports us as one of the major ways. So if you're tired of spending hours to find the root cause of issues impacting your performance, then you owe it to yourself to check out our sponsor Scout APM.
09:58 Scout APM is the leading, a leading Python application performance monitor tool that helps you identify and solve performance abnormalities faster and easier. Ties bottlenecks such as memory leaks, slow database queries, background jobs, and the dreaded N plus one query problem that is common in ORMs with lazy loading and more directly to source code. So you can spend less time debugging, more time building, especially when it's not errors. It's just slow, right? That's extra tricky. You'll love Scout APM because it's built for developers by developers.
10:29 It makes it easy to set up and deliver insights in less than four minutes.
10:32 You just pause this episode, pop over there, set it up real quick, and you'll be right back. And it'll be like, you barely miss a beat. So start your free trial and get instant insights today.
10:42 Visit pythonbytes.fm slash scout, and please use the link because that lets them know you came from us and not from the Google. More about Google later, actually. Yeah. So pythonbytes.fm slash scout links in your podcast player show notes. Thank you to Scout APM for supporting the show.
10:59 Awesome. Thank you.
11:00 Yeah. Yep. Brian, what you got for your final one?
11:04 I've got actually multiple final ones. I've got extra, extra, extra.
11:08 Yeah, I love extra, extra, extra.
11:10 Okay. So a few little-ish topics, not little-ish to the people involved, of course. PSF has announced on October 27th, a new community communications manager and what was her name again? Marie Norden. So congrats, Marie. And we look forward to seeing what you're up to as a communication manager. So kind of neat. I liked it. I'm liking that the, I don't know, I just like to pay attention to what's going on with the PSF and all those people involved with Python help out a lot. So thank you. The next extra is there's another podcast.
11:52 We love podcasts. We have a few ourselves. And the new one that I want to talk about is core.py. This I've listened, it has two episodes out so far, and it's two of our favorite people, Pablo. Okay. I'm not going to try to pronounce, but do you know how to pronounce that name?
12:07 Pablo.
12:08 Pablo Galindo.
12:09 Okay. Pablo and Lucas Lange or Lukash. Lucas. Okay. I'm doing bad today. So very core contributors and really doing a lot of great work for the Python community. So hearing from them is nice.
12:26 The first two episodes, the first one was talking about what the first core sprint was in, in Berno, Bernio, or no. Okay. Name's name's hard. Talking about the first sprint for 3.13. So that was kind of interesting. All the, all the neat stuff they're working on for 3.13. And then the second episode is a complete episode dedicated to talking about the PEP 703, removing the gill.
12:52 I think we talked about this last week. It was either last week, the week before, but removing the GIL kind of going on as a flag. So an optional thing for 3.13, but there's a lot of, there's a lot of information around there. There's a, and it's kind of neat that these, these are long. So these are the first one's an hour and 11 minutes. The second one's an hour and 14 minutes, kind of a deep dive into some core nitty gritty Python topics. And it's kind of, it's, it's nice to hear right from, right from the horse's mouth sort of a thing. So. Yeah, it's awesome. Pablo and Lukas are both awesome developers, massive contributors. So all good insights. Yeah. This is news to me as well, but yeah, very, very cool. It's fun. The, the, the last one we talked about I talked about a, or I showed a regular expression crossword puzzle last week. And Kim, I'm going to, I practiced his name cause it's cool. Kim Von Vick. No, I did it wrong. Kim Von Vick there. Kim passed this in it's at reg, regex crossword.com and it's kind of awesome. So I played with it for a while and it actually is, it's serious. It's not a joke. It's trying to teach you how to do regular expressions through starting with simple and then complicated crossword puzzles around regular expressions. And it's, it's like actually kind of fun. So I was, I wasted like 20 minutes the other day playing with this. So. Nice. And Kim is in the audience having said spot on, Brian. Nicely said. Well done. Awesome. That's those are my extra, extra extras. So. Can we go back to the PSF one real quick? Yeah. PSF. Okay. Yeah. So I also want to say welcome Marie. That's awesome. Very cool to have you here. I think building out the communications is a big deal.
14:46 We pointed out that the PSF is now on Mastodon with actually a huge number of followers straight away. So that's really, really cool. And probably, probably something to do with her work. Maybe you know, the timing lines up anyway, if she's looking for a project, Brian, what's your domain name? What's your, for your blog? Python test.com. Mine's mkennedy.codes. Just cool. What do you think the PSF should be? Blogspot.com like as in Google. Oh, maybe they should, maybe you should like look on getting that a little more like, you know, python.org slash blog or blog.python.org.
15:26 I don't know. Like just seems like it would give it some more. Blogspot. Yeah. I mean, that's a blast from the past. I do appreciate the flash from the past. Like it's that and the GeoCities. Pretty awesome. Got my blog world. Making all kinds of friends. I know. No, I mean, I'm serious. I think it would be like if, if she's looking, she's going to be busy of course. But if like one of the things I think would be nice is to have like a more like focused proper at home on Python somewhere, somehow blog domain, but maybe not like blog.psf.org or something. Yeah, exactly.
15:58 Something like that. Right. You probably could set up the custom domains and blog spot. Like I know you can't have WordPress. So pretty small, but I think it would be cool. I've always thought it should be something like that to learn just to like, when you see this stuff posted, it's not always some random blog. It's like, this is the official PSF blog. I don't mean that as a criticism. I mean, it's like, Hey, this is encouragement. Like maybe something that shouldn't be too hard. Yeah. All right. You ready for it? I'm now I'm back to criticism. You ready for my next one? Yeah. All right. So I've said this before, but Google seems to just have, especially the Chrome team in particular, but I know this is like intertwined deeply with their ad team.
16:34 And you know, those two things largely make up Google. So they have this premise that I think is really just not the right way to think about the internet and the premises, the internet should be constructed so that users can be identified, tracked and retargeted and hence resold. That is the, that is how the internet should be. But you know what, privacy is important. So how do we make those two things congruent? And I just strongly disagree with the fact that the internet should be constructed in a way to sell people on purpose, to, to resell information about people, to retarget them, to track them, to create like shadow profiles of them. Right. But there's now been three separate ways in which the web team have tried to re-imagine how the web fundamentally works so that that premise holds, so that that holds true. Right. So they started out with, we talked about it way back when was Flock, federated learning of cohorts, which went nowhere because people are like, do I really want to be grouped into these, be told that I'm in this, this group or that group, like, Hey, here comes the divorced guys. Let's see what they can do.
17:41 Or, you know, right. You name it, whatever group it is, that's not ideal. Right. And then they came out with something called privacy sandbox, which also went nowhere, but it was based on the same basic premise. Like we're going to get rid of cookies, but how do we set up things when cookies are gone so that we can still retarget and track you. Now, the last attempt was this thing called web integrity, and it's been kind of sold as DRM for the web. So what they can do is they can say, we only are going to this website will only allow browsers that like integrate with this web integrity thing and can prove who they are. And we accept that browser to visit our website to show the HTML. Otherwise it'll say, no, you're using Vivaldi and we don't think Vivaldi belongs on your page or you're using this phone browser or whatever. Right. And the idea was it was not terrible. It was like trying to prevent people from scraping sites illegally. It was trying to prevent them like robots from doing other bad things, phishing scams and so on. But it also was like, we need to individually fingerprint and identify every single user with like a unique ID. That'd be nice. Wouldn't it? We can just have that. I mean, other companies don't get the third party cookie, but we get this global one. Right. And so guess what? The third attempt has been like fought off and defended and it's no. So Chrome, the news is Chrome will not be proceeding with web integrity, integrity API being by many to be or DRM. And if you go and check out like sort of not the cancellation announcement, but just the analysis of this over on Ars Technica, it's not ideal. Like some of the quotes are user one user calls the idea absolutely unethical and against the open web. Another one says they cannot believe this is even being proposed.
19:37 A third still says, have you ever stopped to consider speaking to Google or Chrome team that you're the bad guys? Like it's crazy. So anyway, three strikes. Are they out at Google?
19:49 Will they stop? Come up with something else. Yeah. But all of these attempts are because of that, that core assumption of the web, you must be able to track and target people. So now how can we make privacy? Like, wait, wait, wait, let's, can we just not like, just not do that. Yeah. Like the way we sell ads is we have intro, we have content and we sell ads that are related to that content.
20:10 We don't track people. We don't retarget them. And Google could just as they know what is on pages.
20:16 They have like the biggest search index in the world. They could sell ads based on the content of the videos of the, of what's on the page. But instead they keep trying to like take their biggest browser and turn them into like super spy machines so that they can get like, you know, a few more percent ad revenue by retargeting and selling that stuff. So it's, I for one, like it now as a content creator myself, the, there is some stuff that I kind of get. I don't want to attract people, but I do want to know like which pages are popular and which ones are not. If a, if a blog post is does well or does not do well, which ones do better? And I'd like those numbers to be kind of valid. It would be great if they weren't bots and stuff like that. if there's a way to do that. So that, that premise of can we figure out what's popular and what's not, that's, I think that's fine, but we don't need to track individual people. I mean, I was starting to imagine if, if this was in the rest of your life, like you're just walking down the street and you think about something. So you look up and, and then you get home and Google says, Hey, I noticed that you were looking at flags the other day. So here's a bunch of flags that you could buy. I'm like, I wasn't looking at it. I was just glancing in that direction. It was colorful. I'm sorry. You know? Yes, exactly. Exactly. It's yeah. That's a lot like that. And a Christian also out there points out at a pretty interesting angle from blogspot that, Google may kill it off at any time. Right. That's like one of, one of the Google things like reader it's out, Gmail, old Gmail, it's out. We're going to give you our inbox.
21:52 We're going to cancel that and give you the new one. Right. There's just like, there's not a lot of long-term support to a lot of the Google projects. And so they might decide it. It's not worth us to focus on anymore. So proactive, it would be better. I'm sure they would give a pretty good runway, but still, yeah, that's a good point. It was a good point. All right. You had your extra, extra, extra moment. Do you have more extras? I do have more extras. All right. There's a couple.
22:17 Okay. I am working on the second phase of the complete kite, PI test course, working with projects and I'm just, just recorded all of the mocking, chapter and I should get, have that, up. I'm going to edit it tonight. So it should be up shortly, either today or tomorrow I'll have the mocking and I know mocking is a hard thing to get your head around. So this was a fun one to record. So that'll be cool. I also wanted to, shout out to PI charm.
22:46 we talked about Jeff brains, PI charm is, helping promote this course by, giving me a whole bunch of, coupon codes so that people can try out PI charm pro. so if you're in the course, send me a note to say, Hey, I want to try PI charm pro and I'll send you a, a, a, a free code to try it out for a few months. Yeah, that's cool. the other thing with PI charm is they're going to do, they invited me on their webinar series. I'm going to do, do, do enough testing by test to the rescue webinar on November 21st. So if you'd like to hang out with me even more than you do on Tuesdays, Hey, it's a Tuesday also, next Tuesday, if you hang out with me twice, so, or actually the Tuesday after the two Tuesdays, next Tuesday, hanging out with you zero times. Yeah. Zero times. And then we'll make up for it.
23:33 So exactly. That's awesome. That's, it looks like a really good webcast. and Stephen got my picture on it somewhere. There it is. Neat. Anyway. how about you? Do you need extras?
23:43 I do have some extras. Let's see. So just real time follow-up by the way, check out killed by google.com. Oh God. Google podcast was just killed. Google domains was killed. pixel pass was killed. let's see what else we got. YouTube stories, et cetera, et cetera. So there's just, you know, there's a, like, look at the size of that scroll bar, Brian. I mean, to be fair, they try out a lot of stuff, but some of the stuff like, like was going for a long time, like Google bookmarks 2005 to 2021. And there's like, yeah, we don't want to do it anymore.
24:18 yeah, well, exactly. And I think it's, it's fair. there's a really interesting blog post by, somebody who is on the Google docs team who talked about how a lot of, a lot of big tech companies and being on the Google docs team was clearly inside. Google said that, look, a lot of this stuff happens because the culture is about like value promoting and sort of giving raises and advances to folks when they create something new and powerful, not just maintaining and polishing something that's around. So there, apparently there's something about how, how credit is given for say maintaining Google inbox versus building some new other thing that would replace it. Right. that seems to be a little bit more value according to the guy from the inside, not me. All right. But that's just a throw that out there. Oh, what's up. Okay. So I got a bunch of small ones here. Let's talk about them real quick. This is just a shout out to Century, you know, Century it's been a sponsor for on the show. He said, we just gave $500,000 to open source maintainers. So I just wanted to give them a little bit of a shout out and a little bit of credit to say, awesome. Well done Century. Century itself being open source and then them also paying it forward like this. So I think that's pretty cool. Yeah, that is neat. Yeah, that is quite neat. we talked about, you talked about rough and the integration, basically rough format and it being near ready. And I said, okay, well, what are the settings that actually give you like all the features of reformat code and those types of things, but based on rough instead of what's just kind of built into PyCharm, which is fine, but it doesn't do rough formatting. So I'm going to share a link to a picture that shows you all the settings. So in PyCharm, if you get the rough extension and you say run rough, when code is reformatted, that is command alt L or control alt L, like you hit that, that used to run PyCharm formatter. Now it just runs rough slash space format on the file. Cool. Right? Yeah. Yeah. And you can also say, show rule on code inspection, which like you hover over, it'll show you the rough rule that's violated. use rough format that when you have to check or it, it only inspects it, it doesn't actually do anything. And then you can specify the rough executable. it'll prefer to use the one in your virtual environment if you have one, but you can also like, you can see, I have a global pip X rough installed. So I don't have it in the project. I don't really care. It's just a format, you know? So anyway, if people want to get it going, that's the, that's the magic right there. Get the rough plugin and then check those boxes. How have I not thought to do a pip X on that yet? That's okay. Right. Cause you never import rough. Right? No, right. Yeah. Yeah. It's not a tight, like py test. You could pip X it, but you end up a lot of times wanting some feature of the actual library in yours, in your code. Right. But with rough, you just want to run it.
27:10 So yeah. The only reason I can see to keep it in your virtual environment is if you want to maybe pin it to a lower version, like when it did not change at all for some reason. But other than that, yeah. All right. What else we got? back to PySharm one more time. I told you this is kind of the JetBrains episode, but in the pro version, have you ever noticed now that they have that little like, three stars AI helper thing, Brian? Yeah. Played with it. Played with it a little bit. One of the things I don't use it very much for coding, surprisingly. It's like, I don't know. It seems like it should be awesome. And I just don't use it. But what I started, I noticed that there's one by the git commit message. So when you go, you make a bunch of changes and you could go type out what those changes were, or you just press that little button. It's getting, it used to be like, we have changed these files. I'm like, okay, great. Well, I could, I could tell you that, like, that's not that useful, but it's getting really good. I'll give you two examples. I'm working on this project. That's doing, some, text to speech, sorry, speech to text processing. It's got like a background service thing. It's using assembly AI.
28:10 And it was, it's also has rough working on it. So two different commits. One, I made some changes to this background service thing that like just runs jobs. Cause he's like creating transcript can take a while and other stuff, right? Yeah. Which this background service, I should talk about it at some point. It's awesome. It's like a infinite loop that runs in the background on an asyncio event loop. So while true, but it's processing just async and a weight, not like threads or other processes or stuff. It's super cool. But anyway, the part where it was actually doing all the work, like get me a job, run the job and realize, Oh, there's no really try except on that. And if it crashes, it'll like take that event loop down. So I just put try except around those and a few other pieces. And so I just said, what did I do? And it said, the core commit message was add exception handling in the background service up high.
28:54 And then it explained in a detailed message, part of the commit introduced, try accept blocks to handle potential exceptions and pending jobs, start jobs, processing, and run pending job methods in the background service. This change enhances error handling and makes the service more robust by preventing crashes. If a job or episode cannot be fetched, or if an unknown job action is encountered, where job action isn't in, it's an enumeration that it has a match clause on and the default case raises an exception. That's nuts, right? Yeah. Then another one, I added assembly AI to the requirements via pip tools. And then pip tools also updated rough while it did it back to that. And so that's what it says. That's the commit message basically. And then it says this commit includes the addition of assembly AI package as part of the requirements.txt file required to introduce new speech to text features in our application. Okay. I didn't tell it that that's awesome. Right? And then rough, the rough version is also updated from 0.1, 0.3 to 0.4 due to bug fixes and stillability improvements in the new version. I'm guessing it's getting that from the change log. And it also adds added new dependencies based on assembly. Yeah, that's all just, I did work for half an hour and I pushed the button. Okay. So this is really pretty cool, but it reminds me of that comic where like, there's one person that says, I've got three bullet points in it. It expands it into these three paragraphs. Yes. And then you do it.
30:16 The other, and the person on the other end is like, saying, this is so cool. I can take this long text and I can make it into three bullet points. Yeah. What you see on the screen, the, the bolded text, the short version. So that's what shows up in the get commit message. And then it has like, this is the, if you expand the commit for more details, this is what it says. Okay.
30:34 Okay. That's pretty cool. It's not as in your face as it could have been, but I was super impressed. I'm like, dang, that's, that's pretty good. Yeah. Right. The fact that it knew there's going to be an exception raised. If the enumeration called job action, a string is passed wrong. And then it says, that's why I added the exception block. Like that's, that's pretty good.
30:53 And actually this is the part where I really am looking forward to playing with. I, I, I'm a lot of my work. I already know what I'm doing. I don't need to look up how to do stuff too much. I mean, yes. Yeah. I'm kind of with you on that, but yeah, but, but the, what did I do in the last day? What all did I do for like a, a commit message? That's, that's a great thing. I got, I got, I can't wait to play with this. Yeah. That's a pretty cool. Just hit the thing by the commit message. All right. Carrying on with carrying on with the LLM type stuff. So I talked about GPT for all, and I said, it's a really cool app that you can run. I already talked about it, but like, you know, run locally, it doesn't cost money. And also it doesn't share your data off your machine. All those things are cool. I missed this and it's cool enough that I want to point it out because it's just pretty neat. So with GPT for all, one of the things that comes with that is not like in your face from the UI, it's barely visible from the UI is it comes with a, a rest API. So what you can do is it shows you how to create a FastAPI server and a Docker image that will run the selected model that you want in a Docker image and then become an API. So you can program against if you wanted to use the GPT for all as an API for your code or your project or your home server or whatever, just run, create this and run the Docker container. Then you have a open AI compatible API, but it is running like locally on your system. That's pretty neat.
32:24 Isn't that neat? Yeah. So yeah, I won't say more than that, but I'll link to it, people can check it out. All right. I have some follow-up from last week on my comments about PyCon requiring masks.
32:35 And I just, the more I've been thinking about this, Brian, you don't have to chime in if you don't want, I totally understand, but it just seems really incongruent with the way that things are kind of around us in general. And I'm just super disappointed because I, I don't know, I already spelled out why I think it's tricky to go trying to do all the podcast stuff and networking.
32:55 Yeah. But, you know, I, as I was thinking about like what other thing in, in day-to-day life these days requires you to have a mask. And I couldn't think of one, not going to the doctor, not going to schools, not going to shopping. So I thought, well, okay, well maybe, maybe I'm, maybe I'm being silly. Maybe it's just like conferences and stuff were different. Right?
33:14 So I Googled as many conferences as I could think of. GitHub universe is running right now with some thousand number of attendees, no mask requirement. CES has, you know, people say, well, there's 2000 people coming. That's like a lot, right? That could be like a super spreader event. You got to not, we got to keep this in mind, Michael, right? CES, 180,000 attendees, no mask mandate, South by Southwest, 150,000, none. KubeCon just ran or is running now, 12,000, none. Adobe summit, 10,000 attendees, none. Mobile world conference in Barcelona, 110,000. Dev week, developer week rather, 2000. Microsoft ignite next week, 4,000. WWDC, not sure how many people went, but this is a mini conferences as I could find that I Googled when I thought about this.
34:00 Not one of them has the same policy. So it's worth considering. Again, I think it's, I think it's going to hurt attendance and by way of that hurt the support for the PSF.
34:12 All right. Shall we lighten it up with a joke? Yeah. You already had your regular expression game, regular expressions. They're kind of, they're kind of magic when they work. It's like, they really are like magic. You're like these couple of symbols and it goes into a million word piece of text and it goes pop here, here are the seven things. And I've even named the little sections of it for you. You can grab it. Right. But when you're done working on your regular expression and you want to make a change or you want to take someone else's, I don't know. I kind of think of them as, as right only. Yeah. How about, how about you?
34:45 Well, I mean, I did learn them while I was writing Pearl. So it kind of goes with the territory.
34:50 Yes. You probably know them better than I do. So the joke and you know, take this lightheartedly as it is. The joke is what is the plural of reg X? Okay. Regrets.
35:00 Regrets. Reg X and regrets.
35:03 Well, they are, they are amazing, but they are also tough to debug. Reg X. I've had a few.
35:11 Exactly. Exactly. Yeah. I got a few of them. All right. Well, that's it for our stuff. Yeah.
35:18 You got anything else? I don't. I think that was a good episode. It was an excellent episode and happy birthday. Thanks everyone for seven years. Yeah. That's really incredible. It was pretty cool. We had thought about it sooner. I just got a notification like an hour ago that, okay, it's the birthday. I'm like, Oh, we could have done more Brian, but I think this is plenty.
35:36 I could wear a hat. Yes, exactly. Yeah. Well, great to see you as always. See everybody a couple of