Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.
This is episode 432, recorded May 19th, 2025.
I am Michael Kennedy.
And I am Brian Okken.
And this episode is brought to you by NordLayer.
Awesome bolt-on security that you can add to all of your dev stations and servers and so on.
I'll tell you more about that later.
If you like social media things, you can stay up on a lot of announcements and follow the show.
follow us, Fostadon, Mastodon, Blue Sky, links at the top of the show notes in the podcast player.
Join us live most days, most days, at 10 a.m. Monday Pacific time, just pythonbytes.fm/live.
Brian was being a world traveler, so we didn't do it last week, but we're back at it.
And our email list is getting better and better.
So be sure to sign up as the friend of the show.
you'll get cool summaries and extra information to get more out of the episode. Like before, as in pre, not after, Brian. Yeah, as in pre. Like pre-commit.
I'd like to cover an article from Adam Johnson, pre-commit, install with uv. And it's just a short little tip, but I didn't know you could do this. So pre-commit normally, I've installed it before, but I can't really remember how to.
And Adam brings up that the install guide is maybe not the friendliest, particularly for developers who don't use Python.
But also, anyway, I guess pre-commits used for other stuff too, right?
So, but you can use uv.
So that's really the article talking about a couple things.
Not only just use uv.
So you can use uv by saying uv tool install pre-commit.
And now you have pre-commit installed for all of your projects in one place.
And then, but the recommendation also is to use with pre-commit uv.
So this extra thing is this with you is pre-commit uv.
It says use uv to create virtual environments and install packages for pre-commit.
And also comments that why would you do this?
Because it speeds up the initial install.
And so the initial thing.
And so if you've got it loaded on your local computer, apparently the first run of pre-commit with all of your extras, it'll probably be a little bit slower than later because there's a pre-commit cache that goes on.
But for instance, if you're doing like Docker images in your CI system, there might not be a cache there.
So the, and I might be just talking smoke because there might be a way to get around it with containers anyway.
However, if you really want that first initial one to be a little bit faster anyway, So using uv might be a good answer.
So anyway, also, so that's not, that's actually not why David or David Adam recommends this.
Yeah, he recommends it just because it's an easier install.
And it sure is.
The other thing is you don't even need Python installed for that to work.
That's true.
Yep.
But uv tool, uv tool install pre-commit with pre-commit uv.
And then you've just got pre-commit working.
And yeah, you don't even need Python already installed.
So the uv packaging manager and all that stuff and caching will just work.
And I kind of love it.
I've been using uv tool for a lot of stuff lately.
It's pretty slick.
So yeah, I just tried this out this morning.
Worked like a charm.
Love it.
Yeah, that's super neat.
And yeah, UV
all the way.
I think they're doing great stuff.
I actually have a couple of things tangential or directly related to uv as well for the week.
So let's get to it.
The next thing that I have is kind of like that, but it's not uv.
Hold on.
Hold that thought.
Here we go.
So this thing is PEP773 has been accepted by, created by Steve Dower, who does a lot of the Windows plus Python work, core developer, but also works at Microsoft.
So it is a Python installation manager for Windows.
So it's, maybe I'm not quite getting it right when I describe it this way, but to me it feels very much like an official Windows-based UV-like thing, at least for managing the Python side of stuff, okay?
So it's put there as a one manager to rule them all, PyManager.
So it goes under the colloquial name of PyManager, but I believe its official name is something like the Python Manager for Windows type of thing, something like that.
And the idea is there's right now multiple ways to get Python onto your computer, and they're unrelated and different.
So I could go to python.org and download it, And that would give me a PY launcher that I can run and do things.
Or I could go to the Windows Store and install it that way, which is another thing.
Or I could use WinGit or I could use NuGet to install it.
It's like, okay, what do I do?
Right?
So the idea here is that this is one thing that does all the stuff that those do.
You don't have to think about it.
You can get it those different ways.
So if somebody told you to go to the Windows Store and get Python, you would get PyManager as an MSIX, which is the installer
runtime.
Windows, like the install, it's like a PKG for Mac. So you would get that there, or you could go to python.org and download it, and you would get the same thing and the other ways you get it. So it's kind of a similar way to get Python that's consistent across all of them. And what's cool about it is it's super easy to use. So if you just type the word Python, it will launch the best, in quotes, the best Python runtime that either is already there, or like here's where the uv stuff comes in or it'll auto install the latest version of cpython if it's not there so at first it's kind of like a shell of python and they used to have that and i think it said something like i don't know if you remember this brian but in windows in the early days you used to say you don't have python go install python if you type the word python you're like great could you help me out or just okay i'll just go do that i guess so what this one now does it says okay great like uv virtual environment or uv tool if you don't have python it just says great we'll get the latest one and we'll run that.
So that's pretty cool.
I thought there was for a while, there was like a, if you type Python, it'll like open a window to say, hey, do you want to install this?
And you, if you said, okay, it would take you to the store or something.
maybe that's
right.
It would take you to the store, wouldn't it?
Yeah.
There was some funky ways.
So it has, I believe py is still there, but it's going to have the same sub commands as well.
And so on.
So like install, uninstall list, run.
And one thing that's kind of nice is you can also get Python three, commands in Windows if you just
add something
to your path.
Because traditionally, I believe it's been a while since I've played with it in real detail, but I think it used to be you had to type Python only, like only Python to work.
Python 3 didn't work on Windows, but on Mac and Linux, only Python 3 worked.
Not Python by default.
You know what I mean?
It's like, why are they different?
And so this also brings a little bit of unifying there.
Okay, just in time for nobody to use Python 2.
Yes,
exactly.
Exactly. Yes. Okay. Yeah. Maybe they're like, well, at least we should be consistent, but I'm, I'm here for it. Like I'd be fine to cancel Python three as a command and just go, you have to say Python two, if you want Python two, don't, don't make the thing you should be doing harder than the thing you shouldn't be doing. Anyway, this should be a mainstream by Python three 15 and the traditional installers will disappear in three 16, like 20, 27. So it's not a huge change right away, but I believe, what does it say? I believe it says, the top, where will this, this is just a standard, right? It's not one of those things that's in a version of Python. So, soon.
Soon, soon. Yeah.
Two
years. Be here before you know it. Yes, it absolutely will.
Before we move on, yeah, take it away.
Thank NordLayer for sponsoring this episode. NordLayer is a toggle-ready network security platform built for modern businesses. It combines VPN, access control, and threat protection in one easy-to-use platform.
There's no hardware and no complex setup, just secure connections and full control in less than 10 minutes. It's easy to start with quick deploy, step-by-step onboarding, and 24-7 support. It's easy to combine, works with existing setups, and all major platforms. And NordLayer is easy to scale, add users, features, or servers in a few clicks.
SSO and provisioning included.
NordLayer provides zero-trust network access-based solutions, adds threat protection to keep malware, ransomware, and phishing from reaching your endpoints, increases your threat intelligence to spot threats before they escalate, and helps businesses achieve compliance.
So if you are responsible for the security of your software or data science team, you should definitely give NordLayer a look.
As Python Bytes listeners, you'll get an exclusive offer up to 22% off NordLayer yearly plans, plus 10% on top with the coupon.
Just use code pythonbytes-10.
Try NordLayer risk-free with their 14-day money-back guarantee.
Visit pythonbytes.fm/nordlayer to get started.
Again, that's pythonbytes.fm/nordlayer.
The link is in your podcast player's show notes.
Thank you to NordLayer for sponsoring Python Bytes.
Indeed,
indeed.
Now, oh, I am up next.
So this one, this news broke last week, but like I said, we weren't recording last week, so I'm going to announce it this week.
Maybe you've heard it by now, but unfortunately, it's very sad to me to hear this, but unfortunately, Textualize, the company behind Rich and Textual, founded by Will McGugan, is shutting down.
So, you know, it's better to try something and fail than not try at all, right?
So some of the quotes from Will's post announcing this is, Bittersweet news, the business experiment ends, but the code lives on.
Obviously, it's super popular, right?
And if we go to GitHub somewhere, what are we looking at for stars?
Yeah, 28,000 stars, super, super popular.
But as a business, it's no longer a thing.
So Will says, it began as a hobby project layered on top of rich, but it grew into something that looked impossible to do with terminals and yet somehow it doesn't.
So despite the success, the team couldn't pinpoint a single aim point big enough to sustain a business model.
So the company is winding down probably about now, instead in a couple weeks, but that was a few weeks ago.
Projects themselves aren't going anywhere.
They're stable, battle tested, and will continue.
So I want to say thank you, Will, and everyone on the team for this.
It's a big contribution to the community.
And here, let's see.
Oh, I don't even see a sponsor.
A sponsor option.
Will, put a sponsor option for us here.
So we can recommend people go and sponsor the projects.
Yeah.
At a minimum, help them keep it going strong.
No, I love what Will has done with Rich and Textual.
And we're all rooting for Textualize.
And I don't, I mean, yeah, it's not going to stay a company anymore.
But I think having it be a company while it was made Textual into something like super cool.
They were able to focus on it and make it awesome.
So I appreciate everybody's work on that.
Yeah,
absolutely.
A hundred percent.
Over to you, Brian.
All right.
Well, let's see.
I'd like to, I heard about this a few weeks ago, actually, I think.
Also, here's an article, let's see, updated in April.
So yeah, a month ago.
It's an article by, I had the name, Matthias Endler.
The best programmers I know.
And it's an interesting idea for an article.
He was just saying, I have met a lot of developers in my life.
Lately, I've asked myself, what does it take to be one of the best?
What do they all have in common?
And I kind of love this.
And I like the list.
I encourage you to go and read this article.
We've got a link in the show notes.
But I'm going to jump around and read some of the topics.
So read the reference.
If there's one thing that I should have done as a young programmer, would have been read the reference and uh like the python standard library i admit i have not read all of the standard library um tumble spec things like that um i would add to this that if you're going to do something new uh jump down into beginner mode and just read a beginner reference on something like um even if you even if you're an expert flask developer and you want to switch to fast api uh go ahead and read the beginning tutorial and walk through the beginning tutorial for FastAPI.
Things like that are helpful.
All right, I'll go a little faster.
The topics, so read the reference, know your tools really well, read the error message.
Getting good at reading error messages is totally a good skill.
Breakdown problems, don't be afraid to get your hands dirty.
Always help others, write, blogging, talks, open source, those help you get better.
Never stop learning, status doesn't matter, build a reputation, have patience, never blame the computer don't be afraid to say i don't know very important don't bs to people that's an that's ai's job um if somebody comes to you give them what you know don't guess keep it simple simple and that's it so uh but uh really great commentary on each of these um i love uh love having this all put together as some good advice for for software developers so
yeah it's easy to forget right it's also easy to not not really know and wondering are they so productive How do they know how that is implemented or how that works internally in Python?
Like, well, they read it.
You know what I mean?
The status one is important, I think.
Don't assume that if you're just because you're – I mean, there's so much complicated stuff in software that it really doesn't take long of focusing on something to become really one of the better people that understand how to use something,
especially
within your company.
So even if you're a junior developer, you might be the expert in ToolX or something like that.
And if you've got a company that's okay with it, and hopefully you do, that's okay with people getting advice from all layers, run with that.
So yeah, some great advice.
Yeah, definitely.
All right.
Well, that's
it for our main item, Brian.
So let's talk about a little bit of security.
Okay.
So how do you access your server if you're running in the cloud and some sort of hosting, maybe even a home lab that you somehow, for some reason, have it accessible to the internet, things like that? SSH, right? That's almost universally. Sometimes with Windows, you might be doing a remote desktop, but probably SSH, yeah? At least 80% of the stuff out there is managed that way. Yeah, look at this little quick answer. How many SSH attacks can a public Linux server expect per second? Two. Two attacks per second. That's crazy. No, sorry. I multiplied it all. Every two. Every two seconds. So that's like 30,000 attempts to hack your SSH. And the reason why do I bring this up? This is one of my extras. I've been listening to some security podcasts lately and they're like, oh my gosh, here's what, there's like people are coming up with all these crazy schemes to try to block their SSH. Like, well, I know that I have like my business and my my local house as uh ip addresses are are pretty stable they're not static but they're pretty stable so i'm going to just set up a rule to only allow access to from those two you know what what if the power goes out and like the thing resets around you know i mean that's super dangerous you might never ever get back to there other advice is well like um go into I don't even know how you do it.
Go into the server and just shut it off, but then use some admin tool, like an admin console, or maybe even go in and just turn off the thing.
So anyway, I have a much better suggestion, I think, for folks.
Almost everybody's hosting comes with what's called a cloud firewall.
You just log in from anywhere in the world using your 2FA, and you have access to the dashboard for your cloud setup, right?
There's console.aws.com.
There's console.hetsner.com and so on.
And so just go in there and put your, you can just restrict access to your SSH to your current IP address.
And if for some reason your IP address changes or you're in a coffee shop and you want to get access, just log in real quick and enter that IP address.
Chances are, if you go back to that coffee shop again, it's still got the same IP address.
You only got to do it once.
It's super low effort and your tax go from 30,000 a day to zero.
Because those are coming from all over the world.
They're not coming, you know, from within the house, right?
They're not coming from your machine, like back, like
you'd already be,
it'd be too late, right?
It's just to prevent the public stuff.
So embrace cloud firewalls, folks.
That's all I want to say.
Okay.
Next.
This was last week, right?
But caveat's where I said Python beta one is here.
314 beta one.
It is time for some beta pie.
Tasty.
Python 3.41.
Come on.
So people can check this out.
This is the preview of the first stable version.
I guess it really is just the first stable version of Python 3.14, which is cool.
So check it out.
Can't believe we're already here again.
Yeah, I know.
Here we are.
Also, I want to say there's a new batch of Python Software Foundation fellows.
And I think there's like 10 folks or so in here.
Charlie Marsh.
Yeah, obviously.
He's been doing such a great week.
Frank Wiles.
Yeah.
A
lot of cool folks, Ivy, Fung, and other folks.
I don't want to read off everyone's name, but congrats to everyone in there.
That's super cool.
Not super cool.
Post from Mike, drop booms.
Speaking on behalf or for many, many people here, he is, but it says, I'll just read you a little bit of it, Brian.
It's been a tough couple of days.
Microsoft's support for the Faster CPython project has been canceled yesterday, as of four days ago.
My heart goes out to the majority of the team who was laid off.
I mean, that's actually a lot of people.
You look at the picture, presuming that all those people there are on the faster C-Python team.
I'm not entirely sure they are.
But I know that included Vito, Mike, some other folks.
It's not great, right?
I can't remember where I read it.
There's some conversations, but someone said, look, it's pretty short-sighted to bet the company on AI as Microsoft is.
And at the same time, fire the team making the dominant language for that technology better.
You got
to maximize shareholder value, Brian.
but like, I don't know, 10 people or something.
How big of a deal is that on the scale of Microsoft?
Exactly.
So that's that.
And then also Brett Cannon says there were layoffs yesterday and three Python core devs from the FasterCPython team were caught in them.
If you know any jobs, please send them their way to help them keep going strong.
You know what I mean?
So I link to that as well.
These are some insane people.
You really can't find
something else for these people to work on.
Yeah, exactly.
Exactly.
All right.
Back to better news.
So I just released, as in during this episode, push the go public button for something that was formerly known as RedKnot, but is now known as ty.
This is Astral's new type checker, equivalent of mypy, but also maybe even more important than that is a runtime language server that handles very large code bases and is more lenient than PyLance and others.
Oh, interesting.
Another thing that's super interesting, the VS Code team, I don't think unreasonably, but I think they're starting to crack down on allowing a lot of these forks of VS Code access to some of the underlying infrastructure that are extensions, right?
Like, for example, PyLance, the runtime things, other tooling, a lot of the extensions that Microsoft makes aren't available to say Cursor or Windsurf or the 150,000 other free ones.
So this might be an even better high-performance replacement of things like the language server for the
Vibeconing
platform.
Anyway, it's a super cool interview with Karl Meyer and Charlie Marsh, and people should check that out.
That's nice.
So what's TY?
Is that just because it's easy to type?
Type?
I think it's for type.
Type.
Yeah.
I think of it as like thank you.
Thank you.
Yeah, we
made a lot of jokes about that during the show.
Everyone says thank you to the astral folks for making it better every time they run it.
Yeah.
So that episode is literally hot off the presses.
Check it out.
Cool.
Can't wait.
And something I've been doing that's pretty fun, Brian, is I've been doing, I'm working on making a bunch of shorts like TikToks and YouTube shorts and stuff from
the Talk Python
episodes.
So I'm going to play a 15 second video.
I think people are going to enjoy this.
This is not exactly the joke, but it's kind of like the joke.
Are you ready?
Yeah.
I guess if you use Postgres, you could just put it in a JSON field as well.
Something like
that.
Oh, yeah.
We call that mullet schema, right?
It's business up front and partying back where the last column on the other table is a JSON field.
I've never heard that.
That's incredible.
It's like, yeah,
we look real formal, but don't look back there.
Got it in a ponytail today.
Yeah.
Amazing.
Isn't that amazing?
Yeah.
Anyway, so people
should check out the channel, obviously.
I'm doing some fun stuff there.
All right.
That's it for my extras.
Maybe let me check.
Yes, that's it for my extras.
So I just got the joke left.
How about your extras, Andy?
Just a quick one.
I wanted to pull up a screen.
Let's see.
Picture of Munich.
I just wanted to mention the reason why we mentioned this at the beginning of the show, but the reason why we didn't do it last week is I was in Munich, but I had a great time.
It was a work trip.
I was there to perform a talk or present a talk at an internal conference.
And the reason why I'm bringing this up is not just to humble brag that I was in Munich, but yeah, it was fun.
Anyway, it was that I think it's just a really cool idea.
I was there for an internal company conference.
And I think this is an awesome idea just to allow – we didn't have everybody over there, but everybody could submit talks.
And if you got your talk accepted, you go, of course.
But it was like a two-day event with like three or four tracks and just like a normal conference.
We had talks and everything.
It was great.
Everybody self-selected what they got to go through.
And what I really loved about this was it's difficult to get within a company all the people that care about something together.
And this allowed people to self-select into what they care about.
And so I had people coming up to me from different divisions that we would have never interacted with before.
Working on similar problems allow us to work together.
And I think it's definitely worthwhile for a company to actually reduce costs by spending a little to bring people together to talk about similar things.
Anyway, that's just my plug.
And then the other thing was flying back.
I couldn't sleep on the plane, so I had a ton of time to do something.
and I got started on a first draft for the second book I'd like to.
Ooh.
Right.
I
love it how just stepping away just a little bit sometimes will be like, all right, that's it.
I'm working on this project or
something.
It just
gives you like that little bit of space
from
all
the day-to-day.
That's cool.
Yeah.
Anyway, so it was good.
Great.
And if you look at that picture just to the left of that Castle Church thing, I've had a really nice beer brewery, Brow House evening one night over there in Munich.
It's a fun place.
Yeah.
Cool, cool. All right. Are we ready for jokes?
We are.
As a person who is known to be good with computers, sometimes you get dragged into tech support, even though I don't know about you, I'm not especially good at tech support, and I don't necessarily desire to make that skill better.
I present you the quick and handy manual on how to fix your computer.
You ready?
Yeah.
I can't do any more than that.
Okay. So it gives you three options.
Do you have Windows? Do you have a Mac? Or do you have Linux?
So option one, it says, Windows, step one, reboot.
Did that fix it?
No?
Well, then proceed to the next step.
All right, next step is format hard drive, reinstall Windows, lose all your files, quietly weep.
Okay.
Let's
see if I can make this bigger.
There we go.
The Apple one.
Step one, take it to the Apple store.
Did that fix it?
No?
Proceeds to step two.
Step two is buy a new Mac, overdraw your account, quietly weep.
Okay, well, Linux is more DYI, so let's see about that one.
This is step one.
Learn to code in C.
Recompile the kernel.
Build your own microprocessor out of spare silicon you have laying around.
Recompile the kernel again.
Switch distros.
Recompile the kernel again, but this time using a CPU powered by refracted light from Saturn.
Grow a giant beard.
Blame Sun Microsystems.
Turn your bedroom into a server closet and spend 10 years falling asleep to the sound of whirring fans.
Switch distros again.
Abandon all hygiene.
Write a regular expression that would make other programmers cry blood.
Learn to code in Java.
Recompile the kernel again, but this time wearing your lucky socks.
Did that fix it?
No.
Proceed to step two.
Revert back using Windows or Mac and quietly weep.
What do you think?
Yeah, plus it's 10 years later, so the Macs are going to be zipping by then.
They definitely
will.
Wow.
If anyone needs to do tech support for their family, I present the manual.
Step-by-step guide.
Step one and step two.
yeah yeah
it's funny definitely all right well happy to have you back stateside even though you had a good trip to germany and uh we'll see everyone next week huh good to be back thank you Bye.