WEBVTT

00:00:00.040 --> 00:00:05.320
<v Michael Kennedy>Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:00:05.880 --> 00:00:11.840
<v Michael Kennedy>This is episode 456, recorded November 3rd, 2025. I am Michael Kennedy.

00:00:12.180 --> 00:00:13.160
<v Michael Kennedy>And I am Brian Okken.

00:00:13.480 --> 00:00:19.420
<v Michael Kennedy>And Brian, I'm getting Guns N' Roses vibes. It's raining outside, it's November. Come on.

00:00:20.000 --> 00:00:20.640
<v Michael Kennedy>Guns N' Roses?

00:00:21.080 --> 00:00:27.760
<v Michael Kennedy>That's one of their songs. That's like, once they were kind of cool, then they became some other band that was more of like love ballads.

00:00:28.240 --> 00:00:29.580
<v Michael Kennedy>November Rain, it's a Guns N' Roses song.

00:00:29.760 --> 00:00:34.520
<v Brian Okken>Oh, okay. November rain. Okay. Got it. I'm like, yeah, it's, it's rainy in the Northwest. That's

00:00:34.560 --> 00:00:39.100
<v Michael Kennedy>just not that much news, but no, that's like, no, I got to go back. We're going to do music

00:00:39.220 --> 00:00:44.860
<v Michael Kennedy>that completely entirely encompasses all of Pearl Jam, all the Nirvana, all the Soundgarden period.

00:00:46.100 --> 00:00:50.740
<v Michael Kennedy>November rain or rainy in the Northwest, like the whole grunge movement. Right. Yeah, definitely.

00:00:51.400 --> 00:00:55.920
<v Michael Kennedy>And I would just, I mean, look, I'm getting some support from the audience here. Rhett out there

00:00:55.940 --> 00:00:57.720
<v Michael Kennedy>already saying November Rain is one of the greatest

00:00:58.040 --> 00:00:59.840
<v Michael Kennedy>rock ballads of all time. And I agree.

00:01:00.000 --> 00:01:02.000
<v Michael Kennedy>Thank you, Rhett. Although I will throw a Tesla out there

00:01:02.080 --> 00:01:04.160
<v Michael Kennedy>as the greatest rock ballads of all time

00:01:04.320 --> 00:01:05.920
<v Michael Kennedy>band. Alright. Are we

00:01:06.440 --> 00:01:07.040
<v Michael Kennedy>off track yet, Brian?

00:01:07.820 --> 00:01:10.020
<v Michael Kennedy>This episode is brought to you by us.

00:01:10.880 --> 00:01:12.020
<v Michael Kennedy>We've got a bunch of fun things.

00:01:12.500 --> 00:01:12.980
<v Michael Kennedy>We have

00:01:14.100 --> 00:01:15.520
<v Michael Kennedy>Tesla the band. Not the

00:01:15.800 --> 00:01:17.420
<v Michael Kennedy>scientist. Not the company.

00:01:17.760 --> 00:01:19.980
<v Michael Kennedy>We both have awesome books. You should check them

00:01:20.160 --> 00:01:22.200
<v Michael Kennedy>out. Brian, yours has been around for a while.

00:01:22.560 --> 00:01:23.920
<v Michael Kennedy>I don't know if you're ever going to write another one,

00:01:24.020 --> 00:01:25.900
<v Michael Kennedy>but we'll see. And how many

00:01:25.920 --> 00:01:27.440
<v Michael Kennedy>How many people write the second book, right?

00:01:27.740 --> 00:01:30.380
<v Michael Kennedy>You know, I imagine that you might do something like this.

00:01:30.580 --> 00:01:31.960
<v Michael Kennedy>And my book's going really well.

00:01:32.100 --> 00:01:33.720
<v Michael Kennedy>The Talk Python in production.

00:01:34.360 --> 00:01:37.840
<v Michael Kennedy>Like, hey, maybe we could do simplified, affordable, but still fast and professional.

00:01:38.240 --> 00:01:40.740
<v Michael Kennedy>Posting of our apps without hyperscale clouds.

00:01:41.120 --> 00:01:43.820
<v Michael Kennedy>And 100 services and cloud engineers and all that.

00:01:44.060 --> 00:01:49.640
<v Michael Kennedy>And if you want to be part of this show live, you can join us live.

00:01:50.160 --> 00:01:51.040
<v Michael Kennedy>Are we changing times, Ryan?

00:01:51.180 --> 00:01:51.900
<v Michael Kennedy>It's 11.

00:01:52.380 --> 00:01:53.320
<v Michael Kennedy>We're good now, isn't it?

00:01:53.800 --> 00:01:57.180
<v Brian Okken>Well, as far as my work schedule goes right now, 11 works.

00:01:57.720 --> 00:01:58.160
<v Michael Kennedy>All right, everyone.

00:01:58.200 --> 00:02:00.000
<v Michael Kennedy>I just want you to know what I'm out here doing for you.

00:02:00.080 --> 00:02:04.980
<v Michael Kennedy>So I'm going to have to go back and edit 455 episodes where we said,

00:02:05.260 --> 00:02:07.120
<v Michael Kennedy>watch the live stream at Monday at 10 a.m.

00:02:07.460 --> 00:02:10.420
<v Michael Kennedy>I'm going to have to replace that with watch the live stream at Monday at 11 a.m.

00:02:10.500 --> 00:02:11.960
<v Brian Okken>You're not actually going to do that, are you?

00:02:12.180 --> 00:02:13.680
<v Brian Okken>No, I'm not going to do that.

00:02:16.220 --> 00:02:17.580
<v Michael Kennedy>Nonetheless, AI can do it for me.

00:02:17.720 --> 00:02:18.240
<v Michael Kennedy>That's not happening.

00:02:18.840 --> 00:02:21.740
<v Michael Kennedy>But going forward, if you want to join us for the live stream,

00:02:21.780 --> 00:02:24.640
<v Michael Kennedy>please do so at exactly this time, 11 a.m.

00:02:24.920 --> 00:02:26.580
<v Michael Kennedy>I'm sure there's some sort of time zone weirdness

00:02:26.620 --> 00:02:27.440
<v Michael Kennedy>because we just changed time,

00:02:27.620 --> 00:02:31.180
<v Michael Kennedy>but Pacific Standard Time until it becomes daylight time.

00:02:31.340 --> 00:02:32.060
<v Michael Kennedy>We'd love to have you.

00:02:32.420 --> 00:02:34.820
<v Michael Kennedy>We'd love people in the audience with feedback and thoughts

00:02:35.000 --> 00:02:35.840
<v Michael Kennedy>and all that kind of fun stuff.

00:02:36.120 --> 00:02:36.680
<v Michael Kennedy>Check out the newsletter.

00:02:37.180 --> 00:02:37.660
<v Michael Kennedy>It's really great.

00:02:37.780 --> 00:02:38.480
<v Michael Kennedy>We've been telling you about it.

00:02:38.720 --> 00:02:39.860
<v Michael Kennedy>Sign up, pythonbytes.fm/.

00:02:40.440 --> 00:02:41.780
<v Michael Kennedy>I'll just go there and click the newsletter button.

00:02:42.040 --> 00:02:43.460
<v Michael Kennedy>All right, Brian, what are you clicking first?

00:02:44.800 --> 00:02:48.260
<v Brian Okken>So I want to talk about some news that came out last week.

00:02:49.880 --> 00:02:52.240
<v Brian Okken>There's on the wrong one.

00:02:52.320 --> 00:02:52.700
<v Brian Okken>There we go.

00:02:54.080 --> 00:02:58.800
<v Brian Okken>The PSF, the PSF wanted to try to get, try to get some money from the National Science

00:02:59.060 --> 00:02:59.140
<v Brian Okken>Foundation.

00:02:59.680 --> 00:02:59.760
<v Brian Okken>Actually.

00:03:00.720 --> 00:03:04.280
<v Brian Okken>So this was in January of 20th, January of 2025.

00:03:05.260 --> 00:03:11.040
<v Brian Okken>There was a, a really kind of an interesting grant under the safety, security, and privacy

00:03:11.400 --> 00:03:18.260
<v Brian Okken>of open source ecosystems program, which totally seems like a perfect thing for the PSF to try

00:03:18.260 --> 00:03:20.300
<v Brian Okken>to get some money for Seth and others

00:03:21.100 --> 00:03:22.480
<v Brian Okken>to make sure that the PSF

00:03:23.060 --> 00:03:24.260
<v Brian Okken>and Python code is all secure.

00:03:24.980 --> 00:03:26.560
<v Brian Okken>Yeah, especially I think the supply chain

00:03:26.800 --> 00:03:28.060
<v Brian Okken>side, if I remember correctly.

00:03:28.400 --> 00:03:28.800
<v Michael Kennedy>Something like that.

00:03:30.000 --> 00:03:32.460
<v Brian Okken>However, and they put in a ton of work

00:03:33.620 --> 00:03:34.220
<v Brian Okken>and then

00:03:36.300 --> 00:03:37.820
<v Brian Okken>our current administration

00:03:38.560 --> 00:03:39.960
<v Brian Okken>says in order to

00:03:40.560 --> 00:03:42.240
<v Brian Okken>get this money, you have to

00:03:43.300 --> 00:03:44.320
<v Brian Okken>agree that

00:03:44.720 --> 00:03:45.900
<v Brian Okken>you will basically

00:03:46.480 --> 00:03:48.220
<v Brian Okken>not have any sort of diversity

00:03:48.240 --> 00:03:55.740
<v Brian Okken>anything is part of your whatever. And, you know, what's going on? You have to affirm that we do not

00:03:55.880 --> 00:04:00.820
<v Brian Okken>and will not during the term of this financial assistance award operate any programs or advance

00:04:01.120 --> 00:04:09.000
<v Brian Okken>any or promote DEI or discriminatory equity, whatever. All that normal, wacky politics stuff

00:04:09.120 --> 00:04:14.340
<v Brian Okken>that's going on in the US right now. Well, that's a tough bite for the PSF because it wouldn't just

00:04:14.360 --> 00:04:19.120
<v Brian Okken>be the security stuff. It would be everything the PSF does. And in the mission statement,

00:04:19.130 --> 00:04:24.520
<v Brian Okken>the mission statement of the Python Software Foundation is to promote, protect, and advance

00:04:24.670 --> 00:04:29.460
<v Brian Okken>the Python programming language and to support and facilitate the growth of a diverse and

00:04:29.700 --> 00:04:34.860
<v Brian Okken>international community of Python programmers. Does that violate? We don't know. So they like,

00:04:35.160 --> 00:04:39.880
<v Brian Okken>you know, checked with a bunch of people and basically said it's too risky because

00:04:39.900 --> 00:04:45.480
<v Brian Okken>if the administration decides you violated it, they can take back the money, even if you've

00:04:45.480 --> 00:04:52.140
<v Brian Okken>already spent it. That's crazy. And I'm glad, basically the PSF said, too high of a risk,

00:04:52.580 --> 00:04:57.980
<v Brian Okken>and we're not going to do that. So they said no, they took back the proposal.

00:04:58.460 --> 00:05:02.320
<v Michael Kennedy>I think they basically, they were going to win it, it's my understanding, like it was

00:05:03.360 --> 00:05:08.360
<v Michael Kennedy>turned down 1.5 million, which if you think about it is something like 25% of the revenue,

00:05:08.640 --> 00:05:14.460
<v Michael Kennedy>that's a really big significant chunk yeah i mean huge amount of money and a small amount of money

00:05:14.510 --> 00:05:20.440
<v Brian Okken>for the national science foundation huge amount of money for the psf um it's a it's unfortunate

00:05:20.720 --> 00:05:28.540
<v Brian Okken>but um anyway uh we're gonna link to the uh the psf announcement but there's also um uh simon

00:05:28.700 --> 00:05:35.680
<v Brian Okken>willison has a a shorter and really good write-up he's um uh he's he's part of the decision too and

00:05:35.700 --> 00:05:41.420
<v Brian Okken>agrees with it. Apparently it was, it was unanimous. So he's on one of the, one of the board members

00:05:41.450 --> 00:05:47.740
<v Brian Okken>who voted to reject the funding. And then there's, there's also articles from Mars Technica about

00:05:47.980 --> 00:05:54.540
<v Brian Okken>this because it's a big news. And also the register has an interesting article on it. So

00:05:54.550 --> 00:05:59.520
<v Michael Kennedy>we'll link to those, but yeah, that is a little bit more broad coverage of inside baseball and

00:05:59.540 --> 00:06:06.640
<v Brian Okken>python than we usually get yeah uh it's unfortunate too but so i'm um i'm gonna bump up my uh my

00:06:06.820 --> 00:06:13.620
<v Brian Okken>donation to the psf um um and there's a link in most of these are at least in the main article

00:06:13.820 --> 00:06:18.420
<v Brian Okken>and uh simon wilson has a link there also if you'd like to if you think what they're doing is right

00:06:18.580 --> 00:06:24.120
<v Brian Okken>and good stuff and i i actually really love the what what well everybody does but um uh bringing

00:06:24.320 --> 00:06:28.319
<v Brian Okken>seth on board was pretty cool and he's doing some neat things with security and so so are other

00:06:28.300 --> 00:06:33.720
<v Brian Okken>people. So yeah, anyway, that's that. Yeah. More security is good for us, but yeah, it's got to pay

00:06:33.720 --> 00:06:40.000
<v Michael Kennedy>for it. That's tricky. Talk about serialization and there is no funding or nothing in the serial

00:06:40.100 --> 00:06:44.480
<v Michael Kennedy>just straight serialization, Brian. So check this out. So one thing that's really popular,

00:06:44.690 --> 00:06:48.780
<v Michael Kennedy>I don't know if you've heard of them before, but Pydantic, it's pretty popular. Some people use it

00:06:49.020 --> 00:06:52.980
<v Michael Kennedy>for, they have JSON and they want to get into Python objects. They use this thing called Pydantic.

00:06:53.400 --> 00:06:57.640
<v Michael Kennedy>Yeah, it's kind of a big deal. It is, but here's what the Pydantic things do.

00:06:58.140 --> 00:06:59.840
<v Michael Kennedy>they exchange JSON, right?

00:07:00.160 --> 00:07:02.560
<v Michael Kennedy>And JSON can be extremely verbose,

00:07:03.440 --> 00:07:05.520
<v Michael Kennedy>aka takes a lot of memory during caching.

00:07:05.920 --> 00:07:08.220
<v Michael Kennedy>So let's suppose I have a list of a thousand customers.

00:07:08.460 --> 00:07:10.080
<v Michael Kennedy>Each customer has a street address,

00:07:10.540 --> 00:07:12.580
<v Michael Kennedy>country, postal code, et cetera, et cetera, right?

00:07:12.820 --> 00:07:15.640
<v Michael Kennedy>Those words are repeated a thousand times

00:07:15.760 --> 00:07:16.700
<v Michael Kennedy>for how many customers I said,

00:07:16.800 --> 00:07:18.080
<v Michael Kennedy>a hundred, a thousand, whatever, right?

00:07:18.300 --> 00:07:20.040
<v Michael Kennedy>Those are, they're very verbose.

00:07:20.220 --> 00:07:20.860
<v Michael Kennedy>It's great for humans.

00:07:21.220 --> 00:07:23.160
<v Michael Kennedy>It's way, way better than XML.

00:07:23.640 --> 00:07:25.940
<v Michael Kennedy>Thank you for XML mostly going away,

00:07:26.360 --> 00:07:27.840
<v Michael Kennedy>But it's still pretty verbose.

00:07:27.880 --> 00:07:29.880
<v Michael Kennedy>So when you say, like, maybe I want to use Pydantic models,

00:07:29.980 --> 00:07:34.900
<v Michael Kennedy>but then I want to store those things in, like, some kind of cached setup, right?

00:07:35.100 --> 00:07:38.160
<v Michael Kennedy>Like a Redist or a disk cache.

00:07:38.240 --> 00:07:40.380
<v Michael Kennedy>Like, man, I'm psyched about disk cache these days.

00:07:41.160 --> 00:07:42.780
<v Michael Kennedy>So many places I see that I can use it.

00:07:43.120 --> 00:07:45.720
<v Michael Kennedy>But if you put the JSON in there, then you're taking up a lot of space.

00:07:46.020 --> 00:07:53.660
<v Michael Kennedy>So this project announced on Reddit by Lucky2Yan is called,

00:07:54.200 --> 00:07:55.280
<v Michael Kennedy>what's the actual project called?

00:07:55.540 --> 00:08:03.080
<v Michael Kennedy>It's called PyByntic, is in Pydantic, so binary Pydantic, which is interesting.

00:08:03.200 --> 00:08:13.680
<v Michael Kennedy>So it says, I built a compact binary serializer for Pydantic models that dramatically reduces the RAM and or disk storage for caches compared to JSON.

00:08:13.880 --> 00:08:17.280
<v Michael Kennedy>The library is designed for high load systems like Redis caching Valkey.

00:08:17.600 --> 00:08:22.180
<v Michael Kennedy>If you're doing Redis, you can also look at Valkey, where millions of models are stored in memory and every byte matters.

00:08:22.620 --> 00:08:26.180
<v Michael Kennedy>It serializes Pydantic models into minimal binary formats

00:08:26.360 --> 00:08:29.080
<v Michael Kennedy>and deserializes them back with zero extra metadata overhead.

00:08:29.380 --> 00:08:29.480
<v Michael Kennedy>Cool.

00:08:30.500 --> 00:08:31.860
<v Michael Kennedy>If you look-- is there a graph here?

00:08:32.180 --> 00:08:33.960
<v Michael Kennedy>No, there is the graph on the GitHub page.

00:08:34.280 --> 00:08:35.539
<v Michael Kennedy>So there is a graph about the size,

00:08:35.640 --> 00:08:38.180
<v Michael Kennedy>but it's something like seven times smaller.

00:08:38.860 --> 00:08:39.360
<v Michael Kennedy>There's a bunch here.

00:08:39.700 --> 00:08:39.900
<v Michael Kennedy>Let's look.

00:08:40.180 --> 00:08:44.180
<v Michael Kennedy>It compares to JSON, which is, let's say, 35 gigs.

00:08:44.560 --> 00:08:46.840
<v Michael Kennedy>And then Pybantic--

00:08:46.920 --> 00:08:48.100
<v Michael Kennedy>I'm having problems here--

00:08:48.120 --> 00:08:52.860
<v Michael Kennedy>It is 4.6, which is like nine, eight times smaller than JSON.

00:08:53.280 --> 00:08:54.300
<v Michael Kennedy>But that's pretty interesting.

00:08:54.740 --> 00:08:56.380
<v Michael Kennedy>But here's what is actually really crazy.

00:08:56.600 --> 00:08:59.380
<v Michael Kennedy>It's also four times smaller than MessagePack,

00:08:59.680 --> 00:09:01.600
<v Michael Kennedy>five times smaller than BinaryJSON,

00:09:02.060 --> 00:09:04.260
<v Michael Kennedy>and half as big as Protobuf.

00:09:04.520 --> 00:09:05.000
<v Michael Kennedy>Oh, interesting.

00:09:05.620 --> 00:09:06.900
<v Michael Kennedy>And Rhett out there is right there.

00:09:07.020 --> 00:09:08.080
<v Michael Kennedy>Thank you, Rhett, for the handoff.

00:09:08.240 --> 00:09:09.400
<v Michael Kennedy>So why not just use Protobuf?

00:09:09.580 --> 00:09:10.660
<v Michael Kennedy>Well, it's twice as small,

00:09:10.880 --> 00:09:14.700
<v Michael Kennedy>so it depends how much you are really worried about that, right?

00:09:14.860 --> 00:09:17.980
<v Michael Kennedy>And how much do you want to just serialize your bidentic models?

00:09:18.080 --> 00:09:26.180
<v Michael Kennedy>So anyway, I thought this was interesting in a way that it would say, look, maybe we don't just necessarily store everything in JSON.

00:09:26.860 --> 00:09:28.160
<v Michael Kennedy>Maybe it's this Pybantic thing.

00:09:28.480 --> 00:09:34.240
<v Michael Kennedy>Or maybe, as Rhett is pointing out in the audience, maybe you want something more interchangeable and more well-known.

00:09:34.560 --> 00:09:35.160
<v Michael Kennedy>Use protobuf.

00:09:35.560 --> 00:09:38.280
<v Michael Kennedy>So it's a chance to talk about this new project, which is interesting.

00:09:38.560 --> 00:09:43.100
<v Michael Kennedy>But also just to talk about there's interesting, well-known serialization formats that you can use.

00:09:43.400 --> 00:09:43.660
<v Brian Okken>Yeah.

00:09:44.160 --> 00:09:44.280
<v Brian Okken>Yeah.

00:09:44.560 --> 00:09:46.200
<v Brian Okken>And I think we can get those numbers better.

00:09:46.460 --> 00:09:49.800
<v Brian Okken>If we come up with a benchmark with really long names,

00:09:50.160 --> 00:09:51.080
<v Brian Okken>I'll get repeated.

00:09:51.540 --> 00:09:53.540
<v Brian Okken>Like Boolean objects that are just like,

00:09:53.800 --> 00:09:56.100
<v Brian Okken>the street that I lived on when I was a kid.

00:09:58.239 --> 00:09:59.040
<v Michael Kennedy>Underscore, yeah.

00:10:00.160 --> 00:10:03.480
<v Michael Kennedy>Street that I lived on underscore kid as a kid confirmed,

00:10:03.680 --> 00:10:05.080
<v Michael Kennedy>true or false, and so on, right?

00:10:05.540 --> 00:10:09.500
<v Michael Kennedy>We could crush it in anything that drops the, drop it.

00:10:09.800 --> 00:10:11.300
<v Michael Kennedy>So yeah, someone else out there say,

00:10:11.380 --> 00:10:12.780
<v Michael Kennedy>all these things sound kind of interesting

00:10:12.900 --> 00:10:15.040
<v Michael Kennedy>until you need to open up a REST client and debug the API.

00:10:15.480 --> 00:10:16.800
<v Michael Kennedy>I don't believe, yes, that's true.

00:10:16.880 --> 00:10:20.800
<v Michael Kennedy>And I don't believe that this is necessarily an API exchange format.

00:10:21.040 --> 00:10:23.840
<v Michael Kennedy>This is a caching story, right?

00:10:24.040 --> 00:10:29.260
<v Michael Kennedy>Like if I'm going to write it to disk cache or to Redis or Valkey, you know, I'm probably

00:10:29.280 --> 00:10:29.800
<v Michael Kennedy>not going to look at it.

00:10:29.800 --> 00:10:32.100
<v Michael Kennedy>I'm just going, is it still there or do I just throw it away, right?

00:10:32.260 --> 00:10:33.580
<v Michael Kennedy>Maybe you do, but maybe you don't.

00:10:33.740 --> 00:10:33.860
<v Michael Kennedy>Right.

00:10:33.940 --> 00:10:36.900
<v Michael Kennedy>Anyway, yes, everyone has pointed out some of that.

00:10:36.920 --> 00:10:40.140
<v Michael Kennedy>There are certainly trade-offs of binary data, but I think it's pretty interesting.

00:10:40.400 --> 00:10:40.500
<v Michael Kennedy>Yeah.

00:10:40.640 --> 00:10:46.000
<v Michael Kennedy>As you know, look, the thing is often the very first limit you hit when you're in any sort

00:10:46.000 --> 00:10:51.120
<v Michael Kennedy>of cloud computing environment is way, way sooner memory than CPU.

00:10:51.660 --> 00:10:54.300
<v Michael Kennedy>Memory is so much more expensive than CPU.

00:10:54.760 --> 00:10:58.820
<v Michael Kennedy>And this can give you, you know, half, five times less scale in that regard.

00:10:58.940 --> 00:11:01.720
<v Michael Kennedy>So you might be, you know, that's where you start.

00:11:01.880 --> 00:11:03.960
<v Michael Kennedy>This is not when I'm just like prototyping my app.

00:11:03.960 --> 00:11:04.980
<v Michael Kennedy>Like, let's start with this, right?

00:11:05.080 --> 00:11:09.240
<v Michael Kennedy>This is where you're like, we could go from a thousand dollar server to a $50 server.

00:11:09.500 --> 00:11:14.080
<v Michael Kennedy>If we didn't have to store this much stuff in memory for caching and it would still be faster.

00:11:14.400 --> 00:11:15.180
<v Michael Kennedy>You know, that kind of thing.

00:11:15.480 --> 00:11:15.600
<v Brian Okken>Yeah.

00:11:15.960 --> 00:11:16.060
<v Michael Kennedy>Yeah.

00:11:16.140 --> 00:11:23.000
<v Brian Okken>And there's still like, I don't know if this would be useful in those cases, but there's still non-web cases where memory is important.

00:11:23.640 --> 00:11:24.620
<v Brian Okken>Oh, right.

00:11:24.760 --> 00:11:25.600
<v Brian Okken>What are you talking about?

00:11:25.600 --> 00:11:26.560
<v Michael Kennedy>Internet things and stuff like that.

00:11:26.660 --> 00:11:27.320
<v Brian Okken>Embedded systems.

00:11:27.980 --> 00:11:29.320
<v Michael Kennedy>There's stuff other than the web?

00:11:29.360 --> 00:11:29.460
<v Michael Kennedy>No.

00:11:30.660 --> 00:11:31.060
<v Brian Okken>I know.

00:11:31.180 --> 00:11:34.540
<v Brian Okken>I'm an old, old crafty guy that actually programs things.

00:11:36.139 --> 00:11:36.540
<v Brian Okken>Crazy.

00:11:36.840 --> 00:11:37.220
<v Michael Kennedy>No, here.

00:11:37.560 --> 00:11:38.160
<v Michael Kennedy>What's your next thing?

00:11:38.180 --> 00:11:38.740
<v Michael Kennedy>Tell us about it.

00:11:39.060 --> 00:11:39.260
<v Brian Okken>Okay.

00:11:39.360 --> 00:11:41.340
<v Brian Okken>Well, this is t-strings.

00:11:41.450 --> 00:11:41.980
<v Brian Okken>These are new.

00:11:42.640 --> 00:11:44.200
<v Brian Okken>Actually, we've talked about t-strings before,

00:11:44.680 --> 00:11:48.060
<v Brian Okken>but now everybody can play with them because 3.4, 1.4.

00:11:48.620 --> 00:11:49.840
<v Brian Okken>3.14 is out.

00:11:49.990 --> 00:11:51.260
<v Brian Okken>Yeah, they're officially a thing.

00:11:52.300 --> 00:11:53.360
<v Brian Okken>But they're a little,

00:11:53.900 --> 00:11:56.240
<v Brian Okken>I think we're going to cover them probably a few more times

00:11:59.330 --> 00:12:01.680
<v Brian Okken>because they're a little bit harder to get your head around

00:12:01.810 --> 00:12:03.040
<v Brian Okken>than everything else before.

00:12:03.390 --> 00:12:04.220
<v Brian Okken>So I really appreciate,

00:12:04.420 --> 00:12:06.180
<v Brian Okken>there's an article from Trey Hunter,

00:12:06.260 --> 00:12:09.560
<v Brian Okken>t-strings, Python's fifth string formatting technique?

00:12:10.480 --> 00:12:12.980
<v Michael Kennedy>There should be one and only one way to do things

00:12:13.090 --> 00:12:14.340
<v Michael Kennedy>unless it has to do with strings.

00:12:14.760 --> 00:12:17.580
<v Brian Okken>Yeah, or lots of other things.

00:12:18.320 --> 00:12:19.920
<v Michael Kennedy>Or paths, or what else are we talking about?

00:12:20.300 --> 00:12:22.920
<v Brian Okken>So one of the cool things is,

00:12:23.250 --> 00:12:24.780
<v Brian Okken>and I haven't really thought about this,

00:12:24.810 --> 00:12:26.440
<v Brian Okken>is the history of string formatting.

00:12:26.680 --> 00:12:28.440
<v Brian Okken>He goes through a very brief history.

00:12:29.460 --> 00:12:31.220
<v Brian Okken>Percent strings, I kind of remember those.

00:12:31.640 --> 00:12:33.160
<v Brian Okken>Yeah, I totally remember using those,

00:12:33.220 --> 00:12:38.840
<v Brian Okken>like %s and then % and then the tuple to fill them in and stuff.

00:12:39.000 --> 00:12:40.700
<v Brian Okken>So those sorts of template strings.

00:12:41.140 --> 00:12:44.860
<v Brian Okken>You've got string.template, which I actually, to tell you the truth,

00:12:45.620 --> 00:12:47.820
<v Brian Okken>that came in in 2.4, and I don't think I ever used it

00:12:48.160 --> 00:12:51.500
<v Brian Okken>because by 2.6, we had.format.

00:12:51.820 --> 00:12:54.860
<v Brian Okken>So Python.format, we used a lot.

00:12:55.010 --> 00:12:57.020
<v Brian Okken>I used that a lot over the years.

00:12:57.460 --> 00:12:58.880
<v Michael Kennedy>It's still a useful one, actually.

00:12:59.220 --> 00:13:00.220
<v Brian Okken>Yeah, definitely.

00:13:01.020 --> 00:13:05.020
<v Brian Okken>And also in a lot of places where you might grab t-strings now,

00:13:05.200 --> 00:13:08.020
<v Brian Okken>they're still pretty useful because you can pass those around pretty well

00:13:08.520 --> 00:13:09.720
<v Brian Okken>and then format them later.

00:13:10.380 --> 00:13:14.400
<v Brian Okken>And that's sort of that delayed actually formatting part

00:13:16.100 --> 00:13:17.900
<v Brian Okken>where t-strings are going to be really cool.

00:13:18.180 --> 00:13:20.760
<v Brian Okken>So then we have f-strings, of course, and everybody loves f-strings.

00:13:21.500 --> 00:13:22.020
<v Brian Okken>I love them.

00:13:22.360 --> 00:13:25.300
<v Brian Okken>And what's interesting is I still think of f-strings as a new thing,

00:13:25.580 --> 00:13:26.940
<v Brian Okken>but they came in at 3.6.

00:13:27.100 --> 00:13:27.940
<v Brian Okken>That was so long ago.

00:13:28.280 --> 00:13:28.740
<v Brian Okken>I know.

00:13:28.760 --> 00:13:29.580
<v Brian Okken>That was real long ago.

00:13:29.780 --> 00:13:30.860
<v Brian Okken>It's wacky.

00:13:31.700 --> 00:13:34.020
<v Brian Okken>And then 314 has t-strings.

00:13:34.280 --> 00:13:38.160
<v Brian Okken>And the different thing about t-strings is they return a template.

00:13:38.250 --> 00:13:39.640
<v Brian Okken>They do not return a string.

00:13:40.080 --> 00:13:41.540
<v Brian Okken>So they are different beasts.

00:13:43.520 --> 00:13:46.980
<v Brian Okken>But the cool thing is, well, so why would you use them?

00:13:47.120 --> 00:13:51.860
<v Brian Okken>We've talked about this before, but I kind of like that Trey took a whack at explaining this.

00:13:52.240 --> 00:13:56.340
<v Brian Okken>They're more like you might want to use, I don't remember if he said it or somebody else.

00:13:56.720 --> 00:14:01.060
<v Brian Okken>It'll be very useful for library authors and framework people to be using t-strings.

00:14:01.540 --> 00:14:06.440
<v Brian Okken>Not sure how many people like in your own code you'll use it because f-strings are still pretty cool in format.

00:14:06.900 --> 00:14:22.420
<v Brian Okken>But he gives an example of a dedent function that is the issue with f-strings is the when you like that the interpolation of filling in the variables happens earlier and you can delay it with templates.

00:14:22.860 --> 00:14:24.500
<v Brian Okken>Essentially is what we're talking about.

00:14:24.750 --> 00:14:26.140
<v Brian Okken>And he goes through a dedent example.

00:14:26.400 --> 00:14:30.280
<v Brian Okken>And I actually, I'm going to have to just play with it more because I still got lost.

00:14:30.700 --> 00:14:32.260
<v Brian Okken>But this is a good attempt.

00:14:33.400 --> 00:14:35.000
<v Brian Okken>And I think this is cool.

00:14:35.880 --> 00:14:39.600
<v Brian Okken>And then one of the neat things, I love it when people do this, is why not?

00:14:39.780 --> 00:14:50.140
<v Brian Okken>If you're used to popping things on PyPI, he went ahead and called this better dident and his example and threw it up on PyPI.

00:14:50.290 --> 00:14:53.260
<v Brian Okken>So if you want to play with what he came up with, you can just install it, run it.

00:14:53.860 --> 00:14:54.060
<v Michael Kennedy>Okay.

00:14:54.700 --> 00:14:55.120
<v Michael Kennedy>Yeah, very fun.

00:14:55.920 --> 00:15:00.920
<v Michael Kennedy>i feel like he should create a not not just a bunch of separate little things that are for

00:15:01.060 --> 00:15:06.880
<v Michael Kennedy>his examples but like a mega like a morsels with a complex cli that like lets you dive into the

00:15:07.000 --> 00:15:12.820
<v Brian Okken>different examples i mean he he would have but the grant got canceled so oh i see well it's only the

00:15:12.920 --> 00:15:18.420
<v Brian Okken>security features that wouldn't make it oh yeah right never mind no that's actually a

00:15:18.470 --> 00:15:22.879
<v Brian Okken>decent idea like because he's got a lot of uh he's got a lot of stuff cool stuff on the python

00:15:22.900 --> 00:15:30.240
<v Brian Okken>the morsel site so yeah for sure okay let's talk about something called ron

00:15:30.300 --> 00:15:36.680
<v Michael Kennedy>cron board speaking of putting up a like a 2i or a CLI sort of thing so Brian

00:15:37.160 --> 00:15:42.780
<v Michael Kennedy>how many cron jobs have you done at this time they have weird syntax I don't know

00:15:42.780 --> 00:15:46.400
<v Michael Kennedy>if you're familiar with it but they have really weird little syntax that you can

00:15:46.460 --> 00:15:51.479
<v Michael Kennedy>put in I don't know if there's a good example on this thing but like star star

00:15:51.500 --> 00:15:57.460
<v Michael Kennedy>seven star like it's kind of hard to figure out like all the pieces understand what they mean see

00:15:57.460 --> 00:16:02.780
<v Michael Kennedy>what ones are on your machine and so on so this thing called cron board is a terminal app written

00:16:02.960 --> 00:16:11.020
<v Michael Kennedy>with textual and rich that is basically a shell friendly or ssh friendly tool for understanding

00:16:11.340 --> 00:16:16.759
<v Michael Kennedy>and using like look at telling me like what particular things are on here as a cron job

00:16:17.000 --> 00:16:23.300
<v Michael Kennedy>what are their settings you can see like it's 10 that 1-10 star star star three star and actually

00:16:23.340 --> 00:16:28.660
<v Michael Kennedy>the little thing validates the expression how often that actually means that runs and so on

00:16:29.080 --> 00:16:34.000
<v Brian Okken>isn't this cool yeah it is cool yeah yeah i always have to use some sort of tool to figure this out

00:16:34.200 --> 00:16:39.660
<v Michael Kennedy>because i know i'm like no i'm gonna get it wrong look it's so messy it's so weird i admire the

00:16:39.780 --> 00:16:44.440
<v Brian Okken>old graybeards that used to be able to just do this in their head or on paper but yeah not me

00:16:44.520 --> 00:16:45.260
<v Michael Kennedy>That's right.

00:16:45.330 --> 00:16:48.380
<v Michael Kennedy>Like this could definitely qualify for it's some form of Elvish joke.

00:16:49.860 --> 00:16:49.980
<v Michael Kennedy>Yeah.

00:16:50.340 --> 00:16:50.420
<v Michael Kennedy>Right.

00:16:50.600 --> 00:16:54.220
<v Michael Kennedy>I mean, we put it on regular expressions, but it could be on cron job expressions as well.

00:16:54.580 --> 00:16:54.640
<v Michael Kennedy>Yeah.

00:16:54.940 --> 00:16:56.400
<v Michael Kennedy>Anyway, that's all there is to it.

00:16:56.500 --> 00:16:58.480
<v Michael Kennedy>There's not a whole lot to say about it.

00:16:58.580 --> 00:17:00.240
<v Michael Kennedy>It's written in Python, which is fun.

00:17:00.750 --> 00:17:05.699
<v Brian Okken>So do you have, do you have, I'm thinking about why you chose this, maybe just for the fun of it,

00:17:05.880 --> 00:17:10.079
<v Brian Okken>but do you, do you have cron jobs in what you're doing on Talk Python?

00:17:10.339 --> 00:17:11.220
<v Michael Kennedy>Not exactly.

00:17:11.240 --> 00:17:14.699
<v Michael Kennedy>I sort of do, but a lot of it is like background.

00:17:14.990 --> 00:17:18.680
<v Michael Kennedy>I think it's more like a background task that checks every hour.

00:17:18.870 --> 00:17:21.540
<v Michael Kennedy>And so I've kind of kept it to that because I don't know.

00:17:21.709 --> 00:17:23.760
<v Michael Kennedy>I like, I'm sure people get this vibe about me,

00:17:23.860 --> 00:17:26.660
<v Michael Kennedy>but like I like stuff more cohesive and stuck together

00:17:26.880 --> 00:17:29.460
<v Michael Kennedy>and just like focused and not all spread out all over the place.

00:17:29.740 --> 00:17:31.700
<v Michael Kennedy>Like, okay, so this script runs on that cron job

00:17:31.770 --> 00:17:33.880
<v Michael Kennedy>and then this part checks the database and this thing over here.

00:17:33.890 --> 00:17:34.400
<v Michael Kennedy>You know what I mean?

00:17:34.480 --> 00:17:36.120
<v Michael Kennedy>Like, so if I can cram it together and go,

00:17:36.130 --> 00:17:39.400
<v Michael Kennedy>the part that needs that can also just run like a background thread

00:17:39.420 --> 00:17:43.160
<v Michael Kennedy>and every now and then just go, does that need checked or rebuilt or reindexed or whatever.

00:17:43.660 --> 00:17:46.640
<v Michael Kennedy>But I could certainly see places where if I was more comfortable with cron jobs,

00:17:46.710 --> 00:17:49.280
<v Michael Kennedy>I would do a better job with them and things would probably be simpler.

00:17:49.520 --> 00:17:50.140
<v Michael Kennedy>So there's that.

00:17:50.880 --> 00:17:51.540
<v Michael Kennedy>Yeah, cron board.

00:17:51.650 --> 00:17:51.940
<v Michael Kennedy>Check it out.

00:17:51.970 --> 00:17:52.300
<v Michael Kennedy>Looks fun.

00:17:52.580 --> 00:17:52.680
<v Michael Kennedy>Cool.

00:17:53.840 --> 00:17:54.400
<v Michael Kennedy>We're on to extras.

00:17:54.820 --> 00:17:55.640
<v Michael Kennedy>You're the only extra.

00:17:56.140 --> 00:17:57.020
<v Michael Kennedy>I ain't got nothing.

00:17:57.500 --> 00:17:57.860
<v Brian Okken>Okay.

00:17:57.990 --> 00:18:00.940
<v Brian Okken>Well, there's some exciting news.

00:18:00.990 --> 00:18:02.480
<v Brian Okken>I just heard this morning.

00:18:02.770 --> 00:18:04.220
<v Brian Okken>Oh, because it just happened this morning.

00:18:04.600 --> 00:18:10.180
<v Brian Okken>Barry Warsaw announced an 810 explicit lazy imports.

00:18:10.560 --> 00:18:11.940
<v Brian Okken>We've been talking about this for a while,

00:18:12.320 --> 00:18:14.760
<v Brian Okken>and it was not approved yet.

00:18:14.760 --> 00:18:17.240
<v Brian Okken>It was just a draft, but it is approved now.

00:18:17.910 --> 00:18:25.160
<v Brian Okken>So steering council happily and unanimously accepted 810 explicit lazy imports.

00:18:25.560 --> 00:18:27.060
<v Brian Okken>They have some input for the authors,

00:18:27.340 --> 00:18:31.240
<v Brian Okken>but basically a really nice commentary about...

00:18:31.260 --> 00:18:36.560
<v Michael Kennedy>revise and resubmit and sort of acceptance from the academic side.

00:18:36.810 --> 00:18:38.460
<v Michael Kennedy>Like we'll take it, but not as it is.

00:18:38.760 --> 00:18:39.360
<v Brian Okken>Yeah, it's okay.

00:18:39.730 --> 00:18:43.540
<v Brian Okken>Well, I mean, but that's kind of one of the cool things about the steering council,

00:18:43.710 --> 00:18:48.120
<v Brian Okken>because you can do things like when you submit something, you can like as this is done.

00:18:48.310 --> 00:18:52.100
<v Brian Okken>Actually, this was a really, really well-written, I thought, well-written PEP.

00:18:52.290 --> 00:18:56.580
<v Brian Okken>But you can say things like there's a few points, like what keyword do you use?

00:18:56.720 --> 00:19:00.640
<v Brian Okken>The PEP authors liked lazy, but there was a couple of other options.

00:19:01.140 --> 00:19:03.540
<v Brian Okken>And the steering council went through and tried to figure out

00:19:03.560 --> 00:19:04.960
<v Brian Okken>if they could come up with a better name.

00:19:05.240 --> 00:19:07.700
<v Brian Okken>I mean, if there's options, why not give it to the steering council

00:19:07.780 --> 00:19:10.340
<v Brian Okken>and say, you guys can decide if you want.

00:19:10.540 --> 00:19:12.440
<v Brian Okken>But yeah, so pretty cool.

00:19:12.640 --> 00:19:15.920
<v Michael Kennedy>I wonder what that means for anybody that has a global variable

00:19:16.100 --> 00:19:17.580
<v Michael Kennedy>named lazy in terms of compatibility.

00:19:18.040 --> 00:19:21.600
<v Brian Okken>I mean, it would be fine as long as they don't use it

00:19:21.660 --> 00:19:22.760
<v Brian Okken>in the import statement.

00:19:22.980 --> 00:19:25.700
<v Brian Okken>I think it probably would not do anything at all.

00:19:26.320 --> 00:19:29.040
<v Michael Kennedy>I know the early Python parser had a hard time

00:19:29.180 --> 00:19:30.660
<v Michael Kennedy>with disambiguating that kind of stuff.

00:19:30.940 --> 00:19:33.520
<v Michael Kennedy>but I think maybe the peg parser is more advanced.

00:19:33.980 --> 00:19:35.000
<v Michael Kennedy>Well, no, the peg parser is more advanced.

00:19:35.140 --> 00:19:35.860
<v Michael Kennedy>Maybe it can handle it.

00:19:36.140 --> 00:19:40.020
<v Michael Kennedy>Like in C#, they have certain words

00:19:40.540 --> 00:19:42.820
<v Michael Kennedy>that they themselves are not keywords,

00:19:43.100 --> 00:19:44.920
<v Michael Kennedy>but taken as a pair, they are keywords,

00:19:45.520 --> 00:19:47.120
<v Michael Kennedy>like lazy space import.

00:19:47.320 --> 00:19:51.220
<v Michael Kennedy>So in C#, you have yield return is a keyword thing,

00:19:51.410 --> 00:19:53.940
<v Michael Kennedy>but you can have a variable named yield as well,

00:19:53.950 --> 00:19:56.680
<v Michael Kennedy>and they will be understood as different by the parser.

00:19:56.730 --> 00:19:58.980
<v Michael Kennedy>And I think that that was not true in early Python,

00:19:59.220 --> 00:20:00.160
<v Michael Kennedy>but I could be wrong about that.

00:20:00.460 --> 00:20:06.580
<v Brian Okken>Well, luckily we have listeners like, and people, Hugo is listening, which is great.

00:20:06.780 --> 00:20:10.560
<v Brian Okken>And in the, in the chat says lazy will be a soft keyword.

00:20:10.840 --> 00:20:11.740
<v Brian Okken>So you could reuse it later.

00:20:12.120 --> 00:20:12.500
<v Michael Kennedy>Okay, good.

00:20:12.760 --> 00:20:19.300
<v Brian Okken>And also I forgot to give Hugo a shout out as his post on, on social media that announced

00:20:19.680 --> 00:20:22.600
<v Brian Okken>that I, the reason why I saw the announcement was from Hugo.

00:20:22.840 --> 00:20:23.340
<v Brian Okken>So thanks Hugo.

00:20:23.740 --> 00:20:23.920
<v Michael Kennedy>Yeah.

00:20:24.020 --> 00:20:24.160
<v Michael Kennedy>Awesome.

00:20:24.240 --> 00:20:25.440
<v Michael Kennedy>And thanks for all the stuff, Hugo.

00:20:25.440 --> 00:20:28.760
<v Michael Kennedy>You give us a lot of good pointers either directly or just by writing.

00:20:28.960 --> 00:20:29.480
<v Michael Kennedy>Okay, cool.

00:20:29.700 --> 00:20:29.760
<v Michael Kennedy>Yeah.

00:20:29.880 --> 00:20:31.160
<v Michael Kennedy>So I think I'm excited about it.

00:20:31.280 --> 00:20:34.600
<v Michael Kennedy>The other thing, which this is me not reading the PEP end to end,

00:20:35.040 --> 00:20:35.820
<v Michael Kennedy>but I'm curious.

00:20:36.380 --> 00:20:38.840
<v Michael Kennedy>I'm going to be curious to see how it unfolds with typing.

00:20:39.260 --> 00:20:40.640
<v Michael Kennedy>Because I know that you highlighted, you can say,

00:20:40.770 --> 00:20:43.760
<v Michael Kennedy>if type checking, then you can do regular imports versus lazy imports.

00:20:44.070 --> 00:20:45.760
<v Michael Kennedy>But if the next line I write is,

00:20:46.040 --> 00:20:50.040
<v Michael Kennedy>my function takes an object of one of the things that was lazily imported,

00:20:50.220 --> 00:20:52.760
<v Michael Kennedy>does that execute its import effectively?

00:20:53.190 --> 00:20:53.540
<v Michael Kennedy>I don't know.

00:20:53.760 --> 00:20:54.160
<v Michael Kennedy>We're going to find out.

00:20:54.360 --> 00:20:54.920
<v Brian Okken>We'll find out.

00:20:55.960 --> 00:20:59.760
<v Brian Okken>I'm guessing the steering council probably thought about that.

00:20:59.860 --> 00:21:20.080
<v Michael Kennedy>I do. I would say so because that was a real big problem when they were trying to change the way imports worked a little bit earlier or things like Pydantic, you know, bringing that back around. Right. They're like, oh, this is going to be really bad. We won't know what things are anymore. Help. Yeah. Okay. So that's the really big news for everybody. And then I have really big news that mostly applies to me.

00:21:20.260 --> 00:21:24.620
<v Brian Okken>The big news is that I've started writing again.

00:21:25.660 --> 00:21:30.660
<v Brian Okken>And I've actually decided I am a big proponent of lean,

00:21:31.799 --> 00:21:34.100
<v Brian Okken>like lean philosophy and everything.

00:21:34.420 --> 00:21:38.240
<v Brian Okken>And part of lean is actually just getting the whole pipeline,

00:21:38.340 --> 00:21:41.220
<v Brian Okken>the entire chain, top to bottom, in place early.

00:21:41.660 --> 00:21:43.680
<v Brian Okken>And so I've decided to do that with the book.

00:21:43.800 --> 00:21:47.740
<v Brian Okken>So the entire purchase process, at least for this, is already in place.

00:21:48.060 --> 00:21:50.120
<v Brian Okken>I've got a lean TDD site up.

00:21:50.860 --> 00:21:53.660
<v Brian Okken>There's actually a table of contents figured out already.

00:21:53.980 --> 00:21:55.220
<v Brian Okken>I've got, I know what I'm going to write.

00:21:55.640 --> 00:21:56.500
<v Brian Okken>There's not much there yet.

00:21:56.700 --> 00:21:59.020
<v Brian Okken>There's like 10 pages written of introduction.

00:21:59.540 --> 00:22:03.160
<v Brian Okken>But if you want to get updates every time I go through it,

00:22:04.000 --> 00:22:06.480
<v Brian Okken>you can go ahead and grab a copy if you want.

00:22:06.700 --> 00:22:08.340
<v Brian Okken>And I'll send you the, well,

00:22:08.480 --> 00:22:11.260
<v Brian Okken>the system will send you updates every time I have something new.

00:22:11.800 --> 00:22:14.320
<v Brian Okken>I'm also, it took me what, a year?

00:22:15.020 --> 00:22:22.140
<v Brian Okken>The process from I want to write a book to it's out for the Python testing with pytest for both editions was a year and a half.

00:22:22.430 --> 00:22:23.680
<v Brian Okken>I don't want to take that long.

00:22:23.980 --> 00:22:29.200
<v Brian Okken>I'd like to get this one through the first draft and a pretty good state of the first draft.

00:22:29.340 --> 00:22:32.300
<v Brian Okken>It'd be more like a beta thing by the end of the year.

00:22:32.640 --> 00:22:33.120
<v Brian Okken>That's my goal.

00:22:33.980 --> 00:22:34.320
<v Brian Okken>Awesome.

00:22:34.670 --> 00:22:34.780
<v Brian Okken>Congratulations.

00:22:35.380 --> 00:22:35.640
<v Brian Okken>That's awesome.

00:22:35.940 --> 00:22:36.120
<v Brian Okken>Thanks.

00:22:36.680 --> 00:22:43.780
<v Brian Okken>Also, with all of this extra junk around, like getting a landing page and all that stuff, it wasn't tons of work.

00:22:44.040 --> 00:22:45.680
<v Brian Okken>But it takes away from writing.

00:22:45.810 --> 00:22:47.700
<v Brian Okken>So I'm glad that I can get back to writing

00:22:47.810 --> 00:22:48.900
<v Brian Okken>and get this thing kicked out.

00:22:49.460 --> 00:22:52.420
<v Michael Kennedy>Yeah, people don't necessarily-- even when it's your project,

00:22:52.530 --> 00:22:54.560
<v Michael Kennedy>you don't think about how much those little extra things

00:22:54.770 --> 00:22:55.260
<v Michael Kennedy>are going to take.

00:22:55.370 --> 00:22:56.960
<v Michael Kennedy>It's like, oh, I can just put this app up.

00:22:56.970 --> 00:22:58.740
<v Michael Kennedy>And oh, people have to reset their password.

00:22:58.920 --> 00:23:00.060
<v Michael Kennedy>That means I got to support email.

00:23:00.360 --> 00:23:01.080
<v Michael Kennedy>Oh, OK.

00:23:01.170 --> 00:23:02.260
<v Michael Kennedy>Well, how am I going to do email?

00:23:02.320 --> 00:23:03.020
<v Michael Kennedy>I don't want to send email.

00:23:03.180 --> 00:23:04.520
<v Michael Kennedy>But here I am writing an email service,

00:23:04.800 --> 00:23:06.520
<v Michael Kennedy>because apparently people have to log in or something.

00:23:07.100 --> 00:23:09.380
<v Brian Okken>Yeah, and I'm also-- I'm reviewing it.

00:23:09.780 --> 00:23:11.259
<v Brian Okken>One of the things I didn't--

00:23:11.280 --> 00:23:14.920
<v Brian Okken>I'm not thrilled with how the pie test book shows up on Kindles.

00:23:15.480 --> 00:23:18.720
<v Brian Okken>So I'm checking out the book from a Kindle.

00:23:18.940 --> 00:23:25.800
<v Brian Okken>That's where I'm doing my proofreading to make sure that that's like an e-book first way to produce the book.

00:23:26.220 --> 00:23:26.780
<v Brian Okken>So, yeah, awesome.

00:23:27.120 --> 00:23:27.380
<v Michael Kennedy>I love it.

00:23:27.960 --> 00:23:28.160
<v Michael Kennedy>All right.

00:23:28.340 --> 00:23:28.460
<v Michael Kennedy>Cool.

00:23:29.300 --> 00:23:30.020
<v Brian Okken>How about something funny?

00:23:30.380 --> 00:23:31.880
<v Michael Kennedy>Yeah, let's round it out with a joke, huh?

00:23:32.240 --> 00:23:32.320
<v Michael Kennedy>Yeah.

00:23:32.460 --> 00:23:39.120
<v Michael Kennedy>OK, so we used to talk a lot about Stack Overflow and Stack Overflow had this reputation.

00:23:39.200 --> 00:23:44.820
<v Michael Kennedy>still does just we talk about it less that stack overflow people were kind of mean you'd ask a

00:23:44.960 --> 00:23:50.000
<v Brian Okken>question well the people in stack overflow i think the actual stack overflow people were fine yeah i

00:23:50.080 --> 00:23:54.300
<v Michael Kennedy>mean the part i mean the community members a lot of the people were they would be quick to judge

00:23:54.740 --> 00:23:59.640
<v Michael Kennedy>quick to say that question's already been asked and answered it was asked three years ago you know

00:23:59.820 --> 00:24:06.919
<v Michael Kennedy>not not amazing right yeah um and it can be really daunting especially newcomers and so the feel

00:24:06.940 --> 00:24:12.820
<v Michael Kennedy>for Stack Overflow might be, you're absolutely wrong, might be a subtitle. Right? But these days,

00:24:13.300 --> 00:24:17.980
<v Michael Kennedy>no, we can feel all good about it. You're absolutely right, says ChatGPT. See, it's good

00:24:17.980 --> 00:24:21.920
<v Michael Kennedy>to be a programmer now because instead of you're absolutely wrong, you're absolutely right. They

00:24:21.940 --> 00:24:26.480
<v Michael Kennedy>both could be wrong, but they're sure that you're wrong or you're right, depending on who you ask.

00:24:26.940 --> 00:24:34.700
<v Brian Okken>Yeah. My daughter even ran into that. She was stuck on some chemistry homework and she asked

00:24:35.540 --> 00:24:37.040
<v Brian Okken>asked chat to ask something.

00:24:37.160 --> 00:24:38.900
<v Brian Okken>I don't know if I think it was ChatGPT.

00:24:39.720 --> 00:24:42.040
<v Brian Okken>And she got like an answer back.

00:24:42.300 --> 00:24:44.520
<v Brian Okken>She's like, that just doesn't look right.

00:24:44.800 --> 00:24:46.280
<v Brian Okken>And it said, oh, you're right.

00:24:46.360 --> 00:24:46.640
<v Brian Okken>It's wrong.

00:24:46.780 --> 00:24:48.120
<v Brian Okken>And then it came up with a different answer.

00:24:48.440 --> 00:24:50.200
<v Brian Okken>And she's like, this is ridiculous.

00:24:50.280 --> 00:24:51.200
<v Brian Okken>How do I trust it then?

00:24:51.720 --> 00:24:52.420
<v Brian Okken>Yeah, exactly.

00:24:53.179 --> 00:24:55.540
<v Michael Kennedy>I do think that's why it works better for programmers

00:24:55.960 --> 00:24:57.020
<v Michael Kennedy>than for many other groups,

00:24:57.460 --> 00:24:59.160
<v Michael Kennedy>because you can run the code

00:24:59.300 --> 00:25:01.320
<v Michael Kennedy>and at least see if it runs or doesn't run.

00:25:01.640 --> 00:25:02.860
<v Michael Kennedy>And that's a form of a check.

00:25:03.100 --> 00:25:04.440
<v Michael Kennedy>or if you're doing some compiling,

00:25:04.600 --> 00:25:06.320
<v Michael Kennedy>you see if it compiles or parses or whatever.

00:25:06.760 --> 00:25:09.140
<v Michael Kennedy>Whereas if it does like a chemistry theory,

00:25:09.220 --> 00:25:09.500
<v Michael Kennedy>you're like,

00:25:09.660 --> 00:25:09.860
<v Michael Kennedy>well,

00:25:10.260 --> 00:25:13.360
<v Michael Kennedy>I guess I could do a year's worth of research and see if this is right or

00:25:13.540 --> 00:25:13.660
<v Michael Kennedy>wrong,

00:25:13.780 --> 00:25:14.360
<v Michael Kennedy>but I don't know.

00:25:15.080 --> 00:25:15.260
<v Michael Kennedy>You know,

00:25:15.260 --> 00:25:15.500
<v Michael Kennedy>I mean,

00:25:15.580 --> 00:25:17.600
<v Michael Kennedy>go to the lab and start doing experiments.

00:25:18.160 --> 00:25:18.540
<v Michael Kennedy>Like it's just,

00:25:18.780 --> 00:25:20.980
<v Michael Kennedy>it's just the feedback loop is real quick for us.

00:25:21.120 --> 00:25:21.240
<v Michael Kennedy>So,

00:25:21.500 --> 00:25:22.000
<v Michael Kennedy>but it's still,

00:25:22.180 --> 00:25:22.860
<v Michael Kennedy>you're absolutely right.

00:25:22.960 --> 00:25:23.020
<v Michael Kennedy>Like,

00:25:23.180 --> 00:25:23.300
<v Michael Kennedy>no,

00:25:23.640 --> 00:25:24.140
<v Michael Kennedy>I'm actually wrong.

00:25:24.340 --> 00:25:25.000
<v Michael Kennedy>Just what are you doing?

00:25:25.460 --> 00:25:25.620
<v Michael Kennedy>Anyway,

00:25:25.920 --> 00:25:26.680
<v Michael Kennedy>we live in weird times.

00:25:27.060 --> 00:25:27.920
<v Michael Kennedy>It was a fun joke about it.

00:25:28.180 --> 00:25:28.340
<v Brian Okken>Yeah.

00:25:28.800 --> 00:25:28.860
<v Brian Okken>Oh,

00:25:29.480 --> 00:25:30.400
<v Brian Okken>I'm going to throw,

00:25:30.600 --> 00:25:31.980
<v Brian Okken>I'm going to grab the screen again.

00:25:32.420 --> 00:25:32.540
<v Michael Kennedy>Oh,

00:25:33.000 --> 00:25:33.720
<v Brian Okken>I already took it down.

00:25:33.900 --> 00:25:34.200
<v Brian Okken>Never mind.

00:25:34.440 --> 00:25:36.540
<v Brian Okken>I'll do an extra next week, another extra.

00:25:37.180 --> 00:25:37.480
<v Michael Kennedy>All right.

00:25:37.550 --> 00:25:40.440
<v Speaker 3>Well, with that, we're going to have something to look forward to, right?

00:25:40.900 --> 00:25:41.100
<v Speaker 3>Yeah.

00:25:41.500 --> 00:25:41.600
<v Speaker 3>Yeah.

00:25:42.560 --> 00:25:43.120
<v Speaker 3>So cool.

00:25:43.260 --> 00:25:43.520
<v Speaker 3>All right.

00:25:43.800 --> 00:25:44.120
<v Speaker 3>Catch you later.

00:25:44.470 --> 00:25:44.780
<v Speaker 3>Bye, Brian.

00:25:44.940 --> 00:25:45.200
<v Speaker 3>Thanks, everyone.

