Episode notes
Topics include Web UIs for your reverse proxy, , , and Django’s annual releases make every version an LTS.
Transcript
Read the transcript · about 8,570 words, follows along as you listen
Calvin Hendryx-Parker:Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is episode 493, recorded on Tuesday, August 25th, 2026. I'm Calvin Hendricks Parker. And I'm Michael Kennedy. Hey, Michael. Glad for you to be here. We are sponsored this episode by Logfire from Pydantic, so make sure you check them out. There are links in the show notes. If you want to connect with Michael and I on the socials and the show itself, you can catch us on Mastodon, Bluesky, X, and LinkedIn. And join us for the live stream. Each week we record this live, you can join in, comment, be a part of the audience at pythonbytes.fm/live. It's usually Tuesday at 7 a.m. Pacific. It's a little different, but because of DjangoCon. And finally, if you want an artisanal handcrafted digest of every week's show notes in your email form, add your name to our friends of the show list and we'll never share it to anyone else michael let's dig in uh i think we got a web heavy episode except for one item in here and you're going to kick off with one right
Michael Kennedy:now yeah i'm going to put it in reverse or race mode if you know the british radio joke yeah well first of all hello Django con thank you for the greetings and uh calvin you're reporting live from
Calvin Hendryx-Parker:jango con yeah i am live from jigger i am in the hotel of Django con here in downtown chicago we are in the loop. So those of you who know Chicago area, right on the river, it has been a great conference. This is day two. We've had some excellent keynotes. Don Wages, Sarah from the Django community gave some excellent keynotes each day. And there's been some lightning talks are also one of my favorite things. So a couple rounds of lightning talks have already happened, one of which you're going to cover as part of one of your news items. So there's a lot of Django news actually in this episode included. So it's very timely that DjangoCon is happening right now and and lots that's happening in the community.
Michael Kennedy:Yeah, we've got a couple of Django topics actually. You did say it's a web heavy episode, right? It is, except for my one outlier. We'll get to that. We'll get to that one. Right, well, let's talk about the first one. So this is, I ran across this for something called Traefik. Are you familiar with Traefik? I am familiar with Traefik. Yeah, so Traefik is, it's a reverse proxy like Nginx or Caddy, but it's a little more focused on microservices and like I've got a Kubernetes cluster and stuff is coming and going, and maybe it's recycled and now it's in a different location in terms of an internal URL.
Michael Kennedy:And so it's gonna like find those pieces and put it together. So I ran across this thing called Traefik Manager. Are you familiar with Traefik Manager?
Calvin Hendryx-Parker:I'm not familiar with Traefik Manager. So I don't know about you. Yeah, anyone who's ever used Kubernetes is using some kind of reverse proxy. Yeah, this would be, yeah, exactly.
Michael Kennedy:I think Traefik might be the most popular for that. It's not the one we're using for Python Bytes. I'll say a bit more about that in a second, but yeah. So this Traefik manager is a visualization dashboard for your Traefik server. And if Traefik is your front end server, your reverse proxy, whatever you call it, it is the one choke point that all Traefik is going through. So it's a really good place to report on how things are going. Of course, besides CDNs, which are, you know, their own deal.
Michael Kennedy:But this is a really nice looking UI that you can, it gives you all sorts of information. How many requests, how many routes do you got? How many services is it serving? What's the Traefik? What media are you hosting? What else we got? Route map, logs, CrowdSec for security, I presume,
Calvin Hendryx-Parker:TLS options, certificates. All of that.
Michael Kennedy:You can just see this live as a web dashboard over top of your infrastructure.
Calvin Hendryx-Parker:It's really slick. I think that's pretty slick, right?
Michael Kennedy:What do you think?
Calvin Hendryx-Parker:I think having that available just at your fingertips to be able to diagnose, triage, understand patterns, especially when something goes wrong, having more bandwidth of data coming in as the human making some decisions is better and this
Michael Kennedy:looks wonderful for that yeah it looks great and it shows you how to run it just as an installer but also on docker podman and like on bare metal Linux and so on yeah it's you can even edit like static files and a few other things so i think this is pretty cool so i saw that i thought oh let me cover this i'm like well and i looked into Traefik a little bit and Traefik is great for a certain class of problems, the ones I described at the opening, but it's not a true just front end thing.
Michael Kennedy:Like for example, it doesn't serve static files at all, right? Or certain things. So it's like a little bit, you can, a lot of people could use it, but not everybody. Well, what are the other options? Well, the other options are Nginx, right? Which is what we use for Python bytes. I have an insane amount of Nginx config files. There are 2,200 lines of Nginx config powering 33 containers on my server oh my goodness i'm a little committed to nginx at this point and unlike many other things you can't run another server like Traefik or caddy which i'm going to talk about next to it because they all need port 80 like you can't even set up tls until you can get to you know what i
Calvin Hendryx-Parker:mean like it's uh so it's a really hard cut over basically is what i'm saying so right now i'm
Michael Kennedy:sticking with nginx and like well is there something like this for nginx because that is a full on front end story, right? So I will introduce you to Nginx UI. Guess is how you would pronounce it? Yet another Nginx web UI. There's others. It's not the only one. Yes, it's not the only one, no. But you can go to the demo, which is very confusing 'cause it just takes you here and says, you gotta log in. I'm like, huh, what do you think that's about?
Michael Kennedy:Go back to the page that took you the demo. Where's the username and password? Nah, but I'm a hacker. I didn't know if that told you in my spare time. Admin, admin, admin. You may be a hacker too because let's see if that gets us in. Sure enough. Sure enough, login successful. There we go. So this is actually even better than the Traefik one, I think. So it shows you stuff about your server. This is your Linux machine running, or Docker machine, running Nginx.
Michael Kennedy:The CPU stats, network stats, disc IO, all that kind of, which is really cool, right? Then you get over to Nginx and it shows you the max number of requests per second you can handle, the max concurrent connections, the request per connection, which is like these are just like kind of stats. And it shows you where the process is working. Is it cache processes, worker process, et cetera, alive connections, all this stuff. That's really cool. It lets you manage your sites.
Michael Kennedy:Now, at least the Nginx one, I think actually the Traefik one as well, but the Nginx one lets you edit your config. You can go over your manage sites here and you can say, I could even add a site, but I could go over here and edit the prime sponsor, whatever that is. But you can go and put in, just start typing away in your Nginx config here. Set your upstream, set your server. You can view the logs, which is pretty sweet, and all kinds of stuff.
Michael Kennedy:Look at the certificates, configs, upstreams. This one makes me nervous. A little terminology just goes to your server. I'm not a fan of that. Like, that should be turned off. Just, there's no need. There's no need for that. A little bit of security risk there. You know what? I'm sure it's fine. Everyone was just looking like, yeah, it would be mean to mess with this.
Calvin Hendryx-Parker:It kind of reminds me of the old days of Webman, which was riddled with security problems.
Michael Kennedy:like a C panel or something. Yeah, right. Exactly. Yeah. So anyway, what's cool though is I believe this as well. Certainly the prior one, you can run it in Docker just as a sidecar Docker container. So it's just in your Docker cluster set up there, which I think is pretty cool. So this is one that looks pretty interesting. And finally, I'm a fan of Caddy. If I didn't have 2,000 lines of config, I'd have to migrate. I'm starting over. I'm pretty sure I would do Caddy.
Michael Kennedy:Caddy looks great.
Calvin Hendryx-Parker:I've never used Caddy. No, I've never used. I mean, I've heard of it. I've never used it. I've been more on. We've been using Traefik quite a bit, and we historically use a lot of Nginx.
Michael Kennedy:Yeah, same. I mean, Nginx and then like, no bad Traefik. But, so this is really cool because it's config file is supposed to be like, just what you need. It's got kind of a Python vibe. Like, yeah, you don't need a namespace, a static class, and a static main void. Like you could just, could we just put the thing that does the thing in there? Which is really cool. And it also does auto, automatically does, it's in order to get SSL, All you got to do is turn it on and have the IP address pointing there and you make a request to it.
Michael Kennedy:And it just does that, manages it like that. So certainly a very neat setup. I feel like this is a pretty modern server. So with that said, there's also CATI UI, which is another one of these. Of course there is, right? Because why wouldn't there be? Let's say you look at like a dashboard and then logs and like metrics for your server and so on. It's like so dark mode that even the text on a black background is mostly dark.
Calvin Hendryx-Parker:So I wonder if there's not a limited audience for these UIs though, because if you're at a certain level, you're gonna have Prometheus, Grafana, and all these kinds of metrics streaming into a centralized observability platform where you can now correlate and trace, but you're still only getting a view from the web server. I didn't know, did you see if they include any kind of web request tracing in there? It could only go so far.
Michael Kennedy:I didn't see any. Yeah. - No, I didn't see any. I think that this is targeted at the Home Assistant crew, The one website, small project crew. Although the Traefik one talks about a lot of auto discovery of services and that kind of stuff, which speaks not to it. So the Traefik one seems maybe to be the most pro of them all. Very cool. Anyway, there you go. If you want a UI for your front-end web server, why not? You can get it.
Calvin Hendryx-Parker:All right, well, let's head back into Django world. in the Django world, there's a brand new release that released, I think it's like literally, I'll dive in, we're at Wagtail land now. Wagtail did an 8.0 release today. So this is very, very hot news. If we go into the Wagtail repository, take a look at the releases, you'll see here eight, six hours ago, 8.0 release for Wagtail. So the Wagtail team has been very busy. They have not even completed the release blog for this yet, which will come out tomorrow, depending on when this comes out, you should see that news tomorrow. But if you're a Wagtail user, you can rejoice that there is the 8.0 version out right now. Some new stuff that is inside of Wagtail. We've got custom base page models are now supported. So projects aren't locked into subclassing Wagtail's page as shipped. So you get a little more flexibility to having your own custom base page models. I think that's going to be a big win for folks who want to do more customized things and not feel so constrained. The V3 REST API handles both read and write operations for the CMS, so that gives a lot more flexibility to the API and be able to have a fully headless wag tail if you wanted. There's a global registry for permission policies plus full customizability for the remaining page views via the
Calvin Hendryx-Parker:page view set. Another big one to watch out for if you're migrating from prior to eight, so in the seven or the six range, AVIF and WebP images are no longer are going to be auto-converted to PNG by default. So that's something to watch out for on Upgrade if you're depending on that specific behavior. They're going to be treated more natively by the platform, but you may have some special behaviors because you were depending on the auto-conversion.
Calvin Hendryx-Parker:I don't know how to feel about WebP images. You know, I like to be on the cut edge of these things, but I just feel like, I don't know, I feel like they're everywhere though. I more and more see them all the major sites.
Michael Kennedy:Yeah, almost all the ones on Python by Set.fm are WebP. I went through the Google page optimization stuff and you know like lighthouse is that what it's called yeah all those things right yeah all those things it's like you need to upgrade to webp you need to upgrade i'm like fine i will upgrade to webp and i went through it and yeah they i do think it's actually a slightly a little bit better like is it as big of a deal as they make uh probably not but sometimes it's really nice and and so on it does seem to work pretty seamlessly except for if i go to youtube like for example if i want to change the thumbnail for this live version of our recording yeah on a google property it will not allow me to upload a web P file because it says it's not an image.
Michael Kennedy:I'm like, I'm not surprised. It's Google. So there's places like that, like, or if you try to set it as the poster for your podcast, a lot of the podcast apps can't display web P even though the platform can't, like, there's just like a little hang up. I imagine though it's like, there are people like, I want web P stop turning it back into something else. I put it there on purpose. Cause Google told me to.
Calvin Hendryx-Parker:Cause you did it. Cause this is optimized. It was funny because a lot of platforms are just a little behind the times on what image because obviously they're trying to protect their platforms and not allow random images or random not images to be uploaded as images so i think a little uh thumbnail.exe for example right right it's a little peer pressure to get folks to do the right thing would probably go a long way so google google if you're listening go update your uh application to support webp for that exactly
Michael Kennedy:youtube team just yeah add a star.webp in there come on let's do it so and more importantly in
Calvin Hendryx-Parker:in this release, there are some five major security fixes. The page admin API restrictions, document identification by a SHA-1 hash, the descendant collections and documents and images API, and the snippet copy permissions, and the page translation endpoint have all had fixes. I highlighted them here on the screen, but you can go see those in the release notes. They're called out with the big security fix prefix there. Also of note is formalized. They now have formalized django 6.1 support and the ci now runs with uh uv and a lock file so the uv is takeover is it's been successful in the wagtail community very cool yeah wagtail is neat i'm glad it's getting the love and april that's a big release yeah and i think this will tie in with your later segment the the intentionality and the sophistication by which they tie themselves to specific releases so that you know you are well supported by the community, by the bug fixes, by the maintainers.
Calvin Hendryx-Parker:All that lines up really, really well in the Wagtail community. And we'll talk about it a little more when you get into the Django stuff as well. Absolutely.
Michael Kennedy:Well, before we get to that, though, maybe a quick thanks to our sponsor. That sounds awesome. Yeah. So thank you, Pydantic and thank you, Logfire, their observability platform from Pydantic. So here's the situation. Your AI agent failed at 2 a.m. Was it the model, a tool call, the database? Most observability tools can't tell you because they only see part of the stack. Pydantic Logfire sees all of it. One trace across all your agents, LLMs, APIs, and databases.
Michael Kennedy:Down to the infrastructure, services, Kubernetes, as well as hosts. It's built on open telemetry with SDKs for Python, TypeScript, and Rust. And it works with any hotel compatible language. Every prompt, token count, cost right in your vector searches and API calls. You query everything with a Postgres compatible SQL language. So super easy to do. You get reports and slice and dice them. And your coding agent can get there through the Logfire MCP server.
Michael Kennedy:So stop guessing. Read the trace. Once you have it installed, you'll have the trace, right? Logfire AI. AI, it's still just engineering. I'm actually going to close out the show with a little sidebar on that. But visit pythonbytes.fm/logfire today and sign up. You'll get 10 million records for free every month. no card acquired. And we talked about last time, you can even click the onboard your project with your coding agent, which instantly copies a markdown block. You just paste into cloud or codex and it will go on it. I'm on it. You're going to have a log fire in your app. So give me 10 minutes. So thank you to Pydantic for supporting the show.
Calvin Hendryx-Parker:And count feature. I think they're downplaying that. They need to put that front and center. That's going to be a big deal.
Michael Kennedy:Yeah. That's the one that you all are chasing, right?
Calvin Hendryx-Parker:Yeah, totally right now. So I don't want to turn this into a full segment, but I think that There's a lot to be said for having that just right out of the box with their tools. So very cool. Well, thanks Pydantic Logfire for being a sponsor. This is the one non-webby thing on here, but could have a web implication. So the Python Software Foundation has announced RISC-V support is now officially supported by CPython. Why would anyone care? So I'll get into that.
Calvin Hendryx-Parker:So RISC-V is a CPU architecture, and it's technically so important fits here. It's now a tier three platform under PEP 11. So the rules for when they build, what they build, how they support, fast-summing gets prioritized for fixes, all comes into play when saying it's a tier three platform. But it does mean someone's watching and someone does care. So this is specifically for 64-bit Linux. So that means that if you've got single board computers, kind of like Raspberry Pis, but they're running alternate architectures like RISC-V, which there's quite a few of those out there on the market right now, you can now depend on there being a Python build that will run on your architecture and not having it be kind of a maybe it'll work. So this opens up a lot of things in like maybe the IoT space, the home automation space. There's a lot of at-edge computing applications here where now Python can be a number one potentially choice for the coding, application building, deploying at edge, and you're not relying on just maybe lower level languages. So hopefully this opens up some of that IRT space to other folks. So yeah, like the RISC-V is an open architecture that anyone can implement, unlike the x86 and ARM, which are like
Calvin Hendryx-Parker:closed. But its market is projected to quadruple by 2032. So we expect to see more news about RISC-V of architectures and processors, especially given all the hype around GPUs and things like that right now. So what changes? The push now maintained with a compatibility target. CPython changes are going to be less likely to quietly break it. That means that they got to take care of it. Someone's basically watching. What you don't get, there are no Python.org installers yet and no binary wheel parity for native extensions. So if you've got an extension that depends on a C compiled or a Rust compiled binary piece that's still on you to compile and enroll your own. But at least this is a step in the right direction. And if their market share is going to quadruple, it's nice to see Python taking proactive measures to ensure we have compatibility there. See what else we got in here.
Calvin Hendryx-Parker:Yeah. The one thing that folks may also think would be happening is, for example, you're familiar with SP32 boards. If you do any kind of home automation or any kind of like hacking on hardware or IoT. You've probably heard of the SP32 platform or the Raspberry pypyco, Pico2 platform. Those are RISC-V processors, but they are not 64-bit Linux RISC processors. So there's not necessarily support yet for those embedded processors. You're still going to want to use MicroPython or CircuitPython for those kinds of applications. But if you're using something like the Vision 5 board, there's a couple other boards out there on the market that are more like Raspberry Pis. You'll now have support. You can embed those, put them at the edge. There's reasons why you may do that. For example, costs, supply, demand, power, efficiency, energy usage, a lot of special cases here. But again, I think it's kind of exciting news. I'm a nerd when it comes to like hardware and architectures, and I know not everyone cares, but it does mean you could run Django on a RISC-V processor now reliably and have releases out there that will guarantee to work. So that's what the news is
Michael Kennedy:the risk five i love it yeah that's really cool it's easy to think okay mac Linux windows arm x86 that's what we got to support right but there's a bunch of little little tiny devices exactly we all run on like here's my 25 esp32 if it were 64 then i'd be even more excited i run circuit python on it but yeah the ability to reach all these little so many little niche things
Calvin Hendryx-Parker:well and there's been recently there's been shortage of raspberry pi vives for example So I think that helps with the supply chain issues potentially. And again, from power and efficiency, we see this thing quadrupling. We better make sure Python's there.
Michael Kennedy:So I'm excited to see the Python community making that happen. As well. I'm as well. My experience working with effectively MicroPython, it's super cool in the language. It's Python, but there's a lot of stuff like, you want this library? No, no, no, no, no. You don't get that. You get something that looks a little bit like it and it sort of works like it, but it's really tricky. So the more it can just be the same, the better.
Calvin Hendryx-Parker:Yeah. So I assume this will eventually trickle down into, who knows, maybe MicroPython will kind of just disintegrate, fade into the background, just genuine support for the architecture now that this is here.
Michael Kennedy:Maybe it becomes a little bit like an anaconda. It is the same Python, but it's more ready for you to actually do stuff with. Who knows?
Calvin Hendryx-Parker:Yeah. Yeah. Well, speaking of supporting languages, I think you've got a little mixed up here.
Michael Kennedy:Let's talk about Django. I mean, how do I get this? I'm not even at the conference.
Calvin Hendryx-Parker:I know, but I saw it on there. Like, honestly, I'm glad you're covering this because it's, I think truly, again, important news. It speaks to the volumes of how the communities are supporting the software that we're putting out and the vibrancy and viability of open source.
Michael Kennedy:Yeah, I always feel like with web frameworks, I'm just a flyer. I'm like, well, let's try this. Maybe it'll go unsupported in six months or maybe it'll be still going strong. I don't know, but it's But not with Django. But exactly, not with Django. And that has been true for a while. However, Django's had this sort of multi-stage release where it's like, well, some of the things are just feature releases and they won't last that long. And others, these are the LTS or long-term versions.
Michael Kennedy:And those, if you install and run on those, then you're going to get guaranteed 12 years at least, right? Well, the news is, folks, Django is moving to an annual release cycle, part one, by our friend of the show, Carlton Gibson. and every release is going to be an LTS, three years of supported version. Super cool, right? So I think that's really good. So let me give you all the details. 2028, January, 2028. It sounds so far away, but probably it'll be here just like, oh, is it 2028?
Michael Kennedy:I guess, here we go. I'm sure we'll cover it then. But in 2028 in January, there will be a new version of Django and it won't be called 6.1, 7.0 or whatever the heck it would have otherwise been called. It's going to be called Django 2028. So they're moving to calendar versioning
Calvin Hendryx-Parker:instead of semantic versioning. Big fan of calendar versioning.
Michael Kennedy:Yeah, I am too. I'm generally a fan of calendar versioning as well. So we're going to have Django 2028, Django 2029. And you won't be able to play the game like, hey, what year was Django 3 released? I'm really a Django fan like, yeah. What year was Django 2028 released? Like, I'll tell you what, I bet it was 2028. Pretty amazing. So that's also helpful. Kind of give you a sense of like, oh, we're running on 2026 and it's 2031. This is probably not good, folks.
Michael Kennedy:It's probably not good. So it can also kind of be a little bit of a marker. All right. So every release gets one-year mainstream bug fixes, followed by two years of security and data loss fixes. The new release to support the last three years of Python versions. So there's this interchange of support guarantees with Python and the next Python release during its first year. Calendar version begins in 2028. And then from there, three Django versions will be supported anytime because years are a year long and it's three years of support.
Michael Kennedy:So there we go. And most importantly, maybe nothing changes for a year and a half. So existing commitments like 6.2 LTS still there as they were before. Anything else you want to add to that?
Calvin Hendryx-Parker:I think these are the kind of promises that the community needs to make so that business understands that this community is serious. If you've got software projects where you are just wishy-washy around what versions you're going to support, what versions it runs on. You see this a little bit in the WordPress community, a lot of it in the WordPress community. There's not hard and fast, like this should run on this version. There's a long-term support that's going to give you bug fixes till this version.
Calvin Hendryx-Parker:It's a little more Wild West, I feel like, over there compared to the Django community. I think I can make that as a fair statement. The Django community is already committed to two long-term supports at any point in time. So like right now we've got 5.2 and 6.2 will be coming up. Now we're saying there's basically gonna be three versions that will be stable, supported, updated. And you have now time in your enterprise planning to make sure you get your software updated to follow the schedule on your schedule and not the emergency schedule because stuff happened and now you gotta deal with it.
Calvin Hendryx-Parker:So I feel like that gives a big boost again to the peace of mind of running Django, running Python and doing this all in production and knowing when things are going to happen. I'm a huge fan. And the calendar version in the boot. I, again, love that because, you know, immediately at a glance, if you're three years out of date and just about ready to run out of end of life on LTS, it's right in the name.
Michael Kennedy:That's right there. If I were running an organization based on Django, I would probably just be flipping to the new version pretty much mid-January or something like that.
Calvin Hendryx-Parker:I think most do. Yeah, most do, but I think there's a class of org that can't.
Michael Kennedy:Exactly. Or just won't. They just have a don't touch it principle. Is it working? Just don't touch it. It's working. I think this opens up just every February. Just have a look. What does it cost to upgrade to the next version of Django? Do a little automation.
Calvin Hendryx-Parker:Give it a go.
Michael Kennedy:See how it works. And that gives you a really solid cadence of just staying to date. And even though there's three-year support, I wouldn't have three-year gaps. I would have one-year gaps because the number of issues you might run into are, on average, one-third as many. So it just makes that little staying on top of it easier. Because if you're five years out and you hear something is something catastrophic happens and you need to update for whatever reason, well, you're all of a sudden like juggling a really big migration project, you know, the house on fire.
Calvin Hendryx-Parker:So get ahead of it. At this point, you can go three years and reliably have your CID pipeline build, you know, once a week, a seven day back off and know you're going to get the security fixes and the peace of mind of always having a patch piece of software that can be automated. Like it should be no hands on to make this now a very secure process.
Michael Kennedy:And if you're doing CI, CD, maybe throw in some knocks and just get different versions or something like that, right? Like, hey, might as well automate.
Calvin Hendryx-Parker:Yeah, know when they're coming. Get ahead of that curve.
Michael Kennedy:Yeah, we've been doing unit tests in CI against the next version of Django for two months, so probably okay.
Calvin Hendryx-Parker:And that, unless you're doing something really kind of off the wall, Django releases are pretty non-events these days in general, which is awesome. Well, do you have any extra events? Do you have some extra events in here, Michael? So a couple quick item here. This one was interesting because the Python docs now document the time of built-in types. This is not new per se because it's been buried in a wiki that's been aging for years and years and years.
Calvin Hendryx-Parker:But it was never front and center. And so people had to go look it up. It was never associated with the documentation directly. So this is just a migration from wiki to official docs. And so you can see over here on the list operation, a list copy has an O the N complexity. And so if you are evaluating how you might implement specific algorithms, this may matter if you're in a very performance based environment or you're just trying to be more efficient about your coding.
Calvin Hendryx-Parker:These will give you all the hints around complexity and gives it for all the various default types. So you want to know the complexity of a set compared to a dictionary. You can see those things in here. The strings and byte arrays and memories. So all those are basically baked in. You can see in the big O quotation if you're into that kind of thing. I was never a computer science major in college. So I never learned about this until later in life.
Calvin Hendryx-Parker:But that's very helpful because again, kind of next level thinking on that.
Michael Kennedy:Let me add one thing really quick.
Calvin Hendryx-Parker:I saw this as well and this is interesting.
Michael Kennedy:I wish the list would have like find item as well. I don't think it does though. because then you could have put that against, or does it? Because then you can put it against like dictionary or set. You're like, oh, it's a million times faster in set. That's weird. Maybe we should use that.
Calvin Hendryx-Parker:So these are like... Especially for performance optimization.
Michael Kennedy:Yeah, yeah, yeah. So it could give people a little bit of an idea, but also I think having this listed here might encourage some new contributions to CPython. For example, find range on there if you can. There it is. So what's the length or the min or the max? Like len or min and max, all those. is O of N. Oh, Gitlin is one. Okay, that's pretty good. So it does know. I guess it's not the...
Calvin Hendryx-Parker:It's been around a while.
Michael Kennedy:No, no, but I still think min and max. So for example, when you create a range, you say, what is the starting value? What is the N in value? And what is the step, right? Yeah. It should be able to answer O of one what the min and max are, right? Because it knows where it starts. It knows whether it's positive or negative. It was in the arcs. It's like a field of the object. So for example, somebody might go, why the heck is that determined by the, like, if I have a million items in my range, why is it a million computations when it could just be just like Len looks up the length? Well, one. Yeah, it should be oh one. Right. And so I think there might be some like some interesting interplay of performance in the next version of Python for these kinds of things. The other thing I wanted to let
Calvin Hendryx-Parker:everyone know about a friend of Python and the language, Bruce Eccle has released his thinking in Python book. So you can go to, I believe the address is thinkinginpython.com. And the whole book's here. And he's a great author. I mean, he's been famous for doing this kind of work for decades now in multiple communities. And it's Creative Commons, freely readable online. And there's a GitHub with all the examples and solutions in it. But if you're learning Python and you want to know about the insights, idioms, and patterns, this is, I haven't read the book yet because it just released.
Calvin Hendryx-Parker:But I got to imagine knowing the author and everything that's going into this, this must be a great place to start.
Michael Kennedy:Yeah, Bruce does excellent work. I've read some of his books and he's been on Talk Python before as well
Calvin Hendryx-Parker:and some other panels.
Michael Kennedy:So yeah, very cool.
Calvin Hendryx-Parker:Good job. Been around the community, long time. Michael, you got any extras? I'm feeling a little extra.
Michael Kennedy:So Are you feeling a little extra? Remember last time we talked about uv and it was those older security builds that were source only, but then I'm like, hey, uv is building them. That's kind of cool. Do you want to upgrade them? But then I did a listing of all of the stuff I had. I'm like, oh, I've got like a 3.9.3, a 3.94, 3.9.5. Like, no.
Calvin Hendryx-Parker:I'm kind of scared to see how many I have now.
Michael Kennedy:Yes, exactly. There's like, there's no scenario where I want like seven versions of 3.9. I mean, one is enough, certainly of that one. Right? So I created this little program, little shell utility you can run using, you can uv run it if you like. Pretty cool. And what it does basically is it goes through and it says, find me all of the uv installed pythons and show me which ones are duplicates. So a duplicate might be 3.9.3 and a 3.9.4. Like I have two 3.9s, right?
Michael Kennedy:And you can even say, I want to just print them down. So I only have the latest of each major. I mean, it's not really a major version, but there's never going to be a three, the four O so I'm going to call 3.8, the eight parts of the major version. Anyway, cause we can't have a four. It's too, too traumatic. So you can just say keep that, or you can say actually keep two. You could say I want 3.9.3 and 3.9.2, but no more than that as the older ones, right?
Michael Kennedy:Anyway, so you can run that, and I ran that here. I actually have a little upgrade script that I've run on my computer periodically to upgrade homebrew and that stuff, and then upgrade uv, and then anything that's uv tool installed. And so now I've added this thing into the mix, and it says pruning UVs pythons. It says, look, you've got 3.14.5 free threaded version, and you've got 3.14.7 free threaded. Why don't we drop the last one? It says you should remove that, for example.
Michael Kennedy:So you just say yes, and it takes away. So anyway, put that out there for everyone to play with.
Calvin Hendryx-Parker:That's awesome. If you go back to the script, I want to call out something. I absolutely, the very top of your script, you're using the inline dependencies. Yeah, yeah. The uv run magic. I absolutely love. I think if you think about, if you could have gone into Claude Code and said, hey, Claude Code, prune my old versions and given it like your kind of rule set. And it would have run through and used tokens and found all the ones and use more tokens.
Calvin Hendryx-Parker:But here you're giving it a deterministic. This is the way to write. tools for your own agents and use that that inline script i love that i think there's a good example i think of using exactly that that's good now yeah uv run works it just works i love it yeah yeah it
Michael Kennedy:does and if i had dependencies that's where it really shines yeah automatically manage that for me yeah yeah it's wonderful yeah and on my older installs of my uv tool projects it did like lose track of the virtual environment but apparently in the newer uv installs it will like remap to the like across major versions to like 3.14.3 and 3.14.7, it'll figure out, oh, we can just go to the seven, I believe. Nice. Anyway, yeah, so it might be a little bit of a pain after you might have to reinstall a few things on the older virtual environments, but I think it's in the future going to be less painful.
Michael Kennedy:All right, also, very quick AI thing. We've not done any AI, so I would like that. It's been an AI-free episode so far. It has, and this is super quick. You know, when you think about Olama, I always thought about Olama as for running local models. Yeah? Yeah. Did you know that they have a cloud version? I did know that. Yes. Yeah, of course you do. I knew you would. But you can sign up for like $20 a month to get DeepSea, Kimi 3.
Calvin Hendryx-Parker:It's very, very inexpensive.
Michael Kennedy:Yeah, GLM, 5.1, 5.2, all that kind of stuff as a thing you could just add. So I'm using this to power my Hermes agent, which is really nice, as an alternative to ChatGPT, which also can be in the mix. So I thought that was pretty interesting.
Calvin Hendryx-Parker:Yeah. Yeah, especially with your ability to run like Kimi K3.
Michael Kennedy:uh the glm five two the big ones uh yeah yeah these things you couldn't run them yourself so i've been doing like generally yeah i mean if you have if you're if your room is loud you might
Calvin Hendryx-Parker:be able to run it but if it's quiet you'll get away with them on the nvidia the spark boxes like if you not not just one but you if you if you daisy chain those things together it will spread the memory across two of them you might be able to get one of these running yeah okay if you have an over $10,000 dedicated local AI machine,
Michael Kennedy:then I consider you a special category. Anyway, yeah, so people can check that. Thanks to Jeff Triplett for showing me that.
Calvin Hendryx-Parker:That's a far more cost-effective way of doing it.
Michael Kennedy:Couldn't be able to do this for a while until I break $10,000. Although I still, I wouldn't hate having a couple of those Spark machines. Those are cool. All right, I would like to just go back and just have a little comment here. And feel free to jump in or not put your hand on the stove. So we published this to YouTube and got some comments there, some in favor of our position. Others like, what do you mean CodeWork's not doing? Like CodeWork is great.
Michael Kennedy:But more like, more of the comments were like, well, I think you're not taking the negative side of AI seriously enough. And it's fair. I do, we periodically say it. I feel like it's a little bit of a drag to just every week. Like, yes, I realize this. Anytime we mentioned LLMs, yes, I realize that this, A lot of this information was trained, taken to train with, and it was copyright theft. Yes, I realized it's a data center that uses a lot of energy.
Michael Kennedy:Out there, like we've said that before plenty of times. But I think also it's the reason I named it this, Codeberg puts head in sand. Not just to like dunk on Codeberg. I mean, it's fun and all. But the reason is over 90% of software these days, software development is done with AI. Not exclusively, not like, no, just, hey, agent, go make me, go make Google or whatever.
Calvin Hendryx-Parker:Just keep making software. Just pump out software until I tell you to stop, I guess. Exactly.
Michael Kennedy:Until my energy bill is too high. But almost all of software these days is at least AI-assisted in a significant way. 90% and above. And it's only going up. So when I say things like this, I'm trying to put this on people's radar, especially people who are like, I'm not willing to, I just don't even want to look at it. That is a choice. But if you want a job as a professional software developer in five years, if you're like, I'm not going to touch AI, I will bet you it's going to be very hard to find a job.
Michael Kennedy:I already know companies are saying, we're not hiring unless you at least are willing to use AI somewhat, or this is a skill that needs to be learned. And it is an important part, even if you don't like it. It's like saying, I don't like object-oriented programming, but all of a sudden everything is Java and C-sharp. You're like, well, they only have objects. So you're going to have to just do a little bit of it. You know what I mean? Anyway, I just wanted to put that as a comment.
Michael Kennedy:is like i'm not trying to dunk on people who don't believe in it but i do think if if you put your head in the sand it's it's gonna have a negative consequence on your career i don't know how do you
Calvin Hendryx-Parker:feel about this calvin if you want to say yeah i think to be eyes wide open and pragmatic pragmatic about our position on this in this trip i can't i don't want to imagine going back and not having an ai assisted environment because it is very enjoyable to get so much done um because i can guide these tools that that way if you like creating software it's incredible and i hate saying like oh now we're being complacent in our usage of say like copyright infringed material that has gone into the trainings models but i don't know how we can i don't know i don't know what you can do about that i don't it's not going back in the box right it's not going back in the box um and was what maybe there was an issue with the copyright law to begin with and maybe there's a way people need to we can compensate people so that this is fair uh well at least more equitable and i would like to put out
Michael Kennedy:there that some ai companies are doing that but the most haven't i would imagine yeah but i just think this it's like around the dot-com boom saying ah we don't want to talk about the web could do that but a lot of the stuff is happening on the web right now like and i think this is bigger in terms of the sort of transformational wave like 90 right 90 of software development wasn't the web in the
Calvin Hendryx-Parker:the year 2000. I don't think so. No, no, we're going to, we're going to be the pets.com for
Michael Kennedy:human knowledge. Exactly. We have dancing monkeys spending a million dollars every 30 seconds. That was a, that was a Superbowl ad around the dot com days. For those of you who are of an age. Yeah, exactly. It was my favorite one, I think. But look, I mean, I understand the drawbacks. I understand what it's doing to software teams. I understand what it, the effects on like copyright right information and the effects on people's jobs. But at the same time, it's 90%, it's really a challenge to ignore 90% of the industry.
Michael Kennedy:And some of the comments are like, well, the people who can actually think and who aren't idiots. It's like, you know what? Not everyone who chooses to use these tools is a need. That's a little bit harsh perspective. So I think it's worth, I don't know, I just want to put that out there 'cause I feel like people are just like, oh, you're just flippant about it. I'm like, no, it's just really transformational significant and we're going to have to deal with it like it or not because it's not going back in the box agree okay now there we go after all that are we actually ready for a joke i think
Calvin Hendryx-Parker:i'm ready for i'm ready for i think we need a joke we need a joke and this that was a little
Michael Kennedy:philosophical wouldn't you say i would okay okay what do you offer me well did you ever read the tau to ten sort of the tau like the traditional chinese one no have you read the tau of programming oh i would like to i would like to do a guided reading of the tau programming We haven't done this for a while. So let's go over to the corporate wisdom. I can't link to it because it's like a weird, God, this is like the oldest website that could be made in 1995.
Calvin Hendryx-Parker:Is this hosted on GeoCities? What is going on here?
Michael Kennedy:It might be, and oh my gosh, it even has a gradient background.
Calvin Hendryx-Parker:Yes.
Michael Kennedy:All right, let's see. I don't think I can get it to do like a reader view. Oh, well, let's do a couple of sections from book seven, corporate wisdom from the Tao of programming, okay? Okay. 7.1 The Novice Asks the Master: In the East, there is a great tree, structure that men call "corporate headquarters." It is bloated out of shape with vice presidents and accountants. Its issues, it issues a multitude of memos, each saying "go hence" or "go hither."
Michael Kennedy:Nah, nobody knows what is meant. Every year new names are put onto the branches, but all to no avail. How can such an unnatural entity exist? The Master calmly replies: You perceive this immense structure and are disturbed that it has no rational purpose. you not take amusement from its endless gyrations? Do you not enjoy the untroubled ease of programming
Calvin Hendryx-Parker:beneath its sheltered branches? Why are you bothered by its uselessness? Where did you find this gem?
Michael Kennedy:Oh, it's so good, isn't it? Oh my gosh. I'll do a little bit of, I think, I think 7.3. I'll do a little 7.3, then we'll call it. The magician of the ivory tower brought his latest invention to the master programmer to examine. The magician wheeled a large black box into the master's office while the master waited in silence. This is an integrated, distributed, general-purpose workstation, began the magician. Ergonomically designed with a proprietary operating system, sixth-generation languages, and multiple state-of-the-art user interfaces.
Michael Kennedy:It took my assistants several hundred man years to construct it. Is it not amazing? The master raised an eyebrow slightly. It is indeed amazing, he said. Corporate Headquarters has commanded, continued the magician, that everyone use this workstation. As a new platform for their programs, do you agree to this? Certainly, replied the master. I will have it transported to the data center immediately. And the magician returned to his tower, well pleased.
Michael Kennedy:Several days later, a novice wandered into the office of the master program and said, I cannot find the listing for my new program. Do you know where it might be? Yes, replied the master. The listings are stacked on the platform in the data center. There you go. So this is a fun read. You can't do too much of it. It's a thick, long joke, but we'll maybe come back to maintenance in a couple months or something. books we can go through here let's fake the master programmer though a program be three lines long someday it will have to be maintained all right yeah that's a good that's a good one right there
Calvin Hendryx-Parker:great one great one great one to end on indeed all right well very fun michael and uh i'm gonna go back to Django con we'll talk to you all next week yeah have a great time at Django con and yeah see you next week sounds good bye
Transcript supplied by the publisher with the episode.
Python Bytes
by Michael Kennedy and Calvin Hendryx-Parker · English · Tech & Science
Python Bytes is a weekly podcast hosted by Michael Kennedy and Calvin Hendryx-Parker. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.
More from Python Bytes
-
E496 · 15 Sep 2026 · 33 min
#496 A lake house in Seattle
Topics include Pandas Should Go Extinct, Pydantic-pint puts real-world units in your Pydantic models, How Libraries Run Rust Inside Python (With PyO3), and AWS acquires DuckLabs.
-
E495 · 8 Sep 2026 · 28 min
#495 Banned
Topics include EuroPython 2026 videos are online, The State of Django 2026: Boring is so back, htmx 4.0.0 has been released, and Functionally Zen.
-
E494 · 1 Sep 2026 · 29 min
#494 Python Wrapture
Topics include OpenAI's Python SDK has migrated to HTTPX2, TMOG - Native Task Manager for macOS, Windows, and Linux, wrapture - one wrapper for mocking, tracing, and observability, and linkedin2md.
-
E492 · 18 Aug 2026 · 39 min
#492 Codeberg Puts Head in Sand
Topics include , Codeberg’s AI-code ban tests its role as a GitHub alternative, , , , and.
-
E491 · 12 Aug 2026 · 42 min
#491 Feeling Judged
Topics include , Post-quantum crypto lands in Python, MCP goes stateless — and FastMCP gets renamed, and inshellisense - IDE style command line auto complete.
-
E490 · 28 Jul 2026 · 37 min
#490 It’s a vibe coding party
Topics include Some more things about Django I've been enjoying, Who cleans up after the vibe-coding party, AgentsView, and.
-
E499 · 6 Oct 2026 · 33 minNew
#499 So many questions??
Topics include PEP 824 brings ?? and ??= to Python for None handling, Python 3.15 Python 3.10, asyncio.shield, and Pyxel: the retro game engine for Python.
-
E498 · 29 Sep 2026 · 33 min
#498 A Tiny Episode
Topics include MemTensor / MemoryOS PyPI package hijacked via a malicious build backend, TinyMongo, , and One innocent dict read makes attribute access permanently slower.
-
E497 · 23 Sep 2026 · 27 min
#497 Faster than light profiling
Topics include Tachyon: A sampling profiler ships in Python 3.15's stdlib, Python Workers are now generally available on Cloudflare, Flet 1.0 - build cross-platform apps in Python, and marimo-book: Build static books from marimo notebooks.
-
E489 · 21 Jul 2026 · 31 min
#489 Or JSON?
Topics include django-orjson, Best Django Redis configuration for speed and size, puts the foot down, and Django Steering Council backs the Triptych Project.
