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
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 get 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