WEBVTT

00:00:00.080 --> 00:00:04.720
<v Calvin Hendryx-Parker>Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to

00:00:04.720 --> 00:00:05.100
<v Calvin Hendryx-Parker>your earbuds.

00:00:05.460 --> 00:00:06.980
<v Calvin Hendryx-Parker>This is episode 503,

00:00:07.340 --> 00:00:09.500
<v Calvin Hendryx-Parker>recorded November 2nd, 2026.

00:00:09.880 --> 00:00:11.040
<v Calvin Hendryx-Parker>I'm Calvin Hendryx-Parker.

00:00:11.340 --> 00:00:12.060
<v Michael Kennedy>And I'm Michael Kennedy.

00:00:12.580 --> 00:00:13.540
<v Calvin Hendryx-Parker>Glad to have you here, Michael.

00:00:13.820 --> 00:00:16.860
<v Calvin Hendryx-Parker>We are supported today by us.

00:00:17.400 --> 00:00:18.360
<v Calvin Hendryx-Parker>So make sure you check out the

00:00:18.480 --> 00:00:22.000
<v Calvin Hendryx-Parker>awesome courses that Michael and team have done over on Talk Python.

00:00:22.200 --> 00:00:22.880
<v Calvin Hendryx-Parker>So check that out,

00:00:23.060 --> 00:00:23.820
<v Calvin Hendryx-Parker>talkpython.fm.

00:00:24.520 --> 00:00:28.800
<v Calvin Hendryx-Parker>And the fine folks at Six Feet Up. So I'm co-founder and CTO at Six Feet Up. We love

00:00:28.820 --> 00:00:33.640
<v Calvin Hendryx-Parker>solving hard problems. We have an incredible team and I'd love to talk to you about doing some

00:00:33.830 --> 00:00:34.520
<v Calvin Hendryx-Parker>awesome stuff together.

00:00:35.360 --> 00:00:39.120
<v Calvin Hendryx-Parker>Make sure you connect with both of us over on Mastodon Bluesky X and

00:00:39.280 --> 00:00:39.460
<v Calvin Hendryx-Parker>LinkedIn.

00:00:40.100 --> 00:00:42.800
<v Calvin Hendryx-Parker>And then the show is also on Mastodon Bluesky X.

00:00:43.270 --> 00:00:44.660
<v Calvin Hendryx-Parker>And you can join us for the live

00:00:44.840 --> 00:00:50.440
<v Calvin Hendryx-Parker>stream right here on YouTube each week at pythonbytes.fm/live. Be a part of that live

00:00:50.720 --> 00:00:50.800
<v Calvin Hendryx-Parker>audience.

00:00:50.960 --> 00:00:51.820
<v Calvin Hendryx-Parker>Normally we're on Tuesdays.

00:00:52.280 --> 00:00:54.680
<v Calvin Hendryx-Parker>Sometimes we record a little off schedule, but you'll always

00:00:54.580 --> 00:00:56.040
<v Calvin Hendryx-Parker>get a notification when we go live.

00:00:56.320 --> 00:01:00.100
<v Calvin Hendryx-Parker>And finally, if you want an artisanal handcrafted digest of each

00:01:00.420 --> 00:01:03.740
<v Calvin Hendryx-Parker>show's notes in an email form with added bonus material,

00:01:04.280 --> 00:01:05.260
<v Calvin Hendryx-Parker>add your name to our friends of the

00:01:05.300 --> 00:01:08.060
<v Calvin Hendryx-Parker>email show list and we'll never share it to anyone,

00:01:08.320 --> 00:01:10.460
<v Calvin Hendryx-Parker>but you'll get cool stuff from Michael and I.

00:01:10.740 --> 00:01:11.140
<v Calvin Hendryx-Parker>So Michael,

00:01:11.700 --> 00:01:12.420
<v Calvin Hendryx-Parker>speaking of languages.

00:01:12.760 --> 00:01:16.220
<v Michael Kennedy>What's cool, I'll tell you what, I've got some GitHub

00:01:16.880 --> 00:01:17.860
<v Michael Kennedy>knowledge to drop here.

00:01:18.120 --> 00:01:19.280
<v Michael Kennedy>So I've been working on this project.

00:01:19.440 --> 00:01:21.160
<v Michael Kennedy>I announced it last week, I believe

00:01:21.160 --> 00:01:27.840
<v Michael Kennedy>it was my rust dot my chameleon dash rs the chameleon language re-implemented in rust which is

00:01:28.260 --> 00:01:34.600
<v Michael Kennedy>so super fast and is actually foreshadowing just something that is a building block for something

00:01:34.630 --> 00:01:40.900
<v Michael Kennedy>to come bigger it's just the bigger thing as well go over there and star his work yeah thanks and

00:01:41.020 --> 00:01:44.020
<v Michael Kennedy>but one of the things that really bugged me is i was over there and i'm looking at it let's see can

00:01:44.020 --> 00:01:49.440
<v Michael Kennedy>i find it here so i was over here looking at it and you scroll down what i don't know do you do this

00:01:49.560 --> 00:01:50.480
<v Michael Kennedy>Calvin, I do this a lot.

00:01:50.550 --> 00:01:51.560
<v Michael Kennedy>Like I'll go to the project.

00:01:51.760 --> 00:01:51.980
<v Michael Kennedy>I will.

00:01:52.620 --> 00:01:53.260
<v Michael Kennedy>Interesting project.

00:01:53.450 --> 00:01:54.240
<v Michael Kennedy>What is it made from?

00:01:54.330 --> 00:01:56.280
<v Michael Kennedy>And I'll look in the language down here in this section,

00:01:56.440 --> 00:01:56.520
<v Michael Kennedy>right?

00:01:56.840 --> 00:01:57.000
<v Michael Kennedy>Well,

00:01:57.240 --> 00:01:58.640
<v Michael Kennedy>until two days ago,

00:01:58.860 --> 00:01:59.300
<v Michael Kennedy>three days ago,

00:01:59.780 --> 00:02:00.160
<v Michael Kennedy>until recently,

00:02:00.560 --> 00:02:02.640
<v Michael Kennedy>it said it was 85% HTML.

00:02:02.730 --> 00:02:03.040
<v Michael Kennedy>I'm like,

00:02:03.300 --> 00:02:03.400
<v Michael Kennedy>nah,

00:02:04.020 --> 00:02:04.360
<v Michael Kennedy>that ain't right.

00:02:04.900 --> 00:02:05.200
<v Michael Kennedy>This is,

00:02:05.440 --> 00:02:06.480
<v Michael Kennedy>how am I going to fix this?

00:02:06.580 --> 00:02:07.320
<v Michael Kennedy>Well, why did it say that?

00:02:07.350 --> 00:02:11.020
<v Michael Kennedy>It said that because I have my site,

00:02:11.460 --> 00:02:13.780
<v Michael Kennedy>which is built by the great, great docs,

00:02:14.140 --> 00:02:14.420
<v Michael Kennedy>but it's

00:02:14.420 --> 00:02:15.980
<v Michael Kennedy>just a static site content.

00:02:16.380 --> 00:02:18.760
<v Michael Kennedy>And sure, I could have a separate repo with the docs,

00:02:19.000 --> 00:02:20.380
<v Michael Kennedy>but I'd rather have it all in one place,

00:02:20.620 --> 00:02:20.720
<v Michael Kennedy>right?

00:02:20.860 --> 00:02:23.080
<v Michael Kennedy>At least for this project, it's kind of a monorepo,

00:02:23.260 --> 00:02:23.320
<v Michael Kennedy>right?

00:02:23.400 --> 00:02:24.340
<v Michael Kennedy>I write the code.

00:02:24.440 --> 00:02:25.140
<v Michael Kennedy>I build the docs.

00:02:25.240 --> 00:02:26.080
<v Michael Kennedy>I ship them up.

00:02:26.280 --> 00:02:33.980
<v Michael Kennedy>I ship the site section over to a static site where you can find somewhere you can find all the docs.

00:02:34.500 --> 00:02:34.580
<v Michael Kennedy>Anyway,

00:02:35.080 --> 00:02:37.540
<v Michael Kennedy>you can find basically the great docs docs page,

00:02:37.940 --> 00:02:38.020
<v Michael Kennedy>right?

00:02:38.160 --> 00:02:39.000
<v Michael Kennedy>So that was my problem.

00:02:39.040 --> 00:02:40.420
<v Michael Kennedy>I want those things in the repo,

00:02:40.880 --> 00:02:45.300
<v Michael Kennedy>but it really bugs me that 85% of my project is reported as HTML.

00:02:45.440 --> 00:02:47.460
<v Michael Kennedy>and a good chunk of it's reported as Python

00:02:47.700 --> 00:02:48.800
<v Michael Kennedy>when it's actually not.

00:02:49.040 --> 00:02:49.680
<v Calvin Hendryx-Parker>I've seen this before.

00:02:49.910 --> 00:02:52.620
<v Calvin Hendryx-Parker>Like I go look at a project and it's 60% CSS.

00:02:53.220 --> 00:02:53.700
<v Michael Kennedy>Yes, exactly.

00:02:54.100 --> 00:02:54.460
<v Michael Kennedy>No,

00:02:54.780 --> 00:02:55.320
<v Michael Kennedy>no, it's not.

00:02:55.560 --> 00:02:58.160
<v Michael Kennedy>It just has a one megabyte CSS thing that's like

00:02:58.440 --> 00:02:58.660
<v Calvin Hendryx-Parker>Ginomous

00:02:58.660 --> 00:02:59.940
<v Calvin Hendryx-Parker>fine work like stuffed in there.

00:03:00.240 --> 00:03:00.520
<v Michael Kennedy>So there's

00:03:00.520 --> 00:03:01.460
<v Michael Kennedy>actually a really nice fix.

00:03:01.780 --> 00:03:02.540
<v Michael Kennedy>And I wrote

00:03:02.540 --> 00:03:03.100
<v Michael Kennedy>about it. So I'm

00:03:03.100 --> 00:03:05.580
<v Michael Kennedy>linking to this blog post that I wrote, but I wrote

00:03:05.580 --> 00:03:07.000
<v Michael Kennedy>about it specifically so I could

00:03:07.000 --> 00:03:08.300
<v Michael Kennedy>share it on the show here. I'm just

00:03:08.300 --> 00:03:10.340
<v Michael Kennedy>like, I got to write it down somewhere so people have

00:03:10.340 --> 00:03:11.000
<v Michael Kennedy>like the steps,

00:03:11.180 --> 00:03:11.440
<v Michael Kennedy>you know, I don't

00:03:11.440 --> 00:03:12.240
<v Michael Kennedy>want to just describe it.

00:03:12.480 --> 00:03:12.540
<v Michael Kennedy>All right,

00:03:12.630 --> 00:03:13.640
<v Michael Kennedy>so what there is, is there's

00:03:13.640 --> 00:03:15.420
<v Michael Kennedy>a.get attributes thing

00:03:15.440 --> 00:03:16.160
<v Michael Kennedy>put in your GitHub,

00:03:16.620 --> 00:03:18.360
<v Michael Kennedy>a .gitignore, but this is the.git attributes.

00:03:18.540 --> 00:03:19.700
<v Michael Kennedy>And you can use it to configure

00:03:20.020 --> 00:03:26.500
<v Michael Kennedy>GitHub and Git in different ways. So over in Git, there's this thing called Linguist,

00:03:26.740 --> 00:03:27.280
<v Michael Kennedy>which is their

00:03:28.100 --> 00:03:30.140
<v Michael Kennedy>library language detection tool.

00:03:30.440 --> 00:03:32.620
<v Michael Kennedy>And you can speak to it through this Git attributes.

00:03:33.100 --> 00:03:33.600
<v Michael Kennedy>So what you can

00:03:33.680 --> 00:03:33.980
<v Michael Kennedy>say is,

00:03:34.360 --> 00:03:34.860
<v Michael Kennedy>you can say,

00:03:35.360 --> 00:03:37.100
<v Michael Kennedy>just like a Git ignore file, you would say,

00:03:37.580 --> 00:03:38.240
<v Michael Kennedy>ignore this folder,

00:03:38.400 --> 00:03:38.980
<v Michael Kennedy>right? Like temp

00:03:40.380 --> 00:03:40.820
<v Michael Kennedy>forward slash.

00:03:41.560 --> 00:03:43.140
<v Michael Kennedy>Dog is very excited about Git ignore.

00:03:43.340 --> 00:03:44.860
<v Michael Kennedy>But Git dog, this is not Git ignore,

00:03:44.960 --> 00:03:45.480
<v Michael Kennedy>Why does it get attributes?

00:03:46.459 --> 00:03:49.860
<v Michael Kennedy>So what you do is you do like a .gitignore type of statement,

00:03:50.200 --> 00:03:50.740
<v Michael Kennedy>like an expression,

00:03:50.980 --> 00:03:51.040
<v Michael Kennedy>and

00:03:51.040 --> 00:03:52.320
<v Michael Kennedy>then you put this after it.

00:03:52.320 --> 00:03:54.040
<v Michael Kennedy>So you would say linguist generated,

00:03:54.600 --> 00:03:56.320
<v Michael Kennedy>and that marks that is build output.

00:03:56.800 --> 00:04:00.220
<v Michael Kennedy>So it doesn't just remove it from that calculation in the bottom.

00:04:00.620 --> 00:04:01.040
<v Michael Kennedy>In fact,

00:04:01.240 --> 00:04:05.620
<v Michael Kennedy>what it does is it also collapses all the diffs in PRs.

00:04:06.040 --> 00:04:07.260
<v Michael Kennedy>So I think that's pretty cool.

00:04:07.680 --> 00:04:10.400
<v Michael Kennedy>If not only do you not have to look at it, you don't see like,

00:04:10.700 --> 00:04:11.920
<v Michael Kennedy>yeah, this is a 7 billion

00:04:12.180 --> 00:04:14.440
<v Michael Kennedy>line diff because you rebuilt the docs.

00:04:14.860 --> 00:04:14.960
<v Calvin Hendryx-Parker>Yeah.

00:04:15.240 --> 00:04:17.140
<v Calvin Hendryx-Parker>No, I like the fact that you can speak to it from,

00:04:17.380 --> 00:04:19.660
<v Calvin Hendryx-Parker>can get more accurate results on it.

00:04:19.880 --> 00:04:20.299
<v Calvin Hendryx-Parker>Because like you said,

00:04:20.459 --> 00:04:25.360
<v Calvin Hendryx-Parker>it could be really minimal rust in the end to get the same effect and you

00:04:25.760 --> 00:04:26.660
<v Calvin Hendryx-Parker>wouldn't really be showcased.

00:04:27.020 --> 00:04:30.380
<v Michael Kennedy>Right. Or maybe you have a ton of unit tests on top of it and you

00:04:30.500 --> 00:04:34.420
<v Michael Kennedy>don't want to say, well, my project is really the unit test. No, you want it to be the library. It

00:04:34.460 --> 00:04:35.680
<v Michael Kennedy>just happens to have unit tests.

00:04:36.000 --> 00:04:38.600
<v Michael Kennedy>So one thing I did for Chameleon is I wanted to make sure that

00:04:38.620 --> 00:04:41.760
<v Michael Kennedy>the Chameleon RS is identical to what,

00:04:42.040 --> 00:04:44.380
<v Michael Kennedy>if somebody adopts it, it's identical to what they used before.

00:04:44.520 --> 00:04:45.660
<v Michael Kennedy>We're not similar.

00:04:46.220 --> 00:04:46.760
<v Michael Kennedy>Byte for byte,

00:04:47.000 --> 00:04:47.200
<v Michael Kennedy>identical.

00:04:47.960 --> 00:04:48.900
<v Michael Kennedy>That means the unit tests.

00:04:48.950 --> 00:04:50.300
<v Michael Kennedy>That means the bytes that come out.

00:04:50.320 --> 00:04:50.500
<v Michael Kennedy>And so on.

00:04:50.570 --> 00:04:52.760
<v Michael Kennedy>So what I did is I vendored into the repo,

00:04:53.120 --> 00:04:54.240
<v Michael Kennedy>not the library, but the repo,

00:04:54.640 --> 00:04:55.600
<v Michael Kennedy>all the tests that

00:04:55.780 --> 00:04:57.380
<v Michael Kennedy>came with Chameleon originally.

00:04:57.580 --> 00:04:58.060
<v Michael Kennedy>But guess what?

00:04:58.140 --> 00:05:00.480
<v Michael Kennedy>That means, oh, you got a whole ton of Python tests.

00:05:00.510 --> 00:05:01.000
<v Michael Kennedy>Like, well,

00:05:01.560 --> 00:05:01.820
<v Michael Kennedy>yes,

00:05:02.340 --> 00:05:03.860
<v Michael Kennedy>but I can say linguist vendored.

00:05:04.010 --> 00:05:06.180
<v Michael Kennedy>And that also makes it stay out of the stats.

00:05:06.660 --> 00:05:07.440
<v Michael Kennedy>But it tells it like,

00:05:07.620 --> 00:05:08.080
<v Michael Kennedy>this is actually,

00:05:08.610 --> 00:05:10.200
<v Michael Kennedy>you might want to see this in a Git diff,

00:05:10.640 --> 00:05:11.460
<v Michael Kennedy>but it's

00:05:11.660 --> 00:05:13.260
<v Michael Kennedy>brought in from something else and it doesn't count.

00:05:13.520 --> 00:05:15.280
<v Michael Kennedy>Like that might apply to your CSS example.

00:05:15.360 --> 00:05:15.860
<v Michael Kennedy>You know what I mean?

00:05:16.120 --> 00:05:16.300
<v Calvin Hendryx-Parker>Well,

00:05:16.620 --> 00:05:17.000
<v Calvin Hendryx-Parker>every time.

00:05:17.400 --> 00:05:18.260
<v Michael Kennedy>You can also do docs.

00:05:18.780 --> 00:05:19.600
<v Michael Kennedy>Like in my example,

00:05:20.120 --> 00:05:23.160
<v Michael Kennedy>there's a docs folder that is at the source for great docs.

00:05:23.580 --> 00:05:25.300
<v Michael Kennedy>And then there's the compiled output,

00:05:25.520 --> 00:05:26.580
<v Michael Kennedy>which is the great doc site.

00:05:26.900 --> 00:05:31.380
<v Michael Kennedy>So I should probably put this on documentation to say like, this is actually not HTML that

00:05:31.600 --> 00:05:31.720
<v Michael Kennedy>counts.

00:05:31.800 --> 00:05:33.360
<v Michael Kennedy>This is HTML just for documentation.

00:05:33.800 --> 00:05:34.700
<v Michael Kennedy>And you can also just say,

00:05:35.020 --> 00:05:35.460
<v Michael Kennedy>don't count this,

00:05:35.640 --> 00:05:35.720
<v Michael Kennedy>right?

00:05:36.060 --> 00:05:36.700
<v Michael Kennedy>Detectable is false.

00:05:37.160 --> 00:05:42.559
<v Michael Kennedy>So I put some examples like site slash star star is linguist generated and test upstream

00:05:42.580 --> 00:05:44.240
<v Michael Kennedy>star stars linguist vendor.

00:05:44.460 --> 00:05:45.140
<v Calvin Hendryx-Parker>Isn't that cool?

00:05:45.440 --> 00:05:47.580
<v Calvin Hendryx-Parker>Yeah, it's really cool. But can you get those stats

00:05:47.820 --> 00:05:50.860
<v Calvin Hendryx-Parker>separate now from the ones about your actual project?

00:05:51.290 --> 00:05:52.380
<v Calvin Hendryx-Parker>Or did it just completely ignored?

00:05:52.700 --> 00:05:56.800
<v Michael Kennedy>That's an interesting question. There is a CLI you can run to actually get it to tell you what

00:05:56.980 --> 00:05:58.980
<v Michael Kennedy>linguist thinks. I'm pretty sure playing with that.

00:05:59.750 --> 00:06:00.680
<v Michael Kennedy>But I think,

00:06:00.900 --> 00:06:00.980
<v Michael Kennedy>yeah,

00:06:01.200 --> 00:06:01.260
<v Michael Kennedy>yeah,

00:06:01.420 --> 00:06:01.880
<v Michael Kennedy>here it is actually.

00:06:02.070 --> 00:06:03.100
<v Michael Kennedy>Git check adder,

00:06:03.620 --> 00:06:04.700
<v Michael Kennedy>linguist generated,

00:06:05.100 --> 00:06:06.080
<v Michael Kennedy>linguist detectable.

00:06:06.600 --> 00:06:08.499
<v Michael Kennedy>So you could probably put the flags

00:06:08.840 --> 00:06:09.180
<v Michael Kennedy>in here.

00:06:09.440 --> 00:06:10.400
<v Calvin Hendryx-Parker>And then you can report on it.

00:06:10.560 --> 00:06:11.240
<v Michael Kennedy>Yeah, see what it says.

00:06:11.580 --> 00:06:11.680
<v Calvin Hendryx-Parker>Nice.

00:06:11.900 --> 00:06:15.560
<v Michael Kennedy>So now my project is 61% Rust

00:06:15.820 --> 00:06:16.200
<v Michael Kennedy>and 40,

00:06:16.420 --> 00:06:16.620
<v Michael Kennedy>sorry,

00:06:16.820 --> 00:06:18.020
<v Michael Kennedy>30% Python.

00:06:18.440 --> 00:06:18.900
<v Calvin Hendryx-Parker>I like that.

00:06:19.120 --> 00:06:20.980
<v Calvin Hendryx-Parker>And it's kind of more of a truth in advertising.

00:06:21.300 --> 00:06:21.380
<v Calvin Hendryx-Parker>It's

00:06:21.520 --> 00:06:22.240
<v Calvin Hendryx-Parker>actually a Rust project.

00:06:22.580 --> 00:06:22.900
<v Michael Kennedy>Yeah.

00:06:23.100 --> 00:06:26.500
<v Michael Kennedy>I think it's a little bit more Python than it. I think the bar,

00:06:26.540 --> 00:06:28.860
<v Michael Kennedy>the language bar is a little bit over reporting still.

00:06:29.020 --> 00:06:30.420
<v Michael Kennedy>There might be like some utilities and

00:06:30.540 --> 00:06:34.500
<v Michael Kennedy>stuff that really don't count, but you know what? It's close enough. It's not 85% HTML.

00:06:34.840 --> 00:06:36.280
<v Calvin Hendryx-Parker>Right. That's the important part.

00:06:37.660 --> 00:06:38.700
<v Michael Kennedy>That was what I'm going for.

00:06:38.780 --> 00:06:40.100
<v Michael Kennedy>And it's in the ballpark.

00:06:40.460 --> 00:06:41.560
<v Calvin Hendryx-Parker>HTML is a programming language.

00:06:41.980 --> 00:06:44.020
<v Michael Kennedy>I know. And CSS is as well.

00:06:44.180 --> 00:06:47.800
<v Michael Kennedy>I cannot stand these developer surveys that are like,

00:06:48.220 --> 00:06:50.460
<v Michael Kennedy>guess what the three most popular languages are?

00:06:51.100 --> 00:06:52.000
<v Calvin Hendryx-Parker>It's JavaScript,

00:06:52.460 --> 00:06:54.040
<v Michael Kennedy>C++,

00:06:54.440 --> 00:06:54.900
<v Michael Kennedy>and CSS.

00:06:55.140 --> 00:06:57.140
<v Michael Kennedy>You're like, CSS is not a...

00:06:57.340 --> 00:07:01.220
<v Michael Kennedy>It may be Turing complete, but no one is shipping a dedicated standalone app in CSS.

00:07:01.480 --> 00:07:02.560
<v Michael Kennedy>So no, it's out.

00:07:02.880 --> 00:07:03.140
<v Calvin Hendryx-Parker>Right.

00:07:03.400 --> 00:07:04.080
<v Michael Kennedy>Yeah, I don't know.

00:07:04.240 --> 00:07:05.100
<v Michael Kennedy>I mean, I guess that makes sense.

00:07:05.130 --> 00:07:05.620
<v Michael Kennedy>It appears,

00:07:05.820 --> 00:07:06.180
<v Michael Kennedy>but still.

00:07:06.420 --> 00:07:08.640
<v Michael Kennedy>Anyway, this is a kind of a cool trick that you can find.

00:07:08.670 --> 00:07:10.420
<v Michael Kennedy>So I wrote this up and gave people details

00:07:10.570 --> 00:07:11.420
<v Michael Kennedy>so they can just follow along.

00:07:11.560 --> 00:07:11.780
<v Calvin Hendryx-Parker>Nice.

00:07:11.830 --> 00:07:12.880
<v Calvin Hendryx-Parker>We'll go update your metadata

00:07:13.720 --> 00:07:15.740
<v Calvin Hendryx-Parker>and that I'll put into your repositories.

00:07:15.940 --> 00:07:16.440
<v Calvin Hendryx-Parker>That's super cool.

00:07:16.760 --> 00:07:16.820
<v Michael Kennedy>Yeah.

00:07:16.960 --> 00:07:20.180
<v Calvin Hendryx-Parker>Speaking of metadata and tooling,

00:07:20.700 --> 00:07:22.980
<v Calvin Hendryx-Parker>the Python typing survey for 2026

00:07:23.480 --> 00:07:24.540
<v Calvin Hendryx-Parker>has released its findings.

00:07:24.840 --> 00:07:29.080
<v Calvin Hendryx-Parker>So the groups involved here were Meta, JetBrains,

00:07:29.680 --> 00:07:29.800
<v Calvin Hendryx-Parker>Microsoft,

00:07:30.300 --> 00:07:33.080
<v Calvin Hendryx-Parker>and Astral were behind getting this.

00:07:33.220 --> 00:07:35.640
<v Calvin Hendryx-Parker>they had about 18, almost 1800 results,

00:07:36.440 --> 00:07:37.860
<v Calvin Hendryx-Parker>responses to the survey itself.

00:07:38.280 --> 00:07:40.260
<v Calvin Hendryx-Parker>And so you can come here to the Facebook

00:07:40.580 --> 00:07:42.340
<v Calvin Hendryx-Parker>or the meta engineering page.

00:07:42.480 --> 00:07:44.540
<v Calvin Hendryx-Parker>They've got a breakdown of what they saw.

00:07:44.840 --> 00:07:46.640
<v Calvin Hendryx-Parker>What's interesting is that the typing

00:07:46.920 --> 00:07:50.260
<v Calvin Hendryx-Parker>for the last three years that they've done the survey

00:07:50.780 --> 00:07:51.860
<v Calvin Hendryx-Parker>has stayed pretty stable, you know,

00:07:51.900 --> 00:07:57.120
<v Calvin Hendryx-Parker>between kind of 88% and 85.5% of folks are basically

00:07:57.840 --> 00:07:59.600
<v Calvin Hendryx-Parker>who responded are using type checkers,

00:07:59.780 --> 00:08:00.960
<v Calvin Hendryx-Parker>type hints in their code.

00:08:01.280 --> 00:08:03.180
<v Calvin Hendryx-Parker>The thing that's not stable is actually

00:08:03.200 --> 00:08:04.960
<v Calvin Hendryx-Parker>checker they're using that has been changing.

00:08:05.240 --> 00:08:07.880
<v Calvin Hendryx-Parker>So there's some obvious new folks on the scene,

00:08:08.200 --> 00:08:09.780
<v Calvin Hendryx-Parker>like a Ty from Astral.

00:08:10.260 --> 00:08:11.760
<v Calvin Hendryx-Parker>And then there's some folks who've been around a while,

00:08:12.020 --> 00:08:12.420
<v Calvin Hendryx-Parker>quite a while,

00:08:12.600 --> 00:08:14.060
<v Calvin Hendryx-Parker>like the Microsoft ones

00:08:14.240 --> 00:08:16.840
<v Calvin Hendryx-Parker>and the JetBrains groups too.

00:08:17.360 --> 00:08:20.580
<v Calvin Hendryx-Parker>So there's also the thing is that a lot of people

00:08:20.620 --> 00:08:23.800
<v Calvin Hendryx-Parker>are running more than one type checker at a time.

00:08:24.120 --> 00:08:26.060
<v Calvin Hendryx-Parker>So a lot of times it depends on what framework

00:08:26.180 --> 00:08:26.980
<v Calvin Hendryx-Parker>they're using at what time,

00:08:27.340 --> 00:08:29.880
<v Calvin Hendryx-Parker>what's what's used in CI versus what's used in their IDE.

00:08:30.280 --> 00:08:31.940
<v Calvin Hendryx-Parker>And if two people are using two different IDEs,

00:08:32.500 --> 00:08:34.120
<v Calvin Hendryx-Parker>One of them might have the one that just kind of comes out

00:08:34.140 --> 00:08:37.140
<v Calvin Hendryx-Parker>of the box with a VS Code and other people might be using

00:08:37.159 --> 00:08:38.000
<v Calvin Hendryx-Parker>the one that they're,

00:08:38.240 --> 00:08:39.039
<v Calvin Hendryx-Parker>you know, their preferences.

00:08:39.440 --> 00:08:41.780
<v Calvin Hendryx-Parker>And another one that happens to here is people who are

00:08:41.880 --> 00:08:45.320
<v Calvin Hendryx-Parker>getting the checker run automatically because they're

00:08:45.440 --> 00:08:48.580
<v Calvin Hendryx-Parker>using some kind of agentic harness to run the code too.

00:08:49.020 --> 00:08:50.360
<v Calvin Hendryx-Parker>So there's a lot going on there.

00:08:50.640 --> 00:08:51.500
<v Calvin Hendryx-Parker>And so in 2025,

00:08:52.240 --> 00:08:53.780
<v Calvin Hendryx-Parker>46% had two or more checkers.

00:08:54.260 --> 00:08:55.920
<v Calvin Hendryx-Parker>And now that's up to like,

00:08:56.120 --> 00:08:59.120
<v Calvin Hendryx-Parker>I think 56% or no 49%.

00:08:59.220 --> 00:09:02.460
<v Calvin Hendryx-Parker>So it's just bumped up almost to 50% at this point

00:09:02.480 --> 00:09:04.920
<v Calvin Hendryx-Parker>who are running more or one checker at a time.

00:09:05.340 --> 00:09:06.780
<v Calvin Hendryx-Parker>What else got reported here?

00:09:07.460 --> 00:09:08.360
<v Calvin Hendryx-Parker>If you read through

00:09:08.360 --> 00:09:08.780
<v Calvin Hendryx-Parker>the report,

00:09:09.160 --> 00:09:12.980
<v Calvin Hendryx-Parker>there's a lot of sections where people had kind of freeform typed in what they thought

00:09:13.020 --> 00:09:15.700
<v Calvin Hendryx-Parker>their responses or what their responses were to these pieces.

00:09:16.360 --> 00:09:19.020
<v Calvin Hendryx-Parker>A lot of folks I think are upset with

00:09:19.140 --> 00:09:19.460
<v Calvin Hendryx-Parker>AI.

00:09:19.940 --> 00:09:21.780
<v Calvin Hendryx-Parker>You've used AI before to write some code.

00:09:22.140 --> 00:09:23.620
<v Calvin Hendryx-Parker>Sometimes AI can be a little lazy.

00:09:23.840 --> 00:09:24.340
<v Calvin Hendryx-Parker>It can be a

00:09:24.360 --> 00:09:30.220
<v Calvin Hendryx-Parker>little overly broad with its type hints that may put on to some of the... So that's a problem that

00:09:30.240 --> 00:09:31.200
<v Calvin Hendryx-Parker>people complained about.

00:09:32.070 --> 00:09:33.540
<v Calvin Hendryx-Parker>The AI writing types basically,

00:09:34.100 --> 00:09:36.200
<v Calvin Hendryx-Parker>they've got about 43% are writing

00:09:36.430 --> 00:09:37.100
<v Calvin Hendryx-Parker>the type hints,

00:09:37.340 --> 00:09:41.020
<v Calvin Hendryx-Parker>but 38% says the AI makes the code more readable.

00:09:41.950 --> 00:09:42.960
<v Calvin Hendryx-Parker>But they're not sure whether

00:09:42.960 --> 00:09:46.540
<v Calvin Hendryx-Parker>the AI is actually helping because sometimes they're just overly broad.

00:09:46.820 --> 00:09:47.980
<v Calvin Hendryx-Parker>So I think if you can

00:09:48.300 --> 00:09:55.400
<v Calvin Hendryx-Parker>get good skills in your stack, make sure you tell it to write better type hints for your use cases.

00:09:55.540 --> 00:09:57.100
<v Calvin Hendryx-Parker>There was another one in here,

00:09:57.300 --> 00:09:58.980
<v Calvin Hendryx-Parker>let's see here, gap,

00:09:59.440 --> 00:09:59.860
<v Calvin Hendryx-Parker>because basically,

00:10:00.660 --> 00:10:01.860
<v Calvin Hendryx-Parker>oh, they got some graphs at the bottom.

00:10:02.020 --> 00:10:02.340
<v Calvin Hendryx-Parker>Here it is.

00:10:03.180 --> 00:10:05.420
<v Calvin Hendryx-Parker>Depending on how you use or how often you use types,

00:10:05.660 --> 00:10:07.680
<v Calvin Hendryx-Parker>depending on how you felt about them.

00:10:07.920 --> 00:10:09.280
<v Calvin Hendryx-Parker>Maybe that's not shocking to some people,

00:10:09.740 --> 00:10:10.860
<v Calvin Hendryx-Parker>but if you were rarely using types

00:10:11.420 --> 00:10:13.440
<v Calvin Hendryx-Parker>and you were using them,

00:10:13.800 --> 00:10:15.640
<v Calvin Hendryx-Parker>you would think that they were too complex or too verbose.

00:10:16.120 --> 00:10:17.520
<v Calvin Hendryx-Parker>And the opposite was kind of true.

00:10:17.600 --> 00:10:18.540
<v Calvin Hendryx-Parker>If you rarely use types,

00:10:18.860 --> 00:10:20.760
<v Calvin Hendryx-Parker>you thought that the missing type information

00:10:20.880 --> 00:10:21.760
<v Calvin Hendryx-Parker>from third party libraries

00:10:22.040 --> 00:10:23.240
<v Calvin Hendryx-Parker>maybe wasn't actually frustration,

00:10:23.920 --> 00:10:25.540
<v Calvin Hendryx-Parker>where people who were very senior in using it,

00:10:25.720 --> 00:10:27.640
<v Calvin Hendryx-Parker>obviously that was a big frustration for folks.

00:10:27.880 --> 00:10:30.260
<v Calvin Hendryx-Parker>So big thing to get basically discovered

00:10:30.440 --> 00:10:32.140
<v Calvin Hendryx-Parker>or surfaced through this report

00:10:32.660 --> 00:10:34.480
<v Calvin Hendryx-Parker>was the fact that a lot of third-party libraries

00:10:34.670 --> 00:10:36.540
<v Calvin Hendryx-Parker>either don't have hints on them at all,

00:10:37.070 --> 00:10:38.400
<v Calvin Hendryx-Parker>or it's kind of poorly implemented.

00:10:38.540 --> 00:10:40.760
<v Calvin Hendryx-Parker>Maybe the AI threw overly broad ones in there.

00:10:40.830 --> 00:10:43.160
<v Calvin Hendryx-Parker>So it's a lot, it again gets pretty broad

00:10:43.460 --> 00:10:44.560
<v Calvin Hendryx-Parker>and pretty hard to use

00:10:44.800 --> 00:10:46.460
<v Calvin Hendryx-Parker>if you don't have good type hints available to you.

00:10:47.640 --> 00:10:48.620
<v Calvin Hendryx-Parker>There's new ones on them,

00:10:48.800 --> 00:10:49.420
<v Calvin Hendryx-Parker>like I mentioned before,

00:10:49.880 --> 00:10:50.520
<v Calvin Hendryx-Parker>Astral's Tie.

00:10:51.120 --> 00:10:53.880
<v Calvin Hendryx-Parker>You'll see here, this graph is the 2026

00:10:53.900 --> 00:10:55.260
<v Calvin Hendryx-Parker>is the 2025 results,

00:10:55.540 --> 00:10:56.560
<v Calvin Hendryx-Parker>the 2026 in blue,

00:10:57.020 --> 00:11:01.660
<v Calvin Hendryx-Parker>the mypy and PyLance Pyrite usage has dropped slightly,

00:11:01.720 --> 00:11:02.520
<v Calvin Hendryx-Parker>but you can see here,

00:11:02.860 --> 00:11:06.420
<v Calvin Hendryx-Parker>Ty has started to take a much more commanding position.

00:11:06.580 --> 00:11:07.320
<v Calvin Hendryx-Parker>Last year it was

00:11:07.900 --> 00:11:14.540
<v Calvin Hendryx-Parker>16%, this year is 37% compared to mypy and PyLance being like around 46% each.

00:11:14.820 --> 00:11:16.360
<v Calvin Hendryx-Parker>So those three very

00:11:16.700 --> 00:11:22.600
<v Calvin Hendryx-Parker>commonly used, and you still got Pyrefly down in here and a couple other ones in the mix.

00:11:23.300 --> 00:11:23.860
<v Calvin Hendryx-Parker>So

00:11:24.000 --> 00:11:24.420
<v Calvin Hendryx-Parker>Kind of cool.

00:11:24.740 --> 00:11:25.840
<v Calvin Hendryx-Parker>Folks who are interested in checking it out.

00:11:25.930 --> 00:11:26.180
<v Calvin Hendryx-Parker>I think,

00:11:26.410 --> 00:11:28.640
<v Calvin Hendryx-Parker>again, a lot of frustration comes down to the third-party libraries.

00:11:28.920 --> 00:11:33.320
<v Calvin Hendryx-Parker>If you're a seasoned Python coder and you're trying to use these tools for real,

00:11:33.480 --> 00:11:33.880
<v Calvin Hendryx-Parker>it can

00:11:33.940 --> 00:11:34.400
<v Calvin Hendryx-Parker>get frustrating.

00:11:34.740 --> 00:11:36.420
<v Calvin Hendryx-Parker>So if you're a maintainer of a library,

00:11:36.660 --> 00:11:39.020
<v Calvin Hendryx-Parker>I think the message is get out there and make sure

00:11:39.090 --> 00:11:40.720
<v Calvin Hendryx-Parker>you tighten up your type hints game.

00:11:41.380 --> 00:11:46.580
<v Michael Kennedy>Definitely tighten up your type hints and particular attention to the stuff that is your public

00:11:46.900 --> 00:11:47.020
<v Michael Kennedy>interface.

00:11:47.230 --> 00:11:48.680
<v Michael Kennedy>Like if it's some internal thing, who cares?

00:11:49.100 --> 00:11:52.920
<v Michael Kennedy>But if 100,000 people are going to be using it, put a little effort in that.

00:11:53.200 --> 00:11:53.400
<v Calvin Hendryx-Parker>Yeah.

00:11:53.680 --> 00:11:54.300
<v Calvin Hendryx-Parker>And so,

00:11:54.500 --> 00:11:56.860
<v Calvin Hendryx-Parker>I mean, there's some major projects that are guilty of this.

00:11:57.100 --> 00:12:01.540
<v Calvin Hendryx-Parker>I think the frustration and the ones that were listed were things like SQLAlchemy,

00:12:01.780 --> 00:12:02.960
<v Calvin Hendryx-Parker>Pandas, NumPy, and Django.

00:12:03.740 --> 00:12:03.880
<v Calvin Hendryx-Parker>Yeah.

00:12:04.180 --> 00:12:04.880
<v Calvin Hendryx-Parker>Those are big projects.

00:12:05.760 --> 00:12:06.520
<v Calvin Hendryx-Parker>They've been around a long time.

00:12:06.720 --> 00:12:08.140
<v Michael Kennedy>I have heard of them.

00:12:08.420 --> 00:12:09.140
<v Calvin Hendryx-Parker>You've heard of them.

00:12:09.360 --> 00:12:10.040
<v Michael Kennedy>I have heard of them.

00:12:10.160 --> 00:12:10.580
<v Michael Kennedy>Yes, I have.

00:12:10.580 --> 00:12:10.620
<v Michael Kennedy>That's good, Michael.

00:12:12.940 --> 00:12:14.200
<v Michael Kennedy>I got a quick follow-up, by the way.

00:12:15.100 --> 00:12:17.380
<v Michael Kennedy>Are you familiar with TypeShed?

00:12:17.800 --> 00:12:18.440
<v Michael Kennedy>Where you have these,

00:12:18.840 --> 00:12:21.320
<v Michael Kennedy>like, if there's not actual types that people can work with.

00:12:21.620 --> 00:12:21.820
<v Calvin Hendryx-Parker>No.

00:12:21.900 --> 00:12:23.100
<v Michael Kennedy>There's, like, all these stubs.

00:12:23.380 --> 00:12:25.840
<v Michael Kennedy>So different things can either install these or whatever.

00:12:26.090 --> 00:12:26.860
<v Michael Kennedy>So you're like, all right,

00:12:27.020 --> 00:12:30.060
<v Michael Kennedy>PySox doesn't actually have types because why not, people?

00:12:30.150 --> 00:12:30.580
<v Michael Kennedy>I don't know.

00:12:30.940 --> 00:12:36.580
<v Michael Kennedy>But you can install this thing that just defines the signatures in a type way and put that

00:12:36.780 --> 00:12:37.500
<v Michael Kennedy>alongside your project.

00:12:37.910 --> 00:12:40.980
<v Michael Kennedy>And so I thought that this was for projects that did not have types,

00:12:41.570 --> 00:12:41.700
<v Michael Kennedy>period.

00:12:42.120 --> 00:12:47.400
<v Michael Kennedy>But what I learned earlier this year, I think it was, even if you do have really nice type

00:12:47.820 --> 00:12:50.360
<v Michael Kennedy>signatures and stuff in your library,

00:12:50.600 --> 00:12:52.720
<v Michael Kennedy>Python doesn't necessarily trust it.

00:12:52.880 --> 00:12:57.320
<v Michael Kennedy>And the official type checkers don't trust it unless you put in pytyped.

00:12:57.370 --> 00:12:58.060
<v Michael Kennedy>Are you familiar with this?

00:12:58.150 --> 00:12:59.480
<v Michael Kennedy>P-Y dot typed.

00:12:59.900 --> 00:13:00.020
<v Michael Kennedy>Basically,

00:13:00.290 --> 00:13:03.220
<v Michael Kennedy>if you ship this file, it can be an empty file.

00:13:03.620 --> 00:13:05.100
<v Michael Kennedy>But if you put this in your package,

00:13:05.670 --> 00:13:11.920
<v Michael Kennedy>then the Python type checkers say this package has declared it actually cares about types and have set them explicitly.

00:13:12.110 --> 00:13:16.820
<v Michael Kennedy>And we will use this type information authoritatively rather than just maybe.

00:13:17.480 --> 00:13:17.840
<v Michael Kennedy>So anyway,

00:13:18.020 --> 00:13:20.200
<v Michael Kennedy>a follow up to your comments.

00:13:20.640 --> 00:13:21.600
<v Michael Kennedy>package maintainers out there,

00:13:21.900 --> 00:13:24.940
<v Michael Kennedy>please read about this, this py.type thing. And just,

00:13:25.240 --> 00:13:25.980
<v Michael Kennedy>it's no work.

00:13:26.060 --> 00:13:27.020
<v Michael Kennedy>You just put a file in there.

00:13:27.180 --> 00:13:27.840
<v Michael Kennedy>And long as you have typed,

00:13:28.100 --> 00:13:29.880
<v Michael Kennedy>this now makes the type checkers trust it.

00:13:30.040 --> 00:13:30.160
<v Calvin Hendryx-Parker>Yeah.

00:13:30.380 --> 00:13:34.100
<v Calvin Hendryx-Parker>And another thing they mentioned in the survey results were the developer experience.

00:13:34.740 --> 00:13:38.260
<v Calvin Hendryx-Parker>A lot of times, maybe if you had good type hints, even on the code,

00:13:38.480 --> 00:13:39.780
<v Calvin Hendryx-Parker>you didn't have good annotations

00:13:39.960 --> 00:13:44.260
<v Calvin Hendryx-Parker>about maybe a friendly message saying what was wrong when there's an error, when that type

00:13:44.820 --> 00:13:45.840
<v Calvin Hendryx-Parker>is incorrect,

00:13:46.000 --> 00:13:48.420
<v Calvin Hendryx-Parker>for example, it was a thing that people wished for.

00:13:48.800 --> 00:13:48.820
<v Michael Kennedy>Yeah,

00:13:49.180 --> 00:13:49.560
<v Michael Kennedy>for sure.

00:13:50.080 --> 00:13:50.180
<v Michael Kennedy>Okay.

00:13:50.500 --> 00:13:50.620
<v Calvin Hendryx-Parker>Well,

00:13:51.080 --> 00:13:52.220
<v Calvin Hendryx-Parker>let's keep building some maps,

00:13:52.420 --> 00:13:52.540
<v Calvin Hendryx-Parker>Michael.

00:13:52.760 --> 00:13:54.700
<v Michael Kennedy>Let's vibe it up a little bit here.

00:13:54.780 --> 00:13:54.960
<v Michael Kennedy>All right.

00:13:55.060 --> 00:13:58.700
<v Michael Kennedy>So I want to talk about this place built by,

00:13:59.460 --> 00:14:01.400
<v Michael Kennedy>the guy was on Talk Python a while ago,

00:14:01.860 --> 00:14:02.760
<v Michael Kennedy>Frederick Tubermont.

00:14:03.640 --> 00:14:03.860
<v Michael Kennedy>Fred.

00:14:04.200 --> 00:14:07.520
<v Michael Kennedy>So he put together this site that's kind of a manifesto.

00:14:07.600 --> 00:14:09.020
<v Michael Kennedy>I mean, you've heard of manifestos before.

00:14:09.320 --> 00:14:11.180
<v Michael Kennedy>Often they're kind of weird by people

00:14:11.420 --> 00:14:12.700
<v Michael Kennedy>and like they've disconnected.

00:14:13.500 --> 00:14:16.180
<v Michael Kennedy>But there also can be things like the Agile Manifesto.

00:14:16.400 --> 00:14:17.840
<v Calvin Hendryx-Parker>The Agile Manifesto comes to mind.

00:14:18.020 --> 00:14:18.860
<v Calvin Hendryx-Parker>That's not a bunch of weird people.

00:14:19.020 --> 00:14:20.200
<v Calvin Hendryx-Parker>They're nice and short and concise.

00:14:21.380 --> 00:14:22.020
<v Michael Kennedy>Not Unabomber.

00:14:22.960 --> 00:14:25.680
<v Michael Kennedy>But there's this place called flaskvibe.com

00:14:25.800 --> 00:14:26.320
<v Michael Kennedy>that he put together.

00:14:26.620 --> 00:14:28.780
<v Michael Kennedy>And I don't, I think it's just for the heck of it.

00:14:28.880 --> 00:14:30.080
<v Michael Kennedy>I'm not really sure what the,

00:14:30.320 --> 00:14:31.200
<v Michael Kennedy>if there's any more to it,

00:14:31.240 --> 00:14:32.460
<v Michael Kennedy>but it has a manifesto.

00:14:32.800 --> 00:14:33.260
<v Michael Kennedy>And the idea,

00:14:33.580 --> 00:14:34.600
<v Michael Kennedy>like the H2 or whatever,

00:14:34.820 --> 00:14:36.660
<v Michael Kennedy>is build apps you can understand.

00:14:37.640 --> 00:14:38.280
<v Michael Kennedy>Flask, Postgres,

00:14:38.560 --> 00:14:39.400
<v Michael Kennedy>Plain, SQL,

00:14:39.880 --> 00:14:40.660
<v Michael Kennedy>plus Vanilla JS.

00:14:40.860 --> 00:14:42.140
<v Michael Kennedy>Like don't overcomplicate it.

00:14:42.380 --> 00:14:44.160
<v Michael Kennedy>I think this resonates a lot with me.

00:14:44.220 --> 00:14:45.180
<v Michael Kennedy>And I just wanted to bring this up

00:14:45.220 --> 00:14:47.260
<v Michael Kennedy>as kind of an example to give to people.

00:14:47.440 --> 00:14:50.840
<v Michael Kennedy>Because I've been building my apps this way the last couple of years, and it's been pretty amazing.

00:14:51.120 --> 00:14:51.620
<v Michael Kennedy>What do you think?

00:14:51.960 --> 00:15:01.560
<v Calvin Hendryx-Parker>I like this approach that kind of first principles don't throw on every fancy framework under the sun because it's kind of even more complex the deeper you go with those frameworks.

00:15:02.080 --> 00:15:04.500
<v Calvin Hendryx-Parker>As opposed to this approach where it's, like you said, SQL,

00:15:04.720 --> 00:15:05.860
<v Calvin Hendryx-Parker>vanilla JavaScript.

00:15:06.220 --> 00:15:11.680
<v Calvin Hendryx-Parker>Like the AIs will write, if you're using this for the vibe coding, it'll write clearer code you can understand.

00:15:12.160 --> 00:15:12.360
<v Michael Kennedy>Yeah.

00:15:12.640 --> 00:15:14.600
<v Michael Kennedy>And a lot of times you use these frameworks,

00:15:14.800 --> 00:15:16.080
<v Michael Kennedy>like you called out SQLAlchemy.

00:15:16.260 --> 00:15:17.200
<v Michael Kennedy>It'll appear here in a second.

00:15:17.540 --> 00:15:18.260
<v Michael Kennedy>like SQLAlchemy,

00:15:18.420 --> 00:15:21.680
<v Michael Kennedy>they're there to hide the complexity from you,

00:15:21.960 --> 00:15:23.340
<v Michael Kennedy>but they themselves kind

00:15:23.420 --> 00:15:24.740
<v Michael Kennedy>of obscure things a little bit.

00:15:24.900 --> 00:15:26.760
<v Michael Kennedy>The AIs are really good at all the little details.

00:15:27.480 --> 00:15:28.120
<v Michael Kennedy>And if they're

00:15:28.120 --> 00:15:31.640
<v Michael Kennedy>going to write it, like you might be getting in their way more than helping them, you know?

00:15:32.700 --> 00:15:32.820
<v Calvin Hendryx-Parker>Yeah.

00:15:32.980 --> 00:15:35.840
<v Michael Kennedy>So there's some examples that says like,

00:15:36.000 --> 00:15:38.300
<v Michael Kennedy>look, let's compare this to Next.js versus Flask.

00:15:38.620 --> 00:15:39.380
<v Michael Kennedy>You got node modules,

00:15:39.720 --> 00:15:41.580
<v Michael Kennedy>300 megs. You got your package.json,

00:15:41.840 --> 00:15:42.320
<v Michael Kennedy>50 dependencies.

00:15:42.620 --> 00:15:43.080
<v Michael Kennedy>You got your

00:15:43.080 --> 00:15:44.940
<v Michael Kennedy>next.config.js,

00:15:45.160 --> 00:15:46.920
<v Michael Kennedy>your tsconfig.json,

00:15:47.080 --> 00:15:48.020
<v Michael Kennedy>your eslintrc,

00:15:48.340 --> 00:15:49.300
<v Michael Kennedy>your.next build cache,

00:15:49.580 --> 00:15:50.140
<v Michael Kennedy>your webpack, your

00:15:50.280 --> 00:15:50.520
<v Michael Kennedy>babble,

00:15:50.700 --> 00:15:51.280
<v Michael Kennedy>et cetera, et cetera.

00:15:51.860 --> 00:15:53.900
<v Michael Kennedy>And that's like five minutes to build and install.

00:15:54.120 --> 00:15:55.280
<v Michael Kennedy>Do you have all the tools and the trans?

00:15:56.560 --> 00:15:58.160
<v Michael Kennedy>Versus app.py, 15 lines,

00:15:58.360 --> 00:15:59.220
<v Michael Kennedy>requirements.txt,

00:15:59.440 --> 00:15:59.940
<v Michael Kennedy>three dependencies,

00:16:00.380 --> 00:16:00.580
<v Michael Kennedy>templates,

00:16:00.920 --> 00:16:01.060
<v Michael Kennedy>static.

00:16:01.440 --> 00:16:02.080
<v Michael Kennedy>We're done.

00:16:02.180 --> 00:16:02.540
<v Michael Kennedy>Let's roll.

00:16:02.700 --> 00:16:03.140
<v Michael Kennedy>You know what I mean?

00:16:03.360 --> 00:16:06.980
<v Calvin Hendryx-Parker>You probably make it even smaller with just uv and pipeproject.toml.

00:16:07.240 --> 00:16:07.580
<v Michael Kennedy>Yeah.

00:16:07.740 --> 00:16:10.380
<v Michael Kennedy>Or I'm sure someone's done this.

00:16:10.600 --> 00:16:13.300
<v Michael Kennedy>build a flask app where it's actually that,

00:16:13.420 --> 00:16:16.060
<v Michael Kennedy>that PEP where you just put the dependencies at the top and you just my

00:16:16.160 --> 00:16:16.580
<v Calvin Hendryx-Parker>favorite one.

00:16:17.180 --> 00:16:17.240
<v Michael Kennedy>Yeah.

00:16:17.640 --> 00:16:19.180
<v Michael Kennedy>I forgot the number like seven 23,

00:16:19.420 --> 00:16:19.860
<v Michael Kennedy>seven 38,

00:16:19.920 --> 00:16:20.700
<v Calvin Hendryx-Parker>I think seven.

00:16:20.860 --> 00:16:20.980
<v Calvin Hendryx-Parker>Yeah.

00:16:21.080 --> 00:16:21.460
<v Michael Kennedy>So you,

00:16:21.540 --> 00:16:22.340
<v Michael Kennedy>you know better than I do.

00:16:22.700 --> 00:16:22.940
<v Michael Kennedy>Um,

00:16:23.400 --> 00:16:24.680
<v Michael Kennedy>so this is pretty neat.

00:16:24.960 --> 00:16:25.720
<v Michael Kennedy>And if you go look through,

00:16:25.820 --> 00:16:26.680
<v Michael Kennedy>it's got some tutorials.

00:16:26.860 --> 00:16:28.340
<v Michael Kennedy>Now the tutorials are interesting,

00:16:29.140 --> 00:16:29.780
<v Michael Kennedy>but like,

00:16:29.860 --> 00:16:31.600
<v Michael Kennedy>let me see if I can find an example here.

00:16:33.800 --> 00:16:34.140
<v Michael Kennedy>I don't know.

00:16:34.340 --> 00:16:34.740
<v Calvin Hendryx-Parker>I like,

00:16:34.800 --> 00:16:35.640
<v Calvin Hendryx-Parker>I like the big end,

00:16:35.660 --> 00:16:36.340
<v Calvin Hendryx-Parker>the first principles,

00:16:36.500 --> 00:16:37.180
<v Calvin Hendryx-Parker>especially if you're new,

00:16:37.700 --> 00:16:40.040
<v Calvin Hendryx-Parker>this is going to help you understand actually what's being written and you,

00:16:40.180 --> 00:16:42.340
<v Calvin Hendryx-Parker>you will become a better developer through this process too,

00:16:42.660 --> 00:16:43.020
<v Calvin Hendryx-Parker>I imagine.

00:16:43.180 --> 00:16:44.420
<v Michael Kennedy>I would definitely think so.

00:16:44.600 --> 00:16:45.420
<v Michael Kennedy>So the examples are great,

00:16:45.560 --> 00:16:49.480
<v Michael Kennedy>but some of them I found there to be very light on architectural guidance.

00:16:49.980 --> 00:16:53.660
<v Michael Kennedy>Like it'll have a flask view and a SQL query with a SQL.

00:16:53.820 --> 00:16:54.560
<v Michael Kennedy>It is by coding,

00:16:54.760 --> 00:16:54.860
<v Calvin Hendryx-Parker>Michael.

00:16:56.360 --> 00:16:58.160
<v Michael Kennedy>It's true. It is. It totally is.

00:16:58.460 --> 00:16:59.940
<v Michael Kennedy>But yeah, you can check out the manifesto

00:16:59.960 --> 00:17:02.620
<v Michael Kennedy>and it's got some really nice, nice bits in here.

00:17:02.980 --> 00:17:05.240
<v Michael Kennedy>You know, like we prefer transparency over magic.

00:17:06.360 --> 00:17:06.540
<v Calvin Hendryx-Parker>Yeah.

00:17:07.220 --> 00:17:09.819
<v Calvin Hendryx-Parker>It's almost Python tenants there from like Xenopython.

00:17:09.839 --> 00:17:11.420
<v Michael Kennedy>It's very Python inspired.

00:17:11.600 --> 00:17:12.439
<v Michael Kennedy>I don't know where the SQL,

00:17:13.079 --> 00:17:15.140
<v Michael Kennedy>do they talk about SQLAlchemy in this one?

00:17:15.240 --> 00:17:15.740
<v Michael Kennedy>I don't know.

00:17:16.079 --> 00:17:17.439
<v Michael Kennedy>In the manifesto, we don't know.

00:17:17.780 --> 00:17:17.860
<v Michael Kennedy>Yeah,

00:17:18.060 --> 00:17:18.319
<v Michael Kennedy>like here.

00:17:18.380 --> 00:17:20.620
<v Michael Kennedy>So like user equals user.query.filterby,

00:17:20.880 --> 00:17:22.020
<v Michael Kennedy>email equal this.first.

00:17:22.300 --> 00:17:23.020
<v Michael Kennedy>Like, oh,

00:17:23.459 --> 00:17:24.040
<v Michael Kennedy>like exactly.

00:17:24.300 --> 00:17:26.100
<v Michael Kennedy>Like what is all this doing versus just,

00:17:26.300 --> 00:17:26.620
<v Michael Kennedy>you know,

00:17:26.720 --> 00:17:28.380
<v Michael Kennedy>select star from, like you can see exactly.

00:17:28.459 --> 00:17:29.080
<v Michael Kennedy>These are the parameters.

00:17:29.560 --> 00:17:33.060
<v Calvin Hendryx-Parker>Yeah, but when, when I grew up not as a SQL person,

00:17:33.280 --> 00:17:35.620
<v Calvin Hendryx-Parker>as a object-oriented database person.

00:17:35.860 --> 00:17:36.600
<v Calvin Hendryx-Parker>And so SQL,

00:17:37.060 --> 00:17:38.860
<v Calvin Hendryx-Parker>when it gets big and long and hairy,

00:17:39.240 --> 00:17:41.400
<v Calvin Hendryx-Parker>but it's definitely not human readable anymore.

00:17:41.440 --> 00:17:43.140
<v Michael Kennedy>I am 100% with you.

00:17:43.760 --> 00:17:45.440
<v Michael Kennedy>And I love ORMs.

00:17:45.920 --> 00:17:46.100
<v Calvin Hendryx-Parker>Yeah.

00:17:46.540 --> 00:17:48.440
<v Michael Kennedy>But if something else is right in it

00:17:48.720 --> 00:17:49.560
<v Michael Kennedy>and it's better at this

00:17:50.100 --> 00:17:51.760
<v Michael Kennedy>and it's faster and it's lower memory

00:17:52.120 --> 00:17:52.960
<v Michael Kennedy>and I don't have to read it.

00:17:53.040 --> 00:17:54.440
<v Michael Kennedy>Like if I'm not going to read it either way.

00:17:54.800 --> 00:17:55.400
<v Calvin Hendryx-Parker>Have good tests.

00:17:55.420 --> 00:17:57.160
<v Michael Kennedy>I should stop defaulting.

00:17:58.080 --> 00:17:58.600
<v Michael Kennedy>Yeah, it's true.

00:17:58.960 --> 00:18:01.540
<v Michael Kennedy>But I should also stop defaulting to things that benefit.

00:18:01.860 --> 00:18:02.060
<v Calvin Hendryx-Parker>Yeah,

00:18:02.280 --> 00:18:02.580
<v Calvin Hendryx-Parker>the human.

00:18:02.800 --> 00:18:03.140
<v Michael Kennedy>Me,

00:18:03.320 --> 00:18:04.860
<v Michael Kennedy>but hurt like runtime,

00:18:05.340 --> 00:18:05.720
<v Michael Kennedy>hurt memory,

00:18:06.040 --> 00:18:07.880
<v Michael Kennedy>hurt like the AI's capability, right?

00:18:08.080 --> 00:18:09.700
<v Michael Kennedy>Like at least it's worth considering the trade-off.

00:18:09.860 --> 00:18:13.680
<v Michael Kennedy>So anyway, I present to you a probably vibe-coded build apps

00:18:13.750 --> 00:18:15.440
<v Michael Kennedy>you can understand in Flask by sight.

00:18:16.060 --> 00:18:17.100
<v Calvin Hendryx-Parker>Anyway, it's worth looking at.

00:18:17.100 --> 00:18:19.640
<v Calvin Hendryx-Parker>I bet you can swap out like FastAPI in here for Flask.

00:18:19.870 --> 00:18:21.440
<v Calvin Hendryx-Parker>But maybe that's against his manifesto.

00:18:21.490 --> 00:18:23.280
<v Calvin Hendryx-Parker>Like I don't want to mess with his vibe.

00:18:23.420 --> 00:18:24.240
<v Calvin Hendryx-Parker>I'll make a new one.

00:18:24.500 --> 00:18:25.760
<v Michael Kennedy>Fred's an interesting character.

00:18:25.950 --> 00:18:27.380
<v Michael Kennedy>He learned to code,

00:18:27.620 --> 00:18:29.320
<v Michael Kennedy>started learning at 47,

00:18:29.820 --> 00:18:32.620
<v Michael Kennedy>and has like released a couple of SaaS apps

00:18:32.690 --> 00:18:34.660
<v Michael Kennedy>that are like semi-successful or something.

00:18:35.060 --> 00:18:35.600
<v Michael Kennedy>It's never too late.

00:18:35.600 --> 00:18:36.360
<v Michael Kennedy>He's an interesting character.

00:18:36.680 --> 00:18:37.200
<v Calvin Hendryx-Parker>It's never too late.

00:18:37.420 --> 00:18:37.960
<v Calvin Hendryx-Parker>It's never too late.

00:18:38.040 --> 00:18:38.340
<v Calvin Hendryx-Parker>I love that.

00:18:38.600 --> 00:18:41.620
<v Michael Kennedy>I mean, it's all about getting the timing right, wouldn't you say?

00:18:41.880 --> 00:18:44.000
<v Calvin Hendryx-Parker>I would say it's about getting Python on your wrist.

00:18:44.300 --> 00:18:48.080
<v Calvin Hendryx-Parker>Have you ever wanted to wear Python on you, like on your wristwatch,

00:18:48.240 --> 00:18:48.640
<v Calvin Hendryx-Parker>for example?

00:18:48.720 --> 00:18:48.800
<v Calvin Hendryx-Parker>Yes.

00:18:49.220 --> 00:18:50.060
<v Calvin Hendryx-Parker>This is really cool.

00:18:50.140 --> 00:18:51.960
<v Calvin Hendryx-Parker>So I found this one out there.

00:18:52.440 --> 00:18:58.140
<v Calvin Hendryx-Parker>It's a guy from the Netherlands who had basically a Pine Time,

00:18:58.700 --> 00:18:59.620
<v Calvin Hendryx-Parker>which if you've ever been to

00:18:59.840 --> 00:19:03.340
<v Calvin Hendryx-Parker>pine64.os or they make a bunch of open hardware.

00:19:04.540 --> 00:19:05.520
<v Calvin Hendryx-Parker>If you look at a picture of it,

00:19:05.840 --> 00:19:07.140
<v Calvin Hendryx-Parker>what kind of watch does that look like?

00:19:07.400 --> 00:19:08.720
<v Calvin Hendryx-Parker>I mean, it looks like an Apple Watch.

00:19:09.100 --> 00:19:09.420
<v Calvin Hendryx-Parker>Apple?

00:19:09.420 --> 00:19:10.260
<v Michael Kennedy>It does look like an Apple Watch.

00:19:10.520 --> 00:19:12.540
<v Calvin Hendryx-Parker>It does look like an Apple Watch.

00:19:13.160 --> 00:19:14.100
<v Calvin Hendryx-Parker>It does look like an Apple Watch.

00:19:14.280 --> 00:19:15.280
<v Calvin Hendryx-Parker>It's not an Apple Watch.

00:19:15.620 --> 00:19:19.780
<v Calvin Hendryx-Parker>Apple Watches are like $700 starting range for a watch.

00:19:20.120 --> 00:19:21.120
<v Calvin Hendryx-Parker>Guess how much this one costs?

00:19:21.460 --> 00:19:21.980
<v Michael Kennedy>Gosh, I don't know.

00:19:22.140 --> 00:19:23.100
<v Michael Kennedy>Is it from Adafruit?

00:19:23.880 --> 00:19:24.200
<v Calvin Hendryx-Parker>$25,

00:19:24.560 --> 00:19:25.700
<v Calvin Hendryx-Parker>like $26 I think.

00:19:25.700 --> 00:19:26.220
<v Calvin Hendryx-Parker>Oh my goodness.

00:19:26.240 --> 00:19:29.880
<v Calvin Hendryx-Parker>So it's around $26 and you get an open smartwatch.

00:19:30.860 --> 00:19:31.720
<v Calvin Hendryx-Parker>But the issue is,

00:19:31.960 --> 00:19:34.080
<v Calvin Hendryx-Parker>it runs the bottom of the box.

00:19:34.500 --> 00:19:38.280
<v Calvin Hendryx-Parker>it comes with a C++ framework running in the embedded OS on it.

00:19:38.640 --> 00:19:42.500
<v Calvin Hendryx-Parker>So there was a MicroPython out there that getting a little long in the tooth.

00:19:43.120 --> 00:19:43.660
<v Calvin Hendryx-Parker>From 2019,

00:19:44.020 --> 00:19:46.080
<v Calvin Hendryx-Parker>it was a fork called Wasp OS.

00:19:46.300 --> 00:19:50.560
<v Calvin Hendryx-Parker>So it's like a wearable Python OS for your smartwatch.

00:19:51.100 --> 00:19:55.620
<v Calvin Hendryx-Parker>And Michael decided he would update it for today's version of MicroPython.

00:19:55.680 --> 00:20:00.780
<v Calvin Hendryx-Parker>So he's gone through and forked the Wasp OS into his own version of that over here.

00:20:01.100 --> 00:20:01.780
<v Calvin Hendryx-Parker>You can see this.

00:20:02.600 --> 00:20:03.320
<v Calvin Hendryx-Parker>And it's got docs.

00:20:04.360 --> 00:20:07.340
<v Calvin Hendryx-Parker>It's up to date with some new bits and stuff in here.

00:20:07.860 --> 00:20:08.220
<v Calvin Hendryx-Parker>It's cool.

00:20:08.920 --> 00:20:10.940
<v Calvin Hendryx-Parker>It's interesting 'cause now it works with uv.

00:20:12.020 --> 00:20:14.120
<v Calvin Hendryx-Parker>Bluetooth flashing is actually a lot faster

00:20:14.150 --> 00:20:15.000
<v Calvin Hendryx-Parker>than it was prior.

00:20:15.330 --> 00:20:16.740
<v Calvin Hendryx-Parker>I mean, he bought this watch that it looks like,

00:20:16.850 --> 00:20:19.440
<v Calvin Hendryx-Parker>I think back in 2023 is what it says on the post.

00:20:19.920 --> 00:20:20.800
<v Calvin Hendryx-Parker>And it was just sitting in a drawer.

00:20:21.130 --> 00:20:22.100
<v Calvin Hendryx-Parker>And so he pulled it back out,

00:20:22.500 --> 00:20:23.420
<v Calvin Hendryx-Parker>went and looked at the Wasp OS,

00:20:23.720 --> 00:20:25.640
<v Calvin Hendryx-Parker>decided I'm gonna bring this up to date.

00:20:25.710 --> 00:20:27.460
<v Calvin Hendryx-Parker>So he forked it and noticed,

00:20:27.720 --> 00:20:30.560
<v Calvin Hendryx-Parker>note that the Wasp OS notes it's looking for new maintainers.

00:20:30.680 --> 00:20:31.700
<v Calvin Hendryx-Parker>I think they might've found one here.

00:20:32.160 --> 00:20:33.459
<v Calvin Hendryx-Parker>Hopefully Michael continues

00:20:33.480 --> 00:20:34.680
<v Calvin Hendryx-Parker>with the work he's been doing on it.

00:20:35.160 --> 00:20:36.680
<v Calvin Hendryx-Parker>It's all done with uv and Bluetooth.

00:20:36.950 --> 00:20:39.600
<v Calvin Hendryx-Parker>Like you basically flash it with a newer version

00:20:39.720 --> 00:20:40.780
<v Calvin Hendryx-Parker>of the Bluetooth tool.

00:20:41.780 --> 00:20:43.740
<v Calvin Hendryx-Parker>The free RAM at boot.

00:20:44.110 --> 00:20:46.260
<v Calvin Hendryx-Parker>So this watch doesn't have much memory on it.

00:20:46.420 --> 00:20:47.660
<v Calvin Hendryx-Parker>I can't remember what the exact, oh yeah,

00:20:47.740 --> 00:20:51.320
<v Calvin Hendryx-Parker>it's 64 kilobytes of RAM, bytes of RAM.

00:20:51.780 --> 00:20:55.260
<v Calvin Hendryx-Parker>It has 512 kilobytes of flash for storage

00:20:55.840 --> 00:20:58.180
<v Calvin Hendryx-Parker>and it's a 64 megahertz.

00:20:58.700 --> 00:20:59.880
<v Calvin Hendryx-Parker>I am not in this speaking,

00:21:00.200 --> 00:21:00.360
<v Calvin Hendryx-Parker>those,

00:21:00.660 --> 00:21:05.639
<v Calvin Hendryx-Parker>if you catch the stats there, it's very, very small.

00:21:06.640 --> 00:21:07.080
<v Calvin Hendryx-Parker>Basically,

00:21:07.380 --> 00:21:08.740
<v Calvin Hendryx-Parker>as he redid the project,

00:21:09.120 --> 00:21:12.160
<v Calvin Hendryx-Parker>your free booted RAM went from only seven kilobytes free

00:21:12.420 --> 00:21:13.460
<v Calvin Hendryx-Parker>to 12 kilobytes free,

00:21:13.640 --> 00:21:15.100
<v Calvin Hendryx-Parker>which is a considerable amount

00:21:15.340 --> 00:21:16.500
<v Calvin Hendryx-Parker>considering how little is there to start with.

00:21:16.860 --> 00:21:17.400
<v Calvin Hendryx-Parker>He's told it.

00:21:18.060 --> 00:21:18.180
<v Calvin Hendryx-Parker>Yeah,

00:21:18.340 --> 00:21:20.540
<v Calvin Hendryx-Parker>so you've got room for apps now

00:21:20.800 --> 00:21:22.500
<v Calvin Hendryx-Parker>and you can write the apps in Python.

00:21:23.440 --> 00:21:25.320
<v Calvin Hendryx-Parker>He also added in things like watchdog

00:21:25.660 --> 00:21:28.659
<v Calvin Hendryx-Parker>and some vibration stuff and touch controls

00:21:28.680 --> 00:21:29.680
<v Calvin Hendryx-Parker>some battery fixes.

00:21:30.710 --> 00:21:35.980
<v Calvin Hendryx-Parker>So it's quite a few upstreamed or new features into the OS itself.

00:21:36.800 --> 00:21:37.280
<v Calvin Hendryx-Parker>Now it runs

00:21:37.660 --> 00:21:38.720
<v Calvin Hendryx-Parker>the mainline MicroPython.

00:21:39.690 --> 00:21:42.720
<v Calvin Hendryx-Parker>So the new version for MicroPython 1.3 is targeted for December.

00:21:43.360 --> 00:21:45.000
<v Calvin Hendryx-Parker>There's also on the app itself,

00:21:45.390 --> 00:21:47.280
<v Calvin Hendryx-Parker>if you go back into the tier,

00:21:47.460 --> 00:21:48.920
<v Calvin Hendryx-Parker>you get a nice kind of story about

00:21:49.090 --> 00:21:54.139
<v Calvin Hendryx-Parker>all the new things you put in there. It's like swiping works and you don't have to do buzzing

00:21:54.160 --> 00:21:59.520
<v Calvin Hendryx-Parker>only the vibration stuff works and he added some apps so some new faces so you got watch faces you

00:21:59.560 --> 00:22:05.860
<v Calvin Hendryx-Parker>can program in how you want it to display the time you can also have he wrote a guido app and it shows

00:22:06.020 --> 00:22:10.740
<v Calvin Hendryx-Parker>the creator of python we're doing awesome here on the on the first swipe you swipe it again it gets

00:22:10.780 --> 00:22:15.380
<v Calvin Hendryx-Parker>the python logo swipe it a third time the micro python logo and he swipe it a fourth time and is

00:22:15.380 --> 00:22:20.380
<v Calvin Hendryx-Parker>the logo for his meetup in the netherlands uh which i can't remember the name of it exactly but

00:22:20.400 --> 00:22:20.580
<v Calvin Hendryx-Parker>But yeah,

00:22:20.940 --> 00:22:23.580
<v Calvin Hendryx-Parker>you've got an app that you can run and it runs in the,

00:22:24.000 --> 00:22:24.480
<v Calvin Hendryx-Parker>what was it?

00:22:24.580 --> 00:22:27.840
<v Calvin Hendryx-Parker>I say 12K of free memory available on the watch.

00:22:28.200 --> 00:22:28.500
<v Calvin Hendryx-Parker>Pretty cool.

00:22:29.200 --> 00:22:31.740
<v Michael Kennedy>Maybe you could load some of it into high mem and get it to run a little better.

00:22:31.900 --> 00:22:31.960
<v Calvin Hendryx-Parker>Yeah.

00:22:32.360 --> 00:22:32.440
<v Calvin Hendryx-Parker>Yeah.

00:22:32.440 --> 00:22:36.460
<v Calvin Hendryx-Parker>So yeah, here's the device over here, pine64.org.

00:22:36.560 --> 00:22:39.340
<v Calvin Hendryx-Parker>You can actually go buy the open watch for like I said,

00:22:39.520 --> 00:22:40.160
<v Calvin Hendryx-Parker>26 bucks.

00:22:40.840 --> 00:22:41.340
<v Calvin Hendryx-Parker>It's crazy.

00:22:42.300 --> 00:22:42.820
<v Calvin Hendryx-Parker>They are working.

00:22:43.100 --> 00:22:46.460
<v Calvin Hendryx-Parker>Apparently there's rumors of a Pine Time Pro,

00:22:46.960 --> 00:22:48.020
<v Calvin Hendryx-Parker>which will have an AMOLED screen,

00:22:48.700 --> 00:22:48.820
<v Calvin Hendryx-Parker>GPS.

00:22:49.580 --> 00:22:51.940
<v Calvin Hendryx-Parker>So the current one has heart rate

00:22:53.210 --> 00:22:54.240
<v Calvin Hendryx-Parker>and what's the other thing that was on there?

00:22:54.400 --> 00:22:56.220
<v Calvin Hendryx-Parker>It's not super capable

00:22:56.380 --> 00:22:58.000
<v Calvin Hendryx-Parker>other than it has like a heart rate monitor on it.

00:22:58.250 --> 00:22:59.480
<v Calvin Hendryx-Parker>So you can step, step counting.

00:22:59.800 --> 00:23:00.160
<v Calvin Hendryx-Parker>That's what it was.

00:23:00.500 --> 00:23:02.540
<v Calvin Hendryx-Parker>The new one will have GPS and an AMOLED screen

00:23:02.840 --> 00:23:04.960
<v Calvin Hendryx-Parker>and a dual core M33 processor,

00:23:05.760 --> 00:23:07.480
<v Calvin Hendryx-Parker>obviously with probably more memory,

00:23:07.630 --> 00:23:08.660
<v Calvin Hendryx-Parker>more storage, more flash.

00:23:08.920 --> 00:23:10.960
<v Calvin Hendryx-Parker>But the idea that it is open and inexpensive

00:23:11.460 --> 00:23:13.540
<v Calvin Hendryx-Parker>means there's potential to hack and play with it.

00:23:13.780 --> 00:23:15.740
<v Calvin Hendryx-Parker>Another cool thing, I kind of do a little digging,

00:23:15.900 --> 00:23:17.680
<v Calvin Hendryx-Parker>went down the rabbit hole in the Pine64.

00:23:18.300 --> 00:23:19.180
<v Calvin Hendryx-Parker>They have a voice,

00:23:19.500 --> 00:23:21.000
<v Calvin Hendryx-Parker>open voice module

00:23:21.170 --> 00:23:23.000
<v Calvin Hendryx-Parker>that you can work with a home assistant voice.

00:23:23.220 --> 00:23:23.880
<v Calvin Hendryx-Parker>They're Pine Voice. - Oh,

00:23:24.040 --> 00:23:24.320
<v Michael Kennedy>that's cool.

00:23:24.860 --> 00:23:26.100
<v Calvin Hendryx-Parker>And it's like 50 bucks.

00:23:26.660 --> 00:23:28.520
<v Calvin Hendryx-Parker>So very reasonably priced.

00:23:28.710 --> 00:23:29.880
<v Calvin Hendryx-Parker>I get the impression though,

00:23:29.970 --> 00:23:31.520
<v Calvin Hendryx-Parker>that they are meant for the hacker community,

00:23:32.000 --> 00:23:36.240
<v Calvin Hendryx-Parker>probably not meant for putting this on grandma's desk

00:23:36.780 --> 00:23:37.980
<v Calvin Hendryx-Parker>for turning the lights on and off

00:23:38.320 --> 00:23:39.500
<v Calvin Hendryx-Parker>with your home assistant just yet.

00:23:40.080 --> 00:23:41.260
<v Calvin Hendryx-Parker>But I think it'll get there.

00:23:41.480 --> 00:23:43.060
<v Calvin Hendryx-Parker>And so that's pretty cool.

00:23:43.520 --> 00:23:44.960
<v Calvin Hendryx-Parker>I don't know if you've ever wanted to have Python

00:23:45.100 --> 00:23:48.180
<v Calvin Hendryx-Parker>on your wrist, but you can now using the news for code.

00:23:48.200 --> 00:23:48.560
<v Calvin Hendryx-Parker>We like it.

00:23:48.920 --> 00:23:50.840
<v Calvin Hendryx-Parker>Pine Time OS for the Wasp.

00:23:50.840 --> 00:23:51.340
<v Calvin Hendryx-Parker>That's super neat.

00:23:51.480 --> 00:23:51.560
<v Calvin Hendryx-Parker>Yeah.

00:23:52.000 --> 00:23:52.780
<v Michael Kennedy>Yeah, yeah, that's super neat.

00:23:52.840 --> 00:23:53.180
<v Michael Kennedy>I like it.

00:23:53.360 --> 00:23:54.380
<v Calvin Hendryx-Parker>Yeah, I love wearables,

00:23:54.600 --> 00:23:56.160
<v Calvin Hendryx-Parker>so I had to pick this one and put it up here

00:23:56.220 --> 00:23:57.360
<v Calvin Hendryx-Parker>because I would love to get this,

00:23:57.740 --> 00:23:59.660
<v Calvin Hendryx-Parker>have some more attention on the project itself

00:23:59.960 --> 00:24:02.900
<v Calvin Hendryx-Parker>because 26 bucks doesn't have to be expensive.

00:24:03.220 --> 00:24:04.500
<v Michael Kennedy>It's like a Casio watch.

00:24:04.860 --> 00:24:06.080
<v Calvin Hendryx-Parker>I think that's how they describe it.

00:24:06.140 --> 00:24:08.660
<v Calvin Hendryx-Parker>It's kind of like your old school programmable Casio watch,

00:24:08.760 --> 00:24:09.740
<v Calvin Hendryx-Parker>but the screen looks beautiful.

00:24:10.100 --> 00:24:11.020
<v Calvin Hendryx-Parker>I mean, it's way better.

00:24:11.320 --> 00:24:12.140
<v Calvin Hendryx-Parker>I mean, it's way better,

00:24:12.700 --> 00:24:14.220
<v Calvin Hendryx-Parker>and you can make it do other things.

00:24:14.300 --> 00:24:15.780
<v Calvin Hendryx-Parker>Like the watch face you put up here

00:24:16.180 --> 00:24:17.400
<v Calvin Hendryx-Parker>has the Epoch time on it,

00:24:17.520 --> 00:24:18.240
<v Calvin Hendryx-Parker>So time since,

00:24:18.640 --> 00:24:20.500
<v Calvin Hendryx-Parker>you know, Jan 1, 1970 on there.

00:24:21.060 --> 00:24:23.720
<v Michael Kennedy>So in 2038, is that going to be negative?

00:24:24.000 --> 00:24:24.420
<v Calvin Hendryx-Parker>I don't know.

00:24:24.500 --> 00:24:25.020
<v Calvin Hendryx-Parker>That's a good question.

00:24:26.480 --> 00:24:27.260
<v Calvin Hendryx-Parker>I'm going to buy one.

00:24:27.660 --> 00:24:28.180
<v Calvin Hendryx-Parker>26 bucks.

00:24:28.940 --> 00:24:29.260
<v Calvin Hendryx-Parker>I mean,

00:24:29.740 --> 00:24:31.040
<v Calvin Hendryx-Parker>I think I need to have one of these.

00:24:31.320 --> 00:24:32.020
<v Michael Kennedy>That's pretty excellent.

00:24:32.420 --> 00:24:32.720
<v Calvin Hendryx-Parker>Very cool.

00:24:32.740 --> 00:24:33.400
<v Michael Kennedy>All right, how about extra?

00:24:33.540 --> 00:24:35.160
<v Michael Kennedy>While you got your screen up, got anything extra to share?

00:24:35.160 --> 00:24:35.220
<v Michael Kennedy>Oh, sure.

00:24:35.380 --> 00:24:35.420
<v Calvin Hendryx-Parker>Yeah,

00:24:35.600 --> 00:24:35.860
<v Calvin Hendryx-Parker>I do,

00:24:36.200 --> 00:24:36.300
<v Calvin Hendryx-Parker>actually.

00:24:37.320 --> 00:24:39.100
<v Calvin Hendryx-Parker>Let me put this up on the screen.

00:24:40.880 --> 00:24:42.360
<v Calvin Hendryx-Parker>There's a couple quick announcements.

00:24:42.600 --> 00:24:43.720
<v Calvin Hendryx-Parker>Let me grab the link here.

00:24:43.760 --> 00:24:44.100
<v Calvin Hendryx-Parker>Here we go.

00:24:44.580 --> 00:24:44.900
<v Calvin Hendryx-Parker>PyPI.

00:24:45.400 --> 00:24:45.720
<v Calvin Hendryx-Parker>PyPI.

00:24:46.360 --> 00:24:47.680
<v Calvin Hendryx-Parker>I'm going to have a hard time with that one still.

00:24:47.940 --> 00:24:50.260
<v Calvin Hendryx-Parker>Now limits versions to 128 characters.

00:24:50.880 --> 00:24:57.640
<v Calvin Hendryx-Parker>And did you know, Michael, that there are a Python version of a package on PyPI that is 217 characters long?

00:24:57.980 --> 00:24:58.580
<v Michael Kennedy>Oh, my goodness.

00:24:59.060 --> 00:25:01.760
<v Michael Kennedy>Does that include like the machine architecture and all that?

00:25:01.830 --> 00:25:03.520
<v Michael Kennedy>Or is it just the package name itself?

00:25:04.220 --> 00:25:05.540
<v Calvin Hendryx-Parker>It's whatever you've got in the version.

00:25:06.000 --> 00:25:07.720
<v Calvin Hendryx-Parker>So, I mean, most of them are five characters or fewer.

00:25:08.000 --> 00:25:08.100
<v Calvin Hendryx-Parker>Yes,

00:25:08.260 --> 00:25:08.920
<v Calvin Hendryx-Parker>like 1.4.

00:25:09.520 --> 00:25:10.060
<v Calvin Hendryx-Parker>The version.

00:25:10.480 --> 00:25:10.580
<v Calvin Hendryx-Parker>Yes.

00:25:10.760 --> 00:25:13.820
<v Calvin Hendryx-Parker>So your version is now limited to 128 characters.

00:25:14.400 --> 00:25:15.120
<v Michael Kennedy>So constraining.

00:25:15.200 --> 00:25:16.260
<v Michael Kennedy>I can't do it.

00:25:16.260 --> 00:25:19.140
<v Calvin Hendryx-Parker>Yeah, there were only out of 9.9 million releases on PyPI,

00:25:19.380 --> 00:25:21.900
<v Calvin Hendryx-Parker>only two had a version that were near

00:25:22.140 --> 00:25:22.420
<v Calvin Hendryx-Parker>that long.

00:25:22.720 --> 00:25:23.860
<v Calvin Hendryx-Parker>So I think we're safe now.

00:25:24.000 --> 00:25:28.640
<v Calvin Hendryx-Parker>I think that's just all the work they're doing to get the stuff a little more in line and

00:25:28.980 --> 00:25:29.580
<v Calvin Hendryx-Parker>safe for us.

00:25:29.800 --> 00:25:33.840
<v Calvin Hendryx-Parker>The other quick extra I wanted to mention was Wagtail Space is coming up.

00:25:34.120 --> 00:25:37.700
<v Calvin Hendryx-Parker>So if you are in the Django and the Wagtail CMS world,

00:25:37.900 --> 00:25:39.100
<v Calvin Hendryx-Parker>and even if you're not, maybe you're

00:25:39.160 --> 00:25:40.080
<v Calvin Hendryx-Parker>just wanting to toy with it.

00:25:40.420 --> 00:25:44.820
<v Calvin Hendryx-Parker>This is a free virtual conference that is November 18th, 20th.

00:25:45.000 --> 00:25:47.700
<v Calvin Hendryx-Parker>So later this month and yours truly will be speaking.

00:25:48.080 --> 00:25:50.800
<v Calvin Hendryx-Parker>I'm gonna be giving a talk about how to scale Wagtail

00:25:50.940 --> 00:25:51.360
<v Calvin Hendryx-Parker>on Kubernetes.

00:25:51.720 --> 00:25:53.860
<v Calvin Hendryx-Parker>So it'll be a little bit of a talk about how we use like

00:25:54.020 --> 00:25:59.740
<v Calvin Hendryx-Parker>Argo CD and a lot of other cool tools to basically scale

00:26:00.020 --> 00:26:02.620
<v Calvin Hendryx-Parker>something that can run a CMS on Wagtail.

00:26:02.740 --> 00:26:04.580
<v Calvin Hendryx-Parker>But definitely go, its registration is free.

00:26:05.130 --> 00:26:05.980
<v Calvin Hendryx-Parker>You can see the schedule.

00:26:06.460 --> 00:26:07.600
<v Calvin Hendryx-Parker>There are a ton of great speakers.

00:26:07.860 --> 00:26:08.400
<v Calvin Hendryx-Parker>I mean,

00:26:08.640 --> 00:26:11.280
<v Calvin Hendryx-Parker>I'm the least interesting maybe of the people

00:26:11.290 --> 00:26:12.080
<v Calvin Hendryx-Parker>who are on this list.

00:26:12.200 --> 00:26:14.380
<v Calvin Hendryx-Parker>There's some really great people who are contributors

00:26:14.400 --> 00:26:15.660
<v Calvin Hendryx-Parker>to the Wagtail project who are speaking.

00:26:16.600 --> 00:26:18.180
<v Calvin Hendryx-Parker>So come and check it out.

00:26:18.440 --> 00:26:21.420
<v Calvin Hendryx-Parker>I'd appreciate more registrations for Wagtail space.

00:26:21.780 --> 00:26:22.140
<v Michael Kennedy>It's beautiful.

00:26:22.420 --> 00:26:23.020
<v Michael Kennedy>And they can do it online,

00:26:23.240 --> 00:26:23.320
<v Michael Kennedy>right?

00:26:23.500 --> 00:26:24.580
<v Calvin Hendryx-Parker>Yeah, it's all online.

00:26:24.700 --> 00:26:25.120
<v Calvin Hendryx-Parker>It's all virtual.

00:26:25.480 --> 00:26:26.660
<v Calvin Hendryx-Parker>You don't have to go any place for it.

00:26:27.240 --> 00:26:29.500
<v Calvin Hendryx-Parker>And you can join the Wagtail folks for a fun day.

00:26:29.780 --> 00:26:30.220
<v Michael Kennedy>Yeah, cool.

00:26:30.360 --> 00:26:30.800
<v Calvin Hendryx-Parker>Or two days.

00:26:31.180 --> 00:26:31.420
<v Michael Kennedy>All right.

00:26:31.860 --> 00:26:32.500
<v Michael Kennedy>Is that it for your items?

00:26:32.740 --> 00:26:33.340
<v Calvin Hendryx-Parker>Yeah, that's it for me.

00:26:33.460 --> 00:26:33.920
<v Calvin Hendryx-Parker>What do you got, Michael?

00:26:33.940 --> 00:26:35.800
<v Michael Kennedy>All right, I'm stealing the screen.

00:26:36.540 --> 00:26:38.220
<v Michael Kennedy>So quick shout out to Hugo,

00:26:39.320 --> 00:26:39.800
<v Michael Kennedy>release manager.

00:26:40.160 --> 00:26:43.860
<v Michael Kennedy>Lots of Python releases for Cybersecurity Awareness Month.

00:26:44.220 --> 00:26:44.600
<v Michael Kennedy>Oh boy,

00:26:45.220 --> 00:26:46.820
<v Michael Kennedy>is it definitely cybersecurity awareness.

00:26:47.250 --> 00:26:48.060
<v Michael Kennedy>Even if it's not officially,

00:26:48.480 --> 00:26:49.460
<v Michael Kennedy>there's been so many things.

00:26:49.670 --> 00:26:50.100
<v Michael Kennedy>And there's like,

00:26:50.380 --> 00:26:50.680
<v Michael Kennedy>there's a

00:26:50.960 --> 00:26:51.040
<v Calvin Hendryx-Parker>It's

00:26:51.040 --> 00:26:52.740
<v Calvin Hendryx-Parker>more of a moving sliding window of 30 days.

00:26:53.420 --> 00:26:53.560
<v Michael Kennedy>Yeah,

00:26:53.700 --> 00:26:57.120
<v Michael Kennedy>it's like trying to play whack-a-mole, but you're

00:26:57.120 --> 00:26:58.500
<v Michael Kennedy>the mole and you just got to keep running.

00:26:59.540 --> 00:26:59.840
<v Michael Kennedy>There's like

00:26:59.840 --> 00:27:01.760
<v Michael Kennedy>a new unpatched vulnerability

00:27:02.110 --> 00:27:02.580
<v Michael Kennedy>in the Linux

00:27:02.580 --> 00:27:04.880
<v Michael Kennedy>kernel for in the TCP layer.

00:27:05.120 --> 00:27:05.420
<v Michael Kennedy>That's going

00:27:05.420 --> 00:27:05.840
<v Michael Kennedy>to be fun.

00:27:06.280 --> 00:27:06.660
<v Michael Kennedy>Have you heard

00:27:06.660 --> 00:27:06.840
<v Michael Kennedy>this?

00:27:07.100 --> 00:27:07.380
<v Calvin Hendryx-Parker>No.

00:27:07.700 --> 00:27:08.000
<v Calvin Hendryx-Parker>Yeah,

00:27:08.640 --> 00:27:08.700
<v Michael Kennedy>it's

00:27:08.700 --> 00:27:09.080
<v Michael Kennedy>MC,

00:27:09.480 --> 00:27:11.639
<v Michael Kennedy>the Anthropic found a vulnerability

00:27:11.640 --> 00:27:16.100
<v Michael Kennedy>and released it to the folks and so on,

00:27:16.220 --> 00:27:17.840
<v Michael Kennedy>but they haven't been able to fix it yet.

00:27:18.250 --> 00:27:20.700
<v Michael Kennedy>And so if you send the right kind of request

00:27:20.840 --> 00:27:24.040
<v Michael Kennedy>and you have MPTCP, I think,

00:27:24.620 --> 00:27:25.060
<v Michael Kennedy>something like that.

00:27:25.120 --> 00:27:26.460
<v Michael Kennedy>I don't remember the exact protocol,

00:27:26.700 --> 00:27:27.600
<v Michael Kennedy>but yeah, that's not good.

00:27:28.300 --> 00:27:29.080
<v Michael Kennedy>So we're going to see where that goes.

00:27:29.430 --> 00:27:29.960
<v Calvin Hendryx-Parker>But so yeah,

00:27:30.400 --> 00:27:31.580
<v Michael Kennedy>Cyber Awareness Month.

00:27:31.850 --> 00:27:32.860
<v Michael Kennedy>Stay on target,

00:27:33.040 --> 00:27:33.120
<v Michael Kennedy>everyone.

00:27:33.260 --> 00:27:33.920
<v Calvin Hendryx-Parker>Tell your friends.

00:27:34.480 --> 00:27:37.220
<v Calvin Hendryx-Parker>Oh, I love the logo is a five and a quarter floppy disk.

00:27:37.600 --> 00:27:37.980
<v Michael Kennedy>It is.

00:27:38.140 --> 00:27:39.900
<v Michael Kennedy>Oh my God, it's a true floppy disk.

00:27:40.100 --> 00:27:41.560
<v Michael Kennedy>Alas, a real floppy disk.

00:27:41.940 --> 00:27:44.120
<v Michael Kennedy>So it says, hey, I, being Hugo,

00:27:44.540 --> 00:27:45.780
<v Michael Kennedy>made seven Python releases

00:27:46.040 --> 00:27:48.420
<v Michael Kennedy>when I thought there were going to be two in October.

00:27:49.120 --> 00:27:49.800
<v Michael Kennedy>And so altogether,

00:27:49.960 --> 00:27:51.380
<v Michael Kennedy>we made 16 Python releases

00:27:51.860 --> 00:27:53.140
<v Michael Kennedy>when five were originally planned

00:27:53.320 --> 00:27:53.860
<v Michael Kennedy>with X releases,

00:27:54.040 --> 00:27:55.200
<v Michael Kennedy>da-da-da, not a security release,

00:27:55.260 --> 00:27:55.920
<v Michael Kennedy>but a lot of announcements.

00:27:55.920 --> 00:27:56.560
<v Calvin Hendryx-Parker>Thank you to that team.

00:27:56.780 --> 00:27:57.040
<v Calvin Hendryx-Parker>Yes,

00:27:57.260 --> 00:27:59.860
<v Michael Kennedy>huge thanks to Sovereign Tech Agencies Fellowship,

00:27:59.900 --> 00:28:01.240
<v Michael Kennedy>supporting my own work in all the releases,

00:28:01.520 --> 00:28:01.640
<v Michael Kennedy>indeed.

00:28:02.060 --> 00:28:04.280
<v Michael Kennedy>And all the awesome people like Savannah, Thomas,

00:28:04.820 --> 00:28:04.980
<v Michael Kennedy>Pablo,

00:28:05.620 --> 00:28:07.040
<v Michael Kennedy>Ned, and Seth, and so on.

00:28:07.240 --> 00:28:08.780
<v Calvin Hendryx-Parker>So anyway, quick shout-out for that.

00:28:08.780 --> 00:28:09.180
<v Calvin Hendryx-Parker>Keeping us all safe.

00:28:09.600 --> 00:28:10.440
<v Michael Kennedy>Yeah, and Pat sent that over.

00:28:10.580 --> 00:28:11.380
<v Michael Kennedy>Thanks for sending that in, Pat.

00:28:11.660 --> 00:28:11.880
<v Michael Kennedy>Also,

00:28:12.470 --> 00:28:13.100
<v Michael Kennedy>just really quick,

00:28:13.550 --> 00:28:14.820
<v Michael Kennedy>over at the Talk Python membership,

00:28:15.320 --> 00:28:16.800
<v Michael Kennedy>this week, if you go to the tech meetups,

00:28:17.000 --> 00:28:18.240
<v Michael Kennedy>guess what's coming on Wednesday?

00:28:18.620 --> 00:28:18.960
<v Calvin Hendryx-Parker>On Wednesday.

00:28:19.900 --> 00:28:21.840
<v Michael Kennedy>Yeah, the building and maintaining

00:28:21.890 --> 00:28:23.080
<v Michael Kennedy>your own infrastructure for Python.

00:28:23.300 --> 00:28:23.840
<v Michael Kennedy>I'm going to be doing that.

00:28:23.930 --> 00:28:25.100
<v Michael Kennedy>And I have some surprises

00:28:25.320 --> 00:28:27.000
<v Michael Kennedy>I'm not going to really tell anyone

00:28:27.450 --> 00:28:28.440
<v Michael Kennedy>until that talk.

00:28:28.510 --> 00:28:29.080
<v Calvin Hendryx-Parker>You got to be there.

00:28:29.340 --> 00:28:29.900
<v Michael Kennedy>Got to show up.

00:28:29.910 --> 00:28:32.040
<v Michael Kennedy>So I'll link to that in the show notes as well.

00:28:32.340 --> 00:28:33.100
<v Michael Kennedy>And with that,

00:28:33.460 --> 00:28:34.960
<v Michael Kennedy>let's close it out with a joke.

00:28:35.380 --> 00:28:35.660
<v Calvin Hendryx-Parker>All right.

00:28:36.080 --> 00:28:39.340
<v Michael Kennedy>So this is a, what would you choose, Calvin?

00:28:39.440 --> 00:28:40.540
<v Michael Kennedy>I'm going to pose this to you.

00:28:40.840 --> 00:28:40.960
<v Calvin Hendryx-Parker>Okay.

00:28:40.980 --> 00:28:44.980
<v Michael Kennedy>You probably haven't seen this because I just picked this joke five minutes before the show started.

00:28:45.280 --> 00:28:45.660
<v Michael Kennedy>So here we go.

00:28:45.940 --> 00:28:48.340
<v Michael Kennedy>It's like the Ren and Stimpy button.

00:28:48.500 --> 00:28:49.620
<v Michael Kennedy>Like, which would you choose?

00:28:49.820 --> 00:28:50.060
<v Michael Kennedy>Oh,

00:28:50.260 --> 00:28:50.700
<v Michael Kennedy>so stressful.

00:28:50.940 --> 00:28:52.120
<v Michael Kennedy>Which big red button would you press?

00:28:52.580 --> 00:28:55.440
<v Michael Kennedy>One is, what code would you rather maintain?

00:28:55.820 --> 00:28:57.240
<v Michael Kennedy>Fix and maintain your code of choice.

00:28:57.700 --> 00:29:02.140
<v Michael Kennedy>Fortran code from 1969 or Vibe code from 2025?

00:29:03.680 --> 00:29:04.340
<v Michael Kennedy>I don't know.

00:29:04.840 --> 00:29:05.420
<v Calvin Hendryx-Parker>I'm going to go.

00:29:07.340 --> 00:29:07.920
<v Calvin Hendryx-Parker>That's hard.

00:29:08.180 --> 00:29:08.480
<v Calvin Hendryx-Parker>Fortran.

00:29:09.340 --> 00:29:14.540
<v Michael Kennedy>are you going Fortran maybe I'm going vibe code I'm at least it's in like modern tools well if I

00:29:14.600 --> 00:29:19.600
<v Calvin Hendryx-Parker>can maintain it with uh modern tools yeah well yeah dude this is do you have to maintain it by hand

00:29:19.960 --> 00:29:25.160
<v Michael Kennedy>then oh I don't know gosh I still don't know it could be a modern language but it's gonna be

00:29:25.300 --> 00:29:31.380
<v Calvin Hendryx-Parker>gnarly it better be a modern language I know I mean that was my first computer science class I ever

00:29:31.420 --> 00:29:37.339
<v Michael Kennedy>took in college was Fortran mine too I tried to take C++ and I was in an engineering program they

00:29:37.360 --> 00:29:41.480
<v Michael Kennedy>said you could take that as an elective you have to do fortran first that would be the most important

00:29:42.140 --> 00:29:46.500
<v Michael Kennedy>right course you will ever take in your life i'm like you guys are so out of touch i cannot believe

00:29:46.580 --> 00:29:53.000
<v Michael Kennedy>i was like please let me take this please please like nope f77 yeah it was amazing amazingly uh

00:29:53.320 --> 00:29:58.620
<v Michael Kennedy>something anyway i don't know what i would pick but it is a very stressful red button that is a

00:29:58.620 --> 00:30:05.219
<v Michael Kennedy>very stressful not stressful was our episode was it no it was really good thank you for joining us

00:30:05.300 --> 00:30:06.800
<v Calvin Hendryx-Parker>and we'll see you all.

00:30:07.080 --> 00:30:08.480
<v Calvin Hendryx-Parker>Are we recording next week?

00:30:08.680 --> 00:30:09.740
<v Calvin Hendryx-Parker>We're a week off in there someplace.

00:30:10.160 --> 00:30:10.940
<v Calvin Hendryx-Parker>But perhaps.

00:30:11.440 --> 00:30:11.640
<v Calvin Hendryx-Parker>Perhaps.

00:30:11.820 --> 00:30:12.520
<v Calvin Hendryx-Parker>Or we'll see you next week.

00:30:12.840 --> 00:30:13.440
<v Calvin Hendryx-Parker>Or soon on the air.

00:30:13.440 --> 00:30:14.640
<v Michael Kennedy>We'll leave a surprise for the listeners.

00:30:15.280 --> 00:30:15.420
<v Calvin Hendryx-Parker>Right.

00:30:16.120 --> 00:30:18.400
<v Calvin Hendryx-Parker>You just have to go to pythonbytes.fm

00:30:18.400 --> 00:30:19.020
<v Calvin Hendryx-Parker>and check and see.

00:30:19.280 --> 00:30:19.640
<v Michael Kennedy>That's right.

00:30:20.000 --> 00:30:20.180
<v Michael Kennedy>All right.

00:30:20.380 --> 00:30:20.840
<v Calvin Hendryx-Parker>We'll see you all later.