Python Bytes - #398 Open source makes you rich? (and other myths)
Episode Date: August 26, 2024Topics 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)
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.
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.
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.
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.
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.
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.
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
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,
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,
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.
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.
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?
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
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?
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
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.
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.
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
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?
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.
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.
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
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.
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.
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.
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
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
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.
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
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
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
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.
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
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
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
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.
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.
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?
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.
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
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
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?
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
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
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.
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...
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
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.
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,
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.
Yeah.
Yeah, absolutely.
This is the big,
big release we have
in the audience.
Makeshift says,
super into UV,
primarily for Python management,
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,
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
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
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
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
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
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,
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
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
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.
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.
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,
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
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
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.
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.
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,
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.
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.
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.
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.
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
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,
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.
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.
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?
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?
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.
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.
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.
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.
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.
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.
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.
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,
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.
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
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.
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.
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
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.
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.
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,
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.
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.
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?
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.
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.
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.
Thanks a lot.
Bye.