Python Bytes - #468 A bolt of Django

Episode Date: February 3, 2026

Topics covered in this episode: django-bolt: Faster than FastAPI, but with Django ORM, Django Admin, and Django packages pyleak More Django (three articles) Datastar Extras Joke Watch on YouTube ...About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) 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 Farhan Ali Raza High-Performance Fully Typed API Framework for Django Inspired by DRF, FastAPI, Litestar, and Robyn Django-Bolt docs Interview with Farhan on Django Chat Podcast And a walkthrough video 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) Migrating From Celery to Django Tasks Paul Taylor Nice intro of how easy it is to get started with Django Tasks Some notes on starting to use Django Julia Evans A handful of reasons why Django is a great choice for a web framework less magic than Rails a built-in admin nice ORM automatic migrations nice docs you can use sqlite in production built in email The definitive guide to using Django with SQLite in production I’m gonna have to study this a bit. The conclusion states one of the benefits is “reduced complexity”, but, it still seems like quite a bit to me. Michael #4: Datastar Sent to us by Forrest Lanier Lots of work by Chris May Out on Talk Python soon. Official Datastar Python SDK Datastar is a little like HTMX, but The single source of truth is your server Events can be sent from server automatically (using SSE) e.g yield SSE.patch_elements( f"""{(#HTML#)}{datetime.now().isoformat()}""" ) Why I switched from HTMX to Datastar article Extras Brian: Django Chat: Inverting the Testing Pyramid - Brian Okken Quite a fun interview PEP 686 – Make UTF-8 mode default Now with status “Final” and slated for Python 3.15 Michael: Prayson Daniel’s Paper tracker Ice Cubes (open source Mastodon client for macOS) Rumdl for PyCharm, et. al cURL Gets Rid of Its Bug Bounty Program Over AI Slop Overrun Python Developers Survey 2026 Joke: Pushed to prod

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is episode 468, recorded February 2nd, 2026. I'm Michael Kennedy. And I'm Brian Akin. This episode is brought to you by us. Brian's books, his new Lean TDD book, which you can get right now and is in development, but almost done. Yes? He's going to be done this week, folks.
Starting point is 00:00:26 Don't worry about it. My Python and Production book has been going strong as well. That's a really fun one. And of course, our courses. All the links for those things are in the show notes. Follow us on the socials. Sign up for the newsletter. We don't spam you.
Starting point is 00:00:39 We just send you updates about the episodes, extra information, more links, that kind of thing. As well as a periodic announcement of like, hey, we've got a new course or a new book or whatever it is we're up to. Things like that. But we don't give it away. We don't sell it. Things like that. With that, like a bolt of lightning striking out of the blue. What do we got?
Starting point is 00:01:01 Well, we've got Django Bolt. So Jango Bolt is actually I learned about Jango Bolt because I was looking at the Django Chat website and or the Jango chat. And they had an episode building a Django API framework faster than Fast API, which of course I was interested in. And so this episode actually discusses Django Bolt. And Django Bolt is a Rust powered behind the scenes, but it's inspired. It's a, so it's like fast, like we already have Django Rest framework and there's Django Ninja.
Starting point is 00:01:42 But this is along those lines of trying to get an API framework for Django. The inspiration is kind of interesting, I think, down near the, the bottom. There's inspired by, oh, inspired by Django Rest framework, Fast API, Lightstar, and Robin. Apparently, some of the Rust, the Rust Python, integrating Rust and Python was inspired by some of the Robin project. I don't know anything about Robin, actually. So, but, so interesting, different take on APIs for, for Django. I was in one of the things that was really interesting, especially in the discussion on the podcast was the the timing of it
Starting point is 00:02:27 trying to figure out how fast things are and there's you know there's there's there's issues with that but apparently he used like a ton of graphs ton of charts so you can you can look at what's going on also in the act of doing that realize that the Django you know Javan Django Rest Framework if you if you configure things in a certain way you can do off the shelf things and get it pretty fast
Starting point is 00:02:50 Anyway, but so this is a this is an interesting take. So there's a bunch of leaks we're going to link to. There's the Jenga Bolt repository. The documentation is set up and it's pretty good. Oh, I should back up. There's a little warning in the in it that it is still in progress. It's under active development. So be aware of that.
Starting point is 00:03:13 Okay. Then there's the podcast episode. And then just recently somebody came out with a, with a video walking through using Django Bolt, which is an interesting discussion. And I actually just watched the first part of it. 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.
Starting point is 00:03:38 So pretty interesting, interesting take on APIs. Yeah, that is super interesting. I've been looking at Django Bolt as well. Not because I plan to use it because my websites are not in Django, but just it's got some really interesting ideas out there and yeah also note on the performance thing do your own performance testing but stuff I think it's more the more importantly people should think about this as side by side like three or four weeks ago when I did my Python numbers everyone should know every Python developer should know people said well you did this on a
Starting point is 00:04:10 m4 Pro CPU and it's not going to be the same when you run it on a five dollar crappy server in the cloud and like true but if I run it on a five dollar server server that people go, well, it doesn't run. That's not comparable to my high-end server or whatever, right? It's more like, okay, this one is relative to that. This is like 2x of that other one or something, right? So just keep that in mind, right? Yeah, I mean, numbers are tested on. Right, but also, I mean, as long as the numbers are relatively tested, you're doing A and B on the same hardware. Now, there might be differences in the, behind the C-Python implementation based on different hardware.
Starting point is 00:04:51 And to the point where one technique will work better on some platform than another, but I don't think a lot of people are thinking in the dirt that much. But anyway. Yeah. One quick bit of real-time follow-up from Simposts in the audience. My first job was in Django. I always love DjangoRM plus Migrations Framework, and DjangoBolt connects ORM with fast async stuff, which is really cool.
Starting point is 00:05:13 Indeed. Yeah, it seems like a neat. A neat project. Yeah. It'll be something to watch. Indeed. But did he mention async? What if you had leaks in your async code?
Starting point is 00:05:25 So I want to talk about this thing called PIE leak. So PIE leak detects acin leaked async tasks, threads, and event loop blocking. So that's not exactly a leak, but it's kind of a leak. So it's non-async code leaking into async sections. When I first saw this, I thought it was a memory. diagnosing thing, but what it's for is diagnosing async tasks that if you've ever seen, like this task was not awaited or something like that. And it's got a really nice programming model, but this is something that certainly can
Starting point is 00:06:00 happen. I will tell you if you run the TY or the Pyrfly typing integration with your editor, and maybe Pytram, I don't think Picharm does this, but those two will put, Pytram will detect that the stuff is not being treated right, but the others do inline type overlays. So you'll have like X equals some function call. And you think X is an integer. If it says X and then in little gray, like it's not really in the code, but it's putting in there colon, co-routine of something something int, you're like, oh, I forgot to wait that.
Starting point is 00:06:34 Because this is coming back because the unexecuted co-routine, not the number, the integer, right? That, it's easy to do if you're writing regular async code, but it's really, easy to do if what you're doing is converting a synchronous program to an async program because every call site of every function is synchronous and then you go make those functions synchronous asynchronous and then you try to go back and fix them everywhere you called them it's not a syntax or a runtime error usually a lot of times to actually not call that it'll just run so for example if you have x let's say x equals some function call and normally gives you back a number you want to make sure it's not zero. So you'd say if x, you know, if not x or if x, something like that, right?
Starting point is 00:07:17 Well, when it's a co-routine, your if-x still runs, it's just always true. And things like that, right? It's because it's, is the co-routine falsy? No. There's only like five or six things in Python letter falsie. And co-routine is not. So it's true. Keep going. It's really sketch. So those are super hard to catch. And this is the kind of thing that theoretically will catch it. So pretty neat. Anyway, it doesn't all, it depends how you start it, I believe right you've got to do like a create task with the task has to be running if you just create our co-routine and don't do anything with it it probably still won't catch it just to be clear anyway so here's how it works you can say create a context manager with
Starting point is 00:07:54 block in async with blocking you say with no task links leaks and you run some code and here's a function call to create a task that is never awaited you wait long enough for that to come into existence and you're going to get an error right or this also works for threads just create a thread and never wait for it to stop. So the context here's within this block of code. I might be starting threads, but they should all be done by the time we leave. You know?
Starting point is 00:08:20 So this is pretty interesting. And then another one is that's common is you can do things that have async counterparts, but the older way to do them would block the async IOT thread. And that's really bad because you want to spend as a little time blocking that as possible because there's only one thread that does all the async work. So if you're doing fast API or whatever, one thread, don't block it, depending on how you set up your server, but generally.
Starting point is 00:08:45 So if you had old code that said like time. Dot sleep, and then you convert that to async, you should, this should be an await asyncio. So that the, it just lets the loop go for half a second rather than block the entire program. So you can say with no event loop blocking, right? So those are the three types of tests. So you can do it with context managers, which is pretty cool. You can also do it with decorators, put them on a function,
Starting point is 00:09:09 No thread leaks, no task leaks and so on. And yeah, you get errors like leaked task to or whatever, right. Pretty descriptive. It shows you where it's called and so on. Another one, though, you'll probably like this, Brian. Growing down a bunch of examples, but where are you? They also have a pie test plugin for it. So you can come and say pie test mark async I.O.
Starting point is 00:09:35 And then run with no event loop blocking in there, which is pretty nice. It's not maybe not exactly what I was looking for, is it? There we go. No, the PITES plugin. So then you can set it up as a marker with no leaks and things like that. Cool. Yeah. Yeah.
Starting point is 00:09:48 No leaks. Anyway, yeah, if you're doing anything with async programming, might be worth throwing this on just to see what's going on. I don't think I would leave this on all the time. But having the unit test for it, good. And maybe if you're doing conversions, like I said, it's especially error prone to go from converting synchronous code to asynchronous code because it's so easy to overlook converting one bit here or there.
Starting point is 00:10:09 So this would ideally catch it. Yeah, I'm not sure. It'd be one of those things of like also timing it. If you, during development, if you had this on to make sure things are like cool in your synchronous part or async part. And then, you know, how much slower is it or how much faster is it if you take that out? If there's not much of a difference. Yeah, maybe leave it out. Yeah, yeah, exactly.
Starting point is 00:10:35 But well. Yeah. More Django? Yeah. I've actually been thinking about Jango a lot lately. So I've got a few articles. I just want to kind of run through a few of them that I ran across. I don't have much to say about either one of them.
Starting point is 00:10:50 So I thought I'd combine them into one topic. So first off, we have from Paul Taylor migrating from Celery to Django Tasks. And I know Jango Tasks, I can't remember if it was just in this recent release. I think so. But they're a newish thing. So you might have some code around that you're a project that's using
Starting point is 00:11:08 celery already and you want to use Django tasks instead. So walking through some of the differences and what to watch out for the different settings. And I did make me want to play with it a whole bit because apparently Django Tas has, well, if you combine it with KronTask, you can have tasks run at certain intervals, which is kind of fun. That's neat. You probably can do that with celery too, but.
Starting point is 00:11:36 Yeah, but how many servers do you want? This is like, if your web app is running, it's happening versus are the servers talking to each other? Yeah. And then next article, this is from Julia Evans, and she brought us a whole, all those cool zines about programming and GitHub and all that stuff. She wrote some notes on starting to use Django.
Starting point is 00:12:01 And one of the things I just like about this is she's an experienced developer. You know, you probably are already familiar with Julia. Evans but one of her comments about Django is it's less magic than Rails and one of the things about that isn't just a style thing it's when you leave a project and come back a few months later can you find can you can you pick it up and understand where things are and just her commentary is just Django makes it more obvious if you want to look for your views they're in views stop high things like that the built-in ambin of course is nice and the the ORM, everybody loves the ORM, or if you like the ORM, you love it, probably.
Starting point is 00:12:45 Automatic migrations, those are, that's a really cool built-in thing of Django. Good docs. And this is like the third one. Oh, built-in email was as neat. I haven't tried to use email with Django, but so it's on my to-do list. Apparently, it's not that difficult. So that's cool. One of the things is that she's said that she's been using SQLite for Django in production and followed these instructions and these instructions is the last article I want to talk about, which is the definitive guide to using Django with SQLite in production.
Starting point is 00:13:25 And I just skim this, but it, you know, it goes through how to set up databases and cache and all that stuff. I'm going to drop down to the conclusion. There's quite a bit here, but the conclusion says that is reduced complexity. It still looks kind of complex to convert to me. But maybe it's less complex than keeping SQLite or a Postgres database around or something. Yeah, maybe. Backup is copy the file. That's nice.
Starting point is 00:13:56 Yeah. So anyway, and I can't remember which article was in. There was a discussion around having, in one of these Django articles about having tasks be stored in in the database itself, which is interesting. I didn't know you could do that.
Starting point is 00:14:13 Yeah. Yeah. So, yeah, fun with Django. Yeah, very cool. I mean, in a sense, we're using SQLite in production. Python bytes has a bunch of caching through disk cache. And disk cache is really just a fancy front end to SQLite. So that thing keeps hanging together. I guess it works.
Starting point is 00:14:29 No, it's good. It's good. So I want to talk about Datastar. So Datastar is a cool framework. I would, this is not quite the exact right mental model for thinking about it, but it's kind of the spiritual successor to HTMLX, I think. So the folks behind Datastar, they came from being contributors to the HTMLX side and being big fans of it.
Starting point is 00:14:54 So for those of you who don't know, HTMLX, super cool library, you, it kind of extends the HTML markup to do more things. So instead of just saying here's a button, you could say, here's a button. And on click, I want you to call this thing on the server. And when it comes back, I want you to replace this part of the page with what came back from the server and so on. And HTMLX is great, but HTMLX only does that sort of local server communication, right? So it might update some section. But what if when that part updates, another part of the page updates? And it gets a little bit more complicated. So what people have done is they've paired HTMLX with Alpinejs and other things.
Starting point is 00:15:34 But AlpineJS has its sort of truth for what the data is. And then HTMLX has the DOM and the server. And it's a little bit your job to juggle that go between for these libraries, which is not ideal. So Datastar takes this idea and says, what if the server was the source of truth? What if we could have multiple parts of the page update in kind of a HTMLX way? you say like if you interact with this you like click on this element I want you to get this stuff from the server and it sends back the page and very much like pie view which we talked about previously it will take what comes back from the server diff it and figure out well this section with this ID is going to be updated over here and some other part is going to be updated with this because that ID part in the thing that came back matches over there and it's got this really nice way to sort of be a little more holistic but still do htmx like attributes with server sent event things going on. So in a way, it's like PiVue. But what's really different about this, two things. First is it's not a web framework. Like PiVue is a web framework, like Django's a web framework,
Starting point is 00:16:36 like Flask is a web framework. This is purely a JavaScript library that talks to the server and basically handles everything on the front end. It's only 11K too, by the way, so it's incredibly small. And it does what Alpinejs does. It has sort of a data binding thing. And the server can say, I know you have a variable called username, and if I update username on the server, it will automatically change the page everywhere username is used. So it has these things called signals as well. Pretty neat library. Like this Starfield here, see if you go to the website, it's following my mouse around.
Starting point is 00:17:10 You can make it go faster or slower. It feels like here in Star Wars, which is pretty cool. But all of that is being driven by server set events off of the server, which is pretty neat. There's a bunch of cool examples. So you can go to the examples page of a zoom back a bit. They also have this really fun video. So you should definitely watch the video.
Starting point is 00:17:29 But let me show you an example. So there's a bunch of these examples. And if I open up two of these and put them side by side, I can use the new Vivaldi thing or I can tile them together. And if I get them to zoom the same size. So if you come over here, you can just type and if you put these two side by side, you can say record podcasts and both. Oh, they're both going.
Starting point is 00:17:53 I don't know. This one is. I'm going to finish that one. I'm going to finish that. Let's show only the completed ones. Oh, wow. And that happens to be on my same machine, but really, they could be anywhere. There's a really bunch of interesting performance things around with Datastar.
Starting point is 00:18:07 So you kind of like HTMLX, but it's a little bit not quite enough for what I need to do. Check this out. It's a really cool thing. And this episode with the Datastar's team is coming out on Talk Python this week. I wanted to feature Datastar on the show sooner, but then what I knew I was going to have them on TalkPython. I thought, I'm like, let me just wait until I get that episode recorded. People who are more interested can listen to that as well.
Starting point is 00:18:33 So that's coming up. Yeah. Plus the, a couple bonuses on this, that it, one, the website, just the retro look of it looks awesome with the, it's great, isn't it? And that they use the term hypermedia. Kind of love that back. Yeah, I do too. to the origins.
Starting point is 00:18:52 Yeah, yeah, for sure. And there's also this really nice article by Chris May, who is a very big fan of HTMLX, gave some a Django, you know, Flaskon talk on it, and basically went through and said, why do I think I'm using Datastar these days? So really nice example, but got some, you know, Python examples. There's a Python SDK that you can bring in.
Starting point is 00:19:16 So if you were using Flask, use the SDK. If you're using Fast API, use the SDK. use the SDK or whatever, but yeah, super neat. Okay, cool. All right. That's it for all over topics, isn't it? Yeah. Got anything out there?
Starting point is 00:19:29 You want to cover? Any extras? Okay, so yeah, a couple extras. Let's see. I'm all zoomed out. So I did bring up Django chat before I was lucky enough to be asked to be on the show as well. So I was talking about Lean TDD and a lot of other stuff on the Django chat. podcast. You know, one of the things they asked me is the, is about the, what, the trends in
Starting point is 00:19:57 web frameworks for Python. And I'm like, man, I'm the wrong guy to ask about that. Yeah, sure. Okay. You mean the ones that run on the hardware that control the Wi-Fi signals? Yeah. So, anyway, so I am working a little bit of Django lately, but I'm by no means a Django expert. But we did get into the lean TDD and inverting the testing pyramid a little bit. One of the things I love about this and was really fun because Carlton, when I brought up the fact, brought up some reasons to shy away from unit tests as much. Carlton kind of got like his feathers ruffled and we walked through some of the good aspects of unit tests and where you might want to keep them, where you might want to ditch them.
Starting point is 00:20:44 So that was fun. The next extra is the, I did notice that the PEP 686 making UTF8 mode the default is now, or maybe it was, maybe it was a while ago. But anyway, I just noticed that it was finals. If we haven't covered it already, it's finalized it in 315. It'll be there. So that's good.
Starting point is 00:21:09 I think that's interesting. This is a really old request, but it didn't get until next year. right, 315. So this was originally started in 2022. Yeah. But it's not yet in Python, right? It's 315, as you point out. Yeah, I'm looking forward to having the default be just UTF8.
Starting point is 00:21:28 Yeah, I mean, if you're going to have a default. Let's pick the one that is mostly used and supports all the different languages. Emogies, it's important to have emojis. Yeah. Before we move on, I do have like, I guess, a way side tangent topic. That's kind of the sci-finess of Datastar reminded me that recently I, I remembered the cheesy 80s movie that reminded me of Tesla's cyber trucks. And the cheesy movie was called Megaforce.
Starting point is 00:22:01 And it's from 81. Did you ever see Megaforce? I have somehow missed this cultural phenomenon. Well, you're probably well off because Rotten Tomatoes gives it a 6%. And the reason why I think about it when I see Tesla's is because of these trucks. So these tanks in there in the megaforce kind of remind me of, well, just sort of the angles and stuff kind of remind me of cyber. They do have that, don't they?
Starting point is 00:22:27 Incredible. Those are my extras. I love you, but you're hopeless. On Blu-ray. Wow, is that a song? I love, anyway. I don't know. It seems like it comes from the movie, but I don't know.
Starting point is 00:22:40 Look at the shots from the movie. Oh my gosh, even the clothes are. It's so bad. Cyber truck looking. I want one of these, though. Yeah. So do you have any extras? This is completely escaped me.
Starting point is 00:22:54 This is incredible. Yes, I have extras. So first of all, Bracin Daniel, who's been on the show a long time ago when we were having guests, wrote an article about whether, well, wrote a project, has a project and a theory about whether LLMs think or, or, if they're just pure statistics. And as a good data scientist, created this project, here, yes. And it's a literature review about whether machines think or don't think. And so now he's got an LLM analyzing whether all the papers
Starting point is 00:23:27 on whether LLMs think or don't think. And you can say, so the premise is that they do not, right? So there's 97 papers that support it, but 13 that challenge it. And if you go and look at them, you can actually hover over these. And it's just a beautiful website. So one, I think it's an interesting, timely topic.
Starting point is 00:23:44 But two, it's just a really neat way to present information. Yeah. Yeah. So, well done, Grayson. Also, came across a new Mastodon app called Ice Cubes, and it's free and open source, if you're a Mac person at least. So I don't know, I've been playing with this. It looks nice.
Starting point is 00:24:02 I really like it. And having it open source, you know, we just, I don't know how you feel about this, Brian, but I just don't usually connect open source and Mac apps, or sorry, iOS apps. This is on both, but really I don't think, like phone apps and open source, I don't think about those being, I know there are some out there,
Starting point is 00:24:20 but it's way less common. Yeah, anyway, I just want to give it a shout out. I thought it was cool. I ran across it looking into something else. Yeah, don't you have to like pay to be, like, I don't know. Yeah, I pay $100 a year, so I get the privilege to publish to Apple. So I get to, I pay $100 a year for the privilege. to make Apple's products more valuable to them.
Starting point is 00:24:41 It's amazing. Yeah, I was just thinking that that might be one of the reasons of why we don't see a lot of open source because you... Yeah, exactly. And then whose job is it to be in charge of it because it's not as easy to release because it's got to go through somebody's account. And I don't know.
Starting point is 00:24:54 It's just not that comment. And I ran across this and I thought it was really cool. So I'm using this for my mastodonning. However, Mona, the one I was using before, has a really nice feature that if you write a thread too long, it'll split it into a series like one. of two, two, two, one of three, two, three of three, automatically and this one doesn't have that.
Starting point is 00:25:13 But we could open a PR, how's that? Yeah. All right, carrying on. Remember we talked about RUMDL, RUMDL, which is a rust-based markdown formatter and Linter. Yeah, which is really nice. We've both been using it for various things. Well, there's now a Rumdell IntelliJ plugin.
Starting point is 00:25:31 So most of the people listening will care about that in terms of Pi charm, but if you wanna have that built right into your editor and you're using Pi charm, you can install the plugin and off it goes. Yeah. Okay. And then really quickly, last time I talked about how curl, like you mentioned something about AI frustration with some project or whatever. And I pointed out curl.
Starting point is 00:25:56 So I'm linking to Ars Technica article that says, Overrun by AI Slop, Krill Scraps bug bounties to ensure that they keep their mental health intact. So there was the PRs, the PRs that were like thousands of lines long and they were just kind of really messy and people were like, we're not accepting that. I don't remember what project that was. It's been a long time. It's been a week. But I said that curls you in the same thing. It's not exactly the same thing. What they're doing is they had a bug bounty program like, hey, well, we'll pay you $1,000 if you find a memory overflow or something like that. Well, a bunch of people were just turning Claudecode or something loose on it. Say, find all the bugs
Starting point is 00:26:34 and then they were submitting whatever Claude Code told them. And apparently a lot of times Claude Code got the understanding wrong. So it wasn't really a bug, security bug. And so the person that was just like, I cannot answer more of these, no, that's not actually a problem. Here's why. And the incentives were misaligned, right? Like with a PR or like, what is the incentive?
Starting point is 00:26:57 Maybe like, oh, I'm a contributor. Well, this they were getting paid for. So they were getting overwhelmed. So anyway, link into that for all the people who care. Yeah. And finally, I think curls one of those like maintained by one person apps also. Yeah. Yeah, it's got, if not one, it's a very small team.
Starting point is 00:27:15 Finally, the PSF Jet Brain Survey for 2026 is on. Have you, have you done this yet? No. I have not either, but. That time of the year already. I know. Yeah. So anyway, it takes about 10 to 15 minutes to fill out, link into it.
Starting point is 00:27:30 Everyone go out there, fill this out, make your voice heard. Tell them, please tell them that CSS is not a programming language. Okay. And you all use by test. Do not click no testing. Do not test. Exactly. The second most popular testing framework is none.
Starting point is 00:27:45 Yeah. Yeah. Which is great because it used to be the number one. Progress. That's a form of progress. All right. Ready for a joke? Yeah.
Starting point is 00:27:56 I don't remember what I picked for it. So it's going to be news to me as well. This is fun. Okay. No, I don't care about that. this is good. So we've all heard of these license plates that have crazy stuff has gone wrong.
Starting point is 00:28:09 Like there was a license plate. The person put null for their license plate. And instead of, because they thought that there would be a test like if not equal to null, then send ticket or whatever. Yeah. But instead it's like if value equals null
Starting point is 00:28:22 and they started getting all the tickets. So here's a car with a license plate that just says example. And the title is when test values get pushed to production. What state is that? That's good. What state are we looking here?
Starting point is 00:28:36 Maryland. Yeah, so if you're in Maryland, there's an example car out there. You get slug for that. Yeah. Yeah, that's pretty fun. Do your kids do the yellow bug thing or the yellow car? Oh, yeah. Yeah, the punch bug sort of thing.
Starting point is 00:28:50 Well, because when we were kids, it was slug bug or punch bug. Yeah, yeah, slug bug. Yeah. So my kids do if it's a yellow car or if it's a license plate, with the state that's not adjacent to your state, or your own state. So like, yeah, for us, Washington wouldn't work, but like Montana would sort of thing.
Starting point is 00:29:13 So I'm like, that's just, you're just randomly picking things. So I chose, it's any car that's, what, not black, or not a sedan, which is, you know, actually, no, I chose black car and not a sedan, which now is most cars, so. Yeah. Yeah, you're going to get tired from punching your kids. My kid does that as well, and I feel like it's just an excuse to go around.
Starting point is 00:29:39 They don't hit you hard, but, you know, just being so. Just taps because, yeah, yeah. Anyway, so also we did this once, like two blocks away from a Stanley steamer, which they're all yellow trucks. 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. And we're like, this is ridiculous. But that is crazy. Before we wrap it up really quick, Christian out of the honest,
Starting point is 00:30:05 gave us some interesting thoughts on the Apple, on the iOS not open source intersection. Apple apps must be only available through the Apple App Store, which is interesting, right? The ones that are for iOS, not for MacOS. Oh, Rick, even if you allow, yeah, weird. Yeah, so that makes it difficult. It says, GPL licensed software popular and open source
Starting point is 00:30:27 is often incompatible with App Store terms, because Apple requires control over binaries and does not distribute the source code. So interesting. Yeah. Okay. More to say on that in the not too distant future, actually. Do you have more apps coming now?
Starting point is 00:30:42 I might have stuff to share, but I can't share any more than that. Okay. Teaser. I've had a better experience this time. I'll just leave it at that. Don't touch that dial. Anytime you have to interact with these app stores, you know, it's not the best. Yeah.
Starting point is 00:30:56 All right. Yeah. Don't touch that dial for now. Signing off, though. See you later, Brian. Bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.