Brought to you by Michael - take a Talk Python course and support the show

#487: Minimum requirements

Published Tue, Jul 7, 2026, recorded Tue, Jul 7, 2026
0:00
00:27:36
Watch this episode on YouTube
Play on YouTube
Watch the live stream replay

About the show

Sponsored by us! Support our work through:

Connect with the hosts

Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesday at 7am 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.

Michael #1: dust - a better du

  • du + Rust = dust - a fast, visual, intuitive disk-usage CLI
  • Run dust and immediately see the biggest directories and files without piping through sort, head, or awk
  • Smart recursive output focuses on what matters instead of dumping every folder
  • Colored bars show relative size and parent/child hierarchy, making “where did the space go?” obvious
  • Perfect for Python projects bloated by .venv, caches, Docker volumes, downloaded datasets, and local AI models
  • Install via brew, cargo install du-dust, conda-forge, Scoop, Snap, deb-get, or GitHub releases

Calvin #2: A Way better ARchive format for Python packaging

  • war - new archive format spec from Astral (same team as uv/ruff), v0.0.2, still no binary encoding defined yet
  • Header-Index-Store layout: header IDs the file, index maps names to store offsets, store holds compressed data
  • Index uses a finite-state transducer (FST) to dedupe common path prefixes across entry names
  • Supports three entry types (file, directory, link) and three compression modes (store/DEFLATE/zstd), plus an "executable" metadata flag
  • Unpacking is atomic - writes to a temp dir, then renames into place, so a failed extract never leaves a half-unpacked directory
  • Strict name-segment rules (no NUL/control chars, no leading/trailing whitespace, blocks Windows-reserved names like CON/PRN) to avoid path traversal and cross-platform footguns

Michael #3: Hermes Agent: The AI agent that grows with you

  • Hermes Agent is an open-source, Python-built AI agent framework from Nous Research - think ChatGPT-style assistant, but connected to your tools, files, shell, browser, calendar, memory, and messaging apps
  • I’m using it in Discord as a long-running agent conversation, not just a one-off chatbot session
  • Hermes can connect through a gateway to platforms like Discord, Telegram, Slack, WhatsApp, email, webhooks, and more - so the same assistant can follow you across surfaces
  • In my setup, I can send Hermes voice/text from Discord, keep project context across turns as threads, and ask it to actually do things: read GitHub repos, run commands, edit files, schedule calendar events, generate drafts, and verify results
  • A fun workflow: I can trigger one-shot actions from an Apple Watch shortcut - dictate a request, send it to Hermes, and have the agent execute it asynchronously
  • Hermes has persistent memory, so it can remember durable preferences and facts - for example, how I like my research formatted
  • It also has “skills,” which are reusable procedures the agent can load later, so Hermes can self-improve over time instead of rediscovering the same workflow repeatedly
  • It supports scheduled jobs / cron-style automations, so it can proactively watch for releases, send summaries, run checks, or remind you about things
  • It’s provider-agnostic: OpenRouter, Anthropic, Google, xAI, local models, Nous Portal, and others
  • The big idea: Hermes turns an LLM from “a chat box I visit” into “an agent I can reach from anywhere that knows my workflows and can take real actions and learns over time.”

Calvin #4: llm-coding-agent 0.1a0

  • Simon Willison built a Claude/Codex-style coding agent on top of his llm library, using an alpha of the llm package plus his python-lib-template-repo
  • Built almost entirely via prompted TDD - asked an agent to write a spec.md, then commit + implement with red/green tests, occasionally hitting a real OpenAI key to sanity-check
  • Shipped to PyPI as an alpha: uvx --prerelease=allow --with llm-coding-agent llm code
  • Tool set mirrors familiar coding-agent primitives: read_file, edit_file (exact string replace + diff), write_file, list_files, search_files, execute_command
  • Also exposes a Python API - CodingAgent(model="gpt-5.5", root=..., approve=True).run(...) - which Simon didn't ask for but got anyway
  • Demo: llm code --yolo told GPT-5.5 to build a SwiftUI CLI clock; model correctly noted SwiftUI isn't really CLI-friendly and still produced an ASCII-art time display

Extras

Calvin:

  • Slides, but for developers https://sli.dev/
  • Wanna reduce your token usage…. only issue is that its lossy https://github.com/teamchong/pxpipe
  • PEP 772 - Python Packaging Council inaugural election dates set, nominations open July 28, voting September 1-15

Michael:

Joke: Min requirements for Linux

Episode Transcript

Collapse transcript

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

00:05 This is episode 487, recorded Tuesday, July 8th, 2026.

00:10 I'm Calvin Hendryx-Parker.

00:12 I'm Michael Kennedy.

00:13 Nice to have you, Michael. Thanks for joining me today.

00:15 We are sponsored by us, so check out the Talk Python courses.

00:21 Your co-host, Michael, here put a tremendous amount of effort into making sure every last human being on the planet can learn Python like nobody's business.

00:29 So excited to have that.

00:30 And then check out Six Feet Up.

00:32 I am a co-founder of Six Feet Up.

00:35 We love solving hard problems.

00:36 We're hiring.

00:37 So if you're looking for a position, go check out our careers page.

00:40 Put that little plug in there and make sure you connect with the hosts online.

00:43 We are on all the socials.

00:44 You can find Michael, myself and the show over on Mastodon, Bluesky, X, Den.

00:50 I'm mostly active on LinkedIn.

00:52 Michael, where are you mostly active at?

00:53 Well, talk to me.

00:54 Otherwise, I'm not that active.

00:56 So we'll go at Michael and tell them something interesting.

00:59 And then Yeah, there you go.

01:01 Send in a show idea.

01:02 Send in a show idea.

01:03 That's a great idea.

01:04 So if you want to join us live on YouTube, we do record this live.

01:07 You can watch it all of its liveness at pythonbytes.fm/live.

01:12 Be part of the audience, usually Tuesday mornings, but today is Tuesday afternoons.

01:16 The older video versions are also available on that YouTube channel too.

01:20 And finally, if you want a handcrafted, artisanal digest of every week's show, and get all the notes, make sure you add your name, and your email to our friends of the show list.

01:30 And we never share those emails, but you will get a great list of links and things to go dive into right into your inbox.

01:37 All right, Michael, let's kick it off.

01:39 I love shell scripts and the little utilities and it seems like you got a good one for us.

01:43 I know you're a fan of the shell world.

01:47 And let me introduce this topic by way of a sad face.

01:52 I use Sentry for all the server stuff and I get a notification from Sentry saying, operational failure for, I don't know, what are the smaller apps that I run, API or something?

02:02 And it says that slash temp is full and it can't write to it.

02:07 I'm like, well, that doesn't make any sense because that's just like the Docker image.

02:11 So it can just write to like this 150 gig hard drive that I have dedicated to just Docker volumes and Docker build data, like image data and stuff.

02:19 But something else has gone awry.

02:21 Oh, no, no, it was right.

02:22 So I go in there and I'm like, I pull up BTOP, which I love Btop.

02:27 And it says, oh my God, it's so good.

02:29 And it's 100% full, all red, no green.

02:32 I'm like, oh God, it's right.

02:33 What is going on here?

02:36 I've been playing with switching to multi-step, multi-image, multi-stage builds with Docker.

02:41 And apparently those builds take up a much more image space if you don't clean up the old ones for some reason.

02:46 I don't know why, I don't really care, but I do care that it was out of space.

02:49 And I'm like, what is going on?

02:50 What can I get rid of?

02:51 So I typically run like a Docker system prune type thing and it's okay.

02:55 but I'm like, well, let me just give this a look.

02:57 And if you want to ask for file size on a Linux terminal, it's not the easiest.

03:02 I mean, you can do it in DU.

03:04 You can't say DU, but you get it in bytes.

03:06 And you're like, what are these huge numbers?

03:07 They're like, they don't make any sense to me.

03:09 I actually went at recursive for the folders.

03:12 And wouldn't it be great if it said this GB, and I know there are flags you can pass at DU if you remember the incantation.

03:17 Wouldn't it be nice if there was a better way?

03:19 So I want to introduce you to Dust.

03:22 So it's a more intuitive version of DU.

03:25 built in Rust. The Rust part doesn't really matter. What does matter is both that it gives you sizes in human terms and it gives you a graph. Graph. That's even better. Yeah. And I like the tree

03:38 structure too, that you get to see that the tree, I use like BR root or B root for seeing like tree

03:44 structures, but now this may do all of it. Yeah, exactly. So you can ask, it's kind of like tree and it's kind of like du but it gives you the disk size information in the tree view and on the right

03:55 hand side there's actually a visual graph that like plots them and it sorts it by size so you can see the bigger ones are at the bottom i think you can invert that if i remember that's how i had

04:05 run it and so you can actually just say show me the big stuff first in a hierarchical way so like what folder is like the word where do i start to make this thing run again and not happen uh not do

04:16 this again where it runs out of space. So I started playing around with this thing and I thought this is pretty dope, man. I really like it. You can just curl install it, cargo install it, brew install it.

04:28 If I was doing it on Mac, I would brew install it. But I think I cargo installed it on Linux. I can't really remember. Anyway, it got installed onto Linux somehow. And there it is. So yeah, it's really

04:39 nice. I think, I mean, not a whole lot more to say. There's tons of options for how you run it.

04:44 actually lists a whole bunch of alternatives.

04:46 This is kind of a nice shout out to like, hey, there's like six other tools that do this, but here's why I wrote this still.

04:51 You know what I mean?

04:52 Yeah.

04:52 Dust simply does the right thing when it handles lots of small files and directory, keeps the output simple by only showing larger entities and so on and so on.

05:01 Anyway.

05:01 That's cool.

05:02 I think it shows that if there's an itch to scratch someplace, someone's going to scratch it.

05:07 If you've got a better idea for an implementation of a tool, you should go do it.

05:10 Dust one looks really awesome and I'll be installing it momentarily.

05:13 Sweet.

05:14 Pete. Yeah, I really like it. So I can recommend and it's I mean, I was able to just do like a Docker cleanup real quick and fix stuff. But I still like where is all the space because that's bigger than before. So let me just like I have plans and this has helped me form a plan.

05:28 Nice. I love the plans. Speaking of plans, the next item I'm going to present to you is actually more of a specification and it's a proposal for a specification as opposed to something you can use

05:39 today. But I really want this to exist. So I felt like I needed to highlight the fact that the fine except Astral, once we got absorbed into a nice frontier model company, are still doing interesting work.

05:50 And this one is building a way better archive format for Python packaging called WAR.

05:55 Now, Michael, I know you're going to say, I've heard of the WAR format before.

06:00 And it's true.

06:01 I don't know.

06:01 I've only heard of the RAR format.

06:03 Really?

06:04 I don't know if I've heard of WAR.

06:05 I mean, I know what WAR is, but not as a compression format.

06:08 This has nothing to do with the WAR format from the Java world.

06:11 The Java had a web archive that you could basically deploy serverless into like a Tomcat server.

06:16 You throw a war file into a directory and poof, you've duplication.

06:20 This is also packaging for Python applications, but it's going to be optimized.

06:25 And given it's Astral doing the work, they're optimizing around speed.

06:29 Speed, ease of use, reliability, resilience to failure is the goals for this specific format.

06:37 So it's a new archive format.

06:39 basically their goal is to be faster than zip or tar from the standard Python library so that you can actually make speed still be the main feature when deploying software.

06:50 And it has support for three kinds of entities like files, directories, and links, three kinds of compression modes, store, deflate.

06:58 And if you've ever used ZStandard or ZSTD, you know that it can compress tremendously faster and more than standard GZip.

07:07 So it's also atomic, which I think I'm hoping this comes to fruition because how many times have you ever unzipped a file for it to crash halfway through and you're left with a directory full of some of the stuff, not all the stuff.

07:19 You don't know how much of the stuff.

07:21 That's one of their goals is actually to make the unpacking atomic.

07:24 It fails.

07:25 You end up with the directory of nothing.

07:26 If it works, you get everything.

07:28 My favorite part of that scenario is if you're placing something when you're unzipping it,

07:32 then it fails.

07:33 You're like, oh, no.

07:34 Right, right, right.

07:35 So yeah, it gets back into the kind of the unambiguity.

07:40 Unlike TAR, there should only be one way to express a given concept in the war.

07:43 Because with TAR files, you can have bzips and gzips and non-compressed.

07:49 So there's really just one extension and one command, and it should be intuitive to use.

07:55 It's not optimized for maximal compression, but for speed and indexability, and then also this like per member compression support. So the idea is you could actually have,

08:07 if this is meant for more streaming operation, so be very compatible with sending out zip distributions or war distributions to say your edge servers. You want that to be fast,

08:19 efficient, only copy the bits it needs so it can understand what parts it has and what parts it doesn't and copy them a lot faster. So I'm excited for this proposal to move forward. There's a link here to the GitHub spec. There's a couple friendly faces who are the current authors of said spec

08:35 over here. So I think that this is very, very promising.

08:38 And like other things from Astral, I anticipate it'll be well executed.

08:43 Looks very cool. Yeah, I had Charlie March on a few weeks ago to talk about Astral moving into OpenAI and what does it mean for uv and different things. Well, now they're not focusing on pyx. They can focus on this. Exactly.

08:54 Yeah. So I think it's pretty interesting that lots of new stuff And not just releases, but new initiatives are coming out.

09:02 That's cool.

09:02 Yeah, no, definitely.

09:03 Yeah, so Short Suite doesn't exist yet, but keep your eye on this space.

09:08 I assume it'll be open source and so people can contribute.

09:11 I would definitely think so.

09:12 Yeah.

09:13 So let's talk about a fun topic.

09:16 I'm excited about this one.

09:17 Yes.

09:18 I don't even know.

09:19 I don't even have the words to talk about this right because it's so overloaded, this term agent and agentic.

09:25 So if I'm using co-work, it's agentic.

09:28 But also if I'm using something that just uses tools and takes multiple steps, it's agentic.

09:33 If I have like a gas town full of people running around, burning, but my credit's doing weird like stuff.

09:38 That's like, you know what I mean?

09:39 Like it's just, there's so much non-clarity.

09:43 And with that, I introduced to you Hermes agent.

09:45 Another one.

09:47 There's another one.

09:48 And this one follows in the open claw realm, but it's a little bit of a research project.

09:53 And I think it's interesting.

09:54 So Hugo Bound Anderson actually introduced me to this, although I mean, it's lots of people know about it.

10:00 I've talked about it that I've heard more than I kind of think back. Right.

10:03 So the idea is it's kind of like OpenClaw in that it's something that continuously runs.

10:08 And it's by NOS Research, Open Source, MIT, et cetera.

10:12 And it's written in Python, which is very interesting.

10:14 If I go over here to the GitHub, this thing is madness.

10:17 I've been I made a fork of it because I had to customize something.

10:20 And it is like every day or two days, I'll be like, oh, I should sync up the fork because I think it's changing fast.

10:26 350 commits.

10:27 I'm like, oh, man, that was like yesterday I synced it.

10:31 211,000 GitHub starters.

10:32 People are using this thing, it seems like.

10:35 So here's the idea.

10:35 It's like OpenClaw in that, let's say it's not like ChatGPT or even, let's say, Cowork.

10:43 So Anthropics Cowork is really cool because what you can do is give it tasks.

10:47 It can use tools like I've taught Claude how to use my Notion.

10:51 So I can say, hey, Claude, I want you to do this analysis and then save it in this Notion page or something.

10:57 And it'll just do it, which is cool.

10:59 But what it doesn't really seem to do is it doesn't cross coordinate and know about the different actions.

11:05 Like you have a project that it could do one thing, but another project doesn't know about that other project.

11:10 And so this Hermes thing like learns a ton and it's like self-improving, self-programming.

11:16 So it keeps a memory of you, which I know other ones do, but you can ask it to, hey, generate some skills for me and just save them and make them available any other time that I might ask about skills.

11:26 Oh, and could you reprogram yourself a little bit?

11:28 Cause this isn't working right.

11:29 Yeah, sure.

11:30 No problem.

11:30 I'll change my internals.

11:32 You just got to restart me real quick if you don't mind, cause I can't do that to myself.

11:36 So there's, it's just really got a lot of neat connectors and this sort of self-improving thing is super cool.

11:43 so calvin let me give you an example of just one of the things and i'll give you two examples but

11:48 i will demonstrate one oh live demo nothing like a live demo on a new show so i have my notice my

11:54 apple watch notice it's the it's just the face it's not and i haven't done anything to it watch this tell hermes what's the text send calvin hendrix parker an email using my talk python

12:06 account and i want the title to be hello from the live show and the body to be check this out man done there you go so i didn't even touch my watch i just told it to do that and it's using a bunch

12:17 of different skills to figure out how to send email to like which account should it use it's uh composing the email and it's going to send it to you in a little bit and you could connect all sorts of llm backends like that's right now using chat gpt 55 but you could do local models you could

12:31 use claude you could do glm whatever whatever you want to connect to it and multiple ones you can switch them around. So that's pretty cool. And while I'm waiting on that, the other thing that I did is like, this will give you a sense of the self-programmability. So I was sitting on the

12:45 couch and my daughter just got her a little dirt bike thing. And she's like, we somehow ran across this private motocross track that had like a kid, kid track side of it. That was really perfect for

12:57 like some off-road riding. She's like, can we really go to that? The problem is it only opens twice a month for a few hours, like four hours at a time. And the times vary. And the only way you know is if you go on their Facebook page, and I'm not really on Facebook. I'm like, how am I going

13:11 to like even keep track of this? So I sat on the couch with my iPad, pasted the URL for the page, and then I just spoke to it. I said, Hey, here's the problem. I'd like you to create a skill so that you can go do this and then create an automated job. And by the time five minutes later,

13:24 it had built a skill, written some like browser use code and had set up a cron job. So like three days a week it will automatically do that and it'll send me an email if and only if new times appear

13:36 in facebook just talking to it i didn't touch it i didn't program it it used codex internally to

13:41 write that for itself yeah so on hermes what's their security stance seemed like the open clock

13:46 crowd was a little yolo uh let's go for it it's a little bit stronger i don't it's still it's still a weird world so the way i do it as i just have it running in docker on my mac mini that's my work

13:58 Mac mini, but it's just always on as my database server anyway. So it's just running in a Docker container. Yeah. And it uses like, I don't know, 600 megs of RAM, not terribly, terribly much.

14:09 Did you get an email? Let me see my email. Other cool things that it does is it like

14:14 integrates with discord. So one of the main ways I talk to it is just through discord.

14:17 And you can have a text conversation. Every new chat session becomes its own thread that then you can carry on. And I taught it how to like, if I tell it to join the voice channel, it'll join the voice channel of discord and it'll just have a conversation like you and I, but it'll keep a

14:32 transcript somewhere else. If I need to go see it. I'm still waiting for the email to work its way through the inner tubes. Oh man. Anyway, I'll give you a real time update later in the show. I'm sure.

14:43 Yeah. Yeah. We'll see. Anyway. So is there also a store, like an open store or marketplace of add-ons or is this you build your own, which I think is probably a better idea for most people.

14:52 It has add-ons and it has skills, but the main thing that you want to have the add-ons are the connectors. Yeah. Like how does it, so it'll do like daily briefings and save them to Notion in a database and so on. You know what I just checked? The problem is it, it wanted to

15:07 run some script and ask for, do you want to allow yes or no? I said always, but you know, it's a pretty new setup. So the first time anyway, eventually you'll get an email now, I'm pretty sure, but I think it's cool. I've been playing a lot with it and, yeah,

15:20 there goes my free time. Why did I play with this? No, it's, it's super fun to dream about what you might do with it. That is super cool. Well, Michael, I have another agent for you that's in

15:28 a very different vein. Like you said, there's all kinds of different agents available out there.

15:33 This one is by our friend Simon Willison. If you know Simon from the Django project and the data set work he's been doing and all the kind of advocacy and work he's been doing around AI and

15:43 LLMs. If you aren't familiar, he wrote a command line utility, again, another great command line utility called LLM. Hard to search for because of the name that he used for it. But if you just search for Simon and LLM, you'll find his normal command line LLM, which lets you just ask an LLM

15:58 a question from the command line, get a response back. He's been growing that with tons of plugins and add-ons. So for example, I've got an LLM add-on called CMD that I use regularly, where you do LLM CMD, and you type like what you want to do. Find me all the Python files that are one level deep in

16:13 my directory. You hit return, and it'll come back to a prompt ready for you to hit return with the command does exactly what you want. So basically, it's kind of a shell extension to autocomplete

16:23 with an LLM hard to remember commands like DU flag options, for example. Well, he's taken this to the next level. He has built a plugin for LLM that is still very alpha. This is very, very early days.

16:34 This only came out a couple days ago called the LLM coding agent. And so now you can install the coding agent and you can do LLM code and you can give it a flag like --YOLO and have it

16:45 build with tools. So he basically, using Fable, he had Fable write this plugin to basically turn LLM into a Claude Code-like experience. And it works with local models. So I installed the LLM

16:59 Ollama plugin, or the Ollama CPP plugin, and I used a QIN 3.5 MLX accelerated model on my MacBook Pro here. And I wrote some CLI calendar tools really quickly with the, just from the

17:13 command line very very lightweight you know very very low barrier to entry it'll be interesting to see where this goes because i like the lightweight nature of the llm tool itself i don't do you use

17:22 the llm tool at all from simon yeah no i should i i haven't yet though it looks really cool when

17:29 you're just sitting at your terminal and you need a quick answer or something like you can put it on like the gpt you know mini uh or haiku for really quick like quick super quick responses or you can pass it, just keep everything local. Like this fully runs locally on my own machine when I'm

17:44 playing with it. So if you want to play with it, you need to, it's shipped as an alpha currently.

17:48 So you can uvx if you want to test it out with pre-release allow flag and then install it into your LLM and run the code keyword. And it'll just give you a prompt, just like a plot code.

17:57 And now it has access to tools to read, write files, investigate. And so it'll build up a picture of the files that are in that directory and act like a coding agent. Here's a demo where We did it with GPT-55 to build a SwiftUI CLI clock.

18:11 And the demo is at the bottom of that page.

18:13 There's a GitHub repo because it's all open source.

18:15 But you can see here the prompts he used to actually write this plugin.

18:19 Two prompts, write the spec, implement the spec.

18:22 So that's pretty cool.

18:23 I'm excited for more to come.

18:25 I always love Simon's tools.

18:26 If you're not following Simon's blog, you should definitely go out there and follow Simon online.

18:30 So that's what I got.

18:30 I think Simon's doing really good work.

18:32 He is.

18:33 I think his writing, he's got a mini thing that's online for, like coding for engineers to code type of stuff. Yeah. And that's really good.

18:41 A lot of neat stuff. And man, he is just on so many interesting places.

18:46 He was on Python a while ago to talk about something with Django.

18:50 Maybe it was his birthday, the birthday, like a big milestone birthday or something like that. I was like, yeah, it was just on CNBC. I got a, sorry, I was late. I'm like, you know what?

18:57 You're living in a different world than most of the developers.

18:59 Like congratulations, man.

19:00 Yeah. But I like his pragmatic style.

19:02 He writes about it very realistically about what they're capable of, what they're not capable of.

19:06 And so if it took him this long to get around to writing a plugin for an agent, a coding agent for LLM, it must be about time.

19:12 So I feel like that's the timeline I like to follow.

19:15 All right, Michael, you got an extra for me?

19:17 I got some extras, but I also have a real-time follow-up real quick here.

19:22 So you mentioned Fable.

19:23 Fable is open to the public.

19:25 It was back, but it was back until July 7th, which is today, the time of the recording.

19:31 And then it was supposed to go into API only.

19:33 And then I just heard that it's supposed to be back permanently for the max max subscribers.

19:39 And for everyone, it's now available for one more week.

19:43 So if you're like, I was going to build something with it, but I didn't get it done.

19:48 And now it went away.

19:49 It's back for one more week.

19:50 So we'll build that thing.

19:51 All right.

19:51 So last week I talked about PLS and I wrote a blog post like what the PLS, man, come on.

19:58 Because I was a little frustrated, not like a super frustrated, just like some people, we'd recommend it.

20:02 We both, on all of our tools episode, we recommend, we're like, oh, that's so cool.

20:06 And people are like, yeah, but, what do you mean, but?

20:08 Like, yeah, but you can't really install the, you follow the instructions and it doesn't quite give it to you, right?

20:13 There's like a bunch of sus stuff.

20:14 And so I wrote this blog post called What the PLS, which said like, look, it's not really doing what you want.

20:19 So please don't, please don't UVPIP install it instead.

20:23 What you should do is this.

20:24 Well, well, well.

20:26 If you look at the top, there's an update from not too long ago.

20:29 And it says, Dhruv Banushali, saw this post and decided to take, he's the maintainer, decided to take some action so that you can no longer be like freaked out about like what the heck is going on.

20:41 So now if you go over to the GitHub issue, which notice it is closed,

20:45 and let me hover and get a name, Christian Letterman.

20:49 Yeah, yeah, I know Christian.

20:50 I do, very cool.

20:51 And said, hey, posted, hey, by the way, also tag, so actually Drew said also tag in Mike C. Kennedy because he might be interested after seeing it.

21:04 and said, hey, guys, look, I'm sorry, but now look.

21:08 You got sub-commented.

21:10 I did.

21:11 I did.

21:11 So if you go over, you know, I said, hey, thanks so much.

21:14 And actually changed it such that even if you go over here, just the latest release, so UVPIP install PLS, now we'll install this one, which is the Rust version.

21:27 So you're kind of back to good.

21:28 There's some other sort of funkiness around this.

21:31 readme on PyPI, but it says that'll be fixed when 7.0 comes out. And 7.0 is like almost out, but not out.

21:37 But look at this.

21:39 I love how developers sweat the small stuff sometimes.

21:43 There's like layers of sweating the small stuff.

21:45 And I would like to just point out that Christian did the right thing and posted a thing and said, hey, dear project and maintainer of this project, it's just really kind of janky.

21:55 Do you think you could maybe fix this?

21:57 So it's not so confusing?

21:59 Whereas I just wrote like a, not a hate post, but like a sort of frustrated, like, ah, don't do this.

22:04 This is kind of not great, but just world.

22:06 The only reason I did that and didn't create one of these is I was sure that they were just uninterested in fixing this.

22:12 Because surely it would have been fixed by now if they'd known and wanted to, you know what I mean?

22:16 But no, I was wrong.

22:17 So I should have followed Christian's lead and just posted this first.

22:21 Christian, you're doing the right thing.

22:22 Exactly.

22:23 Well done.

22:23 That's cool.

22:24 Very cool.

22:24 Well, speaking of developers doing the right thing, I've got a couple extras here.

22:28 If you are a developer that gives presentations at conferences, you should check out SlideEv.

22:33 I was at a conference two weeks ago, the AWS Midwest Community Day, and I, for the last six years, have been using Reveal.js via Pandoc and some cookie cutter markdown glue

22:47 that I put together to basically build my presentations with.

22:49 I love Deerly because I handcrafted it, but I wasn't actually that in love with it.

22:53 And I'm going to move to this.

22:55 I found out this via Corey Quinn of the AWS Screaming in the Cloud fame.

23:00 He uses this to give his talks.

23:02 And I saw his talk on stage.

23:03 I was like asking him afterwards what he was using.

23:06 And it's slide dev.

23:06 So it's all Markdown.

23:08 I like the way the Markdown comes out a lot cleaner with slide dev than what I was doing.

23:12 I could do similar things, but it got a little messy and just didn't have the spirit of true Markdown.

23:17 But here you've got the ability to turn Markdown like this into slides like this.

23:22 So I would check it out if you give presentations.

23:24 It's got a ton of features, ton, ton, ton.

23:27 I'll click over on the features page real quick.

23:29 I mean, just remote presentations.

23:32 You can package it up as a PDF immediately.

23:35 You can put it into a CI pipeline and have a rendered version of it.

23:38 It's kind of fully baked.

23:39 You can have fully inline code that run.

23:42 So if you want to give demos during your talk, you can do that inline in your slides without leaving the deck itself.

23:48 Yeah, that's pretty cool.

23:49 And I found out it was using, I believe it's using MDX, which are markdown live components inside of the tool itself.

23:58 So pretty cool.

23:59 I'm going to be checking it out.

23:59 The next time you see me give a talk on the stage, it will most likely be using SlideDiv for it.

24:04 Excellent.

24:05 Yeah.

24:05 I love it.

24:06 The last one here, I got two more.

24:08 This one, I have not tried this yet, but if you want to reduce your token usage on Claude for use with Fable, for example, someone wrote a tool called PXPipe for PixelPipe.

24:19 It takes your text and encodes it into an image because Anthropic treats images differently token-wise than it does the text.

24:26 They claim up to a 70% token reduction because of the handling of images versus the text itself.

24:35 If y'all could see the screen here.

24:37 Yeah, that is.

24:38 It's not just text.

24:39 It's really small text.

24:40 It's really black.

24:42 Yeah, yeah.

24:42 It looks like a gray wall, but that's actually like the text of the prompt.

24:46 Now, there are downsides.

24:47 Be careful.

24:48 The honest part.

24:49 It is lossy.

24:53 yeah so it's lossy i wouldn't use it for real work it's workload dependent your mileage may vary uh so just thought it was interesting i'd share it with the crowd because some people might be interested in in just token maxing and on the other direction how many tokens can i save uh which i

25:08 thought was interesting yeah it's the anti-top i am not a fan of token maxing no i'm not either i want to conserve the tokens not just conserve i think there is an art and a skill to say what is

25:19 the least this thing needs to know so it can focus the most on it not like what is the maximum i can jam into its memory and still get it to accomplish something you know what i mean so yeah yeah

25:30 exactly so really quick before we wrap up extras do you have okay oh let me see let me go double

25:36 check do i have an email i don't see an email michael let me let me click refresh you don't see an email no you sure did it send a six feet up i assume it did it says it did maybe it's like Maybe it's like, that's just too body.

25:48 And like you landed in the bot zone.

25:50 I might've gotten boted.

25:52 Anyway, we'll review that later.

25:55 Okay.

25:56 Let's go over.

25:57 One last extra before we leave.

26:00 Yeah, yeah.

26:01 You had mentioned PEP772, which is the Python Packaging Council.

26:05 On a previous episode, I wanted to bring it to everyone's attention that the inaugural election dates have been set.

26:10 The nominations are open until July 28th and the voting will happen from September 1st.

26:14 So if you're interested in the packaging council, jump on the boat and go participate.

26:19 Awesome, awesome.

26:21 All right, how about a joke now?

26:22 So this one I hand selected for you, Calvin, because I thought you might appreciate this.

26:28 And I've entitled it Minimum Requirements for Linux.

26:31 I'm already in, I'm already in.

26:33 I know, you're in.

26:34 And this is putting Linux in a good light.

26:37 So it's mostly a picture, but I'll just describe it to you because it's fun.

26:40 Like, you know, there's this big brouhaha about windows 11 and tpm chips 2.0 so even if you have a tpm chip you're not enough for windows 11 like so you got to go buy yet another one i think Linux has a different uh deal here so the idea is

26:54 there's this i can't play it there's this old dirty nasty 486 looking thing that's found in like a ditch in the water probably like a hewlett packard yeah like a hewlett packard i mean it's got dvd drives and stuff on the front.

27:09 Yeah, yeah.

27:10 Yes, or a compact maybe.

27:12 Yes.

27:13 Just in the water and in the mud and they pull it out and go, "Minimum requirements for Linux."

27:19 It will run.

27:20 It's a video. Sadly, I can't play it because I'm not logged in,

27:22 but apparently, whatever.

27:24 You can play it when you log in.

27:25 I'll go log in and play it, Michael.

27:27 Very good stuff.

27:28 Very good stuff.

27:28 Well, thank you very much, Michael, for this edition of Python Bytes.

27:31 We will see you all next week.

27:33 Thank you very much.

27:34 Yeah, thanks. Bye.


Want to go deeper? Check our projects




Subscribe to Python Bytes