Python Bytes - #360 Happy Birthday!

Episode Date: November 7, 2023

Topics covered in this episode: exclude_also with coverage.py Writeside * Extra, extra, extra* Chrome not proceeding with Web Integrity API deemed by many to be DRM Extras Joke See the full show... notes for this episode on the website at pythonbytes.fm/360

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 360, recorded November 7th, 2023. I'm Michael Kennedy. And I am Brian Ocken. This episode is brought to you by Scout APM. Once again, we'll tell you more about them later. Thank you, Scout APM, for sponsoring the show. Connect with us on Mastodon.
Starting point is 00:00:22 All three of our entities are on fastodon.org, at mkennedy, at Brian Ocken, and at Python Bytes. Want to be part of the live show? It's open to everyone. We typically record on Tuesdays. More on that in just a second. 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 Bites. Oh, no. I am going straight from a vacation directly to a conference.
Starting point is 00:00:57 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. I can tell you that even now, no matter what it is. And thanks to Dan and say, you should check this out.
Starting point is 00:01:22 We always appreciate when cool things we didn't quite know were out there that got sent in to us. Yes. Indeed. Happy birthday. Happy birthday, Brian. Happy birthday? Yes, happy birthday. Look at this.
Starting point is 00:01:34 I go to Python Bytes and I go to episodes. I go way to the end. 2016, November 7th. Oh, nice. Yeah, we are seven years old today. Wow. How awesome is that? Yeah. We'd be like in second grade if we were a child. 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.
Starting point is 00:02:02 But seven years together, that's a long time. It doesn't seem like that long. This has just been a blast. Yeah. Yeah, it sure has. Yeah. So thank you to everyone for listening and encouraging us and so on.
Starting point is 00:02:14 If you didn't, obviously, it would make a lot of sense to keep going. No, it wouldn't. No. No. All right. Great. Take it away.
Starting point is 00: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, you know, and covering stuff. Apparently with abstract based 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 within your code. So how do you tell coverage to not worry about that. She said, um, uh, there normally, this is a way to do it
Starting point is 00:03:06 is you can add a pragma, no cover to the code, but that adds it to the code and it's a bit ugly. Um, so, uh, Hugo, uh, I can't remember his last name. Hugo, uh, mentions Hugo VK on Mastodon said, um, said, Hey, uh, look at the configuration docs. You can, you can hide it away in a KVIC file. So I went and looked at that because I knew you could do that, but I was curious what he 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, um, there was a, uh, exclude lines,
Starting point is 00:03:56 but it also, it like overrode other stuff. So the, the recommendation now is to use exclude also. And the example for her would have been uh well there's an example of if zero you just say if false instead um but i often have like if i've got like a like some debug stuff at the bottom of the library i might have it if name equals main just for the heck of it um just to run some test code or some debugging code that's not really um i don't i'm not i don't care if that's covered by my tests. And it's not going to be.
Starting point is 00:04:29 So excluding that is cool. So I'm using this in a bunch of projects now. So anyway, the exclude also going on in the story. This is neat. And I said, oh my God, nice. The exclude also seems brilliant. 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
Starting point is 00:04:52 how I learned it was from him. And so anyway, a couple of the reminders of you don't it the exclude tells you what line but it's really the top of like a if a, if block, like an if statement, it's going to, it's going to exclude the entire block that comes after it. That's how you do that. That's cool. Um, and so Hugo went off and, uh, went ahead and just wrote a article saying, Hey, exclude also with coverage.py is pretty cool. Um, 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
Starting point is 00:05:31 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 JetBrains type of episode. I got a couple of topics on there, not sponsored by JetBrains, of episode. I got a couple of topics on there. Not sponsored by JetBrains, just a fan. Things I think you would like. This one is really unique. So Brian, have you heard of RiderSide? No.
Starting point is 00:05:54 I bet you've heard of PyCharm. Yeah, I use it every day. Yeah, same. And WebStorm. Yeah. Right, WebStorm. 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.
Starting point is 00:06:13 Right. PyCharm is 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 and PyCharm Pro. And writer side says, write, test, build, and publish the best tutorials, API documentation,
Starting point is 00:06:34 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.
Starting point is 00:06:43 So the way it works is you come in, and it says, I want a new project. You can go and create a new right side project. And let me see if I can quick get it to say what. Oh, I don't have it installed on this computer. Anyway, so you get different kinds. It supports Markdown. And it also has this cool semantic concept.
Starting point is 00:07:04 So clean 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, LaTeX, a bunch of cool things, right? Even gives you like dropdowns out of like existing stuff in there.
Starting point is 00:07:35 So super cool. 100 plus on the fly inspections. I think this is cool. It has 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. Does REST API docs generation, et cetera. What do you think?
Starting point is 00:07:51 I think I want to try it out. 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.
Starting point is 00:08:04 Okay, I'll try to resist the urge to go do that right now. But you should. Yeah, so it installs all those different things. Like I said, it's free for now, even the premium features. But eventually the premium features will go paid. I don't know what constitutes premium or not. It has Markdown and XML support. How do you build and publish your docs?
Starting point is 00:08:26 It lets you build your documentation locally, produce a 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.
Starting point is 00:08:44 It'll be cool to see where it goes. Yeah. Nice. Well, I'm currently using PyCharm for writing my blog. So, okay. Yeah.
Starting point is 00:08:51 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. Nice. Yeah.
Starting point is 00:09:02 We both have our blogs on Hugo. What's the extension there? .io. GoHugo.io. Super, super good. I use Typeora for writing it online, which is a really nice markdown editor. Super clean, but really, really good.
Starting point is 00:09:17 So either of those work, but yeah. Yeah. I think this documentation thing is cool. I can't use anything that doesn't allow Vim syntax. I see you're partly broken. I'm partly broken. I can appreciate that. All right.
Starting point is 00:09:33 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. 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.
Starting point is 00: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 and more time building. Especially when it's not errors, it's just slow, right?
Starting point is 00:10:23 That's extra tricky. You'll love Scout APM because it's built for developers by developers. It makes it easy to set up and deliver insights in less than four minutes. 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. Visit pythonbytes.fm scout and please use the link because that lets them know you came from us and not from the google more about google later
Starting point is 00:10:51 actually yeah so pythonbytes.fm scout links in your podcast player show notes thank you to scout apm for supporting the show awesome thank you yeah yep off to you brian what's what you got for your final one i've got actually multiple final ones i've got extra extra extra uh yeah i love extra extra extra okay so uh a few little-ish topics um not little-ish to the people involved of course uh psf is announcing has announced on october 27th a new community communications manager, and what was her name again? Marie Norden. So congrats, Marie.
Starting point is 00:11:29 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 um the next uh extra is um there's another podcast um i we love podcasts we have a
Starting point is 00:11:54 few ourselves um and the new one that i want to talk about is core.pi 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 Pablo. Do you know how to pronounce that name? Pablo. Pablo Galindo. Okay, Pablo. And Lucas Lenga, or Luke, Luke, Lucas. Okay, I'm doing bad today.
Starting point is 00:12:17 So very core contributors and really doing a lot of great work for the Python community. So hearing from them is nice. contributors and really doing a lot of great work for the Python community. So hearing from them is nice. The first two episodes, the first one was talking about what the first core sprint was in in burnout. Bernie Oh, oh, okay. Names names hard talking about the first sprint for 313. So it was kind of interesting all the other neat stuff they're working on for 3.13.
Starting point is 00:12:51 And then the second episode is a complete episode dedicated to talking about the PEP 703, removing the gill. I think we talked about this last week. It was either last week or the week before, but removing the gill, kind of going on as a flag. So an optional thing for 3.13. But there's a lot of information around there. And it's kind of neat that these are long. So 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 nice to hear right from the horse's mouth sort of a thing.
Starting point is 00:13:24 So that's fun. Yeah, it's awesome.ablo and lukash are both awesome developers massive contributors so all good insights yeah this is news to me as well but um yeah very very cool it's fun um the the the last one we talked about um i talked about uh a or i showed a regular expression crossword puzzle last week. And Kim, I'm gonna practice his name because 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.
Starting point is 00:14:15 And it's like actually kind of fun. I wasted like 20 minutes the other day playing with this. Nice. And Kim is in the audience, having to say spot on Brian. Nicely said. Well done. Awesome.
Starting point is 00:14:30 Those are my extra, extra extras. 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.
Starting point is 00:14:41 Very cool to have you here. I think building out the communications is a big deal. 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 something to do with her work, maybe. You know, the timing lines up anyway. If she's looking for a project.
Starting point is 00:15:03 Brian, what's your domain name? What's for your blog? Python test.com. Mine's mkennedy.codes, which is 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. I don't know. Like just seems like it would give it some more. Yeah. I mean, that's a blast from the past.
Starting point is 00:15:31 I do appreciate the blast from the past. Like it's that and the geo cities. Pretty awesome. Got my blog. We're all making all kinds of friends. I know. No, I mean, I'm serious. I think it would be like, if, if she's looking,
Starting point is 00:15:44 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 or somehow blog domain. But yeah, maybe not. Like blog.psf.org or something. Yeah, exactly. Something like that. Right.
Starting point is 00:15:59 You probably could set up the custom domains and blog spot. Like I know you can on WordPress. So pretty small, but I think it would be cool.'ve always thought it should uh be something like that to learn just 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 hey something that shouldn't be too hard yeah all right you ready for i'm now i'm back to criticism you're ready for my next one yeah all right so i. 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.
Starting point is 00: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 premise is the internet should be constructed so that users can be identified, tracked, and retargeted, and hence resold. That is how the internet should be. But you know what?
Starting point is 00:16:53 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 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
Starting point is 00:17:14 ways in which the web team have tried to reimagine how the web fundamentally works so that that premise holds so that that holds true right so they that holds true, right? So they started out with, we talked about it way back when, was FLOC, Federated Learning of Cohorts, which went nowhere because people were like, do I really want to be grouped into these, be told that I'm in this group or that group? Like, hey, here comes the divorced guys. Let's see what they can do.
Starting point is 00:17:41 You name it, whatever group it is. That's not ideal. Right. And then they came up 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.
Starting point is 00:18:06 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
Starting point is 00:18:26 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
Starting point is 00:18:49 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 and defended and and it's no so chrome the news is chrome will not be proceeding with web integrity integrity api
Starting point is 00:19:14 deemed by many to be or drm and if you go and check out um like a hit 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, one user calls the idea absolutely unethical and against the open web. Another one says, they cannot believe this is even being proposed.
Starting point is 00: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, um, three strikes, are they out at Google? They will, they stop coming up with something else. Yeah. But all of these attempts are because of that, that core assumption of the web,
Starting point is 00:19:55 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, we have content and we sell ads that are related to that content. We don't track people. We don't retarget them. And Google could just as they know what is on pages, they have like the biggest search index in the world. They could sell ads based on the content of the videos of the, um, of what's on the page.
Starting point is 00:20:25 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, there is some stuff that I kind of get,
Starting point is 00:20:44 I don't want to attract people but i do want to know like which pages are popular and which ones are not if if a uh if a blog post 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 um uh 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 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
Starting point is 00:21:29 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, uh, Christian also out there points out at pretty interesting angle from blog spot that, um, 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 gonna give you or inbox we're gonna cancel that 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's not worth us to focus on anymore so yeah proactive it would be better i'm sure they would give a pretty good runway, but still. That's a good point.
Starting point is 00:22:09 It is a good point. All right. You had your extra, extra, extra moment. Do you have more extras? I do have more extras. All right. Just a couple. Okay.
Starting point is 00:22:18 I am working on the second phase of the Complete PyTest course, working with projects. And I 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 uh shout out to pie charm uh we talked about jet brains pie charm is uh helping promote this course by uh giving me a whole bunch of uh coupon codes so that people can try out pie charm pro uh so if you're in the course um
Starting point is 00:22:57 send me a note to say hey i want to try pie charm pro and i'll send you a a free code to try it out for a few months yeah that's cool. The other thing with PyCharm is they're going to do they invited me on their webinar series. I'm going to do do do enough testing by test the rescue webinar on November 21. 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, you can hang out with me twice. So, or actually the Tuesday after. Two Tuesdays. Yeah. Next Tuesday, hanging out with you zero times. Yeah. Zero times. And then we'll make up for it. So. Exactly. That's awesome. That looks like a really good webcast.
Starting point is 00:23:43 And Steven got my picture on it somewhere. There it is. Neat. Anyway, how about you? Any extras? I do have some extras. Let's see. just real-time follow-up by the way check out killed by google.com oh we got uh google podcast was just killed google domains was killed uh pixel pass was killed uh let's see what else we got youtube stories etc etc so there's just you know there's know, 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 was going for a long time, like Google Bookmarks, 2005 to 2021. And they're just like, yeah, we don't want to do it anymore.
Starting point is 00:24:18 Yeah, well, exactly. And I think 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 big tech companies and being on the Google Docs team was clearly inside Google. 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.
Starting point is 00:25:12 All right. But that's just throwing that out there. 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 Sentry. You know, Sentry has been a sponsor before on the show.
Starting point is 00:25:22 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 Sentry. Sentry 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 all the features of reformat code and those types of things, but based on rough
Starting point is 00:25:57 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's formatter.
Starting point is 00:26:16 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.
Starting point is 00:26:29 That one you have to check, or 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 pipx rough installed. So if I don't have it in the project, I don't really care.
Starting point is 00:26:44 It's just a format. So anyway, if people want 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 magic right there. Get the rough plugin and then check those boxes. How have I not thought to do a pipx on that yet? That's okay. Right, because you never import rough, right? No, right, yeah.
Starting point is 00:26:59 Yeah, it's not a tight, like PyTest, you could pipx 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 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 want it to not change at all for some reason but other than that yeah all right what else we got uh back to five charm one 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?
Starting point is 00:27:33 Yeah, played 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 used to be like, we have changed these files. I'm like, OK, great. Well, I could tell you that. Like, that's not that useful.
Starting point is 00:27:57 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 and it also has rough working on it. So two different commits. One, I made some changes to this background service thing
Starting point is 00:28:16 that like just runs jobs because he's like creating transcript. It 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 an infinite loop that runs in the background
Starting point is 00:28:27 on an async IO event loop. So while true, but it's processing just async and await, 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 take that event loop down.
Starting point is 00:28:44 So I put try-except around those and a few other pieces. And so I just hit, what did I do? And it said the core commit message was add exception handling in the background service dot pi. And then it explained in a detailed message part of the commit, introduce 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.
Starting point is 00:29:14 Job action is an enumeration that it has a match clause on. And the default case raises an exception. That's nuts, right? MARK MANDELMANN, Yeah. MARK MIRCHANDANI, 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
Starting point is 00:29:35 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 the rough version is also updated from 0.1.3 to 0.4 due to bug fixes and stillability improvements in the new version. I'm guessing it's getting that from the changelog. And it also added new dependencies based on assembly. That's all just, I did work for half an hour and I pushed the button.
Starting point is 00:30:04 Okay, so this is really pretty cool, but it reminds me of that comic where there's one person that says, I've got three bullet points and it expands it into these three paragraphs. Yes, and then you do it. And then the person on the other end is saying, this is so cool, I can take this long text
Starting point is 00:30:21 and I can make it into three bullet points. Yeah, what you see on the screen, the bolded text, the short version, so that's what shows up in the git commit message. And then it has like, this is the, if you expand the commit for more details, this is what it says. Okay. 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 pretty good. 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,
Starting point is 00:30:52 that's pretty good. 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 um but the what did i do in the last day what all did i do for like a uh commit message that's that's a great thing i gotta can't wait to play with this yeah that's pretty cool just hit the thing by the uh command message all right carrying on with um 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.
Starting point is 00:31:31 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 it comes with that is not in your face from the UI,
Starting point is 00:31:48 it's barely visible from the UI, is it comes with a REST API. So what you can do is it shows you how to create a fast API 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.
Starting point is 00:32:24 Using this. Isn't that neat? Yeah. So yeah, I won't say more than that, but I'll's pretty neat. Using this in that name. Yeah. So yeah, I won't say more than that about a 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. And I just the more I've been thinking about this, Brian, you don't have to chime in if you don't want.
Starting point is 00:32:40 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 don't know, I already spelled out why I think it's tricky to go trying to do all the podcast stuff and networking. But, you know, as I was thinking about like, what other thing 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? So I Googled as many conferences as I could think of. You have universes running right now with
Starting point is 00:33:18 some thousand number of attendees, no mask requirement. CS 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, 2,000. Microsoft Ignite next week, 4,000. WWDC, not sure how many people went.
Starting point is 00:33:55 But this is as many conferences as I could find that I Googled when I thought about this. Not one of them has the same policy. So it's worth considering. Again, I think it's going to hurt attendance and by way of that hurt the support for the PSF. All right, shall we lighten it up with a joke? Yeah. You already had your regular expression game. Regular expressions, 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
Starting point is 00:34:29 and it goes, pop, 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 right only, yeah? How about you? Well, I mean, I did learn them while I was writing't know. I kind of think of them as right only. Yeah. How about you?
Starting point is 00:34:45 Well, I mean, I did learn them while I was writing Perl. So it kind of goes with the territory. 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.
Starting point is 00:35:01 Regrets. Reg X and Regrets. They are amazing, but they are also tough to debug. RegX, I've had a few. Exactly. Exactly. Yeah, I got a few of them. All right.
Starting point is 00:35:16 Well, that's it for our stuff. Yeah, 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 episode. It was an excellent episode and happy birthday. Thanks everyone for seven years. Yeah, that's really incredible. It was pretty cool.
Starting point is 00:35:29 We had thought about it sooner. I just got a notification like an hour ago that I like, Hey, it's the birthday. I'm like, Oh, we could have done more Brian, but I think there's plenty. I could wear a hat. Yes, exactly. Yeah. Well, great to see you as always. See everybody a couple of weeks.

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