Michael Kennedy: Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to
Michael Kennedy: your earbuds. This is episode 486, recorded June 30th, 2026. I'm Michael Kennedy.
Michael Kennedy: And I'm Calvin Hendryx-Parker.
Michael Kennedy: This episode is brought to you by us. Check out Six Feet Up if you want not just a consulting
Michael Kennedy: partner, but an impactful consulting for good partner. And if you're looking to do better at
Michael Kennedy: Python, data science, AI, check out Talk Python Training. I have three courses in the works right
Michael Kennedy: which is interesting.
Michael Kennedy: So there's going to be a lot of new stuff.
Michael Kennedy: So be sure to either keep listening here
Michael Kennedy: where I'll tell you about it or sign up over there.
Michael Kennedy: And speaking of signing up,
Michael Kennedy: pythonbytes.fm,
Michael Kennedy: click on the newsletter.
Michael Kennedy: You can sign up there and get notifications every week
Michael Kennedy: as well as follow us on social media.
Michael Kennedy: We got all the links for the show,
Michael Kennedy: Calvin and me.
Michael Kennedy: Now, Calvin, your first item
Michael Kennedy: is something that has been sitting
Michael Kennedy: in a browser tab on my computer
Michael Kennedy: for at least three days.
Michael Kennedy: I'm like, oh, I need to read this.
Michael Kennedy: Come on now.
Michael Kennedy: And I haven't gotten to it.
Michael Kennedy: So I'm really happy you're going to take care of that for me.
Calvin Hendryx-Parker: Well, how could you not mention this? There was a talk at PyCon 2026, and it's a perennial talk
Calvin Hendryx-Parker: that has probably happened for the last two decades, starting with Larry Hastings. I didn't
Calvin Hendryx-Parker: go look up exactly what year he started doing the Gilectomy project, but the idea is find free
Calvin Hendryx-Parker: threading in Python, past, present, and future. So there's been a lot of discussion in the past.
Calvin Hendryx-Parker: Like I said, there's over two decades of history going into solving this problem. This gets back
Calvin Hendryx-Parker: into Python and the global interpreter lock and what we've done in the past to try and improve
Calvin Hendryx-Parker: performance. So for those who are kind of new to Python, that a global interpreter lock really
Calvin Hendryx-Parker: makes it difficult to run a single Python process and leverage multiple cores in your computers.
Calvin Hendryx-Parker: But every modern computer today has how many, even the Raspberry Pis have many cores in them. So this
Calvin Hendryx-Parker: would be a huge boost, we think, to Python to be able to take advantage of more computing power
Calvin Hendryx-Parker: going on inside those CPUs. So basically the GIL has prevented this true multi-threaded parallelism
Calvin Hendryx-Parker: in CPython since the very beginning. There's been multiple attempts. Many of them have failed on
Calvin Hendryx-Parker: performance grounds. Once you remove this global interpreter lock, that overhead of managing IO,
Calvin Hendryx-Parker: memory, etc., all the pieces going back and forth, usually adds in 100% or more additional
Calvin Hendryx-Parker: performance load than giving you the performance you'd think you'd get by leveraging multiple CPUs.
Calvin Hendryx-Parker: We got free threading in what Python 3.13 was experimental. And so it's still a 20 to 40%
Calvin Hendryx-Parker: single threaded slowdown. 3.14 brought that from kind of zero to 10%. So look for Python 3.15
Calvin Hendryx-Parker: coming in October to deliver basically a unified story here. They've made a huge amount of progress
Calvin Hendryx-Parker: here. During the talk, it's interesting because this always brings out the OG Pythonistas,
Calvin Hendryx-Parker: the core developers in the room for these kinds of talks. Actually, one of the members of our team
Calvin Hendryx-Parker: was in that talk at PyCon. Larry Hastings got up to the mic and Thomas Wooters, basically,
Calvin Hendryx-Parker: they both kind of played off each other on how this all came about. And the punchline was the
Calvin Hendryx-Parker: things that made this possible didn't exist when Larry was trying to do this. So there's been a ton
Calvin Hendryx-Parker: of development and innovation in the Python core to make this all go. The big part about this is now
Calvin Hendryx-Parker: that we're going to have a unified ABI. So like basically the interfaces into using this free
Calvin Hendryx-Parker: threading is going to be more unified, which means the same extension binaries, like if you're writing
Calvin Hendryx-Parker: C extensions, can work both on the gil and on free threaded builds. And looks like already greater
Calvin Hendryx-Parker: than 50% of the PyPy binary wheels support free threading. So that's a huge, well the top, sorry,
Calvin Hendryx-Parker: top PyPy binaries, not all of them, but of the major ones, we've already got half adoption.
Calvin Hendryx-Parker: I think that's a huge boost. I think there was a prediction made on from the stage that
Calvin Hendryx-Parker: free-threaded may become the default version of Python, but we'll see what happens.
Calvin Hendryx-Parker: Oh, excellent.
Calvin Hendryx-Parker: So have you followed along with this Gil story, Michael?
Calvin Hendryx-Parker: Yeah, everyone has.
Michael Kennedy: I love at least having the capability to do threading. I would love to see this kind of
Michael Kennedy: seamlessly integrated into async io i was just reading a reddit post about somebody who was
Michael Kennedy: hating on async io async and await in particular and no it might not be the cleanest easiest
Michael Kennedy: programming model in the world not python in particular but just in general but it's better
Michael Kennedy: than managing a bunch of threads or processes or you know it's it's i think it's really quite neat
Michael Kennedy: and lightweight but it's big limitation is as soon as you get anything computational boom
Michael Kennedy: like the whole thing stops right yeah and so if you could just say you know put a decorator onto
Michael Kennedy: a function like cpu bound or something or somehow you know kick it off with some kind of you know
Michael Kennedy: computational thing but clearly like just await make that awaitable in the same event loop that
Calvin Hendryx-Parker: would be awesome yeah no this is a really good article from the Linux weekly news uh really in
Calvin Hendryx-Parker: depth coverage by jake on this site so i highly recommend folks who are interested in the history
Calvin Hendryx-Parker: and what the future is going to be,
Calvin Hendryx-Parker: check this out because we're finally going to have
Calvin Hendryx-Parker: free threading in Python.
Michael Kennedy: Awesome.
Michael Kennedy: So if you were running like a Django site,
Michael Kennedy: I don't know, wouldn't it be cool?
Michael Kennedy: Wouldn't it be cool to, I don't know,
Michael Kennedy: search your admin site in the same way that you do?
Michael Kennedy: No, Michael.
Michael Kennedy: Like really nice, say, Visual Studio code.
Michael Kennedy: You can hit shift command P for your command palette
Michael Kennedy: or in Vivaldo, you can just hit command K
Michael Kennedy: and you could say, I don't know,
Michael Kennedy: copy all the links on the page by just typing a thing or two.
Michael Kennedy: So thanks to Adam Parkin, I introduce Django admin site search.
Michael Kennedy: And it's quite a slick thing.
Michael Kennedy: It's fairly new.
Michael Kennedy: It could use some more stars.
Michael Kennedy: So there, it got one more.
Calvin Hendryx-Parker: In real time.
Michael Kennedy: Real time update.
Michael Kennedy: In real time.
Michael Kennedy: Yeah, so you just hit command K like I just did in Vivaldi.
Michael Kennedy: And by the way, if you do Vivaldi, you might need to remap one or the other, but whatever.
Michael Kennedy: And then it brings up this nice search.
Michael Kennedy: People probably familiar with this with some of the docs, like, the great
Michael Kennedy: docs, docs have this and lots of others, but the idea is that it's really
Michael Kennedy: deeply integrated into understanding what your, your Django needs.
Michael Kennedy: So there's a little, little animated video here as by the way,
Michael Kennedy: everyone out there building this, if you're building something specifically
Michael Kennedy: to do with UI at a minimum needs a screenshot.
Michael Kennedy: I've seen like entire, like web website design frameworks that have had like
Michael Kennedy: zero, zero pictures.
Michael Kennedy: I'm like, I have no idea what you're talking about.
Calvin Hendryx-Parker: Like the words sound good, but picture people.
Calvin Hendryx-Parker: They'll resort to interpretive dance before they'll
Calvin Hendryx-Parker: put a screencast in.
Michael Kennedy: Yeah, exactly.
Michael Kennedy: Exactly.
Michael Kennedy: So the idea is it just works out of the box, basically very little config.
Michael Kennedy: It's when you type something into it, it searches app labels, model labels
Michael Kennedy: and fields and model instances.
Michael Kennedy: And what's cool about it is it can search in two different ways.
Michael Kennedy: So for smaller sites or sort of ad hoc searches, it will
Michael Kennedy: and dunder, I can, not a dunder,
Michael Kennedy: underscore underscore I contains,
Michael Kennedy: which is, is any part of this text
Michael Kennedy: I've typed contained within here
Michael Kennedy: without regard to case, right?
Michael Kennedy: That's cool, but that's not always indexed, right?
Michael Kennedy: I mean, not every single field has an index
Michael Kennedy: for these sorts of things.
Michael Kennedy: So that can be slow on large projects.
Michael Kennedy: So you can also tell it,
Michael Kennedy: use the model admins get search results method,
Michael Kennedy: which can be an indexed query.
Michael Kennedy: That's cool, right?
Calvin Hendryx-Parker: That's super cool.
Calvin Hendryx-Parker: And this is super nice.
Calvin Hendryx-Parker: I've seen a couple of people doing work on the admin.
Calvin Hendryx-Parker: This is a much-needed feature.
Michael Kennedy: Yeah, I think it's really neat.
Michael Kennedy: It has a built-in auth, so users can only search apps and models
Michael Kennedy: that they have permissions to view.
Michael Kennedy: Results appear on type.
Michael Kennedy: It's active search, I guess, is the way you would describe it.
Michael Kennedy: And keyboard navigation.
Michael Kennedy: So obviously Command K, like I said.
Michael Kennedy: It's a must.
Michael Kennedy: It's a good one.
Michael Kennedy: You know what?
Michael Kennedy: I think, no.
Michael Kennedy: I think, yeah, I think that's the default on Chrome.
Michael Kennedy: trying to figure out if that is, which one is it? I may have changed it. I think maybe command E is
Michael Kennedy: the default on, I'm sorry, Vivaldi for its command palette, but you know, it's layers of command
Michael Kennedy: palettes you might have to battle with. Anyway, it supports all the way back to 3.8. They don't even
Michael Kennedy: care if Python's supported. They're going to support it. And Django 3.2 to 6. So yeah, that's
Michael Kennedy: pretty much it. Super easy to add in. Not a lot, not a lot to do there, but it's customizable.
Calvin Hendryx-Parker: Yeah. No, I like that. I mean, as a Django developer, that's definitely a missing piece
Calvin Hendryx-Parker: because I feel like it's like the old days of the internet
Calvin Hendryx-Parker: where there was no search
Calvin Hendryx-Parker: and you had to always know where to browse to
Calvin Hendryx-Parker: to find the things in the admin console.
Calvin Hendryx-Parker: Yeah.
Calvin Hendryx-Parker: This is going to save a lot of people a lot of time,
Calvin Hendryx-Parker: especially if you've got a larger Django app
Calvin Hendryx-Parker: and you've got hundreds of models in there.
Calvin Hendryx-Parker: Like this is going to be a lifesaver.
Michael Kennedy: And some people use the admin section
Michael Kennedy: for like all the admin staff of the Django site.
Michael Kennedy: I don't recommend that, but...
Michael Kennedy: I don't know.
Michael Kennedy: I don't know either, but people do.
Michael Kennedy: And so having this to navigate it,
Michael Kennedy: I think would be good, right?
Calvin Hendryx-Parker: True.
Calvin Hendryx-Parker: In a last minute crunch, when you're trying to triage something, that admin is indispensable.
Michael Kennedy: I guess it depends, though.
Michael Kennedy: You know, is this an internal company app that 20 people use and three people admin?
Michael Kennedy: Yeah.
Michael Kennedy: How serious you got to take that versus Instagram?
Michael Kennedy: Right.
Michael Kennedy: I bet it's not admin through the admin.
Calvin Hendryx-Parker: We should get some, we should find out.
Calvin Hendryx-Parker: We should get some inside news into whether they use the admin or not.
Calvin Hendryx-Parker: What if it is?
Michael Kennedy: No, you should see ours.
Calvin Hendryx-Parker: Our is amazing.
Calvin Hendryx-Parker: Well, I can tell you right now, someone's going to mention it in the comments.
Calvin Hendryx-Parker: they're going to call us out.
Calvin Hendryx-Parker: Let's do it.
Michael Kennedy: We could ask an AI about it, probably.
Michael Kennedy: A local AI.
Calvin Hendryx-Parker: And local AI, actually, this is really exciting.
Calvin Hendryx-Parker: I have been certainly on the bleeding edge of local AIs for quite some time,
Calvin Hendryx-Parker: running them on my framework desktop here.
Calvin Hendryx-Parker: And then I've always managed to try and buy a MacBook Pro with Apple Silicon
Calvin Hendryx-Parker: and then about as much memory as I can afford.
Calvin Hendryx-Parker: And so being able to run these local models has been mostly an experiment up to this date.
Calvin Hendryx-Parker: Gemma 4 has gotten really good.
Calvin Hendryx-Parker: Some of them, you know, Mistral, Dev, and Devstral have been really interesting for live coding agents.
Calvin Hendryx-Parker: But this article that came across my feed today, multiple people in the company actually posted this,
Calvin Hendryx-Parker: which is Quinn 3.627B is the sweet spot for local development.
Calvin Hendryx-Parker: So there's a couple models that just got released in the Quinn family of open weights models.
Calvin Hendryx-Parker: There's also a quantized version of it and a multi-token prediction version of this model out there, which gets some pretty blazing speed.
Calvin Hendryx-Parker: On his M5 MacBook Max, he was getting 32 tokens per second with the 8-bit quantized version of it.
Calvin Hendryx-Parker: But if you run the 4-bit quantization, you can actually run it on a 32 gigabyte or less MacBook machine, and you get pretty blazing speeds.
Calvin Hendryx-Parker: I think they put a chart in here on the bottom.
Calvin Hendryx-Parker: But the nice bit about this article
Calvin Hendryx-Parker: is he compares the various models,
Calvin Hendryx-Parker: what they're capable of inside the same family.
Calvin Hendryx-Parker: And it actually gives you a whole how-to
Calvin Hendryx-Parker: on how to hook this up using LLAMA CPP and OpenCode.
Calvin Hendryx-Parker: And so you can actually rebuild the demos
Calvin Hendryx-Parker: that the author wrote here.
Calvin Hendryx-Parker: So using OpenCode, hooked it up,
Calvin Hendryx-Parker: and then wrote up a Minesweeper app,
Calvin Hendryx-Parker: and then again went into some depth
Calvin Hendryx-Parker: on the performance metrics here.
Calvin Hendryx-Parker: So you can see the 3635B A3B model on the Apple MLX,
Calvin Hendryx-Parker: 85 tokens per second running with that model.
Calvin Hendryx-Parker: That is incredibly usable.
Calvin Hendryx-Parker: But the real sweet spot for the development
Calvin Hendryx-Parker: was using Lama CPP and getting 32 tokens per second
Calvin Hendryx-Parker: using about 42 gig of RAM.
Calvin Hendryx-Parker: So if you've got a 64 gig machine,
Calvin Hendryx-Parker: this is absolutely doable for developers
Calvin Hendryx-Parker: that are out there today and felt like it was,
Calvin Hendryx-Parker: I mean, this is not gonna be like mind blowing
Calvin Hendryx-Parker: for anyone who's already using frontier level models like Opus and Sonnet and GPT-55 Codex to
Calvin Hendryx-Parker: do code, but this is local. Everything stays on your machine. The data never leaves. It's tool
Calvin Hendryx-Parker: using, so there's still risk. You're using models that have been trained by foreign nations and who
Calvin Hendryx-Parker: knows what's going on inside of these things, but this one seems to be gaining a lot of traction
Calvin Hendryx-Parker: and actually producing, you know, I don't think it's mythos level yet, but we're only, what, maybe
Calvin Hendryx-Parker: six, nine months behind on open waste models that I can run myself. So this looks really good.
Calvin Hendryx-Parker: The interesting thing he also pointed out in the article was, and I wasn't aware of it,
Calvin Hendryx-Parker: the, I've been an OLAMA user for quite some time. And I think I'm going to be switching to the
Calvin Hendryx-Parker: LAMA CPP version. There's, there's been some authorship and IP concerns between the two groups
Calvin Hendryx-Parker: that I wasn't aware of. And I think I feel like to be responsible, I should switch over to using
Calvin Hendryx-Parker: that or I'm considering VLLM on my framework desktop so that I can run multiple models
Calvin Hendryx-Parker: simultaneously and have multiple instances of the same model running so that, for example,
Calvin Hendryx-Parker: my home assistant can have multiple people in the house make requests simultaneously.
Calvin Hendryx-Parker: So this is pretty exciting. I can't, I've not tried 3.6. I have 3.5 currently running
Calvin Hendryx-Parker: on my desktop at the moment. And that has been impressive from a home assistant standpoint. I've
Calvin Hendryx-Parker: not used it for much of my coding agents, but I'm going to give 3.6.27b a real shot using
Calvin Hendryx-Parker: I've been using, again, Pi, still my daily driver.
Calvin Hendryx-Parker: There was a new release of Superpowers since our last episode
Calvin Hendryx-Parker: that has made the Pi experience a lot more user-friendly and smooth.
Calvin Hendryx-Parker: So check that out with Quinn36.
Calvin Hendryx-Parker: It's really neat.
Michael Kennedy: One thing is, can you pull up that speed?
Calvin Hendryx-Parker: Yeah.
Michael Kennedy: I love how they have like a heat picture.
Michael Kennedy: It's definitely going to heat up your laptop if you're using these tools.
Michael Kennedy: What surprises me on macOS is that MLX is the slowest.
Calvin Hendryx-Parker: i know i was surprised that too i think he mentions it down here in the text um rtx consumer rtx if
Calvin Hendryx-Parker: you've got enough vram on that card that is the way to go if you're serious about running these
Calvin Hendryx-Parker: models i believe but just the standard llama cpp plus mtp uh with that quantized version 105 tokens
Calvin Hendryx-Parker: per second that's but but 32 tokens per second is plenty fast for doing code dev where you're
Calvin Hendryx-Parker: you're in it you're reviewing you're using it as a true assistant and you're not trying to just
Michael Kennedy: vibe code away an app. Another takeaway that when I see anything like this, definitely a cool topic,
Michael Kennedy: is I don't know what percentage of people it is out there. Maybe I'd love to hear your thoughts
Michael Kennedy: on this, but I think there's certainly a strong contingent of people out there who want AI to go
Michael Kennedy: away or think the bubble's going to burst and it's just not worth getting into or paying attention to.
Michael Kennedy: Like I know OpenAI or Anthropic or whatever, the whole thing is just going to go up like in a
Michael Kennedy: smoking dumpster fire in six months so why would I change the way I work and
Michael Kennedy: melt my brain and whatever else you leave people say about it this stuff is
Michael Kennedy: not going away this is on this is here right this is on a hugging face the
Calvin Hendryx-Parker: models are published on hugging face this is open open source and published I
Calvin Hendryx-Parker: say open source I shouldn't say open source they're open weights some of the
Calvin Hendryx-Parker: models are fully open source but this is this is sustainable maintainable and a
Calvin Hendryx-Parker: sides of that equation, the answer lies in the middle. And the answer really is that these tools
Calvin Hendryx-Parker: are great amplifiers of your existing skills. So if you're already good at the software development
Calvin Hendryx-Parker: lifecycle, these things make you better. If you're not good at it, these things can make you worse.
Michael Kennedy: Exactly. You have no idea? That's called vibe coding.
Calvin Hendryx-Parker: Right. Let's all be realistic about what this is all about.
Michael Kennedy: Yeah. And I'm also jealous of your framework.
Calvin Hendryx-Parker: So, I mean, side note, Apple raised their prices this week on MacBook Pros.
Calvin Hendryx-Parker: I went and double checked and Framework had raised their prices too.
Calvin Hendryx-Parker: So the same 128 gigabyte machine is like about six or $700 more than it was a year ago.
Michael Kennedy: Wow.
Michael Kennedy: Yeah.
Michael Kennedy: I don't know.
Michael Kennedy: Maybe I'll have a...
Michael Kennedy: I was going to start this episode with a good morning.
Michael Kennedy: Good morning, everyone.
Michael Kennedy: at apple we're so we've been so honored and proud to have pretty good fleeced you on ram and
Michael Kennedy: on nvvm that today we're taking it to an entirely new level like
Michael Kennedy: oh my goodness yeah so the price is like you're gonna be you're gonna be excited michael oh boy
Michael Kennedy: let me tell you what we we're gonna bring on calvin to show you what we've built and boy is
Michael Kennedy: expensive no like seriously just really quick follow-up to the sidebar like my i think my macbook
Michael Kennedy: pro 16 inch which i just bought just received i bought it a little bit before because it took a
Michael Kennedy: while but just got two weeks ago something like that i think it went up eight hundred dollars yeah
Calvin Hendryx-Parker: i i luckily i bought two in preparation for this prior to the rise in price so i just saved
Calvin Hendryx-Parker: myself sixteen hundred dollars that's awesome there's some guy math we could do there's totally
Michael Kennedy: some guy math going on here all right what are we gonna spend it on let's let's exactly let's talk
Michael Kennedy: about uh we're spinning on motorcycles calvin you know what we're gonna spend it we're absolutely
Michael Kennedy: gonna spend our motorcycles so i would i would like to tell people about what might be the largest
Michael Kennedy: single PEP except finalization in in one batch ever good go on that sounds like this sounds
Michael Kennedy: exciting it sounds exciting it's more interest like oh that's weird interesting so all in one
Michael Kennedy: one go i believe these are right perhaps i might be off by i think i might be off by one anyway
Michael Kennedy: it's basically six six eight six eight seven six nine one there's like 10 peps or something that
Michael Kennedy: got fine with the final just all at one shot then when you look at them carefully so i i linked to
Michael Kennedy: the um 11 yeah it's 11 false chains i linked to the commit that did all this and so you'll see
Michael Kennedy: like if we expand it here, the diff is not always perfect.
Michael Kennedy: Pep 668 making Python based environments externally managed.
Michael Kennedy: But if you go over and you check out Pep Pep 668, which is here, it was created.
Michael Kennedy: Wow.
Michael Kennedy: May 20, 2021.
Michael Kennedy: House clean.
Michael Kennedy: Others are like 2023 and so on.
Michael Kennedy: So what had happened here?
Michael Kennedy: Oh gosh, I forgot who, who did the switch.
Michael Kennedy: I guess I could probably look at the commit zero intensity, which is
Michael Kennedy: Peter, I didn't really need to click on that. In fact, that was useless. Peter Birma,
Michael Kennedy: core developer, did all this. And what it really is, is there have been all these peps that were
Michael Kennedy: sitting in accepted, but not final. And accepted means, well, accepted final means it's shipping.
Michael Kennedy: But clearly the one that went, was out and accepted and final in 2021 is out. So there's
Michael Kennedy: just a bunch of peps 11 in particular that were just hanging around and never ever got moved to
Michael Kennedy: final for some reason you know reasons i don't know someone was not a completionist exactly yes
Michael Kennedy: yeah exactly someone's like oh we're gonna get all the little badges baby all the badges that we put
Michael Kennedy: on here yeah so for example this one is uh 2022 october 2022 and so on so i just think this
Michael Kennedy: is kind of interesting and people have been looking at these these older peps and going like
Michael Kennedy: Why is this not final?
Michael Kennedy: Why is it just accepted?
Michael Kennedy: Well, you called it out.
Michael Kennedy: Not completionist.
Calvin Hendryx-Parker: Yeah, I'm glad.
Calvin Hendryx-Parker: Well, it's nice to see those all cleaned up
Calvin Hendryx-Parker: so that at least there's a canonical source of the truth here.
Michael Kennedy: Yeah, absolutely.
Michael Kennedy: I totally agree.
Michael Kennedy: Bit of comment out in the audience here.
Michael Kennedy: We've got Pixel.
Michael Kennedy: It says, like the sentence,
Michael Kennedy: it makes you worth if you don't know the software cycle.
Michael Kennedy: Because I saw people during Vibe Coding, and they're happy,
Michael Kennedy: but they didn't know what it actually makes them worth.
Michael Kennedy: But yeah, it's interesting.
Calvin Hendryx-Parker: Very true statement.
Michael Kennedy: Yeah.
Michael Kennedy: And also, yes, also being a subject matter expert combined with some coding skills is absolutely.
Michael Kennedy: 100%.
Michael Kennedy: It does make being a generalist a little more useful.
Michael Kennedy: Yeah, actually.
Michael Kennedy: Not exclusively, but also.
Calvin Hendryx-Parker: I finally come into my own being the generalist that I am.
Calvin Hendryx-Parker: Yes, exactly.
Calvin Hendryx-Parker: Me too.
Calvin Hendryx-Parker: My time is here.
Calvin Hendryx-Parker: It's incredible.
Calvin Hendryx-Parker: I can do all the things.
Calvin Hendryx-Parker: Well, I mean, I've just found myself building so much more stuff now.
Calvin Hendryx-Parker: Like I know the patterns I wanted to get done.
Calvin Hendryx-Parker: And it was just a lot of busy work that I didn't feel like doing.
Calvin Hendryx-Parker: but now I can make those tools super quick.
Calvin Hendryx-Parker: I love it.
Michael Kennedy: Big fan.
Michael Kennedy: Yeah, big fan, big fan.
Michael Kennedy: And it's like, well, if it took me two hours, this is worth it.
Michael Kennedy: If it took me two weeks, it's not worth it.
Michael Kennedy: Totally.
Michael Kennedy: Now it takes you two hours.
Michael Kennedy: That's absolutely the math.
Michael Kennedy: All right.
Michael Kennedy: And you can power it over your framework in the basement.
Michael Kennedy: Okay.
Michael Kennedy: That's true.
Michael Kennedy: So let's go and jump into extras.
Michael Kennedy: Yes.
Michael Kennedy: And I already got my screen up, so I'll just grab the first one here.
Michael Kennedy: Go for it.
Michael Kennedy: So I wrote a blog post inspired by a guy named Pito,
Michael Kennedy: who had reached out to us because you and I both were a fan talking about how
Michael Kennedy: ELS instead of LS is quite cool.
Michael Kennedy: It is quite cool.
Michael Kennedy: You can go and when you LS on something,
Michael Kennedy: if you alias it,
Michael Kennedy: although that has some drawbacks,
Michael Kennedy: it uses color for like hidden file,
Michael Kennedy: like GitHub.
Michael Kennedy: .github is shown if you LS,
Michael Kennedy: even though it's technically hidden,
Michael Kennedy: but it uses color to show that it's like .gitignored.
Michael Kennedy: It shows symlinks,
Michael Kennedy: which is really cool.
Michael Kennedy: I've learned how to create a symlink in Git.
Michael Kennedy: So when you check it out, it's symlinks on the new machine, which is always fun.
Michael Kennedy: Use this icon, all this stuff is super cool.
Michael Kennedy: But Pito pointed out something is weird with installing this package.
Michael Kennedy: If you click on the PyPI link, it says version six, some of the links
Michael Kennedy: 404, which is kind of weird.
Michael Kennedy: But then if I actually go and click on say the repository, it takes me to
Michael Kennedy: the rust based ones like, oh, this must be the rust one.
Michael Kennedy: Because when I go to the PyPI and I click on the repo, it goes to the Rust one.
Michael Kennedy: He points out, no, that's the Python one.
Michael Kennedy: And I'm like, wait a minute, is there something sus going on with this thing?
Michael Kennedy: And he inspired me to dig into it.
Michael Kennedy: So what is going on is GitHub is redirecting to the newer version when you click on it.
Michael Kennedy: But PyPI actually installs a frozen 2023 version.
Michael Kennedy: So I wrote this really short article.
Michael Kennedy: I didn't know that.
Michael Kennedy: Yes, I know.
Michael Kennedy: I didn't either because everything about it like redirects to the one that you think you're going to want, but it's not.
Michael Kennedy: So anyway, it talks about like, okay, did you install this with uv or PIPX or somehow pip install?
Michael Kennedy: If you did, you're getting the old frozen in place slower one that you think is not what you're getting, but that's what you're getting.
Michael Kennedy: And here's how to actually install it.
Michael Kennedy: Well, I'm going to go do that.
Michael Kennedy: Yes, exactly.
Michael Kennedy: So I wrote a really short write up about this.
Michael Kennedy: What the PLS?
Michael Kennedy: What the PLS, PLS?
Michael Kennedy: Come on now.
Michael Kennedy: all right kyle well if you think that makes your command line glamorous i've got something for you
Calvin Hendryx-Parker: you're gonna crush it they were gonna remember to your first crush this i mean because the command
Calvin Hendryx-Parker: line was probably my first crush if i'm gonna be honest out there and if you want your command line
Calvin Hendryx-Parker: to look absolutely beautiful and glamorous there's a library out here called charm that can do all
Calvin Hendryx-Parker: kinds of fun uh extensions so forms and uh it's got interfaces to build inside there with like
Calvin Hendryx-Parker: ssh animations physics based animations you know get the bubble tea component for your toolkit
Calvin Hendryx-Parker: so you should definitely check out uh crush or no sorry it's charm.land to add some fun bling
Calvin Hendryx-Parker: to your terminal so if you think that if pls was just the start uh oh my goodness charm is gonna
Michael Kennedy: you're gonna be busy uh michael going down the rabbit hole dang it i was just starting to work
Michael Kennedy: on some projects and now here I am.
Michael Kennedy: Yeah.
Michael Kennedy: Rebuilding my terminal prompt again.
Calvin Hendryx-Parker: Yep.
Calvin Hendryx-Parker: It looks pretty cool.
Calvin Hendryx-Parker: So I've not checked it out.
Calvin Hendryx-Parker: I think the open code folks may be using some of this.
Calvin Hendryx-Parker: But yeah, it looks like a lot of fun.
Calvin Hendryx-Parker: So if you want to go bling your terminal, this is a way to do it.
Michael Kennedy: And it's not very popular, is it?
Calvin Hendryx-Parker: No, not at all.
Calvin Hendryx-Parker: 213,000 stars over on GitHub.
Calvin Hendryx-Parker: Not bad.
Calvin Hendryx-Parker: Pretty cool.
Calvin Hendryx-Parker: Add some fun to your terminal.
Calvin Hendryx-Parker: The other bit, and I kind of already alluded to this,
Calvin Hendryx-Parker: was building a fully local voice assistant in 2026
Calvin Hendryx-Parker: using Python.
Calvin Hendryx-Parker: So this actually is a Raspberry Pi friendly version.
Calvin Hendryx-Parker: As for those of you who are following along at home,
Calvin Hendryx-Parker: I've been doing the more ridiculous version
Calvin Hendryx-Parker: with like a RTX 3070,
Calvin Hendryx-Parker: running my voice models on a giant graphics card.
Calvin Hendryx-Parker: This runs on a Raspberry Pi.
Calvin Hendryx-Parker: A couple of different models.
Calvin Hendryx-Parker: He mentions here in the article
Calvin Hendryx-Parker: with the full architecture and how to set it all up
Calvin Hendryx-Parker: and how to get it going.
Calvin Hendryx-Parker: And you can even run it on old Raspberry Pis.
Calvin Hendryx-Parker: So there's a 40 meg model, the small 015 version.
Calvin Hendryx-Parker: Meg.
Calvin Hendryx-Parker: Yeah, megabyte.
Calvin Hendryx-Parker: Megabyte.
Calvin Hendryx-Parker: Yeah.
Calvin Hendryx-Parker: Wow, okay.
Calvin Hendryx-Parker: Inaccurate, but we'll run all of those.
Calvin Hendryx-Parker: So if you've got a more
Calvin Hendryx-Parker: So it's like Siri, basically.
Calvin Hendryx-Parker: Yeah.
Michael Kennedy: Wow, shots fired.
Michael Kennedy: It's default failure mode.
Michael Kennedy: This is what I found on the internet.
Calvin Hendryx-Parker: Yeah.
Calvin Hendryx-Parker: But you can see even the largest one, 1.8 gig,
Calvin Hendryx-Parker: you can even run that on probably the largest
Calvin Hendryx-Parker: just of Raspberry Pis that are out there,
Calvin Hendryx-Parker: or just on a CPU,
Calvin Hendryx-Parker: and not have to use a full blown GPU
Calvin Hendryx-Parker: to run your voice pipeline.
Calvin Hendryx-Parker: This is part of the Platypush platform,
Calvin Hendryx-Parker: which is not necessarily a competitive Home Assistant,
Calvin Hendryx-Parker: but is like Home Assistant,
Calvin Hendryx-Parker: in that you can glue together Zigbee
Calvin Hendryx-Parker: and Wi-Fi IoT devices
Calvin Hendryx-Parker: and all those kinds of things inside your house.
Calvin Hendryx-Parker: So I just thought that was really interesting
Calvin Hendryx-Parker: because it's on my list of things to keep up to date on,
Calvin Hendryx-Parker: which is I want to replace all the ladies in the box in my house,
Calvin Hendryx-Parker: if you know what I mean.
Michael Kennedy: Yeah.
Michael Kennedy: And that's what I got.
Michael Kennedy: What about something?
Michael Kennedy: You're a Docker person.
Michael Kennedy: I am.
Michael Kennedy: And you've done a lot of local Docker.
Michael Kennedy: I'm more of a server Docker.
Michael Kennedy: One of the things I think would be really cool,
Michael Kennedy: it'd be so easy to set this into an always auto starting
Michael Kennedy: and less stopped sort of Docker thing.
Michael Kennedy: But at least on macOS,
Michael Kennedy: can you give it access to the GPUs or NPUs?
Michael Kennedy: You know what I mean?
Michael Kennedy: because it's basically Linux within macOS,
Michael Kennedy: which is not exactly the same.
Calvin Hendryx-Parker: I have not tried the GPU on Docker with macOS.
Calvin Hendryx-Parker: I am using this on,
Calvin Hendryx-Parker: I have installed Proxmox onto the AMD box downstairs
Calvin Hendryx-Parker: that has the CUDA card in it, the 3070 card.
Calvin Hendryx-Parker: And in that one, you absolutely can pass with Proxmox,
Calvin Hendryx-Parker: the GPU drivers.
Calvin Hendryx-Parker: And you just have to make sure you get the CUDA drivers installed.
Calvin Hendryx-Parker: Proxmox doesn't come with them out of the box.
Calvin Hendryx-Parker: but you can install them onto Proxmox.
Calvin Hendryx-Parker: And once you do, you can pass through either shared access
Calvin Hendryx-Parker: or dedicated access to the containers.
Calvin Hendryx-Parker: I'm using containers to run all my voice assistant stuff on the Proxmox.
Calvin Hendryx-Parker: Sweet. Okay.
Calvin Hendryx-Parker: So that is absolutely possible on Linux.
Calvin Hendryx-Parker: And Proxmox makes it just stupid easy to do.
Michael Kennedy: Nice. Yeah, I have this nice Mac Mini M4 Pro sitting around.
Michael Kennedy: I would love to just fire things up.
Michael Kennedy: But all the stuff that requires sort of some acceleration,
Michael Kennedy: it's like sometimes slower.
Michael Kennedy: Maybe I don't really want it that much.
Calvin Hendryx-Parker: Well, since I had that RTX that was donated by my child to me, I was like, I'll use that
Calvin Hendryx-Parker: because it's going to be the fastest tokens per second, but it's only an eight gigabyte
Calvin Hendryx-Parker: VRAM.
Calvin Hendryx-Parker: So whatever I can fit into that eight gig goes very fast.
Calvin Hendryx-Parker: Yeah, perfect.
Michael Kennedy: All right.
Michael Kennedy: Let's finish this up with a joke.
Michael Kennedy: So this one comes to us from Jeff Triplett.
Michael Kennedy: This one's good.
Michael Kennedy: Have you seen this?
Michael Kennedy: I have seen this.
Michael Kennedy: The team's been talking about it.
Michael Kennedy: Yeah, it's well, I think you all should adopt this for your project.
Calvin Hendryx-Parker: We totally should.
Michael Kennedy: You let me look. A lot of times people create this kind of little not so easy to understand thing as a way to like get creepy repeat business or to not.
Michael Kennedy: You can't fire me. I'm the only one that knows how the what to do.
Calvin Hendryx-Parker: And CSS was already crystal clear with how to author it.
Michael Kennedy: Indeed. So what we get here is a legit CSS framework called Bmoji.
Michael Kennedy: It's the CSS framework that your team will actually argue about.
Michael Kennedy: And so here's what's going on with this is why waste all the characters when you could have something much more discoverable or understandable with emojis?
Michael Kennedy: Right. I mean, this totally makes sense. I'm here for it.
Michael Kennedy: So if you don't even know. So, for example, you might want to talk about like a hero image and you want to stylize it.
Michael Kennedy: So you would say joker emoji underscore underscore picture frame emoji.
Michael Kennedy: And like a lot of the utility classes, you would need to like specialize that.
Michael Kennedy: So you would say joker emoji underscore underscore picture emoji --star, because this is your hero.
Michael Kennedy: The hero.
Michael Kennedy: And then there's the editable part, which is joker emoji underscore underscore notepad editor.
Michael Kennedy: If you want to have a little card, like a written card.
Michael Kennedy: And then joker underscore underscore ABCD for the title.
Michael Kennedy: and joker underscore underscore quote emoji for a description bit so on the footer is the best
Calvin Hendryx-Parker: okay the footer where's the footer oh right there the class is joker underscore underscore
Michael Kennedy: foot emoji oh there it is yes it's literally the foot emoji what is the i guess the disabled is a
Calvin Hendryx-Parker: a ghost yeah it's perfect i mean it's obvious you read that you know you know exactly what's going
Michael Kennedy: on michael yes i i guess you do once you learn to speak the emoji about the block the element
Michael Kennedy: oh it's so good i want a link you just put a link emoji on it anyway i'm not sure that i'm
Michael Kennedy: gonna be adopting this um i've already done a couple major framework remodels so i put it on
Michael Kennedy: our tech radar yeah it's gonna be important i mean you gotta you gotta stay on top of what's coming
Michael Kennedy: in the industry and sometimes yep sometimes it's a ghost emoji i think i think that's a good place
Michael Kennedy: to leave it, Calvin.
Michael Kennedy: That is a good place.
Michael Kennedy: I love it.
Michael Kennedy: Thank you all.
Michael Kennedy: That was a lot of fun.
Michael Kennedy: Yeah, thanks.
Michael Kennedy: See you later.
Michael Kennedy: See ya.