WEBVTT

00:00:00.020 --> 00:00:04.200
<v Michael Kennedy>Hello and welcome to Python Bytes, where we deliver Python news and headlines directly

00:00:04.760 --> 00:00:11.240
<v Michael Kennedy>to your earbuds. This is episode 490, recorded July 28th. I'm Michael Kennedy.

00:00:11.700 --> 00:00:12.740
<v Michael Kennedy>And I'm Calvin Hendryx-Parker.

00:00:13.020 --> 00:00:17.920
<v Michael Kennedy>This episode is brought to you by XWeather. XWeather combines enterprise-grade weather

00:00:18.140 --> 00:00:23.860
<v Michael Kennedy>intelligence with agent-ready APIs, natural language capabilities, and an MCP server so

00:00:23.940 --> 00:00:28.359
<v Michael Kennedy>your agents can adapt workflows, automate responses, and make better decisions based

00:00:28.380 --> 00:00:29.300
<v Michael Kennedy>on real-world conditions.

00:00:29.800 --> 00:00:31.400
<v Michael Kennedy>I'll tell you more about them later in the show.

00:00:31.760 --> 00:00:34.980
<v Michael Kennedy>Get started for free at pythonbytes.fm/xweather.

00:00:35.300 --> 00:00:38.820
<v Michael Kennedy>If you want to follow us on social, then feel free to do so.

00:00:39.070 --> 00:00:39.920
<v Michael Kennedy>We got a link.

00:00:40.240 --> 00:00:43.000
<v Michael Kennedy>I have a little bit more to say about that at the end of the show.

00:00:44.480 --> 00:00:48.280
<v Michael Kennedy>Got links in the show notes and sign up for the newsletter, all those things.

00:00:48.700 --> 00:00:56.100
<v Michael Kennedy>Before we get into the first topic, Calvin, I'd like to just rep a little bit of the KTM.

00:00:56.860 --> 00:00:58.120
<v Michael Kennedy>See, I got my KTM shirt on.

00:00:58.280 --> 00:00:58.900
<v Michael Kennedy>Team Orange.

00:00:59.520 --> 00:00:59.920
<v Michael Kennedy>Team Orange.

00:00:59.940 --> 00:01:01.420
<v Michael Kennedy>And I know you're a fan of motorcycles as well.

00:01:01.840 --> 00:01:02.060
<v Michael Kennedy>I am.

00:01:02.220 --> 00:01:06.900
<v Michael Kennedy>This week, this weekend, we had Pro AMA Motocross at Washougal.

00:01:07.320 --> 00:01:07.760
<v Michael Kennedy>Oh, fun.

00:01:07.860 --> 00:01:12.520
<v Michael Kennedy>And I was there all day with some of my friends, and it was quite the epic event.

00:01:12.760 --> 00:01:15.320
<v Michael Kennedy>So if you're around, they travel all over the US.

00:01:15.900 --> 00:01:17.660
<v Michael Kennedy>If you're around one of them, go to them.

00:01:17.740 --> 00:01:19.360
<v Michael Kennedy>They're really an interesting experience.

00:01:19.840 --> 00:01:23.340
<v Michael Kennedy>Even if you're not super into motorcycles, just being in that atmosphere is really wild.

00:01:23.640 --> 00:01:25.000
<v Michael Kennedy>So it's cool.

00:01:25.240 --> 00:01:25.340
<v Calvin Hendryx-Parker>Yeah.

00:01:25.520 --> 00:01:27.900
<v Calvin Hendryx-Parker>I'm hoping they bring World Superbike someday back to Indianapolis.

00:01:28.420 --> 00:01:34.240
<v Calvin Hendryx-Parker>yes that would be awesome because i'm team ducati yeah well don't let uh daytona and their their

00:01:34.420 --> 00:01:39.320
<v Michael Kennedy>bike week have all the fun you know yeah exactly exactly well you know what is fun i know it's fun

00:01:39.400 --> 00:01:45.400
<v Calvin Hendryx-Parker>jango's fun Django is a lot of fun yeah and in thinking about some of the core features of Django

00:01:46.020 --> 00:01:51.459
<v Calvin Hendryx-Parker>julia evans brings us great posts from last week about some of the things that she's been enjoying

00:01:51.460 --> 00:01:58.480
<v Calvin Hendryx-Parker>about Django, but from a 2010 style website perspective. I thought this was a great post

00:01:58.780 --> 00:02:04.900
<v Calvin Hendryx-Parker>because it reinforces some of the joy of Django and some of the cool bits and pieces that maybe

00:02:05.140 --> 00:02:10.679
<v Calvin Hendryx-Parker>people have not forgotten about or just aren't using or haven't chosen Django because they

00:02:10.740 --> 00:02:15.979
<v Calvin Hendryx-Parker>thought maybe it was just too complicated or too big for their project and they went Flask or Fast

00:02:16.000 --> 00:02:22.000
<v Calvin Hendryx-Parker>API instead. But this is a good one that kind of goes over what it's like, you know, again,

00:02:22.310 --> 00:02:30.420
<v Calvin Hendryx-Parker>the retro feel or nostalgia for a 2010 website was very backend. And with server side rendered pages,

00:02:31.080 --> 00:02:35.640
<v Calvin Hendryx-Parker>this is kind of giving you that feel for that. But then it gets into things like query builders,

00:02:36.680 --> 00:02:42.300
<v Calvin Hendryx-Parker>defining custom query sets, making them chainable, which if you take a look, this is very readable.

00:02:42.700 --> 00:02:50.560
<v Calvin Hendryx-Parker>Like if you were to read this code as English, you read like, you know, events for tab with festivals is free and is outdoors.

00:02:51.210 --> 00:02:54.040
<v Calvin Hendryx-Parker>That just almost makes sense to the human brain.

00:02:54.190 --> 00:03:03.640
<v Calvin Hendryx-Parker>But then it translates into the Django ORM really, really cleanly because you can set up your own custom query sets and have their own custom methods on it.

00:03:03.990 --> 00:03:09.520
<v Calvin Hendryx-Parker>So you can build a site that's a joy to maintain and to query behind the scenes.

00:03:09.980 --> 00:03:14.700
<v Calvin Hendryx-Parker>Another thing that she highlights in the post is actually template filters and template filters are awesome.

00:03:14.950 --> 00:03:24.720
<v Calvin Hendryx-Parker>I think a lot of people will neglect to take this into account when they are building web pages is if you can use these quick little filters that you can apply inside your template.

00:03:25.150 --> 00:03:30.400
<v Calvin Hendryx-Parker>And it gives you a ton of like the batteries included experience that you've come to love about Python.

00:03:30.920 --> 00:03:32.000
<v Calvin Hendryx-Parker>You get that in Django.

00:03:32.340 --> 00:03:39.100
<v Calvin Hendryx-Parker>And I think if you go and look at the reference for the template filters, you'll see there's just tons of cool little things that save you a ton of time.

00:03:39.180 --> 00:03:40.740
<v Calvin Hendryx-Parker>And you don't have to reinvent these wheels.

00:03:41.200 --> 00:03:42.380
<v Calvin Hendryx-Parker>They're all ready for you to go.

00:03:42.820 --> 00:03:50.600
<v Calvin Hendryx-Parker>And then there's also, for example, the JSON script, which takes a Python dictionary and automatically converts it to JSON and inserts into the HTML script tag in a safe way.

00:03:50.940 --> 00:04:05.780
<v Calvin Hendryx-Parker>So it also helps you with things like cross-site scripting and template injection and all those kind of security problems that normally you'd have to consider can go mostly to the wayside because Django just takes care of it for you when you use some of those built-ins.

00:04:06.560 --> 00:04:10.480
<v Calvin Hendryx-Parker>Other kind of things that we mentioned here, I believe, is like migrations.

00:04:11.530 --> 00:04:16.140
<v Calvin Hendryx-Parker>So if you are building websites, don't forget, if you change your database, you've got to migrate the code.

00:04:16.579 --> 00:04:20.940
<v Calvin Hendryx-Parker>And if you change the code, you got to migrate your database to match for those various models.

00:04:21.480 --> 00:04:25.240
<v Calvin Hendryx-Parker>Again, something that a lot of Django nuts don't think too much about because it just happens out

00:04:25.260 --> 00:04:32.620
<v Calvin Hendryx-Parker>of the box. But this is a good one that just kind of reinforces that. Another nicety that some folks

00:04:32.760 --> 00:04:38.280
<v Calvin Hendryx-Parker>like is skipping inheritance for class-based views. You can prefer function-based views for sharing

00:04:38.500 --> 00:04:44.399
<v Calvin Hendryx-Parker>code and then using Django's own mixins and interfaces to simplify that building of static

00:04:44.420 --> 00:04:49.380
<v Calvin Hendryx-Parker>sites. What's also nice, if you basically combine this with something like HTMX, you now get a

00:04:49.600 --> 00:04:52.700
<v Calvin Hendryx-Parker>superpower, which is you don't have to build your site twice. I think I mentioned this last week

00:04:53.000 --> 00:04:58.580
<v Calvin Hendryx-Parker>on the show, is that you build once and you've got a beautiful feel of a single page web app

00:04:58.920 --> 00:05:04.860
<v Calvin Hendryx-Parker>or a reactive style design, but without having to build your models twice. There's also some

00:05:05.540 --> 00:05:09.659
<v Calvin Hendryx-Parker>performance surprises. I think if you check out the latest version of Django, you'll notice that

00:05:09.680 --> 00:05:11.980
<v Calvin Hendryx-Parker>there's been some considerable performance improvements.

00:05:12.680 --> 00:05:16.360
<v Calvin Hendryx-Parker>If you're considering, say, FastAPI over Django with Ninja,

00:05:16.910 --> 00:05:18.680
<v Calvin Hendryx-Parker>you should, and that's not mentioned in this article necessarily,

00:05:18.890 --> 00:05:20.740
<v Calvin Hendryx-Parker>but I would mention that you could check that out

00:05:20.860 --> 00:05:23.980
<v Calvin Hendryx-Parker>and get fairly similar performance in certain use cases

00:05:24.550 --> 00:05:26.000
<v Calvin Hendryx-Parker>without having to go the FastAPI route

00:05:26.000 --> 00:05:29.000
<v Calvin Hendryx-Parker>and still getting all the batteries included of Django itself.

00:05:29.460 --> 00:05:31.720
<v Calvin Hendryx-Parker>So that was the kind of wrap up of the post.

00:05:32.060 --> 00:05:34.360
<v Calvin Hendryx-Parker>I'm going to mention it because I think sometimes people just need to be,

00:05:34.630 --> 00:05:38.119
<v Calvin Hendryx-Parker>have their memory jogged for some of the nice bits

00:05:38.140 --> 00:05:41.280
<v Calvin Hendryx-Parker>that are still baked into the default experience of Django.

00:05:41.660 --> 00:05:42.380
<v Calvin Hendryx-Parker>Yeah, that's super cool.

00:05:42.560 --> 00:05:44.120
<v Michael Kennedy>You think admin backend.

00:05:44.360 --> 00:05:44.880
<v Calvin Hendryx-Parker>Oh, yeah.

00:05:45.240 --> 00:05:45.800
<v Michael Kennedy>You know.

00:05:46.260 --> 00:05:47.100
<v Michael Kennedy>But it's way more.

00:05:47.380 --> 00:05:48.000
<v Michael Kennedy>It's so much more.

00:05:48.000 --> 00:05:48.260
<v Michael Kennedy>Yeah, exactly.

00:05:48.420 --> 00:05:48.800
<v Michael Kennedy>That's my point.

00:05:48.920 --> 00:05:51.300
<v Michael Kennedy>There's a lot of these sort of like one bit lower,

00:05:51.860 --> 00:05:53.040
<v Michael Kennedy>but still really helpful things.

00:05:53.500 --> 00:05:56.160
<v Michael Kennedy>I feel like Julia needs to put a blog roll on this.

00:05:56.360 --> 00:05:56.820
<v Michael Kennedy>I mean, come on.

00:05:56.920 --> 00:05:59.280
<v Michael Kennedy>It's got no credibility with me until there's a blog roll.

00:06:01.260 --> 00:06:02.700
<v Michael Kennedy>And if you don't know what a blog roll is,

00:06:03.080 --> 00:06:05.560
<v Michael Kennedy>probably good, but it's certainly in the vibe.

00:06:05.560 --> 00:06:06.280
<v Calvin Hendryx-Parker>For going old school.

00:06:06.520 --> 00:06:09.500
<v Calvin Hendryx-Parker>It's just funny that word nostalgia for 2010s.

00:06:10.900 --> 00:06:11.200
<v Michael Kennedy>Exactly.

00:06:11.500 --> 00:06:14.040
<v Michael Kennedy>Can you believe how it was back then?

00:06:14.110 --> 00:06:16.480
<v Michael Kennedy>That doesn't sound old to me, unfortunately.

00:06:16.980 --> 00:06:17.480
<v Michael Kennedy>I know.

00:06:17.880 --> 00:06:19.300
<v Michael Kennedy>So, yeah, yeah.

00:06:19.360 --> 00:06:20.940
<v Michael Kennedy>I got a little bit of real-time follow-up.

00:06:20.990 --> 00:06:24.160
<v Michael Kennedy>I just, the latest Talk Python episode that just came out yesterday.

00:06:24.160 --> 00:06:24.400
<v Michael Kennedy>Oh, yeah.

00:06:24.720 --> 00:06:24.820
<v Michael Kennedy>Yes?

00:06:25.040 --> 00:06:25.260
<v Michael Kennedy>Yeah, yeah.

00:06:25.560 --> 00:06:26.660
<v Michael Kennedy>Was with Carlton Gibson.

00:06:27.340 --> 00:06:32.499
<v Michael Kennedy>And it's a really fun episode about updates on Django's async story

00:06:32.520 --> 00:06:37.480
<v Michael Kennedy>and rewriting all the documentation and positioning of async for Django,

00:06:37.760 --> 00:06:40.220
<v Michael Kennedy>plus talking some Django 6, 6.1 things.

00:06:40.440 --> 00:06:43.460
<v Michael Kennedy>So if you liked Calvin's bit, there's a whole hour of it right there.

00:06:43.860 --> 00:06:44.600
<v Michael Kennedy>That was really fun.

00:06:44.740 --> 00:06:46.460
<v Calvin Hendryx-Parker>I have a little more on Django in the extras too.

00:06:46.720 --> 00:06:47.420
<v Calvin Hendryx-Parker>Awesome. Awesome.

00:06:47.680 --> 00:06:48.120
<v Michael Kennedy>Well, okay.

00:06:48.500 --> 00:06:52.220
<v Michael Kennedy>Well, you know, it's all fun when there's a vibe coding party

00:06:52.840 --> 00:06:54.140
<v Michael Kennedy>until you got to clean up the mess.

00:06:54.490 --> 00:06:55.760
<v Michael Kennedy>So this got sent in.

00:06:57.100 --> 00:07:00.240
<v Michael Kennedy>It got sent in to us by Sam Lerner saying,

00:07:00.840 --> 00:07:04.620
<v Michael Kennedy>hey, there's this really interesting article on the Financial Times.

00:07:04.880 --> 00:07:06.580
<v Michael Kennedy>So thank you, Sam, for sending that in.

00:07:07.000 --> 00:07:08.320
<v Michael Kennedy>And it's paywalled.

00:07:08.700 --> 00:07:10.380
<v Michael Kennedy>So I'm going to give you the rundown.

00:07:10.610 --> 00:07:13.920
<v Michael Kennedy>But it's not so much that you need to read it, which is what's interesting.

00:07:14.280 --> 00:07:15.920
<v Michael Kennedy>It's that it is here at all.

00:07:16.400 --> 00:07:19.300
<v Michael Kennedy>So Financial Times is for business people.

00:07:19.680 --> 00:07:21.740
<v Michael Kennedy>Yeah, I was curious where this was going, Michael.

00:07:22.100 --> 00:07:22.480
<v Michael Kennedy>Exactly.

00:07:22.620 --> 00:07:23.400
<v Michael Kennedy>Why is this here?

00:07:23.610 --> 00:07:26.220
<v Michael Kennedy>So what is this story about?

00:07:26.360 --> 00:07:30.120
<v Michael Kennedy>Who cleans up after the Vibe Coding Party is the title of the article.

00:07:30.580 --> 00:07:34.160
<v Michael Kennedy>And the byline is hidden behind a paywall even, which is interesting.

00:07:34.560 --> 00:07:35.440
<v Michael Kennedy>I was writing this article.

00:07:35.640 --> 00:07:37.540
<v Michael Kennedy>I'd be like, could you just put my byline under it?

00:07:37.800 --> 00:07:38.020
<v Michael Kennedy>Anyway.

00:07:38.420 --> 00:07:39.160
<v Michael Kennedy>So it goes through.

00:07:39.160 --> 00:07:40.840
<v Calvin Hendryx-Parker>I'm not speaking to journalists in these days anyway.

00:07:41.440 --> 00:07:41.940
<v Michael Kennedy>I know.

00:07:41.940 --> 00:07:44.160
<v Michael Kennedy>You're like, I've already got it hard enough.

00:07:44.180 --> 00:07:44.700
<v Michael Kennedy>Are you serious?

00:07:46.160 --> 00:07:49.100
<v Michael Kennedy>So let me give you a little bit of the rundown for this one.

00:07:50.060 --> 00:07:51.980
<v Michael Kennedy>Because there's one, because you don't have access to it.

00:07:51.980 --> 00:07:56.860
<v Michael Kennedy>But I think the reason Sam sent this in and the reason I think it's interesting as well

00:07:57.240 --> 00:07:58.780
<v Michael Kennedy>is actually, no, sorry.

00:07:58.920 --> 00:08:02.380
<v Michael Kennedy>The piece is by Sam Lerner and Dylan McConnell sent it in.

00:08:02.680 --> 00:08:05.280
<v Michael Kennedy>I wrote those down, but I had crisscrossed them in my mind.

00:08:05.450 --> 00:08:06.420
<v Michael Kennedy>So thanks for sending that in, Dylan.

00:08:06.800 --> 00:08:10.780
<v Michael Kennedy>So the reason I think this is interesting is it tells the story,

00:08:11.300 --> 00:08:17.000
<v Michael Kennedy>but to a much broader audience who is not able to discern the details that I'm about to give you.

00:08:17.110 --> 00:08:17.220
<v Michael Kennedy>Okay.

00:08:17.860 --> 00:08:22.200
<v Michael Kennedy>So it starts out by going through this, the experience that Daniel Stenberg,

00:08:22.330 --> 00:08:27.740
<v Michael Kennedy>the creator, maintainer of Curl went through as the primary positioning of this article.

00:08:27.980 --> 00:08:32.440
<v Michael Kennedy>says, hey, look, Daniel, it talks about, oh my God, there's such an interesting term.

00:08:33.360 --> 00:08:38.560
<v Michael Kennedy>The invisible load, the load bearing people of the internet is what it's referred to all

00:08:38.680 --> 00:08:38.840
<v Michael Kennedy>the time.

00:08:38.880 --> 00:08:39.659
<v Michael Kennedy>Are you familiar with this term?

00:08:40.240 --> 00:08:40.320
<v Calvin Hendryx-Parker>Yeah.

00:08:40.640 --> 00:08:40.740
<v Michael Kennedy>Yeah.

00:08:40.800 --> 00:08:44.900
<v Michael Kennedy>So the load bearing people of the internet are the folks like who are not Daniel, but

00:08:45.140 --> 00:08:49.300
<v Michael Kennedy>the anonymous folks who even just might do a PR and like, nobody knows who they are, but

00:08:49.360 --> 00:08:50.900
<v Michael Kennedy>they are like keeping open source.

00:08:51.040 --> 00:08:53.060
<v Michael Kennedy>And by way of that, like a lot of these companies run it.

00:08:54.200 --> 00:08:59.520
<v Michael Kennedy>So Daniel has been famous, notable, I guess, for mentioning a couple of things about Curl, right?

00:08:59.570 --> 00:09:01.300
<v Michael Kennedy>So Curl's, I guess, popular.

00:09:01.840 --> 00:09:03.920
<v Michael Kennedy>It's been installed about 20 billion times.

00:09:04.900 --> 00:09:10.280
<v Michael Kennedy>Yeah, it's been installed by 20 billion times and it has 33,000 plus contributors.

00:09:10.630 --> 00:09:17.140
<v Michael Kennedy>So notable because they killed the bug bounty program for Curl because there was an explosion of AI slop, right?

00:09:17.340 --> 00:09:31.920
<v Michael Kennedy>So it's like step one of this article is like, look, this really important thing that is the load-bearing piece of the internet, supported by the load-bearing people of the internet, had to actually shut down their security story because of AI slop.

00:09:32.840 --> 00:09:42.040
<v Michael Kennedy>Then Guido was also making an appearance, talking about Python, and said a lot of projects are holding emergency meetings over AI contributions.

00:09:42.560 --> 00:09:46.640
<v Michael Kennedy>Should we accept LLM patches or should we not?

00:09:46.780 --> 00:09:47.440
<v Michael Kennedy>And I think that's fair.

00:09:48.520 --> 00:09:50.700
<v Michael Kennedy>There's Vibe Coding Kills Open Source,

00:09:50.790 --> 00:09:52.840
<v Michael Kennedy>which is a paper from Miklos Korn

00:09:53.230 --> 00:09:56.940
<v Michael Kennedy>about how packages frequently recommended by coding

00:09:56.990 --> 00:09:58.080
<v Michael Kennedy>saw a huge jump,

00:09:58.520 --> 00:10:02.520
<v Michael Kennedy>but it actually breaks some of the supporting pieces.

00:10:02.800 --> 00:10:05.880
<v Michael Kennedy>I think Tailscale is probably the biggest one here.

00:10:06.300 --> 00:10:09.880
<v Michael Kennedy>Tailscale saw a 6x jump in actual usage.

00:10:10.340 --> 00:10:13.680
<v Michael Kennedy>At the same time, it saw a 60% drop in its traffic

00:10:13.940 --> 00:10:15.040
<v Michael Kennedy>to its site,

00:10:15.220 --> 00:10:17.040
<v Michael Kennedy>and thus it's paid offerings and so on.

00:10:17.440 --> 00:10:18.040
<v Michael Kennedy>Stack Overflow.

00:10:18.500 --> 00:10:22.500
<v Michael Kennedy>I think Stack Overflow is actually the most extreme example

00:10:22.880 --> 00:10:24.760
<v Michael Kennedy>of stuff getting kind of wrecked.

00:10:24.880 --> 00:10:26.140
<v Michael Kennedy>Like, are you familiar with the numbers?

00:10:26.360 --> 00:10:29.820
<v Michael Kennedy>So the peak Stack Overflow is getting 1,000 questions a month.

00:10:30.120 --> 00:10:32.080
<v Michael Kennedy>On the month that Stack Overflow opened,

00:10:32.080 --> 00:10:33.700
<v Michael Kennedy>it got 1,500 questions,

00:10:34.120 --> 00:10:37.780
<v Michael Kennedy>and it got 1,500 the month that this article was written as well,

00:10:37.840 --> 00:10:38.420
<v Michael Kennedy>which is insane.

00:10:39.060 --> 00:10:40.740
<v Michael Kennedy>And it's a super, super hard arc there.

00:10:40.960 --> 00:10:43.100
<v Michael Kennedy>But, you know, Stack Overflow was kind of a main place,

00:10:43.400 --> 00:10:43.980
<v Michael Kennedy>and I don't know.

00:10:44.000 --> 00:10:45.000
<v Michael Kennedy>It was super valuable, though.

00:10:45.160 --> 00:10:47.180
<v Michael Kennedy>I'm sort of a little bit sad about Stack Overflow.

00:10:47.220 --> 00:10:47.540
<v Michael Kennedy>How about you?

00:10:47.900 --> 00:10:49.240
<v Calvin Hendryx-Parker>Maybe a victim of its own success.

00:10:50.020 --> 00:10:53.340
<v Calvin Hendryx-Parker>The fact that it attracted a lot of that negative energy.

00:10:54.480 --> 00:10:55.060
<v Calvin Hendryx-Parker>So I don't know.

00:10:55.440 --> 00:10:56.440
<v Calvin Hendryx-Parker>I don't know if it would have saved it,

00:10:56.500 --> 00:10:58.600
<v Calvin Hendryx-Parker>if it would have handled that moderation better or not.

00:10:58.800 --> 00:10:59.700
<v Calvin Hendryx-Parker>It's hard to say.

00:11:00.000 --> 00:11:00.100
<v Calvin Hendryx-Parker>Yeah.

00:11:00.280 --> 00:11:01.900
<v Calvin Hendryx-Parker>We can armchair quarterback that one all day long.

00:11:02.720 --> 00:11:03.260
<v Michael Kennedy>Yeah, we can.

00:11:03.440 --> 00:11:05.900
<v Michael Kennedy>It's like, it is a bit of a victim of its own success.

00:11:06.140 --> 00:11:06.320
<v Calvin Hendryx-Parker>Yeah.

00:11:06.560 --> 00:11:09.420
<v Michael Kennedy>And then the thing that closed out with content creators,

00:11:09.680 --> 00:11:10.920
<v Michael Kennedy>like, hey, that's gotten closer to home.

00:11:11.400 --> 00:11:24.040
<v Michael Kennedy>Like Josh Kamau's new web dev course launched on Udemy of all places and got one third of the enrollment that it did previously, which that tracks.

00:11:24.310 --> 00:11:25.600
<v Michael Kennedy>I think it's a pretty tough time.

00:11:26.040 --> 00:11:26.120
<v Michael Kennedy>Yeah.

00:11:26.240 --> 00:11:35.820
<v Michael Kennedy>You'd be selling deep, deep knowledge to people who just want a surface level knowledge, you know, and are in a hurry because the button you can press or just do it, Claude, is a thing you can say.

00:11:36.160 --> 00:11:36.260
<v Calvin Hendryx-Parker>Yep.

00:11:36.520 --> 00:11:37.680
<v Calvin Hendryx-Parker>We're seeing that in our community, too.

00:11:38.000 --> 00:11:42.820
<v Calvin Hendryx-Parker>I mean, the real Python folks and like the Matt Harrison's of the world, like you and you.

00:11:43.380 --> 00:11:43.600
<v Michael Kennedy>Yeah.

00:11:43.920 --> 00:11:44.020
<v Michael Kennedy>Yeah.

00:11:44.400 --> 00:11:45.100
<v Michael Kennedy>It's true.

00:11:45.460 --> 00:11:45.720
<v Michael Kennedy>It's true.

00:11:45.900 --> 00:11:49.320
<v Michael Kennedy>I mean, courses are still selling, but they're not as gangbusters.

00:11:49.320 --> 00:11:50.660
<v Michael Kennedy>I think there's a lot in that though.

00:11:50.700 --> 00:11:54.520
<v Michael Kennedy>It used to be a lot easier to communicate directly with people and like all the social

00:11:54.620 --> 00:11:59.240
<v Michael Kennedy>stuff is all scramble and there's just, there's a lot of factors in it, but AI is not a supporting

00:11:59.640 --> 00:12:00.280
<v Michael Kennedy>factor, let's say.

00:12:00.820 --> 00:12:02.460
<v Michael Kennedy>But the reason I brought this up.

00:12:02.520 --> 00:12:02.640
<v Michael Kennedy>Okay.

00:12:02.880 --> 00:12:05.900
<v Michael Kennedy>So that tells the story and then I'll close it out with this.

00:12:06.220 --> 00:12:10.320
<v Michael Kennedy>What's really interesting about this is what was omitted from this.

00:12:10.840 --> 00:12:13.980
<v Michael Kennedy>So the key, the cornerstone of this article is curl.

00:12:14.400 --> 00:12:17.900
<v Michael Kennedy>They had to shut down their bug bounty because vibe coding is killing open source.

00:12:18.400 --> 00:12:18.520
<v Michael Kennedy>Yeah.

00:12:19.000 --> 00:12:20.460
<v Michael Kennedy>Well, that's true.

00:12:21.020 --> 00:12:23.140
<v Michael Kennedy>There was this article that said the end of the curl bug bounty.

00:12:23.640 --> 00:12:27.240
<v Michael Kennedy>But in April, Daniel also wrote high quality chaos.

00:12:27.720 --> 00:12:28.680
<v Michael Kennedy>No more AI slop.

00:12:29.080 --> 00:12:29.580
<v Michael Kennedy>What?

00:12:29.980 --> 00:12:30.300
<v Michael Kennedy>Go on.

00:12:31.880 --> 00:12:32.980
<v Michael Kennedy>Pray do tell, my friend.

00:12:33.680 --> 00:12:44.360
<v Michael Kennedy>So they shut down the bug bounty program, and now they just accept unpaid security work, as a lot of projects do, right?

00:12:44.410 --> 00:12:48.760
<v Michael Kennedy>Or they probably are on the receiving end, even if they don't want to accept it, but they get a bunch of it.

00:12:49.060 --> 00:12:55.660
<v Michael Kennedy>And by shutting it down, they've removed an incentive to just generate junk and hope it gets accepted, right?

00:12:55.960 --> 00:13:00.060
<v Michael Kennedy>Like there was a monetary value if your prior AI slot got accepted.

00:13:00.340 --> 00:13:01.980
<v Michael Kennedy>Now it's just you have to do it because you care.

00:13:02.210 --> 00:13:02.740
<v Michael Kennedy>Well, guess what?

00:13:02.860 --> 00:13:05.160
<v Michael Kennedy>It says, I haven't read this article enough.

00:13:05.460 --> 00:13:06.880
<v Michael Kennedy>I'll recently know exactly, but it says,

00:13:06.920 --> 00:13:10.140
<v Michael Kennedy>I complained and complained about the high-frequency junk submissions

00:13:10.360 --> 00:13:13.060
<v Michael Kennedy>to the Crow bug bounty program that grew really intense.

00:13:13.960 --> 00:13:17.620
<v Michael Kennedy>And it said, look, somewhere in here, it says, basically, yeah, here,

00:13:18.020 --> 00:13:21.640
<v Michael Kennedy>now the quality is higher, the rate of confirmed vulnerabilities is back,

00:13:21.700 --> 00:13:27.480
<v Michael Kennedy>and even surpassing the number of CVEs and issues are surpassing pre-AI level.

00:13:27.860 --> 00:13:28.840
<v Michael Kennedy>Confirmed, right?

00:13:29.240 --> 00:13:34.400
<v Michael Kennedy>So that's really like the percentage of them, which are actual problems is higher than they

00:13:34.540 --> 00:13:34.900
<v Michael Kennedy>used to be.

00:13:35.080 --> 00:13:36.900
<v Michael Kennedy>So that's beyond human level.

00:13:37.000 --> 00:13:37.840
<v Michael Kennedy>That's a good thing, right?

00:13:38.160 --> 00:13:44.540
<v Calvin Hendryx-Parker>So is he saying that the finding of security vulnerabilities, using AI as an augmented tool

00:13:44.600 --> 00:13:47.320
<v Calvin Hendryx-Parker>to detect where there's vulnerabilities is what he's talking about here?

00:13:47.600 --> 00:13:48.300
<v Calvin Hendryx-Parker>Yes, I believe so.

00:13:48.400 --> 00:13:48.540
<v Michael Kennedy>Yeah.

00:13:48.840 --> 00:13:48.920
<v Michael Kennedy>Yeah.

00:13:49.260 --> 00:13:50.740
<v Michael Kennedy>And so that's still a problem.

00:13:50.820 --> 00:13:51.860
<v Michael Kennedy>They're getting tons of them.

00:13:52.120 --> 00:13:57.099
<v Michael Kennedy>But it's like, we kind of hinted at this last time, like the first time you run a linter

00:13:57.100 --> 00:13:59.280
<v Michael Kennedy>on a program, you're like, what?

00:13:59.620 --> 00:14:00.660
<v Michael Kennedy>There's a thousand errors?

00:14:00.820 --> 00:14:02.100
<v Michael Kennedy>It's not even that big of a program.

00:14:03.020 --> 00:14:06.860
<v Michael Kennedy>But it's not going to be, if you took out a hundred of them a week, there's not going

00:14:06.860 --> 00:14:10.520
<v Michael Kennedy>to be a thousand the next week and the thousand, it's going to go down, right?

00:14:10.640 --> 00:14:13.260
<v Michael Kennedy>There's only so many that could possibly be there, right?

00:14:13.540 --> 00:14:18.000
<v Michael Kennedy>And so it is a rough time, but I think it's really, so that brings me back to the article.

00:14:18.140 --> 00:14:23.919
<v Michael Kennedy>So I think it's just really interesting that they chose to tell the story of, look how bad

00:14:23.940 --> 00:14:30.080
<v Michael Kennedy>this stuff is using curl as the cornerstone when two months after the original thing came out it's

00:14:30.080 --> 00:14:35.120
<v Michael Kennedy>it actually no that's this is not even the problem that you think it is it's a it is a problem but

00:14:35.180 --> 00:14:39.820
<v Michael Kennedy>not in the way that you think it is and this article was written in june or july the ai swap

00:14:39.830 --> 00:14:45.240
<v Michael Kennedy>is gone articles from april it's like here's the story you wanted to tell without those pesky details

00:14:45.740 --> 00:14:50.100
<v Michael Kennedy>of it's a different problem anyway i thought that was just a super interesting arc and you know

00:14:49.980 --> 00:14:51.140
<v Michael Kennedy>Thank you, Dylan, for sending it in.

00:14:51.500 --> 00:14:52.060
<v Michael Kennedy>And that's that.

00:14:52.200 --> 00:14:54.140
<v Calvin Hendryx-Parker>There always will be bugs in software,

00:14:54.360 --> 00:14:57.580
<v Calvin Hendryx-Parker>but we're going through probably a great time of discovery,

00:14:58.080 --> 00:15:01.540
<v Calvin Hendryx-Parker>finding bad bugs that have been present for sometimes decades.

00:15:02.200 --> 00:15:05.020
<v Calvin Hendryx-Parker>So everyone's going to win in the fact that we use these

00:15:05.080 --> 00:15:07.640
<v Calvin Hendryx-Parker>as augmented capabilities for developers to detect,

00:15:08.020 --> 00:15:10.620
<v Calvin Hendryx-Parker>sometimes very hard to detect bugs inside the code.

00:15:10.780 --> 00:15:14.000
<v Calvin Hendryx-Parker>I mean, that's how Fable broke out of the sandbox

00:15:14.120 --> 00:15:16.020
<v Calvin Hendryx-Parker>or Mythos broke out of the sandbox and attacked.

00:15:16.440 --> 00:15:19.760
<v Calvin Hendryx-Parker>Hugging Face was chaining multiple zero days that didn't exist.

00:15:19.840 --> 00:15:20.820
<v Calvin Hendryx-Parker>to make this all happen.

00:15:20.980 --> 00:15:21.620
<v Calvin Hendryx-Parker>Well, you know what?

00:15:21.900 --> 00:15:22.880
<v Calvin Hendryx-Parker>Those have been closed this week

00:15:23.200 --> 00:15:25.020
<v Calvin Hendryx-Parker>because they were deemed important enough.

00:15:25.480 --> 00:15:26.580
<v Calvin Hendryx-Parker>And now we all benefit from that.

00:15:27.020 --> 00:15:27.460
<v Michael Kennedy>We do.

00:15:27.520 --> 00:15:30.560
<v Michael Kennedy>I think it's just not black and white.

00:15:30.820 --> 00:15:32.800
<v Michael Kennedy>You know, it's a weird time.

00:15:32.900 --> 00:15:33.080
<v Michael Kennedy>Yeah.

00:15:33.340 --> 00:15:34.420
<v Michael Kennedy>It's a weird time for sure.

00:15:36.240 --> 00:15:38.260
<v Michael Kennedy>This episode is brought to you by Xweather.

00:15:38.680 --> 00:15:40.640
<v Michael Kennedy>You're using agents that can write code,

00:15:41.060 --> 00:15:42.780
<v Michael Kennedy>summarize documents, and automate workflows,

00:15:43.440 --> 00:15:44.520
<v Michael Kennedy>but they're missing one thing,

00:15:44.920 --> 00:15:46.380
<v Michael Kennedy>awareness of the world around them.

00:15:46.840 --> 00:15:49.160
<v Michael Kennedy>That's where today's sponsor, Xweather, comes in.

00:15:49.660 --> 00:16:00.820
<v Michael Kennedy>Xweather combines enterprise-grade weather intelligence with agent-ready APIs, natural language capabilities, and an MCP server built for tools like CLAUDE, Codex, Copilot, and modern IDEs.

00:16:01.320 --> 00:16:07.820
<v Michael Kennedy>So your agents can adapt workflows, automate responses, and make better decisions based on real-world conditions.

00:16:08.500 --> 00:16:12.400
<v Michael Kennedy>Backed by Vaisala, whose instruments fly on NASA missions to Mars,

00:16:12.900 --> 00:16:18.020
<v Michael Kennedy>XWeather delivers trusted data and unique insights that go beyond conditions to actual impact,

00:16:18.420 --> 00:16:21.420
<v Michael Kennedy>from real-time lightning strikes to road surface forecasts.

00:16:22.340 --> 00:16:27.240
<v Michael Kennedy>Start with 15,000 free API calls each month and pay only for what you use as you grow.

00:16:27.720 --> 00:16:30.780
<v Michael Kennedy>XWeather is your full weather stack for developers by developers.

00:16:31.360 --> 00:16:35.540
<v Michael Kennedy>Start building for free today at pythonbytes.fm/xweather.

00:16:35.920 --> 00:16:38.780
<v Michael Kennedy>The link is in your podcast player's show notes and on the episode page.

00:16:39.300 --> 00:16:41.700
<v Michael Kennedy>Thanks so much to Xweather for supporting Python Bytes.

00:16:42.660 --> 00:16:48.900
<v Calvin Hendryx-Parker>Well, Michael, would you love to understand your use of agents and LLMs a little deeper?

00:16:49.160 --> 00:16:54.700
<v Michael Kennedy>I will go as far as saying I have begun to understand it because of this.

00:16:55.800 --> 00:16:57.720
<v Michael Kennedy>It is amazing to tell people about it.

00:16:58.160 --> 00:16:59.280
<v Michael Kennedy>And it's thanks to you that I know about it.

00:16:59.290 --> 00:16:59.620
<v Michael Kennedy>So go ahead.

00:16:59.740 --> 00:16:59.860
<v Michael Kennedy>Yeah.

00:17:00.980 --> 00:17:04.160
<v Calvin Hendryx-Parker>This got mentioned to us last week in one of my meetings I was in.

00:17:04.230 --> 00:17:05.620
<v Calvin Hendryx-Parker>And I was like, that is really cool.

00:17:06.120 --> 00:17:14.459
<v Calvin Hendryx-Parker>So AgentsView is a Python app that can basically look through all your coding agent history and sessions across a couple different providers.

00:17:14.699 --> 00:17:19.120
<v Calvin Hendryx-Parker>So it works with OpenAI, Anthropic, and a couple others along the way.

00:17:19.540 --> 00:17:25.839
<v Calvin Hendryx-Parker>And give you, you can see here in the screenshot, a GitHub-like tracker of your activity.

00:17:26.520 --> 00:17:27.980
<v Calvin Hendryx-Parker>You can talk about top sessions.

00:17:29.280 --> 00:17:31.440
<v Calvin Hendryx-Parker>And this came up because we were talking about AI cost.

00:17:31.740 --> 00:17:40.940
<v Calvin Hendryx-Parker>And so if we're thinking about how much it costs to use the AI tooling right now, it's a lot of subscription based subsidization of these tools.

00:17:41.420 --> 00:17:49.620
<v Calvin Hendryx-Parker>But the time may come where you're paying per token and being able to visualize and analyze your usage may actually help you change your usage because you can't change what you don't measure.

00:17:50.100 --> 00:17:59.140
<v Calvin Hendryx-Parker>So once you start measuring things, you can actually make behavior changes to potentially actually make your AI workflow even more optimal.

00:17:59.400 --> 00:18:00.120
<v Calvin Hendryx-Parker>So it's kind of cool.

00:18:00.300 --> 00:18:03.300
<v Calvin Hendryx-Parker>It auto discovers those sessions on your session files on your machine.

00:18:04.100 --> 00:18:05.100
<v Calvin Hendryx-Parker>No configuration needed.

00:18:05.800 --> 00:18:08.100
<v Calvin Hendryx-Parker>Everything gets stored locally in a SQLite database.

00:18:08.380 --> 00:18:09.840
<v Calvin Hendryx-Parker>There's no cloud accounts.

00:18:10.260 --> 00:18:15.600
<v Calvin Hendryx-Parker>It does have an option to mirror into DuckDB or Postgres if you want to do more fancy things

00:18:15.820 --> 00:18:16.860
<v Calvin Hendryx-Parker>with your session data.

00:18:17.460 --> 00:18:23.360
<v Calvin Hendryx-Parker>It has this usage drop-in, which basically gets all the data, runs the reports, throws

00:18:23.410 --> 00:18:23.960
<v Calvin Hendryx-Parker>it up here.

00:18:24.300 --> 00:18:25.460
<v Calvin Hendryx-Parker>It works in a terminal as well.

00:18:25.580 --> 00:18:32.840
<v Calvin Hendryx-Parker>So this is just a web view of it, but you can actually see that, you know, actually here's a list of all the various coding agents that it's currently supporting.

00:18:33.060 --> 00:18:37.060
<v Calvin Hendryx-Parker>So if you're on AIDR or PI or you name it, there's a whole bunch in there.

00:18:37.360 --> 00:18:39.000
<v Michael Kennedy>There's so many there that I literally.

00:18:39.640 --> 00:18:40.780
<v Calvin Hendryx-Parker>I'm like, what is this one?

00:18:41.220 --> 00:18:43.300
<v Calvin Hendryx-Parker>Yeah, there's some things I don't even know, which is kind of cool.

00:18:43.660 --> 00:18:46.120
<v Calvin Hendryx-Parker>But you can use, I used uvx.

00:18:46.340 --> 00:18:48.800
<v Calvin Hendryx-Parker>So uvx agents view and you're on your way.

00:18:49.310 --> 00:18:51.460
<v Calvin Hendryx-Parker>It will literally download and install in a matter of seconds.

00:18:52.200 --> 00:18:56.100
<v Calvin Hendryx-Parker>You can have it give you preset reports out to the terminal, or you can say serve.

00:18:56.590 --> 00:19:00.140
<v Calvin Hendryx-Parker>And if you do the serve option, you can get a view like this.

00:19:00.190 --> 00:19:00.840
<v Calvin Hendryx-Parker>So this is mine.

00:19:01.920 --> 00:19:07.600
<v Calvin Hendryx-Parker>You can see here, I've gotten more and more intense on my AI agent usage.

00:19:08.080 --> 00:19:10.380
<v Calvin Hendryx-Parker>Now, this is just the coding agents, the local ones that I'm using.

00:19:10.920 --> 00:19:12.620
<v Calvin Hendryx-Parker>It does offer an interesting feature.

00:19:13.010 --> 00:19:18.460
<v Calvin Hendryx-Parker>I didn't show this off, but if you are looking at this, there's an MCP server.

00:19:18.900 --> 00:19:22.140
<v Calvin Hendryx-Parker>Have you ever wanted to query across all of your coding agent sessions?

00:19:22.440 --> 00:19:25.380
<v Calvin Hendryx-Parker>Say you're working on 10 projects and you want to ask a question like,

00:19:25.680 --> 00:19:28.540
<v Calvin Hendryx-Parker>have I ever solved this error before? Here is your answer.

00:19:29.340 --> 00:19:33.220
<v Calvin Hendryx-Parker>This is actually a more interesting use case than the token spend calculation

00:19:33.980 --> 00:19:36.540
<v Calvin Hendryx-Parker>is an aggregate view across many of your sessions.

00:19:36.700 --> 00:19:41.100
<v Calvin Hendryx-Parker>So you can actually leverage the knowledge you use to solve a problem in one place.

00:19:41.180 --> 00:19:42.980
<v Calvin Hendryx-Parker>You can now bring it in and solve it in another

00:19:43.420 --> 00:19:45.280
<v Calvin Hendryx-Parker>without having to reprompt or reinvent the wheel.

00:19:46.440 --> 00:19:48.540
<v Calvin Hendryx-Parker>You can also bring in your chat history.

00:19:48.840 --> 00:19:51.340
<v Calvin Hendryx-Parker>So if we go back over here to the chat import,

00:19:51.750 --> 00:19:54.900
<v Calvin Hendryx-Parker>you can import your Claude and your ChatGPT chat sessions.

00:19:55.510 --> 00:19:57.620
<v Calvin Hendryx-Parker>And so those may overlap or intertwine

00:19:57.710 --> 00:19:59.380
<v Calvin Hendryx-Parker>with the work you're doing on your agent.

00:19:59.510 --> 00:20:00.420
<v Calvin Hendryx-Parker>So now you can correlate

00:20:00.590 --> 00:20:02.600
<v Calvin Hendryx-Parker>and have those chat sessions alongside it.

00:20:03.100 --> 00:20:04.360
<v Calvin Hendryx-Parker>This is something I've wanted for ages

00:20:04.860 --> 00:20:07.040
<v Calvin Hendryx-Parker>is a multi-chat meta search

00:20:07.390 --> 00:20:08.860
<v Calvin Hendryx-Parker>because that's now kind of my brain

00:20:09.040 --> 00:20:11.660
<v Calvin Hendryx-Parker>is the history log on like perplexity

00:20:11.740 --> 00:20:12.980
<v Calvin Hendryx-Parker>and Claude and ChatGPT.

00:20:13.420 --> 00:20:14.840
<v Calvin Hendryx-Parker>And where did I discuss that last?

00:20:15.120 --> 00:20:16.320
<v Calvin Hendryx-Parker>Oh, it was over on ChatGPT.

00:20:16.320 --> 00:20:16.980
<v Calvin Hendryx-Parker>Yeah, that's super cool.

00:20:17.140 --> 00:20:18.040
<v Calvin Hendryx-Parker>Now I can pull that in.

00:20:18.500 --> 00:20:23.640
<v Calvin Hendryx-Parker>I don't think it supports perplexity just yet, which is kind of a need in my mind, because

00:20:23.700 --> 00:20:26.260
<v Calvin Hendryx-Parker>the perplexity sessions, as I found out, will expire.

00:20:26.760 --> 00:20:31.080
<v Calvin Hendryx-Parker>If you go back to some of that history far enough, you will find that it won't have your

00:20:31.580 --> 00:20:32.500
<v Calvin Hendryx-Parker>history actually there.

00:20:32.620 --> 00:20:33.580
<v Calvin Hendryx-Parker>It'll list it in the history.

00:20:33.980 --> 00:20:38.600
<v Calvin Hendryx-Parker>And but it's not so it's not the external brain that I thought it was.

00:20:39.000 --> 00:20:42.920
<v Calvin Hendryx-Parker>So a tool like this, actually, if you set up some tooling to import those chat histories

00:20:43.080 --> 00:20:46.999
<v Calvin Hendryx-Parker>in here might actually be a better solution because now you can search across multiple

00:20:47.020 --> 00:20:52.080
<v Calvin Hendryx-Parker>providers and keep all your own history local instead of relying on the cloud providers. So I

00:20:52.100 --> 00:20:57.280
<v Calvin Hendryx-Parker>really like that. It has the full text. You can optionally do semantic search. So again, if I come

00:20:57.280 --> 00:21:02.540
<v Calvin Hendryx-Parker>back in here to the pieces, I believe semantic search. Yeah, here we go. Semantic search. You

00:21:02.800 --> 00:21:09.740
<v Calvin Hendryx-Parker>basically can use a local like Olama or Olama CPP hosted embeddings models or OpenAI compatible

00:21:09.940 --> 00:21:15.559
<v Calvin Hendryx-Parker>endpoints and have a vector based search against all this too. So again, this is not out of the box

00:21:15.560 --> 00:21:21.700
<v Calvin Hendryx-Parker>on, but if you turn it on, you now kind of get super powered document semantic level search

00:21:22.000 --> 00:21:26.600
<v Calvin Hendryx-Parker>against those. So super fun, cool project. I think I'm going to double down a little more on this.

00:21:26.740 --> 00:21:29.780
<v Calvin Hendryx-Parker>There's some other projects in the community that are doing things like this, but this is one that

00:21:29.780 --> 00:21:34.400
<v Calvin Hendryx-Parker>was Python. So I thought it'd be very relevant to our audience. And I think it's actually a great

00:21:34.410 --> 00:21:39.820
<v Calvin Hendryx-Parker>way to kind of externalize your search history and how you're using the coding agents and how

00:21:39.830 --> 00:21:44.620
<v Michael Kennedy>you're solving problems. I think this is super neat. I'm glad you covered it. I'll tell you what,

00:21:44.680 --> 00:21:51.900
<v Michael Kennedy>a couple things one why search so bad in the ai things it's like searching searching and then it'll

00:21:52.000 --> 00:21:55.900
<v Michael Kennedy>pull up stuff you put two like you can't because they're not spending the tokens on embeddings this

00:21:55.920 --> 00:21:59.800
<v Calvin Hendryx-Parker>this allows you to spend your own tokens to get the embeddings that are missing from that that

00:21:59.980 --> 00:22:06.060
<v Michael Kennedy>equation right there michael interesting but even just like a Pagefind level sort of indexing

00:22:06.400 --> 00:22:12.299
<v Michael Kennedy>by the apps it's it's so bad so having a really nice search here and two i like to point out if

00:22:12.320 --> 00:22:18.340
<v Michael Kennedy>you do try this out in the top it says um agents view then you can pick by project it identifies

00:22:18.760 --> 00:22:23.880
<v Michael Kennedy>which projects that you're working on so you can drill down into just the python bytes website for

00:22:24.060 --> 00:22:28.380
<v Michael Kennedy>example whatever work i've done there i want to see the spend and the usage over time yeah the

00:22:28.560 --> 00:22:33.480
<v Michael Kennedy>history yep but it also has a drop down that initially says sessions and that's pretty

00:22:33.720 --> 00:22:38.739
<v Michael Kennedy>interesting that's the one you showed me but if you pick like usage you get some really interesting

00:22:38.760 --> 00:22:44.400
<v Michael Kennedy>things. For example, I have been setting up Hermes. I spoke about Hermes. It tells me how much I spent

00:22:44.560 --> 00:22:51.140
<v Michael Kennedy>last month. I spent 13.2 million output tokens and 4.4 million input tokens. That's on average,

00:22:51.440 --> 00:22:58.860
<v Michael Kennedy>$300. No, that's peak at $300 a day on average, 71. On setting up Hermes, I spent $577. I spent

00:22:59.040 --> 00:23:05.959
<v Michael Kennedy>507 on DocPython training doing some mega projects. I did this project that ran for five hours without

00:23:06.020 --> 00:23:13.380
<v Michael Kennedy>interruption. Wow. Which is crazy, but it came out really good. I spent 169 on Python bytes,

00:23:13.450 --> 00:23:17.000
<v Michael Kennedy>and I'll tell you what that is later. But that kind of stuff, there's just a whole bunch of

00:23:17.010 --> 00:23:22.040
<v Michael Kennedy>those different kinds of reports and trends and other things. And you can turn on this embedding

00:23:22.070 --> 00:23:26.280
<v Michael Kennedy>stuff that you talked about. So you can like AI search of your own content. Yeah, I came for the

00:23:26.420 --> 00:23:32.400
<v Calvin Hendryx-Parker>token cost, but I stayed for all the search and semanticness of it. Exactly. Exactly. All right.

00:23:32.460 --> 00:23:37.220
<v Michael Kennedy>I have another story to tell, and this one comes to us from AJ.

00:23:37.670 --> 00:23:39.420
<v Michael Kennedy>So let me get down to it.

00:23:40.320 --> 00:23:41.320
<v Michael Kennedy>Careful with the phishing, y'all.

00:23:41.760 --> 00:23:47.780
<v Michael Kennedy>So I thought I would retell his story because this is also pretty interesting

00:23:48.160 --> 00:23:51.320
<v Michael Kennedy>and give you all a little bit of a tip as well.

00:23:51.660 --> 00:23:57.760
<v Michael Kennedy>So AJ says, hey, I'm passing this along because it was a pretty sneaky bit of targeted phishing.

00:23:58.080 --> 00:24:05.680
<v Michael Kennedy>and sidebar, I think that the, all this AI stuff has absolutely exploded the amount of scammy,

00:24:06.160 --> 00:24:11.540
<v Michael Kennedy>crummy email out there. I get, I mean, I'll tell you, there's like four people a day that want to

00:24:11.560 --> 00:24:15.780
<v Michael Kennedy>buy Talk Python and they just, or they're going to help me raise a hundred million dollars. I'm like,

00:24:15.960 --> 00:24:19.260
<v Calvin Hendryx-Parker>just get away from me. You wouldn't believe how many times Gabrielle wants gift cards from me.

00:24:20.680 --> 00:24:27.800
<v Michael Kennedy>And it's an urgent, she's in an urgent meeting and she needs it now. Can't wait an hour. That

00:24:27.820 --> 00:24:33.060
<v Michael Kennedy>talk to me in person we gotta get going so anyway i think this is part of that obviously so it says

00:24:33.240 --> 00:24:38.680
<v Michael Kennedy>a targeted bit of sneaky phishing to do with GitHub and happened to play off an old interaction i had

00:24:38.680 --> 00:24:44.080
<v Michael Kennedy>with bandits repo so bandit is a ironically a security vulnerability scanning tool for python

00:24:45.320 --> 00:24:52.680
<v Michael Kennedy>and he had done some kind of pr or something like that and this person probably this ai found that

00:24:52.640 --> 00:24:58.740
<v Michael Kennedy>interaction and said, hey, we're going to like talk about that and leverage it and make it feel like

00:24:58.870 --> 00:25:03.180
<v Michael Kennedy>a real person who's really talking to you, right? So it says traditionally relative newbies like me

00:25:03.320 --> 00:25:06.860
<v Michael Kennedy>haven't been historically worth the effort, but you know what? When everything's automatic,

00:25:07.420 --> 00:25:14.400
<v Michael Kennedy>now it is. So I put the actual email in here and the subject is your bandit issue 3150.

00:25:15.440 --> 00:25:19.620
<v Michael Kennedy>Next token false positive just fixed that exact case, right? It's okay.

00:25:19.900 --> 00:25:26.480
<v Michael Kennedy>great yeah hey so and hey aj i saw your bandit issue such and such and da da da i built a

00:25:26.600 --> 00:25:31.500
<v Michael Kennedy>deterministic gate and it goes on and on about it or so you know could you just check out here's the

00:25:31.600 --> 00:25:37.700
<v Calvin Hendryx-Parker>here's the code that fixes it and you want to put that up on the screen michael oh have i oh i'm i do

00:25:39.380 --> 00:25:44.540
<v Michael Kennedy>yes you know what hold on it's it's not worth it the trouble to get over it's like kind of locked

00:25:44.560 --> 00:25:50.820
<v Michael Kennedy>away so sorry but it's basically it just says here's a link to yeah to the code right and i put

00:25:50.940 --> 00:25:54.600
<v Michael Kennedy>this is in the show notes curious whether this clears your problem or if it trips you up let me

00:25:54.700 --> 00:26:01.680
<v Michael Kennedy>know and it's that seems totally reasonable right but there's a few issues how long the code was

00:26:01.820 --> 00:26:09.440
<v Calvin Hendryx-Parker>at backtrace don't go there blacktrace don't click on these links some rando alphanumeric thing how

00:26:09.460 --> 00:26:12.000
<v Michael Kennedy>How long has backtrace.co been around?

00:26:13.140 --> 00:26:13.940
<v Michael Kennedy>Not very long.

00:26:14.540 --> 00:26:15.400
<v Michael Kennedy>Not very long at all.

00:26:16.320 --> 00:26:18.000
<v Michael Kennedy>So I actually threw this into Claude.

00:26:18.000 --> 00:26:22.200
<v Michael Kennedy>I said, Claude, I use Spark email, which is kind of a crappy email,

00:26:22.980 --> 00:26:23.940
<v Michael Kennedy>but it's the least crappy.

00:26:24.540 --> 00:26:25.400
<v Michael Kennedy>So you know what I mean?

00:26:26.320 --> 00:26:26.760
<v Michael Kennedy>Client.

00:26:27.140 --> 00:26:30.420
<v Michael Kennedy>But it has a really cool feature that for any email you get

00:26:30.430 --> 00:26:33.040
<v Michael Kennedy>or any email thread, you can say copy as markdown,

00:26:33.310 --> 00:26:35.560
<v Michael Kennedy>which is so perfect for just dropping.

00:26:36.020 --> 00:26:38.360
<v Michael Kennedy>Yeah, because you can just paste that into any AI thing.

00:26:38.540 --> 00:26:41.960
<v Michael Kennedy>go tell me about this or process this or whatever, you know?

00:26:42.300 --> 00:26:45.120
<v Michael Kennedy>And you could do like the whole thread or just the top level as a checkbox.

00:26:45.210 --> 00:26:45.660
<v Michael Kennedy>It's pretty sweet.

00:26:45.930 --> 00:26:47.260
<v Michael Kennedy>So I did that and I gave it a clod.

00:26:47.540 --> 00:26:51.340
<v Michael Kennedy>And it says, this message name drops enough real detail to feel legit,

00:26:51.500 --> 00:26:53.000
<v Michael Kennedy>but the structure is pure phishing.

00:26:53.520 --> 00:26:54.720
<v Michael Kennedy>And there's a couple of reasons.

00:26:55.100 --> 00:26:59.760
<v Michael Kennedy>So first of all, if you didn't look, it's actually a Gmail address being sent from.

00:27:00.040 --> 00:27:03.200
<v Michael Kennedy>Companies generally don't reach out from their Gmail, you know?

00:27:03.820 --> 00:27:04.820
<v Michael Kennedy>As gmail.com.

00:27:05.040 --> 00:27:05.120
<v Michael Kennedy>It's very sus.

00:27:05.420 --> 00:27:05.800
<v Michael Kennedy>Very sus.

00:27:06.240 --> 00:27:06.960
<v Michael Kennedy>That's very sus.

00:27:07.360 --> 00:27:08.500
<v Michael Kennedy>Over-specific targeting.

00:27:08.800 --> 00:27:11.480
<v Michael Kennedy>It mirrors AJ's exact public activity,

00:27:11.960 --> 00:27:13.360
<v Michael Kennedy>so it's just enough plausibility.

00:27:13.680 --> 00:27:15.580
<v Michael Kennedy>The entire payload is two links.

00:27:15.800 --> 00:27:17.640
<v Michael Kennedy>It stripped the technical flattery,

00:27:17.680 --> 00:27:20.360
<v Michael Kennedy>and it's just the paste is here, plus the results are here.

00:27:21.140 --> 00:27:22.380
<v Michael Kennedy>30 seconds, low friction.

00:27:22.820 --> 00:27:25.480
<v Michael Kennedy>A brand-new domain, blacktrace.co,

00:27:25.560 --> 00:27:28.760
<v Michael Kennedy>has no track record of existing, so that's also a sus.

00:27:29.560 --> 00:27:32.040
<v Michael Kennedy>Precise jargon that's vague, disalarmingly close.

00:27:32.200 --> 00:27:34.280
<v Michael Kennedy>Like, if this trip's on something of yours,

00:27:34.500 --> 00:27:36.780
<v Michael Kennedy>that'd be most useful reply, right?

00:27:36.880 --> 00:27:37.940
<v Michael Kennedy>like, hey, just check it out for me.

00:27:37.980 --> 00:27:39.440
<v Calvin Hendryx-Parker>It's a very legitimate looking email,

00:27:39.860 --> 00:27:42.400
<v Calvin Hendryx-Parker>especially given the cleanness of the domain name

00:27:42.640 --> 00:27:45.300
<v Calvin Hendryx-Parker>and the links are very clean and not messy.

00:27:45.620 --> 00:27:47.900
<v Calvin Hendryx-Parker>A lot of times these seem pretty obvious,

00:27:48.120 --> 00:27:49.380
<v Calvin Hendryx-Parker>but this one's really, really clean.

00:27:50.100 --> 00:27:52.340
<v Michael Kennedy>Yeah, so just be careful out there, folks.

00:27:53.040 --> 00:27:54.480
<v Calvin Hendryx-Parker>AJ was safe, but ugh.

00:27:54.840 --> 00:27:55.900
<v Calvin Hendryx-Parker>One we've been seeing,

00:27:56.390 --> 00:27:57.900
<v Calvin Hendryx-Parker>and we've not seen actively,

00:27:58.040 --> 00:27:59.460
<v Calvin Hendryx-Parker>but some people in the community have been seeing,

00:27:59.530 --> 00:28:02.360
<v Calvin Hendryx-Parker>is bogus people applying for jobs

00:28:02.620 --> 00:28:04.840
<v Calvin Hendryx-Parker>attempting to get you to click on their GitHub repositories

00:28:05.220 --> 00:28:07.260
<v Calvin Hendryx-Parker>to clone a repository.

00:28:07.490 --> 00:28:09.240
<v Calvin Hendryx-Parker>And it has obviously the hooks in it

00:28:09.380 --> 00:28:11.260
<v Calvin Hendryx-Parker>to do things on, you know,

00:28:11.600 --> 00:28:12.420
<v Calvin Hendryx-Parker>when things happen.

00:28:13.100 --> 00:28:14.560
<v Calvin Hendryx-Parker>So be careful if you're an employer

00:28:14.840 --> 00:28:16.140
<v Calvin Hendryx-Parker>and people are asking you

00:28:16.160 --> 00:28:17.340
<v Calvin Hendryx-Parker>to really download their work

00:28:17.720 --> 00:28:18.300
<v Calvin Hendryx-Parker>and check it out.

00:28:19.520 --> 00:28:19.860
<v Michael Kennedy>And reverse.

00:28:20.180 --> 00:28:21.720
<v Michael Kennedy>I've heard really bad stuff

00:28:22.000 --> 00:28:23.960
<v Michael Kennedy>from people who got lured

00:28:24.130 --> 00:28:25.540
<v Michael Kennedy>into applying for a fake job

00:28:25.690 --> 00:28:27.060
<v Michael Kennedy>and all the job was about

00:28:27.300 --> 00:28:28.120
<v Michael Kennedy>is like, just do this

00:28:28.600 --> 00:28:30.240
<v Michael Kennedy>take-home test coding example.

00:28:30.880 --> 00:28:32.180
<v Michael Kennedy>And here's the GitHub to get started.

00:28:32.960 --> 00:28:33.140
<v Michael Kennedy>Yep.

00:28:33.660 --> 00:28:35.860
<v Michael Kennedy>Just pay with all your Bitcoin and all your credentials.

00:28:36.080 --> 00:28:36.440
<v Michael Kennedy>It'll be fine.

00:28:36.840 --> 00:28:41.620
<v Calvin Hendryx-Parker>And they're preying on people who are looking for a job, maybe in a situation, any opportunity

00:28:41.800 --> 00:28:43.140
<v Calvin Hendryx-Parker>they're going to jump at.

00:28:43.320 --> 00:28:44.500
<v Calvin Hendryx-Parker>So just be careful.

00:28:44.920 --> 00:28:45.700
<v Calvin Hendryx-Parker>It's a good warning, Michael.

00:28:45.980 --> 00:28:46.460
<v Michael Kennedy>So shady.

00:28:46.820 --> 00:28:46.900
<v Michael Kennedy>Thanks.

00:28:47.080 --> 00:28:47.480
<v Michael Kennedy>Thanks, AJ.

00:28:47.860 --> 00:28:48.220
<v Michael Kennedy>All right.

00:28:48.620 --> 00:28:49.040
<v Michael Kennedy>Very good.

00:28:49.440 --> 00:28:49.660
<v Calvin Hendryx-Parker>Extra?

00:28:50.080 --> 00:28:50.280
<v Calvin Hendryx-Parker>Yep.

00:28:50.420 --> 00:28:50.800
<v Calvin Hendryx-Parker>Feeling extra?

00:28:50.800 --> 00:28:50.940
<v Calvin Hendryx-Parker>I do.

00:28:51.280 --> 00:28:55.860
<v Calvin Hendryx-Parker>So related to the Django post from earlier, DjangoCon US is coming right up.

00:28:56.060 --> 00:28:58.520
<v Calvin Hendryx-Parker>It's August 24th through the 28th in Chicago.

00:28:59.260 --> 00:29:02.880
<v Calvin Hendryx-Parker>I assume there are still tickets available because the registration is still up.

00:29:02.960 --> 00:29:06.780
<v Calvin Hendryx-Parker>but I think the hotel block closes the end of this week.

00:29:06.810 --> 00:29:08.540
<v Calvin Hendryx-Parker>So if you want to stay in the conference hotel

00:29:08.670 --> 00:29:09.440
<v Calvin Hendryx-Parker>at the discounted rate,

00:29:09.620 --> 00:29:10.740
<v Calvin Hendryx-Parker>which is a considerable discount

00:29:11.340 --> 00:29:12.660
<v Calvin Hendryx-Parker>for a downtown Chicago hotel,

00:29:13.340 --> 00:29:14.120
<v Calvin Hendryx-Parker>come check it out.

00:29:14.350 --> 00:29:15.660
<v Calvin Hendryx-Parker>It is a great conference.

00:29:15.880 --> 00:29:17.460
<v Calvin Hendryx-Parker>Tons of great content, great community.

00:29:18.360 --> 00:29:20.280
<v Calvin Hendryx-Parker>Actually last weekend I was at the Pi Ohio community

00:29:20.330 --> 00:29:21.700
<v Calvin Hendryx-Parker>and people were already talking and excited

00:29:21.940 --> 00:29:23.740
<v Calvin Hendryx-Parker>about going to DjangoCon as well.

00:29:23.980 --> 00:29:26.080
<v Calvin Hendryx-Parker>So the conferences like this

00:29:26.300 --> 00:29:27.860
<v Calvin Hendryx-Parker>are where you make great friends

00:29:28.100 --> 00:29:30.420
<v Calvin Hendryx-Parker>and you get to experience that community

00:29:30.620 --> 00:29:31.460
<v Calvin Hendryx-Parker>that everyone stayed for.

00:29:31.900 --> 00:29:33.740
<v Michael Kennedy>Yeah, and good connections too, right?

00:29:33.780 --> 00:29:34.400
<v Calvin Hendryx-Parker>Yeah, yeah.

00:29:34.620 --> 00:29:35.800
<v Michael Kennedy>Next time you run across somebody,

00:29:36.300 --> 00:29:37.740
<v Michael Kennedy>you're like, oh, actually met that person.

00:29:38.060 --> 00:29:39.380
<v Michael Kennedy>And yeah, it's good.

00:29:39.380 --> 00:29:41.800
<v Calvin Hendryx-Parker>Yeah, actually the other one I wanted to mention here

00:29:42.120 --> 00:29:44.040
<v Calvin Hendryx-Parker>is Ruff has made a new release.

00:29:44.600 --> 00:29:46.140
<v Calvin Hendryx-Parker>And it may not seem like an exciting release

00:29:46.340 --> 00:29:48.580
<v Calvin Hendryx-Parker>since it's 0.16.0, but watch out.

00:29:48.580 --> 00:29:49.720
<v Michael Kennedy>I'm still riding the zero for her.

00:29:50.460 --> 00:29:51.280
<v Calvin Hendryx-Parker>Still on the zero.

00:29:52.000 --> 00:29:55.560
<v Calvin Hendryx-Parker>The default rules went from 59 enabled

00:29:56.120 --> 00:29:59.040
<v Calvin Hendryx-Parker>to 413 rules enabled.

00:29:59.900 --> 00:30:01.160
<v Calvin Hendryx-Parker>So when you run this,

00:30:01.360 --> 00:30:02.720
<v Calvin Hendryx-Parker>you will see a lot of things,

00:30:03.260 --> 00:30:07.140
<v Calvin Hendryx-Parker>but it's all in the attempt to get us into a better spot.

00:30:07.580 --> 00:30:10.800
<v Calvin Hendryx-Parker>So much like the vibe coded security, vulnerability,

00:30:11.680 --> 00:30:12.360
<v Calvin Hendryx-Parker>searching and finding,

00:30:13.040 --> 00:30:15.060
<v Calvin Hendryx-Parker>this is going to help with keeping things clean

00:30:15.440 --> 00:30:18.860
<v Calvin Hendryx-Parker>and in order and readable and best practices

00:30:19.400 --> 00:30:21.140
<v Calvin Hendryx-Parker>and making sure you aren't doing something

00:30:21.280 --> 00:30:22.560
<v Calvin Hendryx-Parker>that's kind of on the edge case of even,

00:30:22.720 --> 00:30:24.420
<v Calvin Hendryx-Parker>this can be considered almost like a security,

00:30:24.550 --> 00:30:25.320
<v Calvin Hendryx-Parker>pre-security tool.

00:30:25.680 --> 00:30:26.360
<v Calvin Hendryx-Parker>So check that out,

00:30:26.410 --> 00:30:27.740
<v Calvin Hendryx-Parker>but be careful because it's going to give you,

00:30:27.780 --> 00:30:29.160
<v Michael Kennedy>it's going to yell at you a lot.

00:30:29.380 --> 00:30:30.960
<v Calvin Hendryx-Parker>It is absolutely going to.

00:30:31.300 --> 00:30:31.380
<v Michael Kennedy>Yes.

00:30:31.680 --> 00:30:31.740
<v Michael Kennedy>Yeah.

00:30:32.800 --> 00:30:35.480
<v Michael Kennedy>Eva out there says, I wonder what will make them break 1.0.

00:30:35.640 --> 00:30:35.740
<v Michael Kennedy>Yes.

00:30:36.240 --> 00:30:37.820
<v Calvin Hendryx-Parker>That's a good question.

00:30:37.870 --> 00:30:38.480
<v Calvin Hendryx-Parker>I don't know, but yeah.

00:30:41.520 --> 00:30:45.620
<v Michael Kennedy>I have been running, one of the core rules of all my agents and just before is I just,

00:30:45.700 --> 00:30:50.400
<v Michael Kennedy>I've been running Ruff format and ruff check on everything before I committed.

00:30:50.580 --> 00:30:50.920
<v Michael Kennedy>Every tool.

00:30:51.080 --> 00:30:51.480
<v Michael Kennedy>100%.

00:30:51.680 --> 00:30:51.740
<v Michael Kennedy>Yep.

00:30:52.080 --> 00:30:52.200
<v Michael Kennedy>Yep.

00:30:52.530 --> 00:30:52.620
<v Michael Kennedy>Yep.

00:30:52.840 --> 00:30:57.900
<v Michael Kennedy>And it's, once you get it, it's a pain at first, but once you spend a few hours, it's,

00:30:58.160 --> 00:30:59.660
<v Michael Kennedy>it's dialed in and it's, it's good.

00:30:59.840 --> 00:31:05.500
<v Michael Kennedy>The other one that I've been doing, keeping it in the astral OpenAI family, is ty.

00:31:06.070 --> 00:31:12.700
<v Michael Kennedy>So the biggest project, like the thing that ran for five hours was so much of Talk Python

00:31:12.940 --> 00:31:17.160
<v Michael Kennedy>training is built from, it's a 10-year project with 190,000 lines of Python, right?

00:31:17.180 --> 00:31:17.780
<v Michael Kennedy>It's a big project.

00:31:18.220 --> 00:31:19.980
<v Michael Kennedy>So at least for Michael, that's a big project.

00:31:20.720 --> 00:31:26.020
<v Michael Kennedy>So it was built under the PyCharm type checker, and I hadn't been running ty on.

00:31:26.020 --> 00:31:27.740
<v Michael Kennedy>I'd just been doing whatever the editor says.

00:31:27.750 --> 00:31:29.020
<v Michael Kennedy>And I'm like, well, let me run ty on.

00:31:29.080 --> 00:31:31.760
<v Michael Kennedy>It's like, oh my, 800 errors.

00:31:32.430 --> 00:31:36.180
<v Michael Kennedy>And you open it any other editor besides PyCharm and it's just full of red marks.

00:31:36.460 --> 00:31:40.020
<v Calvin Hendryx-Parker>It's like, oh man, I cannot deal.

00:31:40.030 --> 00:31:46.420
<v Michael Kennedy>I can't even look at the editor and tell if there's something wrong because it's so full of red marks because they apply different rules and different checks.

00:31:46.700 --> 00:31:52.220
<v Michael Kennedy>So I spent a long time with Fable just planning out of like, how are we going to resolve this?

00:31:52.330 --> 00:31:54.260
<v Michael Kennedy>Because it's not just change the types.

00:31:54.380 --> 00:31:56.760
<v Michael Kennedy>it's like, well, you have an optional thing coming in

00:31:56.790 --> 00:32:00.320
<v Michael Kennedy>and you didn't check if it's none before you operated on it.

00:32:00.420 --> 00:32:02.280
<v Michael Kennedy>So that's a attribute error, right?

00:32:02.640 --> 00:32:03.920
<v Michael Kennedy>So what do you do when it is none?

00:32:04.000 --> 00:32:05.980
<v Michael Kennedy>You've got to rewrite the code and have a different response.

00:32:06.100 --> 00:32:07.300
<v Michael Kennedy>So it's pretty complicated, right?

00:32:07.560 --> 00:32:11.140
<v Michael Kennedy>So I spent probably a couple of hours

00:32:11.570 --> 00:32:12.880
<v Michael Kennedy>building out a plan to solve this.

00:32:13.250 --> 00:32:15.500
<v Michael Kennedy>Then I just said, Opus, have at it.

00:32:16.320 --> 00:32:18.900
<v Michael Kennedy>Five hours later, it ran out of credits.

00:32:19.150 --> 00:32:21.820
<v Michael Kennedy>I had to come back in the middle of the day and go,

00:32:22.280 --> 00:32:23.900
<v Michael Kennedy>keep going, you have more credits now.

00:32:24.280 --> 00:32:26.000
<v Michael Kennedy>And then after dinner, it was done.

00:32:26.000 --> 00:32:28.360
<v Michael Kennedy>I'm like, oh my God, but zero, zero errors.

00:32:28.670 --> 00:32:29.640
<v Michael Kennedy>I mean, it's really nice.

00:32:29.780 --> 00:32:33.100
<v Michael Kennedy>Now I look at the page and if there's a squiggly, it means something, you know?

00:32:33.240 --> 00:32:33.360
<v Michael Kennedy>Yeah.

00:32:33.700 --> 00:32:37.320
<v Calvin Hendryx-Parker>Well, and one of the things that Ruff did in that new release is that when it encounters

00:32:37.650 --> 00:32:45.180
<v Calvin Hendryx-Parker>those errors or the rule breaking moments, it gives a in context description that is very

00:32:45.560 --> 00:32:46.720
<v Calvin Hendryx-Parker>AI LLM friendly.

00:32:47.060 --> 00:32:51.699
<v Calvin Hendryx-Parker>So these tools are designed to go back and forth with the LLMs in a very, very friendly

00:32:51.720 --> 00:32:56.780
<v Calvin Hendryx-Parker>way to be very productive as opposed to them having to do a lot of reasoning and token burn

00:32:57.060 --> 00:33:02.080
<v Calvin Hendryx-Parker>just to think about what's wrong it's it's trying to eliminate some of that token usage by giving

00:33:02.100 --> 00:33:06.740
<v Calvin Hendryx-Parker>the right pointers to the right tooling that's a super point a good point because otherwise it has

00:33:06.820 --> 00:33:11.420
<v Michael Kennedy>to try to infer what the what's going on x means yeah it's got to trace it back through the whole

00:33:11.560 --> 00:33:17.659
<v Michael Kennedy>program yeah i mean basically this is the compiler of yeah in a sense right this is like the compile

00:33:17.680 --> 00:33:19.760
<v Michael Kennedy>the build failed equivalent.

00:33:20.400 --> 00:33:20.480
<v Michael Kennedy>Yep.

00:33:20.720 --> 00:33:21.560
<v Michael Kennedy>And that's super cool.

00:33:21.700 --> 00:33:23.420
<v Michael Kennedy>One more real-time follow-up piece while we're here.

00:33:23.920 --> 00:33:24.500
<v Michael Kennedy>Brian Weber says,

00:33:24.760 --> 00:33:26.820
<v Michael Kennedy>wow, I had a similar experience about the phishing.

00:33:26.860 --> 00:33:28.440
<v Michael Kennedy>I just realized someone sent me an email

00:33:28.720 --> 00:33:31.200
<v Michael Kennedy>about an app they did replicating a repo I had,

00:33:31.340 --> 00:33:32.480
<v Michael Kennedy>and now the site is gone.

00:33:32.920 --> 00:33:33.280
<v Michael Kennedy>Hmm.

00:33:34.100 --> 00:33:34.320
<v Michael Kennedy>Hmm.

00:33:35.320 --> 00:33:37.500
<v Michael Kennedy>So I got, yeah, not great.

00:33:37.500 --> 00:33:38.500
<v Michael Kennedy>I got one more thing to say.

00:33:38.640 --> 00:33:40.700
<v Michael Kennedy>Here's like, not mega,

00:33:40.880 --> 00:33:43.040
<v Michael Kennedy>but I redesigned the whole homepage

00:33:43.600 --> 00:33:47.640
<v Michael Kennedy>and some other experiences on Python Pyce

00:33:47.660 --> 00:33:53.600
<v Michael Kennedy>the i like it and yeah it's got some really neat things here for people but most notably it has

00:33:53.740 --> 00:33:59.560
<v Michael Kennedy>like a little um technology parade so you want to learn about htmx or hnckai or fast api or django

00:33:59.950 --> 00:34:03.120
<v Michael Kennedy>click on that and that'll take you over to talk python training with just the course that we have

00:34:03.220 --> 00:34:09.580
<v Michael Kennedy>there so that's pretty fun and it has a find us on social with all of our links yeah really good

00:34:09.740 --> 00:34:16.100
<v Michael Kennedy>there as well as somewhere it has a subscribe dedicated subscribe page so if you want to get

00:34:16.120 --> 00:34:22.700
<v Michael Kennedy>in CastBox or Overcast or Radio Public or whatever. It's even YouTube and Spotify. So a couple extra

00:34:22.730 --> 00:34:27.440
<v Calvin Hendryx-Parker>nice things there. That's really cool. You need to add in a music assistant. Yes. Music assistant.

00:34:27.810 --> 00:34:34.820
<v Michael Kennedy>Okay. Will do. For those home assistant geeks out there. Music. Okay. Not only, not only do I think

00:34:35.020 --> 00:34:39.820
<v Michael Kennedy>I agree with you, that should be good. I'm now very interested and I'm, I'm, I'm here for it.

00:34:39.940 --> 00:34:44.220
<v Calvin Hendryx-Parker>Let's do it. Yeah. There's been a lot of it. Well, maybe next week I'll do some, some home assistant

00:34:44.220 --> 00:34:48.899
<v Calvin Hendryx-Parker>news because I feel like we have a lack of home assistant news here. We absolutely do. We absolutely

00:34:49.220 --> 00:34:54.460
<v Michael Kennedy>do have a lack of it. So for our joke, let's close it out here. All right. And I want to put you in

00:34:54.540 --> 00:34:59.720
<v Michael Kennedy>the right mood, the right state of mind here. So think about the Bobs in office space.

00:35:01.480 --> 00:35:06.780
<v Michael Kennedy>What would you say you do here, Michael? What exactly would you say we do here? Well,

00:35:07.300 --> 00:35:11.640
<v Michael Kennedy>remember when they're interviewing the project manager, Bob? So there's three Bobs. He goes,

00:35:11.740 --> 00:35:14.780
<v Michael Kennedy>what exactly would you say you do here, Bob?

00:35:15.040 --> 00:35:17.980
<v Michael Kennedy>I take the requirements from the people to the programmers.

00:35:18.460 --> 00:35:19.400
<v Michael Kennedy>I'm good with people.

00:35:20.120 --> 00:35:21.060
<v Michael Kennedy>I'm a people person.

00:35:21.520 --> 00:35:22.600
<v Michael Kennedy>I'm a people person.

00:35:22.710 --> 00:35:25.620
<v Michael Kennedy>That is really one of the best movies of all time.

00:35:25.840 --> 00:35:26.020
<v Michael Kennedy>It is.

00:35:26.020 --> 00:35:29.320
<v Michael Kennedy>If you haven't seen, not the series, the show, Office Space.

00:35:29.620 --> 00:35:29.760
<v Michael Kennedy>Yeah.

00:35:30.040 --> 00:35:30.400
<v Michael Kennedy>The movie.

00:35:30.700 --> 00:35:31.060
<v Calvin Hendryx-Parker>The movie.

00:35:31.420 --> 00:35:32.000
<v Michael Kennedy>Yes, the movie.

00:35:32.140 --> 00:35:36.640
<v Michael Kennedy>Okay, so here's the tweet or the X post or whatever you call it.

00:35:36.640 --> 00:35:38.840
<v Michael Kennedy>It says, to replace programmers with AI,

00:35:39.400 --> 00:35:43.360
<v Michael Kennedy>clients will need to accurately describe what they want. We're safe. Very true.

00:35:44.820 --> 00:35:46.620
<v Michael Kennedy>That probably hits closer home for you than,

00:35:46.960 --> 00:35:49.300
<v Calvin Hendryx-Parker>so one point. Yeah. I'm not worried.

00:35:49.660 --> 00:35:52.640
<v Calvin Hendryx-Parker>All this stuff is actually just making people do the thing we should have been

00:35:52.760 --> 00:35:53.700
<v Calvin Hendryx-Parker>doing in the beginning.

00:35:54.660 --> 00:35:55.760
<v Michael Kennedy>There's so much more planning.

00:35:56.180 --> 00:36:00.760
<v Michael Kennedy>There's so much more planning in documenting and writing down and history.

00:36:01.160 --> 00:36:03.000
<v Calvin Hendryx-Parker>It's going to be a wonderfully well-documented world now.

00:36:03.500 --> 00:36:05.380
<v Michael Kennedy>Exactly. That way when Skynet takes over,

00:36:05.480 --> 00:36:08.540
<v Michael Kennedy>it'll know that we were on its side so it won't put us into the worst prison.

00:36:10.940 --> 00:36:15.700
<v Michael Kennedy>no no i'm just kidding sky net a little more optimistic michael come on no i i really don't

00:36:15.760 --> 00:36:20.480
<v Michael Kennedy>think that oh oh i have i had a second joke from from the really quick before we run this out okay

00:36:20.640 --> 00:36:25.660
<v Michael Kennedy>so um for this i mean this could have been the joke it's probably should have been the joke check

00:36:25.720 --> 00:36:32.100
<v Michael Kennedy>this out check this out so this is no joke inside the financial times article there was a little

00:36:32.120 --> 00:36:39.760
<v Michael Kennedy>call out like recommended you might also like vibe coding is the new dyi who wrote it who wrote it

00:36:39.860 --> 00:36:47.040
<v Michael Kennedy>oh my god sarah o'connor wrote it sarah o'connor oh my god and she was the woman who was

00:36:47.260 --> 00:36:52.820
<v Michael Kennedy>the the star of the terminator series now i know it's sarah connor but she's trying to hide from

00:36:52.820 --> 00:36:56.560
<v Michael Kennedy>the ai's going by this byline like isn't that hilarious oh my gosh getting it

00:36:59.660 --> 00:37:05.700
<v Michael Kennedy>that's an unfortunate name for that article or the author yeah it's yeah it's kind of amazing

00:37:06.120 --> 00:37:09.840
<v Michael Kennedy>yep well done all right well thank you calvin always great to be here with us

00:37:10.120 --> 00:37:13.820
<v Calvin Hendryx-Parker>as always and thanks everyone for listening thanks michael talk to you next week yep bye

