Michael Kennedy: Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.
Michael Kennedy: This is episode 468, recorded February 2nd, 2026.
Michael Kennedy: I'm Michael Kennedy.
Michael Kennedy: And I'm Brian Ecken.
Michael Kennedy: This episode is brought to you by us.
Michael Kennedy: Brian's books, his new Lean TDD book, which you can get right now and is in development, but almost done.
Michael Kennedy: Yes.
Michael Kennedy: He's going to be done this week, folks.
Michael Kennedy: Don't worry about it.
Michael Kennedy: My Python and production book has been going strong as well.
Michael Kennedy: That's really fun one.
Michael Kennedy: And of course, our courses, all the links for those things are in the show notes.
Michael Kennedy: Follow us on the socials, sign up for the newsletter.
Michael Kennedy: We don't spam you.
Michael Kennedy: We just send you updates about the, about the episodes, extra information,
Michael Kennedy: more links, that kind of thing, as well as a periodic announcement of like, Hey,
Michael Kennedy: we've got a new course or a new book or whatever it is we're up to, you know,
Michael Kennedy: things like that, but we don't give it away.
Michael Kennedy: We don't sell it.
Michael Kennedy: Things like that.
Michael Kennedy: And with that, like a bolt of lightning striking out of the blue, what do we got?
Brian Okken: Well, we've got Django Bolt.
Brian Okken: So Django Bolt is actually, I learned about Django Bolt because I was looking at the Django
Brian Okken: chat website and or the Django chat and they had a, they had an episode building a Django
Brian Okken: API framework faster than FastAPI, which of course I was interested in.
Brian Okken: And so this episode actually discusses Django Bolt.
Brian Okken: And Django Bolt is a Rust powered behind the scenes,
Brian Okken: but it's inspired.
Brian Okken: It's a, so it's like fast,
Brian Okken: like we already have Django Rust framework
Brian Okken: and there's Django Ninja,
Brian Okken: but this is along those lines of trying to get
Brian Okken: an API framework for Django.
Brian Okken: The inspiration is kind of interesting.
Brian Okken: I think down near the bottom.
Brian Okken: There's inspired by, oh, inspired by Django REST framework,
Brian Okken: FastAPI, Litestar, and Robin.
Brian Okken: Apparently some of the Rust Python,
Brian Okken: the integrating Rust and Python
Brian Okken: was inspired by some of the Robin project.
Brian Okken: I don't know anything about Robin, actually.
Brian Okken: So interesting, different take on APIs for Django.
Brian Okken: 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.
Brian Okken: And there's issues with that.
Brian Okken: But apparently he used a ton of graphs, a ton of charts, so you can look at what's going on.
Brian Okken: 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.
Brian Okken: things and get it pretty fast anyway.
Brian Okken: But so this is an interesting take.
Brian Okken: So there's a bunch of leaks we're going to link to.
Brian Okken: There's the Django Bolt repository.
Brian Okken: The documentation is set up and it's pretty good.
Brian Okken: Oh, I should back up.
Brian Okken: There's a little warning in it that it's still in progress.
Brian Okken: It's under active development.
Brian Okken: So be aware of that.
Brian Okken: OK, then there's the podcast episode.
Brian Okken: And then just recently, somebody came out with a video walking through using Django Bolt, which is an interesting discussion.
Brian Okken: And I actually just watched the first part of it.
Brian Okken: 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.
Brian Okken: So pretty interesting take on APIs.
Michael Kennedy: Yeah, that is super interesting.
Michael Kennedy: I've been looking at Django Bolt as well.
Michael Kennedy: it's not because I plan to use it because my websites are not in Django but just it's got
Michael Kennedy: some really interesting ideas out there and yeah also note on the performance thing do your own
Michael Kennedy: performance testing put stuff I think it's more the more importantly people should think about this
Michael Kennedy: as side by side like three or four weeks ago when I did my Python numbers everyone should know
Michael Kennedy: every Python developer should know people said well you did this on a m4 pro cpu and it's not
Michael Kennedy: going to be the same when you run it on a five dollar crappy server in the cloud i'm like true
Michael Kennedy: but if i run it on a five dollar server the people go well it doesn't run that's not comparable to my
Michael Kennedy: high-end server or whatever right like it's more like okay this one is relative to that this is
Michael Kennedy: like 2x of that other one or something right so just keep that in mind right yeah i mean numbers
Brian Okken: are tested on right but also i mean as long as the numbers are relatively tested you're doing
Brian Okken: you're doing a and b on the same hardware now there there might be differences in the um the
Brian Okken: the behind the c the c python implementation based on different hardware and to the point where one
Brian Okken: technique will work better on some platform than another but i don't think a lot of people are
Michael Kennedy: thinking in the dirt that much but anyway yeah yeah uh one quick bit of real-time follow-up from
Michael Kennedy: and posts in the audience.
Michael Kennedy: My first job was in Django.
Michael Kennedy: I always loved Django ORM plus migrations framework
Michael Kennedy: and Django Bolt connects ORM with fast async stuff,
Michael Kennedy: which is really cool indeed.
Michael Kennedy: Yeah, it seems like a neat project.
Michael Kennedy: Yeah, it'll be something to watch.
Michael Kennedy: Indeed, but did he mention async?
Michael Kennedy: What if you had leaks in your async code?
Michael Kennedy: So I want to talk about this thing called PyLeak.
Michael Kennedy: So PyLeak detects leaked async tasks, threads,
Michael Kennedy: event loop blocking. So that's not exactly a leak, but it's kind of a leak. So it's non-async code
Michael Kennedy: leaking into async sections. When I first saw this, I thought it was a memory diagnosing thing,
Michael Kennedy: but what it's for is diagnosing async tasks that if you've ever seen like this, this task was not
Brian Okken: awaited or something like that. And it's got a really nice programming model, but this is,
Michael Kennedy: This is something that certainly can happen.
Michael Kennedy: I will tell you if you run the ty or the Pyrefly typing integration with your editor and maybe
Michael Kennedy: PyCharm, I don't think PyCharm does this, but those two will put, PyCharm will detect
Michael Kennedy: that the stuff is not being treated right, but the others do inline type overlays.
Michael Kennedy: So you'll have like x equals some function call and you think x is an integer.
Michael Kennedy: If it says x and then in little gray, like it's not really in the code, but it's putting
Michael Kennedy: colon, coroutine of something, something int.
Michael Kennedy: You're like, oh, I forgot to await that.
Michael Kennedy: Because this is coming back as the unexecuted coroutine,
Michael Kennedy: not the number, the integer, right?
Michael Kennedy: That it's easy to do if you're writing regular async code,
Michael Kennedy: but it's really easy to do if what you're doing
Michael Kennedy: is converting a synchronous program to an async program.
Michael Kennedy: Because every call site of every function is synchronous,
Michael Kennedy: and then you go make those functions asynchronous,
Michael Kennedy: and then you try to go back and fix them
Michael Kennedy: everywhere you called them.
Michael Kennedy: It's not a syntax or a runtime error, usually,
Michael Kennedy: a lot of times, to actually not call that.
Michael Kennedy: It'll just run.
Michael Kennedy: So for example, if you have x,
Michael Kennedy: let's say x equals some function call.
Michael Kennedy: It normally gives you back a number,
Michael Kennedy: you wanna make sure it's not zero.
Michael Kennedy: So you'd say if x, if not x or if x,
Michael Kennedy: something like that, right?
Michael Kennedy: Well, when it's a coroutine, your if x still runs,
Michael Kennedy: it's just always true.
Michael Kennedy: And things like that, right?
Michael Kennedy: - Oh, yeah. - It's 'cause it's,
Michael Kennedy: is the coroutine falsy?
Michael Kennedy: No, there's only like five or six things
Michael Kennedy: and Python that are falsing and coroutine is not.
Michael Kennedy: So it's true, keep going.
Michael Kennedy: It's really sketch.
Michael Kennedy: So those are super hard to catch.
Michael Kennedy: And this is the kind of thing
Michael Kennedy: that theoretically will catch it.
Michael Kennedy: So pretty neat.
Michael Kennedy: Anyway, it depends how you start it, I believe.
Michael Kennedy: You've gotta do like a create task
Michael Kennedy: where the task has to be running.
Michael Kennedy: If you just create a coroutine
Michael Kennedy: and don't do anything with it,
Michael Kennedy: it probably still won't catch it, just to be clear.
Michael Kennedy: Anyway, so here's how it works.
Michael Kennedy: You can say, create a context manager
Michael Kennedy: with block and async with block,
Michael Kennedy: you say with no task links leaks and you run some code and here's a function call to create a task
Michael Kennedy: that is never awaited you wait long enough for that to come into existence and you're going to
Michael Kennedy: get an error right or this also works for threads just create a thread and never wait for it to stop
Michael Kennedy: so the context here is within this block of code i might be starting threads but they should all be
Michael Kennedy: done by the time we leave you know so this is pretty interesting and then another one is that's
Michael Kennedy: common is you can do things that have async counterparts, but the older way to do them
Michael Kennedy: would block the asyncio thread.
Michael Kennedy: And that's really bad because you want to spend as little time blocking that as possible
Michael Kennedy: because there's only one thread that does all the async work.
Michael Kennedy: So if you're doing FastAPI or whatever, one thread, don't block it, depending on how you
Michael Kennedy: set up your server, but generally.
Michael Kennedy: So if you had old code that said like time.sleep and then you convert that to async, this should
Michael Kennedy: be an await async io.sleep so that the it just lets the loop go for half a second rather than
Michael Kennedy: block the entire program so you can say with no event loop blocking right so those are the three
Michael Kennedy: types of tests so you can do it with context managers which is pretty cool you can also do it
Michael Kennedy: with decorators put them on a function no thread leaks no task leaks and so on and yeah you get
Michael Kennedy: errors like leaked task 2 or whatever right pretty descriptive shows you where it's called and so on
Michael Kennedy: Another one, though, you'll probably like this, Brian.
Michael Kennedy: A bunch of examples.
Michael Kennedy: But where are you?
Michael Kennedy: They also have a pytest plugin for it.
Michael Kennedy: So you can come and say pytest mark async.io
Michael Kennedy: and then run with no event loop blocking in there,
Michael Kennedy: which is pretty nice.
Michael Kennedy: It's maybe not exactly what I was looking for, is it?
Michael Kennedy: There we go.
Michael Kennedy: No, the pytest plugin.
Michael Kennedy: So then you can set it up as a marker with no leaks
Michael Kennedy: and things like that.
Michael Kennedy: Cool.
Michael Kennedy: Yeah.
Michael Kennedy: No leaks.
Michael Kennedy: Anyway, yeah, if you're doing anything with async programming,
Michael Kennedy: might be worth throwing this on just to see what's going on.
Michael Kennedy: I don't think I would leave this on all the time.
Michael Kennedy: But having the unit test for it, good.
Michael Kennedy: And maybe if you're doing conversions, like I said,
Michael Kennedy: it's especially error prone to go from converting synchronous code to asynchronous code
Michael Kennedy: because it's so easy to overlook converting one bit here or there.
Michael Kennedy: So this would ideally catch it.
Brian Okken: Yeah, I'm not sure.
Brian Okken: It'd be one of those things of like also timing it.
Brian Okken: during development if you had this on to make sure things are like cool in your synchronous part or
Brian Okken: async part um and then you know how much slower is it or how much faster is it if you take that out
Brian Okken: if there's not much of a difference um yeah maybe leave it yeah yeah yeah exactly exactly but well
Brian Okken: yeah more django yeah i've actually been thinking about django a lot lately so i've got a a few
Brian Okken: articles. I just want to kind of run through a few of them that I ran across. I don't have much to
Brian Okken: say about either one of them, so I thought I'd combine them into one topic. So first off, we have
Brian Okken: from Paul Taylor, migrating from Celery to Django Tasks. And I know Django Tasks, I can't remember
Brian Okken: if it was just in this recent release. I think so. But they're a newish thing. So you might have
Brian Okken: some code around that you're a project that's using Celery already, and you want to use Django
Brian Okken: tasks instead so um walking through some of the some of the differences um and uh and and what to
Brian Okken: watch out for the different settings um and i did it made me want to play with it a little bit because
Brian Okken: um apparently django tasks has uh well if you combine it with cron task you can have tasks run
Brian Okken: with at certain intervals which is kind of fun that's neat you probably can do that with celery
Michael Kennedy: too but yeah but how many servers do you want this is like if your web app is running this
Michael Kennedy: happening versus are the servers talking to each other?
Brian Okken: Then next article, this is from Julia Evans,
Brian Okken: and she brought us all those cool zines
Brian Okken: about programming in GitHub and all that stuff.
Brian Okken: She wrote some notes on starting to use Django.
Brian Okken: One of the things I just like about this is she's
Brian Okken: experienced developers,
Brian Okken: you probably are already familiar with Julia Evans.
Brian Okken: But one of her comments about Django is it's less magic than Rails.
Brian Okken: And one of the things about that isn't just a style thing.
Brian Okken: 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?
Brian Okken: And just her commentary is just Django makes it more obvious.
Brian Okken: If you want to look for your views, they're in views.py, things like that.
Brian Okken: The built-in admin, of course, is nice.
Brian Okken: And the ORM, everybody loves the ORM.
Brian Okken: Or if you like the ORM, you love it, probably.
Brian Okken: Automatic migrations, that's a really cool built-in thing of Django.
Brian Okken: Good docs.
Brian Okken: And this is like the third one.
Brian Okken: Oh, built-in email was as neat.
Brian Okken: I haven't tried to use email with Django, but it's on my to-do list.
Brian Okken: Apparently, it's not that difficult.
Brian Okken: So that's cool.
Brian Okken: one of the things is that she's said that she's been using SQLite for Django in production and
Brian Okken: followed these instructions. And these instructions is the last article I want to talk about, which is
Brian Okken: the definitive guide to using Django with SQLite in production. And I just skimmed this, but
Brian Okken: it goes through how to set up databases and cache and all that stuff. I'm going to drop down to the
Brian Okken: conclusion there's quite a bit here and but the conclusion says um that is reduced complexity
Brian Okken: um it still looks kind of complex to convert to me but um but maybe it's less complex than
Brian Okken: keeping a sqlite or a postgres database around or something so yeah maybe backup is copy the file
Brian Okken: that's nice yeah so um anyway um and i can't remember which article was in there was a
Brian Okken: discussion around having in one of these Django articles about having tasks be stored in the
Brian Okken: database itself, which is interesting. I didn't know you could do that. So yeah, fun with Django.
Michael Kennedy: Yeah, very cool. I mean, in a sense, we're using SQLite in production. Python Bytes has a bunch of
Michael Kennedy: caching through disk cache, and disk cache is really just a fancy front end to SQLite. So
Michael Kennedy: So I want to talk about Datastar. So Datastar is a cool framework. This is not quite the exact right
Michael Kennedy: mental model for thinking about it, but it's kind of the spiritual successor to HTMX, I think.
Michael Kennedy: So the folks behind Datastar, they came from being contributors to the HTMX side and being
Michael Kennedy: big fans of it. So for those of you who don't know, HTMX, super cool library,
Michael Kennedy: it kind of extends the HTML markup to do more things.
Michael Kennedy: So instead of just saying, here's a button,
Michael Kennedy: you could say, here's a button,
Michael Kennedy: and on click, I want you to call this thing on the server.
Michael Kennedy: And when it comes back, I want you to replace this part of the page
Michael Kennedy: with what came back from the server and so on.
Michael Kennedy: And HTMX is great, but HTMX only does that sort of local server communication, right?
Michael Kennedy: So it might update some section,
Michael Kennedy: but what if when that part updates, another part of the page updates?
Michael Kennedy: and it gets a little bit more complicated.
Michael Kennedy: So what people have done is they paired HTMX with AlpineJS and other things,
Michael Kennedy: but AlpineJS has its sort of truth for what the data is,
Michael Kennedy: and then HTMX has the DOM and the server,
Michael Kennedy: and it's a little bit your job to juggle the go-between for these libraries,
Michael Kennedy: which is not ideal.
Michael Kennedy: So Datastar takes this idea and says,
Michael Kennedy: what if the server was the source of truth?
Michael Kennedy: What if we could have multiple parts of the page update
Michael Kennedy: in kind of a HTMX way.
Michael Kennedy: You say like, if you interact with this,
Michael Kennedy: you know, like click on this element,
Michael Kennedy: I want you to get this stuff from the server.
Michael Kennedy: And it sends back the page.
Michael Kennedy: And very much like PyView,
Michael Kennedy: which we talked about previously,
Michael Kennedy: it will take what comes back from the server,
Michael Kennedy: diff it and figure out,
Michael Kennedy: well, this section with this ID
Michael Kennedy: is going to be updated over here.
Michael Kennedy: And some other part is going to be updated with this
Michael Kennedy: because that ID part
Michael Kennedy: in the thing that came back matches over there.
Michael Kennedy: And it's got this really nice way
Michael Kennedy: to sort of be a little more holistic,
Michael Kennedy: but still do HTMX-like attributes with server-sent event things going on.
Michael Kennedy: So in a way, it's like PyView.
Michael Kennedy: But what's really different about this, two things.
Michael Kennedy: First is it's not a web framework.
Michael Kennedy: Like PyView is a web framework.
Michael Kennedy: Like Django is a web framework.
Michael Kennedy: Like Flask is a web framework.
Michael Kennedy: This is purely a JavaScript library that talks to the server
Michael Kennedy: and basically handles everything on the front end.
Michael Kennedy: It's only 11K too, by the way.
Michael Kennedy: So it's incredibly small.
Michael Kennedy: And it does what AlpineJS does.
Michael Kennedy: It has sort of a data binding thing.
Michael Kennedy: and the server can say,
Michael Kennedy: I know you have a variable called username.
Michael Kennedy: And if I update username on the server,
Michael Kennedy: it will automatically change the page
Michael Kennedy: everywhere username is used.
Michael Kennedy: So it has these things called signals as well.
Michael Kennedy: Pretty neat library, like this star field here.
Michael Kennedy: See how if you go to the website,
Michael Kennedy: it's following my mouse around.
Michael Kennedy: You can make it go faster or slower.
Michael Kennedy: It feels like you're in Star Wars,
Michael Kennedy: which is pretty cool.
Michael Kennedy: But all of that is being driven
Michael Kennedy: by server set events off of the server,
Michael Kennedy: which is pretty neat.
Michael Kennedy: There's a bunch of cool examples.
Michael Kennedy: So you can go to the examples page if I zoom back a bit.
Michael Kennedy: They also have this really fun video.
Michael Kennedy: So you should definitely watch the video.
Michael Kennedy: But let me show you an example.
Michael Kennedy: So there's a bunch of these examples.
Michael Kennedy: And if I open up two of these and put them side by side,
Michael Kennedy: I can use the new Vivaldi thing or I can tile them together.
Michael Kennedy: And if I get them to zoom the same size.
Michael Kennedy: So if you come over here, you can just type in.
Michael Kennedy: If you put these two side by side, you can say record.
Michael Kennedy: podcast and boom they're both going i don't know this one is going to finish that one i'm going to
Michael Kennedy: finish that let's uh show only the completed ones oh wow and that's cool it happens to be on my
Michael Kennedy: same machine but really they could be anywhere there's a really bunch of a bunch of interesting
Michael Kennedy: performance things around with data star so you kind of like htmx be like ah but it's a little
Michael Kennedy: bit not quite enough for what i need to do check this out it's a really cool thing and this episode
Michael Kennedy: with the Datastar team is coming out on Talk Python this week.
Michael Kennedy: I wanted to feature Datastar on the show sooner,
Michael Kennedy: but then when I knew I was going to have them on Talk Python,
Michael Kennedy: I was like, let me just wait until I get that episode recorded.
Michael Kennedy: People who are more interested can listen to that as well.
Michael Kennedy: So that's coming out.
Brian Okken: Plus a couple bonuses on this,
Brian Okken: that it won the website,
Brian Okken: just the retro look of it looks awesome.
Brian Okken: It's great, isn't it?
Brian Okken: And that they use the term hypermedia.
Brian Okken: Kind of love that back to the origins.
Michael Kennedy: Yeah, yeah, for sure.
Michael Kennedy: And there's also this really nice article by Chris May,
Michael Kennedy: who is a very big fan of HTMX,
Michael Kennedy: gave some Django FlaskCon talk on it,
Michael Kennedy: and basically went through and said,
Michael Kennedy: why do I think I'm using Datastar these days?
Michael Kennedy: So really nice example, but got some Python examples.
Michael Kennedy: There's a Python SDK that you can bring in.
Michael Kennedy: So if you were using Flask, use the SDK.
Michael Kennedy: If you're using FastAPI, use the SDK or whatever.
Michael Kennedy: But yeah, super neat.
Michael Kennedy: Okay, cool.
Michael Kennedy: All right.
Michael Kennedy: That's it for all of our topics, isn't it?
Michael Kennedy: Yeah.
Michael Kennedy: Got anything out there you want to cover?
Michael Kennedy: Any extras?
Brian Okken: Okay.
Brian Okken: So yeah, a couple of extras.
Brian Okken: Let's see.
Brian Okken: I'm all zoomed out.
Brian Okken: So I did bring up Django chat before I, the, the,
Brian Okken: I was lucky enough to be asked to be on the show as well.
Brian Okken: So I was talking about lean TDD and a lot of other stuff on the,
Brian Okken: the Django chat podcast. I, you know,
Brian Okken: one of the things they asked me is, is the, is about the, what,
Brian Okken: the trends in web frameworks for Python. And I'm like, man,
Brian Okken: I'm the wrong guy to ask about that. Yeah, sure. Okay.
Michael Kennedy: You mean the ones that run on the hardware that control the Wi-Fi signals?
Brian Okken: Yeah.
Brian Okken: Anyway, so I am working a little bit at Django lately,
Brian Okken: but I'm by no means a Django expert.
Brian Okken: But we did get into the Lean TDD and inverting the testing pyramid a little bit.
Brian Okken: One of the things I love about this and was really fun because Carlton,
Brian Okken: when I brought up the fact, brought up some reasons to shy away from unit tests as much.
Brian Okken: Carlton kind of got his feathers ruffled,
Brian Okken: and we walked through some of the good aspects of unit tests
Brian Okken: and where you might want to keep them, where you might want to ditch them.
Brian Okken: So that was fun.
Brian Okken: The next extra is that I did notice that the PEP 686,
Brian Okken: making UTF-8 mode the default, is now, or maybe it was.
Brian Okken: Maybe it was a while ago.
Brian Okken: But anyway, I just noticed that it was finals.
Brian Okken: If we haven't covered it already, it's finalized in 3.15.
Brian Okken: It'll be there.
Brian Okken: So that's good.
Brian Okken: I think that's interesting.
Michael Kennedy: This is a really old request, but it didn't get until next year, right?
Michael Kennedy: 3.15.
Michael Kennedy: So this was originally started in 2022.
Michael Kennedy: Yeah.
Michael Kennedy: But it's not yet in Python, right?
Michael Kennedy: It's 3.15, as you point out.
Brian Okken: Yeah, I'm looking forward to having the default be just UTF-8.
Michael Kennedy: Yeah, I mean, if you're going to have a default.
Michael Kennedy: Let's pick the one that is mostly used and supports all the different languages and emojis.
Michael Kennedy: It's important to have emojis.
Brian Okken: Yeah.
Brian Okken: Before we move on, I do have, I guess, a way side tangent topic.
Brian Okken: Kind of the sci-fi-ness of Datastar reminded me that recently I remembered the cheesy 80s movie
Brian Okken: that reminded me of Tesla's Cybertrucks.
Brian Okken: And the cheesy movie was called Megaforce.
Brian Okken: And it's from 81.
Brian Okken: did you ever see Megaforce?
Brian Okken: I have somehow missed this cultural phenomenon.
Brian Okken: Well, you're probably well off
Brian Okken: because Rotten Tomatoes gives it a 6%.
Brian Okken: And the reason why I think about it
Brian Okken: when I see Teslas is because of these trucks.
Brian Okken: So these tanks in there, in the Megaforce,
Brian Okken: kind of remind me of, well,
Brian Okken: just sort of the angles and stuff
Brian Okken: kind of remind me of Cyber.
Brian Okken: They do have that, don't they?
Brian Okken: Incredible.
Brian Okken: Those are my extras.
Brian Okken: I love you, but you're hopeless.
Brian Okken: On Blu-ray.
Michael Kennedy: wow that's is that a song i love anyway i don't know it seems like it comes from the movie but i
Michael Kennedy: don't know look at the shots oh my gosh even the clothes are it's so bad cyber truck looking
Brian Okken: i want one of these though uh but yeah so do you have any extras i uh this has completely
Michael Kennedy: escaped me this is incredible yes i have extras so first of all brayson daniel has been on the show
Michael Kennedy: a long time ago when we were having guests, wrote an article about whether, well, wrote a pro, has a
Michael Kennedy: project and a theory about whether LLMs think or if they're just pure statistics. And as a good data
Michael Kennedy: scientist, created this project here. Yes. And it's a literature review about whether machines think
Michael Kennedy: or don't think. And so now he's got an LLM analyzing whether all the papers on whether LLMs
Michael Kennedy: think or don't think. And you can say, so the premise is that they do not, right? So there's
Michael Kennedy: 97 papers that support it, but 13 that challenge it. And if you go and look at them, you can actually
Michael Kennedy: hover over these. And it's just a beautiful website. So one, I think it's an interesting,
Michael Kennedy: timely topic, but two, it's just a really neat way to present information. Yeah. Yeah. So well done,
Michael Kennedy: Grayson. Also came across a new Mastodon app called IceCubes, and it's free and open source.
Michael Kennedy: if you're a Mac person at least.
Michael Kennedy: So I don't know, I've been playing with this.
Michael Kennedy: It looks nice.
Michael Kennedy: I really like it.
Michael Kennedy: And having it open source, you know, we just,
Michael Kennedy: I don't know how you feel about this, Brian,
Michael Kennedy: but I just don't usually connect open source in Mac apps,
Michael Kennedy: or sorry, iOS apps.
Michael Kennedy: This is on both, but really I don't think,
Michael Kennedy: like phone apps and open source,
Michael Kennedy: I don't think about those being,
Michael Kennedy: I know there are some out there,
Michael Kennedy: but it's way less common.
Michael Kennedy: Yeah, anyway, I just want to give it a shout out.
Michael Kennedy: I thought it was cool.
Michael Kennedy: I ran across it looking into something else.
Brian Okken: - Yeah, don't you have to like pay to be like,
Michael Kennedy: - Yeah, I pay a hundred dollars a year.
Michael Kennedy: So I get the privilege to publish to Apple.
Michael Kennedy: So I pay a hundred dollars a year for the privilege
Michael Kennedy: to make Apple's products more valuable to them.
Michael Kennedy: It's amazing.
Brian Okken: - Yeah, I was just thinking that that might be
Brian Okken: one of the reasons why we don't see a lot of open source
Brian Okken: because you.
Michael Kennedy: - Yeah, exactly.
Michael Kennedy: And then whose job is it to be in charge of it?
Michael Kennedy: 'Cause it's not as easy to release
Michael Kennedy: 'cause it's gotta go through somebody's account.
Michael Kennedy: And I don't know, it's just, it's just not that common.
Michael Kennedy: And I ran across this and I thought it was really cool.
Michael Kennedy: So I'm using this for my Mastodoning.
Michael Kennedy: However, Mona, the one I was using before,
Michael Kennedy: has a really nice feature that if you write a thread too long,
Michael Kennedy: it'll split it into a series, like one of two, two of three,
Michael Kennedy: two, one of three, two of three, three of three automatically.
Michael Kennedy: And this one doesn't have that, but we could open a PR.
Michael Kennedy: How's that?
Michael Kennedy: - Yeah.
Michael Kennedy: - All right, carrying on.
Michael Kennedy: Remember we talked about Rundl, R-U-M-D-L,
Michael Kennedy: which is a Rust-based markdown formatter and linter.
Michael Kennedy: - Yeah.
Michael Kennedy: - Which is really nice.
Michael Kennedy: using it for various things.
Michael Kennedy: Well, there's now a Rumdoll IntelliJ plugin.
Michael Kennedy: So most of the people listening will care about that
Michael Kennedy: in terms of PyCharm.
Michael Kennedy: But if you want to have that built right into your editor
Michael Kennedy: and you're using PyCharm, you can install the plugin
Michael Kennedy: and off it goes.
Michael Kennedy: - Yeah.
Michael Kennedy: - Okay, and then really quickly,
Michael Kennedy: the last time I talked about how curl,
Michael Kennedy: like you mentioned something about AI frustration
Michael Kennedy: with some project or whatever.
Michael Kennedy: And I pointed out curl.
Michael Kennedy: 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.
Michael Kennedy: So there was the PRs, the PRs that were like thousands of lines long and they were just kind of really messy.
Michael Kennedy: And people are like, we're not accepting that.
Michael Kennedy: I don't remember what project that was.
Michael Kennedy: It's been a long time.
Michael Kennedy: It's been a week.
Michael Kennedy: But I said that curl's doing the same thing.
Michael Kennedy: It's not exactly the same thing.
Michael Kennedy: what they're doing is they had a bug bounty program like hey well we'll pay you a thousand
Michael Kennedy: dollars if you find a memory overflow or something like that well a bunch of people were just turning
Michael Kennedy: clod code or something loose on it say find all the bugs and then some you know then they were
Michael Kennedy: submitting whatever clod code told them and apparently a lot of times clod code got the
Michael Kennedy: understanding wrong so it wasn't really a bug security bug and so the person that was just like
Michael Kennedy: i can't i cannot answer more of these no that's not actually a problem here's why and the
Michael Kennedy: The incentives were misaligned, right?
Michael Kennedy: Like with a PR, like what is the incentive?
Michael Kennedy: Maybe like, oh, I'm a contributor.
Michael Kennedy: Well, this they were getting paid for.
Michael Kennedy: So they were getting overwhelmed.
Michael Kennedy: Anyway, link into that for all the people who care.
Michael Kennedy: Yeah.
Michael Kennedy: And finally.
Brian Okken: I think Curl's one of those like maintained by one person apps.
Michael Kennedy: Yeah.
Michael Kennedy: It's got, if not one, it's a very small team.
Michael Kennedy: Finally, the PSF JetBrains survey for 2026 is on.
Michael Kennedy: Have you done this yet?
Michael Kennedy: No.
Michael Kennedy: I have not either, but.
Michael Kennedy: - So that time of the year already.
Brian Okken: - I know, yeah.
Michael Kennedy: So anyway, it takes about 10 to 15 minutes to fill out,
Michael Kennedy: link into it.
Michael Kennedy: Everyone go out there, fill this out,
Michael Kennedy: make your voice heard.
Michael Kennedy: Tell them, please tell them that CSS
Michael Kennedy: is not a programming language.
Michael Kennedy: Okay.
Michael Kennedy: - And you all use Bytest.
Michael Kennedy: Do not click no testing.
Michael Kennedy: Do not test.
Michael Kennedy: - Exactly.
Michael Kennedy: The second most popular testing framework is none.
Brian Okken: - Yeah.
Brian Okken: Yeah, yeah.
Brian Okken: Which is great 'cause it used to be the number one.
Michael Kennedy: progress that's a form of progress all right ready for a joke yeah i don't remember what i picked for
Michael Kennedy: 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
Michael Kennedy: is good so we've all heard of these license plates that have um crazy stuff has gone wrong like there
Michael Kennedy: was a license plate uh the person put null for their license plate and instead of because they
Michael Kennedy: thought that there would be a test like if not equal to null then send ticket or whatever yeah
Michael Kennedy: But instead it's like, if value equals null,
Michael Kennedy: and they started getting all the tickets.
Michael Kennedy: So here's a car with a license plate that says example.
Michael Kennedy: And the title is when test values git pushed to production.
Michael Kennedy: What state is that?
Michael Kennedy: That's good.
Michael Kennedy: What state are we looking here?
Michael Kennedy: Maryland.
Michael Kennedy: Yeah, so if you're in Maryland,
Michael Kennedy: there's an example car out there.
Brian Okken: You get slugged for that.
Michael Kennedy: Yeah.
Michael Kennedy: Yeah, that's pretty fun.
Brian Okken: Do your kids do the yellow bug thing or the yellow car?
Brian Okken: Oh, yeah.
Michael Kennedy: yeah the punch bug sort of thing and well because when we were kids it was slug bug or punch bugs
Brian Okken: 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
Brian Okken: that's not adjacent to your state um or your own state so like uh yeah for us washington wouldn't
Brian Okken: work but like montana would sort of thing um so i'm like that's just you're just randomly picking
Brian Okken: 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
Brian Okken: know actually no i chose black car and and not a sedan which now is most cars so yeah yeah you're
Michael Kennedy: gonna get tired from punching your kids my my kid does that as well and i feel like it's just an
Michael Kennedy: excuse to go around they don't hit you hard but you know just being so just taps because yeah yeah
Brian Okken: Anyway, so also we did this once like two blocks away from a Stanley Steamer, which they're all yellow trucks.
Brian Okken: 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.
Brian Okken: And we're like, this is ridiculous.
Michael Kennedy: But that's crazy.
Michael Kennedy: 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.
Michael Kennedy: Apple apps must be only available through the Apple App Store,
Michael Kennedy: which is interesting, right?
Michael Kennedy: The ones that are for iOS, not for macOS.
Brian Okken: Oh, right.
Brian Okken: Even if you allow, yeah, weird.
Michael Kennedy: Yeah, so that makes it difficult.
Michael Kennedy: And says, GPL licensed software popular in a source
Michael Kennedy: is often incompatible with App Store terms
Michael Kennedy: because Apple requires control over binaries
Michael Kennedy: and does not distribute the source code.
Michael Kennedy: So, interesting.
Michael Kennedy: Yeah.
Michael Kennedy: Okay.
Michael Kennedy: More to say on that in the not too distant future, actually.
Michael Kennedy: Do you have more apps coming now?
Michael Kennedy: I have stuff to share, but I can't share any more than that.
Michael Kennedy: Okay.
Michael Kennedy: Teaser.
Michael Kennedy: I've had a better experience this time.
Michael Kennedy: I'll just leave it at that.
Michael Kennedy: Don't touch that dial.
Michael Kennedy: Anytime you have to interact with these app stores, it's not the best.
Michael Kennedy: Yeah.
Michael Kennedy: All right.
Michael Kennedy: Yeah.
Michael Kennedy: Don't touch that dial for now.
Michael Kennedy: Signing off though.
Michael Kennedy: See you later, Brian.
Michael Kennedy: Bye everyone.
Michael Kennedy: Bye.