Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book

#468: A bolt of Django

Published Tue, Feb 3, 2026, recorded Mon, Feb 2, 2026
0:00
00:31:00
Watch this episode on YouTube
Play on YouTube
Watch the live stream replay

About the show

Sponsored by us! Support our work through:

Connect with the hosts

Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too.

Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.

Brian #1: django-bolt : Faster than FastAPI, but with Django ORM, Django Admin, and Django packages

Michael #2: pyleak

  • Detect leaked asyncio tasks, threads, and event loop blocking with stack trace in Python. Inspired by goleak.
  • Has patterns for
    • Context managers
    • decorators
  • Checks for
    • Unawaited asyncio tasks
    • Threads
    • Blocking of an asyncio loop
    • Includes a pytest plugin so you can do @pytest.mark.no_leaks

Brian #3: More Django (three articles)

Michael #4: Datastar

Extras

Brian:

Michael:

Joke: Pushed to prod

Episode Transcript

Collapse transcript

00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:06 This is episode 468, recorded February 2nd, 2026.

00:11 I'm Michael Kennedy.

00:12 And I'm Brian Ecken.

00:13 This episode is brought to you by us.

00:16 Brian's books, his new Lean TDD book, which you can get right now and is in development, but almost done.

00:23 Yes.

00:24 He's going to be done this week, folks.

00:26 Don't worry about it.

00:28 My Python and production book has been going strong as well.

00:30 That's really fun one.

00:31 And of course, our courses, all the links for those things are in the show notes.

00:35 Follow us on the socials, sign up for the newsletter.

00:38 We don't spam you.

00:39 We just send you updates about the, about the episodes, extra information,

00:44 more links, that kind of thing, as well as a periodic announcement of like, Hey,

00:48 we've got a new course or a new book or whatever it is we're up to, you know,

00:51 things like that, but we don't give it away.

00:53 We don't sell it.

00:54 Things like that.

00:55 And with that, like a bolt of lightning striking out of the blue, what do we got?

01:01 Well, we've got Django Bolt.

01:04 So Django Bolt is actually, I learned about Django Bolt because I was looking at the Django

01:12 chat website and or the Django chat and they had a, they had an episode building a Django

01:18 API framework faster than FastAPI, which of course I was interested in.

01:24 And so this episode actually discusses Django Bolt.

01:29 And Django Bolt is a Rust powered behind the scenes, but it's inspired.

01:36 It's a, so it's like fast, like we already have Django Rust framework

01:40 and there's Django Ninja, but this is along those lines of trying to get

01:46 an API framework for Django.

01:49 The inspiration is kind of interesting.

01:51 I think down near the bottom.

01:54 There's inspired by, oh, inspired by Django REST framework,

01:58 FastAPI, Litestar, and Robin.

02:00 Apparently some of the Rust Python, the integrating Rust and Python

02:08 was inspired by some of the Robin project.

02:10 I don't know anything about Robin, actually.

02:12 So interesting, different take on APIs for Django.

02:19 And one of the things that was really interesting, especially in the discussion on the podcast, was the timing of it, trying to figure out how fast things are.

02:30 And there's issues with that.

02:33 But apparently he used a ton of graphs, a ton of charts, so you can look at what's going on.

02:39 Also, in the act of doing that, realize that even Django REST framework, if you configure things in a certain way, you can do off-the-shelf things.

02:49 things and get it pretty fast anyway.

02:52 But so this is an interesting take.

02:55 So there's a bunch of leaks we're going to link to.

02:57 There's the Django Bolt repository.

03:00 The documentation is set up and it's pretty good.

03:03 Oh, I should back up.

03:05 There's a little warning in it that it's still in progress.

03:10 It's under active development.

03:12 So be aware of that.

03:13 OK, then there's the podcast episode.

03:16 And then just recently, somebody came out with a video walking through using Django Bolt, which is an interesting discussion.

03:28 And I actually just watched the first part of it.

03:31 The first part of it actually talks about some of the ecosystem around APIs in Django and then walking through a little bit of it.

03:38 So pretty interesting take on APIs.

03:42 Yeah, that is super interesting.

03:44 I've been looking at Django Bolt as well.

03:46 it's not because I plan to use it because my websites are not in Django but just it's got

03:50 some really interesting ideas out there and yeah also note on the performance thing do your own

03:56 performance testing put stuff I think it's more the more importantly people should think about this

04:01 as side by side like three or four weeks ago when I did my Python numbers everyone should know

04:07 every Python developer should know people said well you did this on a m4 pro cpu and it's not

04:13 going to be the same when you run it on a five dollar crappy server in the cloud i'm like true

04:18 but if i run it on a five dollar server the people go well it doesn't run that's not comparable to my

04:22 high-end server or whatever right like it's more like okay this one is relative to that this is

04:27 like 2x of that other one or something right so just keep that in mind right yeah i mean numbers

04:32 are tested on right but also i mean as long as the numbers are relatively tested you're doing

04:39 you're doing a and b on the same hardware now there there might be differences in the um the

04:46 the behind the c the c python implementation based on different hardware and to the point where one

04:53 technique will work better on some platform than another but i don't think a lot of people are

04:58 thinking in the dirt that much but anyway yeah yeah uh one quick bit of real-time follow-up from

05:05 and posts in the audience.

05:06 My first job was in Django.

05:07 I always loved Django ORM plus migrations framework and Django Bolt connects ORM with fast async stuff,

05:13 which is really cool indeed.

05:14 Yeah, it seems like a neat project.

05:16 Yeah, it'll be something to watch.

05:18 Indeed, but did he mention async?

05:21 What if you had leaks in your async code?

05:25 So I want to talk about this thing called PyLeak.

05:28 So PyLeak detects leaked async tasks, threads, event loop blocking. So that's not exactly a leak, but it's kind of a leak. So it's non-async code

05:41 leaking into async sections. When I first saw this, I thought it was a memory diagnosing thing,

05:46 but what it's for is diagnosing async tasks that if you've ever seen like this, this task was not

05:52 awaited or something like that. And it's got a really nice programming model, but this is,

05:59 This is something that certainly can happen.

06:01 I will tell you if you run the ty or the Pyrefly typing integration with your editor and maybe

06:09 PyCharm, I don't think PyCharm does this, but those two will put, PyCharm will detect

06:14 that the stuff is not being treated right, but the others do inline type overlays.

06:19 So you'll have like x equals some function call and you think x is an integer.

06:24 If it says x and then in little gray, like it's not really in the code, but it's putting

06:28 colon, coroutine of something, something int.

06:32 You're like, oh, I forgot to await that.

06:34 Because this is coming back as the unexecuted coroutine,

06:38 not the number, the integer, right?

06:41 That it's easy to do if you're writing regular async code,

06:44 but it's really easy to do if what you're doing is converting a synchronous program to an async program.

06:50 Because every call site of every function is synchronous,

06:54 and then you go make those functions asynchronous, and then you try to go back and fix them

06:58 everywhere you called them.

06:59 It's not a syntax or a runtime error, usually, a lot of times, to actually not call that.

07:05 It'll just run.

07:06 So for example, if you have x, let's say x equals some function call.

07:11 It normally gives you back a number, you wanna make sure it's not zero.

07:13 So you'd say if x, if not x or if x, something like that, right?

07:17 Well, when it's a coroutine, your if x still runs, it's just always true.

07:22 And things like that, right?

07:23 - Oh, yeah. - It's 'cause it's, is the coroutine falsy?

07:25 No, there's only like five or six things and Python that are falsing and coroutine is not.

07:29 So it's true, keep going.

07:31 It's really sketch.

07:32 So those are super hard to catch.

07:34 And this is the kind of thing that theoretically will catch it.

07:37 So pretty neat.

07:38 Anyway, it depends how you start it, I believe.

07:42 You've gotta do like a create task where the task has to be running.

07:44 If you just create a coroutine and don't do anything with it,

07:47 it probably still won't catch it, just to be clear.

07:49 Anyway, so here's how it works.

07:50 You can say, create a context manager with block and async with block,

07:55 you say with no task links leaks and you run some code and here's a function call to create a task

08:03 that is never awaited you wait long enough for that to come into existence and you're going to

08:06 get an error right or this also works for threads just create a thread and never wait for it to stop

08:13 so the context here is within this block of code i might be starting threads but they should all be

08:18 done by the time we leave you know so this is pretty interesting and then another one is that's

08:23 common is you can do things that have async counterparts, but the older way to do them

08:30 would block the asyncio thread.

08:32 And that's really bad because you want to spend as little time blocking that as possible

08:37 because there's only one thread that does all the async work.

08:40 So if you're doing FastAPI or whatever, one thread, don't block it, depending on how you

08:44 set up your server, but generally.

08:45 So if you had old code that said like time.sleep and then you convert that to async, this should

08:51 be an await async io.sleep so that the it just lets the loop go for half a second rather than

08:58 block the entire program so you can say with no event loop blocking right so those are the three

09:03 types of tests so you can do it with context managers which is pretty cool you can also do it

09:08 with decorators put them on a function no thread leaks no task leaks and so on and yeah you get

09:14 errors like leaked task 2 or whatever right pretty descriptive shows you where it's called and so on

09:20 Another one, though, you'll probably like this, Brian.

09:22 A bunch of examples.

09:25 But where are you?

09:26 They also have a pytest plugin for it.

09:30 So you can come and say pytest mark async.io and then run with no event loop blocking in there,

09:38 which is pretty nice.

09:40 It's maybe not exactly what I was looking for, is it?

09:42 There we go.

09:42 No, the pytest plugin.

09:43 So then you can set it up as a marker with no leaks and things like that.

09:47 Cool.

09:48 Yeah.

09:48 Yeah.

09:48 No leaks.

09:49 Anyway, yeah, if you're doing anything with async programming,

09:52 might be worth throwing this on just to see what's going on.

09:55 I don't think I would leave this on all the time.

09:57 But having the unit test for it, good.

10:00 And maybe if you're doing conversions, like I said, it's especially error prone to go from converting synchronous code to asynchronous code

10:06 because it's so easy to overlook converting one bit here or there.

10:09 So this would ideally catch it.

10:11 Yeah, I'm not sure.

10:12 It'd be one of those things of like also timing it.

10:16 during development if you had this on to make sure things are like cool in your synchronous part or

10:23 async part um and then you know how much slower is it or how much faster is it if you take that out

10:29 if there's not much of a difference um yeah maybe leave it yeah yeah yeah exactly exactly but well

10:36 yeah more django yeah i've actually been thinking about django a lot lately so i've got a a few

10:43 articles. I just want to kind of run through a few of them that I ran across. I don't have much to

10:48 say about either one of them, so I thought I'd combine them into one topic. So first off, we have

10:53 from Paul Taylor, migrating from Celery to Django Tasks. And I know Django Tasks, I can't remember

11:00 if it was just in this recent release. I think so. But they're a newish thing. So you might have

11:06 some code around that you're a project that's using Celery already, and you want to use Django

11:11 tasks instead so um walking through some of the some of the differences um and uh and and what to

11:18 watch out for the different settings um and i did it made me want to play with it a little bit because

11:23 um apparently django tasks has uh well if you combine it with cron task you can have tasks run

11:29 with at certain intervals which is kind of fun that's neat you probably can do that with celery

11:35 too but yeah but how many servers do you want this is like if your web app is running this

11:41 happening versus are the servers talking to each other?

11:45 Then next article, this is from Julia Evans, and she brought us all those cool zines

11:54 about programming in GitHub and all that stuff.

11:58 She wrote some notes on starting to use Django.

12:01 One of the things I just like about this is she's experienced developers,

12:06 you probably are already familiar with Julia Evans.

12:09 But one of her comments about Django is it's less magic than Rails.

12:14 And one of the things about that isn't just a style thing.

12:18 It's when you leave a project and come back a few months later, can you find, can you pick it up and understand where things are?

12:26 And just her commentary is just Django makes it more obvious.

12:30 If you want to look for your views, they're in views.py, things like that.

12:35 The built-in admin, of course, is nice.

12:38 And the ORM, everybody loves the ORM.

12:41 Or if you like the ORM, you love it, probably.

12:46 Automatic migrations, that's a really cool built-in thing of Django.

12:53 Good docs.

12:55 And this is like the third one.

12:57 Oh, built-in email was as neat.

12:59 I haven't tried to use email with Django, but it's on my to-do list.

13:03 Apparently, it's not that difficult.

13:04 So that's cool.

13:07 one of the things is that she's said that she's been using SQLite for Django in production and

13:14 followed these instructions. And these instructions is the last article I want to talk about, which is

13:21 the definitive guide to using Django with SQLite in production. And I just skimmed this, but

13:28 it goes through how to set up databases and cache and all that stuff. I'm going to drop down to the

13:35 conclusion there's quite a bit here and but the conclusion says um that is reduced complexity

13:42 um it still looks kind of complex to convert to me but um but maybe it's less complex than

13:48 keeping a sqlite or a postgres database around or something so yeah maybe backup is copy the file

13:55 that's nice yeah so um anyway um and i can't remember which article was in there was a

14:00 discussion around having in one of these Django articles about having tasks be stored in the

14:09 database itself, which is interesting. I didn't know you could do that. So yeah, fun with Django.

14:16 Yeah, very cool. I mean, in a sense, we're using SQLite in production. Python Bytes has a bunch of

14:20 caching through disk cache, and disk cache is really just a fancy front end to SQLite. So

14:30 So I want to talk about Datastar. So Datastar is a cool framework. This is not quite the exact right

14:39 mental model for thinking about it, but it's kind of the spiritual successor to HTMX, I think.

14:45 So the folks behind Datastar, they came from being contributors to the HTMX side and being

14:53 big fans of it. So for those of you who don't know, HTMX, super cool library,

14:57 it kind of extends the HTML markup to do more things.

15:01 So instead of just saying, here's a button, you could say, here's a button,

15:06 and on click, I want you to call this thing on the server.

15:09 And when it comes back, I want you to replace this part of the page

15:12 with what came back from the server and so on.

15:14 And HTMX is great, but HTMX only does that sort of local server communication, right?

15:21 So it might update some section, but what if when that part updates, another part of the page updates?

15:26 and it gets a little bit more complicated.

15:29 So what people have done is they paired HTMX with AlpineJS and other things,

15:34 but AlpineJS has its sort of truth for what the data is,

15:38 and then HTMX has the DOM and the server, and it's a little bit your job to juggle the go-between for these libraries,

15:44 which is not ideal.

15:45 So Datastar takes this idea and says, what if the server was the source of truth?

15:50 What if we could have multiple parts of the page update

15:54 in kind of a HTMX way.

15:56 You say like, if you interact with this, you know, like click on this element,

15:59 I want you to get this stuff from the server.

16:00 And it sends back the page.

16:02 And very much like PyView, which we talked about previously,

16:05 it will take what comes back from the server, diff it and figure out,

16:09 well, this section with this ID is going to be updated over here.

16:12 And some other part is going to be updated with this because that ID part

16:16 in the thing that came back matches over there.

16:18 And it's got this really nice way to sort of be a little more holistic,

16:21 but still do HTMX-like attributes with server-sent event things going on.

16:27 So in a way, it's like PyView.

16:29 But what's really different about this, two things.

16:31 First is it's not a web framework.

16:33 Like PyView is a web framework.

16:35 Like Django is a web framework.

16:36 Like Flask is a web framework.

16:38 This is purely a JavaScript library that talks to the server

16:42 and basically handles everything on the front end.

16:44 It's only 11K too, by the way.

16:46 So it's incredibly small.

16:47 And it does what AlpineJS does.

16:49 It has sort of a data binding thing.

16:51 and the server can say, I know you have a variable called username.

16:56 And if I update username on the server, it will automatically change the page

17:00 everywhere username is used.

17:02 So it has these things called signals as well.

17:05 Pretty neat library, like this star field here.

17:06 See how if you go to the website, it's following my mouse around.

17:10 You can make it go faster or slower.

17:12 It feels like you're in Star Wars, which is pretty cool.

17:15 But all of that is being driven by server set events off of the server,

17:19 which is pretty neat.

17:20 There's a bunch of cool examples.

17:22 So you can go to the examples page if I zoom back a bit.

17:26 They also have this really fun video.

17:27 So you should definitely watch the video.

17:29 But let me show you an example.

17:31 So there's a bunch of these examples.

17:34 And if I open up two of these and put them side by side,

17:37 I can use the new Vivaldi thing or I can tile them together.

17:41 And if I get them to zoom the same size.

17:44 So if you come over here, you can just type in.

17:47 If you put these two side by side, you can say record.

17:50 podcast and boom they're both going i don't know this one is going to finish that one i'm going to

17:55 finish that let's uh show only the completed ones oh wow and that's cool it happens to be on my

18:00 same machine but really they could be anywhere there's a really bunch of a bunch of interesting

18:05 performance things around with data star so you kind of like htmx be like ah but it's a little

18:12 bit not quite enough for what i need to do check this out it's a really cool thing and this episode

18:17 with the Datastar team is coming out on Talk Python this week.

18:20 I wanted to feature Datastar on the show sooner, but then when I knew I was going to have them on Talk Python,

18:27 I was like, let me just wait until I get that episode recorded.

18:29 People who are more interested can listen to that as well.

18:32 So that's coming out.

18:34 Plus a couple bonuses on this, that it won the website,

18:40 just the retro look of it looks awesome.

18:43 It's great, isn't it?

18:44 And that they use the term hypermedia.

18:48 Kind of love that back to the origins.

18:52 Yeah, yeah, for sure.

18:53 And there's also this really nice article by Chris May,

18:58 who is a very big fan of HTMX, gave some Django FlaskCon talk on it,

19:05 and basically went through and said, why do I think I'm using Datastar these days?

19:09 So really nice example, but got some Python examples.

19:13 There's a Python SDK that you can bring in.

19:16 So if you were using Flask, use the SDK.

19:19 If you're using FastAPI, use the SDK or whatever.

19:21 But yeah, super neat.

19:23 Okay, cool.

19:24 All right.

19:25 That's it for all of our topics, isn't it?

19:27 Yeah.

19:28 Got anything out there you want to cover?

19:30 Any extras?

19:32 Okay.

19:32 So yeah, a couple of extras.

19:35 Let's see.

19:35 I'm all zoomed out.

19:36 So I did bring up Django chat before I, the, the, I was lucky enough to be asked to be on the show as well.

19:44 So I was talking about lean TDD and a lot of other stuff on the,

19:49 the Django chat podcast. I, you know, one of the things they asked me is, is the, is about the, what,

19:56 the trends in web frameworks for Python. And I'm like, man,

20:00 I'm the wrong guy to ask about that. Yeah, sure. Okay.

20:04 You mean the ones that run on the hardware that control the Wi-Fi signals?

20:08 Yeah.

20:10 Anyway, so I am working a little bit at Django lately, but I'm by no means a Django expert.

20:17 But we did get into the Lean TDD and inverting the testing pyramid a little bit.

20:23 One of the things I love about this and was really fun because Carlton,

20:27 when I brought up the fact, brought up some reasons to shy away from unit tests as much.

20:34 Carlton kind of got his feathers ruffled, and we walked through some of the good aspects of unit tests

20:42 and where you might want to keep them, where you might want to ditch them.

20:44 So that was fun.

20:47 The next extra is that I did notice that the PEP 686, making UTF-8 mode the default, is now, or maybe it was.

20:59 Maybe it was a while ago.

21:01 But anyway, I just noticed that it was finals.

21:03 If we haven't covered it already, it's finalized in 3.15.

21:07 It'll be there.

21:07 So that's good.

21:09 I think that's interesting.

21:10 This is a really old request, but it didn't get until next year, right?

21:14 3.15.

21:15 So this was originally started in 2022.

21:18 Yeah.

21:19 But it's not yet in Python, right?

21:22 It's 3.15, as you point out.

21:25 Yeah, I'm looking forward to having the default be just UTF-8.

21:29 Yeah, I mean, if you're going to have a default.

21:32 Let's pick the one that is mostly used and supports all the different languages and emojis.

21:38 It's important to have emojis.

21:39 Yeah.

21:40 Before we move on, I do have, I guess, a way side tangent topic.

21:47 Kind of the sci-fi-ness of Datastar reminded me that recently I remembered the cheesy 80s movie

21:54 that reminded me of Tesla's Cybertrucks.

21:58 And the cheesy movie was called Megaforce.

22:01 And it's from 81.

22:02 did you ever see Megaforce?

22:04 I have somehow missed this cultural phenomenon.

22:06 Well, you're probably well off because Rotten Tomatoes gives it a 6%.

22:13 And the reason why I think about it when I see Teslas is because of these trucks.

22:17 So these tanks in there, in the Megaforce, kind of remind me of, well,

22:22 just sort of the angles and stuff kind of remind me of Cyber.

22:25 They do have that, don't they?

22:27 Incredible.

22:28 Those are my extras.

22:29 I love you, but you're hopeless.

22:31 On Blu-ray.

22:34 wow that's is that a song i love anyway i don't know it seems like it comes from the movie but i

22:39 don't know look at the shots oh my gosh even the clothes are it's so bad cyber truck looking

22:46 i want one of these though uh but yeah so do you have any extras i uh this has completely

22:53 escaped me this is incredible yes i have extras so first of all brayson daniel has been on the show

22:59 a long time ago when we were having guests, wrote an article about whether, well, wrote a pro, has a

23:06 project and a theory about whether LLMs think or if they're just pure statistics. And as a good data

23:13 scientist, created this project here. Yes. And it's a literature review about whether machines think

23:22 or don't think. And so now he's got an LLM analyzing whether all the papers on whether LLMs

23:28 think or don't think. And you can say, so the premise is that they do not, right? So there's

23:34 97 papers that support it, but 13 that challenge it. And if you go and look at them, you can actually

23:39 hover over these. And it's just a beautiful website. So one, I think it's an interesting,

23:44 timely topic, but two, it's just a really neat way to present information. Yeah. Yeah. So well done,

23:50 Grayson. Also came across a new Mastodon app called IceCubes, and it's free and open source.

23:57 if you're a Mac person at least.

23:59 So I don't know, I've been playing with this.

24:01 It looks nice.

24:02 I really like it.

24:03 And having it open source, you know, we just, I don't know how you feel about this, Brian,

24:07 but I just don't usually connect open source in Mac apps,

24:12 or sorry, iOS apps.

24:14 This is on both, but really I don't think, like phone apps and open source,

24:18 I don't think about those being, I know there are some out there,

24:21 but it's way less common.

24:23 Yeah, anyway, I just want to give it a shout out.

24:24 I thought it was cool.

24:25 I ran across it looking into something else.

24:27 - Yeah, don't you have to like pay to be like, - Yeah, I pay a hundred dollars a year.

24:32 So I get the privilege to publish to Apple.

24:35 So I pay a hundred dollars a year for the privilege to make Apple's products more valuable to them.

24:41 It's amazing.

24:42 - Yeah, I was just thinking that that might be one of the reasons why we don't see a lot of open source

24:46 because you.

24:47 - Yeah, exactly.

24:47 And then whose job is it to be in charge of it?

24:50 'Cause it's not as easy to release 'cause it's gotta go through somebody's account.

24:54 And I don't know, it's just, it's just not that common.

24:56 And I ran across this and I thought it was really cool.

24:58 So I'm using this for my Mastodoning.

25:00 However, Mona, the one I was using before, has a really nice feature that if you write a thread too long,

25:05 it'll split it into a series, like one of two, two of three,

25:08 two, one of three, two of three, three of three automatically.

25:11 And this one doesn't have that, but we could open a PR.

25:14 How's that?

25:14 - Yeah.

25:15 - All right, carrying on.

25:16 Remember we talked about Rundl, R-U-M-D-L, which is a Rust-based markdown formatter and linter.

25:23 - Yeah.

25:24 - Which is really nice.

25:25 using it for various things.

25:27 Well, there's now a Rumdoll IntelliJ plugin.

25:31 So most of the people listening will care about that in terms of PyCharm.

25:36 But if you want to have that built right into your editor

25:39 and you're using PyCharm, you can install the plugin and off it goes.

25:43 - Yeah.

25:43 - Okay, and then really quickly, the last time I talked about how curl,

25:48 like you mentioned something about AI frustration with some project or whatever.

25:54 And I pointed out curl.

25:56 So I'm linking to Ars Technica article that says overrun by AI slop curl scraps bug bounties to ensure that they keep their mental health intact.

26:08 So there was the PRs, the PRs that were like thousands of lines long and they were just kind of really messy.

26:15 And people are like, we're not accepting that.

26:17 I don't remember what project that was.

26:19 It's been a long time.

26:19 It's been a week.

26:20 But I said that curl's doing the same thing.

26:22 It's not exactly the same thing.

26:23 what they're doing is they had a bug bounty program like hey well we'll pay you a thousand

26:27 dollars if you find a memory overflow or something like that well a bunch of people were just turning

26:32 clod code or something loose on it say find all the bugs and then some you know then they were

26:35 submitting whatever clod code told them and apparently a lot of times clod code got the

26:41 understanding wrong so it wasn't really a bug security bug and so the person that was just like

26:46 i can't i cannot answer more of these no that's not actually a problem here's why and the

26:53 The incentives were misaligned, right?

26:55 Like with a PR, like what is the incentive?

26:57 Maybe like, oh, I'm a contributor.

26:59 Well, this they were getting paid for.

27:01 So they were getting overwhelmed.

27:03 Anyway, link into that for all the people who care.

27:06 Yeah.

27:06 And finally.

27:07 I think Curl's one of those like maintained by one person apps.

27:11 Yeah.

27:12 Yeah.

27:12 It's got, if not one, it's a very small team.

27:15 Finally, the PSF JetBrains survey for 2026 is on.

27:21 Have you done this yet?

27:22 No.

27:23 I have not either, but.

27:23 - So that time of the year already.

27:25 - I know, yeah.

27:26 So anyway, it takes about 10 to 15 minutes to fill out,

27:29 link into it.

27:30 Everyone go out there, fill this out, make your voice heard.

27:33 Tell them, please tell them that CSS is not a programming language.

27:36 Okay.

27:36 - And you all use Bytest.

27:38 Do not click no testing.

27:41 Do not test.

27:41 - Exactly.

27:42 The second most popular testing framework is none.

27:45 - Yeah.

27:48 Yeah, yeah.

27:49 Which is great 'cause it used to be the number one.

27:52 progress that's a form of progress all right ready for a joke yeah i don't remember what i picked for

27:57 this so it's gonna be news to me as well this is fun okay uh no i don't care about that okay this

28:03 is good so we've all heard of these license plates that have um crazy stuff has gone wrong like there

28:09 was a license plate uh the person put null for their license plate and instead of because they

28:15 thought that there would be a test like if not equal to null then send ticket or whatever yeah

28:19 But instead it's like, if value equals null, and they started getting all the tickets.

28:24 So here's a car with a license plate that says example.

28:29 And the title is when test values git pushed to production.

28:32 What state is that?

28:34 That's good.

28:35 What state are we looking here?

28:37 Maryland.

28:38 Yeah, so if you're in Maryland, there's an example car out there.

28:41 You get slugged for that.

28:42 Yeah.

28:42 Yeah, that's pretty fun.

28:44 Do your kids do the yellow bug thing or the yellow car?

28:47 Oh, yeah.

28:48 yeah the punch bug sort of thing and well because when we were kids it was slug bug or punch bugs

28:53 like but yeah yeah so my kids do if it's a yellow car um or if it's a license plate with the state

29:02 that's not adjacent to your state um or your own state so like uh yeah for us washington wouldn't

29:09 work but like montana would sort of thing um so i'm like that's just you're just randomly picking

29:16 things so i chose um uh it's um any car that's uh what not black um or not a sedan uh which is you

29:26 know actually no i chose black car and and not a sedan which now is most cars so yeah yeah you're

29:33 gonna get tired from punching your kids my my kid does that as well and i feel like it's just an

29:38 excuse to go around they don't hit you hard but you know just being so just taps because yeah yeah

29:43 Anyway, so also we did this once like two blocks away from a Stanley Steamer, which they're all yellow trucks.

29:52 And we were waiting in line somewhere where there was like, we didn't know why, but every like every five minutes, a Stanley Steamer truck was coming by.

29:59 And we're like, this is ridiculous.

30:00 But that's crazy.

30:02 Before we wrap it up really quick, Christian, out the honest, gave us some interesting thoughts on the Apple on the iOS, not open source intersection.

30:12 Apple apps must be only available through the Apple App Store,

30:16 which is interesting, right?

30:18 The ones that are for iOS, not for macOS.

30:20 Oh, right.

30:21 Even if you allow, yeah, weird.

30:23 Yeah, so that makes it difficult.

30:25 And says, GPL licensed software popular in a source is often incompatible with App Store terms

30:30 because Apple requires control over binaries and does not distribute the source code.

30:34 So, interesting.

30:35 Yeah.

30:36 Okay.

30:37 More to say on that in the not too distant future, actually.

30:41 Do you have more apps coming now?

30:42 I have stuff to share, but I can't share any more than that.

30:45 Okay.

30:46 Teaser.

30:47 I've had a better experience this time.

30:49 I'll just leave it at that.

30:49 Don't touch that dial.

30:51 Anytime you have to interact with these app stores, it's not the best.

30:55 Yeah.

30:56 All right.

30:56 Yeah.

30:57 Don't touch that dial for now.

30:58 Signing off though.

30:59 See you later, Brian.

31:00 Bye everyone.

31:00 Bye.


Want to go deeper? Check our projects




Subscribe to Python Bytes