Python Bytes - #398 Open source makes you rich? (and other myths)

Episode Date: August 26, 2024

Topics covered in this episode: Open Source Myths uv 0.3.0 and all the excitement Top pytest Plugins A comparison of hosts / providers for Python serverless functions (aka Faas) Extras Joke See ...the full show notes for this episode on the website at pythonbytes.fm/398

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 398, recorded August 26th, 2024. I'm Michael Kennedy. And I'm Brian Ocken. This episode is brought to you by us. Check out our things, Brian's assorted PyTest courses, his book, the almost 300 hours of courses over at talkpython.fm. So many things that you can do to support us and get awesome stuff back in return. If you want to connect with us on the socials, check us out over on Mastodon.
Starting point is 00:00:35 And we're also on X under very, very similar usernames. You can find us in all of the places. And of course, comment on the show on the YouTube stream, which is linked from the episode page all the places. And of course, comment on the show on the YouTube stream, which is linked from the episode page all the time. And with that, Brian, how shall we start today? What do you got for us? Well, I've got some open source myths, but I wanted to like touch on the day early bit, the thing.
Starting point is 00:00:58 Oh, yes, that's right. Because we are recording on Monday. This is not Tuesday. In fact, I looked at my watch, which has a little calendar, what's coming up next on Sunday. And it said Python Bytes. I'm like, huh, that's weird. I feel like it's, I thought it was Sunday. It even caught me off guard. But no, here we are. Yeah. My work schedule changed a little bit and I got to go into work on Tuesdays and Wednesdays now. So we've moved the recording to Monday. That's the long and short of it.
Starting point is 00:01:26 Luckily, Michael has a fairly flexible schedule. Indeed. And that's the plan going forward, right? So until your meetings change again for whatever reason, or you've got to do trips, we're going to plan on doing every Monday at 10 a.m. Pacific time. Yeah. And we'll get to that a little later.
Starting point is 00:01:44 We've got a little cheat sheet for people to be able to look up when it's going to be recorded. Oh, indeed. Very cool. Okay. So our first item, though, I just wanted to talk about how awesome open source is and working on open source software.
Starting point is 00:01:58 And there's somebody named Josh Bressers on Mastodon posted a list of open source myths. So myths about working in open source or using open source. And he started the list. And then on Mastodon, like, let's see, most projects have more than one maintainer. Yeah, usually it's just one, which is, yeah, surprising to me also. So let's see. I like these two together. Open source is more secure than closed source and open source is less secure than closed source. So both at the same time, they can exist.
Starting point is 00:02:36 And then he said, got any others? And a whole bunch of people sent him back myths. So he has a, let's see, a list on on he put it up on google docs and i made a copy because i wanted to highlight a few of them because i thought it was they were interesting so uh a few i want to call out uh most projects have funding driving the development yeah no does anybody think that um anyway um if the source code is available it's open source no it's not um and that's something that surprised me too just because it's on github even uh doesn't mean that it's open source you can
Starting point is 00:03:12 uh you can publish your your uh proprietary code online if you feel like it people are people are probably going to copy it anyway uh if you publish it but it doesn't have to be open source uh that's yeah it has it has to do with the license, right? Yep. Yeah. So most of the time I have, uh,
Starting point is 00:03:28 I've been one of those people that just defaults to MIT because, uh, cause I, I read it once and it went, Oh yeah, it sounds good. Basically MIT is what it's kind of like open source, but you,
Starting point is 00:03:39 it's open source, but you can also, you can also use it in commercial software if you want to. Um, and some of them, some of the licenses don't allow that. My favorites coming up. All open source developers live in Nebraska. I thought it was just one.
Starting point is 00:03:54 I thought there literally was one open source person in Nebraska, according to XKCD. Nebraska. Oh, yeah. Is that the XKCD thing? Yeah. It's like we have this huge castle of everything supported by one person, single open source developer who lives in Nebraska. I believe that's right. So Marco says, hey, I don't know if he's upset about not being in Nebraska or being the one developer in Nebraska.
Starting point is 00:04:17 Not sure. So I thought it was Kansas because aren't all the Django people in Kansas? Yeah, Lawrence. And then let's see, all open source is run by hippies? Sure. Wait, but it's in Nebraska and hippies aren't in Nebraska. So, or maybe they are? Are there hippies in Nebraska?
Starting point is 00:04:37 I don't know. Never been there. Open source means it costs $0. Well, you can use it without paying, it doesn't cost zero to make it um everything is being rewritten and rust um it does seem like that lately but uh no there's a lot of stuff that's not we'll talk more about that one later um yeah i guess that's that's a decent segue uh no there's this is a cool a fun list of uh some of them are are useful items um open source makes you rich no it doesn't well maybe it makes some people rich it hasn't worked for me yet
Starting point is 00:05:12 um yeah anyway uh fun list so thanks josh for putting this together yeah that's a really excellent one actually i love it okay on to my first item got a a bunch of things that i'm going to cover and i know you do as well, Brian, this week. So some of them will go fast, some we'll dive into. Mostly we'll go fast through them. So this one is a feature capability framework matrix for people who do functions as a service, or aka serverless, right?
Starting point is 00:05:41 I am, I'll go on the record and say I am somewhat skeptical about the usefulness of serverless, right? I am, I'll go on the record and say I am somewhat skeptical about the usefulness of serverless, but I know for some people and for some of their setups, they absolutely love it. And certainly for you, there are tons of interesting use cases around serverless, right? Certainly the most common one is Lambda, AWS Lambda, I would say. And we also have Azure Functions, which is the serverless thing that lives in Azure. We previously talked about Cloudflare workers. And what's cool about the Cloudflare workers
Starting point is 00:06:12 is that they run on Wasm or WebAssembly. Now the Wasm ones start to get really interesting to me. So if I've got a Docker container in AWS and it spins up every time there's a call, one of my functions. Okay, interesting. Maybe I should just have a Docker container running instead of like a bunch of start, stop, start, stop, start, stop. And sort of a funky pricing you're not totally sure about.
Starting point is 00:06:38 There is a pricing chart you can get into. But the reason I really thought this was interesting is there's a couple of them that run on the client. As far as I know, there's not necessarily even a per usage fee there because it's running not on their infrastructure. It's just shipping some bytes. So one of them, we talked about Cloudflare. Another one I want to talk about is from Hermion. This is Python 3.11 plus. And if you scroll over, hiding on the side, there's a link. There's this thing called Spin.
Starting point is 00:07:03 I don't know if you've heard of it, Brian. I've never heard of it. No. Spin Python SDK. So it says, we'll look at how to build a serverless app using Python and deploy it to Fermion Cloud
Starting point is 00:07:13 in a few simple steps. And it talks about how all this stuff works. It's based on a plugin called PytoWasm. And by the way, this may run in their cloud. I can't remember this because you can run PytoWasm. You can run Wasm code locally or you can run it in the browser, right?
Starting point is 00:07:29 So it could go either way. But basically, this gives you a WebAssembly super lightweight foundation to run Python code for your app, which I think is pretty awesome. So here's this grid. The news item is this matrix of these comparisons, but some of them that it points out here are based on Wasm, which is pretty interesting. The Fly.io one is based on MicroVM. It talks about which frameworks you can use.
Starting point is 00:07:55 Do you directly program it? Like FastAPI for CloudFlare or Spin for Fermion, Lask for Google. A lot of interesting stuff here and how to process it. And then also the pricing um yeah this is actually timely because i have a project that's i was thinking about doing some some lambda functions and things like that so yeah yeah was it last time or the time before where said i highlighted something where someone had gotten like a $96,000 bare cell bill.
Starting point is 00:08:25 We're doing some of their processing. Yeah, that'll catch you off guard. So you want to know what you're in for. And this is a nice comparison. I think it's pretty neat. It's really, you know, I don't know why it has to be so complicated. Like the Google one is 40 cents per 1 million requests, Plus 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 they were type of bird. Yeah. Well, it usually lives like right above fiber optic cables and it goes only away
Starting point is 00:09:06 from data centers. That's its migration pattern. It's away from data centers. So 12 cents per egret. Yeah. They carry a lot of data on them birds, so it's okay.
Starting point is 00:09:15 Yeah. So that's why I like to have most of my data go underwater. There's no birds. Yeah, so people can check the stuff they want.
Starting point is 00:09:24 It's just a GitHubithub repo uh you can obviously make contributions and add stuff and so on huh that's pretty cool nice yeah all right uh back to you okay well i um we have talked about this uh this this top pi pi packages before i'm pretty sure um uh from hugo vk uh. It's just a list that's updated. I don't want to call out Hugo too much, but it's supposed to be updated monthly, and it was last updated in July. Maybe get some August updates.
Starting point is 00:09:57 Anyway. Well, maybe he's traveling near relative holistic speeds, in which case that would explain it. Oh, yeah, maybe. Okay. Anyway, that's close enough. So, you know, it it oh yeah maybe okay anyway that's close enough so you know it's a month old but that's all right anyway so there's a list of um uh it shows the top hundred hundred right away but you can uh you can show the top eight thousand so what
Starting point is 00:10:17 what are the things i've used this before is to try to find the top pi test plugins so i'll grab this data or i'll like you know show the show the 8,000 and then I'll like search for PyTest. Just PyTest. And because most plugins are PyTest. So the top one's going to be PyTest. And then the next ones are like, you know, the plugins, because they often you have PyTest in the name. It's handy. So I thought it'd be cool if I just did something about this and made my own list. So I did. This weekend, I decided to give it a shot. I wrote top PyTest plugins and I just grabbed the top 8000 because it's he just it's available on GitHub. He just publishes the top 8000 all the time once a month. You can grab those as a JSON file and parse it so uh grab that and then um and i'm listing i just grabbed all the pytest things with pytest in the name other than the top other than pytest uh and i grabbed there's 142
Starting point is 00:11:14 it's basically all 8000 and however many so 142 plugins show up in the top 8000 um i would i thought it was cool that pytest check shows up this. That's my little plugin. Made the top 25. Yeah. It's, it's at 25. So that's cool. Yeah.
Starting point is 00:11:32 And a bunch of that I love in here. There's actually some pretty cool stuff that, that I want to explore more by looking at this. A lot of the top, like the top 10 or so they don't change much because you've got tons of people, projects using them even though pytest runner come on people i just runner should not be the number second one because it is deprecated um it uses it it's it's so that you can write your use run pytest test from python
Starting point is 00:11:59 setup.py test and like who does that anymore i don't know i thought everybody was 30 million people did that yeah apparently so uh anyway um i thought it was fun the the downloads so top pi packages just gives me the name and the download count so i wanted to know like how to how to get the summary on there so i asked um asked Mastodon and Jeff Triplett delivered and he said, hey, why don't you use the API from the warehouse? Yeah, PyPI is built on warehouse
Starting point is 00:12:34 and warehouse has an API so you can use it to get some interesting information. So I did that and that's how the summaries come in. I wrote up a blog post about it. So that's linked about how this is done and
Starting point is 00:12:45 then uh what publish the code also so you can check it out and then i was like it's dumb code why i'll publish it anyway why not and uh jeff triplet says um yeah it needs cleaned up a bit so he threw it into claude three and a half 3.5 um and uh came up up with what Claude says is the better code. So anyway, he also added Rich. So I have to incorporate this. Rich and Typer. Yeah, he added Rich and Typer, which really didn't add much code.
Starting point is 00:13:15 Ooh, green. He did the download count in green and the packages in magenta. And the, what? Oh, the download counts are in green and the number is in cayenne cyan i don't know so thanks jeff so anyway yeah yeah very cool i love it now uh just one more request for your um blog post there would it be cool to see a graph of like popularity so so you
Starting point is 00:13:40 can sort of see what does the tail look like in terms for, so you can see it tail off pretty quick, but as a picture, how would those numbers look, you know? Oh, yeah. Okay, so graph of popularity, that'd be fun. I wanted to see, there's a couple other things I wanted to see, like which Python version it supports. And I also kind of want to dig in a little bit to see which ones it's tested against. So if there's some way to look into the code
Starting point is 00:14:07 to see it supports 3.8 and above often, but is it tested on 3.12 yet sort of things? Yeah. Interesting. Does it support free threading? Yeah. I don't know. The other thing that I thought would be cool
Starting point is 00:14:24 was somebody requested this on Mastodon. yeah yeah um i don't know the other thing that i thought would be cool was um uh is somebody requested this on uh mastodon um some trending for like keeping track of this over a while over time and seeing some deltas like which ones which ones are going like uh upward trends or downward trends or something oh yeah yeah that would be cool to see where the momentum is for them. Yeah. Oh, one of the things I did want to shout out for Jeff, his version of this does it just takes it also takes the package name as an input. So you can if you wanted to look for things with Django in the name or things with something else like Jason in the name or something, you can you can search for those as well that way with his.
Starting point is 00:15:06 Excellent. Yeah, that's super cool. And Henry out there says a badge given the rank would be fun. Given the rank? So you could put it on your GitHub readme and it says like number 26 most popular PyTest plugin, something like that.
Starting point is 00:15:22 I'm reading into this, but that's what I think. Yeah. Star count, skip star count, does that matter too much? Yeah, yeah. Plug in. Something like that. I'm reading into this, but that's what I think. Yeah. Star count? Skip star count? Does that matter too much? Yeah, perhaps. All right. Derivative of star count. Is it going up?
Starting point is 00:15:31 Like, how fast? Anyway, let's carry on. You're going to have a whole master's thesis. We could definitely bike shed this for a long time. We could. Yeah. We could. Let's hit the big news of the week.
Starting point is 00:15:46 Big news. I swooped in. I know you're going to cover it as well i learned you were going to cover after i wrapped it as a topic so this comes from the astral folks and charlie marsh and maybe i'm going to have charlie on talk python and me to cover this tomorrow or in a week i'm not sure he's traveling i think or something like that so we'll see if we can make it happen tomorrow but very soon charles is going to come on talk python i'm going to dive in deeper into this but let's spend a few minutes on it here's the the announcement the official announcement is uv we've talked about uv before it's started out as kind of a pip replacement but it's growing to do more and more things now and the announcement is UV, a unified Python packaging. So there's
Starting point is 00:16:28 been a lot of trends in Python packaging about tools that disintermediate pip and some of the other things we do with like lock files. And there's sort of been two takes. One take is we build stuff inside Python. Then once we have Python and we have this tool, then we manage our projects. You know, I'm thinking of things like hatch or poetry. On the other hand, there's been things that try to manage Python from the outside. And probably the most well-known one is PI E PI E and V not PIP E and V PI E and V, which gives you your Python or maybe Knox talks for testing and it'll manage the Python and the environments. And so they're coming, Charlie and Astral are coming at this from that outer outside perspective more, right? Here's a tool that doesn't depend on Python. And until recently, it's been a
Starting point is 00:17:16 fast way to do pip things and compile and so on. But now this is a big, big announcement for here is the thing that can kind of be cargo. Cargo is the Rust version of this. I think there's a lot of inspiration for a lot of people around that. I don't use Rust, so it doesn't inspire or disinspire me. It just, whatever. But here's the thing. It has end-to-end project management. So you can add dependencies. You can run tools against your program, like PyTest or whatever. It can create lock files. It can update those lock files. It can install Python. We talked about that last time, right, Brian?
Starting point is 00:17:57 Yeah. So uv-python-install or uv-python-list and all those options. It can now run run scripts which is pretty interesting so if i gave you a single python file and like jeff triplet's example it depended upon httpx and i gave that to you and said hey brian run this what would you do you'd be like try to run it no it doesn't run i guess i need a virtual environment or I'll just into my system, install HTTPX and then it's going to need another and so on. That's a hassle, right? So with this script execution thing, what you do is you put into somewhere into the top of your
Starting point is 00:18:37 file as a multi comment. It's a hash and then it has four slashes I don't know metacommit within a comment you put a comment here that says what this library depends upon and then theoretically you should be able to run this so if you say UV run and you give it the script it'll look at that and say oh I'm gonna need to quick install or find the cached version of what's elicited at the top of this so as long as you had UV I could just give you any file. You could run it. And that could be a cool distribution mechanism throughout like your company or utility tools
Starting point is 00:19:12 where at least you've agreed upon UV as a basis. It's pretty cool because it even creates, I think this one even creates a little virtual environment to install stuff and run. It, yeah, all this stuff has a lot to do with virtual environments. And I don't know if it's a persistent virtual environment, but yeah, it does isolate these things. And so there's two ways. The reason I'm not certain is there's two ways to do this.
Starting point is 00:19:34 Like you can create a project and start it, initialize it or sync it and get it going. You can also create virtual environments here with UV. And it'll go and create one of these based on, say, the pyproject.toml or something. But you can also run commands. There's ways to just run the tooling stuff that they're doing. And when you look at that, it will use...
Starting point is 00:20:02 I don't think it creates a virtual environment, but it uses the cached versions and just runs in kind of an isolated. So it's, if you say uv-tool-run, which is alias to uv-x, kind of like npmx, it uses an isolated environment. But yeah, exactly. The environment doesn't last, right? Whereas if you say uv-tool-install versus uv tool run i don't know there's like variations about this right but but the gist of it that like as a user it's not it's not uh it's not throwing stuff into my global python which i want i don't want that so it's doing the right thing you might
Starting point is 00:20:38 i might not know what it is but it's not uh like polluting the global python yes absolutely yeah exactly though it does the right thing for you. And it does it super, super fast. I was checking out an example and after you've run it once, after it's basically cached the dependencies, it's instant.
Starting point is 00:20:55 It's as if those things were just there, right? As if you were in an activated virtual environment and good to go. Yeah, I'm really, I've been changing my workflow over to all this, especially since,
Starting point is 00:21:06 so that we did kind of cover it last week, but all the neat things that I saw in UV were all like, like experimental. They're not experimental anymore. They're all locked in.
Starting point is 00:21:18 Yeah. Yeah, absolutely. This is the big, big release we have in the audience. Makeshift says, super into UV, primarily for Python management,
Starting point is 00:21:26 interested in script execution, and packing that up into something that acts like a single binary executable. Yeah. It kind of does give you the sense of, as long as you're connected to the internet, here's the thing that's always ready to run all versions of Python, all dependencies, you know, regardless of the dependencies, regardless of the version that it says,
Starting point is 00:21:44 assuming that it's in the UV Python list listing, you can just run it. Right. And if it's not there, it'll download it. But if it is there, it'll use the cache version and off it goes, which is pretty awesome. Yeah. You bring up something interesting that I haven't tried is like if you run all these tool chains for a while and you disconnect from the internet, what happens to you? I think if it's cached it's okay but if it's not cached it's probably not okay okay makes sense it's my that's what i believe yeah because there's the speed at which it runs i doubt that it's every time checking unless you ask it to do an update there's like sync and lock commands versus run and so on there's other
Starting point is 00:22:21 interesting things we're diving into here for example example, like the Docker integration. If you don't even want this thing on your computer, you can actually get a Docker version, run it, and then just alias commands to your Docker container or things like that. Or it talks about how to use, how to build it using Docker or like, here you go, for example, here's how you would get, get it to run, get it to install and run something using a Docker command and so on. So there's, there's a lot of things going on, GitHub actions, pre commits. This is a super deep project. If you look at release, if you look at workspaces, this is a lot of stuff around mono repos. So if you've got a bunch of different packages and you want them all to be treated as kind of managed by one, one thing here. But you can say I have a
Starting point is 00:23:14 dependency. This part of my code has a dependency in another part of my code. Please install it as, as you're running with it or just run it in editable form out of this directory. A lot of stuff going on here. I've been checking it out this morning, so I'm going to let people, uh, dive in more for themselves here and maybe listen to the talk Python episode. From, uh, with Charlie soon. However, also want to say thank you to a couple of folks who sent in this Skylar Costco and John Hagan, both sentence that, Hey, you guys should check out
Starting point is 00:23:44 these things around this announcement. One is Simon Wilson. Speaking of living in Kansas, no longer lives in Kansas, but part of the Django team. Uh, he wrote a blog post called UV unified Python packaging, huge release from the astral team. And basically says, I've, this has been out for a couple of hours let me let me just see what give you my real quick impressions it's kind of a like a walkthrough almost like here's what i think is important from it i think more interesting perhaps is to bump over to omnivore here and look at what armin roeniker said of creator original creator of flask, most recent creator of rye, R Y E, which has been something kind of trying to do this a little bit, but not as ambitious. And he handed over ownership
Starting point is 00:24:33 of rye to the astral folks as well. So it's kind of, some of this stuff is kind of a blending of these things. So his article is super interesting there's a lot of uh opinion and takes on it put a few highlights here in omnivore so for example um one of when creating rye he says one of the things i mentioned there is that the goal of a packaging tool has to be that will dominate the space that is it's awesome that it's not last you're not in like uh you're if you're a second you're the first loser. Not in that sense, but in the sense for it like really to make a big impact, it has to be
Starting point is 00:25:10 the way, right? If there's 20 ways, then yeah, it more, more of like the Mandalorian thing. This is the way, that's right. So if it's going to simplify the Python experience, it can't be that there's 20 ways,
Starting point is 00:25:25 different and unrelated ways to simplify. There has to be a way we kind of agree on, right? I don't agree, but that's okay. Yeah, no, I hear you. I really want everyone who gets to learn and experience Python not to remember it as an old language, bad tooling, but it is an amazing language with stellar developer experience. Unfortunately, that's not the case today because there are so much choice, so many tools that are
Starting point is 00:25:49 not quite compatible and by the inconsistency everywhere. That's what he's getting at. He said, well, I think UV is poised to be this tool. Now the momentum, now's the moment to step up as a community and start to start to rally around it. Yeah. You need to take the next step. Say, uh, some of these tools are no longer recommended. For example, we stopped recommending easy install and took them out of our guides. So I recommend that you consider making UV an option in your documentation. Also has a little bit of interesting commentary about, well, this is VC funded. What if they turn evil? I don't think
Starting point is 00:26:25 that they will, but what if they did? And he talks about that as well. So yeah, we can always work it. Yeah. Let's see what Henry has to say as well out there says this is basically mostly faster PIPX replacements, the script runner, tool management, tool running without installing first. I agree. There's, I didn't put it out, but you're right that there's a lot of overlap of PIPX and this, although I think there's more to it as well. Yeah. One of the things I'm, I'm interested in is there's, there's been, I've never really, there's something about the, there's nothing, nothing really against PDM, but my, my experience with it was just not what, not what I like to do. And the UV tools have taken a lot of the ideas from PDM as well, which is interesting that they're looking at all, they're taking the inspiration from all over the place. They are.
Starting point is 00:27:13 One of the things I don't necessarily like is a lot of it turns the Python package and sort of environment and project management into UV project and package management. So for example, you know, you type UVX run or UV, UV add instead of pip, just pip install, right? Where the UV add will put it into the lock file and the requirement and so on. Yeah.
Starting point is 00:27:42 And the lock files even likev.lock or something. Yes. So I am quite excited about it. However, a lot of the stuff has, you know, it's kind of founded on virtual environments, which if you just want to activate the virtual environment and go do your thing, once you maybe get your Python installed,
Starting point is 00:27:59 if it didn't exist or whatever, then you can go on and do a lot of things the Python way without worrying about it. But it's going to be interesting what the adoption is. I'm going to talk to Charlie soon about it. That'll be fun. Good. I'll listen to that one. Yeah. I'm super excited about UV in general. So we'll see where it goes. Yeah. All right. I believe that is it for our main items. Well, based on your tab count, i'm guessing that you're uh feeling pretty extra yeah this will go quick though i wanted to uh point out that the the jeff triplet rewrite of
Starting point is 00:28:33 the top python packages is um is already scriptified uv scriptified he included the script at the top to pull in the dependencies um and you know once you look at it for something you're familiar with, you're like, oh, that's easy. You're just adding like HTTPX rich and typer to the dependencies and telling which Python version. That's really all. I mean, there might be other stuff that you can do, but this is great to be able to just do
Starting point is 00:28:58 UV run with this. I wonder if the editors auto-collapse that. It'd be awesome if you just never see that unless you want to. You know, like it collapses, it folds the code for those sections on open. Yeah. Because if you had like some weird corporate thing that you had to stick at the top of your code also, you'd have to scroll down three pages before you get actual code.
Starting point is 00:29:19 Yes. Okay. So this is, I guess, an ode to Hugo or Hugo VK because he also let us know that when we change the date from Tuesday to Monday, people could use arewemeetingyet.com to keep track of when the meeting is because it converts to your time, whatever we push this in at so i'm seeing that uh the next meeting is uh is august 26th that's today um so but if you go here when we're not here it'll tell you that there's um there's like a meeting coming up and it'll show how many how many how much time left and there's even a calendar entry that you can add um there so that's fun. And then a link to the, I added the link to the live stream. So if you click on the live stream link, you can see the live stream. And that's the real way.
Starting point is 00:30:10 Because this is, if you do a arewemeetingyet.com, it doesn't update if we ever have to change things. Yeah, the time is embedded in the URL. It just adapts to that time and the title for your location. Yeah. So if you really want to make sure, check out the live stream link. Okay. So, and while I was looking at the top, the top PyPI packages,
Starting point is 00:30:31 I was looking through at Hugo VK's other projects and I'm like, oh, there's some cool stuff here that he's published. So I wanted to shout out to a couple of these. Python logos from around the world from different PyCons. So these are fun. He just has a couple of these. Python logos from around the world from different PyCons. So these are fun. He just has a selection of different ones.
Starting point is 00:30:49 Like, yeah, it's great. I love these. That's pretty. PyCon Zimbabwe. That's awesome. And then also PyPI downloads. It's some tools for Python tools with the download counts for versions over time, which is sort of fascinating how slow some stuff like gradually gets down.
Starting point is 00:31:11 So what is, what are we looking at here? We've got 3, 3, 12. So we've got this blue is 3, 10, 3, 10, 11, 12 is blue is up in this top right corner. And then the old ones, like 9, 8, 7, 6, 5, 3, 4, are just gradually going down over time. And I kind of would have expected a sharper drop, but yeah, it's interesting. And that sort of trend goes, like, here's your 11, 3. Yeah, 2, 6 on there for a while.
Starting point is 00:31:43 Yeah, well, and yeah, 2, 2.6 did like take a long time to completely disappear 2.7 is down into the like single digit percents but it's not gone away um so yeah anyway uh interesting um the other thing uh he's got a python there's a bunch of stuff python core devs i thought was interesting of different core devs and when they started and stopped. So I didn't know that people stopped. I thought we were like core dev for life or something, but you don't have to be, I guess. So interesting graphic.
Starting point is 00:32:15 The other thing I wanted to, the last thing I wanted to extra is that at pythontest.com, we've got the courses, of course, and they're going really well. And I'm excited about that. The othercom we've got the courses of course and they're going they're going really well and i'm excited about that the the other thing we've added is uh when i had on the other platform i used to be on teachable now we're on uh podia um but podia has a community thing so we've added community options so that if if you like for instance this is great about the community
Starting point is 00:32:41 options because if you bought the book physical book book, but you have a question, how do you get that answered? Well, you can hop on and join the community here. So then you can ask questions. Do you have any extras for us? Oh, I have many, but I'll make them quick as well. The Python course for coding in a castle in October 5th to 12th is happening. And the time is coming up short for if you want to be part of it. So I would love to spend a week with you in Italy,
Starting point is 00:33:14 half programming and half drinking wine and traveling around. So if you're interested in being in that and you're like, oh, maybe that would be interesting. Well, the time is now to sign up because we're going to call. It'll be done and soon the applications will be closed. Also, follow up from last week. Remember I talked about PyAwaitable? I'd been waiting for it. So Zero Intensity, the author of PyAwaitable, commented, says, hey, author of PyAwaitable here.
Starting point is 00:33:39 Thanks for showcasing you were right. The PEP didn't get published with a number. I was working with Peter Victorin on it. and we only got as far as a discussion thread, but unfortunately something that only uses the public API doesn't make a strong proposal. So the draft got scrapped and turned into documentation. The plan is to integrate it into CPython sometime in the future, depending on how much maintenance needs, which hopefully should not be that much. Woken as a true maintainer right there. Brian, let's talk web browsers real quick.
Starting point is 00:34:09 So we've got Vivaldi, which is what I'm using. Obviously, Firefox is well-known. People use Chrome for some reason still these days. I don't understand it, but it still is. It's like, let me run Spyware and type into it. Okay. There's Safari, there's Edge. There's a bunch of options, right?
Starting point is 00:34:28 Brave, so on. But there's this new project that I came across called Ladybird, which is pretty interesting. Interesting here. Welcome to Ladybird, a truly independent web browser. We're building a brand new browser from scratch backed by a nonprofit. That's kind of interesting, isn't it?
Starting point is 00:34:44 Kind of. Look, scroll to the top again. Isn't that the Meta logo? No, it's not Meta. It does look a little bit like it, but it's not. I think it's supposed to look like a bird with, I don't know, it's similar, but it's not. It's not Meta.
Starting point is 00:35:00 It's not Meta. So it's an open source project that has six full-time developers working on it. And they expect to ship in 2026, which is a lot of work. But, you know, web browsers are basically operating systems these days. But it's pretty interesting, actually. So there's a newsletter you can sign up for. There's an FAQ.
Starting point is 00:35:20 They have sponsors getting, you know, a decent amount of money. But, yeah, what does it mean? Where does it come from? And so on. So I ran across that and thought that was interesting. Jay out there in the audience says, hey, you going to buy me a ticket for this Code New Castle? Yeah, we'll see.
Starting point is 00:35:37 We'll see. Wait, you're not buying me a ticket. Well, get yourself to Germany or Austria, and it's a short little trip on down, just across the Alps there. Okay. Next one. Someone asked us about, I'm so sorry. I forgot to write down the name when I wrote down this note.
Starting point is 00:35:55 It says, Hey, I'm interested in your video. We talked about, I can't remember what we talked about, but some, maybe the new microphone or something. I said, Hey, I'm also interested in your video recording setup. And would that be cool as an extra? Okay. So sure. I'll give people a rundown on this and Brian, you can chime in on yours. I record all of the TalkPython courses these days with OBS, OBS studio, which is awesome. It lets you basically record your screen, record your face, set up multiple scenes, do green screens, picture in picture with the background cut out. So you're just a little floating human in the bottom of some piece of software. This is free.
Starting point is 00:36:32 You can download it. It runs on all the things. I encourage people to contribute and donate to it. If you really use this a lot, they have a Patreon thing, so I support them on Patreon. But this is really nice for recording, setting things up, and then controlling it with my Steam Deck, Stream Deck rather. This is a really cool little bit of software that lets you change the lighting, change what's shown, stop, start, pause, et cetera.
Starting point is 00:37:00 Also have, for some reason, the product page for the Elgato Key Light says that their store is undergoing maintenance, but the rest of the website is up. So they point over here. I can show you, at least on Amazon, I've got some cool Elgato Keylights that can control with a stream deck and multicolor and stuff. That's really fun. And then finally, edit all of this with DaVinci Resolve.
Starting point is 00:37:18 DaVinci Resolve is super fun software. They use it for a lot of the Marvel movies, I believe. They use it for Spider-Man. So it's kind of intense if you open it up. You're like, what am I supposed to do with this? But if you just stay in the little edit section with the timeline,
Starting point is 00:37:37 then it's pretty manageable and pretty nice to use. So that's also free. That's what I'm doing these days. Cool. I'm doing a lot of that. I want to switch to, I want to try the open. OBS. OBS.
Starting point is 00:37:52 I'm currently using Camtasia for recording stuff, not for this show, but for courses and stuff. I use Camtasia. And Camtasia is oddly, it works better on Windows than it does on Mac because you can export multiple. It's actually something I'm looking for in a Mac is oddly it works better on windows than it does on mac because you can export multiple um uh is that is actually something i'm looking for in a mac is is i want to be able to record everything in one project and then export multiple videos from one project and you can't do that with camtasia i don't think you can do that with uh with this that other da vinci um but maybe you
Starting point is 00:38:23 can i just don't know how. Yeah, I have maybe 100 videos for some courses and they're all in like one project in DaVinci. It's pretty nice. Also, I'm using Stream Deck. I love Stream Deck and the key lights, they're great. The one thing that you didn't mention was what camera you're using.
Starting point is 00:38:40 Oh yeah, I'm using, I've used a whole bunch. So this is not a strong recommendation but i'm using the elgato you can't collect that thing the uh the elgato what is it called face cam pro that's what it's called which is like a 4k camera that's pretty good yeah it's pretty good yeah it's pretty good the color is a little bit off like it's hard to get just real natural colors. I'm using the Logitech Logi, a little tiny camera, which is decent. I think I used that before, and it's also real nice.
Starting point is 00:39:11 Yeah. Yeah. But it'd be fun if I tried this other one also so that we looked a little more similar. I'm usually showing up lighter than you. It might be a lighting thing, but anyway. Yeah. Yeah, for sure. Let's see. Also, just to round this out for the live streams we use stream yard which oh yeah we've been happy with that yeah
Starting point is 00:39:32 streaming is really good really good and jay miller out there says if you're doing both recording and streaming i recommend ecam massive fan they built zoom stream support which is yeah jay does some cool live streaming as well. So, all right. That was actually kind of a long-winded answer, but that's what we're doing, folks, for those of you who aren't interested. Yeah. Anything else, or are we up to the joke? I am ready to tell the joke. And now, this joke has no graphic.
Starting point is 00:39:56 No, uh, no graphic, but I thought I would put, just for the live stream here, I would put a picture of a really nice data center so people can appreciate their code running in like an awesome place here. Okay? Yeah, it's terrible.
Starting point is 00:40:10 Okay. It's there. It's a really bad, a really bad looking place there. So here's the joke. This is like an Alcoholics Anonymous meeting type of thing. Okay. Which alcoholism is not funny,
Starting point is 00:40:23 but making fun of DevOps is. So let's do it in that style, right? This joke is adapted from a joke Blaze wrote and sent in. So this is the DevOps support group. Are you ready, Brian? Yeah. Hi, my name is Bob.
Starting point is 00:40:37 Group. Hi, Bob. It's been 42 days since I last SSH'd into production. Applause from the group. But only four days since I actually took down the website. Someone in the back. Oh, Bob.
Starting point is 00:40:49 Oh, Bob. That's funny. Yeah. It's a good one. Yeah. You don't want to be the one who took down the website. How? If he didn't SSH into production?
Starting point is 00:41:02 Well, he must have shipped a bad Ansible script or something. I don't know. I knew the last time I took down the website in Adverton, I was completely out of the blue. I'm like, what in the world is happening? I was using the Walrus operator. And it was a while ago. Python 3.7 was running on the server.
Starting point is 00:41:19 I didn't use the Walrus operator on the website code. I used it on a utility thing. But the script was collected in a subsection where the web framework scanned for routes for the framework and as it tried to parse the walrus code to see if it could add it to the website it took down the website instead it couldn't start oh no yeah yeah. Oh, Bob. Don't be Bob. Stay on top of stuff with Python Bytes. Get all the latest things. Don't be Bob.
Starting point is 00:41:51 Unless your name is Bob, then you be Bob. Don't be that Bob. Don't be that Bob. Exactly. All right. Well, thank you everyone for being here and sending in all this stuff. A lot of fun, Brian. See you later.
Starting point is 00:42:03 Thanks a lot. Bye.

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