WEBVTT

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

00:00:04.570 --> 00:00:05.180
<v Michael Kennedy>to your earbuds.

00:00:05.580 --> 00:00:07.060
<v Michael Kennedy>This is episode 482,

00:00:07.220 --> 00:00:08.700
<v Michael Kennedy>recorded Monday,

00:00:09.130 --> 00:00:09.840
<v Michael Kennedy>June 1st.

00:00:09.940 --> 00:00:10.420
<v Michael Kennedy>I'm Michael Kennedy.

00:00:10.940 --> 00:00:11.820
<v Michael Kennedy>And I'm Brian Okken.

00:00:12.000 --> 00:00:15.460
<v Michael Kennedy>This episode is brought to you by us and all of the Python things that we're doing.

00:00:16.040 --> 00:00:20.480
<v Michael Kennedy>Check out pythontest.com, get Brian's multiple courses over there,

00:00:20.760 --> 00:00:22.280
<v Michael Kennedy>even something to do with

00:00:22.600 --> 00:00:23.820
<v Michael Kennedy>Lean TDD,

00:00:24.090 --> 00:00:25.040
<v Michael Kennedy>if you want to check that out.

00:00:25.130 --> 00:00:27.140
<v Michael Kennedy>I hear that an audio book is underway,

00:00:27.340 --> 00:00:28.200
<v Michael Kennedy>which is super cool.

00:00:28.500 --> 00:00:31.640
<v Michael Kennedy>and got a couple new courses over at Talk Python,

00:00:32.200 --> 00:00:35.780
<v Michael Kennedy>especially the new OWASP top 10 security plus agentic AI.

00:00:36.060 --> 00:00:38.720
<v Michael Kennedy>Like how do you take Claude Code or something like that?

00:00:39.120 --> 00:00:42.080
<v Michael Kennedy>Plus known recognized patterns like the OWASP top 10

00:00:42.220 --> 00:00:43.420
<v Michael Kennedy>and make your code safe.

00:00:43.680 --> 00:00:44.660
<v Michael Kennedy>That's what that course is about.

00:00:44.970 --> 00:00:46.060
<v Michael Kennedy>So check out those kinds of things.

00:00:46.280 --> 00:00:48.080
<v Michael Kennedy>That's what we're bringing you this week.

00:00:48.480 --> 00:00:48.700
<v Michael Kennedy>Also,

00:00:49.240 --> 00:00:51.320
<v Michael Kennedy>if you want to connect with us on socials,

00:00:51.800 --> 00:00:51.960
<v Michael Kennedy>share,

00:00:52.400 --> 00:00:52.840
<v Michael Kennedy>show ideas,

00:00:53.100 --> 00:00:53.700
<v Michael Kennedy>whatever you can do.

00:00:53.700 --> 00:00:54.880
<v Michael Kennedy>So on all the socials,

00:00:55.180 --> 00:00:55.920
<v Michael Kennedy>sign up for the newsletter.

00:00:56.100 --> 00:00:58.360
<v Michael Kennedy>We got awesome extras that come in through there.

00:00:58.460 --> 00:01:00.120
<v Michael Kennedy>So just do that on the website.

00:01:00.740 --> 00:01:01.040
<v Michael Kennedy>With that,

00:01:01.700 --> 00:01:01.880
<v Michael Kennedy>Brian,

00:01:02.500 --> 00:01:03.320
<v Michael Kennedy>I think it might be time.

00:01:03.640 --> 00:01:04.559
<v Michael Kennedy>Should we kick it off?

00:01:04.739 --> 00:01:05.600
<v Michael Kennedy>Speaking of security.

00:01:05.940 --> 00:01:07.180
<v Brian Okken>We have a security issue,

00:01:07.520 --> 00:01:09.740
<v Brian Okken>but the issue I think is resolved.

00:01:09.960 --> 00:01:14.940
<v Brian Okken>We just, I'm highlighting an article that's about the maintainer.

00:01:15.000 --> 00:01:16.840
<v Brian Okken>So this is interesting.

00:01:16.980 --> 00:01:18.960
<v Brian Okken>So this is the CVE,

00:01:19.140 --> 00:01:20.440
<v Brian Okken>I'm not going to, let's see.

00:01:20.680 --> 00:01:21.980
<v Brian Okken>CVE 2026,

00:01:22.780 --> 00:01:25.280
<v Brian Okken>48710, a maintainer's perspective.

00:01:25.640 --> 00:01:30.140
<v Brian Okken>So this is from Marcelo Trilasinski.

00:01:30.640 --> 00:01:30.940
<v Brian Okken>Cool name.

00:01:31.320 --> 00:01:37.740
<v Brian Okken>Anyway, this is about a security advisory from Starlet.

00:01:38.200 --> 00:01:39.200
<v Brian Okken>So even,

00:01:39.510 --> 00:01:40.380
<v Brian Okken>so there's a, what,

00:01:40.580 --> 00:01:43.080
<v Brian Okken>isn't FastAPI used Starlet, I think?

00:01:43.400 --> 00:01:44.040
<v Brian Okken>I do believe so,

00:01:44.280 --> 00:01:44.340
<v Brian Okken>yeah.

00:01:44.740 --> 00:01:46.020
<v Brian Okken>And a bunch of other stuff too.

00:01:46.090 --> 00:01:49.460
<v Brian Okken>So even if you don't think that you're using Starlet, you might be using Starlet.

00:01:49.690 --> 00:01:55.260
<v Brian Okken>So the short version is you probably ought to upgrade to 1.0.1 if you haven't already.

00:01:55.420 --> 00:02:00.680
<v Brian Okken>um the that's one of the versions if if you don't care about the like the nitty-gritty of this just

00:02:00.710 --> 00:02:06.640
<v Brian Okken>do that the other part is an interesting thing about basically that this is an interesting article

00:02:06.840 --> 00:02:11.760
<v Brian Okken>it's kind of hard to cover but i wanted to bring it up because it does uh we do have more and more

00:02:11.960 --> 00:02:18.339
<v Brian Okken>ai things like attack both both trying to attack websites and also so we have to keep up on security

00:02:18.360 --> 00:02:18.560
<v Brian Okken>updates,

00:02:19.020 --> 00:02:25.600
<v Brian Okken>but also a lot of these security vulnerability reports against projects.

00:02:25.900 --> 00:02:26.140
<v Brian Okken>And

00:02:26.580 --> 00:02:29.200
<v Brian Okken>a lot of these projects like Starlette are not,

00:02:29.360 --> 00:02:30.420
<v Brian Okken>they're not a commercial enterprise.

00:02:30.760 --> 00:02:30.960
<v Brian Okken>It's an

00:02:30.980 --> 00:02:33.300
<v Brian Okken>open source project with volunteer maintainers.

00:02:33.620 --> 00:02:35.520
<v Brian Okken>So that's really what we're talking about here

00:02:35.740 --> 00:02:41.140
<v Brian Okken>is a little bit of that. And also the problem really wasn't with Starlet. And apparently

00:02:41.760 --> 00:02:46.340
<v Brian Okken>they got some bad press in a couple of places because of a vulnerability.

00:02:46.780 --> 00:02:47.140
<v Brian Okken>But this,

00:02:47.360 --> 00:02:47.720
<v Brian Okken>I'm going

00:02:47.520 --> 00:02:52.740
<v Brian Okken>read this interesting interesting thing the vulnerability came came from a pattern an

00:02:52.920 --> 00:02:58.300
<v Brian Okken>application pattern and the deployment never from something starlet intended and um there's a

00:02:58.400 --> 00:03:05.120
<v Brian Okken>description in the in the link about what the issue is and it i actually got lost um so it's

00:03:05.180 --> 00:03:10.300
<v Brian Okken>something about like yeah i'm not even going to try to summarize it because i got lost here um

00:03:10.860 --> 00:03:15.120
<v Brian Okken>But there's one description of the bug.

00:03:15.860 --> 00:03:19.440
<v Brian Okken>It says from Ostif, I don't know what Ostif is,

00:03:19.680 --> 00:03:20.460
<v Brian Okken>but an Ostif article,

00:03:20.660 --> 00:03:21.900
<v Brian Okken>this bug is a classic

00:03:22.340 --> 00:03:25.120
<v Brian Okken>responsibility gap where this maintainer didn't patch,

00:03:25.440 --> 00:03:27.520
<v Brian Okken>where if this maintainer didn't patch,

00:03:27.820 --> 00:03:33.280
<v Brian Okken>then thousands of exposed projects would have to individually secure their projects.

00:03:33.720 --> 00:03:39.159
<v Brian Okken>In doing this work, they've voluntarily taken on the responsibility to protect the ecosystem

00:03:39.180 --> 00:03:41.000
<v Brian Okken>from long-term systemic harm.

00:03:42.780 --> 00:03:44.040
<v Brian Okken>As with all open source projects,

00:03:44.610 --> 00:03:45.700
<v Brian Okken>they owed us nothing

00:03:45.850 --> 00:03:48.100
<v Brian Okken>and could have left it for everyone else's problem

00:03:48.490 --> 00:03:48.960
<v Brian Okken>and took,

00:03:49.460 --> 00:03:50.780
<v Brian Okken>but they took the extraordinary steps

00:03:50.810 --> 00:03:52.000
<v Brian Okken>of helping the ecosystem.

00:03:53.040 --> 00:03:55.100
<v Brian Okken>Please consider donating to Glutex,

00:03:55.130 --> 00:03:57.740
<v Brian Okken>which is the person that wrote this article,

00:03:58.450 --> 00:03:59.320
<v Brian Okken>which is an interesting And

00:03:59.320 --> 00:04:01.180
<v Brian Okken>I believe the maintainer of Starlette as well.

00:04:01.940 --> 00:04:02.080
<v Brian Okken>Okay,

00:04:02.230 --> 00:04:02.400
<v Brian Okken>yeah,

00:04:02.560 --> 00:04:04.240
<v Brian Okken>you're right. And also,

00:04:04.990 --> 00:04:08.740
<v Brian Okken>so apparently Ars Technica even covered it.

00:04:08.840 --> 00:04:10.620
<v Brian Okken>And we've referenced the articles a lot,

00:04:10.880 --> 00:04:11.700
<v Brian Okken>you know, in the past,

00:04:12.460 --> 00:04:13.300
<v Brian Okken>sometimes some good stuff.

00:04:13.520 --> 00:04:15.620
<v Brian Okken>But apparently they reached out and said,

00:04:15.780 --> 00:04:16.000
<v Brian Okken>you know,

00:04:17.060 --> 00:04:17.299
<v Brian Okken>you know,

00:04:17.600 --> 00:04:18.820
<v Brian Okken>this seems to be serious.

00:04:19.120 --> 00:04:19.859
<v Brian Okken>Do you have any comments?

00:04:21.000 --> 00:04:21.680
<v Brian Okken>How severe is it?

00:04:21.959 --> 00:04:22.580
<v Brian Okken>And they didn't.

00:04:22.720 --> 00:04:25.600
<v Brian Okken>They sent that request out two hours before publication.

00:04:25.960 --> 00:04:27.360
<v Brian Okken>And since they didn't get a response,

00:04:27.580 --> 00:04:29.260
<v Brian Okken>they posted that.

00:04:29.660 --> 00:04:30.040
<v Brian Okken>They didn't.

00:04:30.220 --> 00:04:30.740
<v Brian Okken>They asked,

00:04:30.900 --> 00:04:32.360
<v Brian Okken>but didn't get a reply from Starlette.

00:04:32.680 --> 00:04:34.020
<v Brian Okken>And two hours?

00:04:35.380 --> 00:04:35.640
<v Brian Okken>Anyway.

00:04:36.160 --> 00:04:39.900
<v Brian Okken>The article goes on to talk about the burden of triaging,

00:04:40.370 --> 00:04:42.200
<v Brian Okken>how many security advisories come in,

00:04:42.430 --> 00:04:43.540
<v Brian Okken>all the work that's involved.

00:04:43.670 --> 00:04:56.140
<v Brian Okken>And also that places like Ars Technica and others treat open source projects as if they're a for-profit corporation and expect like a PR department and stuff.

00:04:56.210 --> 00:04:56.960
<v Brian Okken>And there's not.

00:04:57.260 --> 00:04:58.020
<v Brian Okken>It's just people.

00:04:58.500 --> 00:04:59.060
<v Brian Okken>So anyway.

00:05:00.040 --> 00:05:00.160
<v Brian Okken>Yeah.

00:05:00.460 --> 00:05:03.200
<v Brian Okken>Do you have anything else to add to this or just interesting?

00:05:03.560 --> 00:05:04.380
<v Michael Kennedy>Yeah, it's just interesting.

00:05:04.670 --> 00:05:05.180
<v Michael Kennedy>I don't know.

00:05:06.080 --> 00:05:08.520
<v Michael Kennedy>It doesn't look like a super dangerous vulnerability,

00:05:09.040 --> 00:05:09.600
<v Michael Kennedy>I don't think,

00:05:09.920 --> 00:05:11.480
<v Michael Kennedy>but definitely go out and patch.

00:05:11.840 --> 00:05:14.820
<v Michael Kennedy>And it's a 1.0.0 to 1.0.1 bump.

00:05:15.260 --> 00:05:17.380
<v Michael Kennedy>So it's not like you've got to jump a major version.

00:05:17.640 --> 00:05:18.840
<v Brian Okken>Yeah, definitely patch.

00:05:18.900 --> 00:05:19.280
<v Brian Okken>But also,

00:05:19.780 --> 00:05:20.280
<v Brian Okken>I think it's,

00:05:21.020 --> 00:05:26.680
<v Brian Okken>I don't know how to get out of this, but because we have a lot of these open source projects that big companies are relying on,

00:05:27.060 --> 00:05:30.860
<v Brian Okken>and they want the reaction times of a paid product.

00:05:31.080 --> 00:05:31.760
<v Brian Okken>And they just,

00:05:32.100 --> 00:05:32.180
<v Brian Okken>yeah.

00:05:32.360 --> 00:05:32.700
<v Brian Okken>And actually.

00:05:32.780 --> 00:05:33.160
<v Michael Kennedy>You know what?

00:05:33.300 --> 00:05:37.720
<v Michael Kennedy>They could do that by maybe putting the maintainer on a healthy retainer,

00:05:38.020 --> 00:05:40.420
<v Michael Kennedy>making the project sustainable and say,

00:05:40.780 --> 00:05:44.120
<v Michael Kennedy>look, we'll pay you $2,000 a month and we probably won't ask you anything for a long time.

00:05:44.210 --> 00:05:47.200
<v Michael Kennedy>But if we need you, we need you to jump in and we'll then pay you out earlier.

00:05:47.300 --> 00:05:48.200
<v Michael Kennedy>I don't know, something like that, right?

00:05:48.360 --> 00:05:48.600
<v Michael Kennedy>That would,

00:05:48.850 --> 00:05:50.340
<v Michael Kennedy>if you get five companies doing that,

00:05:50.530 --> 00:05:52.220
<v Michael Kennedy>I bet you can get some response time out of that.

00:05:52.580 --> 00:05:52.760
<v Brian Okken>Yeah.

00:05:53.120 --> 00:05:58.300
<v Brian Okken>But the ironic reverse thing is actual paid products are really slow to patch anything.

00:05:58.820 --> 00:06:02.560
<v Brian Okken>So we actually get usually faster response times from open source projects.

00:06:02.920 --> 00:06:03.500
<v Brian Okken>So anyway.

00:06:04.340 --> 00:06:04.740
<v Michael Kennedy>Indeed,

00:06:05.120 --> 00:06:05.440
<v Michael Kennedy>indeed.

00:06:05.920 --> 00:06:11.540
<v Michael Kennedy>All right, let's go and chat a bit about the Daily Stars Explorer.

00:06:11.680 --> 00:06:12.460
<v Michael Kennedy>This is a fun project,

00:06:12.640 --> 00:06:12.780
<v Michael Kennedy>Brian.

00:06:13.020 --> 00:06:17.220
<v Michael Kennedy>So what this is, this is a web app that's open source on GitHub.

00:06:17.640 --> 00:06:18.180
<v Michael Kennedy>What is it built with?

00:06:18.600 --> 00:06:18.760
<v Michael Kennedy>Scrolling.

00:06:19.120 --> 00:06:20.460
<v Michael Kennedy>It's built with JavaScript and Go.

00:06:20.860 --> 00:06:20.960
<v Michael Kennedy>So,

00:06:21.360 --> 00:06:23.580
<v Michael Kennedy>but it doesn't matter because it's not about the internals.

00:06:23.680 --> 00:06:25.700
<v Michael Kennedy>It's about the information you get about different projects,

00:06:26.060 --> 00:06:27.440
<v Michael Kennedy>including Python ones.

00:06:27.740 --> 00:06:31.120
<v Michael Kennedy>So it's an app that you can put in a repository,

00:06:31.670 --> 00:06:37.800
<v Michael Kennedy>and it will give you just basically historical information about the stars sliced and diced in all these statistical ways.

00:06:38.200 --> 00:06:38.380
<v Michael Kennedy>Ooh,

00:06:38.600 --> 00:06:38.720
<v Michael Kennedy>neat.

00:06:39.280 --> 00:06:41.160
<v Michael Kennedy>So it has full star history,

00:06:41.480 --> 00:06:42.220
<v Michael Kennedy>hourly stars.

00:06:42.290 --> 00:06:44.400
<v Michael Kennedy>You can compare side-by-side repos,

00:06:44.780 --> 00:06:47.740
<v Michael Kennedy>activity timelines of like show me the commits over time,

00:06:48.050 --> 00:06:48.880
<v Michael Kennedy>which is kind of interesting.

00:06:49.340 --> 00:06:51.300
<v Michael Kennedy>You can favorite them and so on.

00:06:51.380 --> 00:06:54.680
<v Michael Kennedy>You can see when the repos were mentioned on Hacker News,

00:06:54.860 --> 00:06:55.040
<v Michael Kennedy>Reddit,

00:06:55.200 --> 00:06:55.380
<v Michael Kennedy>YouTube,

00:06:55.720 --> 00:06:56.220
<v Michael Kennedy>and GitHub,

00:06:56.860 --> 00:07:00.860
<v Michael Kennedy>and you download the data for feeding to your AI or feeding to your data science stack.

00:07:01.310 --> 00:07:02.340
<v Michael Kennedy>So I think this is pretty cool.

00:07:02.580 --> 00:07:05.140
<v Michael Kennedy>And let's just do this by,

00:07:05.320 --> 00:07:08.020
<v Michael Kennedy>let me first find the Flask repo.

00:07:08.250 --> 00:07:08.780
<v Michael Kennedy>One second.

00:07:09.260 --> 00:07:11.380
<v Michael Kennedy>All right, so let's go and open up the little demo.

00:07:11.800 --> 00:07:14.280
<v Michael Kennedy>So it's a web app, which means you have to self-host it.

00:07:14.360 --> 00:07:14.620
<v Michael Kennedy>However,

00:07:15.240 --> 00:07:21.540
<v Michael Kennedy>if you just want to try it out, I think just use the demo and put whatever you want in there.

00:07:21.690 --> 00:07:23.000
<v Michael Kennedy>Unless you want to save your history and stuff.

00:07:23.100 --> 00:07:24.280
<v Michael Kennedy>But let's go over and put Flask in.

00:07:24.620 --> 00:07:25.480
<v Michael Kennedy>And it thinks for a moment.

00:07:25.970 --> 00:07:28.340
<v Michael Kennedy>The first time you get one in there, I put a repo in there.

00:07:28.380 --> 00:07:30.580
<v Michael Kennedy>It takes a minute to download all the data from GitHub.

00:07:30.940 --> 00:07:32.500
<v Michael Kennedy>But because I put that in there before,

00:07:32.700 --> 00:07:34.260
<v Michael Kennedy>it kind of goes more quickly.

00:07:34.900 --> 00:07:38.540
<v Michael Kennedy>So you can see right now Flask has 71,598 stars.

00:07:39.200 --> 00:07:40.780
<v Michael Kennedy>And you can have different themes,

00:07:40.980 --> 00:07:42.280
<v Michael Kennedy>of course, for the thing.

00:07:42.620 --> 00:07:45.100
<v Michael Kennedy>It shows you the total stars over time.

00:07:45.660 --> 00:07:47.480
<v Michael Kennedy>So you've got this graph,

00:07:47.640 --> 00:07:49.760
<v Michael Kennedy>this orange line, if you pull it up,

00:07:50.120 --> 00:07:53.820
<v Michael Kennedy>is the integral or something like that.

00:07:53.820 --> 00:07:56.280
<v Michael Kennedy>And here's the stars per day,

00:07:56.850 --> 00:07:57.280
<v Michael Kennedy>like 13,

00:07:57.460 --> 00:07:57.680
<v Michael Kennedy>15,

00:07:57.900 --> 00:07:57.980
<v Michael Kennedy>whatever.

00:07:58.210 --> 00:07:59.660
<v Michael Kennedy>And then the scales are different.

00:08:00.370 --> 00:08:02.320
<v Michael Kennedy>One goes up to 80,000, another goes to 30.

00:08:02.760 --> 00:08:04.980
<v Michael Kennedy>But you take the integral of the top curve, you get the bottom curve.

00:08:05.460 --> 00:08:06.700
<v Michael Kennedy>Sum up all the stars.

00:08:07.200 --> 00:08:08.280
<v Michael Kennedy>It's very cool.

00:08:08.280 --> 00:08:10.120
<v Michael Kennedy>You can break it down by over five years,

00:08:10.360 --> 00:08:10.900
<v Michael Kennedy>quarterly,

00:08:11.140 --> 00:08:11.800
<v Michael Kennedy>years a day.

00:08:12.020 --> 00:08:15.560
<v Michael Kennedy>you can go and say, I want to transform this by, I want to just look at trend lines,

00:08:16.240 --> 00:08:19.180
<v Michael Kennedy>or I want to look at monthly bend stars,

00:08:19.700 --> 00:08:22.440
<v Michael Kennedy>or maybe I want to normalize the stars across

00:08:22.780 --> 00:08:23.460
<v Michael Kennedy>and have like a little,

00:08:24.320 --> 00:08:24.500
<v Michael Kennedy>you know,

00:08:24.820 --> 00:08:25.060
<v Michael Kennedy>lines.

00:08:25.340 --> 00:08:25.580
<v Michael Kennedy>What else?

00:08:25.740 --> 00:08:28.800
<v Michael Kennedy>We've got the running median and week over week growth.

00:08:29.740 --> 00:08:30.000
<v Michael Kennedy>Neat, right?

00:08:30.320 --> 00:08:31.740
<v Michael Kennedy>Shows you how old the repository is.

00:08:31.800 --> 00:08:32.740
<v Michael Kennedy>16 years, one month,

00:08:32.940 --> 00:08:33.620
<v Michael Kennedy>26 days,

00:08:34.200 --> 00:08:36.080
<v Michael Kennedy>68 stars the last day.

00:08:36.460 --> 00:08:36.880
<v Michael Kennedy>So I don't know.

00:08:36.979 --> 00:08:43.919
<v Michael Kennedy>A lot of times you maybe want to think about what project do I actually want to work on or base my project upon?

00:08:44.440 --> 00:08:46.160
<v Michael Kennedy>And obviously stars are not everything,

00:08:46.710 --> 00:08:48.640
<v Michael Kennedy>but it's certainly something.

00:08:49.080 --> 00:08:50.680
<v Michael Kennedy>Could we pull up here? Come on now, get away.

00:08:51.500 --> 00:08:53.160
<v Michael Kennedy>You're right about this auto-hide stuff,

00:08:53.320 --> 00:08:53.400
<v Michael Kennedy>right?

00:08:53.700 --> 00:08:56.160
<v Michael Kennedy>So where can I find?

00:08:56.530 --> 00:09:00.580
<v Michael Kennedy>Yeah, I don't know where to pull up the commits from this one right off the top of my head.

00:09:00.590 --> 00:09:05.440
<v Michael Kennedy>But anyway, it'd be cool to see the commits because that would let you answer some interesting questions as well,

00:09:05.820 --> 00:09:05.920
<v Michael Kennedy>right?

00:09:05.980 --> 00:09:09.040
<v Michael Kennedy>Like if you see the commits just come to a stop two years ago, you're like,

00:09:09.200 --> 00:09:09.340
<v Michael Kennedy>oh,

00:09:09.610 --> 00:09:09.940
<v Michael Kennedy>I see.

00:09:10.180 --> 00:09:11.740
<v Brian Okken>So where's the work happening?

00:09:12.120 --> 00:09:12.660
<v Brian Okken>Like where is it?

00:09:12.820 --> 00:09:16.300
<v Brian Okken>Is it getting this data from in the browser or where's,

00:09:16.480 --> 00:09:16.960
<v Brian Okken>when's the?

00:09:17.500 --> 00:09:17.740
<v Michael Kennedy>There's a,

00:09:17.920 --> 00:09:21.140
<v Michael Kennedy>there's a Go based web app running on someone's server that these,

00:09:21.520 --> 00:09:21.680
<v Michael Kennedy>you know,

00:09:21.710 --> 00:09:23.200
<v Michael Kennedy>that they've got up here that I believe.

00:09:23.760 --> 00:09:24.260
<v Michael Kennedy>And then it just,

00:09:24.610 --> 00:09:25.400
<v Michael Kennedy>it happens over there.

00:09:25.750 --> 00:09:30.640
<v Michael Kennedy>If I pulled up a different one, you would see it grind away for maybe 10, 15 seconds.

00:09:31.880 --> 00:09:33.680
<v Brian Okken>Well, that's a lot of data and a lot of graphs.

00:09:34.340 --> 00:09:34.900
<v Brian Okken>I'm just,

00:09:35.280 --> 00:09:38.660
<v Brian Okken>the pickiness in me, I'm like, well, what graph doesn't it have?

00:09:38.930 --> 00:09:41.160
<v Brian Okken>I don't see any candlestick bar graphs.

00:09:42.900 --> 00:09:43.180
<v Brian Okken>Sorry.

00:09:43.360 --> 00:09:44.140
<v Brian Okken>Yeah, I know.

00:09:44.280 --> 00:09:44.960
<v Brian Okken>It's pretty neat, though,

00:09:45.170 --> 00:09:46.700
<v Brian Okken>if you want to explore some repos.

00:09:47.000 --> 00:09:47.400
<v Brian Okken>It's cool.

00:09:48.640 --> 00:09:53.000
<v Brian Okken>I haven't seen people include YouTube references before and something like that.

00:09:53.720 --> 00:09:55.620
<v Michael Kennedy>Oh, yeah, and there's all this side stuff over here.

00:09:55.750 --> 00:09:56.440
<v Michael Kennedy>You can compare.

00:09:56.660 --> 00:09:57.300
<v Michael Kennedy>Here's the commits.

00:09:57.840 --> 00:09:58.740
<v Michael Kennedy>So give it a moment.

00:09:58.900 --> 00:10:01.940
<v Michael Kennedy>See, now it's grinding because I didn't ask for the commits on Flask earlier today.

00:10:02.060 --> 00:10:03.740
<v Michael Kennedy>You can see PRs, issues,

00:10:03.940 --> 00:10:04.380
<v Michael Kennedy>forks.

00:10:04.940 --> 00:10:05.600
<v Michael Kennedy>Like, that's pretty neat.

00:10:05.740 --> 00:10:07.680
<v Michael Kennedy>It's kind of hidden in this little hamburger menu on the left,

00:10:07.800 --> 00:10:08.820
<v Michael Kennedy>but if you expand it out.

00:10:09.140 --> 00:10:09.340
<v Brian Okken>Yeah.

00:10:09.560 --> 00:10:11.220
<v Michael Kennedy>But it'll probably take,

00:10:11.400 --> 00:10:12.660
<v Michael Kennedy>this should be interesting, I think.

00:10:12.720 --> 00:10:14.160
<v Michael Kennedy>I've got some ideas.

00:10:14.660 --> 00:10:16.660
<v Michael Kennedy>But I don't know, it'll take maybe 30 seconds.

00:10:16.800 --> 00:10:17.120
<v Michael Kennedy>There you go.

00:10:17.800 --> 00:10:21.020
<v Michael Kennedy>So year over, or all time, you can see there's quite a few commits

00:10:21.240 --> 00:10:22.340
<v Michael Kennedy>and trending downward.

00:10:22.560 --> 00:10:23.540
<v Michael Kennedy>It's kind of a, honestly,

00:10:23.730 --> 00:10:24.500
<v Michael Kennedy>kind of a done product,

00:10:24.990 --> 00:10:25.200
<v Michael Kennedy>you know.

00:10:25.850 --> 00:10:27.580
<v Michael Kennedy>I don't mean that in a positive or negative way.

00:10:27.820 --> 00:10:29.820
<v Michael Kennedy>There's a few things left that I think Flask could do.

00:10:30.300 --> 00:10:30.640
<v Michael Kennedy>Primarily,

00:10:31.060 --> 00:10:31.920
<v Michael Kennedy>I think one of the,

00:10:32.280 --> 00:10:33.840
<v Michael Kennedy>there's probably two things to work on.

00:10:33.940 --> 00:10:37.500
<v Michael Kennedy>I think primarily you could work on maybe some performance stuff to make Flask better.

00:10:37.840 --> 00:10:45.040
<v Michael Kennedy>And you could unify the true async court and the sort of pseudo async, regular Flask async functionality.

00:10:45.500 --> 00:10:49.240
<v Michael Kennedy>I know David and Phillip are like working towards making those just one thing.

00:10:49.540 --> 00:10:51.200
<v Michael Kennedy>But you know, that could be a lot of work right there.

00:10:51.520 --> 00:10:52.120
<v Michael Kennedy>That could be happening.

00:10:52.760 --> 00:10:55.220
<v Michael Kennedy>But other than that, I kind of feel like Flask is sort of done.

00:10:55.480 --> 00:10:55.680
<v Michael Kennedy>Yeah.

00:10:55.860 --> 00:10:56.020
<v Michael Kennedy>Anyway,

00:10:56.400 --> 00:10:58.120
<v Michael Kennedy>this is not about Flask.

00:10:58.340 --> 00:10:59.220
<v Michael Kennedy>It's Flask as an example.

00:10:59.440 --> 00:11:01.840
<v Michael Kennedy>It's about the Daily Stars Explorer, which I think is pretty cool.

00:11:02.080 --> 00:11:04.140
<v Brian Okken>Just a link to us from last week.

00:11:05.140 --> 00:11:09.020
<v Brian Okken>No project's ever done because you have to test on new Python versions every year.

00:11:09.700 --> 00:11:09.780
<v Brian Okken>Yeah.

00:11:10.020 --> 00:11:13.140
<v Michael Kennedy>And if it completely gets read as done, then it starts to get really badly.

00:11:13.480 --> 00:11:15.040
<v Michael Kennedy>Because it's dust and stuff.

00:11:15.340 --> 00:11:15.580
<v Michael Kennedy>All right.

00:11:15.800 --> 00:11:16.040
<v Michael Kennedy>Exactly.

00:11:16.180 --> 00:11:17.360
<v Michael Kennedy>It gets read as if it were dead.

00:11:18.360 --> 00:11:19.720
<v Michael Kennedy>How about something to markdown?

00:11:20.000 --> 00:11:20.740
<v Michael Kennedy>Maybe document it?

00:11:20.990 --> 00:11:21.700
<v Michael Kennedy>Write a book about it?

00:11:22.140 --> 00:11:22.500
<v Brian Okken>Yeah.

00:11:23.030 --> 00:11:25.880
<v Brian Okken>So I like a lot of markdown.

00:11:26.820 --> 00:11:28.340
<v Brian Okken>I use it a lot of all the time.

00:11:28.540 --> 00:11:29.340
<v Brian Okken>I'm actually writing,

00:11:29.780 --> 00:11:33.440
<v Brian Okken>I wrote the Python testing with pytest in Markdown.

00:11:33.760 --> 00:11:35.540
<v Brian Okken>I'm writing LeanTDD in Markdown.

00:11:35.840 --> 00:11:36.740
<v Brian Okken>Use it for blog posts.

00:11:36.840 --> 00:11:37.380
<v Brian Okken>Use it for everything.

00:11:37.840 --> 00:11:39.980
<v Brian Okken>So what's new about this?

00:11:40.280 --> 00:11:43.280
<v Brian Okken>What's new is I just learned about a tool called Types.

00:11:44.260 --> 00:11:45.380
<v Brian Okken>I think it's type.

00:11:46.500 --> 00:11:48.940
<v Brian Okken>It even says how to pronounce it, and I didn't look.

00:11:49.180 --> 00:11:50.600
<v Brian Okken>So T-Y-P-S-T.

00:11:51.560 --> 00:11:56.900
<v Brian Okken>So I needed a new formatting thing because I'm trying to self-publish LeanTDD,

00:11:56.920 --> 00:11:58.640
<v Brian Okken>and I didn't like the book,

00:11:59.060 --> 00:12:02.700
<v Brian Okken>the print book versions of output that I have available.

00:12:02.890 --> 00:12:04.000
<v Brian Okken>So I wanted to customize that.

00:12:04.070 --> 00:12:07.840
<v Brian Okken>So I reached out to all of our good friend,

00:12:08.440 --> 00:12:08.860
<v Brian Okken>Matt Harrison,

00:12:09.060 --> 00:12:10.240
<v Brian Okken>because he self-published and

00:12:10.870 --> 00:12:12.200
<v Brian Okken>said, Matt, what do you use?

00:12:12.580 --> 00:12:14.740
<v Brian Okken>And he's using types now.

00:12:14.890 --> 00:12:16.740
<v Brian Okken>So I tried to check it out.

00:12:17.020 --> 00:12:21.340
<v Brian Okken>So the gist is that Pandoc converts to PDF,

00:12:21.800 --> 00:12:23.980
<v Brian Okken>but it does it through LaTeX.

00:12:24.110 --> 00:12:25.880
<v Brian Okken>And I don't really like LaTeX.

00:12:26.900 --> 00:12:30.500
<v Brian Okken>And you have to download something extra anyway to get Pandoc to convert it.

00:12:30.900 --> 00:12:31.180
<v Brian Okken>So,

00:12:31.880 --> 00:12:32.140
<v Brian Okken>and then,

00:12:32.440 --> 00:12:33.060
<v Brian Okken>but there's types.

00:12:33.300 --> 00:12:34.040
<v Brian Okken>It's actually quite a pain.

00:12:34.280 --> 00:12:36.240
<v Michael Kennedy>It's not just a, it's like three or four libraries.

00:12:36.500 --> 00:12:36.960
<v Michael Kennedy>They're all,

00:12:37.340 --> 00:12:37.520
<v Michael Kennedy>I don't know.

00:12:37.520 --> 00:12:38.420
<v Michael Kennedy>They're just, it's weird.

00:12:38.540 --> 00:12:38.920
<v Michael Kennedy>It's not great.

00:12:39.220 --> 00:12:39.400
<v Brian Okken>Okay.

00:12:39.600 --> 00:12:44.120
<v Brian Okken>So I'll jump to the punchline is I've got a convert script now that does,

00:12:44.760 --> 00:12:45.400
<v Brian Okken>converts

00:12:45.600 --> 00:12:47.240
<v Brian Okken>Pandoc to type,

00:12:47.540 --> 00:12:47.940
<v Brian Okken>TYP.

00:12:48.460 --> 00:12:52.240
<v Brian Okken>And I don't know what the official extension is, but I just named it.

00:12:52.340 --> 00:12:56.720
<v Brian Okken>So you say two types in for Pandoc, but it's a fairly recent Pandoc that,

00:12:56.840 --> 00:12:58.360
<v Brian Okken>There's been updates recently,

00:12:58.540 --> 00:13:00.280
<v Brian Okken>so you'll want to upgrade your Pandoc first,

00:13:00.760 --> 00:13:02.620
<v Brian Okken>then convert your markdown,

00:13:02.780 --> 00:13:05.940
<v Brian Okken>and then take the type TYP output,

00:13:06.400 --> 00:13:08.440
<v Brian Okken>and you do types to compile,

00:13:08.840 --> 00:13:09.940
<v Brian Okken>and then the output.

00:13:10.360 --> 00:13:11.960
<v Brian Okken>And I did a little example,

00:13:12.160 --> 00:13:17.420
<v Brian Okken>so it's just a normal markdown, and it just converts it to some nice PDF.

00:13:18.020 --> 00:13:18.980
<v Brian Okken>So there's a whole bunch of cool...

00:13:18.980 --> 00:13:20.840
<v Brian Okken>Oh, and it has syntax highlighting as well?

00:13:21.220 --> 00:13:21.320
<v Brian Okken>Oh,

00:13:21.500 --> 00:13:21.580
<v Brian Okken>yeah.

00:13:21.800 --> 00:13:23.880
<v Brian Okken>It does syntax highlighting,

00:13:24.360 --> 00:13:26.660
<v Brian Okken>and there's so much that it does.

00:13:26.760 --> 00:13:28.520
<v Brian Okken>It has mathematical symbols.

00:13:28.720 --> 00:13:30.460
<v Brian Okken>It is a replacement for LaTeX,

00:13:30.910 --> 00:13:33.120
<v Brian Okken>for one, but it's very much simpler.

00:13:33.420 --> 00:13:34.700
<v Brian Okken>And I,

00:13:35.020 --> 00:13:43.460
<v Brian Okken>in like an hour of twiddling with it, I have a fairly decent book template for the new book.

00:13:44.740 --> 00:13:47.640
<v Brian Okken>And yeah, so I'm pretty happy with it.

00:13:49.579 --> 00:13:52.840
<v Brian Okken>And this has been around for a while, and I just didn't know about it.

00:13:53.040 --> 00:13:54.780
<v Brian Okken>So that's why I'm bringing it up.

00:13:55.040 --> 00:13:56.140
<v Brian Okken>And installing wise,

00:13:56.640 --> 00:13:56.960
<v Brian Okken>just brew.

00:13:57.420 --> 00:13:58.460
<v Brian Okken>For a Mac, brew.

00:13:59.200 --> 00:13:59.640
<v Brian Okken>On Windows,

00:13:59.880 --> 00:14:01.580
<v Brian Okken>there was some other process I did,

00:14:01.740 --> 00:14:06.100
<v Brian Okken>but it's so much easier than the LaTeX chain to install.

00:14:06.480 --> 00:14:09.720
<v Brian Okken>So I'm pretty happy with this tool.

00:14:09.960 --> 00:14:10.480
<v Brian Okken>So thanks.

00:14:10.940 --> 00:14:12.220
<v Brian Okken>So I was so happy with it.

00:14:12.220 --> 00:14:14.820
<v Brian Okken>I did a little blog post to share with people.

00:14:16.080 --> 00:14:16.380
<v Michael Kennedy>Excellent.

00:14:17.120 --> 00:14:17.460
<v Michael Kennedy>Excellent.

00:14:17.840 --> 00:14:19.520
<v Michael Kennedy>That is really interesting.

00:14:19.600 --> 00:14:24.820
<v Michael Kennedy>I might start using that because right now I'm doing just straight markdown

00:14:24.840 --> 00:14:27.240
<v Michael Kennedy>to Pandoc for Talk Python in production.

00:14:27.760 --> 00:14:29.760
<v Michael Kennedy>And it's really good for EPUB,

00:14:29.980 --> 00:14:31.640
<v Michael Kennedy>but it's kind of janky for PDF

00:14:31.880 --> 00:14:33.560
<v Michael Kennedy>and it's kind of janky for Kindle

00:14:33.740 --> 00:14:36.060
<v Michael Kennedy>because Kindle can't read it quite right.

00:14:36.060 --> 00:14:37.360
<v Michael Kennedy>So I have to do like remove

00:14:37.540 --> 00:14:39.220
<v Michael Kennedy>a few little niceties for Kindle.

00:14:39.380 --> 00:14:39.800
<v Michael Kennedy>So anyway,

00:14:40.440 --> 00:14:41.440
<v Michael Kennedy>certainly worth considering.

00:14:41.520 --> 00:14:41.700
<v Michael Kennedy>Really?

00:14:41.940 --> 00:14:42.120
<v Michael Kennedy>Thanks,

00:14:42.400 --> 00:14:42.580
<v Michael Kennedy>yeah.

00:14:42.900 --> 00:14:43.140
<v Brian Okken>Oh,

00:14:43.380 --> 00:14:43.900
<v Brian Okken>I'm not having,

00:14:44.140 --> 00:14:45.500
<v Brian Okken>I guess I haven't tried.

00:14:45.840 --> 00:14:47.800
<v Michael Kennedy>I'll have to try the Kindle version.

00:14:47.860 --> 00:14:49.620
<v Michael Kennedy>The problem that I run into with Kindle

00:14:49.800 --> 00:14:53.080
<v Michael Kennedy>is somehow the way that Pandoc

00:14:53.100 --> 00:14:57.840
<v Michael Kennedy>is doing code syntax highlighting breaks the display on Kindle

00:14:58.140 --> 00:14:58.360
<v Michael Kennedy>because,

00:14:58.720 --> 00:15:00.640
<v Michael Kennedy>I don't know, there's something about new lines or spans

00:15:00.690 --> 00:15:02.100
<v Michael Kennedy>or something that get treated differently,

00:15:02.230 --> 00:15:03.980
<v Michael Kennedy>and then the spacing gets really weird.

00:15:04.140 --> 00:15:04.860
<v Michael Kennedy>It's annoying.

00:15:05.120 --> 00:15:05.380
<v Brian Okken>Okay.

00:15:05.910 --> 00:15:07.580
<v Brian Okken>I will definitely...

00:15:07.740 --> 00:15:08.720
<v Brian Okken>Give it a look and see what it looks like.

00:15:08.960 --> 00:15:10.200
<v Brian Okken>I'll have to try that.

00:15:10.850 --> 00:15:10.960
<v Brian Okken>And,

00:15:11.190 --> 00:15:11.300
<v Brian Okken>yeah,

00:15:11.460 --> 00:15:13.580
<v Brian Okken>so I'll try that probably today.

00:15:14.180 --> 00:15:14.420
<v Michael Kennedy>Yeah.

00:15:14.740 --> 00:15:16.920
<v Michael Kennedy>I mean, the books are identical for me

00:15:17.070 --> 00:15:19.580
<v Michael Kennedy>other than the Kindle ones don't have syntax highlighting,

00:15:19.670 --> 00:15:21.960
<v Michael Kennedy>which is generally okay because most Kindles are black and white,

00:15:21.970 --> 00:15:22.780
<v Michael Kennedy>but I know some are not.

00:15:23.060 --> 00:15:23.240
<v Brian Okken>Oh,

00:15:23.420 --> 00:15:23.520
<v Brian Okken>okay.

00:15:23.760 --> 00:15:24.680
<v Brian Okken>So on black and white,

00:15:26.080 --> 00:15:27.280
<v Brian Okken>Kindle, it looks okay?

00:15:27.880 --> 00:15:30.120
<v Michael Kennedy>If I compile a separate version,

00:15:30.720 --> 00:15:34.760
<v Michael Kennedy>a separate Kindle EPUB that disables syntax highlighting in Pandoc, yes.

00:15:35.360 --> 00:15:35.680
<v Michael Kennedy>Oh,

00:15:36.260 --> 00:15:36.340
<v Michael Kennedy>okay.

00:15:36.660 --> 00:15:36.760
<v Michael Kennedy>Yeah.

00:15:36.920 --> 00:15:37.640
<v Michael Kennedy>I'll have to look at that.

00:15:37.860 --> 00:15:38.540
<v Michael Kennedy>So that was the fix.

00:15:38.640 --> 00:15:39.340
<v Michael Kennedy>I'm just like, all right, well,

00:15:39.500 --> 00:15:39.800
<v Michael Kennedy>dash, dash,

00:15:39.960 --> 00:15:41.420
<v Michael Kennedy>no, whatever the syntax is.

00:15:41.520 --> 00:15:41.740
<v Michael Kennedy>I don't know.

00:15:41.860 --> 00:15:44.580
<v Michael Kennedy>It's been a while since I wrote the alias that just does it, you know?

00:15:44.840 --> 00:15:45.100
<v Michael Kennedy>Okay.

00:15:45.420 --> 00:15:46.160
<v Michael Kennedy>Yeah, I'll take a look.

00:15:46.440 --> 00:15:46.500
<v Michael Kennedy>Hmm.

00:15:46.860 --> 00:15:47.120
<v Michael Kennedy>All right.

00:15:48.160 --> 00:15:48.480
<v Michael Kennedy>Well,

00:15:48.960 --> 00:15:50.100
<v Michael Kennedy>this one, Brian, this should be yours.

00:15:50.360 --> 00:15:51.720
<v Michael Kennedy>This should be yours, but no, I got it.

00:15:51.800 --> 00:15:52.460
<v Michael Kennedy>This one is mine.

00:15:52.840 --> 00:15:56.840
<v Michael Kennedy>So I want to talk about Postman to pytest.

00:15:57.180 --> 00:15:57.360
<v Michael Kennedy>Okay.

00:15:57.800 --> 00:15:58.560
<v Michael Kennedy>This is a cool project.

00:15:58.630 --> 00:15:59.900
<v Michael Kennedy>It comes to us from Mikhail,

00:16:00.200 --> 00:16:03.760
<v Michael Kennedy>and people might be familiar with the Postman app.

00:16:04.160 --> 00:16:05.360
<v Michael Kennedy>I'm a big fan of the Postman app.

00:16:05.500 --> 00:16:06.160
<v Michael Kennedy>It's pretty neat.

00:16:06.170 --> 00:16:06.680
<v Michael Kennedy>Do you use it?

00:16:06.680 --> 00:16:07.080
<v Michael Kennedy>Do you know it?

00:16:07.300 --> 00:16:07.480
<v Michael Kennedy>Yeah.

00:16:08.060 --> 00:16:10.300
<v Michael Kennedy>Yeah, so the way it works is you create these collections

00:16:10.900 --> 00:16:14.380
<v Michael Kennedy>that are like groups of different API calls

00:16:14.600 --> 00:16:19.780
<v Michael Kennedy>that in aggregate demonstrate or test some kind of API,

00:16:20.200 --> 00:16:20.320
<v Michael Kennedy>right?

00:16:20.620 --> 00:16:22.040
<v Michael Kennedy>You can organize them into folders,

00:16:22.620 --> 00:16:26.320
<v Michael Kennedy>but also you can do collections and then share these collections with teammates

00:16:26.660 --> 00:16:27.660
<v Michael Kennedy>and team collections.

00:16:28.220 --> 00:16:33.240
<v Michael Kennedy>I did that notably for the Talk Python Horses app that's in the Mac,

00:16:33.480 --> 00:16:34.280
<v Michael Kennedy>not the Mac, the app,

00:16:34.440 --> 00:16:36.700
<v Michael Kennedy>the iOS and the Google Play Store.

00:16:37.240 --> 00:16:41.500
<v Michael Kennedy>So I need all the APIs that I'm creating for this to be tested,

00:16:41.720 --> 00:16:42.520
<v Michael Kennedy>documented, clear.

00:16:43.140 --> 00:16:44.560
<v Michael Kennedy>You can do stuff that should pass,

00:16:44.800 --> 00:16:46.180
<v Michael Kennedy>stuff that should fail, and so on.

00:16:46.680 --> 00:16:49.180
<v Michael Kennedy>So if your team uses Postman,

00:16:49.800 --> 00:16:52.580
<v Michael Kennedy>then this project here you might like

00:16:52.600 --> 00:16:54.080
<v Michael Kennedy>It converts Postman collections,

00:16:54.460 --> 00:16:58.000
<v Michael Kennedy>which I just described, into executable Python test suite,

00:16:58.240 --> 00:16:59.560
<v Michael Kennedy>a pytest test suite.

00:16:59.860 --> 00:17:00.400
<v Michael Kennedy>Nice.

00:17:00.740 --> 00:17:00.880
<v Michael Kennedy>Yeah.

00:17:01.260 --> 00:17:02.640
<v Michael Kennedy>And it's super simple.

00:17:02.780 --> 00:17:04.120
<v Michael Kennedy>So all you do is you just say,

00:17:04.459 --> 00:17:08.720
<v Michael Kennedy>you know, you install it, probably uv if it says pip install, but come on now.

00:17:09.060 --> 00:17:09.939
<v Michael Kennedy>uv tool install.

00:17:10.079 --> 00:17:10.339
<v Michael Kennedy>Let's go.

00:17:10.640 --> 00:17:13.680
<v Michael Kennedy>So it says Postman to pytest --collection.

00:17:13.880 --> 00:17:14.620
<v Michael Kennedy>Give it some collection.

00:17:15.180 --> 00:17:19.260
<v Michael Kennedy>And then you say output this Python test file.

00:17:19.819 --> 00:17:20.400
<v Michael Kennedy>And that's it.

00:17:20.980 --> 00:17:21.680
<v Michael Kennedy>And then run Python.

00:17:22.300 --> 00:17:24.160
<v Michael Kennedy>not right, run pytest to run it.

00:17:24.459 --> 00:17:25.160
<v Michael Kennedy>So that's pretty neat.

00:17:25.280 --> 00:17:27.000
<v Michael Kennedy>That will actually set the environment

00:17:27.510 --> 00:17:28.880
<v Michael Kennedy>so that things like the base URL,

00:17:29.270 --> 00:17:31.860
<v Michael Kennedy>which can vary depending on configs

00:17:31.920 --> 00:17:33.360
<v Michael Kennedy>like dev versus prod or whatever,

00:17:33.680 --> 00:17:35.300
<v Michael Kennedy>and then it just runs it through pytest.

00:17:35.560 --> 00:17:38.740
<v Michael Kennedy>And what's cool is you could version this test file

00:17:39.150 --> 00:17:42.000
<v Michael Kennedy>and then just rerun this to regenerate it when it's time.

00:17:42.220 --> 00:17:42.580
<v Brian Okken>Yeah.

00:17:42.960 --> 00:17:43.060
<v Brian Okken>Yeah.

00:17:44.440 --> 00:17:46.260
<v Brian Okken>Also, if you did that, if you versioned it,

00:17:46.360 --> 00:17:49.100
<v Brian Okken>then you could rerun it and do the diffs

00:17:49.180 --> 00:17:51.820
<v Brian Okken>to see what changed in your collections.

00:17:52.440 --> 00:17:56.220
<v Michael Kennedy>yeah that's right yeah you could regenerate it and just go oh i see we've got this or this

00:17:56.440 --> 00:17:59.560
<v Michael Kennedy>api actually changed because now it takes this additional header and that's why the test was

00:17:59.700 --> 00:18:04.820
<v Michael Kennedy>failing i don't know something like that so if i mean this is a big if if you use postman but

00:18:05.260 --> 00:18:10.420
<v Michael Kennedy>i think this is a really handy and it's just like hey i've got this stuff locked into this app

00:18:10.460 --> 00:18:14.540
<v Michael Kennedy>and it can run things it can do test type things but really you probably want it in py test land

00:18:14.800 --> 00:18:20.279
<v Michael Kennedy>and this uh cool little app and this cool little utility does it so good work miko yeah one of the

00:18:20.220 --> 00:18:24.860
<v Brian Okken>things that he mentioned to us when he shared this project was, which I thought was interesting,

00:18:25.340 --> 00:18:32.180
<v Brian Okken>is the division of a whole bunch of developers and then that use Postman during development,

00:18:32.550 --> 00:18:33.220
<v Brian Okken>which is common,

00:18:33.640 --> 00:18:34.720
<v Brian Okken>right? I think.

00:18:35.510 --> 00:18:43.420
<v Brian Okken>And then a smaller quality assurance team or part-time

00:18:43.700 --> 00:18:45.400
<v Brian Okken>person, I think it was him,

00:18:45.780 --> 00:18:48.140
<v Brian Okken>that needs to support some of this stuff.

00:18:48.540 --> 00:18:51.440
<v Brian Okken>And so you've got the same

00:18:51.700 --> 00:18:51.860
<v Brian Okken>source.

00:18:52.040 --> 00:18:55.520
<v Brian Okken>You've got the developers developing what they think is the right thing.

00:18:55.780 --> 00:18:56.640
<v Brian Okken>And to be able to

00:18:56.740 --> 00:19:01.720
<v Brian Okken>take that and convert it to something that a smaller test team can maintain.

00:19:02.100 --> 00:19:02.920
<v Brian Okken>And that's a

00:19:02.920 --> 00:19:05.700
<v Brian Okken>cool model to do that with. So one source of truth.

00:19:06.080 --> 00:19:06.140
<v Brian Okken>Nice.

00:19:06.760 --> 00:19:08.900
<v Michael Kennedy>Yeah, it's almost like treating like a

00:19:08.820 --> 00:19:09.000
<v Michael Kennedy>database,

00:19:09.280 --> 00:19:09.360
<v Michael Kennedy>right?

00:19:09.520 --> 00:19:09.720
<v Brian Okken>Yeah.

00:19:10.080 --> 00:19:10.140
<v Michael Kennedy>Yeah.

00:19:10.690 --> 00:19:11.200
<v Brian Okken>Do you have extras?

00:19:11.480 --> 00:19:13.580
<v Brian Okken>I have one extra for today.

00:19:14.340 --> 00:19:16.260
<v Brian Okken>And my extra is that

00:19:16.540 --> 00:19:23.080
<v Brian Okken>I snuck this in for the last blog post that I shared was actually on testandcode.org.

00:19:24.740 --> 00:19:26.320
<v Brian Okken>So I am writing,

00:19:26.580 --> 00:19:28.380
<v Brian Okken>I'm going to start writing there, I think a little bit.

00:19:28.660 --> 00:19:30.780
<v Brian Okken>So I'm linking to

00:19:31.050 --> 00:19:31.760
<v Brian Okken>new blog, who dis?

00:19:32.480 --> 00:19:35.420
<v Brian Okken>There is not much there yet since I just put it online,

00:19:36.440 --> 00:19:37.960
<v Brian Okken>but I'll link to the

00:19:37.900 --> 00:19:43.540
<v Brian Okken>other stuff uh one of the funny things that happened to me last night was i went to uh publish

00:19:43.800 --> 00:19:51.520
<v Brian Okken>this at testandcode.com and i had let it expire because the old podcast was dead so um so what

00:19:51.700 --> 00:19:57.020
<v Brian Okken>happened i just uh i'm like uh well somebody else grabbed it some squatter sitting on it now so i

00:19:57.160 --> 00:20:03.480
<v Brian Okken>just uh registered.org that works um and i and i the important thing i could just keep blogging on

00:20:03.380 --> 00:20:04.840
<v Brian Okken>Python test, but I do want to,

00:20:05.020 --> 00:20:10.020
<v Brian Okken>I want to use this testing code name as the publisher for Lean TDD.

00:20:10.440 --> 00:20:13.000
<v Brian Okken>So it's self-published through me,

00:20:13.220 --> 00:20:14.700
<v Brian Okken>but it's kind of, I don't know,

00:20:14.940 --> 00:20:16.060
<v Brian Okken>it's not fake. It just looks

00:20:16.220 --> 00:20:21.240
<v Brian Okken>kind of fun to have a different publisher than my name or Amazon or something like that. So

00:20:21.500 --> 00:20:21.940
<v Brian Okken>that's what I want to do.

00:20:22.560 --> 00:20:23.800
<v Brian Okken>Anyway, that's my extra.

00:20:24.010 --> 00:20:24.840
<v Brian Okken>How about something funny?

00:20:25.120 --> 00:20:26.300
<v Michael Kennedy>I think it's time for something funny.

00:20:26.750 --> 00:20:26.880
<v Michael Kennedy>Indeed.

00:20:27.600 --> 00:20:29.120
<v Michael Kennedy>Let's jump over.

00:20:29.420 --> 00:20:31.779
<v Michael Kennedy>So this joke is called centering

00:20:31.800 --> 00:20:40.300
<v Michael Kennedy>a div and it's it's based on mr beast you know you do do you know mr beast no but yes yes i know

00:20:40.420 --> 00:20:46.760
<v Michael Kennedy>it's it's certainly not a thing that i would watch on youtube however sure no i would watch animal

00:20:46.940 --> 00:20:52.900
<v Michael Kennedy>fails come on uh it's i really don't watch mr beast it's kind of annoying to me it's but what

00:20:52.900 --> 00:20:57.720
<v Michael Kennedy>a phenomenon right so for people who don't know done by this guy jimmy donald james jimmy john

00:20:57.800 --> 00:21:01.900
<v Michael Kennedy>Donaldson and his net worth from his YouTube projects and beyond,

00:21:02.540 --> 00:21:02.700
<v Michael Kennedy>you know,

00:21:02.900 --> 00:21:03.920
<v Michael Kennedy>it's $2.6 billion.

00:21:04.460 --> 00:21:04.820
<v Michael Kennedy>It's ridiculous.

00:21:05.380 --> 00:21:06.080
<v Michael Kennedy>So it basically,

00:21:06.720 --> 00:21:08.980
<v Michael Kennedy>it follows a theme, like we're going to put you in some crazy

00:21:09.280 --> 00:21:11.820
<v Michael Kennedy>situation and throughout the situation.

00:21:12.100 --> 00:21:12.860
<v Michael Kennedy>And at the end,

00:21:13.060 --> 00:21:14.840
<v Michael Kennedy>whoever kind of completes it gets some

00:21:15.040 --> 00:21:16.300
<v Michael Kennedy>ridiculous amount of money. Like, Hey,

00:21:16.860 --> 00:21:18.820
<v Michael Kennedy>we're all going to hang onto a car,

00:21:19.380 --> 00:21:20.600
<v Michael Kennedy>like a Tesla and whoever

00:21:20.840 --> 00:21:22.240
<v Michael Kennedy>hangs onto it long enough gets a Tesla.

00:21:22.640 --> 00:21:24.300
<v Michael Kennedy>Oh, by the way, the person who doesn't go to the bathroom,

00:21:24.540 --> 00:21:26.620
<v Michael Kennedy>The longest gets an extra $100,000.

00:21:26.940 --> 00:21:28.520
<v Michael Kennedy>You know, like ridiculous stuff like that, right?

00:21:28.880 --> 00:21:29.020
<v Michael Kennedy>So,

00:21:29.740 --> 00:21:30.120
<v Michael Kennedy>queued up.

00:21:30.560 --> 00:21:31.100
<v Michael Kennedy>Here's the joke.

00:21:31.540 --> 00:21:32.080
<v Michael Kennedy>Centering a div.

00:21:32.720 --> 00:21:33.120
<v Michael Kennedy>Mr.

00:21:34.180 --> 00:21:37.980
<v Michael Kennedy>Beast plans to trap a thousand vibe coders in a room without Claude.

00:21:38.280 --> 00:21:40.400
<v Michael Kennedy>First person to center a div manually wins $1 million.

00:21:43.340 --> 00:21:44.360
<v Brian Okken>It's not fair.

00:21:44.600 --> 00:21:45.260
<v Brian Okken>Nobody will get it.

00:21:45.640 --> 00:21:46.340
<v Brian Okken>I know, exactly.

00:21:46.480 --> 00:21:47.440
<v Brian Okken>It's like, it's impossible.

00:21:47.620 --> 00:21:48.100
<v Michael Kennedy>Can't be done.

00:21:49.400 --> 00:21:54.080
<v Michael Kennedy>And then down here, one of them is center horizontally,

00:21:54.360 --> 00:22:02.800
<v Michael Kennedy>vertically or both like oh oh oh vertically it's just impossible now i don't even know if it's hard

00:22:02.980 --> 00:22:07.980
<v Michael Kennedy>anymore actually it just it used to be hard but i don't know if it is i think it depends how you

00:22:08.040 --> 00:22:12.680
<v Michael Kennedy>write it like if you did a flex box you know but if you did old school way it's a little harder yeah

00:22:13.160 --> 00:22:19.459
<v Brian Okken>that's sort of funny to think about though because the uh the did the vibe i don't vibe code but i

00:22:19.780 --> 00:22:26.460
<v Brian Okken>i also don't write css by hand anymore uh i use use something else to do it for me so anyway

00:22:26.840 --> 00:22:32.580
<v Brian Okken>ah funny um one of the things i actually was at a dinner party the other day and um uh somebody

00:22:33.200 --> 00:22:37.100
<v Brian Okken>said they wanted to start they take a lot of videos and i said oh cool can i watch them somewhere

00:22:37.520 --> 00:22:42.020
<v Brian Okken>and he's like well um i was gonna i said you should like throw them up on instagram or something

00:22:42.380 --> 00:22:47.459
<v Brian Okken>uh whatever and he's like well i'm gonna start doing on youtube because you know that mr beast

00:22:47.480 --> 00:22:53.380
<v Brian Okken>makes like millions of dollars and one of the things i i mean the i don't watch these videos

00:22:53.820 --> 00:22:58.600
<v Brian Okken>and maybe they're funny maybe they're not i don't know it's not my thing but one of the things that's

00:22:58.680 --> 00:23:04.520
<v Brian Okken>unfortunate is it kind of an it makes some people believe that they can do that also and i don't i

00:23:04.620 --> 00:23:10.160
<v Brian Okken>think this is a one-off random thing i think it's it's just you know it was at the right time right

00:23:10.360 --> 00:23:15.640
<v Michael Kennedy>place it was its own thing yeah and how much did he make for the first three years he was doing it i

00:23:15.600 --> 00:23:15.720
<v Michael Kennedy>I don't know.

00:23:16.380 --> 00:23:17.300
<v Michael Kennedy>I don't even mind it lost money.

00:23:17.340 --> 00:23:17.700
<v Michael Kennedy>I'm not sure.

00:23:17.780 --> 00:23:20.980
<v Michael Kennedy>He would just go up to random people, give him $1,000 for stuff.

00:23:21.180 --> 00:23:24.120
<v Michael Kennedy>I don't know where he got the $1,000 to start this idea with.

00:23:24.660 --> 00:23:26.840
<v Michael Kennedy>Is that how it started at the beginning?

00:23:27.060 --> 00:23:28.520
<v Michael Kennedy>It was always like this?

00:23:28.820 --> 00:23:29.400
<v Michael Kennedy>I think so.

00:23:30.300 --> 00:23:31.420
<v Michael Kennedy>You know, the beginning,

00:23:31.740 --> 00:23:32.100
<v Michael Kennedy>I don't know.

00:23:32.200 --> 00:23:33.240
<v Michael Kennedy>But for a long time,

00:23:33.400 --> 00:23:33.960
<v Michael Kennedy>it's been like that.

00:23:34.140 --> 00:23:36.000
<v Michael Kennedy>But it used to be lower scale,

00:23:36.280 --> 00:23:36.780
<v Michael Kennedy>and it goes up.

00:23:37.120 --> 00:23:39.760
<v Michael Kennedy>Because my daughter watched him a lot for a while.

00:23:39.860 --> 00:23:40.540
<v Michael Kennedy>Not so much anymore,

00:23:40.720 --> 00:23:41.260
<v Michael Kennedy>but for a while.

00:23:41.400 --> 00:23:43.240
<v Michael Kennedy>And so it would kind of be on in the background,

00:23:43.420 --> 00:23:44.680
<v Michael Kennedy>while I'm on the couch or whatever, you know?

00:23:45.240 --> 00:23:45.420
<v Brian Okken>Weird.

00:23:45.840 --> 00:23:45.840
<v Brian Okken>Okay,

00:23:46.220 --> 00:23:46.300
<v Brian Okken>whatever.

00:23:46.600 --> 00:23:46.720
<v Brian Okken>Yeah.

00:23:47.620 --> 00:23:50.020
<v Michael Kennedy>But this is his new amazing one.

00:23:50.200 --> 00:23:52.500
<v Michael Kennedy>Trap a thousand vibe coders in a room without Claude.

00:23:53.120 --> 00:23:54.020
<v Michael Kennedy>Ask them to do things.

00:23:54.180 --> 00:23:54.420
<v Michael Kennedy>Let's go.

00:23:55.180 --> 00:23:55.500
<v Michael Kennedy>Yeah,

00:23:55.800 --> 00:23:56.120
<v Michael Kennedy>that's funny.

00:23:56.600 --> 00:23:57.060
<v Michael Kennedy>It is.

00:23:57.400 --> 00:23:57.680
<v Michael Kennedy>All right.

00:23:58.360 --> 00:23:59.000
<v Michael Kennedy>Thanks for the show, Brian.

00:23:59.340 --> 00:24:00.180
<v Michael Kennedy>Thanks for everyone for listening.

00:24:00.460 --> 00:24:00.760
<v Michael Kennedy>All right,

00:24:00.980 --> 00:24:01.040
<v Michael Kennedy>bye.

00:24:01.380 --> 00:24:01.540
<v Michael Kennedy>Bye.

